Language…
1 user online: Torchkas - Guests: 150 - Bots: 128
Users: 59,972 (2,168 active)
Latest user: SeanSentIGPc

SMW/SMA2 hacking using only a hex-editor?

I'm interesting in learning how to hack SMW using only a hex-editor.

(As you can probably guess, this would actually be for SMA2 hacking, so if you happen to know of any SMA2 differences, please point them out.)


Information that would be useful (in approximate order of priority):

√ How object/sprite data is stored (a list of all objects/extended objects/sprites would be nice as well, though I could get that from Lunar Magic)

√ How screen exits are stored

√ How level headers are stored

- How messages are stored (which hex values correspond to each character, what determines which level they're used in, etc.-- this is for message blocks and castle destruction scenes)
Edit: I located some GBA messages and worked out the character values for myself. (The castle destruction scene messages are in a different format though-- I couldn't find them.)

- How level names are stored (I've heard SMW has a convoluted way of generating level names, but I could still rename a level something like "Yoshi's Secret Area", "Forest of Illusion 5", or "Chocolate Plains 1", right?)
Edit: I found this for SMW (it was in the ROM map), but SMA2's level names are apparently stored in a different format. (Hopefully an easier-to-use format.)

- How Layer 1 overworld data is stored (this would be for modifying map icons, though it would also be nice to change event numbers if I feel like giving a 1-exit level a secret exit instead of a normal exit)

(I would also need pointer locations, but I could probably find them on my own by searching for hex values-- GBA pointers are pretty simple as far as I know.)

(By the way, remember that I'm asking about how they're stored without any of Lunar Magic's modifications.)

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Uhhh... I think you're missing the point. Hacking all started with using a hex editor. It's all possible with a hex editor.

If you're looking for the data, you're best friend is a debugger and a hex editor.

Give Mario some love?~
Of course I know it's possible with a hex-editor-- why else would I be asking how to edit it?

Considering how much is possible with SMW hacking, I doubt all this information wouldn't be available somewhere, in an organized format...

Can anyone direct me to where I could find it?

(The problem with finding it on my own is that as far as I know, Lunar Magic changes how all of these are stored, so I can't just use Lunar Magic to make minor changes and see their effects.)

(By the way, I do have some experience with extrapolating from SNES to GBA-- check the SMA3 hacking topic.)

Edit: For now, I suppose it's time for me to work these out for myself using a combination of the ROM Map, Translhextion, various SMWCentral reference sheets, and viewing levels in Lunar Magic without editing them.

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Hmm, the only thing I can think of other than the ROM/RAM maps and all.log would be this SMWiki page about the level data format. I hope that helps some.

----------------

I'm working on a hack! Check it out here.
Look on the wiki. Lot of stuff on there about it. I am actually doing basically the same thing, and that's what I used to figure out how.
The SMW level format can be found here.

Also, I recently compiled some notes into a document on the format changes between SMW and SMA2. Enjoy.
Originally posted by Smallhacker
The SMW level format can be found here.

Also, I recently compiled some notes into a document on the format changes between SMW and SMA2. Enjoy.

OK, that's definitely useful.

I wonder where the two extra music settings are stored (and why they exist in the first place)... The standard music values (02 06 01 08 07 03 05 12) still exist at xD96C8.

Also, the standard timer values (00 02 03 04) still exist at xD96C4 (even though timer 0 is unused in SMA2 as far as I know).
Front Door and Back Door must have a special setting then...

(Edit: Timer 0 is used for the castle/etc. intro scenes. I doubt it would be a problem though to change it to a different value.)

(By the way, I think there's a small mistake in the level number section-- it's Chocolate Island 2, not Donut Plains 2, right?)


One question-- In vertical levels, is the highest Y-position bit instead used as the highest X-position bit?

---

Edit:

I made an extremely short and bland 1-level SMA2 hack using Translhextion. (Though it also contains a little surprise...)

sma2modif1.ips

The modified level is Yoshi's Island 1.

---

Edit 2:

I wonder how the GBA level names are stored... I did a search for 120402110413 ("SECRET") as well as some other portions of level titles, and although they are in SNES SMW, they were not found in SMA2...

(I suspect the level names were re-coded to allow for the exit checklist (accessed by pressing Select), which has different spacing. (Among other things, "Yellow Switch Palace" is evenly spaced on that screen.)

---

Edit 3:

If I find interesting things regarding SMA2 hacking, where would I post them?

For example, I've found that the boxes on the results screen correspond to the event numbers, not the particular levels. (When I obtained a secret exit in Yoshi's Island 1, the box for Yellow Switch Palace became filled.)

Also, message blocks no longer destroy Layer 3 water-- it only vanishes temporarily.

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3
Originally posted by Zeldara109
(By the way, I think there's a small mistake in the level number section-- it's Chocolate Island 2, not Donut Plains 2, right?)

My bad.

Originally posted by Zeldara109
One question-- In vertical levels, is the highest Y-position bit instead used as the highest X-position bit?

Yes.

Originally posted by Zeldara109
If I find interesting things regarding SMA2 hacking, where would I post them?

I guess you could make an SMA2 thread in the SMW Data Repository forum.
Originally posted by Smallhacker
I guess you could make an SMA2 thread in the SMW Data Repository forum.

OK, I made a SMA2 thread.

http://www.smwcentral.net/?p=thread&id=34325

---

Edit:

More questions.

Where can I find a list of all of the tileset-specific objects, and the function of the settings byte for each?

Also, where can I find a description of the auto-scroll and layer 2 sprites?

–=–=–=–=–=–=–
Advynia: a Yoshi's Island editor - Alyssa's Unlikely Trap demo 3