Pages: « 303132333435
Posted on 07-11-18, 11:51 pm


Karma: 18375
Posts: 1081/1086
Since: 04-02-13
nsub_0201E4A8_main:
MOV R0, #0
BX LR

should work
Posted on 07-16-18, 02:29 pm (rev. 2 by  Helios on 07-16-18, 03:05 pm)
Cheep-cheep
Beyond DS and Project Tape

Karma: 572
Posts: 182/195
Since: 06-28-17
Mario/Luigi Cannot Jump
void nsub_021022B4() {
}

Maybe completely useless, but hey, you can make Captain Toad: Treasure Tracker games.
Also, this leaves a weird animation (ducking a bit for 12 frames) when pressing A.
_________________________
Check out these awesome hacks! Beyond DS is now my major hack!
Posted on 07-16-18, 03:02 pm
Administrator

Karma: 6855
Posts: 1281/1394
Since: 06-09-12
* RicBent wonders for what nsmb.h is included
_________________________
GitHub - Kuribo64 - YouTube
Posted on 07-27-18, 10:03 pm (rev. 1 by  Shadey21 on 07-27-18, 10:05 pm)
Flurry


Karma: 467
Posts: 249/254
Since: 10-14-11
Only "Mario vs Luigi" is selectable in the main menu.
0010D015011041120010C015 -> 0010D015011041120000A0E1
0010A0E30010C0E58C009FE5 -> 0110A0E30010C0E58C009FE5
5C009F150010D015011081120010C015 -> 5C009F150010D015011081120000A0E3
040093E5520AFEEB -> 040093E50000A0E1

All in Overlay 9. Credit to  skawo
Posted on 08-09-18, 02:08 am
Paratroopa
Someone who speaks Portuguese

Karma: 413
Posts: 155/158
Since: 11-02-16
Make coins useless in "Mario vs Luigi".

| ASM created by  Shadey21 |.

Save the file as .CPP
void nsub_02020354()
{
}

Posted on 09-04-18, 06:59 am (rev. 1 by  newluigidev on 09-04-18, 08:54 am)
Buzzy Beetle


Karma: 1782
Posts: 364/378
Since: 08-17-15
Classic Powerup System
repl_02104E00_ov_0A:
MOV    R1, #0
BX     LR


Makes it so when Mario takes damage he becomes small when his powerup is anything but super, like in Super Mario Bros/Super Mario World.
_________________________
tre3 z0N3

Posted on 12-07-18, 08:13 pm (rev. 2 by TheGameratorT on 12-07-18, 08:16 pm)
Newcomer
Who needs a title?

Karma: 16
Posts: 8/8
Since: 07-19-18
Select Jyotyu Palette (Mario Vs Luigi compatible)

Credits to  skawo for making the original code.

#include "nsmb.h" int resetTimer = 101; //Hook to "doSomethingToPlayer" void hook_020201A0() { if (resetTimer <= 10) { resetTimer++; if (resetTimer == 10) { MarioActor* player = (MarioActor*)getPtrToPlayerActor(); //Get pointer to player in game. int JyotyuPal = MygetUnk3ForView(player->CurrentView90E); if (JyotyuPal > 3) JyotyuPal = 3; u8* ptr = (u8*)allocFromGameHeap(1066); switch (JyotyuPal) { case 0: //Normal { loadFileByExtId_LZ_Dest(408 - 0x83, ptr); break; } case 1: //Underground { loadFileByExtId_LZ_Dest(406 - 0x83, ptr); break; } case 2: //Lava { loadFileByExtId_LZ_Dest(409 - 0x83, ptr); break; } case 3: //Snow/Ghost { loadFileByExtId_LZ_Dest(410 - 0x83, ptr); break; } default: { break; } //You can add more if you want } DC_FlushRangeOrAll(ptr, 0x400); GX_BeginLoadOBJExtPltt(); GX_LoadOBJExtPltt(ptr, 0x0, 0x400); GX_EndLoadOBJExtPltt(); DC_FlushRangeOrAll(ptr, 0x400); GX_BeginLoadBGExtPltt(); GX_LoadBGExtPltt(ptr, 0x4000, 0x400); GX_EndLoadBGExtPltt(); freeToGameHeap(ptr); return; } } } //Hook to "readEntranceData" void hook_0201E64C() { resetTimer = 0; }

Disable broken Unk Setting Functionality:
nsub_0201F0F4_main: nsub_0201F118_main: nsub_0201F13C_main: MOV R0, #0 BX LR .globl MygetUnk1ForView MygetUnk1ForView: STMFD SP!, {LR} SUB SP, SP, #4 MOV R1, #0 BL getPtrToViewById CMP R0, #0 LDRNEB R0, [R0,#0xB] MOVEQ R0, #0 ADD SP, SP, #4 LDMFD SP!, {PC} .globl MygetUnk2ForView MygetUnk2ForView: STMFD SP!, {LR} SUB SP, SP, #4 MOV R1, #0 BL getPtrToViewById CMP R0, #0 LDRNEB R0, [R0,#0xC] MOVEQ R0, #0 ADD SP, SP, #4 LDMFD SP!, {PC} .globl MygetUnk3ForView MygetUnk3ForView: STMFD SP!, {LR} SUB SP, SP, #4 MOV R1, #0 BL getPtrToViewById CMP R0, #0 LDRNEB R0, [R0,#0xD] MOVEQ R0, #0 ADD SP, SP, #4 LDMFD SP!, {PC}

First goes into a .cpp file, the second into an .s file. You will also need to add this to nsmb.h:

void GX_BeginLoadBGExtPltt(void); void GX_LoadBGExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte); void GX_EndLoadBGExtPltt(void); void GX_BeginLoadOBJExtPltt(void); void GX_LoadOBJExtPltt(const void *pSrc, u32 destSlotAddr, u32 szByte); void GX_EndLoadOBJExtPltt(void); void DC_FlushRangeOrAll(const void *startAddr, u32 nBytes); void MIi_CpuCopy16(const void *srcp, void *destp, u32 size); u32* getPtrToPlayerActor(); //Replace void* getPtrToPlayerActor(); with this. u8 MygetUnk1ForView(u32 viewID); u8 MygetUnk2ForView(u32 viewID); u8 MygetUnk3ForView(u32 viewID); u8 CurrentView90E; //You should put this one inside the "struct MarioActor" above the "void* vtable;"

This hackily lets you choose the Jyotyu palette per view by shamelessly overwriting it directly in VRAM. Simply change the Unk3(B) value in the View settings. 0 = normal, 1 = underground, 2 = lava, 3 = snow/ghost.
Pages: « 303132333435