| MMSF3 - Card hax; Now with effect editing! | |
|---|---|
| Topic Started: Dec 23 2009, 06:00 AM (739 Views) | |
| Prof. 9 | Dec 23 2009, 06:00 AM Post #1 |
![]()
Moderaptor
![]()
|
Thought I'd give this a try. The card data starts at 020D18CC (in main memory, just like Rockman EXE OSS). Every card uses up 16 bytes. The order seems to be the same as the card value list. Bytes 1, 3 and 4 work in a weird way. You need to take the numbers of all the effects you want, and add them up to each other. For example, if you want a Heat-element Mega card, you would use 06. Byte 1 = card type and element 1 00 = white 01 = standard 02 = mega 03 = giga 00 = null 04 = heat 08 = aqua 0C = elec 10 = wood 14 = F (?) 18 = * (?) 1C = sword 20 = squish card image (mega) 40 = squish card image even more (giga) Byte 2 = ??? It's always FF? Byte 3 = element 2 and ??? 00 = null 80 = sword Byte 4 = element 3 and ??? 00 = null 01 = break 04 = wind 05 = break and wind (only if there's no element 2) 40 = turns damage on the card into "???" Bytes 5 and 6 = card image For example: 0003 = Cannon Bytes 7 and 8 = card palette For example: 00A7 = Cannon Bytes 9 and 10 = card damage Pretty straightforward. Bytes 11, 12, 13, 14, 15, 16 = ??? I have no clue what these do. Changing them all to 00 doesn't seem to have any effect. Where are the card effects? They must be stored elsewhere. I copied all ElecSlash data to Cannon, but it still behaved like a Cannon. I even tried erasing ALL cannon data and it still behaved like a cannon
Edited by Prof. 9, May 1 2011, 06:14 PM.
|
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| MegaRockEXE | Dec 23 2009, 01:09 PM Post #2 |
![]()
BN Guides Author
![]()
|
So this has problems with working correctly as well? I could not seem to do everything that chip hacking can do in the OSS hack. Interesting to see card sizes for this game. Any idea where it could be in the rom? |
| The Rockman EXE Zone | YouTube | |
|
|
|
| Prof. 9 | Dec 24 2009, 10:53 AM Post #3 |
![]()
Moderaptor
![]()
|
Card sizes? Do you mean this?: 20 = squish card image (mega) 40 = squish card image even more (giga) These must be set if the card image you're using is Mega or Giga-sized, otherwise it won't display correctly in Folder Edit. (That reminds me, with this info I should be able to make an ASM code to display any card in the Library) I wonder if the GBA games stored the card data in the main memory as well. They probably did as it would be impractical to load directly from the ROM every time you use a chip or attack... By the way, what exactly weren't you able to do in OSS? |
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| Prof. 9 | May 1 2011, 12:28 PM Post #4 |
![]()
Moderaptor
![]()
|
Bump! (OK'd by staff) Found out some new stuff, and made it easier to read. 0x00 = Library/element (8-bit) AND 0x3 lsr 0x0 = card color (white, yellow, blue, red) (white has effect in battle, others are visual only) AND 0x1C lsr 0x2 = primary element (null, heat, aqua, elec, wood, unused, unused, sword (unused)) AND 0x60 lsr 0x5 = Library (standard, mega, giga, unused) 0x01 = ?? (if not FF or 00, doesn't appear in Library???) (8-bit) 0x02 = card flags/secondary elements (16-bit) AND 0x1 lsr 0x0 = display damage (no, yes) AND 0x8 lsr 0x3 = appear in Library (no, yes) AND 0x80 lsr 0x7 = secondary element sword (no, yes) AND 0x100 lsr 0x8 = secondary element break (no, yes) AND 0x400 lsr 0xA = secondary element wind (no, yes) AND 0x4000 lsr 0xE = damage display as "???" (no, yes) 0x04 = card image value (16-bit) 0x06 = card palette value (16-bit) 0x08 = card damage (16-bit) 0x0A = extra damage for 1 attack star (8-bit) 0x0B = extra damage for 2 attack stars (8-bit) 0x0C = extra damage for 3 attack stars (8-bit) 0x0D = extra damage for 4 attack stars (8-bit) 0x0E = extra damage for 5 attack stars (8-bit) 0x0F = extra damage for 6 attack stars (8-bit) Still no important stuff, like names, effects, what have you. A lot of flags are also undocumented for now. I'll be looking some more into this probably. I'll update this post if I find anything new. Here are the game offsets: Cards 0x000 - 0x193 Black Ace (U): arm9.bin+0x000D18CC Red Joker (U): arm9.bin+0x000D18E4 EDIT3: Cards 0x500 - 0x53E Black Ace: arm9.bin+000D148C Red Joker: arm9.bin+000D14A4 EDIT: Found card effects! I was able to make a Recover300 act like a Bushido1. Cards 0x000 - 0x193 Black Ace: arm9.bin+0x000D345C Red Joker: arm9.bin+0x000D3474 Cards 0x500 - 0x53E Black Ace: arm9.bin+0x000D3244 Red Joker: arm9.bin+0x000D325C Each card entry is 8 bytes long: 0x00 = sublevel? (2x 4-bit) (X0 = sublevel, 0X = ?) 0x01 = ? 0x02 = ? 0x03 = Attack type (8-bit) 0x04 = Variable (16-bit) (e.g. for Recover cards, this is the amount they recover) 0x06 = flags? 0x07 = padding? Haven't really looked into this yet... some of the 8-bit values here might consist out of multiple values. In any case, we can experiment a bit with card effects now. Also, card names looks like it's going to be easy. EDIT2: Made a list of all the attack types I could find... no unused attacks unfortunately ![]() I've also found the offset for card effects for cards 0x500 - 0x53E (updated above). Spoiler: click to toggle
Edited by Prof. 9, May 15 2011, 01:59 PM.
|
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · Guides & Research · Next Topic » |





