Menu

Lego LOCO

MrPepka
2023-05-30
2025-02-01
  • MrPepka

    MrPepka - 2023-05-30

    I'm back after a few months of inactivity
    I came across a game called Lego LOCO that requires a 16-bit color mode and a resolution of 800x600, 1024x768 or 1280x1024 (meaning, the desktop resolution must be set to one of these modes for the game to run). So I decided to use the brilliant program DxWnd to run it, but it seems that this program does not work with this game. I tried different options, but when I run this game in DxWnd, I still get the same message to set the resolution on the desktop to the one that the game supports. I don't see a dxw file for this game in the exports folder. Could someone send me the correct configuration for it? Thank you in advance

     
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-05-31

    The game probably checks the color and resolution even before the game is launched and thus fails. I can't even run the game on my Win11.

    This registry key can be needed, I am just adding it for reminder, but for now it doesn't work:

    [HKEY_CURRENT_CONFIG\Display\Settings]
    "BitsPerPixel"="16"
    

    I will test on Win7 now.

     
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-05-31

    On Windows 7, unless I enable 16-bit color mode in desktop and set the required resolution by the game, the game won't run. With DxWnd the game still won't run unless I change Emulation to None.

     
  • gho

    gho - 2023-05-31

    A quick debugger session revealed that the error message is only a generic message after a set of other capability testing. So, the problem likely doesn't depend on the color depth or the video resolution. I will investigate more to find what would please the game.

     
  • gho

    gho - 2023-05-31

    This game is proposing new interesting challenges. So far I listed a unsupported way to use the fake registry (not related to our problem) and probably some original way to check the video features. Look at this chunk of assembly where the startup procedure goes through:

    CPU Disasm
    Address   Hex dump          Command                                                     Comments
    69EC3E9D  |.  68 D442E969   PUSH 69E942D4                                               ; /Format = "BITSPIXEL 16-bit lied."
    69EC3EA2  |.  68 C2040000   PUSH 4C2                                                    ; |Arg3 = 4C2
    69EC3EA7  |.  68 8842E969   PUSH 69E94288                                               ; |Arg2 = ASCII "DWM8AND16BitHook_GetDeviceCaps"
    69EC3EAC  |.  6A 03         PUSH 3                                                      ; |Arg1 = 3
    69EC3EAE  |.  E8 8D67FEFF   CALL 69EAA640                                               ; \apphelp.69EAA640
    

    I will have to study some more and probably hook some DWM function call....

     
  • gho

    gho - 2023-05-31

    In the meanwhile you can have fun with this patched game version.

     
  • gho

    gho - 2023-05-31

    Ouch, there was a silly bug in GDI32 -GetDeviceCaps wrapper .... a patch will come soon!

     

    Last edit: gho 2023-05-31
  • gho

    gho - 2023-05-31

    Here it is, dxwnd.dll to replace the last version v2.05.96 from the download area.
    This fixes the game start with no need of the patched executable and let you play the game that shows other interesting problems that don't seem to impact the playability too much. An example in the screenshot (how many hand cursors?)

     

    Last edit: gho 2023-05-31
  • gho

    gho - 2023-05-31

    I talked too soon. The game seems to require a screen scrolling that is almost impossible to control after DxWnd hooking. This will require some additional fix.

     
    • BEEN_Nath_58

      BEEN_Nath_58 - 2023-05-31

      the multiple cursor exists without DxWnd on win7 too

       
  • huh

    huh - 2023-05-31

    Hmm, the game runs natively here in Win7, I don't have a problem with multiple cursors, but there are artifacts when moving the mouse.
    According to the registry entries in WinXP, I suspect that the game uses ddrawex.dll (maybe a false clue).

    Update:
    DxWnd does not seem to handle this command correctly.
    mciSendStringW: Command="open "C:\games\lego loco\art-res\video\legospin.avi" alias 3017717 wait"
    I had to turn off "Remap MCI coordinates" to see the intro video.
    No problem with multiple cursors, but I can see a ripple around the cursor when moving the mouse.

     

    Last edit: huh 2023-05-31
  • gho

    gho - 2023-06-01

    So far I collected these problems:
    1) multiple cursors, a unhappy name in reality because the cursor i a single one but it leaves some trails on the screen when entering/exiting certain areas. Let's call it "cursor artifacts", but probably this is a game bug that also happens without DxWnd.
    2) intro movies: in effect, setting the monitor resolution to 1024x768 it is possible to run the game without DxWnd and in this case you can see 3 intro moves (2 logo spash videos and the legospin.avi intro). Running the game with DxWnd they are not visible, probably because of the problem that Huh note.
    3) Scrolling: the game seems to have a 1024x768 sized map that is entirely visible when the emulated resolution is 1024x768. But if you force the virtual resolution to a different value (es. 800x600) you can see sliders on the right and bottom of the screen to scroll the scene and make the whole map accessible. Using these slider controls is almost impossible and when you move the cursor close to the sliders you can see a curious mouse compression.
    4) The game doesn't seem to have keyboard commands, and I got the impression (maybe wrong) that the mouse is not letting you control everything. To be verified.

     
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-06-01

    How do I run the game in real fullcreen? :(

    intro movies: in effect, setting the monitor resolution to 1024x768 it is possible to run the game without DxWnd and in this case you can see 3 intro moves (2 logo spash videos and the legospin.avi intro). Running the game with DxWnd they are not visible, probably because of the problem that Huh note.

    Disable "Remap MCI coordinates"

    it is possible to run the game without DxWnd

    I assume the error I and MrPepka gets is because of some general DDraw error. There is already a shim that is suppose fix the problem it gives. But using shim and DxWnd makes a bad game color,, look at the attachment.

    Oh and I have to enable "Scaled GDI calls" because otherwise the videos in 1024x768mdon't cover entire screen.

     

    Last edit: BEEN_Nath_58 2023-06-01
    • gho

      gho - 2023-06-01

      I can't test it now (holyday has begun) but I think that you turn dxwnd off, set the desktop to the ugly 1024x768 resolution and run the game with 16 bit reduced color mode, it should start.

       
      • huh

        huh - 2023-06-01

        3) Scrolling:

        Scrollbars are a property of the window, so if I enable Debug Disable WindowProc hooks I can scroll with them.

        By setting the initial resolution to 1024x768, the game can run customized in an 800x600 window

         

        Last edit: huh 2023-06-01
        • gho

          gho - 2023-06-01

          interesting. When I'll be back I should disable the WindowProc blocks of code until I find what interferes. Disabling the whole WindowProc hook is possibile but probably we could do better.

           
          • huh

            huh - 2023-06-01

            I should disable the WindowProc blocks of code until I find what interferes.

            Well, maybe not. I think the "Release mouse outside window" flag works quite well here ;-)

            Update:
            Regarding the cursor artifacts, maybe the problem is that the cursor is animated?
            I found \LEGO LOCO\art-res\cursors\busy.ani.

             

            Last edit: huh 2023-06-01
  • Alec

    Alec - 2025-01-09

    Has there been any progress on this game? Be interested in getting this to work.
    If I force resolution to 1280x1024, set color to 16 bit and disable SHIMs the colors seem to be right (though no intro still) but the previously stated cursor artifacting is there. Biggest problem though is that when dialog boxes pop up (as do the first time you try to use anything) I'm unable to click anything, and have to kill the game and start it again to bypass every one.
    It appears that a project called "DDrawCompat" can fix the cursor problems, not sure if DXWnd has similar functionality.

     
    • BEEN_Nath_58

      BEEN_Nath_58 - 2025-01-09

      The cursor problem was fixed here as well 2 years ago. About the dialog boxed, I don't remember. If you are talking about the "Toybox", I think this already works, although I will check again tomorrow if not

       
      • Alec

        Alec - 2025-01-13

        Can I ask what settings you have that fix the cursor? Mine is still messed up. If you have other settings for this game, those would be useful as well.

         
        • BEEN_Nath_58

          BEEN_Nath_58 - 2025-01-13

          I put DDrawCompat 0.5.4 in the same folder as Loco.exe and used this profile in DxWnd:

           
  • Alvaro

    Alvaro - 2025-02-01

    I think that for Lego Loco the best thing is like a remake, as has been done with Tzar with tza .red
    So we could play this game straight from browser in windows 11 or in local using it as a live wallpaper like in wallpaper engine.

     
  • gho

    gho - 2025-02-01

    If interested, this is my best profile for a game full RIP. But there are some instructions to follow:
    The file path is registered also in the (gamefolder)/Exe/LEGO.INI file, so if you install the game on a folder different from my folder "C:\Games\LEGO Loco" you'll have to edit that file in 3 places.

     

    Last edit: gho 2025-02-01

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.