| Proof of concept: BN5-imported attack | |
|---|---|
| Topic Started: Oct 2 2010, 09:43 AM (1,148 Views) | |
| Prof. 9 | Oct 2 2010, 09:43 AM Post #1 |
![]()
Moderaptor
![]()
|
![]() It's MarkCannon from BN5, useable in BN6! While it uses the wrong sprites, the attack is fully functional as a BattleChip. This shows that it is indeed possible to port attacks from BN5 to BN6, with some modifications. As far as I know, this is the first attack from non-BN6 to be ported to BN6. Don't expect a tool for it though, it's not easy to port attacks. A lot of things have to be modified. I ran into quite a few snags before it finally worked correctly. If you want to try it out yourself, grab the .RAW here: http://theprof9.webs.com/markcann.raw First, find some free space in your ROM. The address you are going to insert to has to end in 0, 4, 8 or C. But don't insert just yet. Instead, open the .RAW in a hex editor and make the following changes: 00000010: (addr + 14h) 00000014: (addr + 21h) 00000018: (addr + 6Dh) 0000001C: (addr + 115h) 00000160: (addr + 164h) note: "addr" means the ROM address you are going to load the .RAW into. Don't forget to reverse the byte order. After that, load the .RAW into the ROM. You can now use the attack for Navis or BattleChips. Don't forget to add 1h to the address if you're going to add it to a Navi's moveset or make an attack family for it. EDIT: Forgot to note, it probably only works for Falzar. It shouldn't be hard to port to Gregar though. Edited by Prof. 9, Oct 2 2010, 09:47 AM.
|
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| MegaRockEXE | Oct 2 2010, 11:27 AM Post #2 |
![]()
BN Guides Author
![]()
|
I knew it could be done. Could you explain exactly what had to be modified in order to port? I'm interested in the attack structure. This is all very interesting. |
| The Rockman EXE Zone | YouTube | |
|
|
|
| Prof. 9 | Oct 2 2010, 12:19 PM Post #3 |
![]()
Moderaptor
![]()
|
Well, first off all the entire thing needs to be rewritten from scratch, because the old BL branches can't be used and need to be replaced by ldr-bx type branches. You also need to find replacements for the subroutines used. For this attack, the necessary subroutines were in the BN6 ROM and I had to figure out where they were. Because of how ldr-bx branches work, you also need to find one trashable register for each external call to a subroutine you're going to do. This lead to some problems with a certain subroutine in the MarkCannon attack because ALL 8 THUMB registers were used by a subroutine, so I had to come up with a little trick in order to make it work right. |
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| MegaRockEXE | Oct 2 2010, 01:17 PM Post #4 |
![]()
BN Guides Author
![]()
|
Are you sure you had to dump the BL branches and new BLs couldn't be made? And did the attack have sound? And finally, these subroutines from the game, could they make any attack if they could be used in an attack that doesn't exist anymore? |
| The Rockman EXE Zone | YouTube | |
|
|
|
| Prof. 9 | Oct 2 2010, 01:33 PM Post #5 |
![]()
Moderaptor
![]()
|
Yes, because the destinations were too far off and a BL type branch can't reach it. I guess you could keep the BLs if you point them to a nearby routine which in turn redirects the system to the right subroutine through a BX type branch or a push-pop into r15. The attack had the right sound effects. It seems the sound values used in this attack weren't changed in the transition from BN5 to BN6. I think I've said this somewhere before, but ASM gives you full control over what the system does. So yes, with a bit of clever coding, you can make new attacks. Don't expect it to be easy though. I highly doubt it's something you can make a tool for. |
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| MegaRockEXE | Oct 2 2010, 03:14 PM Post #6 |
![]()
BN Guides Author
![]()
|
Okay. And how far is too far? Weren't unused sprites close enough to use? |
| The Rockman EXE Zone | YouTube | |
|
|
|
| brianuuu | Oct 2 2010, 04:34 PM Post #7 |
![]()
SF Noise Spriter
|
O.O I just notice that it is that cannon attack! EDIT: This works great but when I tried to import sprite from BN5, it glitched. Edited by brianuuu, Oct 2 2010, 05:02 PM.
|
![]() ![]() ![]()
| |
|
|
|
| Prof. 9 | Oct 3 2010, 12:43 AM Post #8 |
![]()
Moderaptor
![]()
|
I don't know about that. I put it in free space at the end of the ROM. If unused sprites are close enough it might work. |
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| MegaRockEXE | Oct 3 2010, 09:39 AM Post #9 |
![]()
BN Guides Author
![]()
|
I'm certain that the area from 081C9590 - 081CF950 is unused. It's mostly junk bytes and an incomplete sprite of BN5 Megaman, which if one wanted, could be reinserted at the end of the rom. |
| The Rockman EXE Zone | YouTube | |
|
|
|
| brianuuu | Oct 4 2010, 01:58 AM Post #10 |
![]()
SF Noise Spriter
|
I was wondering if importing Gregar and Falzar giga chip back to US BN6 is possible. |
![]() ![]() ![]()
| |
|
|
|
| Prof. 9 | Dec 24 2010, 04:28 AM Post #11 |
![]()
Moderaptor
![]()
|
I gave that a try a while ago but couldn't get it to work. Maybe I should try again since I've gotten better since. |
Follow me on Twitter! Fork me on GitHub!
| |
|
|
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · Guides & Research · Next Topic » |









