Menu

Beach Head 2000

Anonymous
2016-06-23
2023-07-09
1 2 > >> (Page 1 of 2)
  • Anonymous

    Anonymous - 2016-06-23

    This game was my childhood, and the menu show up fine until clicking the "Play" button, then it crashes. Some people also report that the UI text is unreadable on Win10.
    http://www.fileplanet.com/59622/50000/fileinfo/Beachhead-2000-Demo

     
  • gho

    gho - 2016-06-23

    An interesting case. I got the full game as well, and to be sure also the available patches: the game always shows the same behaviour: while DxWnd doesn't log any sort of error, the program, when asked to start a combat mission, gracefully terminates because of some internal control that doesn't find everything ok.
    Either analizing the assembly or by trials and sheer luck I'd find what the program doesn't like and fix it.

     
    • Anonymous

      Anonymous - 2016-06-24

      The BH2000.exe will call two target:
      + the Bh.exe is the main menu
      + the beachhead15.exe (256 colors) and beachhead16.exe (16bit colors) is the campaign mode. If click on those file and run directly, it start in windowed mode already (!!!) but stuck in top left of screen.
      Regardless, I can see why Dxwnd had a trouble to hook a game that calling multiple target.

       
      • gho

        gho - 2016-06-24

        Yes, I noticed that. I believe that beachhead15/16.exe don't start in windowed mode, but simply it expects that the screen mode was already set by its father BH2000.exe or brother Bh.exe.
        By the way, Avast found beachhead15.exe (and not beachhead16.exe) infected by malware gen on Win7 and not on Win10. Likely it is a false positive, but I'm just telling you.

         
        • Anonymous

          Anonymous - 2016-06-24

          thanks for notice, as always I running Shadow Defender before mess with those stuff. I hear Avast is one of the best free AV programs, did you use the free or commercial version?

           

          Last edit: Anonymous 2016-06-24
          • gho

            gho - 2016-06-24

            Free, of course: I'm stingy!
            Getting closer ....

             
  • gho

    gho - 2016-06-24

    Even better. But the procedure to get here is troublesome.

     

    Last edit: gho 2016-06-24
  • gho

    gho - 2016-06-26

    Here it is what I found:

    The problem with this game is its splitted logic: if you check the running processes or simply look at the calls within each module, Iyou can see the folllowing:
    - bh2000.exe is an invisible and mute frontend. Its purpose is to run, in turn either BH.exe or one of the twin programs beachhead\beachhead15.exe or beachhead\beachhead16.exe
    - bh.exe is the program that show the game main menu and some intro stuff, options and everything is NOT 3D. It also checks the video modes and sets a 640x480 resolution with either 15 or 16 BPP color depth. When it terminates, it tells its father bh2000.exe the chosen action through the exit code
    - beachhead15.exe and beachhead16.exe are the actual 3D gun engines for 15BPP and 16BPP video modes respectively.

    So, the current situation is that I got a valid DxWnd configuration for bh2000.exe and beachhead\beachhead16.exe, so that I can separately run a useless menu and a new game. All these configurations, though, require DLL injection.
    To make the whole stuff working there is the need to hook the invisible bh2000.exe and make it propagate the DLL injection to its son, a thing that in theory should work, but so far the hooked bh2000.exe refuses to work.

    In addiction, the results I got so far doesn't seem very easily replicable. I'm getting here pretty much the same problems I found with Die Hard Trilogy with its splitted logic.

    P.s. there is also a demo of a next chapter (more bullets, more enemies) Beach Head 2002 here: https://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj1ir3zlcXNAhUKwBQKHdUKBCwQFggmMAA&url=http%3A%2F%2Fwww.gamepressure.com%2Fdownload.asp%3FID%3D1051&usg=AFQjCNGb5hBv3Fj5JOOTksIo_AlKjUOPgw . Unfortunately it replicates the very same complex process structure and problems.

     

    Last edit: gho 2016-06-26
    • Anonymous

      Anonymous - 2016-06-27

      Somehow the DLL injection never worked properly for me. And if you want something even more nasty and similar case for testing purpose, search for the game named "Deer Hunt Challenge", the product of EA Sport say it all..

      • The DHC_demo.exe is the game main menu and requires compatibility mode to be enabled to run. Dxwnd couldn't reached it.
      • Both "game2.run" and "game.run" are the actual game engines and no need compatibility mode to run, those run on fullscreen mode only. Using DXWnd, both had a trouble with mouse movement.
        => Well done, EA!
       

      Last edit: Anonymous 2016-06-27
      • gho

        gho - 2016-06-27

        Actually it doesn't always work correctly for me as well, and Beach Head 2000 is a nasty enough case!
        That's why I added the logging "Separated" option to last release, so that I can now have logs from more than one process at a time, even if running in same folder.
        I'll have a look to Deer Unt Challenge as well, whenever possible....

         
  • gho

    gho - 2016-06-27

    @cloudstr: now that I have all the logs, I can see that the extended DLL injection doesn't work at all, and I need it to make BH2000 working. There is a work in progress, at the end the situation should be quite better than now!

     
    • Anonymous

      Anonymous - 2016-06-27

      sweet. I will root for Italy tonight.

      Woo, Spain and Argentina are out. What a nice freaking day.

       

      Last edit: Anonymous 2016-06-27
  • gho

    gho - 2016-06-27

    Final result 2:0!
    First goal: we won the soccer match
    Second goal: I got finally some almost good results

    Now, before I enjoy the victory, I must be ready to listen to the usual words: "hei! on XP it doesn't work....". So, while I refine my last-minute changes, what about a little testing by your own?

    Here is the necessary stuff: dxwnd.exe+dll, plus 4 (FOUR!!!) exported files that must ALL be present in the dxwnd configuration, because one task is executing the others. Maybe you could just avoid the 15 BPP engine configuration that doesn't get used, but you neve know.
    Even more, when you haveall of them imported, you should set the logging flag to "Separated" (it's a recent update, not yet releases) so that each damn'd task will make a log of its own.

    Once everything is set, you can start the game by clicking on the "Beach Head 2000" entry alone, all other tasks will be hooked when created by this one.

    On my pc everything works but an initial crash: if that happens, please ignore it and go on: you should have BH2000 always running and, in turn, either BH for the menues or Beachhead16 as 3D engine.

    Goodnight!

    P.s. what a nightmare! There are also Beach Head 2002 and Beach Head Desert War .... look at legends world.

     
    • Anonymous

      Anonymous - 2016-06-28

      This is a very complicated case, here are some points that I've learned (mostly by trial and error):

      • On my XP system, there is no need to set "Dll Injection" (heh..), the only flag need to set is "Extend hook" for both BH2000.exe and BH.exe, then all other tasks will be hooked.
      • You must run the BH2000.exe manual, stay away the Dxwnd interface. Otherwise the other tasks will not get hooked by Dxwnd.
      • If Minimize the "Cool window program" (BH.exe), the freeze occurs. No flag could cure it..
      • The BH2000.exe will stretch the window to 1024x768 anonymously, I say anonymously because the window have been hidden away and you still see the desktop window. But if click the mouse outside the "Cool window program" then the freeze occurs!!! Not sure why, maybe I clicked the BH2000.exe window instead of the desktop window.
        If run BH.exe directly, it is able to Minimize or click outside the "Cool window program".
      • To make the Beachhead16.exe window centered on the screen, set the "Limit resolution" to 400x300, one problem is the incorrect font position.

      Sent you my dxwnd.ini setting.

       

      Last edit: Anonymous 2016-06-28
  • gho

    gho - 2016-06-28

    One sad news: the equivalent of BH.exe for Beach Head 2002, that is BH2.exe, is irremediably obfuscated! Look at it through CFF Explorer, It exposes one single kernel32 imported function! It's incredible how much fuss people dedicated to protect such a silly game.
    One of therse days I'd like to check if I'm able to hook such a heavily obfuscated program, but so far that one is out of reach!

     
    • Anonymous

      Anonymous - 2016-06-28

      I have a gift for you, here is a cracked/unpacked BH2.exe of CD version.
      http://www103.zippyshare.com/v/piHTTF88/file.html

      Anyway, D3DWindower success to centered the Beachhead16 window, also the font position is correct.

       
      • gho

        gho - 2016-06-28

        Reported infected by Evo-Gen on Win7 with possibly outdated Avast virus db. I'll try again later from Win10. In the meanwhile, better have a look at your pc health.

         
      • gho

        gho - 2016-06-28

        On Win10 and setting the "Limit resolution" to 640x480 the game positioning works with no problems as well. Are you sure you need the 400x300 value? That does not correspond (AFAIK) to the game native resolution, unless it may depend on the game detail level settings (I set it to the maximum, that is also the default)....

        On the contrary, on my Win7 nothing works, but that pc has its own problems, so that means very little.

        About the BH2.exe game, this time the Evo-Gen is reported by the Win10 up-to-date antivirus too, so I'll save the exe, but skip to Beach Head Desert War. BTW, that game has a BH2.exe as well, but it is not identical to the Beach Head 2002 file and can't be used in substitution.

         

        Last edit: gho 2016-06-28
        • Anonymous

          Anonymous - 2016-06-28

          I'm sure the only "right" value here is 400x300, the other choice will have no effect and the window stuck in top left screen. And the graphics detail setting had nothing to do with this.

          Actually the "640x480" value is not that bad, the window slighty move to lower but not at center. The font position still incorrect though.

           

          Last edit: Anonymous 2016-06-28
          • Anonymous

            Anonymous - 2016-06-28

            Oh heeeeell, you are damn right! That file is unsafe :(

            I'm so sorry, and to apologize I will send you another gift. This one should be very safe, if not ... I will eat my hat! :-)
            There are two file, BH2002.exe and BH.exe.
            http://www116.zippyshare.com/v/WL8kBqIp/file.html

             

            Last edit: Anonymous 2016-06-29
            • gho

              gho - 2016-06-29

              Well, prudence is never too much.
              But I was not mistrusting you (though I'd better have to!), my point was simply that BH2002 and BH Desert War were so similar each other that there was no point in starting with the risky one while there was a safe one to begin with.
              Anyway, I never run that exe, so I believe I'm safe. I'll take the new gift, thank's again .....

               
  • Anonymous

    Anonymous - 2016-06-30

    BH2002 run even more comfortably. The BH2 window is centered on the screen, definitely a step up from beachhead16 window. But HELL, that super "annoying" BH2002.exe and bh2.ews is very CPU-hungry that getting usage 100% all the time!!! I feel sad for my PC, it is so slow like a turtle.

    Update
    I completely forgot the CPU limit flag, seem to okay now. God bless for anyone who contribute this feature...

     
  • gho

    gho - 2016-06-30

    Strangely (but not too much!) here on Win7 the situation is the other way round : I could not make the 3D engine BH2.exe to work, either alone or together with the other two programs. Would you be so kind to lend me your exported files? I'm pretty sure there shouldn't be anything too strange, but you never know.

    About CPU efficiency, CPU limit is kind of a stupid "brute force" way, stopping and starting the thread no matter what it does. There are other options that may work better or for nothing at all depending on the case:

    • Main / Optimize CPU: if the wait for vertical sync is not pausing the task
    • Input / Slow down mouse polling: in case there's a tight loop of GetCursorPos() calls
    • Timing / Frame per second / Limit (set about 20 msec): in case there's a tight loop of screen updates

    If any of these work, it should be better because it would suspend the task with a CPU friendly Sleep() right on the crytical operation.

     
    • Anonymous

      Anonymous - 2016-06-30
      1. Profile attached
      2. Just tried and those flag are not help either, the CPU always stay at 50% for each process. Two process running simultaneously will take 100% CPU.
      3. Is it possible to select multiple items from the interface to speed up the Export configuration action? It take quite a lot of time if there are many game in the list.
       
1 2 > >> (Page 1 of 2)

Log in to post a comment.