Jump to content

Run LEGO Racers 2 and Drome Racers with Extracted Archives (And no CD on LR2)


JrMasterModelBuilder
 Share

Recommended Posts

JrMasterModelBuilder

For an automated way of doing this, check out this topic by origamiguy.

 
Wouldn't it be nice if we could MOD LEGO Racers 2 and Drome Racers without rebuiding the GAMEDATA archives every time we want to see our changes? Surely the developers worked this way, but allas, they hard coded it into the executable to only look for file in the GAMEDATA archives. But what if there was some way we could change that? Some way we could just change that hard-coded variable and put the games file loading module into developer mode rather than release mode? Today, I am pleased to to say this is possible and easy!

 

NOTE: There is a version of Drome Racers this will not work with. It the the Older, DRM version described here. This is because the code that needs patching is encrypted with Safedisc.
 
Step 1:
Download a hex editor. If you already have one, go to step 2, if not, really any hex editor will work, but I often use HxD.
 
Step 2:
Go to you LEGO Racers 2 or Drome Racers install directory.
 
Step 3:
Make a backup copy of the game executable, then open the executable in your hex editor of choice.
 
Step 4:
Open you hex editor's search feature. In HxD, it's under Search > Find.
 
Step 5:
Make sure you are set to search hex values. In HxD this is done by setting Datatype to Hex-values.
 
Step 6:
In the search box, enter the correct string for the game you are editing below:
 
LEGO Racers 2:

Sources: 90 90 90 90 90 90 90 90 90 90 90 B8 03 00 00 00 C3


Drome Racers:

Sources: 26 00 B8 03 00 00 00 C3
 
And search, you should only get 1 result.
 
Step 7:
Within the bytes you found, replace the one that is "03" with "00" being careful to overwrite and not change the size of the file.
 
Step 8:
Save the file.
 
Step 9:
Extract the GAMEDATA archive using UNGTC if you have not yet done so.
 
Step 10:
Within the extracted GAMEDATA folder find the folder named "GAME DATA" (mind the spaces), select all of the folders within and copy them. Return to your game installation directory, open the "GAME DATA" in this directory (again, mind the spaces, though the capitalization may be different) and paste the folders you copied, merging the folders if prompted.
 
 
SUCCESS!
If you have successfully completed the steps above, the game will no longer read the GAMEDATA archives, but instead use the extracted files. There is no need to remove the GAMEDATA archives, it will not even try to open them if you patched the game correctly. Additionally, LEGO Racers 2 will no longer require the CD in the drive (presumably it will no longer load the files in the "language" folder on the CD either, but that shouldn't impact the game).
 
If there is enough demand, I may make an automatic patching tool later on.
 
 
Technical Notes (Feel Free to Ignore)
The actual command we are patching is "B8 03 00 00 00 C3", which pushes an unsigned integer and then returns it. The value of 3 is release mode, the value of 0 is developer mode. There are two other intermediary levels in between which are some strange hybrid between the two. This sequence of bytes appears multiple times in the file however, so our search must be made more explicit.

 

Edited by JrMasterModelBuilder
Link to comment
Share on other sites

Yes! Thank you very much JMMB! Somehow I knew someone would find a way to do this! :D

 

@JimbobJeffers, it is now time to update your tutorial. ;P

 

If there is enough demand, I may make an automatic patching tool later on.

 

Wouldn't an IPS for each game do the trick, even in the meantime?

Link to comment
Share on other sites

Fluffy Cupcake

Lunar IPS, a lightweight program that makes IPS patches, takes the original file, and the changed file, compares them, and then with the differences it creates the patch, and then anyone with the original file can apply the created patch to their original. The program's original usage is for Super Mario World rom hacks, but it work for pratically everything, and no installation is required.

I already used it to make a fix to the Island Xtreme Stunts .exe for users that can't run it above WinXP, although it allows you to run the game without the disc, so it isn't hosted on RRU, only on TIC.

 

Anyhow, thanks so much for this!

I guess it was a highly good idea for me to not release any video tutorials yet, they would be outdated already!

Link to comment
Share on other sites

JrMasterModelBuilder

Lunar IPS, a lightweight program that makes IPS patches, takes the original file, and the changed file, compares them, and then with the differences it creates the patch, and then anyone with the original file can apply the created patch to their original.

Not a bad solution.

 

What an interesting discovery. What's the strange thing about the intermediary levels (01 - 02)?

I think 01 relies on a file to list all the files to load and how large they are, which isn't very dynamic or convenient for our purposes, plus I don't know how you create such a file.

 

I think 02 tries to load files from an uncompressed implementation on the GAMEDATA, called gamedata.dat or gamedata.dta, and not gamedata.gtc. Again, I don't know the format of said file.

 

I think one or both of them also might make (un?)compressed files on the fly to improve loading speeds (a negligible effect on modern drive). Also, any of this information could be very mixed up or completely wrong.

  • Like 1
Link to comment
Share on other sites

I think 01 relies on a file to list all the files to load and how large they are, which isn't very dynamic or convenient for our purposes, plus I don't know how you create such a file. I think 02 tries to load files from an uncompressed implementation on the GAMEDATA, called gamedata.dat or gamedata.dta, and not gamedata.gtc. Again, I don't know the format of said file. I think one or both of them also might make (un?)compressed files on the fly to improve loading speeds (a negligible effect on modern drive). Also, any of this information could be very mixed up or completely wrong.

 

 

Epic :o buggy/incomplete stuff is the best!

Link to comment
Share on other sites

  • 1 month later...
Fluffy Cupcake

Hey, I noticed that the .exe for LEGO Island 2 has the exact same "B8 03 00 00 00 C3", and only one instance of it. Do you think by changing this we may be able to run LEGO Island 2 with extracted bod/bob files (which are like the archives of this game)? I guess there is only one way to find out... testing time!

 

Edit: Well it didn't do anything for discless, and I didn't realize the game could already be run without the rearchived bod/bobs. Well it was worth a shot for the records, anyhow.

Link to comment
Share on other sites

JrMasterModelBuilder

Hey, I noticed that the .exe for LEGO Island 2 has the exact same "B8 03 00 00 00 C3", and only one instance of it. Do you think by changing this we may be able to run LEGO Island 2 with extracted bod/bob files (which are like the archives of this game)? I guess there is only one way to find out... testing time!

 

Edit: Well it didn't do anything for discless, and I didn't realize the game could already be run without the rearchived bod/bobs. Well it was worth a shot for the records, anyhow.

Yeah, it would be very unlikely that this will work for any other game engine. Only if the game uses a function that returns 3 to determine if it is in release mode. Not impossible, but unlikely.

Link to comment
Share on other sites

  • 6 months later...
Fluffy Cupcake

Drome Racers:

Sources: 26 00 B8 03 00 00 00 C3

While the LR2 one works fine, I would just like to say that I was unable to find this one in my Drome Racers.exe. :|

The last modified date of the .exe was 06/11/2002, should that make a difference.

 

Edit: And on second note, I replaced all "03"s in my .exe with "00"s and to no avail nothing happened. I can send my .exe over if you want to take a look JMMB.

Link to comment
Share on other sites

  • 5 years later...
  • 2 years later...
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.