Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
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
Posted on 02-13-10 12:02 AM Link | Quote | ID: 127018

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
Posted on 02-13-10 12:06 AM Link | Quote | ID: 127019


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
Posted on 02-13-10 02:03 AM (rev. 3 of 02-13-10 02:11 AM) Link | Quote | ID: 127023


Level: 15

Posts: 1/34
EXP: 14275
Next: 2109

Since: 02-13-10

Last post: 4178 days
Last view: 3052 days


~zkip:
I actually have written a document specifcly for this.. I guess your in luck. Also, this was written using an expanded rom!

Its mentioned that its optional for FCEUXD SP 1.07 but, you pretty much need it.
It may be full of errors, but it gets the job done for me

Link

____________________



CT_Bolt
Posted on 02-13-10 05:13 AM (rev. 5 of 02-13-10 08:02 AM) Link | Quote | ID: 127035

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

Detailed answer:
As of the beta 1.3 version, the program can add musics to your hack, but there isn't any way to play them automatically; unless you add your own ASM hack to do it.



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
Posted on 02-13-10 02:19 PM (rev. 2 of 02-13-10 02:26 PM) Link | Quote | ID: 127042


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
Posted on 02-15-10 11:06 PM Link | Quote | ID: 127113

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
Posted on 02-16-10 08:45 PM Link | Quote | ID: 127140


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
Posted on 04-23-10 04:33 AM Link | Quote | ID: 130390

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

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.021 seconds. (339KB of memory used)
MySQL - queries: 62, rows: 89/90, time: 0.016 seconds.