Spoiler Updated to v0.5! (Instructions are basically the same, but now the new folder directories are listed alongside previous versions.)

Table of contents! Now you can just CTRL+F a section by its number.

Notes section moved to the beginning - please read before starting!

Added a reference section, including a list of each config template and their offset data. Now it can be bookmarked and easily viewed rather than scrolling through the guide!

Removed fluff.

To look up a section, CTRL+F the section numbers. For example "2.1" or "[2.1]" to get to Modules.

​

(read before starting!)

[1.1] - Character Selection Portraits (CSPs)

[1.2] - CSS Icons and NmS

[1.3] - CSP names and .pat0 entries​

[2.1] - Modules

​

[3.1] - CosmeticXX.dat

[3.2] - CSSSlotXX.dat

[3.3] - FighterXX.dat

[3.4] - SlotXX.dat

[3.5] - CSSRoster.dat

​



[4.2] - Battle Portraits (BPs)

[4.3] - Info.pac, stocks, and BPs

[4.31] - InfFace_TopN__0.pat0

[4.32] - InfStockface_TopN__0.pat0​ [4.4] - STGResult.pac​ [4.1] - Result Screen Portraits (RSPs)[4.2] - Battle Portraits (BPs)[4.3] - Info.pac, stocks, and BPs[4.4] - STGResult.pac​

This tutorial has been re-written for the newest v0.5. The only difference between v0.5 and previous versions is (or should be) the folder directories.

This tutorial was written with the default SmashBoards theme in mind.

This tutorial was written with only Dolphin-users in mind. I haven't been able to get PM+BeX working on Hackless Wii (I think v0.2 bricked my Wii...), and I've yet to hear anything about Homebrew.

This tutorial only accounts for Versus Mode. The process for Training, Classic, etc should be somewhat similar but I recommend first starting with Versus.

The CSS will get screwy if you have over 50 character slots... beware! As far as I know there seems to be no workaround for this, besides replacing characters and the ? slot if you need more.

This tutorial will not cover messing with franchise icons. Franchise icons in the results screen are not replaceable textures but rather 3-D models (that aren't as easily editable).

For those interested in the Metal Sonic I'll be using in the tutorial: Dropbox It's only a simple Metal Sonic model over Sonic, no moveset changes or anything. I added appropriate SFX to his .pac and some electric GFX changes. Enjoy!



For the most part, your added character will need some SFX. If you're not familiar with SFX, I have another beginner's guide for that here.

Throughout the guide you'll see tiny bracketed numbers like [1.1] . Ignore these; only used for CTRL+F navigation.

ft_fighter.rel

.dat

FitFighter.pac

FitFighterMotionEtc.pac

FitFighterXX.pac/.pcs

FitFighterSpy.pac

FitFighterFinal.pac/.pcs

.dat

The PM+BeX build itself: v0.2 v0.3 v0.4 v0.5 (recommended)

BrawlEX 2.0.0.0 (We'll only be using the CosmeticConfig and SlotConfig files from this build.)



BrawlBox, preferably the latest v0.76b

BrawlEX Config Utility (Used for editing FighterConfig.dat files)

A module editor; I'll be using Pyotr's Module Editor for this process.

A hexadecimal editor such as HxD.

A decimal-to-hexadecimal converter, like this one. (Used for converting our fighter's ID to hexadecimal, covered later on.)

A string-to-hex converter, like this one. Used for victory names.

The files of the character you'll be adding. Includes stock icons, character selection portraits, .pac files, etc.

files, etc. Knowledge of running Project M on Dolphin. (Testing custom builds on Dolphin is much more efficient.)

Spoiler Decimal, Hexadecimal

128, 80

sc_selcharacter.pac

[1]

v0.2 - v0.3: private -> wii -> app -> RSBE -> pf -> menu2.

v0.4+: projectm -> pf -> menu2

sc_selcharacter.pac

char_bust_tex_lz77

.brres

[1.1]

.brres

.brres

Hotkeys: When an entry is highlighted, CTRL+N allows quicker renaming of files. CTRL+R allows you to replace files. CTRL+UP/DOWN moves the entry up or down.

Spoiler

MiscData[70]

[1.2]

Spoiler

MiscData[30]

[1.3]

(I wish.)

MenSelchrCname4_TopN__0.pat

MenSelchrCname4_TopN__0.pat

.pat

.pat

Note: When Texture0 is highlighted, press CTRL+H to add a new entry; useful when adding multiple fighters. And I haven't been mentioning this, but do save sc_selcharacter.pac every now and then. Also make back-ups of these .pat0 entries because BrawlBox loves corrupting them.

*And now we must do a similar process to the

MenSelchrFaceI_TopN__0.pat

file. The reason we edit these .pat files is so that the game recognizes the additional fighters. Given that, and the similar process which is about to follow, here's the rundown:



1) Expand

MenSelchrFaceI_TopN__0.pat

, then go to Face02 -> Texture0.

2) Add a new face entry for your fighter (so MenSelchrChrFace.122), and change the entry's FileIndex to 1221.

3) Under Face06, add a new NmS entry for your fighter (so MenSelchrChrNmS.121) and change its FileIndex to 1221.

4) Collapse

MenSelchrFaceI_TopN__0.pat

, and change its FrameCount to 1231.



Now you can collapse that

.pat

entry.

sc_selcharacter.pac.

Spoiler

Ignore the other MenSelchrFace entries, it's just FaceI we're looking at.

FitMetalSonic.pac, FitMetalSonicMotionEtc.pac

v0.2 - v0.3: private -> wii -> app -> RSBE -> pf -> module

v0.4+: projectm -> pf -> module

[2.1]

ft_metalsonic.rel



So now that our new fighter has their actual files and CSS info in the build, how do we get them to actually show up in-game? It's time for the Configs! Like mentioned earlier, a clone character in BrawlEX requires four config.dat files: So now that our new fighter has their actual files and CSS info in the build, how do we get them to actually show up in-game? It's time for the Configs! Like mentioned earlier, a clone character in BrawlEX requires four config.dat files:

CosmeticConfig.dat

CSSSlotConfig.dat

FighterConfig.dat

SlotConfig.dat



v0.2 - v0.3: private -> wii -> app -> RSBE -> BrawlEx

v0.4+: projectm -> pf -> BrawlEx



Here are the folders that contain each fighter's Config files, also named as such. Let's start adding our fighter's Config files. For my example of Metal Sonic and his(?) hex ID of 7A, here's the rundown:



1) Grab the SlotConfig and CosmeticConfig templates matching the character you want to clone from the BrawlEX 2.0.0.0 download, insert them into your build, and rename them Slot7A.dat and Cosmetic7A.dat respectively.



2) For the CSSSlot and Fighter Config templates you can simply go to the respective folders in your build, copy the CSSSlotxx.dat and Fighterxx.dat of the character you want to clone, and rename them accordingly.



We will be editing these files with HxD, starting with...



Note: We name the config templates with the same hex ID as our new fighter to keep things consistent. The file names don't necessarily need to be named with the same hex ID as your fighter, but again, let's keep things simple.



Found in:Here are the folders that contain each fighter's Config files, also named as such. Let's start adding our fighter's Config files. For my example of Metal Sonic and his(?) hex ID of 7A, here's the rundown:1) Grab the SlotConfig and CosmeticConfig templates matching the character you want to clone from the BrawlEX 2.0.0.0 download, insert them into your build, and rename them Slot7A.dat and Cosmetic7A.dat respectively.2) For the CSSSlot and Fighter Config templates you can simply go to the respective folders in your build, copy the CSSSlotxx.dat and Fighterxx.dat of the character you want to clone, and rename them accordingly.We will be editing these files with HxD, starting with...

CosmeticXX.dat

[3.1]

Spoiler Cosmetic Config0x00 Tag ("COSC")

0x04 File Size (0x40)

0x08 Version (2)

0x0C Edit Flags



0x10 Cosmetic ID

0x11 Unknown

0x12 *Primary Character (Slot)

0x13 *Secondary Character (Slot)

0x14 Franchise

0x15 Unknown3

0x16 Unknown4

0x17 Unknown5

0x18 Announcer SFX

0x1C Unknown6

0x1D Unknown7

0x1E Unknown8

0x1F Unknown9

0x20 Victory Name (0x20 chars)



Edit Flags:

0x01 Set Primary Character, Secondary Character



* Not set unless specified in Edit Flags.

[3.2]

Spoiler Moydow said:

Code: 0200 0103 0001 0805 0404 0302 0C00



In-game data for colours (the first byte of each "pair") works like this:



Spoiler 00 - Red (usually FitFighter01, unless the default costume is red)

01 - Blue (usually FitFighter03, unless the default costume is blue)

02 - Yellow

03 - Green (usually FitFighter02, unless the default costume is green)

04 - Purple

05 - Light blue (also Captain Falcon's default costume's blue-that-isn't-blue-enough-for-the-blue-team)

06 - Pink

07 - Brown

08 - Black

09 - White

0A - Orange

0B - Grey (only Fire Luigi and default Wolf have this)



0C00 - denotes that no more costume-color definitions for this character follow after this point In the game's data, Samus' colour data looks like this:In this, you should read the bytes as pairs. The first byte (two characters) is the colour that costume is recognised as, the second (last two characters) is the costume (FitSamus##.pac). The order set here is the order in which they appear on the Character Select Screen (CSS). So the first costume for Samus to appear on the CSS is costume 00 (default), second is blue (03), third is red (01), and so on.In-game data for colours (the first byte of each "pair") works like this: Click to expand...

CSSSlot.dat

Code: 0100 <-- 01 is the in-game data for blue, 00 comes from FitMetalSonic00.pac/.pcs 0001 <-- 00 is the in-game data for red, 01 comes from FitMetalSonic01.pac/.pcs 0302 <-- 03 is green, 02 is from FitMetalSonic02.pac/.pcs, and so on. 0203 0804 0C00 <- Tells the game that there are no more costumes.

Code: 01 00 00 01 03 02 02 03 08 04 0C 00

[3.3]

.sawnd

Spoiler 01 - Mario

02 - Link

03 - Pit

04 - Meta Knight

05 - Dedede

06 - Donkey Kong

07 - Samus

08 - Yoshi

09 - Kirby

0A - Fox

0B - Pikachu

0C - Luigi

0D - Captain

0E - Ness

0F - Koopa

10 - Peach

11 - Zelda

12 - Ice Climbers

13 - Marth

14 - GameWatch

15 - Falco

16 - Ganon

17 - Wario

18 - Pikmin

19 - Lucas

1A - Diddy

1B - PokeTrainer

1C - PokeLizardon

1D - PokeZenigame

1E - PokeFushigisou

1F - Lucario

20 - Ike

21 - R.O.B.

22 - Purin

23 - ToonLink

24 - Wolf

25 - Snake

26 - Sonic

27 - select

28 - ZakoFighter



116 Kuribo

117 Patapata

118 Hammerbros

119 Killer

11A Dekakuribo

11B GalFire

11C Poppercam

11D Bitan

11E Roada

11F Bombhead

120 Gyraan

121 Bucyulus

122 Tautau

123 Flows

124 Aroaros

125 Botron

126 Jyakeel

127 Ghamgha

128 Pacci

129 Faulong

12A Deathpod

12B Spar

12C Kokkon

12D Jdus

12E Mite

12F Shelly

130 Ngagog

131 Cymal

132 Teckin

133 Cataguard

134 Siralamos

135 Boobas

136 Arman

137 Prim

138 Robo

139 - Bosspackun (or as I like to call, Bosspack-kun)

13A - Rayquaza

13B - Porky

13C - Galleom

13D - Ridley

13E - Duon

13F - Meta Ridley

140 - Taboo

141 - Master Hand

142 - Crazy Hand

143 Falconflyer

Spoiler

Note: You'll see files such as FitFighterDark and FitFighterSpy. You need those files! Otherwise your fighter will crash the game upon starting a match. If the character you're cloning doesn't have those files in the build, get them from the Brawl Data Partition drive

[3.4]

[3.5]

Spoiler 15 - Wario

00 - Mario

09 - Luigi

0D - Peach

0C - Bowser

05 - Yoshi

01 - Donkey Kong

1A - Diddy Kong

0A - Captain Falcon

07 - Fox

13 - Falco

25 - Wolf

0E - Zelda

0F - Sheik

02 - Link

24 - Toon Link

14 - Ganondorf

17 - Pit

2E - Mewtwo

20 - Lucario

08 - Pikachu

23 - Jigglypuff

1D - Squirtle

1E - Ivysaur

1C - Charizard

19 - Lucas

0B - Ness

03 - Samus

04 - Zero Suit Samus

43 - Ridley

06 - Kirby

16 - Meta Knight

1F - King Dedede

21 - Ike

11 - Marth

2D - Roy

10 - Ice Climbers

22 - R.O.B.

12 - Mr. Game & Watch

18 - Olimar

26 - Snake

27 - Sonic

29 - Random

Spoiler



(This is an image of my personal build. Ignore the other stuff.) (This is an image of my personal build. Ignore the other stuff.)

info.pac

Hello everyone! This thread is a followup to the Project M + BrawlEX thread with said build put together by the talents of @PyotrLuzhin and company. For those having trouble following along with the original thread, here's an alternative tutorial for using PM+BX!This tutorial assumes you have no prior knowledge with Project M modding and the software linked below. To demonstrate, I'll be adding Metal Sonic (everybody's favorite hedgehog) to the build with an ID of 122.NotesBackground Information[1] Character Selection Screen[2] Adding our fighter's files[3] BrawlEX configuration templates[4] In-game cosmetics & Results Screen[5] Troubleshooting[6] Conclusion[7] ReferencesPM+BeX effectively allows you tocharacter slots to Project M through (from what I understand) a clone engine. In other words, replacing an existing character is no longer needed! And just to clarify, PM+BX uses Project M 3.6 as a base.In BrawlEX, clones consist of a module (such as), a fighter folder, and four configfiles.- The module instructs the game on "building" the fighter.- The fighter folder contains the fighter's moveset (), costumes (), Spy files (), and Final Smash files ().- The four configfiles contain more information on a fighter's aspects such as announcer call, number of costumes, etc. Each file will be covered in detail.With that being said, let's begin! To start off, here's what you'll need:While there are multiple ways to go about this, my preference is starting off with the Character Select Screen (CSS). All the CSS files in-game we need to edit are in thefile.Note:has a file size limit of 3.79 MB! To play safe, always keep the file's size to 3.78 MB or less, otherwise the game crashes upon entering the CSS.Expand- here you'll find the CSPs of every fighter. For example, you can find Ganondorf's CSPs under MiscData[19]. The files containing said CSPs arefiles.To make our fighter their ownfile, scroll back up to char_bust -> right click -> New -> BBResource Pack. The newwill be at the bottom with an ID of 0. Change this ID on the right hand side of BrawlBox under FileIndex. For my example of Metal Sonic, I'll give him an ID of 122. Next, change Compression to ExtendedLZ77. Don't forget to do this! The game will crash if you leave the compression as LZ77 - this applies to all fighters you add to your build.Time to add our fighter's CSPs! Right-click the new MiscData[122] file and import your CSPs. Depending on how many characters you'll be adding to your build, you'll want to be wary of file size. I recommend your CSPs be CMPR format for saving space. Once done, name them accordingly. As our fighter's ID is 122, each CSP will be "MenSelchrFaceB.1221", "MenSelchrFaceB.1222", and so on. We are now done with CSPs! Go ahead and collapse char_bust.Here's a screenshot of what you should have so far:Navigate to the Textures(NW4R) folder in. Here you'll find the CSS Icons and the "MenSelchrChrNmS.xxx" files, the smaller names that go above each fighter's icon. Insert your fighter's CSS Icon (appropriately named MenSelchrChrFace.122 for my demo) and their NmS (MenSelchrChrNmS.122). Feel free to move the entries to a different spot within the folder; their placement doesn't matter. Once done, collapse MiscData[70].Simpler than the previous step - no messing with compression or FileIndex. Here's a screenshot of what I have so far:Now to add our fighter's names that go over their CSPs in-game! Navigate to the Textures(NW4R) folder in. Here you'll find franchise icons and CSP names. Like before, import your fighter's CSP name (MenSelchrChrNm.1221 for my example) into the folder and name it accordingly. Collapse the Textures folder, then open the AnmTexPat(NW4R) folder.Here's where the fun begins!Let's start by editing. Expand the file -> Card010 -> Texture0. Here you'll see another list of the CSP names. Add a new entry and rename it "MenSelchrChrNm.1221". Now on the right-hand side of the window, change the entry's FileIndex to 1221. When done, collapse Card010.Under the same .pat file there is also a Card011. Yup, we need do the same thing as before. Add a new entry, rename it, and change its FileIndex. Once done, collapseand highlight it. On the right-hand side, change thefile's FrameCount to 1231. Each .pat's frame count must be 1 frame above the highest character ID. Once done, collapse thefile.Once done, you can now save and exitNice! Here's a screenshot of what things are supposed to look like:Time to actually get our fighter's data in the build! For now we will be adding the contents of our fighter's... fighter folder and their module. In the PM+BX build navigate to private -> wii -> app -> RSBE -> pf -> Fighter; this folder contains each character's costumes, motions, etc.Let's create our new fighter's folder. Make a new folder, name it "metalsonic" or whoever, and open it. Now just insert your fighter's said files here, naming them accordingly of course. For example:, etc.Once done, navigate to the module folder. Here you'll find each fighter's module/.rel file, and each stage module.When first opening the PM+BX build you'll see a folder called "EXModules". You'll need the modules in this folder. Each module within is conveniently coded so that they can be used with different character IDs. Use the .rel file of the character you want to clone. Since I'm adding Metal Sonic who goes over Sonic, I'd take the Sonic module from the EXModules folder. Then the next step is to take that .rel and insert it into the PM+BX build's module folder, renaming it toOpen said .rel in a module editor, and navigate to Section[8]. Not sure how it goes in BrawlBox, but in Pyotr's editor we can open this section via Memory Viewer on the right hand side. Now you'll see a bunch of hexadecimal stuff. In the very first offset, 0x0, also highlighted, you'll see an 8-byte string. The last two bytes of this string is a character's. (For example, Sonic's hex ID is 2F.)Remember our fighter's ID of 122? That's their, which is hardly used in this process. What we'll be needing from here on out is our fighter's hexadecimal ID; you can get this by using a simple decimal-to-hex converter like the one linked above. So 122 in hexadecimal is 7A. Meaning in the module editor we replace the last two bytes of offset 0x0.Once done, hit enter, exit out of Memory Viewer, then save the .rel. Now our fighter's .rel will be telling the game to load their files instead of someone else's. And that concludes this step!contains your fighter's CSS info, their victory text on the results screen, announcer SFX, and more.Here are the offsets in the .dat where each piece of info is found:We will only be editing the Cosmetic ID, Announcer SFX, and Victory Name. The Cosmetic ID is simply your fighter's hex ID, so change offset 0x10 to 7A. The announcer SFX offset is actually identifying a sound effect from this list . Your new fighter likely doesn't have their own announcer call, so I recommend redirecting the call to a blank sound effect such as 00001ED2 - this is a blank CoinLauncher sound.(Should you find yourself wanting to use a sound effect like STAGE CLEAR, you can use the same list to find other sound effects.)With the string-to-hex converter listed earlier, type in your fighter's name. It will then be converted to a hexadecimal string from which you can paste into offset 0x20 of the .dat. Once that's all done, save and exit the .dat.The CSSSlot file is mainly used to identify how many costumes your character has. This info begins at offset 0x20 of the .dat. This guide by @Moydow covers what you need to insert into offset 0x20 very well:So for example, Metal Sonic has a blue, red, green, yellow, and black costume. His fighter folder has his costumes in that order. Now what I do is enter the following into offset 0x20 of hisOr in other words:Once done, save, then exit. We're making progress!The FighterConfig contains much of the internal character data used by the game. For example it has IC-Constants and Character Load Flags (and I have no idea what those are).Luckily the only thing we need to edit in this file in HxD is the soundbank ID. This ID tells the game whosefile should the fighter use.Open up the .dat with HxD and navigate to offset 0x1C. The last two/three bytes of that string will be the soundbank ID. Replace that with whoever sound effects you want your new fighter to use.Here's a list of soundbank IDs:I have a custom .sawnd for Metal Sonic that replaces Master Hand's SFX, so I enter soundbank ID 141 into offset 0x1C. Once done, save and exit. With BrawlExConfig Utility, open the same Fighterxx.dat. You should see this pop up:Here you'll find more information on how your fighter works. You'll see an option to rename your fighter; go ahead and do so. When renamed, you'll see files your fighter need in which directory below. Under the resources section, you can modify how many FitFighterResult and Final files your fighter needs. You usually don't need to edit this section at all.Under the Colors section, check-in the amount of costumes your fighter has. Don't leave any extra boxes checked! And I'm not too sure what the ?A box is, but I just leave it checked. Once done with all that, save then close BrawlExConfig. Our fighter's Fighter.dat should be good to go!SlotConfig files allow transforming characters like Zelda/Sheik to behave properly, and contain miscellaneous fighter info like announcer calls. Here we'll only be editing our fighter's announcer call and victory fanfare for the results screen, so if you don't wish to do this then proceed to the next step.Otherwise...With your fighter's SlotConfigxx.dat open in HxD, navigate to offsets 0x20 and 0x28. These are victory fanfare and announcer call SFX IDs respectively. Here's the same SFX ID list from earlier; use that for whatever sounds you want for your fighter. Once done, save then exit out.This file is why the CSS is arranged as is. While this can be edited in HxD, I find BrawlExConfig Utility easier to use. As such I'll be using it for this guide. When open in BrawlExConfig, you'll see a list of character IDs. Remember the our new fighter's hex ID of 7A? We will enter that into this .dat. For my demo I'll be adding Metal Sonic after Sonic in the CSS.Here's a list of IDs to use for CSSRoster.dat:I recommend having a picture of the build's default CSS to help you connect the dots. The most slots you can have (and make the CSS look good) is 50. The CSS will turn weird after 50 slots, which is being looked into at the moment.When you have your arrangement, save then close. And that concludes this step! Now we can start up our build and get a good luck at the CSS. Here's what I have:However, don't highlight your new fighter with the cursor just yet! We've yet to add in their stuff in, which brings us to the next step...