Kuribo64
Views: 7,783,732 Home | Forums | Uploader | Wiki | Object databases | IRC
Rules/FAQ | Memberlist | Calendar | Stats | Online users | Last posts | Search
12-13-17 11:34 AM
Guest:

0 users reading Modifying Lakitu's Projectiles | 1 bot

Main - General SM64DS hacking - Modifying Lakitu's Projectiles New reply


Sparsite
Posted on 07-22-16 04:23 AM (rev. 6 of 07-22-16 04:45 AM) Link | #74287
So, I've found a way to modify what Lakitu throws, although its with a hex editor, which im pretty inexperienced with. The ASM code I wrote kept getting over-written. How did I solve this?

I went into NO$GBA Debugger, wrote the ASM code, and then looked below to see what the hex translation was.

Misc. Info:
//spawn spiny 02124404
//set object to spawn(r0) 021243F8
//set paramater 1 for object spawned(r1) 021243FC
//dont touch r2 (sets where the object is spawned)

VIDEO:


I tested and coins dont fall through the platform, I think its something to do with chuckyas touching another object that're moving.

So to modify the object spawned there are 8 bytes, only 4 of which are used (I think)
0x2A6ABC 41 0F A0 E3 //As far as I know, A0 and E3 aren't touched, its the 41 0F which is the Actor ID.

What I recommend doing is downloading NO$GBA Debugger, and going to the address 021243F8 in Rainbow Ride. Near the bottom, you will see the hex code. Whats originally written there(above the hex at 021243F8) is mov r0, 0x104, so press any key and type in the actor ID of the object you want to spawn. (actor IDs can be found at the SM64DS Object Database.)

If I wanted Lakitu to throw chuckya's, the actor ID is 0x00BE, so it now becomes mov r0, 0x0BE and below is BE 00 A0 E3. Go to a hex editor and change the original to what you have in no$gba debugger, additionally, I could make a software that told you the hex code of the object you wanted.

Setting paramater 1 is basically the same as setting the object. It is the next 8 bytes after setting the actor ID.

up earlier, we also have the address that spawns the spiny, 02124404, if you replace the 8 bytes from 0x2A6AC8, lakitu spawns nothing.

Corresponding ASM Code(Doesn't work with ASM patch template cause IDK):

void repl_021243F8()
{
asm
(
"mov r0, #0x0BE \t\n"
);
}

If anyone has any problems let me know. I might make a program because this could be confusing for noobs, and the spinys are pretty slow and ineffective, I think a lot of people should be doing this if they have a Lakitu in their hack.

Get creative, make lakitu throw coins, red coins, silver stars. So many possibilities.

____________________
ASMR:
*quietly whispers*
move r0 r7
push r4 to r14
load register r4 into r0
POP

EarlyBird64
Posted on 07-22-16 08:18 AM Link | #74302
Really Cool


Main - General SM64DS hacking - Modifying Lakitu's Projectiles New reply

Page rendered in 0.019 seconds. (2048KB of memory used)
MySQL - queries: 28, rows: 193/193, time: 0.013 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2017-11-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.