Brawl's Character Select Files

Started by Pharrox, August 10, 2008, 04:45:11 AM

Previous topic - Next topic

Pharrox

Okay, I have a couple of questions I was hoping someone could help me out with.

Firstly, I am working with a group of people over at GBAtemp to make custom textures for Brawl characters (I made the original hack, and they made the amazing textures).  I was wondering if anyone knew the location of the portraits Brawl uses for the main character select screen.

The files exist in the following places, but none of them are what the game actually uses:

Menu>Common>char_bust_tex
Menu>SelCharacter>Char_bust_text
Menu2>sc_selcharacter_en.pac

If anyone could help find what file the game is accessing it would be a great help.

Also, this isn't a code request, just a question I've been wondering about for a while.  Character costumes are stored in files named FitCharacter##.pcs.  If I were to make my own .pcs file and put it after the originals on the disk, would it be possible to write a code to load that texture in game?

Androu1

Nice to see you here too,Pharrox...(just so you know,I still haven't got my OWN textures working.The only thing left for me to do is try Verbatim DVDs,lol)

Anyway,have you checked the first .pac? I don't mean Fit______00.pac.Just Fit______.pac

(We all know what the _____ is for!)

And,I do think that it will be possible to load textures from the SD card using USB Gecko and Ocarina.They need to fix ingame SD Card support for Ocarina,tho XD

EDIT:And,loading totally new .pcs files is not that crazy of an idea.They could make that by editing the color modifier thing a bit,I think...

Nuke

For edits of this size, I would say trucha signer is the way to go as it shows file structure and you can extract and replace files.

If you want to load and save textures from memory then try something like the following:

1. Get info on the texture formats, find and extract the Textures you want to edit on the DVD
2. Now when your playing the game and you know that Texture is loaded, you would need to dump Mem2 (texture memory is stored here).
3. Now in your hex editor search Mem2 with the header + info of the texture you want to replace. say it finds your texture at 01345678 then you will need to upload your new (replacement) texture at 91345678 when playing the game.

That pretty much the simple basics of it, You would need USB Gecko to upload a codeblock you can do this from the GUI or the command line version. Also make sure your new textures are not bigger than the original textures as you may crash the game.

I do think trucha is the best way to go with this project, you can still distribute your textures as there legal, and the common key any one can get by using bushings xyz.dol application.

USB Gecko or knowing someone with one to do ram dumps for you, might save you burning lots of DL DVD's

If you need any info on texture or archive formats let me know.
0xFFFFFFuuuuuuu

Pharrox

Thanks for the responses.  Unfortunately the select screen textures aren't in a character's FitCharacter.pac file either. :(

I've already got custom textures working with Trucha.  You can see that thread here if you're interested.  My question is actually about taking that a step farther.  A character's file structure is as follows:

FitPikachu.pac
FitPikachu00.pac
FitPikachu00.pcs (normal)
FitPikachu01.pac
FitPikachu01.pcs (red hat)
FitPikachu02.pac
FitPikachu02.pcs (green headband)
FitPikachu03.pac
FitPikachu03.pcs (blue goggles)

The original .pac file (no numbers) contain things like attack properties (not animations).  All the files with ##.pac are never used, and can be deleted or replaced without consequence.  The ##.pcs files are where the character data (models and textures) are stored.  The are just copies of the similarly numbered .pac files but with some compression thrown in.

Brawl's file structure is very bad in the fact that many files are just copies of other files and are never used (the ##.pac files for example).  So far myself and a few other have been able to get our own textures running in game by replacing a character's .pcs files with some of our own.  

But that's the problem.  In order to get our own textures we have to remove some of the textures already in the game.  At one point I edited Brawl's fst.bin file so that FitPikachu03.pcs became FitPikachu 04.pcs and FitPikachu03.pac became FitPikachu03.pcs.  I then put in my own .pcs file for the new 03.pcs.  So the file structure was:

FitPikachu00.pac
FitPikachu00.pcs (normal)
FitPikachu01.pac
FitPikachu01.pcs (red hat)
FitPikachu02.pac
FitPikachu02.pcs (green headband)
FitPikachu03.pcs (my texture)
FitPikachu04.pcs (blue goggles)

When I tried loading it in game it loaded my texture instead of the blue goggles.  The blue goggles weren't selectable even though all the data for them remained on the disk.  What I'm wondering is if it would be possible to overwrite the useless .pac files and be able to load those textures as well as the ones already in game:

FitPikachu00.pcs (my texture)
FitPikachu01.pcs (normal)
FitPikachu02.pcs (my texture)
FitPikachu03.pcs (red hat)
FitPikachu04.pcs (my texture)
FitPikachu05.pcs (green headband)
FitPikachu06.pcs (my texture)
FitPikachu07.pcs (blue goggles)

Basically it would be a code so that the game would read past a character's limit for textures (stopping at 03 for Pikachu) and would keep cycling through textures for all existing .pcs files.  It would be nice to also make it preview the textures on the selection screen, but that would make it much more complicated.