Jump to content

Photo

Extreme110's Traveller's Tales Game Research Blog


  • Please log in to reply
54 replies to this topic

#1
McJobless

Ok, so this isn't exactly in the blog system, but I wanted to keep this separate with my other blog entries, and I lost my second blog a little while after Cyrem disabled secondary blog creation.

Basically, I'll be using this topic to cover modding two specific games by TT Games, that is, "LEGO® Indiana Jones™ 2" and "LEGO® Star Wars™ The Complete Saga". I'll be comparing them directly and describing steps for completing various mods.

For the record, more of my attention will be focused on Indiana for the simple reason of flexibility. For example, even through LEGO Star Wars 1 and 2 both had a lot of deleted content to be restored, the Complete Saga was pretty much empty. Indiana Jones 2 has a lot of content left in the deepest bowls to conquer, as if it is some sick metaphor planted by the developers and we are the computer-based versions of the adventurous hero...

NOTE: Using the steps to mod your game below will cause a slower load time in multiple parts of the game, which may induce the feeling the game has crashed. If the game crashes, it will shut-down, but if it pauses, it is just taking it's time to load. Please be patient.

First thing, to start off easy, I'm going to go over file types, and then I'll quickly explain how to mod both games.

LEGO® Star Wars™ The Complete Saga File Types:
  • *.cfg - Configuration File (The two main ones deal with audio files, with a couple smaller ones scattered around)
  • *.ogg - OGG Vorbis Sound File, essentially like an .mp3 file, but the codec is under Open Licence
  • *.wav - Waveform Audio File Format, a high quality but high filesize sound file
  • *.txt - Generally a Text file used for writing, but in these games they are used as configuration files
  • *.fpk - See *.PAK (There is only one of these, and it seems to contain all the configs for the characters; maybe for backup?)
  • *.ghg - Model Data, Node/Bone Information and DDS Texture Container (Specifically, *_LR_PC.ghg contain the node/bone information)
  • *.an3 - Animation
  • *.bsa - Unknown (There's one for all .an3 files though...)
  • *.cu2 - (Probably contains all the custom animations and camera data for specific cutscenes in the game)
  • *.git - Level information, camera positioning and level properties configuration
  • *.giz - Unknown (Possibly an asset list for a level)
  • *.ptl - Unknown (Relates to explosions and other effects)
  • *.rtl - Unknown
  • *.ter - Unknown (Most likely the terrain data; i.e. the level's model and collision)
  • *.gsc - Data Container, Unknown Format or Files (I cbf right now to do the Hex Research on this one)
  • *.pak - A file containing data from numerous other files; the header contains the list of files it contains data from, then all subsequent information is dumped below
  • *.ai2 - Unknown ('LevelPath' for AI to follow?)
  • *.scp - Script files (The game engine does not require compiled scripts; it reads in plain english)
  • *.bur - Unknown
  • *.par - Unknown (Possibly depreciated and removed)
  • *.gra - Unknown (Possibly depreciated and removed)
  • *.bik - Bink Video File, a common game video format offering high quality with lower file sizes; RAD Video Tools are free to use to open these
  • *.dds - Direct Draw Surface, a common image format in video games, especially as alpha images
  • *.raw - Raw Image Data File, a non-common image with no compression
  • *.ico - Windows Icon File
  • *.ats - Script Files, almost identical to *.scp files
  • *.fnt - Compiled Font Files
  • *.csv - Comma Separated Values File (only one present, contains localisation strings)
LEGO® Indiana Jones™ 2 File Types:
  • *.cfg - Configuration File
  • *.txt - Configuration files
  • *.pak - A file containing data from numerous other files; the header contains the list of files it contains data from, then all subsequent information is dumped below
  • *.ogg - OGG Vorbis Sound File
  • *.wav - Waveform Audio File Format
  • *.apj - (Possibly a list of characters in the games and where to get their files, and also lists a "MOBJ")
  • *.cd - (Contains data from the *.apj file)
  • *.as - (Looks like the last two, but this one seems to be specifcally for animation and movement)
  • *.ghg - Model Data and Node/Bone Information
  • *.gsc - Data Container, Unknown Format or Files (I cbf right now to do the Hex Research on this one)
  • *.cu2 - (Probably contains all the custom animations and camera data for specific cutscenes in the game)
  • *.tex - Compressed texture files
  • *.gix - GUI Scripts
  • *.gil - (Some weird combo of BASIC and C programming code; probably depreciated and removed)
  • *.fnt - Compressed Font File
  • *.gip - GUI Scripts, the same as *.gix
  • *.csv - Comma Seperated Values list
  • *.ft2 - Unknown (Possibly a container for multiple *.fnt files?)
  • *.led - (Just like *.cd, but controls lighting data)
  • *.rtl - Unknown
  • *.bur - Unknown
  • *.dno - Unknown
  • *.scp - Script Files
  • *.gin - (Some crazy cross between a list of scripting functions and a configuration file)
  • *.spl - Spline Files?
  • *.ai2 - Unknown ('LevelPath' for AI to follow?)
  • *.anm - Level Specific Animations?
  • *.sfx - Level Specific Sounds?
  • *.sav - Save file for tutorials?
  • *.bik - Bink Video File
  • *.par - Sound effect configuration?
  • *.ptl - Unknown
  • *.dds - Direct Draw Surface
  • *.raw - Raw Image Data File
  • *.ico - Windowns Icon FIle
  • *.ats - Script Files
As you can see, a lot more file types, and a lot more which need to be figured out.




Alright, I owe it to you guys to teach you how to mod these games. Here's how you do it.
  • Download and install QuickBMS, and get the "Traveller's Tales games DAT files extractor (script 0.3) (*.dat) (experimental)" BMS script all from here: http://aluigi.alterv...rg/quickbms.htm.
  • Save the BMS script to where you installed QuickBMS.
  • Drag the script onto QuickBMS.exe.
  • Select one of the .dat files from either game.
  • Create a new directory elsewhere on your computer. Save the files here.
  • Wait for everything to extract, then rinse and repeat, each to sepeate folders.
  • Make a copy of your game folder.
  • In the copy, delete all the *.dat files.
  • Open the folders you extract the files to, and copy everything inside. For LEGO Star Wars Complete Saga, you should be copying folders and files such as "Audio", "CHARS", "PC" and more, but not the folder everything is contained in.
  • Paste all files in the copied game folder.
  • Play to test if everything is correct.

  • Supersonic and le717 thanked this

#2
le717

Modding LIJ2? Awesome! I own that game, and I think that might be fun!

What have you modded in IJ, exactly?

It would be really easy to mod the music. Just find music you like, convert it to OGG, and put it where it should be with the right name.

I find modding music the easiest, and for me, the most fun modding job ever. :D

#3
McJobless

Read this:

// Simple grid with larger squares
// Note that grid_size * tile_width is constant (in this case, 288) and
// tile_width should be set so it is a factor of 32 (the number of studs
// on a baseplate) - i.e. 1,2,4,8,16,32
//
//builderterrain_start
// grid_size 18
// tile_width 16
// pos_x -9.7536
// pos_y -0.000762
// pos_z 9.7536
// safety
//builderterrain_end


 

Modding LIJ2? Awesome! I own that game, and I think that might be fun!

What have you modded in IJ, exactly?

It would be really easy to mod the music. Just find music you like, convert it to OGG, and put it where it should be with the right name.

I find modding music the easiest, and for me, the most fun modding job ever. :D

Well, I generally in all games focus on trying to find configurations to modify to change gameplay. For example, I was able to make unlimited bricks and modify the maximum size of the maps in Builder mode through using the various level text files (builder levels have their own separate folders).

But yes, modding music is pretty easy, and pretty fun. I switched over some of the cutscene sounds between the two games; for some it synced well (I was in deep shock) and for others (as expected) not so well.

And this takes me to my next tutorials!

How To Get Unlimited Bricks in LEGO® Indiana Jones™ 2 Builder Mode:

How To Get Unlimited Space in LEGO® Indiana Jones™ 2 Builder Mode:

How To Modify Music in Travelers Tales Games:

(all coming soon)

#4
jamesster

I haven't ever done any actual modding, but I've extracted the files for the TT Games before with Game Extractor. There were a couple funny .txt files in the Bionicle Heroes demo files, remind me to post those sometime. I'll see if I can do anything with actual modding...

#5
le717

By all means, go ahead and make a tutorial on how to mod music in TT Games. But I have already figured it out!

http://youtu.be/0vuXRw6Odec

I must say, the music in LIJ2 is easier to mod than importing LR1 music!

#6
McJobless

How to Add Objects To A Map in Level Builder for Indiana Jones 2:
  • For this tutorial, will be modding the Bonus Exterior map. You need to be map specific.
  • Open the following files, "levelsBuilderBuilderBonusBuilderBonus.txt" and "levelsBuilderBonusBuilderBonus.txt".


    Basically, you need to figure out which level yours is from, and its dependent on the set. Raiders of the Lost Ark is BuilderRaiders, The Last Crusade is BuilderCrusade and so forth. There will be on folder in the Levels directory, and one in the LevelsBuilder directory. In both of these, there will be a text file with the same name as the folder. Open these up.
  • In the "levelsBuilderBuilderBonusBuilderBonus.txt" file, find the section where objects of the same category are located. Ensure if you have a minfigure, you get it from where the minifigures are, if you have a vehicle, it's in the vehicle section, and if it's in the hazards category, get it from there. Copy and paste the entry as many times as you need objects. MAKE NOTE that there is LIMITED SLOTS for objects in categories.'
  • In the pasted entry, you need to change 3/4 things. Firstly, in the second bit of text, there should be a number. Increase the last number on the list of objects in the category you want to place your object by one and write it here (not on the last object). If you see that the Icon is followed by the name of an object (If it says Icon_XXX, do nothing to it), you need to put a space between "Icon", then write Icon_ and then add the name of your object here without a space. Next, for most objects apart from minfigures, you need to change the text after map to say the object name. Lastly, for ALL objects you need write the name of the object after char/NAME. One entry would look like this:

    giz MiniFigNull15_ob icon Icon_xxx map minifig	char Scientist	Unlock 0 Menu Enemy GridPos 0 Cost 0 aiscript bldr_goon
    
  • Save this file, and remember the object names of the things you just implanted.
  • In the other text file, simply write 'character "YOUR OBJECT HERE" resident'.
  • Open Indiana Jones and test.

Sorry that this is very rushed, but I'm busy. I'll re-write it at a later date.

#7
Katatonic717

In my experience, .cfg files have had far more important uses rather than just mere audio.
In the source engine .cfg's are used for things like; you video/audio settings, startup scripts, and most commonly engine core files.
The last are heavily encrypted to keep people from destroying the game by mistake.
Startup scripts aren't encrypted at all and can be edited simply with notepad.
Same with the settings, you can do some neat stuff with those such as making you start with all the weapons in the beginning, getting the super grav-gun instead of the standard one, or just fix something simple that you may have messed up in the video settings (most commonly setting it to a resolution your monitor doesn't support)

Alot of these other files I have seen in the gamebryo engine (the oblivion/fallout3/newvegas engine) mainly the .ogg and .dds. Seems to be the same uses there. The .ogg are sounds and .dds are textures.
I'm pretty sure paint(dot)net has a built in .dds plug in, unless you already knew that.

I'm at school atm, so I can't give the list a huge look over, I noticed some other familiar ones too, I could help with some you may not understand as to what they do or how to open/edit them later.

#8
McJobless

In my experience, .cfg files have had far more important uses rather than just mere audio.
In the source engine .cfg's are used for things like; you video/audio settings, startup scripts, and most commonly engine core files.
The last are heavily encrypted to keep people from destroying the game by mistake.
Startup scripts aren't encrypted at all and can be edited simply with notepad.
Same with the settings, you can do some neat stuff with those such as making you start with all the weapons in the beginning, getting the super grav-gun instead of the standard one, or just fix something simple that you may have messed up in the video settings (most commonly setting it to a resolution your monitor doesn't support)

Not in this game. Their most important purpose in this game is to define audio values, including file location, drop-off and other things. Everything else uses a .txt file as a .cfg.

Alot of these other files I have seen in the gamebryo engine (the oblivion/fallout3/newvegas engine) mainly the .ogg and .dds. Seems to be the same uses there. The .ogg are sounds and .dds are textures.
I'm pretty sure paint(dot)net has a built in .dds plug in, unless you already knew that.

I know about several programs with the .dds plugins, including the nIVIDIA tool set, but the best I've found so far is MWPaint (or something similar to that name). As for that engine, I'm taking a look into it now.

I'm at school atm, so I can't give the list a huge look over, I noticed some other familiar ones too, I could help with some you may not understand as to what they do or how to open/edit them later.

That would be a blessing if you could. I'm busy trying to get a part-time job right now, so that's why I haven't done much more work into this. Thank you.

#9
Cap't Rex

Cap't Rex

    Leader of the Famed 501st units

  • Members
  • PipPipPip
  • 177 posts
Will this work with LEGO star wars 3 the clone wars?

#10
McJobless

Will this work with LEGO star wars 3 the clone wars?

Maybe, but you'll need to try it.

Between each Star Wars game, they always had massive technology jumps, so it might not be very moddable.

#11
le717

3 questions:

1. Will you re-write step 9 to be clearer? I've never modded any game other than the music, and I have no idea what you mean by that.

2. Would you please write your tutorials and how to get unlimited space and bricks in builder mode? And by unlimited bricks, do you mean unlimited items, enemies, stuff like that? There is something I want to do in builder mode, but I need to know this thing.

3. Do you know anything about networking in the game? I've heard that for some games that are on multiple platforms, the PC version is ported from the Xbox 360 version. I have no idea if this is true for LIJ2, but I've found some code in the game's EXE that reference networking. If there is indeed networking in the PC version, and it's not left over code from the Xbox 360, I would love to enable it.

4. (Ok, It was three until I thought of this.) Will you do these thing as soon as you can? I want to start on modding ASAP, but I need to know these things (at least numbers 1 and 2) first.

#12
McJobless

1. Will you re-write step 9 to be clearer? I've never modded any game other than the music, and I have no idea what you mean by that.

Alright, sorry about it. I'm usually not very clear anyways ;P This is what I meant:

Go into the folder you extracted all the files to. Select everything inside this folder, right-click and press "Copy". For LEGO Star Wars Complete Saga, you should be copying folders and files such as "Audio", "CHARS", "PC" etc. If you just copy the folder everything is contained in, this method will not work.


2. Would you please write your tutorials and how to get unlimited space and bricks in builder mode? And by unlimited bricks, do you mean unlimited items, enemies, stuff like that? There is something I want to do in builder mode, but I need to know this thing.

Ah, yes, I forgot to do that, didn't I ;P Alright, I'll have those tutorials up very soon, just after I go and make a list of all the files you need to modify. Do note that baseplates SEEM to still cost bricks.

3. Do you know anything about networking in the game? I've heard that for some games that are on multiple platforms, the PC version is ported from the Xbox 360 version. I have no idea if this is true for LIJ2, but I've found some code in the game's EXE that reference networking. If there is indeed networking in the PC version, and it's not left over code from the Xbox 360, I would love to enable it.

I went over the .exe myself a while back, and there does seem to be some internal strings for it (as well as a list of banned names in a text file I uploaded a while back), but apart from those, I can't see anything you would find for online on the Xbox version. I'll take a deeper look for you.

4. Will you do these thing as soon as you can? I want to start on modding ASAP, but I need to know these things (at least numbers 1 and 2) first.

Don't worry man, I'm doing it right now. I'll clean up this topic while I'm at it.

 

Alright, obviously this topic is a little messy, and obviously I'm double posting, but I'm going to work out a place where I can keep things clean. What I'm going to put here in this post is all the tutorials so far, as well as all the files:

First thing, to start off easy, I'm going to go over file types, and then I'll quickly explain how to mod both games.

LEGO® Star Wars™ The Complete Saga File Types:
  • *.cfg - Configuration File (The two main ones deal with audio files, with a couple smaller ones scattered around)
  • *.ogg - OGG Vorbis Sound File, essentially like an .mp3 file, but the codec is under Open Licence
  • *.wav - Waveform Audio File Format, a high quality but high filesize sound file
  • *.txt - Generally a Text file used for writing, but in these games they are used as configuration files
  • *.fpk - See *.PAK (There is only one of these, and it seems to contain all the configs for the characters; maybe for backup?)
  • *.ghg - Model Data, Node/Bone Information and DDS Texture Container (Specifically, *_LR_PC.ghg contain the node/bone information)
  • *.an3 - Animation
  • *.bsa - Unknown (There's one for all .an3 files though...)
  • *.cu2 - (Probably contains all the custom animations and camera data for specific cutscenes in the game)
  • *.git - Level information, camera positioning and level properties configuration
  • *.giz - Unknown (Possibly an asset list for a level)
  • *.ptl - Unknown (Relates to explosions and other effects)
  • *.rtl - Unknown
  • *.ter - Unknown (Most likely the terrain data; i.e. the level's model and collision)
  • *.gsc - Data Container, Unknown Format or Files (I cbf right now to do the Hex Research on this one)
  • *.pak - A file containing data from numerous other files; the header contains the list of files it contains data from, then all subsequent information is dumped below
  • *.ai2 - Unknown ('LevelPath' for AI to follow?)
  • *.scp - Script files (The game engine does not require compiled scripts; it reads in plain english)
  • *.bur - Unknown
  • *.par - Unknown (Possibly depreciated and removed)
  • *.gra - Unknown (Possibly depreciated and removed)
  • *.bik - Bink Video File, a common game video format offering high quality with lower file sizes; RAD Video Tools are free to use to open these
  • *.dds - Direct Draw Surface, a common image format in video games, especially as alpha images
  • *.raw - Raw Image Data File, a non-common image with no compression
  • *.ico - Windows Icon File
  • *.ats - Script Files, almost identical to *.scp files
  • *.fnt - Compiled Font Files
  • *.csv - Comma Separated Values File (only one present, contains localisation strings)
LEGO® Indiana Jones™ 2 File Types:
  • *.cfg - Configuration File
  • *.txt - Configuration files
  • *.pak - A file containing data from numerous other files; the header contains the list of files it contains data from, then all subsequent information is dumped below
  • *.ogg - OGG Vorbis Sound File
  • *.wav - Waveform Audio File Format
  • *.apj - (Possibly a list of characters in the games and where to get their files, and also lists a "MOBJ")
  • *.cd - (Contains data from the *.apj file)
  • *.as - (Looks like the last two, but this one seems to be specifcally for animation and movement)
  • *.ghg - Model Data and Node/Bone Information
  • *.gsc - Data Container, Unknown Format or Files (I cbf right now to do the Hex Research on this one)
  • *.cu2 - (Probably contains all the custom animations and camera data for specific cutscenes in the game)
  • *.tex - Compressed texture files
  • *.gix - GUI Scripts
  • *.gil - (Some weird combo of BASIC and C programming code; probably depreciated and removed)
  • *.fnt - Compressed Font File
  • *.gip - GUI Scripts, the same as *.gix
  • *.csv - Comma Seperated Values list
  • *.ft2 - Unknown (Possibly a container for multiple *.fnt files?)
  • *.led - (Just like *.cd, but controls lighting data)
  • *.rtl - Unknown
  • *.bur - Unknown
  • *.dno - Unknown
  • *.scp - Script Files
  • *.gin - (Some crazy cross between a list of scripting functions and a configuration file)
  • *.spl - Spline Files?
  • *.ai2 - Unknown ('LevelPath' for AI to follow?)
  • *.anm - Level Specific Animations?
  • *.sfx - Level Specific Sounds?
  • *.sav - Save file for tutorials?
  • *.bik - Bink Video File
  • *.par - Sound effect configuration?
  • *.ptl - Unknown
  • *.dds - Direct Draw Surface
  • *.raw - Raw Image Data File
  • *.ico - Windowns Icon FIle
  • *.ats - Script Files
As you can see, a lot more file types, and a lot more which need to be figured out. Now, here's how you set up your game so you can mod it:
  • Download and install QuickBMS, and get the "Traveller's Tales games DAT files extractor (script 0.3) (*.dat) (experimental)" BMS script all from here: http://aluigi.alterv...rg/quickbms.htm.
  • Save the BMS script to where you installed QuickBMS.
  • Drag the script onto QuickBMS.exe.
  • Select one of the .dat files from either game.
  • Create a new directory elsewhere on your computer. Save the files here.
  • Wait for everything to extract, then rinse and repeat, each to sepeate folders.
  • Make a copy of your game folder.
  • In the copy, delete all the *.dat files.
  • Open the folders you extract the files to, and copy everything inside. For LEGO Star Wars Complete Saga, you should be copying folders and files such as "Audio", "CHARS", "PC" and more, but not the folder everything is contained in.
  • Paste all files in the copied game folder.
  • Play to test if everything is correct.
Alright, time for some tutorials on how to do cool things! Here we go:

How to Add Objects To A Map in Level Builder for Indiana Jones 2:
  • For this tutorial, will be modding the Bonus Exterior map. You need to be map specific.
  • Open the following files, "levels\Builder\BuilderBonus\BuilderBonus.txt" and "levels\BuilderBonus\BuilderBonus.txt".


    Basically, you need to figure out which level yours is from, and its dependent on the set. Raiders of the Lost Ark is BuilderRaiders, The Last Crusade is BuilderCrusade and so forth. There will be on folder in the Levels directory, and one in the LevelsBuilder directory. In both of these, there will be a text file with the same name as the folder. Open these up.
  • In the "levelsBuilderBuilderBonusBuilderBonus.txt" file, find the section where objects of the same category are located. Ensure if you have a minfigure, you get it from where the minifigures are, if you have a vehicle, it's in the vehicle section, and if it's in the hazards category, get it from there. Copy and paste the entry as many times as you need objects. MAKE NOTE that there is LIMITED SLOTS for objects in categories.'
  • In the pasted entry, you need to change 3/4 things. Firstly, in the second bit of text, there should be a number. Increase the last number on the list of objects in the category you want to place your object by one and write it here (not on the last object). If you see that the Icon is followed by the name of an object (If it says Icon_XXX, do nothing to it), you need to put a space between "Icon", then write Icon_ and then add the name of your object here without a space. Next, for most objects apart from minfigures, you need to change the text after map to say the object name. Lastly, for ALL objects you need write the name of the object after char/NAME. One entry would look like this:

    		giz MiniFigNull15_ob icon Icon_xxx map minifig	char Scientist	Unlock 0 Menu Enemy GridPos 0 Cost 0 aiscript bldr_goon
    
  • Save this file, and remember the object names of the things you just implanted.
  • In the other text file, simply write 'character "YOUR OBJECT HERE" resident'.
  • Open Indiana Jones and test.
How To Get Unlimited Bricks in LEGO® Indiana Jones™ 2 Builder Mode:

Unlike the other tutorials, this functions for ALL levels. Now, it's quite possible that, in the while that it's gone by since I performed these mods myself, I've forgtten some code. I'm very sorry if I have. Moreover, Baseplates always seem to still cost bricks. I'm looking into this problem.
  • Go into your "levels\Builder" directory.
  • For all folders, except for "BuilderBaseMap", "BuilderBalloons" and "BuilderHub", there will be text files with the same name as the folder.
  • In every text file, you find that there is a giant, spreadsheet-style list of items and their properties. For every object there will be a property called "Cost". Replace the number next to "Cost" (usually 500) to 0.
  • Save the text file after you have done every single object.
  • Play the game to test.
How To Get Semi-Unlimited Space in LEGO® Indiana Jones™ 2 Builder Mode:

Before we get started, I'll tell you now; you can't actually have UNLIMITED space. You can certainly extend it very far, but there is a point where the internal code just goes NOPE. Also, it's quite possible that, in the while that it's gone by since I performed these mods myself, I've forgtten some code. I'm very sorry if I have. Alright, let's get right down to business:
  • For this tutorial, will be modding the Bonus Exterior map. You need to be map specific.
  • Go into "levels\BuilderBonus". There will be 7 folders. In each folder, you will find a file called "BonusBuilder#.txt" (# represents a number), OR a file called "BonusBasePlates.txt". Open all of them.
  • Find the section called "builderterrain_start" in each.
  • You will find the follow bits of code:
    		grid_size 72
    		tile_width 4
    
    Increase the number values as you see fit. I chose the following:
    		grid_size 144
    		tile_width 32
    
  • Save the files, and play the game to test.
How To Modify Music in Travelers Tales Games:
  • Create some music in any program of your choice, and convert it to .ogg. You can use InfranView and many other programs to achieve this. For this tutorial, our audio file will be called "ijthemes.ogg".
  • Open the Audio folder in your modded game directory.
  • Place the song you made in the "_Music" directory.
  • There will likely be one or two .cfg files here. For LEGO Indiana Jones 2, there are 2; one for music and one for all other audio. For this tutorial, open up the Music.cfg.
  • There are multiple codes and sections. Firstly, select a place where you would like to hear to music. For this tutorial, we shall choose the FrontEnd (Main Menu).

    PLEASE NOTE: You don't need to stick your entry in a specific entry; it's only for organisation.
  • We are going to replace the "IJ_Titles". Place a semi-colon ( ;) before the IJ_Titles listing to comment it out. It no longer exists according to the game.
  • Follow this format to replace the code: There are three types of music; 'QUIET' is normal, 'ACTION' is specifcially for fights, and 'NOMUSIC' is silences, ambience and SFX. We shall use "QUIET". Write this first, then put a space. In quotes, put the name, without path or file extension, of your sound file. I would write "ijthemes". After this, press the tab key a couple times to match the cursor up with the other entries, then write "ID". Because of the way the engine is set out, we have to be very specific here, and use "IJ_Titles" with quotes. Press tab a couple more times, then write "ATTENUATION -3" without quotes (I still don't understand why this here, but I'll figure out for you.)
  • Save the file and play to test.


#13
le717

I went over the .exe myself a while back, and there does seem to be some internal strings for it (as well as a list of banned names in a text file I uploaded a while back), but apart from those, I can't see anything you would find for online on the Xbox version. I'll take a deeper look for you.


If you don't remember, LucasArts released a patch for LIJ2 on the Xbox 360 and PS3 which created online play. If the strings for online play was already in Xbox, and the patch just enabled it, the strings in the PC version could be leftover from the porting (if that is how it works). If they are not, then why did they not update the PC to enable online play and fix the build your own adventure mode at the same time? Every time I run that section, it crashes. And that was one of the big draws of LIJ2.

Oh, if you want to see the strings I found, here they are:

Spoiler



Ugh. The spoiler messed up the entire thing. Well, you can figure out what it is.

Edited by le717, 13 January 2012 - 08:13 PM.


#14
McJobless

If you don't remember, LucasArts released a patch for LIJ2 on the Xbox 360 and PS3 which created online play. If the strings for online play was already in Xbox, and the patch just enabled it, the strings in the PC version could be leftover from the porting (if that is how it works). If they are not, then why did they not update the PC to enable online play and fix the build your own adventure mode at the same time? Every time I run that section, it crashes. And that was one of the big draws of LIJ2.

Oh, if you want to see the strings I found, here they are:

Spoiler

Yeah, I can see where you're going. I'm going out to buy and Xbox 360 copy soon, and then through Hotswapping I'll be able to obtain a full copy of it. The newest copies should be pre-patched (probably not, so I'll get my friends to use their special tools to manaully download and send me the patch), and from there I'll look into the differences, and with any luck, I'll be able to find something that enables online play for PC.

Just have to remember that the 360 version uses Xbox Live, and the PS3 version uses Playstation Network, so that might burn a big hole in our plans, but I'll see what I can do.

BTW, my Build Your Own Adventure works just fine...when does your crash?

#15
le717

BTW, my Build Your Own Adventure works just fine...when does your crash?


It crashed while it was loading. I could build it, but it would always crash on the loading screen. But that was on our old computer, and I haven' tried it lately.

Yea. I got some questions about extracting the files. I'm doing it right now, but the program keeps saying that some files has not been found, so it cannot be extracted. What is going on? I also keep getting prompts about files that already exist. What am I to do about that? I just keep hitting return, which just skips the files.

#16
McJobless

Yea. I got some questions about extracting the files. I'm doing it right now, but the program keeps saying that some files has not been found, so it cannot be extracted. What is going on? I also keep getting prompts about files that already exist. What am I to do about that? I just keep hitting return, which just skips the files.

Methinks it relates to the ".pak" files. From what I've seen, the pack files actually contain most of the files you mod, and the extracter will try and get them out; it's quite possible that those files are already pre-extracted inside your .dat files. I have no real idea, however, but I will recommend this.

Basically, create a .bat file where you have your QuickBMS Program and script. Edit the .bat file, and paste this in:

quickbms ttgames.bms "H:\LucasArts\Original\Lego Star Wars II\lego_data" "C:\Output" >> errorlog.txt
pause
exit

Replace "ttgames.bms" with whatever your BMS script is called, Replace "H:\..." with the path to your game you want to extract, and replace "C:\Output" with the name of the folder you want to extract the files to. Then, save, delete the files you've already extracted from the game, and run. Let it all run and overwrite anytime it says it needs to. After it's done, you'll see a new text file called "errorlog.txt". Send me the contents of that, please.

#17
le717

Error Logs hot off the press! I'm not sure if they are complete, cmd.exe stopped giving info a couple of times, so I assumed it was done.

Note: I will remove the link after you get it. It won't stay up forever.

EDIT: Link removed on account of it not working.

I named each file what each dat file was called (GAME, GAME0, 1, 2) so you can tell which one was which. ;)

Edited by le717, 14 January 2012 - 03:44 PM.


#18
McJobless

Error Logs hot off the press! I'm not sure if they are complete, cmd.exe stopped giving info a couple of times, so I assumed it was done.

Note: I will remove the link after you get it. It won't stay up forever.

http://k002.kiwi6.co...kbms_errors.zip

I named each file what each dat file was called (GAME, GAME0, 1, 2) so you can tell which one was which. ;)

Alright, after eating a piece of KFC (your post made me hungry ;P), I opened up the .zip to find...nothing. It's empty. Might need to add the files again.

For reference, I re-did mine today, and I got no errors about over-writting. Maybe it might work if you extract each .dat file to a different location, and then copy all the files over.

#19
le717

Alright, after eating a piece of KFC (your post made me hungry :P ), I opened up the .zip to find...nothing. It's empty. Might need to add the files again.

For reference, I re-did mine today, and I got no errors about over-writting. Maybe it might work if you extract each .dat file to a different location, and then copy all the files over.


KFC? Sorta-kinda-yuck. Chick-fil-a is so much better than KFC any day.

Kiwi6 has been acting up lately. This morning when I went to download it, Windows told me it wasn't a valid .zip file. I removed the link, it won't work anymore. I zipped them up, and it worked, so it messed up while uploading to Kiwi6. The error logs are on another computer that isn't on right now, but I'll get them to you when I turn it on.

Each .dat was going to a different location. I have I have a folder on the desktop called LIJ2 Files, and inside that I have folders with the names of the .dat files with each .dat file it's folder. And I'm extracting to the folder which contains the .dat file. If that doesn't sound like different folders to me, I don't know what is.

EDIT: Here are the error logs.

Link Removed

If they are not public yet, they will be soon. ;)

EDIT 2: I uploaded them this morning, but they are not public yet. I will direct link them. Perhaps that will work.

Game.dat: http://www.brickshel...rrorloggame.txt

Game0.dat: http://www.brickshel...rorloggame0.txt

Game1.dat: http://www.brickshel...rorloggame1.txt

Game2.dat: http://www.brickshel...rorloggame2.txt

Also, I found some more proof of networking. I'm thinking that the code in the exe is for the PC version. Just open up a save game in a Hex editor. At the top there will be a lot of code that talks about networking. It seems to me that there is networking baked into the game; it just was never made active.

Edited by le717, 15 January 2012 - 01:06 AM.


#20
McJobless

EDIT 2: I uploaded them this morning, but they are not public yet. I will direct link them. Perhaps that will work.

Game.dat: http://www.brickshel...rrorloggame.txt

Game0.dat: http://www.brickshel...rorloggame0.txt

Game1.dat: http://www.brickshel...rorloggame1.txt

Game2.dat: http://www.brickshel...rorloggame2.txt

Also, I found some more proof of networking. I'm thinking that the code in the exe is for the PC version. Just open up a save game in a Hex editor. At the top there will be a lot of code that talks about networking. It seems to me that there is networking baked into the game; it just was never made active.

Yeah, I came here this morning (my time, you posted them at 2AM and I came on at 3AM AEST) and the original link wasn't working. Now, looking over your logs, this is absolutely horrible; everything is completely bugged. What I need you to do is make a new QuickBMS script. Firstly, add ".bak" to the end of your script. Open Notepad, and copy + paste the following code:

# Traveller's Tales games DAT files extractor (script 0.3)
#  LEGO Batman
#  LEGO Star Wars
#  LEGO Indiana Jones
#  LEGO Harry Potter
#  Transformers
#  others, check them on http://www.ttgames.com
#
# this script is a complete chaos... it's only a work-around since I didn't finish the research
# if you want all the files in PERFECT state you must set NAMELESS to 1
#
# script for QuickBMS http://aluigi.org/papers.htm#quickbms

print "NOTE that this script is a work-around so will not work with all the files\nif you want to extract ALL the files without names (but they will be 100% corrects) edit this script setting NAMELESS to 1"

set NAMELESS long 0 # set to 1 to extract the files without names
comtype lz2k

get INFO_OFF long
if INFO_OFF & 0x80000000
    math INFO_OFF ^= 0xffffffff
    math INFO_OFF <<= 8
    math INFO_OFF += 0x100
endif
get INFO_SIZE long
log MEMORY_FILE INFO_OFF INFO_SIZE

get TYPE_BOH long MEMORY_FILE
get FILES long MEMORY_FILE
savepos INFO_OFF MEMORY_FILE

math TMP = FILES
math TMP *= 16
math NAME_INFO = INFO_OFF
math NAME_INFO += TMP

goto NAME_INFO MEMORY_FILE
get NAMES long MEMORY_FILE
savepos NAME_INFO MEMORY_FILE

math TMP = NAMES
math TMP *= 8
math NAME_OFF = NAME_INFO
math NAME_OFF += TMP

goto NAME_OFF MEMORY_FILE
get NAMECRC_OFF long MEMORY_FILE
savepos NAME_OFF MEMORY_FILE

math NAMECRC_OFF += NAME_OFF
goto NAMECRC_OFF MEMORY_FILE
for i = 0 < FILES
    get CRC long MEMORY_FILE
    putarray 0 i CRC
next i

if TYPE_BOH <= -2
    get DUMMY1 long MEMORY_FILE
    get DUMMY2 long MEMORY_FILE
    if DUMMY1 > 0
        #print "Error: not implemented yet"
        #cleanexit
    endif
endif

# print "files:       %FILES%"
# print "names:       %NAMES%"
# print "info_off:    %INFO_OFF%"
# print "info_size:   %INFO_SIZE%"
# print "name_info:   %NAME_INFO%"
# print "name_off:    %NAME_OFF%"
# print "namecrc_off: %NAMECRC_OFF%"

set NAMEZ long 0
set FULLNAME string ""
set FULLPATH string ""

for i = 0 < FILES
    # do NOT try to understand this part because I have not understood it too <img src='http://www.rockraidersunited.org/public/style_emoticons/<#EMO_DIR#>/e342154.png' class='bbc_emoticon' alt=':)' />
    do
        goto NAME_INFO MEMORY_FILE
        get NEXT short MEMORY_FILE
        get PREV short MEMORY_FILE
        get OFF long MEMORY_FILE
        savepos NAME_INFO MEMORY_FILE

        math OFF += NAME_OFF
        goto OFF MEMORY_FILE
        get NAME string MEMORY_FILE

        if NEXT & 0x8000    # 16bit sign conversion
            math NEXT |= 0xffff0000
        endif

        putarray 1 NAMEZ FULLPATH
        if NEXT > 0 # folder
            if PREV != 0
                getarray FULLPATH 1 PREV
            endif
            putarray 1 NAMEZ FULLPATH

            if NAME != ""
                string FULLPATH += NAME
                string FULLPATH += \
            endif
        endif

        math NAMEZ += 1
    while NEXT > 0
    set FULLNAME string FULLPATH
    string FULLNAME += NAME

    if NAMELESS == 0
        math CRC = 0x811c9dc5
        strlen NAMESZ FULLNAME
        for j = 0 < NAMESZ
            getvarchr CHR FULLNAME j
            if CHR >= 0x61
                if CHR <= 0x7a
                    math CHR -= 0x20
                endif
            endif
            math CRC ^= CHR
            math CRC *= 0x199933
        next j
        for j = 0 < FILES
            getarray TMP 0 j
            if CRC == TMP
                break
            endif
        next j
        if j >= FILES
            print "Alert: the crc of the file %FULLNAME% has not been found, it can't be extracted!"
            #cleanexit
            # all wrongs!
            math j = i
            #math TMP = NEXT
            #math j = 0
            #math j -= NEXT
            #math j -= 1
        endif
        math TMP = j
    else
        math TMP = i
    endif

        math TMP *= 16
        math TMP += INFO_OFF
        goto TMP MEMORY_FILE
        get OFFSET long MEMORY_FILE
        math OFFSET <<= 8
        get ZSIZE long MEMORY_FILE
        get SIZE long MEMORY_FILE
        get PACKED long MEMORY_FILE

        goto OFFSET
        getdstring SIGN 4
        if SIGN == "LZ2K"
            set PACKED long 2
        else
            set PACKED long 0
        endif

        if PACKED & 2
            callfunction UNLZ2K
            log FULLNAME 0 SIZE MEMORY_FILE2
        else
            if SIZE != 0
            if ZSIZE != 0
            if SIZE != ZSIZE
                print "SIZE (%SIZE%) and ZSIZE (%ZSIZE%) differ, contact me"
                cleanexit
            endif
            endif
            endif
            log FULLNAME OFFSET SIZE
        endif
next i


startfunction UNLZ2K
    putvarchr MEMORY_FILE2 SIZE 0
    log MEMORY_FILE2 0 0
    append
    for TMPSZ = 0 < ZSIZE
        goto OFFSET
        getdstring SIGN 4
        if SIGN != "LZ2K"
            print "Error: the signature at offset %OFFSET% (%SIGN%) is not LZ2K, contact me"
            cleanexit
        endif
        get LZ2K_SIZE long
        get LZ2K_ZSIZE long
        savepos OFFSET
        if LZ2K_ZSIZE == LZ2K_SIZE
            log MEMORY_FILE2 OFFSET LZ2K_SIZE
        else
            clog MEMORY_FILE2 OFFSET LZ2K_ZSIZE LZ2K_SIZE
        endif
        math OFFSET += LZ2K_ZSIZE
        savepos TMP MEMORY_FILE2
        math TMPSZ += 12
        math TMPSZ += LZ2K_ZSIZE
    next
    append
endfunction
Save the BMS script in the exact same place with the exact same name as the script you were using before. This should work.

On the subject of networking, I think you're absolutely correct. I'm getting my friend to take a look at it tonight; hopefully with a little luck he might be able to figure out what Hex you need to edit to make networking active.