diff --git a/ports/jp/build.bat b/ports/jp/build.bat new file mode 100644 index 0000000..906d4ef --- /dev/null +++ b/ports/jp/build.bat @@ -0,0 +1,13 @@ +C:\devkitPro\devkitPPC\bin\powerpc-eabi-gcc.exe %1 -S -o %~n1.s -O1 -std=c99 +C:\devkitPro\devkitPPC\bin\powerpc-eabi-gcc.exe %1 -c -o %~n1.o -O1 -std=c99 +if ERRORLEVEL 1 pause +if ERRORLEVEL 1 exit +C:\devkitPro\devkitPPC\bin\powerpc-eabi-ld.exe -Os -T linker -T smsFuncs -o obj_%~n1.o %~n1.o -Map %~n1.map +if ERRORLEVEL 1 pause +if ERRORLEVEL 1 exit +C:\devkitPro\devkitPPC\bin\powerpc-eabi-objdump.exe obj_%~n1.o --full-content +if ERRORLEVEL 1 pause +if ERRORLEVEL 1 exit +C:\devkitPro\devkitPPC\bin\powerpc-eabi-objcopy.exe obj_%~n1.o %~n1.bin -O binary -R .eh_frame -R .comment -R .sdata -R .gnu.attributes -g -S +bin2gecko.exe %~n1.bin -m %~n1.map -c OnUpdate:0x800f9b64:3 -c OnSetup:0x800ece3c:0 -c OnDraw2D:0x80206734:0 -c OnWaterHitsGround:0x8015ebf8:0 -c OnObjectTouchMario:0x801886d8:3 -c OnAllNPCsUpdate:0x80251d50:0 -c OnSmallEnemyHitMario:0x8027f64c:3 -r OnEMarioControl:0x80253ac0 -r IsMario:0x8012cfe0 +pause diff --git a/ports/jp/linker b/ports/jp/linker new file mode 100644 index 0000000..1e25f3c --- /dev/null +++ b/ports/jp/linker @@ -0,0 +1,121 @@ +__destroy_global_chain = 0x800826e0; +__register_global_object = 0x80082728; +__destroy_new_array = 0x80082740; +__destroy_arr = 0x800827bc; +__construct_array = 0x80082834; +__dt__26__partial_array_destructorFv = 0x80082934; +__construct_new_array = 0x800829ec; +__ptmf_test = 0x80082af4; +__ptmf_scall = 0x80082b24; +__unregister_fragment = 0x80082b4c; +__register_fragment = 0x80082b80; +__dt__26__partial_array_destructorFv = 0x80082934; +__cvt_fp2unsigned = 0x80082bbc; +exit = 0x80083298; +rand = 0x80085ac4; +srand = 0x80085abc; +long2str = 0x800853c0; +longlong2str = 0x800853c0; +round_decimal = 0x80084fac; +float2str = 0x80084974; +toupper = 0x8008385c; +tolower = 0x80083884; +__num2dec = 0x800833a4; +__flush_buffer = 0x80083758; +__prep_buffer = 0x80083824; +__kill_critical_regions = 0x80083858; +__div2u = 0x80082c18; +__div2i = 0x80082d04; +__mod2u = 0x80082e3c; +__mod2i = 0x80082f20; +__shl2i = 0x8008302c; +__shr2u = 0x80083050; +__shr2i = 0x80083074; +__cvt_sll_flt = 0x8008309c; +__cvt_dbl_usll = 0x80083150; +GetR2__Fv = 0x8008321c; +__fini_cpp_exceptions = 0x80083224; +__init_cpp_exceptions = 0x80083258; +fwrite = 0x800838ac; +wcstombs = 0x80083b88; +memcmp = 0x80083bc4; +memchr = 0x80083c08; +memmove = 0x80083c34; +__copy_longs_rev_unaligned = 0x80083d10; +__copy_longs_unaligned = 0x80083dc0; +__copy_longs_rev_aligned = 0x80083e84; +__copy_longs_aligned = 0x80083f30; +__stdio_atexit = 0x80083fec; +sprintf = 0x80083ff0; +snprintf = 0x800840c4; +vsnprintf = 0x80084194; +vprintf = 0x80084204; +__StringWrite = 0x80084280; +__FileWrite = 0x800842ec; +__pformatter = 0x80084344; +parse_format = 0x800855e4; +__StringRead = 0x80085ae8; +strstr = 0x80085b78; +strrchr = 0x80085be4; +strchr = 0x80085c2c; +strcmp = 0x80085c5c; +strcat = 0x80085d80; +strncpy = 0x80085dac; +strcpy = 0x80085df0; +strlen = 0x80085ea4; +strtol = 0x80085ec4; +strtoul = 0x80085fb4; +__strtoul = 0x80086060; +__close_console = 0x800863a8; +__write_console = 0x800863b0; +__read_console = 0x80086448; +fwide = 0x80086528; +fabs__Fd = 0x800865a8; +__ieee754_atan2 = 0x800865b0; +atan = 0x80086848; +frexp = 0x80086a88; +atan2 = 0x80086b24; +fabsf__Ff = 0x80086b44; +atanf = 0x80086b4c; +atan__Ff = 0x80086d40; +_inv_sqrtf = 0x80086d60; +acosf = 0x80086dd0; +atan2f = 0x80086e14; +tanf = 0x80086eec; +cos__Ff = 0x80086f30; +sin__Ff = 0x80086f50; +cosf = 0x80086f70; +sinf = 0x80087104; +__sinit_trigf_c = 0x800872a8; +powf = 0x800872d8; +expf = 0x80087a18; +memset = 0x80003100; +__fill_mem = 0x80003130; +memcpy = 0x800031f4; +__nw__FUl = 0x8000c8b0; +__nw__FUli = 0x8000c8f8; +__nwa__FUl = 0x8000c9b0; +__nwa__FUli = 0x8000c9f8; +__dl__FPv = 0x8000cab0; +__dla__FPv = 0x8000cb14; +SECTIONS +{ + . = 0x817fa000; + .text : + { + *(.text) + } + .rodata : + { + *(.rodata*) + } + .data : + { + *(.data) + } + . += 0x08; + .sdata : + { + *(.sdata) + } +} \ No newline at end of file diff --git a/ports/jp/smsFuncs b/ports/jp/smsFuncs new file mode 100644 index 0000000..f647629 --- /dev/null +++ b/ports/jp/smsFuncs @@ -0,0 +1,93 @@ +MarDirector_SetupObjects = 0x8010c3ac; +PlaySound = 0x80181ef8; +StartStageEntranceDemoSeq = 0x80110000; +GenerateEffectElectric = 0x8014243c; +MakeObjAppear = 0x8018efa8; +SendMsgToMario = 0x80152bb4; +EmitSweat = 0x80143c80; +Mario_StartVoice = 0x8016480c; +Fludd_Emit = 0x80148658; +SetMarioStatus = 0x80133424; +IsMarioJumping = 0x802739b4; +Mario_SetAnim = 0x80126948; +ThrowMario = 0x80289ec4; +GetMarioMapPosition = 0x80289ec4; +IncGoldCoinFlag = 0x800e7bcc; +GetMarioStatusFromHitActor = 0x8015298c; +GetMarioStatus = 0x80152c34; +GetMarioHP = 0x801529b8; +GetMarioYoshi = 0x80152d4c; +GetFLUDD = 0x80152c04; +GetMarioHitActor = 0x80152d20; +GetShineStage = 0x800fc534; +SearchF = 0x80044960; +ChangeStage = 0x800ed8a0; +DrawWaterBackground = 0x8020a6fc; +Talk2D_OpenWindow = 0x802119cc; +Vector_Magnitude = 0x800c57d0; +Vector_Normalize = 0x800c57f8; +Vector_Subtract = 0x800c2088; +Vector_Add = 0x80094e8c; +Vector_Scale = 0x80094ed4; +CalcKeyCode = 0x8004468c; +JUTRect_Set = 0x8001321c; +J2DScreen_Draw = 0x80018e64; +J2DPane_MakeMatrix = 0x80014c38; +J2DPane_SetBasePosition = 0x80014e98; +J2DPane_Draw = 0x80014710; +J2DTextBox_Delete = 0x80019ad0; +J2DTextBox_GetStringPtr = 0x80019d1c; +J2DTextBox_SetString = 0x80019d24; +J2DTextBox_DrawSelf = 0x80019e94; +J2DTextBox_Drawii = 0x80019be4; +J2DTextBox_Draw = 0x80019be4; +J2DTextBox_Create = 0x80019904; +J2DPrint_Delete = 0x80016e2c; +J2DPrint_Print = 0x800171a8; +J2DPrint_Initiate = 0x80016e78; +J2DPrint_GetWidth = 0x80017350; +J2DPrint_Create = 0x80016d38; +J2DGrafContext_Setup2D = 0x80035228; +J2DOrthoGraph_Create = 0x80036b38; +GXInvalidateTexAll = 0x800aad20; +GXSetScissor = 0x800ada58; +StampPollution = 0x801efa1c; +CleanPollution = 0x801ef94c; +Drama_PrepareUpdate = 0x80046f6c; +StartTrembleEffect = 0x800c2370; +SetMarioVelocity = 0x80134b24; +Mario_SetGamePad = 0x80155a0c; +MarioGamePad_Read = 0x800fba58; +MarioGamePad_Update = 0x800fbae4; +MarioGamePad_Reset = 0x800fc380; +EMario_Create = 0x8024d7e0; +Mario_CheckController = 0x801308e8; +Mario_CheckCollision = 0x80160480; +Mario_ReceiveMessage = 0x80161f84; +Mario_PlayerControl = 0x8012d30c; +Mario_DamageExec = 0x8012194c; +Mario_IncHP = 0x80122ab8; +Mario_DecHP = 0x801229b8; +EnemyMario_CheckController = 0x80253ac0; +Camera_AddMultiPlayer = 0x80360538; +Camera_RemoveMultiPlayer = 0x803604a0; +Camera_CreateMultiPlayer = 0x80360594; +Mario_DrawHP = 0x80253778; +IsPolluted = 0x801f2e78; +Mario_WearGlasses = 0x801272e8; +IsDemoMode = 0x8017343c; +InsertTimer = 0x800e1ee0; +StartTimer = 0x800e1d74; +AppearReadyGo = 0x800dd710; +LaunchEventClearDemo = 0x800e2fb0; +StopTimer = 0x800e1b4c; +StartAppearTimer = 0x8020c428; +OSGetTime = 0x80093df8; +OSGetSystemTime = 0x80093e18; +OSTicksToCalendarTime = 0x80094018; +OSInitStopwatch = 0x80092900; +OSStartStopwatch = 0x8009292c; +OSCheckStopwatch = 0x80092a34; +OSStopStopwatch = 0x80092968; +OSResetStopwatch = 0x80092aa4; +OSGetTick = 0x80093e10; \ No newline at end of file