Home Gallery Resources The Team Rules chat Login Register
  Show Posts
Pages:  1 ... 4 5 6 [7] 8 9 10 11
91  Super Smash Bros. Brawl Hacking / Programming / The Brawl Expansion Project on: December 31, 2013, 10:18:47 PM
Warning: may contain ham


Ladies, Gentlemen, Hackers, Modders,



Allow me to present to you the product of years of research.


A product wrought from necessity! and desire!.


A product born not just from my own work but of other hackers who have stood! and fought! alongside myself.


Behold!

The Legendary Code!

The Ars Magnum!!

The Devine! Ins-piration!!!!!

The One! Mod! To Rule! Them All!!!!!!!



THE!!!!!

CLONE!!!!!!!!!!!!!!

EEEENNNNNGGGGGGGIIIIIIINNNNNNE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



. . .

To much?

Yeah, I thought so.


Hyperbole and theatrics aside, how about one more mod to close off the year?



The BrawlEx Expansion project is a mod that allows up to a maximum of 100 characters in the roster. Moreover, it allows you to customize everything about a particular character slot simply using a set of configuration files in the SD card.

By default, BrawlEx doesn't actually change anything functional about the game. The original roster remains unchanged with their data in the exact order it is without the mod. However, BrawlEx both relocates and extends that data to make a total of 100 fighter slots, cosmetic slots, and CSS slots.

For players who are only interested in using custom characters and don't want to deal with configuring individual characters, skip to the downloads section to download Nebulon's pre-made BrawlEx package. Additional packs can be downloaded from the Packs section in the Brawl Vault


ExCharacter Slots

ExCharacter Slots are a feature of BrawlEx that provides are a convenient way of adding new characters into the game. They range from character id 0x3F up to 0x63. These slots can be added to the Character Select Screen roster using either the BrawlEx CSS Expansion or the Custom CSS v3 code created by Spunit. By default, the ExSlots are empty meaning that if you try to load them from the CSS the game will crash. However, These slots may be easily configured by using BrawlEx' config loader.



Config File Specification
BrawlEx supports 4 types of config files for customizing character slots. Each config file is numbered according to which slot is modified. If a config file is not found, the slot will not be modified. Paths shown in the following sections are example files for ExSlot 3F.


Fighter Config Files
(FCFG, or FITC)

Fighter Config files are the core of the character and determine which resources get loaded for the character as well as control various parameters for how the character behaves. FCFG files can be created and edited using the BrawlEx Config Utility.

Example Path:
SD:/private/wii/app/RSBE/pf/BrawlEx/FighterConfig/Fighter3F.dat

File Format:
Quote
Fighter Config
0x00 Tag ("FITC" or "FCFG")
0x04 File Size (0x100)
0x08 Version (2)
0x0C Edit Flags

0x10 Entry .Pac Color Flag
0x11 Result .Pac Color Flag
0x12 KirbyCopy .Pac Color Flag
0x13 Character Load Flags
0x14 **Final .Pac Color Flag
0x16 Color .Pac Flags
0x18 Entry Article Flag
0x1C Sound Bank
0x20 Kirby Sound Bank
0x30 .Pac Resource String (0x30 chars)
0x60 KirbyCopy .Pac Resource String (0x30 chars)
0x90 Module Resource String (0x20 chars)
0xB0 Internal Name (0x10 chars)
0xC0 IC-Constants
0xF8 Texture Load Function (0, 1, 2, 3, 4, or 5)
0xFC AI Controller (fighter Id)

Edit Flags: None

** Version 2 Only.


OpenSA documentation on Fighter Data


Slot Config Files
(SLTC)

Slot Config files are a small auxiliary configuration file that may be used to place more than one fighter in a single character slot (e.g. Zelda/Sheik or PokemonTrainer). They also are connected to which victory fanfare plays for the character as well as which game record the character's play data is stored into.


Example Path:
SD:/private/wii/app/RSBE/pf/BrawlEx/SlotConfig/Slot3F.dat

File Format:
Quote

Slot Config0x00 Tag ("SLTC")
0x04 File Size (0x40)
0x08 Version (2)
0x0C Edit Flags

0x10 *Slot Characters (0x10 bytes)
0x20 Victory Fanfare
0x24 Record ID (0x1 byte)

0x28 **Victory AnnouncerCall
0x30 **Victory Camera Distances (0x10 bytes)

Edit Flags:
0x01: Set Slot Characters

* Not set unless specified in Edit Flags.
** Version 2 Only.


OpenSA documentation on Character Slots


CSSSlot Config Files
(CSSC)

These files control some of the data for the icons that are shown in the Character Select Screen. In particular they control the Wii Remote sound effect played when selecting the character as well as which colors can be chosen for that character on the character select screen.

Example Path:
SD:/private/wii/app/RSBE/pf/BrawlEx/CSSSlotConfig/CSSSlot3F.dat

File Format:
Quote
CSS Slot Config
0x00 Tag ("CSSC")
0x04 File Size (0x40)
0x08 Version (2)
0x0C Edit Flags

0x10 *Primary Character (Slot)
0x11 *Secondary Character (Slot)
0x12 Record Slot
0x13 *Cosmetic Slot
0x14 Wiimote SFX
0x18 Blank
0x1C Status
0x20 Slot Colors (0x20 bytes)

Edit Flags:
0x01: Set Primary Character, Secondary Character
0x02: Set Cosmetic Slot

* Not set unless specified in Edit Flags.



OpenSA documentation on CSSSlot data


Cosmetic Config Files
(COSC)

CosmeticConfig files control the data associated with displaying portrait data for the character as well as their franchise icon and announcer call. They also control the text-based name shown for the character on the victory screen.

Example Path:
SD:/private/wii/app/RSBE/pf/BrawlEx/CosmeticConfig/Cosmetic3F.dat

File Format:
Quote
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.


OpenSA documentation on Cosmetic Slots



Adding Characters Into Brawl

To add characters into the game, you will need at the very least one FighterConfig file. FighterConfig files can be created and edited using the BrawlEx Config Utility. This example will guide you through how to make a clone character of Marth. Because Marth (id 11) will be our base character, go into the Config Templates directory of the BrawlEx package and open Fighter11.dat in the FighterConfig folder. The only thing we want to change in the file is the name which we will be changing to MarthEx.

Once you have changed the name to MarthEx, save the file as Fighter3F.dat and add it into your SD card as directed in the FighterConfig section of this post. The file output shown at the bottom of the Config Utility will show you what files you need for your character as well as where to put them inside your patching directory. Once you have acquired either the original or modified Marth files and named them as directed, your copy of Marth is ready to be used.

Additionally, we will also need Slot, CSSSlot, and Cosmetic config files for our copy of Marth. As we are just copying marth, we do not need to edit these files (right now, we can only modify them with a hex editor anyways). We will be using Slot13.dat, CSSSlot11.dat, and Cosmetic10.dat from the template directory renamed to Slot3F.dat, CSSSlot3F.dat, and Cosmetic3F.dat for our Marth clone.



ExModules

ExModules are one of the resources required for adding characters into Brawl. Before being used, a character's ExModule must be configured for the slot it is going to be used in. To do this, open the module using the Module Editor 3.3 and open up Section[8] in the memory viewer. Edit the first value in the section with the id of the ExSlot that the character will be using.

It is also necessary to change the id of the module itself to avoid module reference conflicts. Each module used in the game at any time must be unique or the game will crash. Brawl already contains many modules, but module ids 0x8F and up are free for use. The module id can be changed by clicking on the root of the module tree and changing the id in the property window of the Module Editor.


Customizing the Character Select Screen

Once you have configured your character slots you will need to add them to the Character Select Screen. The BrawlEx CSS Expansion mod not only extends the maximum number of characters allowed in the roster up to 100, but it also provides a means for customizing the CSS roster. Adding a character to the roster is as simple as opening up CSSRoster.dat (provided in the BrawlEx CSS Expansion package) using the BrawlEx Config Utility and adding the CSS id of your new character to end of both lists.


Spunit262's Custom CSS Code

Before the BrawlEx CSS Expansion mod was developed, the most common way to add characters to the roster was to use the Custom CSS code. The Custom CSS code allows full customization of the Character Select Screen, but for the sake of simplicity, this example will use a prebuilt version of the code that contains the default Character Select Screen roster.

Quote

Custom CSS V3 [spunit262] (Default CSS)
0668310C 00000030
387E006C 3B600000
3C808068 38840DE0
7CBB20AE 7CA50775
41800014 94A30004
3B7B0001 2C1B0032
4180FFE8 48000038
04690338 48000068
066900D8 00000008
2C170028 41820168
02680DE0 0022FFFF
06680DE0 00000024 <----CSS Icon Count
00010203 06070811
12091A0E 1716131B
21260D05 14101F25
200B270C 15242218
0A231929 00000000




In order to add an id to the Character Select Screen - for this example 3F- replace the value of 29 at the end of the code with 3F and replace the next 00 byte to the right with 29 again. If you run out of zeroes on a line, simply add a new line and pad it with zeroes. Additionally, for every id you add, you will need to increase the CSS Icon Count value by 1.

Below is the empty form of the Custom CSS code for people interested in creating their own Character Select Screen.

Quote


Custom CSS V3 [spunit262]
0668310C 00000030
387E006C 3B600000
3C808068 38840DE0
7CBB20AE 7CA50775
41800014 94A30004
3B7B0001 2C1B0032
4180FFE8 48000038
04690338 48000068
066900d8 00000008
2c170028 41820168
02680DE0 0022FFFF
06680DE0 000000YY <---- CSS Icon Count
ZZZZZZZZ ZZZZZZZZ <---- Icon data

Character Ids:
ZZ
00 Mario
01 Donkey Kong
02 Link
03 Samus
04 Zero Suit Samus
05 Yoshi
06 Kirby
07 Fox
08 Pikachu
09 Luigi
0A Captain Falcon
0B Ness
0C Bowser
0D Peach
0E Zelda
0F Sheik
10 Ice Climbers
11 Marth
12 Mr. Game & Watch
13 Falco
14 Ganondorf
15 Wario
16 Metaknight
17 Pit
18 Pikmin & Olimar
19 Lucas
1A Diddy Kong
1B Pokemon Trainer
1C Charizard
1D Squirtle
1E Venasaur
1F Dedede
20 Lucario
21 Ike
22 Robot
23 Jigglypuff
24 Toon Link
25 Wolf
26 Snake
27 Sonic
28 None
29 Random

3F+ ExCharacters





Video Tutorials

Video tutorials by Sammi Husky
Channel

Regular Brawl:
BrawlEx Clone Engine [tutorial] (vBrawl) step-by-step

Brawl Minus:

Cosmetic Data:



A Note On Config Slot Alignment

There are 4 types of config files used by BrawlEx and likewise there are 4 types of configuration data used in the game. Any one character is capable of using any combination the ids associated with this data. In the example of Marth, his default configuration is Fighter11, Slot13, CSSlot11, and Cosmetic10. For the ExSlots – that is, slot ids 0x3F up to 0x63 – this data is aligned, so a character in slot 0x3F will use 0x3F for all of their configuration ids.

This chart details the associations between config ids and characters.

Fighter Data Chart



Troubleshooting

Note: Ensure you have your mod launcher's hook method set to AxNextFrame. This fixes many of the issues new users are known to have.

New CSS Icons show up as Random and crash when highlighting them:
If an icon is shown as Random and is not intended as the regular random icon, then the icon has not been mapped by BrawlEx. This could mean that BrawlEx is not running. Ensure that both the Module/bx_fighter.rel and System/Common2.pac files included in the BrawlEx package are in your patching directory.

Icons periodically switch between proper icons and crashing Random icons between startups.
If you are using GeckoOS or USBLoader GX and BrawlEx periodically fails to start, go into ensure that you have your launcher's hook method to AXNextFrame.

New CSS Icons show up as Mario and crash when starting a match with them selected:
If an icon shows up as Mario when it is not intended to, then the character slot has not been configured. This could mean that the wrong id has been assigned to the CSS Icon or the BrawlEx config files have been improperly named. Non-configured ExSlots will try to load resources of the pattern Fighter<id>Ex.pac by default. As those files do not exist in the game, they are intended to crash if used.

New CSS Icons show up properly, but immediately crash when selected:
If an icon crashes immediately when selecting it, then the module used for that character is corrupt. Redownload the module and try again.

New CSS Icons show as Mario, but properly load the desired character when used in a match:
In general, cosmetic data for ExSlots default to Mario for compatibility purposes. An icon showing up as Mario means that the cosmetic data for that css slot is not configured.

New CSS Icons show up properly, but cause a soft crash both when attempting to enter a match or leave the CSS screen after selecting them:
If the game experiences a soft crash (the game endlessly loads, and can still access the Home Menu) both when you try to enter a match or leave the CSS, then either the Fighter Configuration for the slot is missing or one of the resources for the character is missing from you patch directory. Open the Fighter config file in the BrawlEx Config utility and make sure you have all the files shown in the bottom list inside your patching directory.

New CSS Icons show up properly, but crash only when attempting to enter a match.
If the game crashes only when you try to enter a match, then it is likely you are trying to use a v1.0 ExModule with BrawlEx v1.1.0.0 or a v1.1 ExModule with BrawlEx v1.0.0.0. Try redownloading the BrawlEx package and using the latest modules.

CSS Icons show up properly, but crash when highlighting them.
If simply highlighting a CSS icon causes the game to crash, then either you have an outdated version of BX CSS Expansion's Common3.pac, or that character is missing their character portraits that they are required to show when you highlight them.

If you have an issue that you think may be caused by BrawlEx, please post a copy of your .wgc code file as well as the configuration files that you are using so that I may identify the source of the issue and/or determine if the issue is with BrawlEx or the setup being used.



Downloads


BX Clone Engine v2.0.0.0 Stable
Extends the limit on the brawl character roster up to 128 characters and allows character slots to be customized using slot configuration files. This mod allows the creation of clone characters.

BX CSS Expansion v1.0.2.0 Stable
Extends the limit on the Character Select Screen to 100 character icons. It also allows the character select screen roster to be modified using an external config file.

Nebulon's BrawlEx Pack
Project Thread
The most complete BrawlEx package available by Nebulon featuring 44 extra characters properly configured for sound effects and graphics for a total of 85 playable characters.

BrawlEx Config Utility v1.3a
A tool for editing BrawlEx Config files. Currently, it only supports Fighter Config and Roster Config files.

Module Editor 3.3
A tool for modifying module data. Necessary for configuring ExModules.

BrawlEx Clone Tool
Not compatible with the latest version of BrawlEx
A tool developed by Sammi Husky to manage the creation of clone characters. The latest version of the program can be found in his signature.

Fighter Data Chart
A chart detailing the ordering of each character's configuration data type and the ids they are associated with.

Alloy Cosmetics
Even though the Alloys have Character Select Screen Ids, they cannot be added to the CSS without first adding their missing portraits and icons into the game. This package contains all the Alloy cosmetics required to make them usable.

Bowser/GigaBowser Resources
Merged resource files necessary for cloning Bowser and Gigabowser together or Gigabowser alone.

Additional BrawlEx Versions

BX Clone Engine v1.1.3.1
The BrawlEx clone engine configured for loading config files from the DVD instead of the SD card. Mainly developed to be used with Riivolution. Currently discontinued and out of date.

BX CSS Expansion v1.0.2.2
The current stable version of the BX CSS Expansion configured to use the regular merged behavior for Zelda and Sheik's icons instead of the adjusted behavior where they are separate.

BX CSS Expansion v2.0.0.x
Unstable Build
A new release of the BrawlEx Roster Expansion. It adds the ability to load character selection portraits from the SD card. Suffers from poor load times when loading character portraits.


Known Bugs

BX Clone Engine

-Game startup time is increased by approximately 10 seconds.

-Switching the game language to Japanese no longer replaces names for certain characters at the victory screen. (e.g. Bowser -> Koopa)

-A bug in the original File Patch Code v3.5.1 may cause issues when replacing Common2.pac. It is recommended that you use the File Patch Code v3.5.1b listed in Readme.txt if you are using v3.5.1.

BX CSS Roster Expansion

-Using the BX CSS Roster Expansion will prevent Final Smash music for Luigi, Peach, and Dedede from playing.

-The ordering of the characters in the Subspace Emissary character select page is slightly broken.

-Attempting to enter co-op mode at the character select screen for Classic, All-Star or any Stadium modes will cause the game to crash.


Version History


BX Clone Engine
(Major.Minor.Revision.Configuration)

v2.0.0.0
(Download)

- Fixed compatibility error making v1 Fighter config unable to set the Final Smash Resource flag.

- Fixed issue causing transforming clone characters to keep their old battle portrait after transforming.

- Added ExModules for Rob, Toon Link, Dedede, Diddy Kong, Ness, Bowser, Giga Bowser, Samus, and Zerosuit Samus.


- Increased number of available Fighter, Slot, CSSSlot, and Cosmetic entries up to 128.

- Added support for setting Victory Camera Distances and Victory Announcer Calls from the Slot config file.

- Added support for enabling per-color final smash resource files from the Fighter config file.

- Completing Classic or AllStar for characters with Slot Id 2C and up will simply return the player to the CSS instead of crashing.

- Fixed bug that caused Slot 58 to crash unless its slot entries had been overwritten using an elevated Slot config file.

- ExCharacters created in training mode will now be properly shown with differing colors.

- Added safety check to ensure that a fighter's record data cannot be set to an invalid record bank using a corrupt Slot config file.

- Reorganized the internal code layout of bx_fighter.rel.

- Updated common2.pac's sora_melee hook.

- Removed ft_kirby copy fix.rel from the ExModules directory to avoid confusion.

v1.2.0.0
(Download)

- Fixed crash caused by entering Homerun Contest.

- Added ExModules for Metaknight, Jigglypuff, and Ganondorf.

v1.1.5.0

- Fixed crash caused by entering an Event Match requiring you to choose a character.

- Added CSS config files for using independent forms of Charizard, Squirtle, and Ivysaur on the CSS to the CSS config templates.

v1.1.4.0
v1.1.4.1


- DVD loader configuration (x.x.x.1) discontinued until a better hook method is found.

- Fixed a gamebreaking bug involving team battle character portraits.

v1.1.3.0
v1.1.3.1


- Fixed a gamebreaking bug in kirby resource file references for Luigi and Yoshi both in bx_fighter.rel and in their template config files.

v1.1.2.1

- Initial release for DVD config loader configuration.

- BrawlEx Config files load from DVD:/BrawlEx/...


v1.1.2.0

- Fixed a small non-fatal assembly bug in the Marth v1.1 ExModule.

v1.1.1.0

- Removed Test Files directory from BrawlEx package to reduce download size.

- Fixed name reference bug that was causing ExCharacters to crash Pictochat.

- Fixed bug in the Pikachu v1.1 ExModule making it unusable.

- Changed the default cosmetic reference in CSSSlot29 (Random) to Cosmetic2A.

v1.1.0.0

- Fixed game breaking bug that caused various articles to crash the game once a character's ExModule was loaded.

- Updated ExModules to v1.1

- Updated the names of Config Templates with the name of the originating character.

v1.0.0.0

- Initial Release


BX CSS Expansion
(Major.Minor.Revision.Configuration)

v2.0.0.x
Unstable Build

- char_bust_tex_lz77 portrait files in sc_selcharacter.pac will attempt to load them from the SD card before trying to load regularly from the .pac file. (See note in Readme on file paths)

v1.0.2.0

- Fixed bug that caused the Classic Mode Character Select Screen stock option bar to vanish.

v1.0.1.0

- Fixed crash that resulted from hovering over icons that would normally be marked with a "new" tag.

v1.0.0.0

- Initial Release


Special Thanks

Special thanks to Dantarion and his help with the project as well as the documentation resources he posted on the OpenSA website. Brawl hacking wouldn't be anywhere near where it is now without your work on OpenSA, the Brawl Documentation project, and Project M.

I would also like to thank the rest of the Brawl modding community for keeping Brawl going for these past 6 years. I look forward to seeing what everyone is capable of in the following year
92  Super Smash Bros. Brawl Hacking / Programming / Re: Current Public Clone Engine on: December 18, 2013, 08:20:47 PM
Sneak... sneak... sneak...
93  Super Smash Bros. Brawl Hacking / Programming / Re: Current Public Clone Engine on: November 15, 2013, 11:41:42 PM
Good job on the stream Dant.

Nicely done.
94  Super Smash Bros. Brawl Hacking / Programming / Re: [Official] Brawlbox Development: v0.68d Updated on: September 02, 2013, 04:02:51 PM
Looking good BlackJax. I like that you've linked both the disassembler and the memory viewer together.

I'm not sure if you're still using anything from the BrawlModule library, but I've updated the PPC classes and removed a lot of the unneeded classes so that they aren't so ridiculously convoluted. On the flip side, it's still a bit unfinished, so it hasn't been tested and there currently isn't any way to change number format when you want to display the instructions as text.

Either way, let me know if you'd like me to send you a copy of the source.
95  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Updated OP- on: June 29, 2013, 05:57:13 PM
The most recent batch of Plug&Play modules weren't tested as much as I wanted to, so it's possible I left in a bug or two. If the module is working for all other modes besides Vs., then that is most likely the case. I'll keep it in mind, but for now you might just have to try porting him over a different character.
96  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Updated OP- on: June 17, 2013, 01:24:33 PM
As wonderful as the rels are. i mean AMAZING. how do i go about disabling a ported character's voice? having Lloyd for example talk like Vegeta is a little awkward.

also these ports are getting better and better.

also, about the extra slot that Asf1nk released is it possible those could be improved upon? i was trying to figure out how to activate more than MarioD's slot. the codes are simple but is it possible to flesh out and make it "flawless"

Disabling the sound write can be easily achieved by changing section[8] 0x88 to 0x00000000. You can also change the actual soundbank that is written by changing the value pointed to by the relocation at 0x84.

I think it is actually better if Plug&Play modules didn't change the soundbank references as having two characters in a match sharing a single soundbank isn't optimal. With RSAR editing on the rise, it would be better to change the audio in the actual soundbank instead of just changing the soundbank reference. I may end up removing the soundbank write in the future or I may try to develop a resource management system that ensures the soundbank remains loaded as long as at least one character using it still exists.

As far as clone slots go, I have had a project on backlog for a while now that would easily allow new slots to be added. But at the moment I haven't had a chance to work on it. The main problem with adding new slots is space. Particularly, a lot of reference tables that are used by characters have a very limited capacity when it comes to adding new entries. Not only that, but sora_melee is pretty delicate and a lot of functions as well as currently existing codes depend on it maintaining a relatively constant size and location, so simply expanding sora_melee isn't really an option. My current plan involves relocating all known tables to a separate module that can be easily modified and referenced, but the console itself is running at a pretty restricting memory capacity as well. In the end, it might be necessary to disable something like the online menus in order to free up the required amount of memory.
97  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Updated OP- on: June 17, 2013, 02:11:02 AM
Four new modules Plug&Play modules this time for Peach, Pikachu, Wolf and Olimar. I've also made a small tweak to all the Plug&Play modules to enable all color slots regardless of the character.

Plug&Play Modules v1.2+
Ike
Link
Lucario
Mario
Marth
Peach
Pikachu
Pikmin
Pit
Snake
Sonic
Wolf

Also, I didn't realize this earlier but when I disabled Kirby hats for each module, it turns out I was only disabling the .pac file that was being loaded - Kirby could still copy the character resulting in glitches or occasional freezing. Until I can find a solution, it would probably be best not to use Kirby in the same match as clone characters.

There is one other minor bug which I haven't fixed which causes cloned Olimar's pikmin to not be visible on the results screen. It's similar to the bug with Lucaro's Aura Sphere, but it has a slightly different cause which is making it tough to track down. It's not that big of a deal for now though as it doesn't affect the game functionally.


Oh, I've also made another small tweak to the Module Editor 3 to allow multiple relocations to be edited at once. It may be useful for anyone trying to build their own Plug&Play modules.

Module Editor 3.3
98  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Updated OP- on: June 10, 2013, 09:57:27 AM
The color values are actually a flag set that Dantarion documented:

Code:

0x0001: Unknown (G&W is the only one who doesn't have this bit set)
0x0002: Has Color 00
0x0004: Has Color 01
0x0008: Has Color 02
0x0010: Has Color 03
0x0020: Has Color 04
0x0040: Has Color 05
0x0080: Has Color 06
0x0100: Has Color 07
0x0200: Has Color 08
0x0400: Has Color 09
0x0800: Has Color 10
0x1000: Has Color 11


They are listed by each color's file number as opposed to any specific color. If you want to combine them, just add the values of the desired flags together.


Anyways, I can't do any module hacking in the immediate moment, but I may try to get a few done next weekend if I have the time.
99  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Updated OP- on: June 09, 2013, 09:07:39 PM
Carnage, if you change the value inside the module at Section[8] 0x126 to 0xFFFF, then it should enable all color slots for whoever you port Lucario over. Just remember that this will cause the game to crash if it tries to load a color that is neither on the disk or your SD card.
100  Super Smash Bros. Brawl Hacking / Programming / Re: New Soul Calibur/Tekken Engine on: June 09, 2013, 08:54:33 PM
Hey, this is pretty cool.

When I first made the angle axis code, I originally had a vision of something to the effect of a "Hold R to Freerun" code in the same vein as the battle systems from some of the later installments in the Tales series. But there turned out to be way too many things that would need to be refactored such as knockback directions and stage colliisions. I also didn't have access to any trigonometric functions at the time, so I had no way to map joystick direction to character angle. Given how far Brawl hacking has come, it'd be cool to one day try go back and try to do it...

Anyways, what you have here is really neat. I also saw that you managed to get the old FP 4.0 code working. I'm a bit surprised because I don't even remember completing it - let alone making a post releasing it.

Nice job MW.
101  Super Smash Bros. Brawl Hacking / Programming / Re: Let's look into Module Fíles (.rel) - PW is amazing! on: May 06, 2013, 09:36:27 AM
I think I will copy for testing! however, I do not quiet understand one thing.

I followed you guide on how to find the instantiate on both mario and samus! it seems that boths are just under both "mr" command. however, now the thing I do not understand (and probely a stupid question cause I am tired)
Mario has its instantiate as "bl 9DE4", does this mean that the whole method at offset 9DE4 in the file its instantiate?

so we can basically change the instantiate to simply redirect the "bl 9DE4" to something like "bl DEADBEEF"/"bl 10234C" and have the copied instantiate on the offset that bl are calling?

Yeah, I think you've summed everything up pretty well. The bl operation is essentially a function call similar to how you might call a method from an object such as soArticleMediator (however, those kinds of calls will more often use bctrl which is slightly different).

Just remember that the  bl operation uses a relative offset from its position meaning that the file offset you see in Module Editor will actually be the sum of the bl operation's position + the relative offset stored inside the bl operation. Alternatively, you can place a relocation (type 0xA) ontop of the bl operation which will automatically set the destination to where the relocation points to.
102  Super Smash Bros. Brawl Hacking / Programming / Re: Let's look into Module Fíles (.rel) - PW is amazing! on: May 05, 2013, 10:08:43 AM
I found Rob's wnRobotBeam instantiator using the exact same method as I showed you above. It gets called at file offset 0xA1FC. Unlike wnSamusCShot.instantiate which is located in ft_Samus.rel, wnRobotBeam.instantiate is located in sora_melee at m1b[1] +0x3A313C

I actually got a little bit lucky with wnRobotBeam.instantiate because the one Rob normally calls requires an extra parameter that most characters don't usually have available in their soArticleMediator.Method[0][1]. However, it turns out that the Kirby version of wnRobotBeam.instantiate is located just before the normal one at m1b[1] +0x3A3048. The kirby version doesn't require the extra parameter, so that's the one I used for Mario.

As far as what you can do for wnSamusCShot.instantiate, you can either try to find the sora_melee Kirby version of the function or you can try to copy the ft_Samus.rel version of the function. If you want to try to copy the ft_Samus.rel version of the function, then you'll mostly just be doing the same thing you did when you tried to port Special Grabs to other characters.
103  Super Smash Bros. Brawl Hacking / Programming / Re: Perfect .Rel porting Progress -Check Page 24, Post #347 - Thank you, PW on: May 03, 2013, 11:13:47 PM
I think SonicBrawler was working on a complete package of Plug&Play modules with the proper adjusted values, but I guess he's not done yet.

For now, here's the two modules you requested.

download
104  Super Smash Bros. Brawl Hacking / Programming / Re: Let's look into Module Fíles (.rel) - PW is amazing! on: May 03, 2013, 10:59:47 PM
Finding the article instantiators requires a little bit of leg work, but as long as you know where to look, it's not that hard. Start from soArticleMediator<...>.Method[0][1]. From there:





In this case, wnSamusCShot.instantiate is contained within ftSamus.rel at Section[1] +0x94F0. As you suggest, there is also most likely another wnSamusCShot.instantiate function stored in sora_melee to be used by Kirby, but unfortunately I haven't found a reliable way of finding Kirby's instantiator functions yet.

Fortunately, I took a look at the wnSamusCShot.instantiate function stored in ftSamus.rel and it seems to be mostly self-contained. So it shouldn't be too hard if you want to try to copy it over to ftMario.rel and call it from there.
105  Super Smash Bros. Brawl Hacking / Programming / Re: Let's look into Module Fíles (.rel) - PW is amazing! on: May 01, 2013, 01:53:32 PM
I've found that the best way to find the location of an article's ctor is to look for the place where the game ordinarily calls it. For this case, all articles' ctors are called from soGenerateArticleManageModuleImpl. Finding the soGenerateArticleManageModuleImpl.ctor function is probably the hardest part as the only suggestion I can make is that it's usually around 0x850 inside the file (For Samus' case, soGenerateArticleManageModuleImpl.ctor is called at 0x830 and the actual function starts at 0x8434).

Once inside the soGenerateArticleManageModuleImpl.ctor, I primarily work visually. When searching for article ctors, I usually look for routines that look like one of the following two possibilities:







For the above two examples, the selected functions are calling wnSamusGBeam.ctor and Create_wnSamusCShot_holder_and_article. In the second case, Create_wnSamusCShot_holder_and_article is called 4 times for each of the 4 ChargeShot instances that Samus is allowed on screen at one time. If you want to find the actual wnSamusCShot.ctor, just go into Create_wnSamusCShot_holder_and_article and you'll find it at a point that looks like this:





Note that in these two cases, wnSamusGBeam.ctor and wnSamusCShot.ctor are both contained in sora_melee. However, in some cases, they may be contained within the owner character's module - even if there exists a similar ctor in sora_melee.

Also, it's difficult to determine which .ctor belongs to what object just by examining the function call. But there's an easy way to find out if you look at the wnInstanceHolder<...> that is created before it. If you look a little bit above the function call in either of the two above cases, you'll find:





Which tells you the instance holder of the article is being created. Alternatively, it seems like the articles are generated in reverse order to how the wnInstanceHolder objects are listed when viewing the module in Module Editor 2.



Finding the .dtors is a bit easier. Like you said, the article's Method[0][22] is usually the article's .dtor - but you can also check the wnInstanceHolder<...>.Method[0][0] which is also responsible for calling the article's .dtor:






That's about it. There's a small bit on finding the wnSamusCShot.instantiate and wnSamusGBeam.instantiate functions, but for that, you'll mostly be using the same basic principles inside soArticleMediator.Method[0][1] for the calls to both of those functions.

As for why Samus/ZSS have all their articles stored in sora_melee is most likely so that when they transform, existing articles onscreen don't get unloaded when the old character gets replaced by the new one. That's more helpful for us though as we should be able to generate those articles on any character we like.
Pages:  1 ... 4 5 6 [7] 8 9 10 11