| |||
Views: 88,481,265 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-25-24 10:28 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 2 guests |
Main - ROM Hacking - SMB3 ASM... How? | New thread | New reply |
CT_Bolt |
| ||
Newcomer Level: 8 Posts: 4/8 EXP: 1629 Next: 558 Since: 02-12-10 Last post: 5116 days Last view: 4919 days |
I've seen some amazing effects in some SMB3 Hacks (particularly Mario Adventure by DahrkDiaz)
So my questions are: 1. How to add/make my own ASM patch? 2. How to change the way the fireball shoots? 3. How to add new Power Ups? 4. Randomly change level graphics (day & night)? That will be it for now. Thank you for your future help. |
Nikolaj |
| ||
Level: 43 Posts: 124/384 EXP: 546310 Next: 18736 Since: 11-19-09 From: Denmark Last post: 4534 days Last view: 3218 days |
First, you have to know ASM...
SEcond, find a disassembly of the game and put your code into it... Then Complie it. |
zkip |
| |||
Level: 15 Posts: 1/34 EXP: 14275 Next: 2109 Since: 02-13-10 Last post: 4178 days Last view: 3052 days |
|
CT_Bolt |
| ||
Newcomer Level: 8 Posts: 5/8 EXP: 1629 Next: 558 Since: 02-12-10 Last post: 5116 days Last view: 4919 days |
Thank you both for responding!
@Dialga: I'm don't know if I want to go that route. If you could point me towards a compiler then that could be useful. @DarkBoyHacker: Thank you, thank you thank you! This is just what I needed. You're very awesome! I'll play around with this and see what I can come up with. Edit: I've messed around with it a bit now and found that tutorial extremely helpful. Thank you again DarkBoyHacker. I found the RAM Map from datacrystal but, I can't find anything there about shooting fireballs or music. Could you help me? I want the fire balls to shoot strait. About the music: Posted by JaSp That thread is here: http://acmlm.kafuka.org/board/thread.php?id=6076 Edit #2: How do I add this: http://klikechange.free.fr/romhack/smb3asm/rainbow.asm |
JaSp |
| ||
Shyguy Level: 24 Posts: 61/95 EXP: 73282 Next: 4843 Since: 03-02-07 From: Paris, France Last post: 4349 days Last view: 4144 days |
Modifying existing data generally is the easiest to do; for example, about the fireballs, you would need to go to a part where this effect is in the game, open the debugger and mess with it; for example, open the hex editor from FCEUXD and look at the RAM at the same time you shoot a fireball, and see if some bytes seemed to change exactly at that time.
Once you find an offset that changed, try to freeze it or set it to another value (via the Cheat window), then shoot a fireball and see if it has changed anything. If nothing changed, then this offset is most likely not related, so try with another. Once you find one that seems to have changed something, open the debugger interface and set a write breakpoint on that offset, then shoot a fireball: the debugger should stop at the code when this offset is written to. Examine the code, and you should see before the STA $offset (or something similar) somewhere an LDA $#value (or something similar). Right-click at the left of this line of code, and it will bring you to the hex editor, inspecting the ROM this time (instead of the RAM), where you can actually change the $#value permanently in the game. That's roughly it, but it may be different than what I described since there are several ways to read/write values (for this I suggest you read some 6502 ASM reference documents). Adding stuff is a little more complicated, since it requires you to add your own routine (i.e. chunk of code) somewhere in the ROM (where there is free space) and then access it via a JSR or JMP - it's a little trickier, but you'll get there eventually if you persist. (this is the method explained in DarkBoyHacker's document) By the way, to play a custom song, you would need to write the song index to offset $4F5, for example : LDA $#21 STA $4F5 21 being the value you see for the corresponding song in SMB3 Music Inserter. Hope that helps, though it's a really quick overview of the process. You might find some useful docs here on romhacking.net Oh, and as for the .asm file, it has been designed to be assembled with xkas; and once assembled, you should copy the hex code and insert it somewhere in the ROM, and then access it via a JSR/JMP (though in this case it has been made for an expanded ROM so it's a little more complicated) |
CT_Bolt |
| ||
Newcomer Level: 8 Posts: 6/8 EXP: 1629 Next: 558 Since: 02-12-10 Last post: 5116 days Last view: 4919 days |
Wow, thank you! This is much needed info for me. I'll play with this and see where it takes me. |
zbyte |
| ||
Boomerang Brother Z is Superior! Level: 66 Posts: 838/1016 EXP: 2386925 Next: 74926 Since: 06-10-09 Last post: 4431 days Last view: 2910 days |
To shoot straight fireballs, edit these bytes in the hex editor:
0x00E38C: EA EA EA 0x03DF20: A5 A2 18 69 *04* 9D E3 7C 60 *04 is the height of the fireball that Mario will chuck. 04 is recommended. 0x00E2E1: 20 10 9F ____________________ No quotes found; we apologize for the inconvenience. Commas, question marks, and semicolons are available, though. |
CT_Bolt |
| ||
Newcomer Level: 8 Posts: 8/8 EXP: 1629 Next: 558 Since: 02-12-10 Last post: 5116 days Last view: 4919 days |
Thanks for the help zbtye! That is really useful. Is there an value that changes angle? Just wondering. |
Main - ROM Hacking - SMB3 ASM... How? | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 62, rows: 89/90, time: 0.016 seconds. |