Views: 22,606,857 |
Home
| Forums
| Uploader
| Wiki
| Object databases
| IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search |
09-07-24 02:33 PM |
Guest: |
0 users reading SM64DS Editor Help Thread - Post your questions here | 1 bot |
Main - General SM64DS hacking - SM64DS Editor Help Thread - Post your questions here | Hide post layouts | New reply |
StarPants |
| ||
Red Koopa Normal user Level: 24 Posts: 58/124 EXP: 76508 Next: 1617 Since: 04-12-16 Last post: 1506 days ago Last view: 12 days ago |
Well, the address of the general actor spawner function is 0x02010E2C (source: both ASM patch templates) but i don't think you want to touch that.
According to my recent ram watch session, when a Bob-omb explodes and respawns, the unique ID of the respawned Bob-omb is the same as the original Bob-omb's unique ID. Also, exploded Bob-ombs are "alive" in the Actor Death Table. My conclusion is that the Bob-ombs aren't actually despawned and respawned, they are just hidden for a moment. You would need to programmatically detect when a Bob-omb explodes in order to despawn it, but i don't know how to do that. |
dy |
|
dy |
| ||
Member Normal user Level: 13 Posts: 3/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Yes!! Mini breakthrough for Yoshi lovers - figured out how to make Yoshi able to break red brick blocks and defeat Boos by ground pounding!
Following Fiachra's suggestion of setting a breakpoint on the SpawnActor method (0x02010E2C), which is triggered whenever a coin or other object is spawned, then tracing backwards - managed to figure out that 0x021162C8 is run when either Yoshi/Mario stomp on a Boo, but that the 3 conditional instructions in the red box only run for Yoshi. So, by changing those 3 instructions to "nop" - Yoshi can ground pound Boos!! I'm guessing r1 is reading some kind of collision or vulnerability flag. It's a bit more straightforward for red brick blocks (below image tutorial courtesy of Fiachra), which have an "OnGroundPounded" callback that enemy objects like Boos/Goombas don't seem to have. Easiest way is to change the instruction at 0x020B3834 to "mov r2, 0h", which tricks the brick to read the player as being Mario. Boo code is in overlay 63 and brick code is in overlay 2 (has anyone made an overlay search tool yet?) Now to look into Yoshi's crouch kick / slide kick for Boos, and then other enemies/objects (eg, Bullies being knocked back when hit by egg, etc)! EDIT: Also doesn't work for the slightly bigger Boo with the cage - more work to do! ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
StarPants |
| ||
Red Koopa Normal user Level: 24 Posts: 60/124 EXP: 76508 Next: 1617 Since: 04-12-16 Last post: 1506 days ago Last view: 12 days ago |
Great job! I tried it and it worked. I wish I was more familiar with No$gba. |
StarPants |
| ||
Red Koopa Normal user Level: 24 Posts: 63/124 EXP: 76508 Next: 1617 Since: 04-12-16 Last post: 1506 days ago Last view: 12 days ago |
How can i use static libraries? What is that offset i need to enter?
Also, if i want to run some code every frame and call functions from my static or dynamic libraries or spawn actors, am i forced to make hooks with NSMBe or is there some other way around? Edit: unrelatedly, does anyone know the actor id of Yoshi's egg? |
natnew |
| ||
Bullet Bill Normal user Level: 47 Posts: 454/500 EXP: 732441 Next: 33762 Since: 12-07-12 Last post: 2042 days ago Last view: 1945 days ago |
Is there a way to make the player start with keys to the locked doors without them doing anything, or any way to get one without a long cutscene? Or just allow all characters to enter 8/30 star doors without keys (only Mario can enter them before the respective Bowser is beaten) ____________________ |
dy |
| ||
Member Normal user Level: 13 Posts: 5/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Posted by natnew Here are some AR codes for the EUR rom that should do what you want: Open All Doors
52144D50 E1500001 02144D44 EA00007B 02144E14 EA000047 02145CD8 EA000041 D2000000 00000000 Open Star Doors as Anyone 52145CB8 A3A00000 02145CB4 E3A01000 D2000000 00000000 Open Doors Without Stars 52145CA4 E3A03902 02145C98 E3A000FF 02144D54 EA000018 D2000000 00000000 Always Have Door Key 52144E28 EB000055 02144E24 EA000037 D2000000 00000000 PS: for the 12 and 30 star Bowser doors, you don't have to defeat Bowser first before anyone can enter (you just need Mario to open the door). Yoshi's flutter jump is awesome for these levels, as well as ability to grab hard to reach coins with his tongue. ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
natnew |
| ||
Bullet Bill Normal user Level: 47 Posts: 455/500 EXP: 732441 Next: 33762 Since: 12-07-12 Last post: 2042 days ago Last view: 1945 days ago |
I'm looking for a code to add to the ROM, as Mario isn't available at all in my hack. I'm not sure how to add an AR code, as well. ____________________ |
dy |
| ||
Member Normal user Level: 13 Posts: 6/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Once you learn how to interpret AR codes (http://nintendq.forumotion.com/t45-action-replay-code-types), it should be fairly easy to convert the to a ROM edit.
For example, the "Open Star Doors as Anyone" code is saying:
02145CB4 E3A01000 // change the value at address 02145CB4 to "E3A01000" D2000000 00000000 // end the if-block So now you just need to find where in the ROM to make this change. For addresses in the range 0201xxxx it's pretty easy, just drop the 2 and you have the offset for the ROM file. However, the 021xxxxx address tells me it's likely in an overlay (which are loaded and unloaded by the game as needed), so it's a bit trickier to find. Below memory addresses assume the EUR rom, but same process applies for US/JAP roms (you just need to find the right AR codes for your ROM):
00 10 A0 E3 This tells the patch to change offset 00004F34 of overlay 100 to the specified value (note again how the bytes are reversed from the value given in the Action Replay code). Then just save and apply patch! ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
Summoned_Blade |
| ||
Newcomer Normal user Level: 7 Posts: 2/8 EXP: 1099 Next: 349 Since: 03-22-18 Last post: 1968 days ago Last view: 1968 days ago |
I'm trying to change the amount of stars required to open the big star doors and was wondering if it is possible. If it is how would I do it. |
dy |
| ||
Member Normal user Level: 13 Posts: 7/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Posted by Summoned_Blade @Summoned_Blade: Saw your post last week, just took me a while to get around to it. Just figured it out! 1. In SM64DSe, go to the "ARM 9 Overlays" tab and decompress and then extract Overlay_100 2. Open in a hex editor and go to offset 0x7610. The values you want to edit are as follows (remember to convert to hexadecimal): https://i.imgur.com/a7Fiph6.png 3. Open the SM64DSe text editor and change the following entries accordingly (note the use of hexadecimal for the "You need __ more" code): https://i.imgur.com/fD809a4.png 4. Finally, go back to the "ARM 9 Overlays" and replace Overlay_100 with your edited file. And your done! Note: Editing the number of stars required for the 80 Star Door doesn't affect the endless stairs (there must be another check hardcoded somewhere). Also, if you change the number of stars required for the 80 Star Door to anything other than 80 (0x50 in hexadecimal), it will behave like the other Star Doors and not open unless you have the required number of stars. So change the text appropriately. Update: Figured out how to change the star/character requirements for the Endless Stairs as well. See: https://kuribo64.net/board/thread.php?id=3550 ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
Summoned_Blade |
| ||
Newcomer Normal user Level: 7 Posts: 3/8 EXP: 1099 Next: 349 Since: 03-22-18 Last post: 1968 days ago Last view: 1968 days ago |
@dy
Thank you so much and sorry for asking the question twice. |
Summoned_Blade |
| ||
Newcomer Normal user Level: 7 Posts: 4/8 EXP: 1099 Next: 349 Since: 03-22-18 Last post: 1968 days ago Last view: 1968 days ago |
I have another issue with the big star doors.
After collecting a certain amount of stars messages appears saying that you can open a certain big star door. I'm changing how many stars are required to open the big star doors. So how would I make the messages display when you have more stars to match the required amount of stars to open the big star doors? |
dy |
| ||
Member Normal user Level: 13 Posts: 14/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Here is the function that calls checks how many stars the player has and chooses which message to display (it's in overlay 2):
The numbers in red are in hexadecimal and should look familiar. It's basically a giant switch table - bgt means goto if greater than, bge means goto if greater than or equal, blt means goto if less than, beq means goto if equal. It's a fair bit of work for not much gameplay value. Alternatively, just change the instruction at 0x020C6E38 to "b 20C6EB4" (unconditional goto) and this will make it simply not display any messages when you get 1/3/8/12/30/50/80 stars. If you don't know how to make ASM hacks yet, see the ASM Hacking section of the stickied tutorial: https://kuribo64.net/board/thread.php?id=2319 ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
Summoned_Blade |
| ||
Newcomer Normal user Level: 7 Posts: 5/8 EXP: 1099 Next: 349 Since: 03-22-18 Last post: 1968 days ago Last view: 1968 days ago |
@dy
Thank you again. So do I need to do that with ASM or can I do that in overlay 2? I'm not sure what the offsets are (I'm only going to change when the big star door messages appear). Also when I collect 100 coins in a secret stage no 100 coin star appears. How would I make a 100 coin star appear in a secret stage or is it not possible? Sorry to have to ask these questions but I'm fairly new to hacking. |
dy |
| ||
Member Normal user Level: 13 Posts: 18/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
There's an Action Replay code which lets 100 Coin Stars spawn in any level. See my post a few pages up on how to convert AR codes into ROM changes (for the last step, rather than create a patch you can just edit the overlay directly since you know how to do that).
520B1920 E350000F 020B191C E3A0000E D2000000 00000000 To change when the "You've recovered __ Power Stars" messages appear, you don't have to use the ASM Patch Template... You can use a similar process as the one for converting AR codes to find the offset of each number I circled in red (remembering to reverse bytes as described), and manually hex edit each of those entries. As I said, a lot of work though and easy to get things wrong... The ASM Patch Template takes a while to set up and get used to, but it lets you insert new code or change existing code without having to use a hex editor, reverse bytes or find the overlay offset. Well worth it if you want to look into making more ROM changes in future (see the link in my signature for some cool things you can do with ASM - for example, did you know you can make Yoshi punch/grab/throw enemies!? I just discovered it today!) ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
Summoned_Blade |
| ||
Newcomer Normal user Level: 7 Posts: 6/8 EXP: 1099 Next: 349 Since: 03-22-18 Last post: 1968 days ago Last view: 1968 days ago |
@dy
Thanks again for answering my question. I'll maybe look into ASM hacking. Also with the big star door messages I just edited the text instead of changing when the messages appear. Edit: I found the overlay and offset to change to make a 100 coin star appear in any stage. Its in overlay 2 at the offset 42BC and change 0D 87 FD EB to 0E 00 A0 E3. |
dy |
| ||
Member Normal user Level: 13 Posts: 23/30 EXP: 7966 Next: 2301 Since: 04-02-18 Last post: 2312 days ago Last view: 2303 days ago |
Good job.
Also, I'm a bit late to the party, but just found out for myself there's a way to narrow down which overlays to look in. arm9ovt.bin (you'll need NSMBe to extract it) tells the game where to load the various overlays, and it's also how NSMBe knows where to insert ASM hooks without being told the overlay offset. Overlays have overlapping memory addresses, so you'll still need to search a couple to confirm, but this should help quickly narrow down which overlays to look in. ____________________ - ASM resource for customising behaviour of player/objects/levels - NSMBe with direct overwrite feature |
natnew |
| ||
Bullet Bill Normal user Level: 47 Posts: 461/500 EXP: 732441 Next: 33762 Since: 12-07-12 Last post: 2042 days ago Last view: 1945 days ago |
Uhh... Issue.
I tried following the process for allowing all characters to enter star doors. Of course, I had to start over, since I'm using a USA ROM which doesn't use that code. So, I just have to find a new code... ... ...There is none. Great. Any other ideas? Editing the ROM directly might work but I don't even know where to begin with that. ____________________ |
AtomElectron |
| ||
Newcomer Normal user Level: 3 Posts: 1/1 EXP: 48 Next: 80 Since: 04-21-18 From: California, USA Last post: 2310 days ago Last view: 2307 days ago |
I would like to play these Super Mario 64 DS hacks on an actual DS. However, I don't know how to burn or possibly upload a hack onto a blank DS cartridge. So, how would I do this or would I have to use a separate piece of hardware to make it possible? |
Main - General SM64DS hacking - SM64DS Editor Help Thread - Post your questions here | Hide post layouts | New reply |
Page rendered in 0.044 seconds. (2048KB of memory used) MySQL - queries: 27, rows: 233/233, time: 0.013 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |