├── tools ├── __init__.py ├── util │ ├── cache.py │ ├── attr.py │ └── __init__.py └── configuration.py ├── README.md ├── source ├── rodata.s ├── gx │ ├── GXStubs.s │ └── GXDisplayList.s ├── macros.s ├── MSL_C_PPCEABI_bare_H │ ├── misc_io.s │ ├── e_asin.s │ ├── hyperbolicsf.s │ ├── critical_regions.ppc_eabi.s │ ├── w_atan2.s │ ├── rand.s │ ├── mbstring.s │ ├── ctype.s │ ├── wchar_io.s │ ├── scanf.s │ ├── s_frexp.s │ ├── buffer_io.s │ ├── abort_exit.s │ ├── mem.s │ └── uart_console_io.s ├── TRK_MINNOW_DOLPHIN │ ├── usr_put.s │ ├── msg.s │ ├── mutex_TRK.s │ ├── dolphin_trk_2.s │ ├── targcont.s │ ├── flush_cache.s │ ├── main_TRK.s │ ├── mem_TRK_2.s │ ├── dispatch.s │ ├── mem_TRK.s │ ├── notify.s │ └── mainloop.s ├── odenotstub │ └── odenotstub.s ├── JSystem │ ├── JASInstEffect.s │ ├── JASProbe.s │ ├── JASBank.s │ ├── JASWaveBank.s │ ├── JAIConst.s │ ├── J3DClusterLoader.s │ ├── JDRPlacement.s │ ├── JDRViewObj.s │ ├── JPADataBlock.s │ ├── singlelinklist.s │ ├── JASInstRand.s │ ├── J3DMaterialAttach.s │ ├── JSGAmbientLight.s │ ├── J3DNode.s │ ├── JUTAssert.s │ ├── JASKernelDebug.s │ ├── JASTrackPort.s │ ├── JASDriverIF.s │ ├── JASNoteMgr.s │ ├── JSGObject.s │ ├── JDRResolution.s │ ├── JSGSystem.s │ ├── random.s │ ├── osdsp.s │ ├── JKRDisposer.s │ ├── JAIEntryStream.s │ ├── JUTPalette.s │ ├── JASPlayer_impl.s │ ├── JUTNameTab.s │ ├── JASInstSense.s │ ├── JUTResource.s │ ├── JSGActor.s │ ├── JDRViewConnecter.s │ ├── JASRegisterParam.s │ ├── JSGLight.s │ ├── JDRGraphics.s │ ├── JAIEntry.s │ ├── JDRCharacter.s │ ├── dspproc.s │ ├── JSUOutputStream.s │ └── JDRDStageGroup.s ├── os │ ├── OSLink.s │ ├── OSArena.s │ ├── OSSync.s │ ├── __ppc_eabi_init.s │ └── __ppc_eabi_init_2.s ├── NPC │ ├── NpcInitAnmData.s │ ├── NpcInitData.s │ ├── NpcBalloon.s │ ├── NpcInitActionData.s │ ├── NpcThrow.s │ └── NpcTrample.s ├── bootfile_rest.s ├── Enemy │ ├── BossHanachanSound.s │ └── enemyinterp.s ├── init.s ├── System │ ├── ProcessMeter.s │ ├── TexCache.s │ ├── ScenarioArchiveName.s │ ├── BaseParam.s │ ├── MarDirectorCreateObjects.s │ ├── StageEventInfo.s │ ├── PositionHolder.s │ ├── StageUtil.s │ ├── marerr.s │ ├── TargetArrow.s │ ├── SnapTimeObj.s │ ├── THPRender.s │ └── ZBufferCatch.s ├── dtors.s ├── dsp │ ├── dsp_debug.s │ └── dsp.s ├── amcstubs │ └── AmcExi2Stubs.s ├── Runtime_PPCEABI_H │ ├── ptmf.s │ ├── global_destructor_chain.s │ ├── ExceptionPPC.s │ ├── __init_cpp_exceptions.s │ ├── __va_arg.s │ └── __mem.s ├── Strategic │ ├── binder.s │ └── smplcharacter.s ├── main.s ├── MarioUtil │ ├── RumbleType.s │ ├── MapUtil.s │ └── TexUtil.s ├── extab.s ├── Map │ └── StickyStainManager.s ├── extabindex.s ├── base │ └── PPCArch.s ├── db │ └── db.s ├── si │ └── SISamplingRate.s ├── mtx │ ├── mtx44.s │ └── mtxvec.s ├── GC2D │ ├── Coord2D.s │ └── BlendPane.s ├── gd │ └── GDBase.s ├── Camera │ └── CameraCodeControl.s └── dvd │ └── dvderror.s ├── .gitignore └── Makefile /tools/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SMS 2 | -------------------------------------------------------------------------------- /source/rodata.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JimB16/SMS/HEAD/source/rodata.s -------------------------------------------------------------------------------- /source/gx/GXStubs.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __GXSetRange 3 | __GXSetRange: # 0x80362a4c 4 | blr 5 | 6 | -------------------------------------------------------------------------------- /source/macros.s: -------------------------------------------------------------------------------- 1 | 2 | 3 | .macro string_align str 4 | .string "\str" 5 | .align 2, 0 6 | .endm 7 | 8 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/misc_io.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __stdio_atexit 3 | __stdio_atexit: # 0x803396cc 4 | blr 5 | 6 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/e_asin.s: -------------------------------------------------------------------------------- 1 | 2 | .globl fabs__Fd 3 | fabs__Fd: # 0x8033bc88 4 | fabs f1, f1 5 | blr 6 | 7 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/usr_put.s: -------------------------------------------------------------------------------- 1 | 2 | .globl usr_put_initialize 3 | usr_put_initialize: # 0x8033e170 4 | blr 5 | 6 | -------------------------------------------------------------------------------- /source/odenotstub/odenotstub.s: -------------------------------------------------------------------------------- 1 | 2 | .globl Hu_IsStub 3 | Hu_IsStub: # 0x803646f0 4 | li r3, 0x0 5 | blr 6 | 7 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/hyperbolicsf.s: -------------------------------------------------------------------------------- 1 | 2 | .globl fabsf__Ff 3 | fabsf__Ff: # 0x8033c224 4 | fabs f1, f1 5 | blr 6 | 7 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/critical_regions.ppc_eabi.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __kill_critical_regions 3 | __kill_critical_regions: # 0x80338f38 4 | blr 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # generated 2 | *.elf 3 | *.o 4 | *.d 5 | *.bin 6 | *.pyc 7 | 8 | # baserom 9 | *.dat 10 | *.atr 11 | *.naix 12 | *.arc 13 | 14 | /baserom/* 15 | /build/* 16 | -------------------------------------------------------------------------------- /source/JSystem/JASInstEffect.s: -------------------------------------------------------------------------------- 1 | 2 | .globl setTarget__Q28JASystem11TInstEffectFi 3 | setTarget__Q28JASystem11TInstEffectFi: # 0x80310068 4 | stb r4, 0x4(r3) 5 | blr 6 | 7 | -------------------------------------------------------------------------------- /source/os/OSLink.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __OSModuleInit 3 | __OSModuleInit: # 0x80346118 4 | lis r4, unk_80000000@h 5 | li r0, 0x0 6 | stw r0, 0x30cc(r4) 7 | stw r0, 0x30c8(r4) 8 | stw r0, 0x30d0(r4) 9 | blr 10 | 11 | -------------------------------------------------------------------------------- /source/JSystem/JASProbe.s: -------------------------------------------------------------------------------- 1 | 2 | .globl probeStart__Q28JASystem6KernelFlPc 3 | probeStart__Q28JASystem6KernelFlPc: # 0x803194f4 4 | blr 5 | 6 | 7 | .globl probeFinish__Q28JASystem6KernelFl 8 | probeFinish__Q28JASystem6KernelFl: # 0x803194f8 9 | blr 10 | 11 | -------------------------------------------------------------------------------- /source/JSystem/JASBank.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getCurrentHeap__Q28JASystem5TBankFv 3 | getCurrentHeap__Q28JASystem5TBankFv: # 0x8030da44 4 | lwz r3, R13Off_m0x5cb8(r13) 5 | cmplwi r3, 0x0 6 | bnelr- 7 | 8 | lwz r3, R13Off_m0x5b30(r13) 9 | blr 10 | 11 | -------------------------------------------------------------------------------- /source/NPC/NpcInitAnmData.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMSGetNpcInitAnmData__FUl 3 | SMSGetNpcInitAnmData__FUl: # 0x80216138 4 | lis r4, sAllNpcInitAnmData_1577@ha 5 | slwi r3, r3, 3 6 | addi r0, r4, sAllNpcInitAnmData_1577@l 7 | add r3, r0, r3 8 | blr 9 | 10 | -------------------------------------------------------------------------------- /source/JSystem/JASWaveBank.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getCurrentHeap__Q28JASystem9TWaveBankFv 3 | getCurrentHeap__Q28JASystem9TWaveBankFv: # 0x80310898 4 | lwz r3, R13Off_m0x5c88(r13) 5 | cmplwi r3, 0x0 6 | bnelr- 7 | 8 | lwz r3, R13Off_m0x5b30(r13) 9 | blr 10 | 11 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/w_atan2.s: -------------------------------------------------------------------------------- 1 | 2 | .globl atan2 3 | atan2: # 0x8033c204 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | bl __ieee754_atan2 8 | lwz r0, 0xc(sp) 9 | addi sp, sp, 0x8 10 | mtlr r0 11 | blr 12 | 13 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/msg.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKMessageSend 3 | TRKMessageSend: # 0x8033d738 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | lwz r4, 0x8(r3) 8 | addi r3, r3, 0x10 9 | bl TRKWriteUARTN 10 | addi sp, sp, 0x8 11 | lwz r0, 0x4(sp) 12 | mtlr r0 13 | blr 14 | 15 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/mutex_TRK.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKInitializeMutex 3 | TRKInitializeMutex: # 0x8033f92c 4 | li r3, 0x0 5 | blr 6 | 7 | 8 | .globl TRKAcquireMutex 9 | TRKAcquireMutex: # 0x8033f934 10 | li r3, 0x0 11 | blr 12 | 13 | 14 | .globl TRKReleaseMutex 15 | TRKReleaseMutex: # 0x8033f93c 16 | li r3, 0x0 17 | blr 18 | 19 | -------------------------------------------------------------------------------- /source/bootfile_rest.s: -------------------------------------------------------------------------------- 1 | 2 | 3 | .include "./source/extab.s" # 0x370000 4 | .include "./source/extabindex.s" # 0x370060 5 | 6 | .include "./source/ctors.s" # 0x3700c0 7 | 8 | .include "./source/dtors.s" # 0x370480 9 | .include "./source/rodata.s" # 0x3704a0 10 | .include "./source/data.s" # 0x3a8660 11 | 12 | #.include "./source/sdata.s" # 0x3e6700 13 | #.include "./source/sdata2.s" # 0x3e7440 14 | 15 | -------------------------------------------------------------------------------- /source/Enemy/BossHanachanSound.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getBasNameTable__22TBossHanachanPartsBaseCFv 3 | getBasNameTable__22TBossHanachanPartsBaseCFv: # 0x8010a668 4 | lis r3, bosshanachan_bastable@ha 5 | addi r3, r3, bosshanachan_bastable@l 6 | blr 7 | 8 | 9 | .globl unk_8010a674 10 | unk_8010a674: # 0x8010a674 11 | addi r3, r3, -0x20 12 | b __dt__22TBossHanachanPartsBaseFv 13 | 14 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/dolphin_trk_2.s: -------------------------------------------------------------------------------- 1 | 2 | #.zero 0x800051cc - 0x80003298 3 | #.incbin "./baserom/code/Text_0x80003100.bin", 0x198, 0x800051cc - 0x80003298 4 | 5 | .globl __TRK_reset 6 | __TRK_reset: # 0x800051cc 7 | mflr r0 8 | stw r0, 0x4(sp) 9 | stwu sp, -0x8(sp) 10 | bl __TRK_copy_vectors 11 | addi sp, sp, 0x8 12 | lwz r0, 0x4(sp) 13 | mtlr r0 14 | blr 15 | 16 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/targcont.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKTargetContinue 3 | TRKTargetContinue: # 0x80341a4c 4 | mflr r0 5 | li r3, 0x0 6 | stw r0, 0x4(sp) 7 | stwu sp, -0x8(sp) 8 | bl TRKTargetSetStopped 9 | bl UnreserveEXI2Port 10 | bl TRKSwapAndGo 11 | bl ReserveEXI2Port 12 | li r3, 0x0 13 | addi sp, sp, 0x8 14 | lwz r0, 0x4(sp) 15 | mtlr r0 16 | blr 17 | 18 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/rand.s: -------------------------------------------------------------------------------- 1 | 2 | .globl srand 3 | srand: # 0x8033b19c 4 | stw r3, R13Off_m0x7390(r13) 5 | blr 6 | 7 | 8 | .globl rand 9 | rand: # 0x8033b1a4 10 | lis r3, unk_41c64e6d@h 11 | lwz r4, R13Off_m0x7390(r13) 12 | addi r0, r3, unk_41c64e6d@l 13 | mullw r3, r4, r0 14 | addi r0, r3, 0x3039 15 | stw r0, R13Off_m0x7390(r13) 16 | lwz r0, R13Off_m0x7390(r13) 17 | extrwi r3, r0, 15, 1 18 | blr 19 | 20 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/flush_cache.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRK_flush_cache 3 | TRK_flush_cache: # 0x8033fa1c 4 | lis r5, unk_fffffff1@h 5 | ori r5, r5, unk_fffffff1@l 6 | and r5, r5, r3 7 | subf r3, r5, r3 8 | add r4, r4, r3 9 | branch_0x8033fa30: 10 | dcbst r0, r5 11 | dcbf r0, r5 12 | sync 13 | icbi r0, r5 14 | addic r5, r5, 0x8 15 | subic. r4, r4, 0x8 16 | bge+ branch_0x8033fa30 17 | isync 18 | blr 19 | 20 | -------------------------------------------------------------------------------- /source/os/OSArena.s: -------------------------------------------------------------------------------- 1 | 2 | .globl OSGetArenaHi 3 | OSGetArenaHi: # 0x80343394 4 | lwz r3, R13Off_m0x5a28(r13) 5 | blr 6 | 7 | 8 | .globl OSGetArenaLo 9 | OSGetArenaLo: # 0x8034339c 10 | lwz r3, R13Off_m0x7378(r13) 11 | blr 12 | 13 | 14 | .globl OSSetArenaHi 15 | OSSetArenaHi: # 0x803433a4 16 | stw r3, R13Off_m0x5a28(r13) 17 | blr 18 | 19 | 20 | .globl OSSetArenaLo 21 | OSSetArenaLo: # 0x803433ac 22 | stw r3, R13Off_m0x7378(r13) 23 | blr 24 | 25 | -------------------------------------------------------------------------------- /source/init.s: -------------------------------------------------------------------------------- 1 | 2 | .include "source/offsets.s" 3 | .include "source/constants.s" 4 | .include "source/values.s" 5 | 6 | 7 | .section .ram80003100, "ax" 8 | 9 | 10 | .include "source/Runtime_PPCEABI_H/__mem.s" 11 | .include "source/TRK_MINNOW_DOLPHIN/mem_TRK_2.s" 12 | .include "source/TRK_MINNOW_DOLPHIN/__exception.s" 13 | .include "source/TRK_MINNOW_DOLPHIN/dolphin_trk_2.s" 14 | .include "source/os/__start.s" 15 | .include "source/os/__ppc_eabi_init_2.s" 16 | #.include "source/os/__start_data.s" 17 | 18 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/mbstring.s: -------------------------------------------------------------------------------- 1 | 2 | .globl wcstombs 3 | wcstombs: # 0x80339268 4 | cmplwi r5, 0x0 5 | mtctr r5 6 | li r6, 0x0 7 | ble- branch_0x8033929c 8 | branch_0x80339278: 9 | lhz r0, 0x0(r4) 10 | addi r4, r4, 0x2 11 | extsb r5, r0 12 | extsb. r0, r5 13 | stb r5, 0x0(r3) 14 | addi r3, r3, 0x1 15 | beq- branch_0x8033929c 16 | addi r6, r6, 0x1 17 | bdnz+ branch_0x80339278 18 | branch_0x8033929c: 19 | mr r3, r6 20 | blr 21 | 22 | -------------------------------------------------------------------------------- /source/System/ProcessMeter.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__13TProcessMeterFl 3 | __ct__13TProcessMeterFl: # 0x802a8d78 4 | li r0, 0x28 5 | stw r0, 0x0(r3) 6 | li r0, 0x1c2 7 | li r6, 0x230 8 | stw r0, 0x4(r3) 9 | li r5, 0x4 10 | li r0, 0x0 11 | stw r6, 0x8(r3) 12 | stw r5, 0xc(r3) 13 | stw r4, 0x10(r3) 14 | lfs f0, -0x3a0(r2) 15 | stfs f0, 0x14(r3) 16 | stfs f0, 0x18(r3) 17 | sth r0, 0x1c(r3) 18 | sth r0, 0x1e(r3) 19 | blr 20 | 21 | -------------------------------------------------------------------------------- /source/System/TexCache.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMS_ResetTexCacheRegion__Fv 3 | SMS_ResetTexCacheRegion__Fv: # 0x802a57f8 4 | mflr r0 5 | lis r3, j3dSys@h 6 | stw r0, 0x4(sp) 7 | addi r4, r3, j3dSys@l 8 | addi r3, r4, unk_10020000@l 9 | stwu sp, -0x8(sp) 10 | lwz r0, 0x34(r4) 11 | oris r0, r0, 0x8000 12 | stw r0, 0x34(r4) 13 | li r4, 0x1 14 | bl setTexCacheRegion__6J3DSysF15_GXTexCacheSize 15 | lwz r0, 0xc(sp) 16 | addi sp, sp, 0x8 17 | mtlr r0 18 | blr 19 | 20 | -------------------------------------------------------------------------------- /source/JSystem/JAIConst.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __sinit_JAIConst_cpp 3 | __sinit_JAIConst_cpp: # 0x803031dc 4 | mflr r0 5 | lis r3, nullActor__8JAIConst@h 6 | stw r0, 0x4(sp) 7 | addi r5, r3, nullActor__8JAIConst@l 8 | li r0, 0x0 9 | stwu sp, -0x8(sp) 10 | addi r3, r13, R13Off_m0x5d80 11 | li r4, 0x0 12 | stw r0, 0x0(r5) 13 | stw r0, 0x4(r5) 14 | stw r0, 0x8(r5) 15 | stw r0, 0xc(r5) 16 | bl __ct__Q25JMath13TRandom_fast_FUl 17 | lwz r0, 0xc(sp) 18 | addi sp, sp, 0x8 19 | mtlr r0 20 | blr 21 | 22 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/main_TRK.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRK_main 3 | TRK_main: # 0x803416ac 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | bl TRKInitializeNub 8 | lis r4, 0x8040 9 | stwu r3, 0x2568(r4) 10 | lwz r0, 0x0(r4) 11 | cmpwi r0, 0x0 12 | bne- branch_0x803416d8 13 | bl TRKNubWelcome 14 | bl TRKNubMainLoop 15 | branch_0x803416d8: 16 | bl TRKTerminateNub 17 | lis r4, 0x8040 18 | stw r3, 0x2568(r4) 19 | addi sp, sp, 0x8 20 | lwz r0, 0x4(sp) 21 | mtlr r0 22 | blr 23 | 24 | -------------------------------------------------------------------------------- /source/NPC/NpcInitData.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMSGetNpcInitData__FUl 3 | SMSGetNpcInitData__FUl: # 0x80210d3c 4 | lis r4, sAllNpcInitData_1622@ha 5 | slwi r3, r3, 2 6 | addi r0, r4, sAllNpcInitData_1622@l 7 | add r3, r0, r3 8 | lwz r3, 0x0(r3) 9 | blr 10 | 11 | 12 | .globl __sinit_NpcInitData_cpp 13 | __sinit_NpcInitData_cpp: # 0x80210d54 14 | lis r3, sMareMB_FishingRodData@ha 15 | lwz r0, R13Off_m0x77b8(r13) 16 | addi r4, r3, sMareMB_FishingRodData@l 17 | stw r0, 0x0(r4) 18 | lis r3, 0x803e 19 | stw r0, -0x6b2c(r3) 20 | blr 21 | 22 | -------------------------------------------------------------------------------- /source/dtors.s: -------------------------------------------------------------------------------- 1 | 2 | .section .ram80373480, "ax" 3 | 4 | 5 | .globl __destroy_global_chain_reference 6 | __destroy_global_chain_reference: # 0x80373480 /Runtime_PPCEABI_H/__init_cpp_exceptions.s 7 | .long __destroy_global_chain # 0x80373480 8 | 9 | .globl __fini_cpp_exceptions_reference 10 | __fini_cpp_exceptions_reference: # 0x80373484 /Runtime_PPCEABI_H/__init_cpp_exceptions.s 11 | .long __fini_cpp_exceptions # 0x80373484 12 | 13 | .globl __destroy_global_chain_reference_80373488 14 | __destroy_global_chain_reference_80373488: # 0x80373488 /Runtime_PPCEABI_H/global_destructor_chain.s 15 | .long __destroy_global_chain # 0x80373488 16 | 17 | 18 | 19 | .align 5, 0 20 | -------------------------------------------------------------------------------- /source/System/ScenarioArchiveName.s: -------------------------------------------------------------------------------- 1 | 2 | .globl load__20TScenarioArchiveNameFR20JSUMemoryInputStream 3 | load__20TScenarioArchiveNameFR20JSUMemoryInputStream: # 0x802a8010 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | addi r30, r3, 0x0 11 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 12 | mr r3, r31 13 | bl readString__14JSUInputStreamFv 14 | stw r3, 0xc(r30) 15 | lwz r0, 0x1c(sp) 16 | lwz r31, 0x14(sp) 17 | lwz r30, 0x10(sp) 18 | mtlr r0 19 | addi sp, sp, 0x18 20 | blr 21 | 22 | -------------------------------------------------------------------------------- /tools/util/cache.py: -------------------------------------------------------------------------------- 1 | 2 | class cached_property(property): 3 | def __get__(self, instance, owner): 4 | try: 5 | return instance._cached_props[self] 6 | except AttributeError: 7 | instance._cached_props = {} 8 | instance._cached_props[self] = super(cached_property, 9 | self).__get__(instance, owner) 10 | return instance._cached_props[self] 11 | except KeyError: 12 | instance._cached_props[self] = super(cached_property, 13 | self).__get__(instance, owner) 14 | return instance._cached_props[self] 15 | -------------------------------------------------------------------------------- /source/dsp/dsp_debug.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __DSP_debug_printf 3 | __DSP_debug_printf: # 0x80353e7c 4 | stwu sp, -0x70(sp) 5 | bne- cr1, branch_0x80353ea4 6 | stfd f1, 0x28(sp) 7 | stfd f2, 0x30(sp) 8 | stfd f3, 0x38(sp) 9 | stfd f4, 0x40(sp) 10 | stfd f5, 0x48(sp) 11 | stfd f6, 0x50(sp) 12 | stfd f7, 0x58(sp) 13 | stfd f8, 0x60(sp) 14 | branch_0x80353ea4: 15 | stw r3, 0x8(sp) 16 | stw r4, 0xc(sp) 17 | stw r5, 0x10(sp) 18 | stw r6, 0x14(sp) 19 | stw r7, 0x18(sp) 20 | stw r8, 0x1c(sp) 21 | stw r9, 0x20(sp) 22 | stw r10, 0x24(sp) 23 | addi sp, sp, 0x70 24 | blr 25 | 26 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/ctype.s: -------------------------------------------------------------------------------- 1 | 2 | .globl toupper 3 | toupper: # 0x80338f3c 4 | cmpwi r3, -0x1 5 | bne- branch_0x80338f4c 6 | li r3, -0x1 7 | blr 8 | 9 | branch_0x80338f4c: 10 | lis r4, unk_803aab88@ha 11 | clrlwi r3, r3, 24 12 | addi r0, r4, unk_803aab88@l 13 | add r3, r0, r3 14 | lbz r3, 0x0(r3) 15 | blr 16 | 17 | 18 | .globl tolower 19 | tolower: # 0x80338f64 20 | cmpwi r3, -0x1 21 | bne- branch_0x80338f74 22 | li r3, -0x1 23 | blr 24 | 25 | branch_0x80338f74: 26 | lis r4, unk_803aaa88@ha 27 | clrlwi r3, r3, 24 28 | addi r0, r4, unk_803aaa88@l 29 | add r3, r0, r3 30 | lbz r3, 0x0(r3) 31 | blr 32 | 33 | -------------------------------------------------------------------------------- /source/amcstubs/AmcExi2Stubs.s: -------------------------------------------------------------------------------- 1 | 2 | .globl EXI2_Init 3 | EXI2_Init: # 0x803646c0 4 | blr 5 | 6 | 7 | .globl EXI2_EnableInterrupts 8 | EXI2_EnableInterrupts: # 0x803646c4 9 | blr 10 | 11 | 12 | .globl EXI2_Poll 13 | EXI2_Poll: # 0x803646c8 14 | li r3, 0x0 15 | blr 16 | 17 | 18 | .globl EXI2_ReadN 19 | EXI2_ReadN: # 0x803646d0 20 | li r3, 0x0 21 | blr 22 | 23 | 24 | .globl EXI2_WriteN 25 | EXI2_WriteN: # 0x803646d8 26 | li r3, 0x0 27 | blr 28 | 29 | 30 | .globl EXI2_Reserve 31 | EXI2_Reserve: # 0x803646e0 32 | blr 33 | 34 | 35 | .globl EXI2_Unreserve 36 | EXI2_Unreserve: # 0x803646e4 37 | blr 38 | 39 | 40 | .globl AMC_IsStub 41 | AMC_IsStub: # 0x803646e8 42 | li r3, 0x1 43 | blr 44 | 45 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/ptmf.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ptmf_test 3 | __ptmf_test: # 0x803381d4 4 | lwz r5, 0x0(r3) 5 | lwz r6, 0x4(r3) 6 | lwz r7, 0x8(r3) 7 | li r3, 0x1 8 | cmpwi r5, 0x0 9 | cmpwi cr6, r6, 0x0 10 | cmpwi cr7, r7, 0x0 11 | bnelr- 12 | 13 | bnelr- cr6, 14 | 15 | bnelr- cr7, 16 | 17 | li r3, 0x0 18 | blr 19 | 20 | 21 | .globl __ptmf_scall 22 | __ptmf_scall: # 0x80338204 23 | lwz r0, 0x0(r12) 24 | lwz r11, 0x4(r12) 25 | lwz r12, 0x8(r12) 26 | add r3, r3, r0 27 | cmpwi r11, 0x0 28 | blt- branch_0x80338224 29 | lwzx r12, r3, r12 30 | lwzx r12, r12, r11 31 | branch_0x80338224: 32 | mtctr r12 33 | bctr 34 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/mem_TRK_2.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRK_memcpy 3 | TRK_memcpy: # 0x80003244 4 | addi r4, r4, -0x1 5 | addi r6, r3, -0x1 6 | addi r5, r5, 0x1 7 | b branch_0x8000325c 8 | 9 | branch_0x80003254: 10 | lbzu r0, 0x1(r4) 11 | stbu r0, 0x1(r6) 12 | branch_0x8000325c: 13 | subic. r5, r5, 0x1 14 | bne+ branch_0x80003254 15 | blr 16 | 17 | 18 | .globl TRK_memset 19 | TRK_memset: # 0x80003268 20 | mflr r0 21 | stw r0, 0x4(sp) 22 | stwu sp, -0x10(sp) 23 | stw r31, 0xc(sp) 24 | mr r31, r3 25 | bl TRK_fill_mem 26 | mr r3, r31 27 | lwz r31, 0xc(sp) 28 | addi sp, sp, 0x10 29 | lwz r0, 0x4(sp) 30 | mtlr r0 31 | blr 32 | 33 | -------------------------------------------------------------------------------- /source/Strategic/binder.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__7TBinderFv 3 | __dt__7TBinderFv: # 0x80224110 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | mr. r31, r3 9 | beq- branch_0x80224144 10 | lis r3, __vvt__7TBinder@ha 11 | addi r3, r3, __vvt__7TBinder@l 12 | extsh. r0, r4 13 | stw r3, 0x0(r31) 14 | ble- branch_0x80224144 15 | mr r3, r31 16 | bl __dl__FPv 17 | branch_0x80224144: 18 | lwz r0, 0x1c(sp) 19 | mr r3, r31 20 | lwz r31, 0x14(sp) 21 | addi sp, sp, 0x18 22 | mtlr r0 23 | blr 24 | 25 | 26 | .globl __ct__7TBinderFv 27 | __ct__7TBinderFv: # 0x8022415c 28 | lis r4, __vvt__7TBinder@ha 29 | addi r0, r4, __vvt__7TBinder@l 30 | stw r0, 0x0(r3) 31 | blr 32 | 33 | -------------------------------------------------------------------------------- /source/JSystem/J3DClusterLoader.s: -------------------------------------------------------------------------------- 1 | 2 | .globl JSUConvertOffsetToPtr_Us___FPCvPCv 3 | JSUConvertOffsetToPtr_Us___FPCvPCv: # 0x802e4fd8 4 | cmplwi r4, 0x0 5 | bne- branch_0x802e4fe8 6 | li r3, 0x0 7 | blr 8 | 9 | branch_0x802e4fe8: 10 | add r3, r3, r4 11 | blr 12 | 13 | 14 | .globl JSUConvertOffsetToPtr_f___FPCvPCv 15 | JSUConvertOffsetToPtr_f___FPCvPCv: # 0x802e4ff0 16 | cmplwi r4, 0x0 17 | bne- branch_0x802e5000 18 | li r3, 0x0 19 | blr 20 | 21 | branch_0x802e5000: 22 | add r3, r3, r4 23 | blr 24 | 25 | 26 | .globl JSUConvertOffsetToPtr_7ResNTAB___FPCvPCv 27 | JSUConvertOffsetToPtr_7ResNTAB___FPCvPCv: # 0x802e5008 28 | cmplwi r4, 0x0 29 | bne- branch_0x802e5018 30 | li r3, 0x0 31 | blr 32 | 33 | branch_0x802e5018: 34 | add r3, r3, r4 35 | blr 36 | 37 | -------------------------------------------------------------------------------- /source/System/BaseParam.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__10TBaseParamFP7TParamsUsPCc 3 | __ct__10TBaseParamFP7TParamsUsPCc: # 0x80287644 4 | lis r7, __vvt__10TBaseParam@ha 5 | addi r0, r7, __vvt__10TBaseParam@l 6 | stw r0, 0x0(r3) 7 | li r0, 0x0 8 | sth r5, 0x4(r3) 9 | stw r6, 0x8(r3) 10 | stw r0, 0xc(r3) 11 | lwz r0, 0x4(r4) 12 | cmplwi r0, 0x0 13 | beq- branch_0x8028768c 14 | mr r4, r0 15 | b branch_0x80287678 16 | 17 | branch_0x80287674: 18 | mr r4, r0 19 | branch_0x80287678: 20 | lwz r0, 0xc(r4) 21 | cmplwi r0, 0x0 22 | bne+ branch_0x80287674 23 | stw r3, 0xc(r4) 24 | blr 25 | 26 | branch_0x8028768c: 27 | stw r3, 0x4(r4) 28 | blr 29 | 30 | 31 | .globl load__10TBaseParamFR20JSUMemoryInputStream 32 | load__10TBaseParamFR20JSUMemoryInputStream: # 0x80287694 33 | blr 34 | 35 | -------------------------------------------------------------------------------- /source/main.s: -------------------------------------------------------------------------------- 1 | 2 | .globl main 3 | main: # 0x80005600 4 | mflr r0 5 | lis r3, 0x803f 6 | stw r0, 0x4(sp) 7 | stwu sp, -0x10(sp) 8 | stw r31, 0xc(sp) 9 | subi r31, r3, 0x6900 10 | addi r3, r31, 0x0 11 | bl initialize__12TApplicationFv 12 | mr r3, r31 13 | bl proc__12TApplicationFv 14 | mr r3, r31 15 | bl finalize__12TApplicationFv 16 | lwz r0, 0x14(sp) 17 | lwz r31, 0xc(sp) 18 | addi sp, sp, 0x10 19 | mtlr r0 20 | blr 21 | 22 | 23 | .globl __sinit_main_cpp 24 | __sinit_main_cpp: # 0x80005644 25 | mflr r0 26 | lis r3, 0x803f 27 | stw r0, 0x4(sp) 28 | subi r3, r3, 0x6900 29 | stwu sp, -0x8(sp) 30 | bl __ct__12TApplicationFv 31 | lwz r0, 0xc(sp) 32 | addi sp, sp, 0x8 33 | mtlr r0 34 | blr 35 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/global_destructor_chain.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __destroy_global_chain 3 | __destroy_global_chain: # 0x80337dc0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | b branch_0x80337dec 8 | 9 | branch_0x80337dd0: 10 | lwz r0, 0x0(r3) 11 | li r4, -0x1 12 | stw r0, R13Off_m0x5aa8(r13) 13 | lwz r12, 0x4(r3) 14 | lwz r3, 0x8(r3) 15 | mtlr r12 16 | blrl 17 | branch_0x80337dec: 18 | lwz r3, R13Off_m0x5aa8(r13) 19 | cmplwi r3, 0x0 20 | bne+ branch_0x80337dd0 21 | lwz r0, 0xc(sp) 22 | addi sp, sp, 0x8 23 | mtlr r0 24 | blr 25 | 26 | 27 | .globl __register_global_object 28 | __register_global_object: # 0x80337e08 29 | lwz r0, R13Off_m0x5aa8(r13) 30 | stw r0, 0x0(r5) 31 | stw r4, 0x4(r5) 32 | stw r3, 0x8(r5) 33 | stw r5, R13Off_m0x5aa8(r13) 34 | blr 35 | 36 | -------------------------------------------------------------------------------- /source/JSystem/JDRPlacement.s: -------------------------------------------------------------------------------- 1 | 2 | .globl load__Q26JDrama10TPlacementFR20JSUMemoryInputStream 3 | load__Q26JDrama10TPlacementFR20JSUMemoryInputStream: # 0x802fb7a0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x28(sp) 7 | stw r31, 0x24(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x20(sp) 10 | addi r30, r3, 0x0 11 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 12 | addi r3, r31, 0x0 13 | addi r4, r30, 0x10 14 | li r5, 0x4 15 | bl read__14JSUInputStreamFPvl 16 | addi r3, r31, 0x0 17 | addi r4, r30, 0x14 18 | li r5, 0x4 19 | bl read__14JSUInputStreamFPvl 20 | addi r3, r31, 0x0 21 | addi r4, r30, 0x18 22 | li r5, 0x4 23 | bl read__14JSUInputStreamFPvl 24 | lwz r0, 0x2c(sp) 25 | lwz r31, 0x24(sp) 26 | lwz r30, 0x20(sp) 27 | mtlr r0 28 | addi sp, sp, 0x28 29 | blr 30 | 31 | -------------------------------------------------------------------------------- /source/gx/GXDisplayList.s: -------------------------------------------------------------------------------- 1 | 2 | .globl GXCallDisplayList 3 | GXCallDisplayList: # 0x80362a50 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | addi r30, r3, 0x0 11 | lwz r5, R13Off_m0x72f8(r13) 12 | lwz r0, 0x4f4(r5) 13 | cmplwi r0, 0x0 14 | beq- branch_0x80362a80 15 | bl __GXSetDirtyState 16 | branch_0x80362a80: 17 | lwz r3, R13Off_m0x72f8(r13) 18 | lwz r0, 0x0(r3) 19 | cmplwi r0, 0x0 20 | bne- branch_0x80362a94 21 | bl __GXSendFlushPrim 22 | branch_0x80362a94: 23 | li r0, 0x40 24 | lis r3, 0xcc01 25 | stb r0, -0x8000(r3) 26 | stw r30, -0x8000(r3) 27 | stw r31, -0x8000(r3) 28 | lwz r0, 0x1c(sp) 29 | lwz r31, 0x14(sp) 30 | lwz r30, 0x10(sp) 31 | addi sp, sp, 0x18 32 | mtlr r0 33 | blr 34 | 35 | -------------------------------------------------------------------------------- /source/JSystem/JDRViewObj.s: -------------------------------------------------------------------------------- 1 | 2 | .globl testPerform__Q26JDrama8TViewObjFUlPQ26JDrama9TGraphics 3 | testPerform__Q26JDrama8TViewObjFUlPQ26JDrama9TGraphics: # 0x802fcc94 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | rlwinm. r0, r4, 0, 19, 19 7 | stwu sp, -0x8(sp) 8 | beq- branch_0x802fccb8 9 | lhz r0, 0xc(r3) 10 | rlwinm. r0, r0, 0, 19, 19 11 | beq- branch_0x802fccb8 12 | clrrwi r4, r4, 1 13 | branch_0x802fccb8: 14 | rlwinm. r0, r4, 0, 18, 18 15 | beq- branch_0x802fccd0 16 | lhz r0, 0xc(r3) 17 | rlwinm. r0, r0, 0, 18, 18 18 | beq- branch_0x802fccd0 19 | clrrwi r4, r4, 1 20 | branch_0x802fccd0: 21 | lhz r0, 0xc(r3) 22 | andc. r4, r4, r0 23 | beq- branch_0x802fccec 24 | lwz r12, 0x0(r3) 25 | lwz r12, 0x20(r12) 26 | mtlr r12 27 | blrl 28 | branch_0x802fccec: 29 | lwz r0, 0xc(sp) 30 | addi sp, sp, 0x8 31 | mtlr r0 32 | blr 33 | 34 | -------------------------------------------------------------------------------- /source/MarioUtil/RumbleType.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getIndex__10RumbleTypeFPc 3 | getIndex__10RumbleTypeFPc: # 0x802356b4 4 | mflr r0 5 | lis r4, _info@ha 6 | stw r0, 0x4(sp) 7 | stwu sp, -0x28(sp) 8 | stmw r27, 0x14(sp) 9 | addi r27, r3, 0x0 10 | addi r30, r4, _info@l 11 | li r28, 0x0 12 | li r31, 0x0 13 | b branch_0x80235704 14 | 15 | branch_0x802356dc: 16 | add r29, r30, r31 17 | lwz r4, 0x4(r29) 18 | mr r3, r27 19 | bl strcmp 20 | cmpwi r3, 0x0 21 | bne- branch_0x802356fc 22 | lwz r3, 0x0(r29) 23 | b branch_0x80235714 24 | 25 | branch_0x802356fc: 26 | addi r28, r28, 0x1 27 | addi r31, r31, 0x8 28 | branch_0x80235704: 29 | lwz r0, R13Off_m0x75e4(r13) 30 | cmpw r28, r0 31 | blt+ branch_0x802356dc 32 | li r3, -0x1 33 | branch_0x80235714: 34 | lmw r27, 0x14(sp) 35 | lwz r0, 0x2c(sp) 36 | addi sp, sp, 0x28 37 | mtlr r0 38 | blr 39 | 40 | -------------------------------------------------------------------------------- /source/JSystem/JPADataBlock.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__12JPADataBlockFPCUcP7JKRHeap 3 | __ct__12JPADataBlockFPCUcP7JKRHeap: # 0x80335338 4 | mflr r0 5 | lis r6, __vvt__12JPADataBlock@h 6 | stw r0, 0x4(sp) 7 | addi r0, r6, __vvt__12JPADataBlock@l 8 | stwu sp, -0x28(sp) 9 | stw r31, 0x24(sp) 10 | stw r30, 0x20(sp) 11 | addi r30, r4, 0x0 12 | stw r29, 0x1c(sp) 13 | addi r29, r3, 0x0 14 | stw r0, 0x0(r3) 15 | lwz r31, 0x4(r4) 16 | li r4, 0x20 17 | addi r3, r31, 0x0 18 | bl alloc__7JKRHeapFUliP7JKRHeap 19 | stw r3, 0x4(r29) 20 | addi r4, r30, 0x0 21 | addi r5, r31, 0x0 22 | lwz r3, 0x4(r29) 23 | bl memcpy 24 | addi r0, r31, 0x1f 25 | lwz r3, 0x4(r29) 26 | clrrwi r4, r0, 5 27 | bl DCStoreRange 28 | lwz r0, 0x2c(sp) 29 | mr r3, r29 30 | lwz r31, 0x24(sp) 31 | lwz r30, 0x20(sp) 32 | mtlr r0 33 | lwz r29, 0x1c(sp) 34 | addi sp, sp, 0x28 35 | blr 36 | 37 | -------------------------------------------------------------------------------- /source/NPC/NpcBalloon.s: -------------------------------------------------------------------------------- 1 | 2 | .globl updateBalloon__11TNpcBalloonFv 3 | updateBalloon__11TNpcBalloonFv: # 0x8021696c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x28(sp) 7 | stw r31, 0x24(sp) 8 | mr r31, r3 9 | lwz r4, 0x4(r3) 10 | li r3, 0x0 11 | cmpwi r4, 0x0 12 | ble- branch_0x802169c4 13 | addi r0, r4, -0x1 14 | stw r0, 0x4(r31) 15 | lwz r0, 0x4(r31) 16 | cmpwi r0, 0x0 17 | bne- branch_0x802169c4 18 | lwz r3, R13Off_m0x6048(r13) 19 | li r5, 0x1 20 | lwz r4, 0x0(r31) 21 | lwz r3, 0x74(r3) 22 | bl startAppearBalloon__11TGCConsole2FUlb 23 | li r0, -0x1 24 | stw r0, 0x4(r31) 25 | li r3, 0x1 26 | branch_0x802169c4: 27 | lwz r0, 0x2c(sp) 28 | lwz r31, 0x24(sp) 29 | addi sp, sp, 0x28 30 | mtlr r0 31 | blr 32 | 33 | 34 | .globl setNextMessage__11TNpcBalloonFUll 35 | setNextMessage__11TNpcBalloonFUll: # 0x802169d8 36 | stw r4, 0x0(r3) 37 | stw r5, 0x4(r3) 38 | blr 39 | 40 | -------------------------------------------------------------------------------- /source/os/OSSync.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SystemCallVector 3 | SystemCallVector: # 0x803481ac 4 | mfspr r9, 1008 5 | ori r10, r9, 0x8 6 | mtspr 1008, r10 7 | isync 8 | sync 9 | mtspr 1008, r9 10 | rfi 11 | 12 | branch_0x803481c8: 13 | ori r0, r0, 0x0 14 | 15 | .globl __OSInitSystemCall 16 | __OSInitSystemCall: # 0x803481cc 17 | mflr r0 18 | stw r0, 0x4(sp) 19 | stwu sp, -0x10(sp) 20 | stw r31, 0xc(sp) 21 | lis r5, unk_80000c00@h 22 | lis r4, SystemCallVector@ha 23 | lis r3, branch_0x803481c8@ha 24 | addi r31, r5, unk_80000c00@l 25 | addi r0, r3, branch_0x803481c8@l 26 | addi r4, r4, SystemCallVector@l 27 | mr r3, r31 28 | subf r5, r4, r0 29 | bl memcpy 30 | mr r3, r31 31 | li r4, 0x100 32 | bl DCFlushRangeNoSync 33 | sync 34 | mr r3, r31 35 | li r4, 0x100 36 | bl ICInvalidateRange 37 | lwz r0, 0x14(sp) 38 | lwz r31, 0xc(sp) 39 | addi sp, sp, 0x10 40 | mtlr r0 41 | blr 42 | 43 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/wchar_io.s: -------------------------------------------------------------------------------- 1 | 2 | .globl fwide 3 | fwide: # 0x8033bc08 4 | lhz r0, 0x4(r3) 5 | extrwi. r0, r0, 3, 23 6 | bne- branch_0x8033bc1c 7 | li r3, 0x0 8 | blr 9 | 10 | branch_0x8033bc1c: 11 | lbz r5, 0x5(r3) 12 | extrwi r0, r5, 2, 26 13 | cmpwi r0, 0x1 14 | beq- branch_0x8033bc80 15 | bge- branch_0x8033bc3c 16 | cmpwi r0, 0x0 17 | bge- branch_0x8033bc48 18 | blr 19 | 20 | branch_0x8033bc3c: 21 | cmpwi r0, 0x3 22 | bgelr- 23 | 24 | b branch_0x8033bc78 25 | 26 | branch_0x8033bc48: 27 | cmpwi r4, 0x0 28 | ble- branch_0x8033bc60 29 | li r0, 0x2 30 | insrwi r5, r0, 2, 26 31 | stb r5, 0x5(r3) 32 | b branch_0x8033bc70 33 | 34 | branch_0x8033bc60: 35 | bge- branch_0x8033bc70 36 | li r0, 0x1 37 | insrwi r5, r0, 2, 26 38 | stb r5, 0x5(r3) 39 | branch_0x8033bc70: 40 | mr r3, r4 41 | blr 42 | 43 | branch_0x8033bc78: 44 | li r3, 0x1 45 | blr 46 | 47 | branch_0x8033bc80: 48 | li r3, -0x1 49 | blr 50 | 51 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/ExceptionPPC.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __unregister_fragment 3 | __unregister_fragment: # 0x8033822c 4 | cmpwi r3, 0x0 5 | blt- branch_0x8033825c 6 | cmpwi r3, 0x1 7 | bge- branch_0x8033825c 8 | mulli r4, r3, 0xc 9 | lis r3, fragmentinfo@h 10 | addi r0, r3, fragmentinfo@l 11 | add r3, r0, r4 12 | li r0, 0x0 13 | stw r0, 0x0(r3) 14 | stw r0, 0x4(r3) 15 | stw r0, 0x8(r3) 16 | branch_0x8033825c: 17 | blr 18 | 19 | 20 | .globl __register_fragment 21 | __register_fragment: # 0x80338260 22 | lis r5, fragmentinfo@h 23 | addi r5, r5, fragmentinfo@l 24 | b branch_0x8033826c 25 | 26 | branch_0x8033826c: 27 | b branch_0x80338270 28 | 29 | branch_0x80338270: 30 | lwz r0, 0x8(r5) 31 | cmpwi r0, 0x0 32 | bne- branch_0x80338294 33 | stw r3, 0x0(r5) 34 | li r0, 0x1 35 | li r3, 0x0 36 | stw r4, 0x4(r5) 37 | stw r0, 0x8(r5) 38 | b branch_0x80338298 39 | 40 | branch_0x80338294: 41 | li r3, -0x1 42 | branch_0x80338298: 43 | blr 44 | 45 | -------------------------------------------------------------------------------- /source/System/MarDirectorCreateObjects.s: -------------------------------------------------------------------------------- 1 | 2 | .globl createObjects__12TMarDirectorFv 3 | createObjects__12TMarDirectorFv: # 0x802b767c 4 | mflr r0 5 | li r3, 0x8 6 | stw r0, 0x4(sp) 7 | stwu sp, -0x18(sp) 8 | stw r31, 0x14(sp) 9 | bl __nw__FUl 10 | cmplwi r3, 0x0 11 | beq- branch_0x802b76b4 12 | lis r4, __vvt__Q26JDrama11TNameRefGen@h 13 | addi r0, r4, __vvt__Q26JDrama11TNameRefGen@l 14 | lis r4, __vvt__14TMarNameRefGen@ha 15 | stw r0, 0x0(r3) 16 | addi r0, r4, __vvt__14TMarNameRefGen@l 17 | stw r0, 0x0(r3) 18 | branch_0x802b76b4: 19 | stw r3, R13Off_m0x5db8(r13) 20 | li r3, 0x58 21 | bl __nw__FUl 22 | mr. r31, r3 23 | beq- branch_0x802b76d8 24 | lis r3, unk_803a8dc0@ha 25 | addi r4, r3, unk_803a8dc0@l 26 | addi r3, r31, 0x0 27 | bl __ct__22TLightWithDBSetManagerFPCc 28 | branch_0x802b76d8: 29 | stw r31, R13Off_m0x610c(r13) 30 | li r3, 0x0 31 | lwz r0, 0x1c(sp) 32 | lwz r31, 0x14(sp) 33 | addi sp, sp, 0x18 34 | mtlr r0 35 | blr 36 | 37 | -------------------------------------------------------------------------------- /source/extab.s: -------------------------------------------------------------------------------- 1 | 2 | .section .ram80005540, "ax" 3 | 4 | 5 | .globl unk_80005540 6 | unk_80005540: # 0x80005540 /Runtime_PPCEABI_H/NMWException.s 7 | .long 0x30080000 # 0x80005540 8 | .long 0x0 # 0x80005544 9 | 10 | .globl unk_80005548 11 | unk_80005548: # 0x80005548 /Runtime_PPCEABI_H/NMWException.s 12 | .long 0x20080000 # 0x80005548 13 | .long 0x0 # 0x8000554c 14 | 15 | .globl unk_80005550 16 | unk_80005550: # 0x80005550 /Runtime_PPCEABI_H/NMWException.s 17 | .long 0x20080000 # 0x80005550 18 | .long 0x64 # 0x80005554 19 | .long 0x10 # 0x80005558 20 | .long 0x0 # 0x8000555c 21 | .long 0x8200001c # 0x80005560 22 | .long __dt__26__partial_array_destructorFv # 0x80005564 23 | 24 | .globl unk_80005568 25 | unk_80005568: # 0x80005568 /Runtime_PPCEABI_H/NMWException.s 26 | .long 0x18080000 # 0x80005568 27 | .long 0x0 # 0x8000556c 28 | 29 | .globl unk_80005570 30 | unk_80005570: # 0x80005570 /Runtime_PPCEABI_H/NMWException.s 31 | .long 0x28080000 # 0x80005570 32 | .long 0x74 # 0x80005574 33 | .long 0x10 # 0x80005578 34 | .long 0x0 # 0x8000557c 35 | .long 0x8200001c # 0x80005580 36 | .long __dt__26__partial_array_destructorFv # 0x80005584 37 | 38 | 39 | 40 | .align 5, 0 41 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/__init_cpp_exceptions.s: -------------------------------------------------------------------------------- 1 | 2 | .globl GetR2__Fv 3 | GetR2__Fv: # 0x803388fc 4 | mr r3, r2 5 | blr 6 | 7 | 8 | .globl __fini_cpp_exceptions 9 | __fini_cpp_exceptions: # 0x80338904 10 | mflr r0 11 | stw r0, 0x4(sp) 12 | stwu sp, -0x8(sp) 13 | lwz r3, R13Off_m0x73a0(r13) 14 | cmpwi r3, -0x2 15 | beq- branch_0x80338928 16 | bl __unregister_fragment 17 | li r0, -0x2 18 | stw r0, R13Off_m0x73a0(r13) 19 | branch_0x80338928: 20 | lwz r0, 0xc(sp) 21 | addi sp, sp, 0x8 22 | mtlr r0 23 | blr 24 | 25 | 26 | .globl __init_cpp_exceptions 27 | __init_cpp_exceptions: # 0x80338938 28 | mflr r0 29 | stw r0, 0x4(sp) 30 | stwu sp, -0x8(sp) 31 | lwz r0, R13Off_m0x73a0(r13) 32 | cmpwi r0, -0x2 33 | bne- branch_0x80338968 34 | bl GetR2__Fv 35 | lis r5, unk_800055dc@h 36 | mr r4, r3 37 | addi r3, r5, unk_800055dc@l 38 | bl __register_fragment 39 | stw r3, R13Off_m0x73a0(r13) 40 | branch_0x80338968: 41 | lwz r0, 0xc(sp) 42 | addi sp, sp, 0x8 43 | mtlr r0 44 | blr 45 | 46 | -------------------------------------------------------------------------------- /source/JSystem/singlelinklist.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q27JGadget19TSingleNodeLinkListFv 3 | __dt__Q27JGadget19TSingleNodeLinkListFv: # 0x802f6d5c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | mr. r31, r3 9 | beq- branch_0x802f6d84 10 | extsh. r0, r4 11 | ble- branch_0x802f6d84 12 | mr r3, r31 13 | bl __dl__FPv 14 | branch_0x802f6d84: 15 | lwz r0, 0x1c(sp) 16 | mr r3, r31 17 | lwz r31, 0x14(sp) 18 | addi sp, sp, 0x18 19 | mtlr r0 20 | blr 21 | 22 | 23 | .globl Insert__Q27JGadget19TSingleNodeLinkListFQ37JGadget19TSingleNodeLinkList8iteratorPQ27JGadget19TSingleLinkListNode 24 | Insert__Q27JGadget19TSingleNodeLinkListFQ37JGadget19TSingleNodeLinkList8iteratorPQ27JGadget19TSingleLinkListNode: # 0x802f6d9c 25 | lwz r7, 0x0(r5) 26 | lwz r0, 0x0(r7) 27 | stw r0, 0x0(r6) 28 | cmplwi r0, 0x0 29 | stw r6, 0x0(r7) 30 | bne- branch_0x802f6db8 31 | stw r6, 0x8(r4) 32 | branch_0x802f6db8: 33 | lwz r6, 0x0(r4) 34 | addi r0, r6, 0x1 35 | stw r0, 0x0(r4) 36 | lwz r0, 0x0(r5) 37 | stw r0, 0x0(r3) 38 | blr 39 | 40 | -------------------------------------------------------------------------------- /source/Map/StickyStainManager.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__19TStickyStainManagerFv 3 | __dt__19TStickyStainManagerFv: # 0x801aeac8 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x801aeb20 12 | lis r3, __vvt__19TStickyStainManager@h 13 | addi r0, r3, __vvt__19TStickyStainManager@l 14 | stw r0, 0x0(r30) 15 | beq- branch_0x801aeb10 16 | lis r3, __vvt__Q26JDrama8TViewObj@ha 17 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 18 | stw r0, 0x0(r30) 19 | addi r3, r30, 0x0 20 | li r4, 0x0 21 | bl __dt__Q26JDrama8TNameRefFv 22 | branch_0x801aeb10: 23 | extsh. r0, r31 24 | ble- branch_0x801aeb20 25 | mr r3, r30 26 | bl __dl__FPv 27 | branch_0x801aeb20: 28 | lwz r0, 0x1c(sp) 29 | mr r3, r30 30 | lwz r31, 0x14(sp) 31 | lwz r30, 0x10(sp) 32 | mtlr r0 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl perform__19TStickyStainManagerFUlPQ26JDrama9TGraphics 38 | perform__19TStickyStainManagerFUlPQ26JDrama9TGraphics: # 0x801aeb3c 39 | blr 40 | 41 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/scanf.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __StringRead 3 | __StringRead: # 0x8033b1c8 4 | cmpwi r5, 0x1 5 | beq- branch_0x8033b21c 6 | bge- branch_0x8033b1e0 7 | cmpwi r5, 0x0 8 | bge- branch_0x8033b1ec 9 | b branch_0x8033b250 10 | 11 | branch_0x8033b1e0: 12 | cmpwi r5, 0x3 13 | bge- branch_0x8033b250 14 | b branch_0x8033b248 15 | 16 | branch_0x8033b1ec: 17 | lwz r4, 0x0(r3) 18 | lbz r5, 0x0(r4) 19 | extsb. r0, r5 20 | bne- branch_0x8033b20c 21 | li r0, 0x1 22 | stw r0, 0x4(r3) 23 | li r3, -0x1 24 | blr 25 | 26 | branch_0x8033b20c: 27 | addi r0, r4, 0x1 28 | stw r0, 0x0(r3) 29 | extsb r3, r5 30 | blr 31 | 32 | branch_0x8033b21c: 33 | lwz r0, 0x4(r3) 34 | cmpwi r0, 0x0 35 | bne- branch_0x8033b238 36 | lwz r5, 0x0(r3) 37 | addi r0, r5, -0x1 38 | stw r0, 0x0(r3) 39 | b branch_0x8033b240 40 | 41 | branch_0x8033b238: 42 | li r0, 0x0 43 | stw r0, 0x4(r3) 44 | branch_0x8033b240: 45 | mr r3, r4 46 | blr 47 | 48 | branch_0x8033b248: 49 | lwz r3, 0x4(r3) 50 | blr 51 | 52 | branch_0x8033b250: 53 | li r3, 0x0 54 | blr 55 | 56 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/dispatch.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKInitializeDispatcher 3 | TRKInitializeDispatcher: # 0x8033e174 4 | lis r3, unk_80400000@h 5 | li r0, 0x20 6 | stw r0, 0x1fd8(r3) 7 | li r3, 0x0 8 | blr 9 | 10 | 11 | .globl TRKDispatchMessage 12 | TRKDispatchMessage: # 0x8033e188 13 | mflr r0 14 | li r4, 0x0 15 | stw r0, 0x4(sp) 16 | stwu sp, -0x18(sp) 17 | stw r31, 0x14(sp) 18 | li r31, 0x500 19 | stw r30, 0x10(sp) 20 | addi r30, r3, unk_80400000@l 21 | bl TRKSetBufferPosition 22 | addi r3, r30, 0x0 23 | addi r4, sp, 0x8 24 | bl TRKReadBuffer1_ui8 25 | lis r3, 0x8040 26 | lbz r4, 0x8(sp) 27 | lwz r0, 0x1fd8(r3) 28 | cmplw r4, r0 29 | bge- branch_0x8033e1f0 30 | lis r3, gTRKDispatchTable@h 31 | slwi r4, r4, 2 32 | addi r0, r3, gTRKDispatchTable@l 33 | add r3, r0, r4 34 | lwz r12, 0x0(r3) 35 | addi r3, r30, 0x0 36 | mtlr r12 37 | blrl 38 | mr r31, r3 39 | branch_0x8033e1f0: 40 | mr r3, r31 41 | lwz r31, 0x14(sp) 42 | lwz r30, 0x10(sp) 43 | addi sp, sp, 0x18 44 | lwz r0, 0x4(sp) 45 | mtlr r0 46 | blr 47 | 48 | -------------------------------------------------------------------------------- /source/extabindex.s: -------------------------------------------------------------------------------- 1 | 2 | .section .ram800055a0, "ax" 3 | 4 | 5 | .globl unk_800055a0 6 | unk_800055a0: # 0x800055a0 /Runtime_PPCEABI_H/NMWException.s 7 | .long __destroy_new_array # 0x800055a0 8 | .long 0x7c # 0x800055a4 9 | .long unk_80005540 # 0x800055a8 10 | 11 | .globl unk_800055ac 12 | unk_800055ac: # 0x800055ac /Runtime_PPCEABI_H/NMWException.s 13 | .long __destroy_arr # 0x800055ac 14 | .long 0x78 # 0x800055b0 15 | .long unk_80005548 # 0x800055b4 16 | 17 | .globl unk_800055b8 18 | unk_800055b8: # 0x800055b8 /Runtime_PPCEABI_H/NMWException.s 19 | .long __construct_array # 0x800055b8 20 | .long 0x100 # 0x800055bc 21 | .long unk_80005550 # 0x800055c0 22 | 23 | .globl unk_800055c4 24 | unk_800055c4: # 0x800055c4 /Runtime_PPCEABI_H/NMWException.s 25 | .long __dt__26__partial_array_destructorFv # 0x800055c4 26 | .long 0xb8 # 0x800055c8 27 | .long unk_80005568 # 0x800055cc 28 | 29 | .globl unk_800055d0 30 | unk_800055d0: # 0x800055d0 /Runtime_PPCEABI_H/NMWException.s 31 | .long __construct_new_array # 0x800055d0 32 | .long 0x108 # 0x800055d4 33 | .long unk_80005570 # 0x800055d8 34 | 35 | .globl unk_800055dc 36 | unk_800055dc: # 0x800055dc 37 | .long unk_800055a0 # 0x800055dc 38 | .long unk_800055dc # 0x800055e0 39 | .long __destroy_new_array # 0x800055e4 40 | .long 0x3b4 # 0x800055e8 41 | 42 | 43 | 44 | .align 5, 0 45 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/s_frexp.s: -------------------------------------------------------------------------------- 1 | 2 | .globl frexp 3 | frexp: # 0x8033c168 4 | stwu sp, -0x18(sp) 5 | lis r0, unk_7ff00000@h 6 | addi r4, r0, unk_7ff00000@l 7 | stfd f1, 0x8(sp) 8 | lwz r5, 0x8(sp) 9 | lwz r8, 0xc(sp) 10 | clrlwi r6, r5, 1 11 | cmpw r6, r0 12 | stw r4, 0x0(r3) 13 | addi r7, r5, 0x0 14 | addi r4, r6, 0x0 15 | bge- branch_0x8033c1a0 16 | or. r0, r4, r8 17 | bne- branch_0x8033c1a8 18 | branch_0x8033c1a0: 19 | lfd f1, 0x8(sp) 20 | b branch_0x8033c1fc 21 | 22 | branch_0x8033c1a8: 23 | lis r0, unk_000fffca@ha 24 | cmpw r4, r0 25 | bge- branch_0x8033c1d8 26 | lfd f1, 0x8(sp) 27 | addi r0, r0, unk_000fffca@l 28 | lfd f0, 0xa60(r2) 29 | fmul f0, f1, f0 30 | stfd f0, 0x8(sp) 31 | lwz r4, 0x8(sp) 32 | stw r0, 0x0(r3) 33 | addi r7, r4, 0x0 34 | clrlwi r4, r4, 1 35 | branch_0x8033c1d8: 36 | lwz r5, 0x0(r3) 37 | srawi r4, r4, 20 38 | rlwinm r0, r7, 0, 12, 0 39 | add r4, r4, r5 40 | addi r4, r4, -0x3fe 41 | stw r4, 0x0(r3) 42 | oris r0, r0, 0x3fe0 43 | stw r0, 0x8(sp) 44 | lfd f1, 0x8(sp) 45 | branch_0x8033c1fc: 46 | addi sp, sp, 0x18 47 | blr 48 | 49 | -------------------------------------------------------------------------------- /source/os/__ppc_eabi_init.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __init_user 3 | __init_user: # 0x803498fc 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | bl __init_cpp 8 | lwz r0, 0xc(sp) 9 | addi sp, sp, 0x8 10 | mtlr r0 11 | blr 12 | 13 | 14 | .globl __init_cpp 15 | __init_cpp: # 0x8034991c 16 | mflr r0 17 | stw r0, 0x4(sp) 18 | stwu sp, -0x10(sp) 19 | stw r31, 0xc(sp) 20 | lis r3, __init_cpp_exceptions_reference@h 21 | addi r0, r3, __init_cpp_exceptions_reference@l 22 | mr r31, r0 23 | b branch_0x8034993c 24 | 25 | branch_0x8034993c: 26 | b branch_0x80349940 27 | 28 | branch_0x80349940: 29 | b branch_0x80349950 30 | 31 | branch_0x80349944: 32 | mtlr r12 33 | blrl 34 | addi r31, r31, 0x4 35 | branch_0x80349950: 36 | lwz r12, 0x0(r31) 37 | cmplwi r12, 0x0 38 | bne+ branch_0x80349944 39 | lwz r0, 0x14(sp) 40 | lwz r31, 0xc(sp) 41 | addi sp, sp, 0x10 42 | mtlr r0 43 | blr 44 | 45 | 46 | .globl _ExitProcess 47 | _ExitProcess: # 0x80349970 48 | mflr r0 49 | stw r0, 0x4(sp) 50 | stwu sp, -0x8(sp) 51 | bl PPCHalt 52 | lwz r0, 0xc(sp) 53 | addi sp, sp, 0x8 54 | mtlr r0 55 | blr 56 | 57 | -------------------------------------------------------------------------------- /source/System/StageEventInfo.s: -------------------------------------------------------------------------------- 1 | 2 | .globl load__15TStageEventInfoFR20JSUMemoryInputStream 3 | load__15TStageEventInfoFR20JSUMemoryInputStream: # 0x802a8a00 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x28(sp) 7 | stw r31, 0x24(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x20(sp) 10 | addi r30, r3, 0x0 11 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 12 | addi r3, r31, 0x0 13 | addi r4, sp, 0x18 14 | li r5, 0x4 15 | bl read__14JSUInputStreamFPvl 16 | lwz r0, 0x18(sp) 17 | mr r3, r31 18 | stw r0, 0xc(r30) 19 | bl readString__14JSUInputStreamFv 20 | stw r3, 0x10(r30) 21 | mr r3, r31 22 | bl readString__14JSUInputStreamFv 23 | stw r3, 0x14(r30) 24 | mr r3, r31 25 | bl readString__14JSUInputStreamFv 26 | stw r3, 0x18(r30) 27 | mr r3, r31 28 | bl readString__14JSUInputStreamFv 29 | stw r3, 0x1c(r30) 30 | mr r3, r31 31 | bl readString__14JSUInputStreamFv 32 | stw r3, 0x20(r30) 33 | mr r3, r31 34 | bl readString__14JSUInputStreamFv 35 | stw r3, 0x24(r30) 36 | lwz r0, 0x2c(sp) 37 | lwz r31, 0x24(sp) 38 | lwz r30, 0x20(sp) 39 | mtlr r0 40 | addi sp, sp, 0x28 41 | blr 42 | 43 | -------------------------------------------------------------------------------- /source/JSystem/JASInstRand.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getY__Q28JASystem9TInstRandCFii 3 | getY__Q28JASystem9TInstRandCFii: # 0x80310070 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x38(sp) 7 | stw r31, 0x34(sp) 8 | addi r31, r3, 0x0 9 | lbz r0, R13Off_m0x5c90(r13) 10 | extsb. r0, r0 11 | bne- branch_0x803100a4 12 | addi r3, r13, R13Off_m0x5c8c 13 | li r4, 0x0 14 | bl __ct__Q25JMath13TRandom_fast_FUl 15 | li r0, 0x1 16 | stb r0, R13Off_m0x5c90(r13) 17 | branch_0x803100a4: 18 | lis r3, unk_0019660d@h 19 | lwz r4, R13Off_m0x5c8c(r13) 20 | addi r0, r3, unk_0019660d@l 21 | lfs f0, 0x664(r2) 22 | mullw r3, r4, r0 23 | lfs f4, 0x660(r2) 24 | lfs f1, 0x668(r2) 25 | addis r3, r3, 0x3c6f 26 | addi r0, r3, -0xca1 27 | stw r0, R13Off_m0x5c8c(r13) 28 | lwz r0, R13Off_m0x5c8c(r13) 29 | srwi r0, r0, 9 30 | oris r0, r0, 0x3f80 31 | stw r0, 0x2c(sp) 32 | lfs f3, 0x2c(sp) 33 | lwz r0, 0x3c(sp) 34 | fsubs f3, f3, f0 35 | lfs f2, 0xc(r31) 36 | lfs f0, 0x8(r31) 37 | mtlr r0 38 | lwz r31, 0x34(sp) 39 | fmuls f3, f4, f3 40 | addi sp, sp, 0x38 41 | fsubs f1, f3, f1 42 | fmuls f1, f1, f2 43 | fadds f1, f1, f0 44 | blr 45 | 46 | -------------------------------------------------------------------------------- /source/JSystem/J3DMaterialAttach.s: -------------------------------------------------------------------------------- 1 | 2 | .globl clear__16J3DMaterialTableFv 3 | clear__16J3DMaterialTableFv: # 0x80321c08 4 | li r0, 0x0 5 | sth r0, 0x4(r3) 6 | stw r0, 0x8(r3) 7 | stw r0, 0xc(r3) 8 | stw r0, 0x10(r3) 9 | stw r0, 0x14(r3) 10 | blr 11 | 12 | 13 | .globl __ct__16J3DMaterialTableFv 14 | __ct__16J3DMaterialTableFv: # 0x80321c24 15 | lis r4, __vvt__16J3DMaterialTable@h 16 | addi r0, r4, __vvt__16J3DMaterialTable@l 17 | stw r0, 0x0(r3) 18 | li r0, 0x0 19 | sth r0, 0x4(r3) 20 | stw r0, 0x8(r3) 21 | stw r0, 0xc(r3) 22 | stw r0, 0x10(r3) 23 | stw r0, 0x14(r3) 24 | blr 25 | 26 | 27 | .globl __dt__16J3DMaterialTableFv 28 | __dt__16J3DMaterialTableFv: # 0x80321c4c 29 | mflr r0 30 | stw r0, 0x4(sp) 31 | stwu sp, -0x18(sp) 32 | stw r31, 0x14(sp) 33 | mr. r31, r3 34 | beq- branch_0x80321c80 35 | lis r3, __vvt__16J3DMaterialTable@h 36 | addi r3, r3, __vvt__16J3DMaterialTable@l 37 | extsh. r0, r4 38 | stw r3, 0x0(r31) 39 | ble- branch_0x80321c80 40 | mr r3, r31 41 | bl __dl__FPv 42 | branch_0x80321c80: 43 | lwz r0, 0x1c(sp) 44 | mr r3, r31 45 | lwz r31, 0x14(sp) 46 | addi sp, sp, 0x18 47 | mtlr r0 48 | blr 49 | 50 | -------------------------------------------------------------------------------- /source/os/__ppc_eabi_init_2.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __init_hardware 3 | __init_hardware: # 0x80005440 4 | mfmsr r0 5 | ori r0, r0, 0x2000 6 | mtmsr r0 7 | mflr r31 8 | bl __OSPSInit 9 | bl __OSCacheInit 10 | mtlr r31 11 | blr 12 | 13 | 14 | .globl __flush_cache 15 | __flush_cache: # 0x80005460 16 | lis r5, unk_fffffff1@h 17 | ori r5, r5, unk_fffffff1@l 18 | and r5, r5, r3 19 | subf r3, r5, r3 20 | add r4, r4, r3 21 | branch_0x80005474: 22 | dcbst r0, r5 23 | sync 24 | icbi r0, r5 25 | addic r5, r5, 0x8 26 | subic. r4, r4, 0x8 27 | bge+ branch_0x80005474 28 | isync 29 | blr 30 | 31 | 32 | 33 | # _rom_copy_info unk_80005494 0x80005494 34 | .long 0x80003100, 0x80003100, 0x00002430 35 | .long 0x80005540, 0x80005540, 0x00000048 36 | .long 0x800055a0, 0x800055a0, 0x0000005c 37 | .long 0x80005600, 0x80005600, 0x0036dab4 38 | .long 0x803730c0, 0x803730c0, 0x000003c0 39 | .long 0x80373480, 0x80373480, 0x00000010 40 | .long 0x803734a0, 0x803734a0, 0x000381b8 41 | .long 0x803ab660, 0x803ab660, 0x0003e08b 42 | .long 0x8040c1c0, 0x8040c1c0, 0x00000d38 43 | .long 0x8040eba0, 0x8040eba0, 0x00008c44 44 | .long 0, 0, 0 45 | #.zero 0x80005518 - 0x80005494 46 | 47 | # _bss_init_info unk_80005518 0x80005518 48 | .long 0x803e9700, 0x00022ac0 49 | .long 0x8040cf00, 0x00001c98 50 | .long 0, 0, 0, 0, 0, 0 51 | #.zero 0x80005540 - 0x80005518 52 | 53 | -------------------------------------------------------------------------------- /source/JSystem/JSGAmbientLight.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q26JStage13TAmbientLightFv 3 | __dt__Q26JStage13TAmbientLightFv: # 0x80336ef4 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x80336f3c 12 | lis r3, __vvt__Q26JStage13TAmbientLight@h 13 | addi r0, r3, __vvt__Q26JStage13TAmbientLight@l 14 | stw r0, 0x0(r30) 15 | addi r3, r30, 0x0 16 | li r4, 0x0 17 | bl __dt__Q26JStage7TObjectFv 18 | extsh. r0, r31 19 | ble- branch_0x80336f3c 20 | mr r3, r30 21 | bl __dl__FPv 22 | branch_0x80336f3c: 23 | lwz r0, 0x1c(sp) 24 | mr r3, r30 25 | lwz r31, 0x14(sp) 26 | lwz r30, 0x10(sp) 27 | mtlr r0 28 | addi sp, sp, 0x18 29 | blr 30 | 31 | 32 | .globl JSGFGetType__Q26JStage13TAmbientLightCFv 33 | JSGFGetType__Q26JStage13TAmbientLightCFv: # 0x80336f58 34 | li r3, 0x4 35 | blr 36 | 37 | 38 | .globl JSGGetColor__Q26JStage13TAmbientLightCFv 39 | JSGGetColor__Q26JStage13TAmbientLightCFv: # 0x80336f60 40 | stwu sp, -0x18(sp) 41 | lwz r0, R2Off_0x988(r2) 42 | stw r0, 0x10(sp) 43 | lwz r3, 0x10(sp) 44 | addi sp, sp, 0x18 45 | blr 46 | 47 | 48 | .globl JSGSetColor__Q26JStage13TAmbientLightF8_GXColor 49 | JSGSetColor__Q26JStage13TAmbientLightF8_GXColor: # 0x80336f78 50 | blr 51 | 52 | -------------------------------------------------------------------------------- /source/JSystem/J3DNode.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__7J3DNodeFv 3 | __ct__7J3DNodeFv: # 0x802dfa08 4 | lis r4, __vvt__7J3DNode@h 5 | addi r0, r4, __vvt__7J3DNode@l 6 | stw r0, 0x0(r3) 7 | li r0, 0x0 8 | stw r0, 0x4(r3) 9 | stw r0, 0x8(r3) 10 | stw r0, 0x10(r3) 11 | stw r0, 0x14(r3) 12 | blr 13 | 14 | 15 | .globl __dt__7J3DNodeFv 16 | __dt__7J3DNodeFv: # 0x802dfa2c 17 | mflr r0 18 | stw r0, 0x4(sp) 19 | stwu sp, -0x18(sp) 20 | stw r31, 0x14(sp) 21 | mr. r31, r3 22 | beq- branch_0x802dfa60 23 | lis r3, __vvt__7J3DNode@h 24 | addi r3, r3, __vvt__7J3DNode@l 25 | extsh. r0, r4 26 | stw r3, 0x0(r31) 27 | ble- branch_0x802dfa60 28 | mr r3, r31 29 | bl __dl__FPv 30 | branch_0x802dfa60: 31 | lwz r0, 0x1c(sp) 32 | mr r3, r31 33 | lwz r31, 0x14(sp) 34 | addi sp, sp, 0x18 35 | mtlr r0 36 | blr 37 | 38 | 39 | .globl appendChild__7J3DNodeFP7J3DNode 40 | appendChild__7J3DNodeFP7J3DNode: # 0x802dfa78 41 | lwz r0, 0x10(r3) 42 | cmplwi r0, 0x0 43 | bne- branch_0x802dfa8c 44 | stw r4, 0x10(r3) 45 | blr 46 | 47 | branch_0x802dfa8c: 48 | mr r3, r0 49 | b branch_0x802dfa98 50 | 51 | branch_0x802dfa94: 52 | mr r3, r0 53 | branch_0x802dfa98: 54 | lwz r0, 0x14(r3) 55 | cmplwi r0, 0x0 56 | bne+ branch_0x802dfa94 57 | stw r4, 0x14(r3) 58 | blr 59 | 60 | -------------------------------------------------------------------------------- /source/JSystem/JUTAssert.s: -------------------------------------------------------------------------------- 1 | 2 | .globl flushMessage__12JUTAssertionFv 3 | flushMessage__12JUTAssertionFv: # 0x802f1208 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | lwz r3, R13Off_m0x5de8(r13) 8 | cmplwi r3, 0x0 9 | bne- branch_0x802f1228 10 | li r0, 0x0 11 | b branch_0x802f124c 12 | 13 | branch_0x802f1228: 14 | addis r0, r3, 0x1 15 | cmplwi r0, 0xffff 16 | beq- branch_0x802f123c 17 | addi r0, r3, -0x1 18 | stw r0, R13Off_m0x5de8(r13) 19 | branch_0x802f123c: 20 | lwz r0, R13Off_m0x5de8(r13) 21 | cmplwi r0, 0x5 22 | bge- branch_0x802f124c 23 | li r0, 0x0 24 | branch_0x802f124c: 25 | cmplwi r0, 0x0 26 | beq- branch_0x802f1290 27 | lbz r0, R13Off_m0x7508(r13) 28 | cmplwi r0, 0x1 29 | bne- branch_0x802f1290 30 | lis r4, sMessageFileLine__Q212JUTAssertion9_unnamed_@ha 31 | lwz r3, R13Off_m0x5ee8(r13) 32 | addi r6, r4, sMessageFileLine__Q212JUTAssertion9_unnamed_@l 33 | li r4, 0x10 34 | li r5, 0x10 35 | bl drawString__14JUTDirectPrintFUsUsPc 36 | lis r4, sMessageString__Q212JUTAssertion9_unnamed_@ha 37 | lwz r3, R13Off_m0x5ee8(r13) 38 | addi r6, r4, sMessageString__Q212JUTAssertion9_unnamed_@l 39 | li r4, 0x10 40 | li r5, 0x18 41 | bl drawString__14JUTDirectPrintFUsUsPc 42 | branch_0x802f1290: 43 | lwz r0, 0xc(sp) 44 | addi sp, sp, 0x8 45 | mtlr r0 46 | blr 47 | 48 | -------------------------------------------------------------------------------- /source/Enemy/enemyinterp.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SpcTrace__FPCce 3 | SpcTrace__FPCce: # 0x8003db3c 4 | stwu sp, -0x70(sp) 5 | bne- cr1, branch_0x8003db64 6 | stfd f1, 0x28(sp) 7 | stfd f2, 0x30(sp) 8 | stfd f3, 0x38(sp) 9 | stfd f4, 0x40(sp) 10 | stfd f5, 0x48(sp) 11 | stfd f6, 0x50(sp) 12 | stfd f7, 0x58(sp) 13 | stfd f8, 0x60(sp) 14 | branch_0x8003db64: 15 | stw r3, 0x8(sp) 16 | stw r4, 0xc(sp) 17 | stw r5, 0x10(sp) 18 | stw r6, 0x14(sp) 19 | stw r7, 0x18(sp) 20 | stw r8, 0x1c(sp) 21 | stw r9, 0x20(sp) 22 | stw r10, 0x24(sp) 23 | addi sp, sp, 0x70 24 | blr 25 | 26 | 27 | .globl __dt__29TSpcTypedBinary_10TLiveActor_Fv 28 | __dt__29TSpcTypedBinary_10TLiveActor_Fv: # 0x8003db8c 29 | mflr r0 30 | stw r0, 0x4(sp) 31 | stwu sp, -0x18(sp) 32 | stw r31, 0x14(sp) 33 | addi r31, r4, 0x0 34 | stw r30, 0x10(sp) 35 | mr. r30, r3 36 | beq- branch_0x8003dbd4 37 | lis r3, __vvt__29TSpcTypedBinary_10TLiveActor_@ha 38 | addi r0, r3, __vvt__29TSpcTypedBinary_10TLiveActor_@l 39 | stw r0, 0x4(r30) 40 | addi r3, r30, 0x0 41 | li r4, 0x0 42 | bl __dt__10TSpcBinaryFv 43 | extsh. r0, r31 44 | ble- branch_0x8003dbd4 45 | mr r3, r30 46 | bl __dl__FPv 47 | branch_0x8003dbd4: 48 | lwz r0, 0x1c(sp) 49 | mr r3, r30 50 | lwz r31, 0x14(sp) 51 | lwz r30, 0x10(sp) 52 | mtlr r0 53 | addi sp, sp, 0x18 54 | blr 55 | 56 | -------------------------------------------------------------------------------- /source/NPC/NpcInitActionData.s: -------------------------------------------------------------------------------- 1 | 2 | .globl setKinoActionFlag___8TBaseNPCFv 3 | setKinoActionFlag___8TBaseNPCFv: # 0x8021614c 4 | lwz r0, 0x16c(r3) 5 | cmpwi r0, 0xf 6 | ble- branch_0x80216160 7 | li r0, 0x0 8 | stw r0, 0x16c(r3) 9 | branch_0x80216160: 10 | lwz r5, 0x16c(r3) 11 | lis r4, sBaseActionFlagTable_1944@ha 12 | addi r0, r4, sBaseActionFlagTable_1944@l 13 | slwi r4, r5, 2 14 | add r4, r0, r4 15 | lwz r0, 0x0(r4) 16 | stw r0, 0x170(r3) 17 | blr 18 | 19 | 20 | .globl setMareActionFlag___8TBaseNPCFv 21 | setMareActionFlag___8TBaseNPCFv: # 0x80216180 22 | lwz r0, 0x16c(r3) 23 | cmpwi r0, 0x10 24 | ble- branch_0x80216194 25 | li r0, 0x0 26 | stw r0, 0x16c(r3) 27 | branch_0x80216194: 28 | lwz r5, 0x16c(r3) 29 | lis r4, sBaseActionFlagTable_1941@ha 30 | addi r0, r4, sBaseActionFlagTable_1941@l 31 | slwi r4, r5, 2 32 | add r4, r0, r4 33 | lwz r0, 0x0(r4) 34 | stw r0, 0x170(r3) 35 | blr 36 | 37 | 38 | .globl setMonteActionFlag___8TBaseNPCFv 39 | setMonteActionFlag___8TBaseNPCFv: # 0x802161b4 40 | lwz r0, 0x16c(r3) 41 | cmpwi r0, 0x18 42 | ble- branch_0x802161c8 43 | li r0, 0x0 44 | stw r0, 0x16c(r3) 45 | branch_0x802161c8: 46 | lwz r5, 0x16c(r3) 47 | lis r4, sBaseActionFlagTable_1938@ha 48 | addi r0, r4, sBaseActionFlagTable_1938@l 49 | slwi r4, r5, 2 50 | add r4, r0, r4 51 | lwz r0, 0x0(r4) 52 | stw r0, 0x170(r3) 53 | blr 54 | 55 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/mem_TRK.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRK_fill_mem 3 | TRK_fill_mem: # 0x8033fa54 4 | cmplwi r5, 0x20 5 | addi r6, r3, -0x1 6 | clrlwi r0, r4, 24 7 | mr r7, r0 8 | blt- branch_0x8033fafc 9 | not r0, r6 10 | clrlwi. r0, r0, 30 11 | mr r3, r0 12 | beq- branch_0x8033fa8c 13 | subf r5, r3, r5 14 | clrlwi r0, r7, 24 15 | branch_0x8033fa80: 16 | subic. r3, r3, 0x1 17 | stbu r0, 0x1(r6) 18 | bne+ branch_0x8033fa80 19 | branch_0x8033fa8c: 20 | cmplwi r7, 0x0 21 | beq- branch_0x8033faac 22 | slwi r3, r7, 24 23 | slwi r0, r7, 16 24 | slwi r4, r7, 8 25 | or r0, r3, r0 26 | or r0, r4, r0 27 | or r7, r7, r0 28 | branch_0x8033faac: 29 | srwi. r0, r5, 5 30 | addi r3, r6, -0x3 31 | beq- branch_0x8033fae0 32 | branch_0x8033fab8: 33 | stw r7, 0x4(r3) 34 | subic. r0, r0, 0x1 35 | stw r7, 0x8(r3) 36 | stw r7, 0xc(r3) 37 | stw r7, 0x10(r3) 38 | stw r7, 0x14(r3) 39 | stw r7, 0x18(r3) 40 | stw r7, 0x1c(r3) 41 | stwu r7, 0x20(r3) 42 | bne+ branch_0x8033fab8 43 | branch_0x8033fae0: 44 | extrwi. r0, r5, 3, 27 45 | beq- branch_0x8033faf4 46 | branch_0x8033fae8: 47 | subic. r0, r0, 0x1 48 | stwu r7, 0x4(r3) 49 | bne+ branch_0x8033fae8 50 | branch_0x8033faf4: 51 | addi r6, r3, 0x3 52 | clrlwi r5, r5, 30 53 | branch_0x8033fafc: 54 | cmplwi r5, 0x0 55 | beqlr- 56 | 57 | clrlwi r0, r7, 24 58 | branch_0x8033fb08: 59 | subic. r5, r5, 0x1 60 | stbu r0, 0x1(r6) 61 | bne+ branch_0x8033fb08 62 | blr 63 | 64 | -------------------------------------------------------------------------------- /source/System/PositionHolder.s: -------------------------------------------------------------------------------- 1 | 2 | .globl load__18TStagePositionInfoFR20JSUMemoryInputStream 3 | load__18TStagePositionInfoFR20JSUMemoryInputStream: # 0x802a8cb0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x40(sp) 7 | stw r31, 0x3c(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x38(sp) 10 | addi r30, r3, 0x0 11 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 12 | addi r3, r31, 0x0 13 | addi r4, r30, 0xc 14 | li r5, 0x4 15 | bl read__14JSUInputStreamFPvl 16 | addi r3, r31, 0x0 17 | addi r4, r30, 0x10 18 | li r5, 0x4 19 | bl read__14JSUInputStreamFPvl 20 | addi r3, r31, 0x0 21 | addi r4, r30, 0x14 22 | li r5, 0x4 23 | bl read__14JSUInputStreamFPvl 24 | addi r3, r31, 0x0 25 | addi r4, sp, 0x34 26 | li r5, 0x4 27 | bl read__14JSUInputStreamFPvl 28 | addi r3, r31, 0x0 29 | addi r4, sp, 0x30 30 | li r5, 0x4 31 | bl read__14JSUInputStreamFPvl 32 | addi r3, r31, 0x0 33 | addi r4, sp, 0x2c 34 | li r5, 0x4 35 | bl read__14JSUInputStreamFPvl 36 | addi r3, r31, 0x0 37 | addi r4, sp, 0x28 38 | li r5, 0x4 39 | bl read__14JSUInputStreamFPvl 40 | addi r3, r31, 0x0 41 | addi r4, sp, 0x24 42 | li r5, 0x4 43 | bl read__14JSUInputStreamFPvl 44 | addi r3, r31, 0x0 45 | addi r4, sp, 0x20 46 | li r5, 0x4 47 | bl read__14JSUInputStreamFPvl 48 | lwz r0, 0x44(sp) 49 | lwz r31, 0x3c(sp) 50 | lwz r30, 0x38(sp) 51 | mtlr r0 52 | addi sp, sp, 0x40 53 | blr 54 | 55 | -------------------------------------------------------------------------------- /source/JSystem/JASKernelDebug.s: -------------------------------------------------------------------------------- 1 | 2 | .globl stackInit__Q28JASystem6KernelFPUxUl 3 | stackInit__Q28JASystem6KernelFPUxUl: # 0x80319424 4 | cmplwi r4, 0x1 5 | li r9, 0x1 6 | li r5, 0x8 7 | blelr- 8 | 9 | addi r0, r4, -0x1 10 | cmplwi r0, 0x8 11 | addi r8, r4, -0x8 12 | ble- branch_0x803194b8 13 | addi r0, r8, 0x6 14 | srwi r0, r0, 3 15 | lis r7, unk_12345678@h 16 | mtctr r0 17 | lis r6, unk_fadebabe@ha 18 | cmplwi r8, 0x1 19 | addi r7, r7, unk_12345678@l 20 | addi r0, r6, unk_fadebabe@l 21 | ble- branch_0x803194b8 22 | branch_0x80319468: 23 | add r6, r3, r5 24 | stw r7, 0x4(r6) 25 | addi r9, r9, 0x8 26 | addi r5, r5, 0x40 27 | stw r0, 0x0(r6) 28 | stw r7, 0xc(r6) 29 | stw r0, 0x8(r6) 30 | stw r7, 0x14(r6) 31 | stw r0, 0x10(r6) 32 | stw r7, 0x1c(r6) 33 | stw r0, 0x18(r6) 34 | stw r7, 0x24(r6) 35 | stw r0, 0x20(r6) 36 | stw r7, 0x2c(r6) 37 | stw r0, 0x28(r6) 38 | stw r7, 0x34(r6) 39 | stw r0, 0x30(r6) 40 | stw r7, 0x3c(r6) 41 | stw r0, 0x38(r6) 42 | bdnz+ branch_0x80319468 43 | branch_0x803194b8: 44 | subf r0, r9, r4 45 | lis r6, unk_12345678@h 46 | mtctr r0 47 | lis r5, unk_fadebabe@ha 48 | cmplw r9, r4 49 | addi r6, r6, unk_12345678@l 50 | addi r0, r5, unk_fadebabe@l 51 | slwi r4, r9, 3 52 | bgelr- 53 | 54 | branch_0x803194dc: 55 | add r5, r3, r4 56 | stw r6, 0x4(r5) 57 | addi r4, r4, 0x8 58 | stw r0, 0x0(r5) 59 | bdnz+ branch_0x803194dc 60 | blr 61 | 62 | -------------------------------------------------------------------------------- /source/base/PPCArch.s: -------------------------------------------------------------------------------- 1 | 2 | .globl PPCMfmsr 3 | PPCMfmsr: # 0x80341a80 4 | mfmsr r3 5 | blr 6 | 7 | 8 | .globl PPCMtmsr 9 | PPCMtmsr: # 0x80341a88 10 | mtmsr r3 11 | blr 12 | 13 | 14 | .globl PPCMfhid0 15 | PPCMfhid0: # 0x80341a90 16 | mfspr r3, 1008 17 | blr 18 | 19 | 20 | .globl PPCMthid0 21 | PPCMthid0: # 0x80341a98 22 | mtspr 1008, r3 23 | blr 24 | 25 | 26 | .globl PPCMfl2cr 27 | PPCMfl2cr: # 0x80341aa0 28 | mfspr r3, 1017 29 | blr 30 | 31 | 32 | .globl PPCMtl2cr 33 | PPCMtl2cr: # 0x80341aa8 34 | mtspr 1017, r3 35 | blr 36 | 37 | 38 | .globl PPCMtdec 39 | PPCMtdec: # 0x80341ab0 40 | mtspr 22, r3 41 | blr 42 | 43 | 44 | .globl PPCSync 45 | PPCSync: # 0x80341ab8 46 | sc 47 | blr 48 | 49 | 50 | .globl PPCHalt 51 | PPCHalt: # 0x80341ac0 52 | sync 53 | branch_0x80341ac4: 54 | ori r0, r0, 0x0 55 | li r3, 0x0 56 | ori r0, r0, 0x0 57 | b branch_0x80341ac4 58 | 59 | 60 | .globl PPCMfhid2 61 | PPCMfhid2: # 0x80341ad4 62 | mfspr r3, 920 63 | blr 64 | 65 | 66 | .globl PPCMthid2 67 | PPCMthid2: # 0x80341adc 68 | mtspr 920, r3 69 | blr 70 | 71 | 72 | .globl PPCMtwpar 73 | PPCMtwpar: # 0x80341ae4 74 | mtspr 921, r3 75 | blr 76 | 77 | 78 | .globl PPCDisableSpeculation 79 | PPCDisableSpeculation: # 0x80341aec 80 | mflr r0 81 | stw r0, 0x4(sp) 82 | stwu sp, -0x8(sp) 83 | bl PPCMfhid0 84 | ori r3, r3, 0x200 85 | bl PPCMthid0 86 | lwz r0, 0xc(sp) 87 | addi sp, sp, 0x8 88 | mtlr r0 89 | blr 90 | 91 | 92 | .globl PPCSetFpNonIEEEMode 93 | PPCSetFpNonIEEEMode: # 0x80341b14 94 | mtfsb1 29 95 | blr 96 | 97 | -------------------------------------------------------------------------------- /source/JSystem/JASTrackPort.s: -------------------------------------------------------------------------------- 1 | 2 | .globl init__Q28JASystem10TTrackPortFv 3 | init__Q28JASystem10TTrackPortFv: # 0x8031e15c 4 | li r0, 0x2 5 | li r4, 0x0 6 | mtctr r0 7 | addi r7, r4, 0x0 8 | addi r6, r4, 0x0 9 | addi r5, r4, 0x0 10 | li r9, 0x0 11 | branch_0x8031e178: 12 | add r8, r3, r9 13 | stb r7, 0x0(r8) 14 | addi r0, r4, 0x20 15 | addi r9, r9, 0x1 16 | stb r6, 0x10(r8) 17 | add r8, r3, r9 18 | addi r9, r9, 0x1 19 | sthx r5, r3, r0 20 | addi r0, r4, 0x22 21 | stb r7, 0x0(r8) 22 | stb r6, 0x10(r8) 23 | add r8, r3, r9 24 | addi r9, r9, 0x1 25 | sthx r5, r3, r0 26 | addi r0, r4, 0x24 27 | stb r7, 0x0(r8) 28 | stb r6, 0x10(r8) 29 | add r8, r3, r9 30 | addi r9, r9, 0x1 31 | sthx r5, r3, r0 32 | addi r0, r4, 0x26 33 | stb r7, 0x0(r8) 34 | stb r6, 0x10(r8) 35 | add r8, r3, r9 36 | addi r9, r9, 0x1 37 | sthx r5, r3, r0 38 | addi r0, r4, 0x28 39 | stb r7, 0x0(r8) 40 | stb r6, 0x10(r8) 41 | add r8, r3, r9 42 | addi r9, r9, 0x1 43 | sthx r5, r3, r0 44 | addi r0, r4, 0x2a 45 | stb r7, 0x0(r8) 46 | stb r6, 0x10(r8) 47 | add r8, r3, r9 48 | addi r9, r9, 0x1 49 | sthx r5, r3, r0 50 | addi r0, r4, 0x2c 51 | stb r7, 0x0(r8) 52 | stb r6, 0x10(r8) 53 | add r8, r3, r9 54 | addi r9, r9, 0x1 55 | sthx r5, r3, r0 56 | addi r0, r4, 0x2e 57 | addi r4, r4, 0x10 58 | stb r7, 0x0(r8) 59 | stb r6, 0x10(r8) 60 | sthx r5, r3, r0 61 | bdnz+ branch_0x8031e178 62 | blr 63 | 64 | -------------------------------------------------------------------------------- /source/JSystem/JASDriverIF.s: -------------------------------------------------------------------------------- 1 | 2 | .globl init__Q28JASystem6DriverFv 3 | init__Q28JASystem6DriverFv: # 0x803140cc 4 | mflr r0 5 | li r3, 0x0 6 | stw r0, 0x4(sp) 7 | stwu sp, -0x8(sp) 8 | bl process__Q28JASystem6DSPBufFQ38JASystem6DSPBuf13DSPBUF_EVENTS 9 | bl initBuffer__Q28JASystem12DSPInterfaceFv 10 | bl initAll__Q28JASystem11TDSPChannelFv 11 | bl init__Q28JASystem8ChGlobalFv 12 | lwz r3, R13Off_m0x7414(r13) 13 | bl init__Q38JASystem6Driver8DSPQueueFUl 14 | lwz r0, 0xc(sp) 15 | addi sp, sp, 0x8 16 | mtlr r0 17 | blr 18 | 19 | 20 | .globl setMixerLevel__Q28JASystem6DriverFff 21 | setMixerLevel__Q28JASystem6DriverFff: # 0x80314104 22 | mflr r0 23 | stw r0, 0x4(sp) 24 | stwu sp, -0x18(sp) 25 | lfs f0, 0x6c0(r2) 26 | fmuls f0, f0, f1 27 | fmr f1, f2 28 | fctiwz f0, f0 29 | stfd f0, 0x10(sp) 30 | lwz r0, 0x14(sp) 31 | sth r0, -0x7420(r13) 32 | bl DsetMixerLevel__Ff 33 | lwz r0, 0x1c(sp) 34 | addi sp, sp, 0x18 35 | mtlr r0 36 | blr 37 | 38 | 39 | .globl getMixerLevel__Q28JASystem6DriverFv 40 | getMixerLevel__Q28JASystem6DriverFv: # 0x80314140 41 | lhz r3, -0x7420(r13) 42 | blr 43 | 44 | 45 | .globl setOutputMode__Q28JASystem6DriverFUl 46 | setOutputMode__Q28JASystem6DriverFUl: # 0x80314148 47 | stw r3, R13Off_m0x741c(r13) 48 | blr 49 | 50 | 51 | .globl getOutputMode__Q28JASystem6DriverFv 52 | getOutputMode__Q28JASystem6DriverFv: # 0x80314150 53 | lwz r3, R13Off_m0x741c(r13) 54 | blr 55 | 56 | 57 | .globl getUpdateInterval__Q28JASystem6DriverFv 58 | getUpdateInterval__Q28JASystem6DriverFv: # 0x80314158 59 | lbz r3, R13Off_m0x7418(r13) 60 | blr 61 | 62 | -------------------------------------------------------------------------------- /source/JSystem/JASNoteMgr.s: -------------------------------------------------------------------------------- 1 | 2 | .globl init__Q38JASystem6TTrack8TNoteMgrFv 3 | init__Q38JASystem6TTrack8TNoteMgrFv: # 0x80319b88 4 | li r0, 0x0 5 | stw r0, 0x30(r3) 6 | stb r0, 0x34(r3) 7 | stb r0, 0x35(r3) 8 | stb r0, 0x36(r3) 9 | stw r0, 0x0(r3) 10 | sth r0, 0x20(r3) 11 | stw r0, 0x4(r3) 12 | sth r0, 0x22(r3) 13 | stw r0, 0x8(r3) 14 | sth r0, 0x24(r3) 15 | stw r0, 0xc(r3) 16 | sth r0, 0x26(r3) 17 | stw r0, 0x10(r3) 18 | sth r0, 0x28(r3) 19 | stw r0, 0x14(r3) 20 | sth r0, 0x2a(r3) 21 | stw r0, 0x18(r3) 22 | sth r0, 0x2c(r3) 23 | stw r0, 0x1c(r3) 24 | sth r0, 0x2e(r3) 25 | blr 26 | 27 | 28 | .globl endProcess__Q38JASystem6TTrack8TNoteMgrFv 29 | endProcess__Q38JASystem6TTrack8TNoteMgrFv: # 0x80319be0 30 | lwz r4, 0x30(r3) 31 | addis r0, r4, 0x1 32 | cmplwi r0, 0xffff 33 | beqlr- 34 | 35 | lbz r0, 0x34(r3) 36 | cmplwi r0, 0x0 37 | bnelr- 38 | 39 | li r0, 0x0 40 | stw r0, 0x0(r3) 41 | blr 42 | 43 | 44 | .globl getChannel__Q38JASystem6TTrack8TNoteMgrFi 45 | getChannel__Q38JASystem6TTrack8TNoteMgrFi: # 0x80319c08 46 | slwi r0, r4, 2 47 | add r5, r3, r0 48 | lwz r0, 0x0(r5) 49 | cmplwi r0, 0x0 50 | mr r6, r0 51 | bne- branch_0x80319c28 52 | li r3, 0x0 53 | blr 54 | 55 | branch_0x80319c28: 56 | slwi r4, r4, 1 57 | lhz r0, 0xc6(r6) 58 | add r3, r3, r4 59 | lhz r3, 0x20(r3) 60 | cmplw r3, r0 61 | beq- branch_0x80319c50 62 | li r0, 0x0 63 | stw r0, 0x0(r5) 64 | li r3, 0x0 65 | blr 66 | 67 | branch_0x80319c50: 68 | mr r3, r6 69 | blr 70 | 71 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/notify.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKDoNotifyStopped 3 | TRKDoNotifyStopped: # 0x8033f944 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x20(sp) 7 | stw r31, 0x1c(sp) 8 | addi r4, sp, 0xc 9 | stw r30, 0x18(sp) 10 | addi r30, r3, 0x0 11 | addi r3, sp, 0x8 12 | bl TRKGetFreeBuffer 13 | mr. r31, r3 14 | bne- branch_0x8033fa00 15 | lwz r5, 0xc(sp) 16 | lwz r3, 0xc(r5) 17 | cmplwi r3, 0x880 18 | blt- branch_0x8033f988 19 | li r4, 0x301 20 | b branch_0x8033f9a8 21 | 22 | branch_0x8033f988: 23 | addi r0, r3, 0x1 24 | add r3, r5, r3 25 | stw r0, 0xc(r5) 26 | li r4, 0x0 27 | stb r30, 0x10(r3) 28 | lwz r3, 0x8(r5) 29 | addi r0, r3, 0x1 30 | stw r0, 0x8(r5) 31 | branch_0x8033f9a8: 32 | cmpwi r4, 0x0 33 | bne- branch_0x8033f9d0 34 | clrlwi r0, r30, 24 35 | cmplwi r0, 0x90 36 | bne- branch_0x8033f9c8 37 | lwz r3, 0xc(sp) 38 | bl TRKTargetAddStopInfo 39 | b branch_0x8033f9d0 40 | 41 | branch_0x8033f9c8: 42 | lwz r3, 0xc(sp) 43 | bl TRKTargetAddExceptionInfo 44 | branch_0x8033f9d0: 45 | lwz r3, 0xc(sp) 46 | addi r4, sp, 0x10 47 | li r5, 0x2 48 | li r6, 0x3 49 | li r7, 0x1 50 | bl TRKRequestSend 51 | mr. r31, r3 52 | bne- branch_0x8033f9f8 53 | lwz r3, 0x10(sp) 54 | bl TRKReleaseBuffer 55 | branch_0x8033f9f8: 56 | lwz r3, 0x8(sp) 57 | bl TRKReleaseBuffer 58 | branch_0x8033fa00: 59 | mr r3, r31 60 | lwz r31, 0x1c(sp) 61 | lwz r30, 0x18(sp) 62 | addi sp, sp, 0x20 63 | lwz r0, 0x4(sp) 64 | mtlr r0 65 | blr 66 | 67 | -------------------------------------------------------------------------------- /source/JSystem/JSGObject.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q26JStage7TObjectFv 3 | __dt__Q26JStage7TObjectFv: # 0x803371c0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | mr. r31, r3 9 | beq- branch_0x803371f4 10 | lis r3, __vvt__Q26JStage7TObject@h 11 | addi r3, r3, __vvt__Q26JStage7TObject@l 12 | extsh. r0, r4 13 | stw r3, 0x0(r31) 14 | ble- branch_0x803371f4 15 | mr r3, r31 16 | bl __dl__FPv 17 | branch_0x803371f4: 18 | lwz r0, 0x1c(sp) 19 | mr r3, r31 20 | lwz r31, 0x14(sp) 21 | addi sp, sp, 0x18 22 | mtlr r0 23 | blr 24 | 25 | 26 | .globl JSGGetName__Q26JStage7TObjectCFv 27 | JSGGetName__Q26JStage7TObjectCFv: # 0x8033720c 28 | li r3, 0x0 29 | blr 30 | 31 | 32 | .globl JSGGetFlag__Q26JStage7TObjectCFv 33 | JSGGetFlag__Q26JStage7TObjectCFv: # 0x80337214 34 | li r3, 0x0 35 | blr 36 | 37 | 38 | .globl JSGSetFlag__Q26JStage7TObjectFUl 39 | JSGSetFlag__Q26JStage7TObjectFUl: # 0x8033721c 40 | blr 41 | 42 | 43 | .globl JSGGetData__Q26JStage7TObjectCFUlPvUl 44 | JSGGetData__Q26JStage7TObjectCFUlPvUl: # 0x80337220 45 | li r3, 0x0 46 | blr 47 | 48 | 49 | .globl JSGSetData__Q26JStage7TObjectFUlPCvUl 50 | JSGSetData__Q26JStage7TObjectFUlPCvUl: # 0x80337228 51 | blr 52 | 53 | 54 | .globl JSGGetParent__Q26JStage7TObjectCFPPQ26JStage7TObjectPUl 55 | JSGGetParent__Q26JStage7TObjectCFPPQ26JStage7TObjectPUl: # 0x8033722c 56 | blr 57 | 58 | 59 | .globl JSGSetParent__Q26JStage7TObjectFPQ26JStage7TObjectUl 60 | JSGSetParent__Q26JStage7TObjectFPQ26JStage7TObjectUl: # 0x80337230 61 | blr 62 | 63 | 64 | .globl JSGSetRelation__Q26JStage7TObjectFbPQ26JStage7TObjectUl 65 | JSGSetRelation__Q26JStage7TObjectFbPQ26JStage7TObjectUl: # 0x80337234 66 | blr 67 | 68 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/__va_arg.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __va_arg 3 | __va_arg: # 0x80337ccc 4 | clrlwi r0, r4, 24 5 | lbz r6, 0x0(r3) 6 | cmplwi r0, 0x4 7 | addi r7, r3, 0x0 8 | extsb r6, r6 9 | li r5, 0x8 10 | li r8, 0x4 11 | li r9, 0x1 12 | li r10, 0x0 13 | li r11, 0x0 14 | li r12, 0x4 15 | bne- branch_0x80337d18 16 | lwz r4, 0x4(r3) 17 | addi r0, r4, 0xf 18 | clrrwi r4, r0, 4 19 | addi r0, r4, 0x10 20 | stw r0, 0x4(r3) 21 | mr r3, r4 22 | blr 23 | 24 | branch_0x80337d18: 25 | cmplwi r0, 0x3 26 | bne- branch_0x80337d38 27 | lbz r6, 0x1(r3) 28 | addi r7, r3, 0x1 29 | li r8, 0x8 30 | extsb r6, r6 31 | li r11, 0x20 32 | li r12, 0x8 33 | branch_0x80337d38: 34 | clrlwi r0, r4, 24 35 | cmplwi r0, 0x2 36 | bne- branch_0x80337d5c 37 | clrlwi. r0, r6, 31 38 | li r8, 0x8 39 | li r5, 0x7 40 | beq- branch_0x80337d58 41 | li r10, 0x1 42 | branch_0x80337d58: 43 | li r9, 0x2 44 | branch_0x80337d5c: 45 | cmpw r6, r5 46 | bge- branch_0x80337d84 47 | add r6, r6, r10 48 | lwz r5, 0x8(r3) 49 | mullw r3, r6, r12 50 | add r0, r6, r9 51 | add r6, r11, r3 52 | stb r0, 0x0(r7) 53 | add r6, r5, r6 54 | b branch_0x80337dac 55 | 56 | branch_0x80337d84: 57 | li r0, 0x8 58 | stb r0, 0x0(r7) 59 | addi r0, r8, -0x1 60 | not r6, r0 61 | lwz r0, 0x4(r3) 62 | add r5, r8, r0 63 | addi r0, r5, -0x1 64 | and r6, r6, r0 65 | add r0, r6, r8 66 | stw r0, 0x4(r3) 67 | branch_0x80337dac: 68 | clrlwi. r0, r4, 24 69 | bne- branch_0x80337db8 70 | lwz r6, 0x0(r6) 71 | branch_0x80337db8: 72 | mr r3, r6 73 | blr 74 | 75 | -------------------------------------------------------------------------------- /tools/configuration.py: -------------------------------------------------------------------------------- 1 | """ 2 | Configuration 3 | """ 4 | 5 | import os 6 | 7 | class ConfigException(Exception): 8 | """ 9 | Configuration error. Maybe a missing config variable. 10 | """ 11 | 12 | class Config(object): 13 | """ 14 | The Config class handles all configuration for pokemontools. Other classes 15 | and functions use a Config object to determine where expected files can be 16 | located. 17 | """ 18 | 19 | def __init__(self, **kwargs): 20 | """ 21 | Store all parameters. 22 | """ 23 | self._config = {} 24 | 25 | for (key, value) in kwargs.items(): 26 | if key not in self.__dict__: 27 | self._config[key] = value 28 | else: 29 | raise ConfigException( 30 | "Can't store \"{0}\" in configuration because the key conflicts with an existing property." 31 | .format(key) 32 | ) 33 | 34 | if "path" not in self._config: 35 | self._config["path"] = os.getcwd() 36 | 37 | # vba save states go into ./save-states/ 38 | if "save_state_path" not in self._config: 39 | self._config["save_state_path"] = os.path.join(self._config["path"], "save-states/") 40 | 41 | # assume rom is at ./baserom.gbc 42 | if "rom" not in self._config: 43 | self._config["rom_path"] = os.path.join(self._config["path"], "baserom.gbc") 44 | 45 | def __getattr__(self, key): 46 | """ 47 | Grab the value from the class properties, then check the configuration, 48 | and raise an exception if nothing works. 49 | """ 50 | if key in self.__dict__: 51 | return self.__dict__[key] 52 | elif key in self._config: 53 | return self._config[key] 54 | else: 55 | raise ConfigException( 56 | "no config found for \"{0}\"".format(key) 57 | ) 58 | -------------------------------------------------------------------------------- /source/JSystem/JDRResolution.s: -------------------------------------------------------------------------------- 1 | 2 | .globl GetVIWidthMax__6JDramaFv 3 | GetVIWidthMax__6JDramaFv: # 0x802fbba0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | bl VIGetTvFormat 8 | cmpwi r3, 0x2 9 | beq- branch_0x802fbbe0 10 | bge- branch_0x802fbbcc 11 | cmpwi r3, 0x0 12 | beq- branch_0x802fbbf0 13 | bge- branch_0x802fbbd8 14 | b branch_0x802fbbf0 15 | 16 | branch_0x802fbbcc: 17 | cmpwi r3, 0x5 18 | beq- branch_0x802fbbe8 19 | b branch_0x802fbbf0 20 | 21 | branch_0x802fbbd8: 22 | li r3, 0x2d0 23 | b branch_0x802fbbf4 24 | 25 | branch_0x802fbbe0: 26 | li r3, 0x2d0 27 | b branch_0x802fbbf4 28 | 29 | branch_0x802fbbe8: 30 | li r3, 0x2d0 31 | b branch_0x802fbbf4 32 | 33 | branch_0x802fbbf0: 34 | li r3, 0x2d0 35 | branch_0x802fbbf4: 36 | lwz r0, 0xc(sp) 37 | addi sp, sp, 0x8 38 | mtlr r0 39 | blr 40 | 41 | 42 | .globl GetVIHeightMax__6JDramaFv 43 | GetVIHeightMax__6JDramaFv: # 0x802fbc04 44 | mflr r0 45 | stw r0, 0x4(sp) 46 | stwu sp, -0x8(sp) 47 | bl VIGetTvFormat 48 | cmpwi r3, 0x2 49 | beq- branch_0x802fbc44 50 | bge- branch_0x802fbc30 51 | cmpwi r3, 0x0 52 | beq- branch_0x802fbc54 53 | bge- branch_0x802fbc3c 54 | b branch_0x802fbc54 55 | 56 | branch_0x802fbc30: 57 | cmpwi r3, 0x5 58 | beq- branch_0x802fbc4c 59 | b branch_0x802fbc54 60 | 61 | branch_0x802fbc3c: 62 | li r3, 0x23e 63 | b branch_0x802fbc58 64 | 65 | branch_0x802fbc44: 66 | li r3, 0x1e0 67 | b branch_0x802fbc58 68 | 69 | branch_0x802fbc4c: 70 | li r3, 0x1e0 71 | b branch_0x802fbc58 72 | 73 | branch_0x802fbc54: 74 | li r3, 0x1e0 75 | branch_0x802fbc58: 76 | lwz r0, 0xc(sp) 77 | addi sp, sp, 0x8 78 | mtlr r0 79 | blr 80 | 81 | -------------------------------------------------------------------------------- /source/JSystem/JSGSystem.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q26JStage7TSystemFv 3 | __dt__Q26JStage7TSystemFv: # 0x80337238 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x80337280 12 | lis r3, __vvt__Q26JStage7TSystem@h 13 | addi r0, r3, __vvt__Q26JStage7TSystem@l 14 | stw r0, 0x0(r30) 15 | addi r3, r30, 0x0 16 | li r4, 0x0 17 | bl __dt__Q26JStage7TObjectFv 18 | extsh. r0, r31 19 | ble- branch_0x80337280 20 | mr r3, r30 21 | bl __dl__FPv 22 | branch_0x80337280: 23 | lwz r0, 0x1c(sp) 24 | mr r3, r30 25 | lwz r31, 0x14(sp) 26 | lwz r30, 0x10(sp) 27 | mtlr r0 28 | addi sp, sp, 0x18 29 | blr 30 | 31 | 32 | .globl JSGFGetType__Q26JStage7TSystemCFv 33 | JSGFGetType__Q26JStage7TSystemCFv: # 0x8033729c 34 | li r3, 0x1 35 | blr 36 | 37 | 38 | .globl JSGFindObject__Q26JStage7TSystemCFPCcQ26JStage8TEObject 39 | JSGFindObject__Q26JStage7TSystemCFPCcQ26JStage8TEObject: # 0x803372a4 40 | li r3, 0x0 41 | blr 42 | 43 | 44 | .globl JSGCreateObject__Q26JStage7TSystemFPCcQ26JStage8TEObjectUl 45 | JSGCreateObject__Q26JStage7TSystemFPCcQ26JStage8TEObjectUl: # 0x803372ac 46 | li r3, 0x0 47 | blr 48 | 49 | 50 | .globl JSGDestroyObject__Q26JStage7TSystemFPQ26JStage7TObject 51 | JSGDestroyObject__Q26JStage7TSystemFPQ26JStage7TObject: # 0x803372b4 52 | blr 53 | 54 | 55 | .globl JSGGetSystemData__Q26JStage7TSystemFUl 56 | JSGGetSystemData__Q26JStage7TSystemFUl: # 0x803372b8 57 | li r3, 0x0 58 | blr 59 | 60 | 61 | .globl JSGSetSystemData__Q26JStage7TSystemFUlUl 62 | JSGSetSystemData__Q26JStage7TSystemFUlUl: # 0x803372c0 63 | blr 64 | 65 | branch_0x803372c4: 66 | .long 0x0 67 | .long 0x0 68 | .long 0x0 69 | .long 0x0 70 | .long 0x0 71 | .long 0x0 72 | .long 0x0 73 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/buffer_io.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __flush_buffer 3 | __flush_buffer: # 0x80338e38 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | mr r31, r3 9 | stw r30, 0x10(sp) 10 | mr r30, r4 11 | lwz r3, 0x18(r3) 12 | lwz r0, 0x20(r31) 13 | subf. r0, r3, r0 14 | beq- branch_0x80338eb8 15 | stw r0, 0x24(r31) 16 | lbz r0, 0x5(r31) 17 | extrwi. r0, r0, 1, 28 18 | lwz r12, 0x3c(r31) 19 | addi r5, r31, 0x24 20 | lwz r3, 0x0(r31) 21 | mtlr r12 22 | lwz r4, 0x18(r31) 23 | lwz r6, 0x44(r31) 24 | blrl 25 | cmplwi r30, 0x0 26 | beq- branch_0x80338e9c 27 | lwz r0, 0x24(r31) 28 | stw r0, 0x0(r30) 29 | branch_0x80338e9c: 30 | cmpwi r3, 0x0 31 | beq- branch_0x80338ea8 32 | b branch_0x80338eec 33 | 34 | branch_0x80338ea8: 35 | lwz r3, 0x14(r31) 36 | lwz r0, 0x24(r31) 37 | add r0, r3, r0 38 | stw r0, 0x14(r31) 39 | branch_0x80338eb8: 40 | lwz r0, 0x18(r31) 41 | li r3, 0x0 42 | stw r0, 0x20(r31) 43 | lwz r0, 0x1c(r31) 44 | stw r0, 0x24(r31) 45 | lwz r5, 0x14(r31) 46 | lwz r4, 0x28(r31) 47 | lwz r0, 0x24(r31) 48 | and r4, r5, r4 49 | subf r0, r4, r0 50 | stw r0, 0x24(r31) 51 | lwz r0, 0x14(r31) 52 | stw r0, 0x30(r31) 53 | branch_0x80338eec: 54 | lwz r0, 0x1c(sp) 55 | lwz r31, 0x14(sp) 56 | lwz r30, 0x10(sp) 57 | mtlr r0 58 | addi sp, sp, 0x18 59 | blr 60 | 61 | 62 | .globl __prep_buffer 63 | __prep_buffer: # 0x80338f04 64 | lwz r0, 0x18(r3) 65 | stw r0, 0x20(r3) 66 | lwz r0, 0x1c(r3) 67 | stw r0, 0x24(r3) 68 | lwz r5, 0x14(r3) 69 | lwz r4, 0x28(r3) 70 | lwz r0, 0x24(r3) 71 | and r4, r5, r4 72 | subf r0, r4, r0 73 | stw r0, 0x24(r3) 74 | lwz r0, 0x14(r3) 75 | stw r0, 0x30(r3) 76 | blr 77 | 78 | -------------------------------------------------------------------------------- /source/JSystem/random.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__Q25JMath13TRandom_fast_FUl 3 | __ct__Q25JMath13TRandom_fast_FUl: # 0x8031e244 4 | stw r4, 0x0(r3) 5 | blr 6 | 7 | 8 | .globl setSeed__Q25JMath15TRandom_enough_FUl 9 | setSeed__Q25JMath15TRandom_enough_FUl: # 0x8031e24c 10 | mflr r0 11 | stw r0, 0x4(sp) 12 | li r0, 0x0 13 | stwu sp, -0x28(sp) 14 | stmw r26, 0x10(sp) 15 | addi r31, r3, 0x0 16 | stw r0, 0x4(r3) 17 | addi r0, r4, 0x1 18 | stw r0, 0x0(r3) 19 | lwz r3, 0x0(r3) 20 | cmplwi r3, 0x0 21 | bne- branch_0x8031e284 22 | addi r0, r3, 0x1 23 | stw r0, 0x0(r31) 24 | branch_0x8031e284: 25 | lis r3, unk_7fffffff@ha 26 | addi r29, r3, unk_7fffffff@l 27 | li r26, 0x8 28 | li r28, 0x0 29 | li r27, 0x41a7 30 | branch_0x8031e298: 31 | lwz r4, 0x0(r31) 32 | mullw r3, r28, r27 33 | mulhwu r0, r4, r27 34 | add r3, r3, r0 35 | mullw r0, r4, r28 36 | mullw r4, r4, r27 37 | add r3, r3, r0 38 | addi r6, r29, 0x0 39 | li r5, 0x0 40 | bl __mod2u 41 | subic. r26, r26, 0x1 42 | stw r4, 0x0(r31) 43 | bne+ branch_0x8031e298 44 | lis r3, unk_7fffffff@ha 45 | addi r27, r3, unk_7fffffff@l 46 | li r26, 0x20 47 | li r30, 0x80 48 | li r28, 0x0 49 | li r29, 0x41a7 50 | branch_0x8031e2e4: 51 | lwz r4, 0x0(r31) 52 | mullw r3, r28, r29 53 | mulhwu r0, r4, r29 54 | add r3, r3, r0 55 | mullw r0, r4, r28 56 | mullw r4, r4, r29 57 | add r3, r3, r0 58 | addi r6, r27, 0x0 59 | li r5, 0x0 60 | addi r26, r26, -0x1 61 | addi r30, r30, -0x4 62 | bl __mod2u 63 | stw r4, 0x0(r31) 64 | cmplwi r26, 0x0 65 | addi r0, r30, 0x8 66 | lwz r3, 0x0(r31) 67 | stwx r3, r31, r0 68 | bne+ branch_0x8031e2e4 69 | lmw r26, 0x10(sp) 70 | lwz r0, 0x2c(sp) 71 | addi sp, sp, 0x28 72 | mtlr r0 73 | blr 74 | 75 | -------------------------------------------------------------------------------- /tools/util/attr.py: -------------------------------------------------------------------------------- 1 | 2 | __all__ = ['temporary_attr'] 3 | 4 | 5 | class TemporaryAttr(object): 6 | def __init__(self, inst, attr, value, skip_magic=False): 7 | self.inst = inst 8 | self.attr = attr 9 | self.value = value 10 | self.old = None 11 | if skip_magic: 12 | self.setattr = object.__setattr__ 13 | self.getattr = object.__getattribute__ 14 | else: 15 | self.setattr = setattr 16 | self.getattr = getattr 17 | 18 | def __enter__(self): 19 | self.old = self.getattr(self.inst, self.attr) 20 | self.setattr(self.inst, self.attr, self.value) 21 | 22 | def __exit__(self, type_, value, traceback): 23 | self.setattr(self.inst, self.attr, self.old) 24 | 25 | 26 | temporary_attr = TemporaryAttr # Export as function 27 | 28 | 29 | def getattr_override(target, name): 30 | return object.__getattribute__(target, name) 31 | 32 | 33 | def setattr_override(target, name, value): 34 | return object.__setattr__(target, name, value) 35 | 36 | 37 | def detattr_override(target, name): 38 | return object.__delattr__(target, name) 39 | 40 | 41 | def de_attr(*args, **kwargs): 42 | raise AttributeError 43 | 44 | 45 | class AttrClone(object): 46 | """Wrapper that serves as a modifiable copy of an existing valence 47 | 48 | It will get any attribute not set to it specifically from its base 49 | 50 | It will set any attribute on itself. 51 | """ 52 | def __init__(self, base): 53 | setattr_override(self, '_base_copy', base) 54 | setattr_override(self, '__repr__', de_attr) 55 | setattr_override(self, '__str__', de_attr) 56 | 57 | def __getattr__(self, name): 58 | return getattr(getattr_override(self, '_base_copy'), name) 59 | 60 | def __setattr__(self, name, value): 61 | return getattr(getattr_override(self, '_base_copy'), name, value) 62 | 63 | 64 | class AttrDict(dict): 65 | def __init__(self, *args, **kwargs): 66 | super(AttrDict, self).__init__(*args, **kwargs) 67 | self.__dict__ = self 68 | -------------------------------------------------------------------------------- /source/MarioUtil/MapUtil.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMS_GetSandRiseUpRatio__FPC10TLiveActor 3 | SMS_GetSandRiseUpRatio__FPC10TLiveActor: # 0x80236d58 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | bl getModel__10TLiveActorCFv 8 | lwz r3, 0x58(r3) 9 | lfs f0, -0x1570(r2) 10 | lfs f1, 0x14(r3) 11 | fcmpo cr0, f1, f0 12 | ble- branch_0x80236d84 13 | fmr f1, f0 14 | b branch_0x80236d94 15 | 16 | branch_0x80236d84: 17 | lfs f0, -0x156c(r2) 18 | fcmpo cr0, f1, f0 19 | bge- branch_0x80236d94 20 | fmr f1, f0 21 | branch_0x80236d94: 22 | lwz r0, 0xc(sp) 23 | addi sp, sp, 0x8 24 | mtlr r0 25 | blr 26 | 27 | 28 | .globl SMS_GetGroundActor__FPC12TBGCheckDataUl 29 | SMS_GetGroundActor__FPC12TBGCheckDataUl: # 0x80236da4 30 | cmplwi r3, 0x0 31 | li r5, 0x0 32 | beq- branch_0x80236dd0 33 | lwz r3, 0x44(r3) 34 | cmplwi r3, 0x0 35 | addi r5, r3, 0x0 36 | beq- branch_0x80236dd0 37 | lwz r0, 0x4c(r3) 38 | cmplw r4, r0 39 | beq- branch_0x80236dd0 40 | li r5, 0x0 41 | branch_0x80236dd0: 42 | mr r3, r5 43 | blr 44 | 45 | 46 | .globl SMS_GetMonteVillageAreaInMario__Fv 47 | SMS_GetMonteVillageAreaInMario__Fv: # 0x80236dd8 48 | lwz r4, R13Off_m0x6048(r13) 49 | li r3, 0x4 50 | lbz r0, 0x7c(r4) 51 | cmplwi r0, 0x8 52 | bnelr- 53 | 54 | lwz r3, R13Off_m0x7118(r13) 55 | lwz r0, 0x50(r3) 56 | cmpwi r0, 0x33 57 | bne- branch_0x80236e04 58 | li r3, 0x1 59 | blr 60 | 61 | branch_0x80236e04: 62 | lwz r3, R13Off_m0x70d0(r13) 63 | lwz r0, 0x1c(r3) 64 | cmpwi r0, 0x1 65 | beq- branch_0x80236e2c 66 | bge- branch_0x80236e34 67 | cmpwi r0, 0x0 68 | bge- branch_0x80236e24 69 | b branch_0x80236e34 70 | 71 | branch_0x80236e24: 72 | li r3, 0x2 73 | blr 74 | 75 | branch_0x80236e2c: 76 | li r3, 0x0 77 | blr 78 | 79 | branch_0x80236e34: 80 | li r3, 0x3 81 | blr 82 | 83 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | 3 | ifeq ($(strip $(DEVKITPRO)),) 4 | $(error "Please set DEVKITPRO in your environment. export DEVKITPRO=devkitPro) 5 | endif 6 | 7 | ifeq ($(strip $(DEVKITPPC)),) 8 | $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") 9 | endif 10 | 11 | 12 | PYTHON := python 13 | MKDIR_P = mkdir -p 14 | 15 | .PHONY: asm all check init 16 | 17 | ppcdisassem := $(PYTHON) tools/ppcdisassem.py 18 | unpack_iso := $(PYTHON) tools/unpack_iso.py 19 | create_rom := $(PYTHON) tools/create_rom.py 20 | 21 | 22 | SRCS = init.s text.s sdata.s sdata2.s bss.s sbss.s 23 | OBJS = $(addprefix build/, $(SRCS:.s=.o)) 24 | DEPS = $(addprefix build/, $(SRCS:.s=.d)) 25 | 26 | 27 | all: 28 | 29 | clean: 30 | rm -f build/* 31 | 32 | 33 | build: 34 | mkdir -p $@ 35 | 36 | -include $(DEPS) 37 | 38 | build/%.d: ; 39 | 40 | build/%.o: source/%.s build/%.d | build 41 | $(DEVKITPPC)/bin/powerpc-eabi-gcc -mbig-endian -mregnames -Wa,-m750cl -finput-charset=shift-jis -c $< -o $@ 42 | 43 | asm: $(OBJS) $(DEPS) 44 | $(DEVKITPPC)/bin/powerpc-eabi-ld -T gcn.ld -Map "./build/bootfile.map" --nmagic --warn-section-align $(OBJS) -o "./build/bootfile.elf" 45 | $(DEVKITPPC)/bin/powerpc-eabi-objcopy -v -O binary "./build/bootfile.elf" "./build/bootfile.bin" 46 | hexdump -C "./build/bootfile.bin" > "./build/bootfile.hex.txt" 47 | diff -u "./baserom/bootfile.hex.txt" "./build/bootfile.hex.txt" | less > "./build/diff_bootfile.txt" 48 | 49 | diagnose: 50 | $(unpack_iso) -d "./SMS_E.iso" 51 | 52 | check: 53 | md5sum SMS_U.iso 54 | echo 0c6d2edae9fdf40dfc410ff1623e4119 *SMS_U.iso 55 | 56 | init: 57 | $(unpack_iso) -d "./SMS_U.iso" -of "./newiso/" -filelist "SMS_U_FileList.txt" -export 58 | $(MKDIR_P) baserom/ 59 | hexdump -C "./newiso/bootfile.dol" > "./baserom/bootfile.hex.txt" 60 | hexdump -C newiso/fst.bin > baserom/fst.txt 61 | 62 | newSMS: 63 | $(create_rom) -dir "./newiso" -fst "./newiso/fst.bin" -fstmap "./newiso/SMS_U_FileList.txt" -o "./game.iso" 64 | md5sum ./game.iso 65 | hexdump -C newiso/fst.bin > build/fst.txt 66 | diff -u baserom/fst.txt build/fst.txt | less > build/diff_fst.txt 67 | -------------------------------------------------------------------------------- /source/db/db.s: -------------------------------------------------------------------------------- 1 | 2 | .globl DBInit 3 | DBInit: # 0x80341b1c 4 | lis r4, unk_80000040@h 5 | addi r0, r4, unk_80000040@l 6 | lis r3, __DBExceptionDestination@h 7 | stw r0, R13Off_m0x5a78(r13) 8 | addi r3, r3, __DBExceptionDestination@l 9 | addis r0, r3, 0x8000 10 | stw r0, 0x48(r4) 11 | li r0, 0x1 12 | stw r0, R13Off_m0x5a74(r13) 13 | blr 14 | 15 | 16 | .globl __DBExceptionDestinationAux 17 | __DBExceptionDestinationAux: # 0x80341b44 18 | mflr r0 19 | lis r3, unk_803e6928@h 20 | stw r0, 0x4(sp) 21 | addi r3, r3, unk_803e6928@l 22 | crxor 6, 6, 6 23 | stwu sp, -0x18(sp) 24 | stw r31, 0x14(sp) 25 | lwz r4, 0xc0(r0) 26 | addis r31, r4, 0x8000 27 | bl OSReport 28 | mr r3, r31 29 | bl OSDumpContext 30 | bl PPCHalt 31 | lwz r0, 0x1c(sp) 32 | lwz r31, 0x14(sp) 33 | addi sp, sp, 0x18 34 | mtlr r0 35 | blr 36 | 37 | 38 | .globl __DBExceptionDestination 39 | __DBExceptionDestination: # 0x80341b8c 40 | mfmsr r3 41 | ori r3, r3, 0x30 42 | mtmsr r3 43 | b __DBExceptionDestinationAux 44 | 45 | 46 | .globl __DBIsExceptionMarked 47 | __DBIsExceptionMarked: # 0x80341b9c 48 | lwz r4, R13Off_m0x5a78(r13) 49 | clrlwi r0, r3, 24 50 | li r3, 0x1 51 | lwz r4, 0x4(r4) 52 | slw r0, r3, r0 53 | and r3, r4, r0 54 | blr 55 | 56 | 57 | .globl DBPrintf 58 | DBPrintf: # 0x80341bb8 59 | stwu sp, -0x70(sp) 60 | bne- cr1, branch_0x80341be0 61 | stfd f1, 0x28(sp) 62 | stfd f2, 0x30(sp) 63 | stfd f3, 0x38(sp) 64 | stfd f4, 0x40(sp) 65 | stfd f5, 0x48(sp) 66 | stfd f6, 0x50(sp) 67 | stfd f7, 0x58(sp) 68 | stfd f8, 0x60(sp) 69 | branch_0x80341be0: 70 | stw r3, 0x8(sp) 71 | stw r4, 0xc(sp) 72 | stw r5, 0x10(sp) 73 | stw r6, 0x14(sp) 74 | stw r7, 0x18(sp) 75 | stw r8, 0x1c(sp) 76 | stw r9, 0x20(sp) 77 | stw r10, 0x24(sp) 78 | addi sp, sp, 0x70 79 | blr 80 | 81 | -------------------------------------------------------------------------------- /source/JSystem/osdsp.s: -------------------------------------------------------------------------------- 1 | 2 | .globl DSPAddTask 3 | DSPAddTask: # 0x80337780 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stmw r30, 0x10(sp) 8 | addi r30, r3, 0x0 9 | lwz r0, R13Off_m0x5ab0(r13) 10 | cmplwi r0, 0x0 11 | bne- branch_0x803377b8 12 | lis r3, unk_803aa7d8@ha 13 | addi r3, r3, unk_803aa7d8@l 14 | crxor 6, 6, 6 15 | bl OSReport 16 | li r3, 0x0 17 | b branch_0x803377e8 18 | 19 | branch_0x803377b8: 20 | bl OSDisableInterrupts 21 | addi r0, r3, 0x0 22 | addi r3, r30, 0x0 23 | mr r31, r0 24 | bl __DSP_insert_task 25 | li r3, 0x0 26 | li r0, 0x1 27 | stw r3, 0x0(r30) 28 | mr r3, r31 29 | stw r0, 0x8(r30) 30 | bl OSRestoreInterrupts 31 | mr r3, r30 32 | branch_0x803377e8: 33 | lwz r0, 0x1c(sp) 34 | lmw r30, 0x10(sp) 35 | addi sp, sp, 0x18 36 | mtlr r0 37 | blr 38 | 39 | branch_0x803377fc: 40 | .long 0x0 41 | 42 | .globl DSPAddPriorTask__FP15STRUCT_DSP_TASK 43 | DSPAddPriorTask__FP15STRUCT_DSP_TASK: # 0x80337800 44 | mflr r0 45 | stw r0, 0x4(sp) 46 | stwu sp, -0x18(sp) 47 | stmw r30, 0x10(sp) 48 | addi r30, r3, 0x0 49 | lwz r0, R13Off_m0x5ab0(r13) 50 | cmplwi r0, 0x0 51 | beq- branch_0x80337834 52 | lis r3, unk_803aa7f4@ha 53 | addi r3, r3, unk_803aa7f4@l 54 | crxor 6, 6, 6 55 | bl OSReport 56 | b branch_0x80337860 57 | 58 | branch_0x80337834: 59 | bl OSDisableInterrupts 60 | stw r30, R13Off_m0x5ab0(r13) 61 | li r4, 0x0 62 | addi r31, r3, 0x0 63 | li r0, 0x1 64 | stw r4, 0x0(r30) 65 | addi r3, r30, 0x0 66 | stw r0, 0x8(r30) 67 | bl __DSP_boot_task 68 | mr r3, r31 69 | bl OSRestoreInterrupts 70 | branch_0x80337860: 71 | lwz r0, 0x1c(sp) 72 | lmw r30, 0x10(sp) 73 | addi sp, sp, 0x18 74 | mtlr r0 75 | blr 76 | 77 | branch_0x80337874: 78 | .long 0x0 79 | .long 0x0 80 | .long 0x0 81 | -------------------------------------------------------------------------------- /source/JSystem/JKRDisposer.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__11JKRDisposerFv 3 | __ct__11JKRDisposerFv: # 0x802bfff4 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | stw r30, 0x10(sp) 9 | stw r3, 0x8(sp) 10 | lis r3, __vvt__11JKRDisposer@ha 11 | addi r0, r3, __vvt__11JKRDisposer@l 12 | lwz r30, 0x8(sp) 13 | addi r31, r30, 0x8 14 | stw r0, 0x0(r30) 15 | addi r3, r31, 0x0 16 | addi r4, r30, 0x0 17 | bl __ct__10JSUPtrLinkFPv 18 | mr r3, r30 19 | bl findFromRoot__7JKRHeapFPv 20 | stw r3, 0x4(r30) 21 | lwz r3, 0x4(r30) 22 | cmplwi r3, 0x0 23 | beq- branch_0x802c0050 24 | addi r3, r3, 0x58 25 | addi r4, r31, 0x0 26 | bl append__10JSUPtrListFP10JSUPtrLink 27 | branch_0x802c0050: 28 | lwz r0, 0x1c(sp) 29 | lwz r3, 0x8(sp) 30 | lwz r31, 0x14(sp) 31 | mtlr r0 32 | lwz r30, 0x10(sp) 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl __dt__11JKRDisposerFv 38 | __dt__11JKRDisposerFv: # 0x802c006c 39 | mflr r0 40 | stw r0, 0x4(sp) 41 | stwu sp, -0x18(sp) 42 | stw r31, 0x14(sp) 43 | addi r31, r4, 0x0 44 | stw r30, 0x10(sp) 45 | mr. r30, r3 46 | beq- branch_0x802c00d4 47 | lis r3, __vvt__11JKRDisposer@ha 48 | addi r0, r3, __vvt__11JKRDisposer@l 49 | stw r0, 0x0(r30) 50 | lwz r3, 0x4(r30) 51 | cmplwi r3, 0x0 52 | beq- branch_0x802c00b0 53 | addi r3, r3, 0x58 54 | addi r4, r30, 0x8 55 | bl remove__10JSUPtrListFP10JSUPtrLink 56 | branch_0x802c00b0: 57 | addic. r0, r30, 0x8 58 | beq- branch_0x802c00c4 59 | addi r3, r30, 0x8 60 | li r4, 0x0 61 | bl __dt__10JSUPtrLinkFv 62 | branch_0x802c00c4: 63 | extsh. r0, r31 64 | ble- branch_0x802c00d4 65 | mr r3, r30 66 | bl __dl__FPv 67 | branch_0x802c00d4: 68 | lwz r0, 0x1c(sp) 69 | mr r3, r30 70 | lwz r31, 0x14(sp) 71 | lwz r30, 0x10(sp) 72 | mtlr r0 73 | addi sp, sp, 0x18 74 | blr 75 | 76 | -------------------------------------------------------------------------------- /source/System/StageUtil.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMS_getShineIDofExStage__FUc 3 | SMS_getShineIDofExStage__FUc: # 0x802a8a98 4 | clrlwi r4, r3, 24 5 | cmplwi r4, 0x14 6 | ble- branch_0x802a8aac 7 | cmplwi r4, 0x35 8 | blt- branch_0x802a8ab4 9 | branch_0x802a8aac: 10 | li r3, 0xff 11 | blr 12 | 13 | branch_0x802a8ab4: 14 | lis r3, exShineTable@ha 15 | addi r0, r3, exShineTable@l 16 | add r3, r0, r4 17 | lbz r3, -0x15(r3) 18 | blr 19 | 20 | 21 | .globl SMS_getShineStage__FUc 22 | SMS_getShineStage__FUc: # 0x802a8ac8 23 | lis r4, shineStageTable@ha 24 | clrlwi r3, r3, 24 25 | addi r0, r4, shineStageTable@l 26 | add r3, r0, r3 27 | lbz r3, 0x0(r3) 28 | blr 29 | 30 | 31 | .globl SMS_isOptionMap__Fv 32 | SMS_isOptionMap__Fv: # 0x802a8ae0 33 | lwz r4, R13Off_m0x6048(r13) 34 | li r3, 0x0 35 | lbz r0, 0x7c(r4) 36 | cmplwi r0, 0xf 37 | bnelr- 38 | 39 | li r3, 0x1 40 | blr 41 | 42 | 43 | .globl SMS_isDivingMap__Fv 44 | SMS_isDivingMap__Fv: # 0x802a8afc 45 | lwz r4, R13Off_m0x6048(r13) 46 | li r3, 0x0 47 | lbz r0, 0x7c(r4) 48 | cmplwi r0, 0x39 49 | bne- branch_0x802a8b14 50 | li r3, 0x1 51 | branch_0x802a8b14: 52 | cmplwi r0, 0x2c 53 | bne- branch_0x802a8b20 54 | li r3, 0x1 55 | branch_0x802a8b20: 56 | cmplwi r0, 0x10 57 | bnelr- 58 | 59 | li r3, 0x1 60 | blr 61 | 62 | 63 | .globl SMS_isMultiPlayerMap__Fv 64 | SMS_isMultiPlayerMap__Fv: # 0x802a8b30 65 | lwz r4, R13Off_m0x6048(r13) 66 | li r3, 0x0 67 | lbz r0, 0x7c(r4) 68 | cmplwi r0, 0xc 69 | bnelr- 70 | 71 | lbz r0, 0x7d(r4) 72 | cmplwi r0, 0x0 73 | bnelr- 74 | 75 | li r3, 0x1 76 | blr 77 | 78 | 79 | .globl SMS_isExMap__Fv 80 | SMS_isExMap__Fv: # 0x802a8b58 81 | lis r3, gpApplication@ha 82 | addi r3, r3, gpApplication@l 83 | lbz r0, 0xe(r3) 84 | li r3, 0x0 85 | cmplwi r0, 0x14 86 | blelr- 87 | 88 | cmplwi r0, 0x35 89 | bgelr- 90 | 91 | li r3, 0x1 92 | blr 93 | 94 | -------------------------------------------------------------------------------- /source/MarioUtil/TexUtil.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SMS_ChangeTextureAll__FP12J3DModelDataPCcRC7ResTIMG 3 | SMS_ChangeTextureAll__FP12J3DModelDataPCcRC7ResTIMG: # 0x80236c3c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x40(sp) 7 | stw r31, 0x3c(sp) 8 | li r31, 0x0 9 | stw r30, 0x38(sp) 10 | addi r30, r5, 0x0 11 | stw r29, 0x34(sp) 12 | addi r29, r4, 0x0 13 | stw r28, 0x30(sp) 14 | addi r28, r3, 0x0 15 | b branch_0x80236d24 16 | 17 | branch_0x80236c6c: 18 | lwz r3, 0xa8(r28) 19 | mr r4, r31 20 | bl getName__10JUTNameTabCFUs 21 | addi r4, r3, 0x0 22 | addi r3, r29, 0x0 23 | bl strcmp 24 | cmpwi r3, 0x0 25 | bne- branch_0x80236d20 26 | lwz r6, 0xac(r28) 27 | clrlslwi r7, r31, 16, 5 28 | lwz r3, 0x0(r30) 29 | li r4, 0x20 30 | lwz r5, 0x4(r6) 31 | lwz r0, 0x4(r30) 32 | add r5, r5, r7 33 | stw r3, 0x0(r5) 34 | stw r0, 0x4(r5) 35 | lwz r3, 0x8(r30) 36 | lwz r0, 0xc(r30) 37 | stw r3, 0x8(r5) 38 | stw r0, 0xc(r5) 39 | lwz r3, 0x10(r30) 40 | lwz r0, 0x14(r30) 41 | stw r3, 0x10(r5) 42 | stw r0, 0x14(r5) 43 | lwz r3, 0x18(r30) 44 | lwz r0, 0x1c(r30) 45 | stw r3, 0x18(r5) 46 | stw r0, 0x1c(r5) 47 | lwz r0, 0x4(r6) 48 | add r3, r0, r7 49 | lwz r0, 0x1c(r3) 50 | add r0, r30, r0 51 | subf r0, r3, r0 52 | stw r0, 0x1c(r3) 53 | lwz r0, 0x4(r6) 54 | add r3, r0, r7 55 | lwz r0, 0xc(r3) 56 | add r0, r30, r0 57 | subf r0, r3, r0 58 | stw r0, 0xc(r3) 59 | lwz r3, 0xac(r28) 60 | lwz r0, 0x4(r3) 61 | add r3, r0, r7 62 | bl DCFlushRange 63 | branch_0x80236d20: 64 | addi r31, r31, 0x1 65 | branch_0x80236d24: 66 | lwz r3, 0xac(r28) 67 | clrlwi r4, r31, 16 68 | lhz r0, 0x0(r3) 69 | cmplw r4, r0 70 | blt+ branch_0x80236c6c 71 | lwz r0, 0x44(sp) 72 | lwz r31, 0x3c(sp) 73 | lwz r30, 0x38(sp) 74 | mtlr r0 75 | lwz r29, 0x34(sp) 76 | lwz r28, 0x30(sp) 77 | addi sp, sp, 0x40 78 | blr 79 | 80 | -------------------------------------------------------------------------------- /source/JSystem/JAIEntryStream.s: -------------------------------------------------------------------------------- 1 | 2 | .globl storeBuffer__14JAIStreamEntryFPP8JAISoundP8JAIActorUlUlUcPv 3 | storeBuffer__14JAIStreamEntryFPP8JAISoundP8JAIActorUlUlUcPv: # 0x80305104 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x50(sp) 7 | stmw r23, 0x2c(sp) 8 | mr r23, r3 9 | addi r26, r6, 0x0 10 | addi r29, r9, 0x0 11 | addi r25, r5, 0x0 12 | addi r24, r4, 0x0 13 | addi r27, r7, 0x0 14 | addi r28, r8, 0x0 15 | addi r5, r26, 0x0 16 | addi r6, r29, 0x0 17 | lwz r3, 0x0(r3) 18 | lwz r30, 0x0(r3) 19 | addi r3, r23, 0x0 20 | bl checkSoundHandle__8JAIEntryFPP8JAISoundUlPv 21 | cmplwi r3, 0x0 22 | bne- branch_0x803051f0 23 | lwz r3, 0x0(r23) 24 | addi r4, r30, 0x21c 25 | bl getControllerHandle__8JAIBasicFP13JAILinkBuffer 26 | mr. r31, r3 27 | bne- branch_0x80305170 28 | li r0, 0x0 29 | stw r0, 0x0(r24) 30 | b branch_0x803051f0 31 | 32 | branch_0x80305170: 33 | lwz r3, 0x0(r23) 34 | bl getStreamParameter__8JAIBasicFv 35 | stw r3, 0x38(r31) 36 | lwz r0, 0x38(r31) 37 | cmplwi r0, 0x0 38 | bne- branch_0x80305194 39 | li r0, 0x0 40 | stw r0, 0x0(r24) 41 | b branch_0x803051f0 42 | 43 | branch_0x80305194: 44 | mr r3, r31 45 | bl getStreamParameter__8JAISoundFv 46 | addi r4, r3, 0x0 47 | addi r3, r30, 0x0 48 | bl initStreamParameter__7JAIDataFP18JAIStreamParameter 49 | li r0, 0x1 50 | stb r0, 0x1(r31) 51 | li r3, 0xa 52 | li r0, 0x0 53 | stb r3, 0x2(r31) 54 | addi r3, r23, 0x0 55 | addi r4, r31, 0x0 56 | lwz r7, 0x0(r23) 57 | addi r5, r24, 0x0 58 | addi r6, r25, 0x0 59 | lwz r9, 0x0(r7) 60 | addi r7, r26, 0x0 61 | addi r8, r27, 0x0 62 | lwz r11, 0x184(r9) 63 | addi r9, r28, 0x0 64 | addi r10, r29, 0x0 65 | stb r0, 0x2(r11) 66 | bl initSoundParameter__8JAIEntryFP8JAISoundPP8JAISoundP8JAIActorUlUlUcPv 67 | branch_0x803051f0: 68 | lmw r23, 0x2c(sp) 69 | lwz r0, 0x54(sp) 70 | addi sp, sp, 0x50 71 | mtlr r0 72 | blr 73 | 74 | -------------------------------------------------------------------------------- /source/si/SISamplingRate.s: -------------------------------------------------------------------------------- 1 | 2 | .globl SISetSamplingRate 3 | SISetSamplingRate: # 0x803699f8 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x20(sp) 7 | stw r31, 0x1c(sp) 8 | stw r30, 0x18(sp) 9 | stw r29, 0x14(sp) 10 | addi r29, r3, 0x0 11 | cmplwi r29, 0xb 12 | lis r3, XYNTSC@ha 13 | addi r31, r3, XYNTSC@l 14 | ble- branch_0x80369a28 15 | li r29, 0xb 16 | branch_0x80369a28: 17 | bl OSDisableInterrupts 18 | stw r29, R13Off_m0x5760(r13) 19 | mr r30, r3 20 | bl VIGetTvFormat 21 | cmpwi r3, 0x2 22 | beq- branch_0x80369a60 23 | bge- branch_0x80369a54 24 | cmpwi r3, 0x0 25 | beq- branch_0x80369a60 26 | bge- branch_0x80369a68 27 | b branch_0x80369a70 28 | 29 | branch_0x80369a54: 30 | cmpwi r3, 0x5 31 | beq- branch_0x80369a60 32 | b branch_0x80369a70 33 | 34 | branch_0x80369a60: 35 | mr r4, r31 36 | b branch_0x80369a84 37 | 38 | branch_0x80369a68: 39 | addi r4, r31, 0x30 40 | b branch_0x80369a84 41 | 42 | branch_0x80369a70: 43 | addi r3, r31, 0x60 44 | crxor 6, 6, 6 45 | bl OSReport 46 | li r29, 0x0 47 | addi r4, r31, 0x0 48 | branch_0x80369a84: 49 | lis r3, 0xcc00 50 | lhz r0, 0x206c(r3) 51 | clrlwi. r0, r0, 31 52 | beq- branch_0x80369a9c 53 | li r5, 0x2 54 | b branch_0x80369aa0 55 | 56 | branch_0x80369a9c: 57 | li r5, 0x1 58 | branch_0x80369aa0: 59 | slwi r3, r29, 2 60 | lhzx r0, r4, r3 61 | add r3, r4, r3 62 | lbz r4, 0x2(r3) 63 | mullw r3, r5, r0 64 | bl SISetXY 65 | mr r3, r30 66 | bl OSRestoreInterrupts 67 | lwz r0, 0x24(sp) 68 | lwz r31, 0x1c(sp) 69 | lwz r30, 0x18(sp) 70 | lwz r29, 0x14(sp) 71 | addi sp, sp, 0x20 72 | mtlr r0 73 | blr 74 | 75 | 76 | .globl SIRefreshSamplingRate 77 | SIRefreshSamplingRate: # 0x80369adc 78 | mflr r0 79 | stw r0, 0x4(sp) 80 | stwu sp, -0x8(sp) 81 | lwz r3, R13Off_m0x5760(r13) 82 | bl SISetSamplingRate 83 | lwz r0, 0xc(sp) 84 | addi sp, sp, 0x8 85 | mtlr r0 86 | blr 87 | 88 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/abort_exit.s: -------------------------------------------------------------------------------- 1 | 2 | .globl exit 3 | exit: # 0x80338978 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | lwz r0, R13Off_m0x5aa0(r13) 9 | cmpwi r0, 0x0 10 | bne- branch_0x80338a14 11 | lis r3, atexit_funcs@h 12 | addi r31, r3, atexit_funcs@l 13 | b branch_0x803389c0 14 | 15 | branch_0x803389a0: 16 | lwz r3, R13Off_m0x5a9c(r13) 17 | addi r3, r3, -0x1 18 | slwi r0, r3, 2 19 | stw r3, R13Off_m0x5a9c(r13) 20 | add r3, r31, r0 21 | lwz r12, 0x0(r3) 22 | mtlr r12 23 | blrl 24 | branch_0x803389c0: 25 | lwz r0, R13Off_m0x5a9c(r13) 26 | cmpwi r0, 0x0 27 | bgt+ branch_0x803389a0 28 | bl __destroy_global_chain 29 | lis r3, __destroy_global_chain_reference@h 30 | addi r0, r3, __destroy_global_chain_reference@l 31 | mr r31, r0 32 | b branch_0x803389ec 33 | 34 | branch_0x803389e0: 35 | mtlr r12 36 | blrl 37 | addi r31, r31, 0x4 38 | branch_0x803389ec: 39 | lwz r12, 0x0(r31) 40 | cmplwi r12, 0x0 41 | bne+ branch_0x803389e0 42 | lwz r12, R13Off_m0x5a94(r13) 43 | cmplwi r12, 0x0 44 | beq- branch_0x80338a14 45 | mtlr r12 46 | blrl 47 | li r0, 0x0 48 | stw r0, R13Off_m0x5a94(r13) 49 | branch_0x80338a14: 50 | lis r3, __atexit_funcs@h 51 | addi r31, r3, __atexit_funcs@l 52 | b branch_0x80338a40 53 | 54 | branch_0x80338a20: 55 | lwz r3, R13Off_m0x5a98(r13) 56 | addi r3, r3, -0x1 57 | slwi r0, r3, 2 58 | stw r3, R13Off_m0x5a98(r13) 59 | add r3, r31, r0 60 | lwz r12, 0x0(r3) 61 | mtlr r12 62 | blrl 63 | branch_0x80338a40: 64 | lwz r0, R13Off_m0x5a98(r13) 65 | cmpwi r0, 0x0 66 | bgt+ branch_0x80338a20 67 | bl __kill_critical_regions 68 | lwz r12, R13Off_m0x5a90(r13) 69 | cmplwi r12, 0x0 70 | beq- branch_0x80338a6c 71 | mtlr r12 72 | blrl 73 | li r0, 0x0 74 | stw r0, R13Off_m0x5a90(r13) 75 | branch_0x80338a6c: 76 | bl _ExitProcess 77 | lwz r0, 0x1c(sp) 78 | lwz r31, 0x14(sp) 79 | addi sp, sp, 0x18 80 | mtlr r0 81 | blr 82 | 83 | -------------------------------------------------------------------------------- /source/Strategic/smplcharacter.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__13TSMSSmplCharaFv 3 | __dt__13TSMSSmplCharaFv: # 0x80223d68 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x80223dcc 12 | lis r3, __vvt__13TSMSSmplChara@ha 13 | addi r0, r3, __vvt__13TSMSSmplChara@l 14 | stw r0, 0x0(r30) 15 | lwz r3, 0xc(r30) 16 | bl __dla__FPv 17 | cmplwi r30, 0x0 18 | beq- branch_0x80223dbc 19 | lis r3, __vvt__Q26JDrama10TCharacter@ha 20 | addi r0, r3, __vvt__Q26JDrama10TCharacter@l 21 | stw r0, 0x0(r30) 22 | addi r3, r30, 0x0 23 | li r4, 0x0 24 | bl __dt__Q26JDrama8TNameRefFv 25 | branch_0x80223dbc: 26 | extsh. r0, r31 27 | ble- branch_0x80223dcc 28 | mr r3, r30 29 | bl __dl__FPv 30 | branch_0x80223dcc: 31 | lwz r0, 0x1c(sp) 32 | mr r3, r30 33 | lwz r31, 0x14(sp) 34 | lwz r30, 0x10(sp) 35 | mtlr r0 36 | addi sp, sp, 0x18 37 | blr 38 | 39 | 40 | .globl getRes__13TSMSSmplCharaCFPCc 41 | getRes__13TSMSSmplCharaCFPCc: # 0x80223de8 42 | mflr r0 43 | addi r4, r3, 0x0 44 | stw r0, 0x4(sp) 45 | crxor 6, 6, 6 46 | addi r5, r2, R2Off_m0x1838 47 | stwu sp, -0x110(sp) 48 | addi r3, sp, 0x10 49 | lwz r6, 0xc(r4) 50 | addi r7, r3, 0x0 51 | li r4, 0x100 52 | bl snprintf 53 | addi r3, sp, 0x10 54 | bl getGlbResource__13JKRFileLoaderFPCc 55 | lwz r0, 0x114(sp) 56 | addi sp, sp, 0x110 57 | mtlr r0 58 | blr 59 | 60 | 61 | .globl load__13TSMSSmplCharaFR20JSUMemoryInputStream 62 | load__13TSMSSmplCharaFR20JSUMemoryInputStream: # 0x80223e2c 63 | mflr r0 64 | stw r0, 0x4(sp) 65 | stwu sp, -0x18(sp) 66 | stw r31, 0x14(sp) 67 | addi r31, r4, 0x0 68 | stw r30, 0x10(sp) 69 | addi r30, r3, 0x0 70 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 71 | lwz r4, 0xc(r30) 72 | addi r3, r31, 0x0 73 | li r5, 0x100 74 | bl readString__14JSUInputStreamFPcUs 75 | lwz r0, 0x1c(sp) 76 | lwz r31, 0x14(sp) 77 | lwz r30, 0x10(sp) 78 | mtlr r0 79 | addi sp, sp, 0x18 80 | blr 81 | 82 | -------------------------------------------------------------------------------- /tools/util/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | import re 3 | 4 | from attr import temporary_attr, AttrDict 5 | from cache import cached_property 6 | from util.io import BinaryIO 7 | 8 | 9 | def lget(lst, idx, default=None): 10 | """Gets an item from a list if the list supports it. Otherwise it returns 11 | the default value. 12 | 13 | Parameters 14 | ---------- 15 | lst : list 16 | Target list 17 | idx : int 18 | Index of list to get 19 | default : mixed 20 | Value to return if idx isn't in lst 21 | 22 | Returns 23 | ------- 24 | value : mixed 25 | lst[idx] if available, else default. 26 | """ 27 | try: 28 | return lst[idx] 29 | except IndexError: 30 | return default 31 | 32 | 33 | def gcf(a, b): 34 | """Return the Greatest Common Factor of two numbers 35 | 36 | Parameters 37 | ---------- 38 | a : int 39 | b : int 40 | 41 | Returns 42 | ------- 43 | gcf : int 44 | """ 45 | while b: 46 | a, b = b, a % b 47 | return a 48 | 49 | 50 | def lcm(a, b): 51 | """Return the Least Common Multiple of two numbers 52 | 53 | Parameters 54 | ---------- 55 | a : int 56 | b : int 57 | 58 | Returns 59 | ------- 60 | lcm : int 61 | """ 62 | return a*b / gcf(a, b) 63 | 64 | 65 | def subclasses(cls, recursive=False): 66 | """Get all subclasses of a class. 67 | 68 | Parameters 69 | ---------- 70 | cls : class 71 | Target class 72 | recursive : Bool, optional 73 | Get subclasses of subclasses as well 74 | """ 75 | subs = cls.__subclasses__() 76 | if recursive: 77 | for subcls in subs[:]: 78 | subs += subclasses(subcls, True) 79 | return subs 80 | 81 | 82 | def natsort_key(key): 83 | """Produce a natural key for sorting 84 | 85 | Returns 86 | ------- 87 | key : list 88 | Sortable key 89 | 90 | Examples 91 | -------- 92 | >>> lst = ['2.png', '1.png', '10.png'] 93 | >>> sorted(lst, key=natsort_key) 94 | ['1.png', '2.png', '10.png'] 95 | """ 96 | def get_val(chunk): 97 | try: 98 | return int(chunk) 99 | except: 100 | return chunk 101 | return [get_val(chunk) for chunk in re.split('([0-9]+)', key)] 102 | 103 | 104 | __all__ = ['cached_property', 'temporary_attr', 'AttrDict', 'BinaryIO', 105 | 'lget', 'gcf', 'lcm', 'natsort_key'] 106 | -------------------------------------------------------------------------------- /source/JSystem/JUTPalette.s: -------------------------------------------------------------------------------- 1 | 2 | .globl storeTLUT__10JUTPaletteF7_GXTlutP7ResTLUT 3 | storeTLUT__10JUTPaletteF7_GXTlutP7ResTLUT: # 0x802ca0b0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x28(sp) 7 | stw r31, 0x24(sp) 8 | mr. r31, r5 9 | stw r30, 0x20(sp) 10 | addi r30, r4, 0x0 11 | stw r29, 0x1c(sp) 12 | addi r29, r3, 0x0 13 | bne- branch_0x802ca0f4 14 | lis r3, unk_803a9ed0@ha 15 | crxor 6, 6, 6 16 | lis r4, unk_803a9ee0@ha 17 | addi r5, r4, unk_803a9ee0@l 18 | addi r3, r3, unk_803a9ed0@l 19 | li r4, 0x23 20 | bl OSPanic 21 | branch_0x802ca0f4: 22 | stw r30, 0xc(r29) 23 | addi r0, r31, 0x20 24 | addi r3, r29, 0x0 25 | lbz r4, 0x0(r31) 26 | stw r4, 0x10(r29) 27 | lbz r4, 0x1(r31) 28 | stw r4, 0x1c(r29) 29 | lhz r4, 0x2(r31) 30 | sth r4, 0x18(r29) 31 | stw r0, 0x14(r29) 32 | lwz r4, 0x14(r29) 33 | lwz r5, 0x10(r29) 34 | lhz r6, 0x18(r29) 35 | bl GXInitTlutObj 36 | lwz r0, 0x2c(sp) 37 | lwz r31, 0x24(sp) 38 | lwz r30, 0x20(sp) 39 | mtlr r0 40 | lwz r29, 0x1c(sp) 41 | addi sp, sp, 0x28 42 | blr 43 | 44 | 45 | .globl __ct__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv 46 | __ct__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv: # 0x802ca148 47 | mflr r0 48 | stw r0, 0x4(sp) 49 | stwu sp, -0x28(sp) 50 | stw r31, 0x24(sp) 51 | mr r31, r3 52 | stw r4, 0xc(r3) 53 | stw r5, 0x10(r31) 54 | stw r6, 0x1c(r31) 55 | sth r7, 0x18(r31) 56 | stw r8, 0x14(r31) 57 | lwz r4, 0x14(r31) 58 | lwz r5, 0x10(r31) 59 | lhz r6, 0x18(r31) 60 | bl GXInitTlutObj 61 | lwz r0, 0x2c(sp) 62 | mr r3, r31 63 | lwz r31, 0x24(sp) 64 | addi sp, sp, 0x28 65 | mtlr r0 66 | blr 67 | 68 | 69 | .globl load__10JUTPaletteFv 70 | load__10JUTPaletteFv: # 0x802ca198 71 | mflr r0 72 | stw r0, 0x4(sp) 73 | stwu sp, -0x18(sp) 74 | stw r31, 0x14(sp) 75 | lhz r5, 0x18(r3) 76 | neg r4, r5 77 | subic r0, r4, 0x1 78 | cmplwi r5, 0x0 79 | subfe r31, r0, r4 80 | beq- branch_0x802ca1c8 81 | lwz r4, 0xc(r3) 82 | bl GXLoadTlut 83 | branch_0x802ca1c8: 84 | lwz r0, 0x1c(sp) 85 | mr r3, r31 86 | lwz r31, 0x14(sp) 87 | addi sp, sp, 0x18 88 | mtlr r0 89 | blr 90 | 91 | -------------------------------------------------------------------------------- /source/System/marerr.s: -------------------------------------------------------------------------------- 1 | 2 | .globl MarErrInit__Fv 3 | MarErrInit__Fv: # 0x8029cfc0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x20(sp) 7 | stw r31, 0x1c(sp) 8 | bl start__14JUTDirectPrintFv 9 | addi r31, r3, 0x0 10 | li r3, 0x0 11 | bl createManager__17JUTConsoleManagerFP7JKRHeap 12 | mr r3, r31 13 | bl create__12JUTExceptionFP14JUTDirectPrint 14 | li r3, 0x1400 15 | bl __nwa__FUl 16 | li r4, 0x1400 17 | bl createConsole__12JUTExceptionFPvUl 18 | lis r3, sStrMapFile@h 19 | addi r3, r3, sStrMapFile@l 20 | bl appendMapFile__12JUTExceptionFPc 21 | lis r3, MarErrException__FUsP9OSContextUlUl@ha 22 | addi r3, r3, MarErrException__FUsP9OSContextUlUl@l 23 | bl setPreUserCallback__12JUTExceptionFPFUsP9OSContextUlUl_v 24 | lwz r4, R13Off_m0x5f08(r13) 25 | li r3, -0x1 26 | li r0, 0x8 27 | stw r3, 0x68(r4) 28 | stw r3, 0x6c(r4) 29 | lwz r3, R13Off_m0x5f08(r13) 30 | stw r0, 0x80(r3) 31 | lwz r0, 0x24(sp) 32 | lwz r31, 0x1c(sp) 33 | addi sp, sp, 0x20 34 | mtlr r0 35 | blr 36 | 37 | 38 | .globl MarErrException__FUsP9OSContextUlUl 39 | MarErrException__FUsP9OSContextUlUl: # 0x8029d040 40 | mflr r0 41 | lis r3, cDispExceptionCommand__9_unnamed_@h 42 | stw r0, 0x4(sp) 43 | stwu sp, -0x30(sp) 44 | stw r31, 0x2c(sp) 45 | addi r31, r3, cDispExceptionCommand__9_unnamed_@l 46 | stw r30, 0x28(sp) 47 | stw r29, 0x24(sp) 48 | li r29, 0x0 49 | b branch_0x8029d0ac 50 | 51 | branch_0x8029d068: 52 | li r3, 0x64 53 | bl waitTime__12JUTExceptionFl 54 | lwz r3, R13Off_m0x5f08(r13) 55 | addi r4, sp, 0x18 56 | li r5, 0x0 57 | bl readPad__12JUTExceptionFPUlPUl 58 | lwz r3, 0x18(sp) 59 | cmplwi r3, 0x0 60 | beq- branch_0x8029d0ac 61 | lwz r0, 0x0(r30) 62 | clrlwi r3, r3, 16 63 | cmplw r3, r0 64 | bne- branch_0x8029d0a4 65 | addi r0, r29, 0x1 66 | b branch_0x8029d0a8 67 | 68 | branch_0x8029d0a4: 69 | li r0, 0x0 70 | branch_0x8029d0a8: 71 | mr r29, r0 72 | branch_0x8029d0ac: 73 | slwi r0, r29, 2 74 | add r30, r31, r0 75 | lwz r0, 0x0(r30) 76 | cmplwi r0, 0x0 77 | bne+ branch_0x8029d068 78 | lwz r0, 0x34(sp) 79 | lwz r31, 0x2c(sp) 80 | lwz r30, 0x28(sp) 81 | mtlr r0 82 | lwz r29, 0x24(sp) 83 | addi sp, sp, 0x30 84 | blr 85 | 86 | -------------------------------------------------------------------------------- /source/NPC/NpcThrow.s: -------------------------------------------------------------------------------- 1 | 2 | .globl throwMario__9TNpcThrowFP9THitActor 3 | throwMario__9TNpcThrowFP9THitActor: # 0x80215004 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x48(sp) 7 | stw r31, 0x44(sp) 8 | mr r31, r4 9 | stw r30, 0x40(sp) 10 | mr r30, r3 11 | lfs f0, -0x1a18(r2) 12 | lfs f2, 0x4(r3) 13 | fcmpo cr0, f2, f0 14 | cror 2, 1, 2 15 | bne- branch_0x8021504c 16 | lfs f1, -0x1a14(r2) 17 | lfs f0, -0x1a10(r2) 18 | stfs f1, 0x34(sp) 19 | stfs f0, 0x38(sp) 20 | stfs f1, 0x3c(sp) 21 | b branch_0x802150b0 22 | 23 | branch_0x8021504c: 24 | lfs f1, -0x1a14(r2) 25 | fcmpo cr0, f2, f1 26 | cror 2, 0, 2 27 | bne- branch_0x80215070 28 | stfs f1, 0x34(sp) 29 | lfs f0, -0x1a0c(r2) 30 | stfs f1, 0x38(sp) 31 | stfs f0, 0x3c(sp) 32 | b branch_0x802150b0 33 | 34 | branch_0x80215070: 35 | lfs f0, -0x1a08(r2) 36 | fmuls f1, f0, f2 37 | bl CLBRoundf_s___Ff 38 | lwz r0, R13Off_m0x5eac(r13) 39 | clrlwi r3, r3, 16 40 | lwz r4, R13Off_m0x5ea4(r13) 41 | sraw r0, r3, r0 42 | lwz r3, R13Off_m0x5ea8(r13) 43 | slwi r0, r0, 2 44 | lfs f0, -0x1a14(r2) 45 | lfsx f1, r4, r0 46 | lfsx f2, r3, r0 47 | fneg f1, f1 48 | stfs f0, 0x34(sp) 49 | stfs f2, 0x38(sp) 50 | stfs f1, 0x3c(sp) 51 | branch_0x802150b0: 52 | lfs f1, 0x34(r31) 53 | lfs f0, -0x1a08(r2) 54 | fmuls f1, f0, f1 55 | bl CLBRoundf_s___Ff 56 | lwz r0, R13Off_m0x5eac(r13) 57 | clrlwi r4, r3, 16 58 | lfs f4, 0x34(sp) 59 | addi r3, r31, 0x0 60 | sraw r4, r4, r0 61 | slwi r5, r4, 2 62 | lwz r0, R13Off_m0x5ea8(r13) 63 | lwz r4, R13Off_m0x5ea4(r13) 64 | fneg f3, f4 65 | add r6, r0, r5 66 | lfs f1, 0x3c(sp) 67 | lfs f0, 0x0(r6) 68 | add r5, r4, r5 69 | fmuls f0, f1, f0 70 | lfs f2, 0x0(r5) 71 | li r4, 0x7 72 | fmadds f0, f4, f2, f0 73 | stfs f0, 0x34(sp) 74 | lfs f1, 0x3c(sp) 75 | lfs f0, 0x0(r5) 76 | lfs f2, 0x0(r6) 77 | fmuls f0, f1, f0 78 | fmadds f0, f3, f2, f0 79 | stfs f0, 0x3c(sp) 80 | bl SMS_SendMessageToMario__FP9THitActorUl 81 | addi r3, sp, 0x34 82 | lfs f1, 0x0(r30) 83 | bl SMS_ThrowMario__FRCQ29JGeometry8TVec3_f_f 84 | lwz r0, 0x4c(sp) 85 | lwz r31, 0x44(sp) 86 | lwz r30, 0x40(sp) 87 | mtlr r0 88 | addi sp, sp, 0x48 89 | blr 90 | 91 | -------------------------------------------------------------------------------- /source/JSystem/JASPlayer_impl.s: -------------------------------------------------------------------------------- 1 | 2 | .globl extend8to16__Q28JASystem6PlayerFUc 3 | extend8to16__Q28JASystem6PlayerFUc: # 0x80319e10 4 | rlwinm. r0, r3, 0, 24, 24 5 | clrlwi r4, r3, 24 6 | beq- branch_0x80319e28 7 | addis r3, r4, 0x1 8 | addi r3, r3, -0x100 9 | blr 10 | 11 | branch_0x80319e28: 12 | mr r3, r4 13 | blr 14 | 15 | 16 | .globl pitchToCent__Q28JASystem6PlayerFff 17 | pitchToCent__Q28JASystem6PlayerFff: # 0x80319e30 18 | stwu sp, -0x30(sp) 19 | lis r0, 0x4330 20 | lfs f0, 0x760(r2) 21 | lfd f3, 0x770(r2) 22 | fmuls f1, f0, f1 23 | lfs f0, 0x764(r2) 24 | fmuls f2, f1, f2 25 | fctiwz f1, f2 26 | fcmpo cr0, f2, f0 27 | stfd f1, 0x20(sp) 28 | lwz r3, 0x24(sp) 29 | stfd f1, 0x28(sp) 30 | extsh r3, r3 31 | xoris r3, r3, 0x8000 32 | lwz r4, 0x2c(sp) 33 | stw r3, 0x1c(sp) 34 | stw r0, 0x18(sp) 35 | lfd f1, 0x18(sp) 36 | fsubs f1, f1, f3 37 | fsubs f1, f2, f1 38 | bge- branch_0x80319e98 39 | fcmpu cr0, f0, f1 40 | beq- branch_0x80319e98 41 | lfs f0, 0x768(r2) 42 | addi r4, r4, -0x1 43 | fadds f1, f1, f0 44 | branch_0x80319e98: 45 | lfs f0, 0x768(r2) 46 | fcmpo cr0, f1, f0 47 | cror 2, 1, 2 48 | bne- branch_0x80319eb0 49 | fsubs f1, f1, f0 50 | addi r4, r4, 0x1 51 | branch_0x80319eb0: 52 | lfs f0, 0x76c(r2) 53 | extsh r0, r4 54 | lis r3, C5BASE_PITCHTABLE__Q28JASystem6Driver@h 55 | fmuls f0, f0, f1 56 | lis r4, s_key_table__Q28JASystem6Player@h 57 | addi r3, r3, C5BASE_PITCHTABLE__Q28JASystem6Driver@l 58 | slwi r0, r0, 2 59 | fctiwz f0, f0 60 | add r3, r3, r0 61 | addi r4, r4, s_key_table__Q28JASystem6Player@l 62 | stfd f0, 0x18(sp) 63 | lfs f0, 0xf0(r3) 64 | lwz r0, 0x1c(sp) 65 | addi sp, sp, 0x30 66 | clrlslwi r0, r0, 16, 2 67 | add r3, r4, r0 68 | lfs f1, 0x0(r3) 69 | fmuls f1, f1, f0 70 | blr 71 | 72 | 73 | .globl getRandomS32__Q28JASystem6PlayerFv 74 | getRandomS32__Q28JASystem6PlayerFv: # 0x80319efc 75 | lis r3, unk_13579bde@ha 76 | lwz r4, R13Off_m0x73b0(r13) 77 | addi r0, r3, unk_13579bde@l 78 | lwz r5, R13Off_m0x73ac(r13) 79 | lis r3, unk_98765432@h 80 | addi r3, r3, unk_98765432@l 81 | stw r5, R13Off_m0x73b0(r13) 82 | mullw r0, r4, r0 83 | mullw r3, r5, r3 84 | srawi r0, r0, 4 85 | add r3, r3, r0 86 | addi r3, r3, 0x1 87 | stw r3, R13Off_m0x73ac(r13) 88 | blr 89 | 90 | -------------------------------------------------------------------------------- /source/JSystem/JUTNameTab.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__10JUTNameTabFPC7ResNTAB 3 | __ct__10JUTNameTabFPC7ResNTAB: # 0x802c9f90 4 | stw r4, 0x0(r3) 5 | lhz r0, 0x0(r4) 6 | slwi r5, r0, 2 7 | addi r0, r5, 0x4 8 | add r0, r4, r0 9 | stw r0, 0x4(r3) 10 | lhz r0, 0x0(r4) 11 | sth r0, 0x8(r3) 12 | blr 13 | 14 | 15 | .globl getIndex__10JUTNameTabCFPCc 16 | getIndex__10JUTNameTabCFPCc: # 0x802c9fb4 17 | mflr r0 18 | stw r0, 0x4(sp) 19 | stwu sp, -0x28(sp) 20 | stmw r26, 0x10(sp) 21 | mr r26, r3 22 | addi r27, r4, 0x0 23 | lwz r5, 0x0(r3) 24 | addi r29, r5, 0x4 25 | bl calcKeyCode__10JUTNameTabCFPCc 26 | clrlwi r30, r3, 16 27 | li r28, 0x0 28 | b branch_0x802ca028 29 | 30 | branch_0x802c9fe4: 31 | lhz r0, 0x0(r29) 32 | cmplw r0, r30 33 | bne- branch_0x802ca020 34 | clrlwi r31, r28, 16 35 | lwz r5, 0x0(r26) 36 | clrlslwi r3, r28, 16, 2 37 | addi r0, r3, 0x6 38 | lhzx r0, r5, r0 39 | addi r4, r27, 0x0 40 | add r3, r5, r0 41 | bl strcmp 42 | cmpwi r3, 0x0 43 | bne- branch_0x802ca020 44 | mr r3, r31 45 | b branch_0x802ca03c 46 | 47 | branch_0x802ca020: 48 | addi r29, r29, 0x4 49 | addi r28, r28, 0x1 50 | branch_0x802ca028: 51 | lhz r0, 0x8(r26) 52 | clrlwi r3, r28, 16 53 | cmplw r3, r0 54 | blt+ branch_0x802c9fe4 55 | li r3, -0x1 56 | branch_0x802ca03c: 57 | lmw r26, 0x10(sp) 58 | lwz r0, 0x2c(sp) 59 | addi sp, sp, 0x28 60 | mtlr r0 61 | blr 62 | 63 | 64 | .globl getName__10JUTNameTabCFUs 65 | getName__10JUTNameTabCFUs: # 0x802ca050 66 | lhz r0, 0x8(r3) 67 | clrlwi r4, r4, 16 68 | cmplw r4, r0 69 | bge- branch_0x802ca078 70 | lwz r5, 0x0(r3) 71 | slwi r0, r4, 2 72 | add r3, r5, r0 73 | lhz r0, 0x6(r3) 74 | add r3, r5, r0 75 | blr 76 | 77 | branch_0x802ca078: 78 | li r3, 0x0 79 | blr 80 | 81 | 82 | .globl calcKeyCode__10JUTNameTabCFPCc 83 | calcKeyCode__10JUTNameTabCFPCc: # 0x802ca080 84 | li r5, 0x0 85 | b branch_0x802ca09c 86 | 87 | branch_0x802ca088: 88 | lbz r3, 0x0(r4) 89 | mulli r0, r5, 0x3 90 | extsb r3, r3 91 | add r5, r3, r0 92 | addi r4, r4, 0x1 93 | branch_0x802ca09c: 94 | lbz r0, 0x0(r4) 95 | extsb. r0, r0 96 | bne+ branch_0x802ca088 97 | clrlwi r3, r5, 16 98 | blr 99 | 100 | -------------------------------------------------------------------------------- /source/mtx/mtx44.s: -------------------------------------------------------------------------------- 1 | 2 | .globl C_MTXPerspective 3 | C_MTXPerspective: # 0x8034a404 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x40(sp) 7 | stfd f31, 0x38(sp) 8 | fmr f31, f4 9 | stfd f30, 0x30(sp) 10 | fmr f30, f3 11 | stfd f29, 0x28(sp) 12 | fmr f29, f2 13 | stw r31, 0x24(sp) 14 | mr r31, r3 15 | lfs f5, 0xb18(r2) 16 | lfs f0, 0xb1c(r2) 17 | fmuls f1, f5, f1 18 | fmuls f1, f0, f1 19 | bl tanf 20 | lfs f3, 0xb08(r2) 21 | fsubs f2, f31, f30 22 | fmuls f0, f31, f30 23 | fdivs f4, f3, f1 24 | fdivs f1, f4, f29 25 | stfs f1, 0x0(r31) 26 | fdivs f3, f3, f2 27 | lfs f2, 0xb10(r2) 28 | stfs f2, 0x4(r31) 29 | stfs f2, 0x8(r31) 30 | stfs f2, 0xc(r31) 31 | stfs f2, 0x10(r31) 32 | fneg f1, f30 33 | fneg f0, f0 34 | stfs f4, 0x14(r31) 35 | fmuls f1, f1, f3 36 | stfs f2, 0x18(r31) 37 | fmuls f0, f3, f0 38 | stfs f2, 0x1c(r31) 39 | stfs f2, 0x20(r31) 40 | stfs f2, 0x24(r31) 41 | stfs f1, 0x28(r31) 42 | stfs f0, 0x2c(r31) 43 | stfs f2, 0x30(r31) 44 | stfs f2, 0x34(r31) 45 | lfs f0, 0xb14(r2) 46 | stfs f0, 0x38(r31) 47 | stfs f2, 0x3c(r31) 48 | lwz r0, 0x44(sp) 49 | lfd f31, 0x38(sp) 50 | lfd f30, 0x30(sp) 51 | lfd f29, 0x28(sp) 52 | lwz r31, 0x24(sp) 53 | addi sp, sp, 0x40 54 | mtlr r0 55 | blr 56 | 57 | 58 | .globl C_MTXOrtho 59 | C_MTXOrtho: # 0x8034a4d4 60 | fsubs f8, f4, f3 61 | lfs f9, 0xb08(r2) 62 | fsubs f0, f1, f2 63 | lfs f7, 0xb0c(r2) 64 | fadds f3, f4, f3 65 | fdivs f10, f9, f8 66 | fdivs f8, f9, f0 67 | fmuls f4, f7, f10 68 | fneg f3, f3 69 | fsubs f0, f6, f5 70 | stfs f4, 0x0(r3) 71 | fadds f1, f1, f2 72 | fmuls f2, f10, f3 73 | lfs f3, 0xb10(r2) 74 | fneg f1, f1 75 | stfs f3, 0x4(r3) 76 | fdivs f4, f9, f0 77 | stfs f3, 0x8(r3) 78 | stfs f2, 0xc(r3) 79 | stfs f3, 0x10(r3) 80 | fmuls f2, f7, f8 81 | fneg f0, f6 82 | fmuls f1, f8, f1 83 | stfs f2, 0x14(r3) 84 | fmuls f0, f0, f4 85 | stfs f3, 0x18(r3) 86 | stfs f1, 0x1c(r3) 87 | stfs f3, 0x20(r3) 88 | stfs f3, 0x24(r3) 89 | lfs f1, 0xb14(r2) 90 | fmuls f1, f1, f4 91 | stfs f1, 0x28(r3) 92 | stfs f0, 0x2c(r3) 93 | stfs f3, 0x30(r3) 94 | stfs f3, 0x34(r3) 95 | stfs f3, 0x38(r3) 96 | stfs f9, 0x3c(r3) 97 | blr 98 | 99 | -------------------------------------------------------------------------------- /source/JSystem/JASInstSense.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getY__Q28JASystem10TInstSenseCFii 3 | getY__Q28JASystem10TInstSenseCFii: # 0x80310110 4 | stwu sp, -0x28(sp) 5 | li r6, 0x0 6 | lbz r0, 0x8(r3) 7 | cmpwi r0, 0x2 8 | beq- branch_0x8031013c 9 | bge- branch_0x80310140 10 | cmpwi r0, 0x1 11 | bge- branch_0x80310134 12 | b branch_0x80310140 13 | 14 | branch_0x80310134: 15 | mr r6, r5 16 | b branch_0x80310140 17 | 18 | branch_0x8031013c: 19 | mr r6, r4 20 | branch_0x80310140: 21 | lbz r0, 0x9(r3) 22 | cmplwi r0, 0x7f 23 | beq- branch_0x80310154 24 | cmplwi r0, 0x0 25 | bne- branch_0x80310190 26 | branch_0x80310154: 27 | xoris r0, r6, 0x8000 28 | lfs f4, 0xc(r3) 29 | stw r0, 0x24(sp) 30 | lis r0, 0x4330 31 | lfs f0, 0x10(r3) 32 | stw r0, 0x20(sp) 33 | lfd f3, 0x678(r2) 34 | fsubs f1, f0, f4 35 | lfd f2, 0x20(sp) 36 | lfs f0, 0x670(r2) 37 | fsubs f2, f2, f3 38 | fmuls f1, f2, f1 39 | fdivs f0, f1, f0 40 | fadds f1, f4, f0 41 | b branch_0x8031022c 42 | 43 | branch_0x80310190: 44 | cmpw r6, r0 45 | bge- branch_0x803101e0 46 | xoris r4, r6, 0x8000 47 | stw r0, 0x1c(sp) 48 | lis r0, 0x4330 49 | lfd f3, 0x678(r2) 50 | stw r4, 0x24(sp) 51 | lfd f1, 0x680(r2) 52 | stw r0, 0x20(sp) 53 | lfs f4, 0xc(r3) 54 | stw r0, 0x18(sp) 55 | lfd f2, 0x20(sp) 56 | lfd f0, 0x18(sp) 57 | fsubs f2, f2, f3 58 | lfs f3, 0x674(r2) 59 | fsubs f0, f0, f1 60 | fsubs f1, f3, f4 61 | fdivs f0, f2, f0 62 | fmadds f1, f1, f0, f4 63 | b branch_0x8031022c 64 | 65 | branch_0x803101e0: 66 | subf r4, r0, r6 67 | lfd f2, 0x678(r2) 68 | subfic r0, r0, 0x7f 69 | lfs f0, 0x10(r3) 70 | xoris r3, r4, 0x8000 71 | lfs f4, 0x674(r2) 72 | xoris r0, r0, 0x8000 73 | stw r3, 0x1c(sp) 74 | lis r3, 0x4330 75 | fsubs f3, f0, f4 76 | stw r0, 0x24(sp) 77 | stw r3, 0x18(sp) 78 | stw r3, 0x20(sp) 79 | lfd f1, 0x18(sp) 80 | lfd f0, 0x20(sp) 81 | fsubs f1, f1, f2 82 | fsubs f0, f0, f2 83 | fdivs f0, f1, f0 84 | fmadds f1, f3, f0, f4 85 | branch_0x8031022c: 86 | addi sp, sp, 0x28 87 | blr 88 | 89 | 90 | .globl setParams__Q28JASystem10TInstSenseFiiff 91 | setParams__Q28JASystem10TInstSenseFiiff: # 0x80310234 92 | stb r4, 0x8(r3) 93 | stb r5, 0x9(r3) 94 | stfs f1, 0xc(r3) 95 | stfs f2, 0x10(r3) 96 | blr 97 | 98 | -------------------------------------------------------------------------------- /source/mtx/mtxvec.s: -------------------------------------------------------------------------------- 1 | 2 | .globl PSMTXMultVec 3 | PSMTXMultVec: # 0x8034a2d0 4 | psq_l f0, 0x0(4), 0, 0 5 | psq_l f2, 0x0(3), 0, 0 6 | psq_l f1, 0x8(4), 1, 0 7 | ps_mul f4, f2, f0 8 | psq_l f3, 0x8(3), 0, 0 9 | ps_madd f5, f3, f1, f4 10 | psq_l f8, 0x10(3), 0, 0 11 | ps_sum0 f6, f5, f6, f5 12 | psq_l f9, 0x18(3), 0, 0 13 | ps_mul f10, f8, f0 14 | psq_st f6, 0x0(5), 1, 0 15 | ps_madd f11, f9, f1, f10 16 | psq_l f2, 0x20(3), 0, 0 17 | ps_sum0 f12, f11, f12, f11 18 | psq_l f3, 0x28(3), 0, 0 19 | ps_mul f4, f2, f0 20 | psq_st f12, 0x4(5), 1, 0 21 | ps_madd f5, f3, f1, f4 22 | ps_sum0 f6, f5, f6, f5 23 | psq_st f6, 0x8(5), 1, 0 24 | blr 25 | 26 | 27 | .globl PSMTXMultVecArray 28 | PSMTXMultVecArray: # 0x8034a324 29 | psq_l f13, 0x0(3), 0, 0 30 | psq_l f12, 0x10(3), 0, 0 31 | addi r6, r6, -0x1 32 | psq_l f11, 0x8(3), 0, 0 33 | ps_merge00 f0, f13, f12 34 | addi r5, r5, -0x4 35 | psq_l f10, 0x18(3), 0, 0 36 | ps_merge11 f1, f13, f12 37 | mtctr r6 38 | psq_l f4, 0x20(3), 0, 0 39 | ps_merge00 f2, f11, f10 40 | psq_l f5, 0x28(3), 0, 0 41 | ps_merge11 f3, f11, f10 42 | psq_l f6, 0x0(4), 0, 0 43 | psq_lu f7, 0x8(4), 1, 0 44 | ps_madds0 f8, f0, f6, f3 45 | ps_mul f9, f4, f6 46 | ps_madds1 f8, f1, f6, f8 47 | ps_madd f10, f5, f7, f9 48 | branch_0x8034a370: 49 | psq_lu f6, 0x4(4), 0, 0 50 | ps_madds0 f12, f2, f7, f8 51 | psq_lu f7, 0x8(4), 1, 0 52 | ps_sum0 f13, f10, f9, f10 53 | ps_madds0 f8, f0, f6, f3 54 | ps_mul f9, f4, f6 55 | psq_stu f12, 0x4(5), 0, 0 56 | ps_madds1 f8, f1, f6, f8 57 | psq_stu f13, 0x8(5), 1, 0 58 | ps_madd f10, f5, f7, f9 59 | bdnz+ branch_0x8034a370 60 | ps_madds0 f12, f2, f7, f8 61 | ps_sum0 f13, f10, f9, f10 62 | psq_stu f12, 0x4(5), 0, 0 63 | psq_stu f13, 0x8(5), 1, 0 64 | blr 65 | 66 | 67 | .globl PSMTXMultVecSR 68 | PSMTXMultVecSR: # 0x8034a3b0 69 | psq_l f0, 0x0(3), 0, 0 70 | psq_l f6, 0x0(4), 0, 0 71 | psq_l f2, 0x10(3), 0, 0 72 | ps_mul f8, f0, f6 73 | psq_l f4, 0x20(3), 0, 0 74 | ps_mul f10, f2, f6 75 | psq_l f7, 0x8(4), 1, 0 76 | ps_mul f12, f4, f6 77 | psq_l f3, 0x18(3), 0, 0 78 | ps_sum0 f8, f8, f8, f8 79 | psq_l f5, 0x28(3), 0, 0 80 | ps_sum0 f10, f10, f10, f10 81 | psq_l f1, 0x8(3), 0, 0 82 | ps_sum0 f12, f12, f12, f12 83 | ps_madd f9, f1, f7, f8 84 | psq_st f9, 0x0(5), 1, 0 85 | ps_madd f11, f3, f7, f10 86 | psq_st f11, 0x4(5), 1, 0 87 | ps_madd f13, f5, f7, f12 88 | psq_st f13, 0x8(5), 1, 0 89 | blr 90 | 91 | -------------------------------------------------------------------------------- /source/JSystem/JUTResource.s: -------------------------------------------------------------------------------- 1 | 2 | .globl getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive 3 | getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive: # 0x802ca3bc 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x28(sp) 7 | stw r31, 0x24(sp) 8 | addi r31, r6, 0x0 9 | stw r30, 0x20(sp) 10 | addi r30, r5, 0x0 11 | li r5, 0x1 12 | stw r29, 0x1c(sp) 13 | addi r29, r4, 0x0 14 | stw r28, 0x18(sp) 15 | addi r28, r3, 0x0 16 | addi r3, r29, 0x0 17 | addi r4, r28, 0x0 18 | bl read__14JSUInputStreamFPvl 19 | addi r3, r29, 0x0 20 | addi r4, r28, 0x1 21 | li r5, 0x1 22 | bl read__14JSUInputStreamFPvl 23 | lbz r5, 0x1(r28) 24 | addi r3, r29, 0x0 25 | addi r4, r28, 0x2 26 | bl read__14JSUInputStreamFPvl 27 | lbz r3, 0x0(r28) 28 | cmplwi r3, 0x2 29 | beq- branch_0x802ca434 30 | addi r0, r3, -0x3 31 | clrlwi r0, r0, 24 32 | cmplwi r0, 0x1 33 | bgt- branch_0x802ca444 34 | branch_0x802ca434: 35 | lbz r0, 0x1(r28) 36 | li r4, 0x0 37 | add r3, r28, r0 38 | stb r4, 0x2(r3) 39 | branch_0x802ca444: 40 | addi r3, r28, 0x0 41 | addi r4, r30, 0x0 42 | addi r5, r31, 0x0 43 | bl getResource__15JUTResReferenceFUlP10JKRArchive 44 | lwz r0, 0x2c(sp) 45 | lwz r31, 0x24(sp) 46 | lwz r30, 0x20(sp) 47 | mtlr r0 48 | lwz r29, 0x1c(sp) 49 | lwz r28, 0x18(sp) 50 | addi sp, sp, 0x28 51 | blr 52 | 53 | 54 | .globl getResource__15JUTResReferenceFUlP10JKRArchive 55 | getResource__15JUTResReferenceFUlP10JKRArchive: # 0x802ca474 56 | mflr r0 57 | mr r6, r3 58 | stw r0, 0x4(sp) 59 | stwu sp, -0x8(sp) 60 | lbz r0, 0x0(r3) 61 | li r3, 0x0 62 | cmpwi r0, 0x3 63 | beq- branch_0x802ca4c4 64 | bge- branch_0x802ca4a8 65 | cmpwi r0, 0x1 66 | beq- branch_0x802ca4dc 67 | bge- branch_0x802ca4b4 68 | b branch_0x802ca4dc 69 | 70 | branch_0x802ca4a8: 71 | cmpwi r0, 0x5 72 | bge- branch_0x802ca4dc 73 | b branch_0x802ca4d4 74 | 75 | branch_0x802ca4b4: 76 | addi r3, r4, 0x0 77 | addi r4, r6, 0x2 78 | bl getGlbResource__10JKRArchiveFUlPCcP10JKRArchive 79 | b branch_0x802ca4dc 80 | 81 | branch_0x802ca4c4: 82 | addi r3, r6, 0x2 83 | addi r4, r5, 0x0 84 | bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader 85 | b branch_0x802ca4dc 86 | 87 | branch_0x802ca4d4: 88 | addi r3, r6, 0x2 89 | bl getGlbResource__13JKRFileLoaderFPCc 90 | branch_0x802ca4dc: 91 | lwz r0, 0xc(sp) 92 | addi sp, sp, 0x8 93 | mtlr r0 94 | blr 95 | 96 | -------------------------------------------------------------------------------- /source/GC2D/Coord2D.s: -------------------------------------------------------------------------------- 1 | 2 | .globl update__8TCoord2DFv 3 | update__8TCoord2DFv: # 0x8013eab0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | li r31, 0x0 9 | stw r30, 0x10(sp) 10 | mr r30, r3 11 | lfs f2, 0x10(r3) 12 | lfs f1, 0x8(r30) 13 | bl CLBChaseGeneralConstantSpecifySpeed_f___FPfff 14 | lfs f2, 0x14(r30) 15 | addi r3, r30, 0x4 16 | lfs f1, 0xc(r30) 17 | bl CLBChaseGeneralConstantSpecifySpeed_f___FPfff 18 | lfs f1, 0x0(r30) 19 | li r0, 0x0 20 | lfs f0, 0x8(r30) 21 | fcmpu cr0, f1, f0 22 | bne- branch_0x8013eb10 23 | lfs f1, 0x4(r30) 24 | lfs f0, 0xc(r30) 25 | fcmpu cr0, f1, f0 26 | bne- branch_0x8013eb10 27 | li r0, 0x1 28 | branch_0x8013eb10: 29 | clrlwi. r0, r0, 24 30 | beq- branch_0x8013eb20 31 | li r0, 0x1 32 | b branch_0x8013eb24 33 | 34 | branch_0x8013eb20: 35 | li r0, 0x0 36 | branch_0x8013eb24: 37 | clrlwi. r0, r0, 24 38 | beq- branch_0x8013eb3c 39 | lfs f0, -0x4cd8(r2) 40 | li r31, 0x1 41 | stfs f0, 0x10(r30) 42 | stfs f0, 0x14(r30) 43 | branch_0x8013eb3c: 44 | lwz r0, 0x1c(sp) 45 | mr r3, r31 46 | lwz r31, 0x14(sp) 47 | lwz r30, 0x10(sp) 48 | mtlr r0 49 | addi sp, sp, 0x18 50 | blr 51 | 52 | 53 | .globl setValue__8TCoord2DFlffff 54 | setValue__8TCoord2DFlffff: # 0x8013eb58 55 | stwu sp, -0x30(sp) 56 | cmpwi r4, 0x0 57 | stfs f1, 0x8(r3) 58 | stfs f2, 0xc(r3) 59 | stfs f3, 0x0(r3) 60 | stfs f4, 0x4(r3) 61 | bgt- branch_0x8013eb84 62 | lfs f0, -0x4cd8(r2) 63 | stfs f0, 0x10(r3) 64 | stfs f0, 0x14(r3) 65 | b branch_0x8013ebc8 66 | 67 | branch_0x8013eb84: 68 | xoris r4, r4, 0x8000 69 | lfd f5, -0x4cd0(r2) 70 | stw r4, 0x2c(sp) 71 | lis r0, 0x4330 72 | fsubs f3, f1, f3 73 | stw r0, 0x28(sp) 74 | fsubs f1, f2, f4 75 | stw r4, 0x24(sp) 76 | lfd f0, 0x28(sp) 77 | stw r0, 0x20(sp) 78 | fsubs f2, f0, f5 79 | lfd f0, 0x20(sp) 80 | fsubs f0, f0, f5 81 | fdivs f2, f3, f2 82 | fdivs f0, f1, f0 83 | stfs f2, 0x10(r3) 84 | stfs f0, 0x14(r3) 85 | branch_0x8013ebc8: 86 | addi sp, sp, 0x30 87 | blr 88 | 89 | 90 | .globl __ct__8TCoord2DFv 91 | __ct__8TCoord2DFv: # 0x8013ebd0 92 | lfs f0, -0x4cd8(r2) 93 | stfs f0, 0x4(r3) 94 | stfs f0, 0x0(r3) 95 | stfs f0, 0xc(r3) 96 | stfs f0, 0x8(r3) 97 | stfs f0, 0x14(r3) 98 | stfs f0, 0x10(r3) 99 | blr 100 | 101 | -------------------------------------------------------------------------------- /source/GC2D/BlendPane.s: -------------------------------------------------------------------------------- 1 | 2 | .globl update__10TBlendPaneFv 3 | update__10TBlendPaneFv: # 0x8017900c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x30(sp) 7 | stfd f31, 0x28(sp) 8 | stfd f30, 0x20(sp) 9 | stw r31, 0x1c(sp) 10 | stw r30, 0x18(sp) 11 | stw r29, 0x14(sp) 12 | mr r29, r3 13 | bl update__10TBoundPaneFv 14 | lbz r0, 0x70(r29) 15 | addi r31, r3, unk_803f0000@l 16 | cmplwi r0, 0x0 17 | beq- branch_0x801790b8 18 | lfs f1, 0x6c(r29) 19 | lfs f0, -0x4720(r2) 20 | fcmpo cr0, f1, f0 21 | cror 2, 1, 2 22 | bne- branch_0x80179064 23 | stfs f0, 0x6c(r29) 24 | li r0, 0x0 25 | stb r0, 0x70(r29) 26 | branch_0x80179064: 27 | lfs f0, -0x4720(r2) 28 | lfs f30, 0x6c(r29) 29 | lwz r30, 0x0(r29) 30 | fsubs f31, f0, f30 31 | stfs f30, 0x104(r30) 32 | mr r3, r30 33 | stfs f31, 0x108(r30) 34 | stfs f0, 0x10c(r30) 35 | stfs f0, 0x110(r30) 36 | bl setBlendKonstColor__10J2DPictureFv 37 | stfs f30, 0x114(r30) 38 | mr r3, r30 39 | stfs f31, 0x118(r30) 40 | lfs f0, -0x4720(r2) 41 | stfs f0, 0x11c(r30) 42 | stfs f0, 0x120(r30) 43 | bl setBlendKonstAlpha__10J2DPictureFv 44 | lfs f1, 0x6c(r29) 45 | lfs f0, 0x68(r29) 46 | fadds f0, f1, f0 47 | stfs f0, 0x6c(r29) 48 | branch_0x801790b8: 49 | clrlwi. r0, r31, 24 50 | li r3, 0x0 51 | beq- branch_0x801790d4 52 | lbz r0, 0x70(r29) 53 | cmplwi r0, 0x0 54 | bne- branch_0x801790d4 55 | li r3, 0x1 56 | branch_0x801790d4: 57 | clrlwi. r0, r3, 24 58 | beq- branch_0x801790e4 59 | li r3, 0x1 60 | b branch_0x801790e8 61 | 62 | branch_0x801790e4: 63 | li r3, 0x0 64 | branch_0x801790e8: 65 | lwz r0, 0x34(sp) 66 | lfd f31, 0x28(sp) 67 | lfd f30, 0x20(sp) 68 | mtlr r0 69 | lwz r31, 0x1c(sp) 70 | lwz r30, 0x18(sp) 71 | lwz r29, 0x14(sp) 72 | addi sp, sp, 0x30 73 | blr 74 | 75 | 76 | .globl __ct__10TBlendPaneFP9J2DScreenUl 77 | __ct__10TBlendPaneFP9J2DScreenUl: # 0x8017910c 78 | mflr r0 79 | stw r0, 0x4(sp) 80 | stwu sp, -0x20(sp) 81 | stw r31, 0x1c(sp) 82 | mr r31, r3 83 | bl __ct__10TBoundPaneFP9J2DScreenUl 84 | lis r3, __vvt__10TBlendPane@h 85 | addi r0, r3, __vvt__10TBlendPane@l 86 | stw r0, 0x74(r31) 87 | li r0, 0x0 88 | addi r3, r31, 0x0 89 | stb r0, 0x70(r31) 90 | lfs f0, -0x471c(r2) 91 | stfs f0, 0x68(r31) 92 | stfs f0, 0x6c(r31) 93 | lwz r0, 0x24(sp) 94 | lwz r31, 0x1c(sp) 95 | addi sp, sp, 0x20 96 | mtlr r0 97 | blr 98 | 99 | -------------------------------------------------------------------------------- /source/NPC/NpcTrample.s: -------------------------------------------------------------------------------- 1 | 2 | .globl updateTrample__11TNpcTrampleFfPf 3 | updateTrample__11TNpcTrampleFfPf: # 0x80215148 4 | lha r5, 0x6(r3) 5 | li r8, 0x0 6 | extsh. r0, r5 7 | bne- branch_0x8021516c 8 | lha r0, 0x4(r3) 9 | cmpwi r0, 0x0 10 | bne- branch_0x8021516c 11 | stfs f1, 0x0(r4) 12 | b branch_0x80215234 13 | 14 | branch_0x8021516c: 15 | extsh. r0, r5 16 | ble- branch_0x802151a0 17 | stfs f1, 0x0(r4) 18 | li r0, 0x0 19 | sth r0, 0x4(r3) 20 | lha r4, 0x6(r3) 21 | addi r0, r4, -0x1 22 | sth r0, 0x6(r3) 23 | lha r0, 0x6(r3) 24 | cmpwi r0, 0x0 25 | bne- branch_0x80215234 26 | li r8, 0x1 27 | b branch_0x80215234 28 | 29 | branch_0x802151a0: 30 | lha r5, 0x4(r3) 31 | cmpwi r5, 0x0 32 | ble- branch_0x80215234 33 | addi r0, r5, -0x1 34 | sth r0, 0x4(r3) 35 | lha r0, 0x4(r3) 36 | cmpwi r0, 0x0 37 | bne- branch_0x802151d4 38 | stfs f1, 0x0(r4) 39 | lwz r4, R13Off_m0x6220(r13) 40 | lha r0, 0x108(r4) 41 | sth r0, 0x6(r3) 42 | b branch_0x80215234 43 | 44 | branch_0x802151d4: 45 | lfs f2, 0x0(r3) 46 | lfs f0, -0x6158(r13) 47 | fsubs f0, f2, f0 48 | stfs f0, 0x0(r3) 49 | lwz r7, R13Off_m0x6220(r13) 50 | lha r6, 0x4(r3) 51 | addi r5, r7, 0xcc 52 | lha r7, 0xf4(r7) 53 | lha r5, 0x0(r5) 54 | lwz r0, R13Off_m0x5eac(r13) 55 | subf r5, r6, r5 56 | lwz r6, R13Off_m0x5ea8(r13) 57 | mullw r5, r7, r5 58 | lfs f2, 0x0(r3) 59 | lfs f3, -0x1a00(r2) 60 | clrlwi r3, r5, 16 61 | sraw r0, r3, r0 62 | slwi r0, r0, 2 63 | lfsx f0, r6, r0 64 | fneg f0, f0 65 | fmuls f0, f2, f0 66 | fadds f0, f3, f0 67 | fmuls f0, f1, f0 68 | stfs f0, 0x0(r4) 69 | branch_0x80215234: 70 | mr r3, r8 71 | blr 72 | 73 | 74 | .globl startTrample__11TNpcTrampleFv 75 | startTrample__11TNpcTrampleFv: # 0x8021523c 76 | stwu sp, -0x30(sp) 77 | li r4, 0x0 78 | lis r0, 0x4330 79 | lwz r5, R13Off_m0x6220(r13) 80 | lfs f0, 0xe0(r5) 81 | stfs f0, 0x0(r3) 82 | lwz r5, R13Off_m0x6220(r13) 83 | lha r5, 0xcc(r5) 84 | sth r5, 0x4(r3) 85 | sth r4, 0x6(r3) 86 | lha r4, 0x4(r3) 87 | lfd f1, -0x19f8(r2) 88 | xoris r4, r4, 0x8000 89 | lfs f2, -0x1a00(r2) 90 | stw r4, 0x2c(sp) 91 | lfs f3, 0x0(r3) 92 | stw r0, 0x28(sp) 93 | lfd f0, 0x28(sp) 94 | addi sp, sp, 0x30 95 | fsubs f0, f0, f1 96 | fdivs f0, f2, f0 97 | fmuls f0, f3, f0 98 | stfs f0, -0x6158(r13) 99 | blr 100 | 101 | -------------------------------------------------------------------------------- /source/Runtime_PPCEABI_H/__mem.s: -------------------------------------------------------------------------------- 1 | 2 | .globl memset 3 | memset: # 0x80003100 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x20(sp) 7 | stw r31, 0x1c(sp) 8 | mr r31, r3 9 | bl __fill_mem 10 | lwz r0, 0x24(sp) 11 | mr r3, r31 12 | lwz r31, 0x1c(sp) 13 | addi sp, sp, 0x20 14 | mtlr r0 15 | blr 16 | 17 | 18 | .globl __fill_mem 19 | __fill_mem: # 0x80003130 20 | cmplwi r5, 0x20 21 | clrlwi r0, r4, 24 22 | mr r7, r0 23 | addi r6, r3, -0x1 24 | blt- branch_0x800031d8 25 | not r0, r6 26 | clrlwi. r0, r0, 30 27 | mr r3, r0 28 | beq- branch_0x80003168 29 | subf r5, r3, r5 30 | clrlwi r0, r7, 24 31 | branch_0x8000315c: 32 | subic. r3, r3, 0x1 33 | stbu r0, 0x1(r6) 34 | bne+ branch_0x8000315c 35 | branch_0x80003168: 36 | cmplwi r7, 0x0 37 | beq- branch_0x80003188 38 | slwi r3, r7, 24 39 | slwi r0, r7, 16 40 | slwi r4, r7, 8 41 | or r0, r3, r0 42 | or r0, r4, r0 43 | or r7, r7, r0 44 | branch_0x80003188: 45 | srwi. r0, r5, 5 46 | addi r3, r6, -0x3 47 | beq- branch_0x800031bc 48 | branch_0x80003194: 49 | stw r7, 0x4(r3) 50 | subic. r0, r0, 0x1 51 | stw r7, 0x8(r3) 52 | stw r7, 0xc(r3) 53 | stw r7, 0x10(r3) 54 | stw r7, 0x14(r3) 55 | stw r7, 0x18(r3) 56 | stw r7, 0x1c(r3) 57 | stwu r7, 0x20(r3) 58 | bne+ branch_0x80003194 59 | branch_0x800031bc: 60 | extrwi. r0, r5, 3, 27 61 | beq- branch_0x800031d0 62 | branch_0x800031c4: 63 | subic. r0, r0, 0x1 64 | stwu r7, 0x4(r3) 65 | bne+ branch_0x800031c4 66 | branch_0x800031d0: 67 | addi r6, r3, 0x3 68 | clrlwi r5, r5, 30 69 | branch_0x800031d8: 70 | cmplwi r5, 0x0 71 | beqlr- 72 | 73 | clrlwi r0, r7, 24 74 | branch_0x800031e4: 75 | subic. r5, r5, 0x1 76 | stbu r0, 0x1(r6) 77 | bne+ branch_0x800031e4 78 | blr 79 | 80 | 81 | .globl memcpy 82 | memcpy: # 0x800031f4 83 | cmplw r4, r3 84 | blt- branch_0x80003220 85 | addi r4, r4, -0x1 86 | addi r6, r3, -0x1 87 | addi r5, r5, 0x1 88 | b branch_0x80003214 89 | 90 | branch_0x8000320c: 91 | lbzu r0, 0x1(r4) 92 | stbu r0, 0x1(r6) 93 | branch_0x80003214: 94 | subic. r5, r5, 0x1 95 | bne+ branch_0x8000320c 96 | blr 97 | 98 | branch_0x80003220: 99 | add r4, r4, r5 100 | add r6, r3, r5 101 | addi r5, r5, 0x1 102 | b branch_0x80003238 103 | 104 | branch_0x80003230: 105 | lbzu r0, -0x1(r4) 106 | stbu r0, -0x1(r6) 107 | branch_0x80003238: 108 | subic. r5, r5, 0x1 109 | bne+ branch_0x80003230 110 | blr 111 | 112 | -------------------------------------------------------------------------------- /source/JSystem/JSGActor.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q26JStage6TActorFv 3 | __dt__Q26JStage6TActorFv: # 0x8033705c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x803370a4 12 | lis r3, __vvt__Q26JStage6TActor@h 13 | addi r0, r3, __vvt__Q26JStage6TActor@l 14 | stw r0, 0x0(r30) 15 | addi r3, r30, 0x0 16 | li r4, 0x0 17 | bl __dt__Q26JStage7TObjectFv 18 | extsh. r0, r31 19 | ble- branch_0x803370a4 20 | mr r3, r30 21 | bl __dl__FPv 22 | branch_0x803370a4: 23 | lwz r0, 0x1c(sp) 24 | mr r3, r30 25 | lwz r31, 0x14(sp) 26 | lwz r30, 0x10(sp) 27 | mtlr r0 28 | addi sp, sp, 0x18 29 | blr 30 | 31 | 32 | .globl JSGFGetType__Q26JStage6TActorCFv 33 | JSGFGetType__Q26JStage6TActorCFv: # 0x803370c0 34 | li r3, 0x2 35 | blr 36 | 37 | 38 | .globl JSGGetTranslation__Q26JStage6TActorCFP3Vec 39 | JSGGetTranslation__Q26JStage6TActorCFP3Vec: # 0x803370c8 40 | blr 41 | 42 | 43 | .globl JSGSetTranslation__Q26JStage6TActorFRC3Vec 44 | JSGSetTranslation__Q26JStage6TActorFRC3Vec: # 0x803370cc 45 | blr 46 | 47 | 48 | .globl JSGGetScaling__Q26JStage6TActorCFP3Vec 49 | JSGGetScaling__Q26JStage6TActorCFP3Vec: # 0x803370d0 50 | blr 51 | 52 | 53 | .globl JSGSetScaling__Q26JStage6TActorFRC3Vec 54 | JSGSetScaling__Q26JStage6TActorFRC3Vec: # 0x803370d4 55 | blr 56 | 57 | 58 | .globl JSGGetRotation__Q26JStage6TActorCFP3Vec 59 | JSGGetRotation__Q26JStage6TActorCFP3Vec: # 0x803370d8 60 | blr 61 | 62 | 63 | .globl JSGSetRotation__Q26JStage6TActorFRC3Vec 64 | JSGSetRotation__Q26JStage6TActorFRC3Vec: # 0x803370dc 65 | blr 66 | 67 | 68 | .globl JSGGetShape__Q26JStage6TActorCFv 69 | JSGGetShape__Q26JStage6TActorCFv: # 0x803370e0 70 | li r3, -0x1 71 | blr 72 | 73 | 74 | .globl JSGSetShape__Q26JStage6TActorFUl 75 | JSGSetShape__Q26JStage6TActorFUl: # 0x803370e8 76 | blr 77 | 78 | 79 | .globl JSGGetAnimation__Q26JStage6TActorCFv 80 | JSGGetAnimation__Q26JStage6TActorCFv: # 0x803370ec 81 | li r3, -0x1 82 | blr 83 | 84 | 85 | .globl JSGSetAnimation__Q26JStage6TActorFUl 86 | JSGSetAnimation__Q26JStage6TActorFUl: # 0x803370f4 87 | blr 88 | 89 | 90 | .globl JSGGetAnimationFrame__Q26JStage6TActorCFv 91 | JSGGetAnimationFrame__Q26JStage6TActorCFv: # 0x803370f8 92 | lfs f1, 0x998(r2) 93 | blr 94 | 95 | 96 | .globl JSGSetAnimationFrame__Q26JStage6TActorFf 97 | JSGSetAnimationFrame__Q26JStage6TActorFf: # 0x80337100 98 | blr 99 | 100 | 101 | .globl JSGGetAnimationFrameMax__Q26JStage6TActorCFv 102 | JSGGetAnimationFrameMax__Q26JStage6TActorCFv: # 0x80337104 103 | lfs f1, 0x998(r2) 104 | blr 105 | 106 | -------------------------------------------------------------------------------- /source/dsp/dsp.s: -------------------------------------------------------------------------------- 1 | 2 | .globl DSPCheckMailToDSP 3 | DSPCheckMailToDSP: # 0x80353d38 4 | lis r3, 0xcc00 5 | lhz r0, 0x5000(r3) 6 | extrwi r3, r0, 1, 16 7 | blr 8 | 9 | 10 | .globl DSPCheckMailFromDSP 11 | DSPCheckMailFromDSP: # 0x80353d48 12 | lis r3, 0xcc00 13 | lhz r0, 0x5004(r3) 14 | extrwi r3, r0, 1, 16 15 | blr 16 | 17 | 18 | .globl DSPReadMailFromDSP 19 | DSPReadMailFromDSP: # 0x80353d58 20 | lis r3, unk_cc005000@h 21 | addi r3, r3, unk_cc005000@l 22 | lhz r0, 0x4(r3) 23 | lhz r3, 0x6(r3) 24 | insrwi r3, r0, 16, 0 25 | blr 26 | 27 | 28 | .globl DSPSendMailToDSP 29 | DSPSendMailToDSP: # 0x80353d70 30 | lis r4, 0xcc00 31 | srwi r0, r3, 16 32 | sth r0, 0x5000(r4) 33 | sth r3, 0x5002(r4) 34 | blr 35 | 36 | 37 | .globl DSPAssertInt 38 | DSPAssertInt: # 0x80353d84 39 | mflr r0 40 | stw r0, 0x4(sp) 41 | stwu sp, -0x8(sp) 42 | bl OSDisableInterrupts 43 | lis r4, unk_cc005000@h 44 | addi r4, r4, unk_cc005000@l 45 | lhz r5, 0xa(r4) 46 | li r0, -0xa9 47 | and r0, r5, r0 48 | ori r0, r0, 0x2 49 | sth r0, 0xa(r4) 50 | bl OSRestoreInterrupts 51 | lwz r0, 0xc(sp) 52 | addi sp, sp, 0x8 53 | mtlr r0 54 | blr 55 | 56 | 57 | .globl DSPInit 58 | DSPInit: # 0x80353dc4 59 | mflr r0 60 | lis r3, unk_803e8a88@ha 61 | stw r0, 0x4(sp) 62 | addi r3, r3, unk_803e8a88@l 63 | crxor 6, 6, 6 64 | addi r4, r3, 0x20 65 | stwu sp, -0x10(sp) 66 | addi r5, r3, 0x2c 67 | stw r31, 0xc(sp) 68 | bl __DSP_debug_printf 69 | lwz r0, R13Off_m0x57f0(r13) 70 | cmpwi r0, 0x1 71 | beq- branch_0x80353e68 72 | bl OSDisableInterrupts 73 | lis r4, __DSPHandler@h 74 | addi r31, r3, 0x0 75 | addi r4, r4, __DSPHandler@l 76 | li r3, 0x7 77 | bl __OSSetInterruptHandler 78 | lis r3, 0x100 79 | bl __OSUnmaskInterrupts 80 | lis r3, unk_cc005000@h 81 | addi r6, r3, unk_cc005000@l 82 | lhz r3, 0x500a(r3) 83 | li r0, -0xa9 84 | and r0, r3, r0 85 | ori r0, r0, 0x800 86 | sth r0, 0xa(r6) 87 | li r5, -0xad 88 | li r4, 0x0 89 | lhz r7, 0xa(r6) 90 | li r0, 0x1 91 | addi r3, r31, 0x0 92 | and r5, r7, r5 93 | sth r5, 0xa(r6) 94 | stw r4, R13Off_m0x5ac0(r13) 95 | stw r4, R13Off_m0x57e0(r13) 96 | stw r4, R13Off_m0x57e8(r13) 97 | stw r4, R13Off_m0x57e4(r13) 98 | stw r0, R13Off_m0x57f0(r13) 99 | bl OSRestoreInterrupts 100 | branch_0x80353e68: 101 | lwz r0, 0x14(sp) 102 | lwz r31, 0xc(sp) 103 | addi sp, sp, 0x10 104 | mtlr r0 105 | blr 106 | 107 | -------------------------------------------------------------------------------- /source/JSystem/JDRViewConnecter.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__Q26JDrama14TViewConnecterFPQ26JDrama8TViewObjPQ26JDrama8TViewObjQ26JDrama10TFlagT_Us_PCc 3 | __ct__Q26JDrama14TViewConnecterFPQ26JDrama8TViewObjPQ26JDrama8TViewObjQ26JDrama10TFlagT_Us_PCc: # 0x802fcb5c 4 | mflr r0 5 | lis r8, __vvt__Q26JDrama8TNameRef@h 6 | stw r0, 0x4(sp) 7 | addi r0, r8, __vvt__Q26JDrama8TNameRef@l 8 | stwu sp, -0x30(sp) 9 | stw r31, 0x2c(sp) 10 | addi r31, r6, 0x0 11 | stw r30, 0x28(sp) 12 | addi r30, r5, 0x0 13 | stw r29, 0x24(sp) 14 | mr r29, r4 15 | stw r28, 0x20(sp) 16 | addi r28, r3, 0x0 17 | stw r0, 0x0(r3) 18 | stw r7, 0x4(r3) 19 | addi r3, r7, 0x0 20 | bl calcKeyCode__Q26JDrama8TNameRefFPCc 21 | sth r3, 0x8(r28) 22 | lis r3, __vvt__Q26JDrama8TViewObj@ha 23 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 24 | stw r0, 0x0(r28) 25 | li r0, 0x0 26 | lis r3, __vvt__Q26JDrama14TViewConnecter@h 27 | sth r0, 0xc(r28) 28 | addi r0, r3, __vvt__Q26JDrama14TViewConnecter@l 29 | addi r3, r28, 0x0 30 | stw r0, 0x0(r28) 31 | stw r29, 0x10(r28) 32 | stw r30, 0x14(r28) 33 | lhz r0, 0x0(r31) 34 | sth r0, 0x18(r28) 35 | lwz r0, 0x34(sp) 36 | lwz r31, 0x2c(sp) 37 | lwz r30, 0x28(sp) 38 | lwz r29, 0x24(sp) 39 | lwz r28, 0x20(sp) 40 | addi sp, sp, 0x30 41 | mtlr r0 42 | blr 43 | 44 | 45 | .globl perform__Q26JDrama14TViewConnecterFUlPQ26JDrama9TGraphics 46 | perform__Q26JDrama14TViewConnecterFUlPQ26JDrama9TGraphics: # 0x802fcbf8 47 | mflr r0 48 | stw r0, 0x4(sp) 49 | rlwinm. r0, r4, 0, 28, 28 50 | stwu sp, -0x28(sp) 51 | stw r31, 0x24(sp) 52 | addi r31, r5, 0x0 53 | stw r30, 0x20(sp) 54 | addi r30, r4, 0x0 55 | stw r29, 0x1c(sp) 56 | addi r29, r3, 0x0 57 | beq- branch_0x802fcc78 58 | lwz r3, 0x10(r29) 59 | cmplwi r3, 0x0 60 | beq- branch_0x802fcc3c 61 | addi r5, r31, 0x0 62 | li r4, 0x80 63 | bl testPerform__Q26JDrama8TViewObjFUlPQ26JDrama9TGraphics 64 | branch_0x802fcc3c: 65 | lwz r3, 0x14(r29) 66 | cmplwi r3, 0x0 67 | beq- branch_0x802fcc54 68 | addi r4, r30, 0x0 69 | addi r5, r31, 0x0 70 | bl testPerform__Q26JDrama8TViewObjFUlPQ26JDrama9TGraphics 71 | branch_0x802fcc54: 72 | lwz r3, 0x10(r29) 73 | cmplwi r3, 0x0 74 | beq- branch_0x802fcc78 75 | lhz r0, 0x18(r29) 76 | clrlwi. r0, r0, 31 77 | beq- branch_0x802fcc78 78 | addi r5, r31, 0x0 79 | li r4, 0x8 80 | bl testPerform__Q26JDrama8TViewObjFUlPQ26JDrama9TGraphics 81 | branch_0x802fcc78: 82 | lwz r0, 0x2c(sp) 83 | lwz r31, 0x24(sp) 84 | lwz r30, 0x20(sp) 85 | mtlr r0 86 | lwz r29, 0x1c(sp) 87 | addi sp, sp, 0x28 88 | blr 89 | 90 | -------------------------------------------------------------------------------- /source/JSystem/JASRegisterParam.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __ct__Q28JASystem14TRegisterParamFv 3 | __ct__Q28JASystem14TRegisterParamFv: # 0x80319f34 4 | li r0, 0x0 5 | sth r0, 0x0(r3) 6 | sth r0, 0x2(r3) 7 | sth r0, 0x4(r3) 8 | sth r0, 0x6(r3) 9 | sth r0, 0x8(r3) 10 | sth r0, 0xa(r3) 11 | sth r0, 0xc(r3) 12 | sth r0, 0xe(r3) 13 | sth r0, 0x1a(r3) 14 | sth r0, 0x10(r3) 15 | sth r0, 0x12(r3) 16 | sth r0, 0x14(r3) 17 | sth r0, 0x16(r3) 18 | sth r0, 0x18(r3) 19 | stw r0, 0x20(r3) 20 | stw r0, 0x24(r3) 21 | stw r0, 0x28(r3) 22 | stw r0, 0x2c(r3) 23 | blr 24 | 25 | 26 | .globl init__Q28JASystem14TRegisterParamFv 27 | init__Q28JASystem14TRegisterParamFv: # 0x80319f84 28 | li r9, 0x0 29 | sth r9, 0x0(r3) 30 | li r8, 0xf0 31 | li r7, 0xc 32 | sth r9, 0x2(r3) 33 | li r6, 0x40 34 | li r5, 0x1 35 | sth r9, 0x4(r3) 36 | li r4, 0x7fff 37 | li r0, 0x4000 38 | sth r9, 0x6(r3) 39 | sth r9, 0x8(r3) 40 | sth r9, 0xa(r3) 41 | sth r8, 0xc(r3) 42 | sth r7, 0xe(r3) 43 | sth r6, 0x1a(r3) 44 | sth r9, 0x10(r3) 45 | sth r5, 0x12(r3) 46 | sth r5, 0x14(r3) 47 | sth r4, 0x16(r3) 48 | sth r0, 0x18(r3) 49 | stw r9, 0x20(r3) 50 | stw r9, 0x24(r3) 51 | stw r9, 0x28(r3) 52 | stw r9, 0x2c(r3) 53 | blr 54 | 55 | 56 | .globl inherit__Q28JASystem14TRegisterParamFRCQ28JASystem14TRegisterParam 57 | inherit__Q28JASystem14TRegisterParamFRCQ28JASystem14TRegisterParam: # 0x80319fec 58 | li r5, 0x0 59 | sth r5, 0x0(r3) 60 | sth r5, 0x2(r3) 61 | sth r5, 0x4(r3) 62 | sth r5, 0x6(r3) 63 | sth r5, 0x8(r3) 64 | sth r5, 0xa(r3) 65 | lhz r0, 0xc(r4) 66 | sth r0, 0xc(r3) 67 | lhz r0, 0xe(r4) 68 | sth r0, 0xe(r3) 69 | lhz r0, 0x1a(r4) 70 | sth r0, 0x1a(r3) 71 | lhz r0, 0x10(r4) 72 | sth r0, 0x10(r3) 73 | lhz r0, 0x12(r4) 74 | sth r0, 0x12(r3) 75 | lhz r0, 0x14(r4) 76 | sth r0, 0x14(r3) 77 | lhz r0, 0x16(r4) 78 | sth r0, 0x16(r3) 79 | lhz r0, 0x18(r4) 80 | sth r0, 0x18(r3) 81 | stw r5, 0x20(r3) 82 | stw r5, 0x24(r3) 83 | stw r5, 0x28(r3) 84 | stw r5, 0x2c(r3) 85 | blr 86 | 87 | 88 | .globl getBankNumber__Q28JASystem14TRegisterParamCFv 89 | getBankNumber__Q28JASystem14TRegisterParamCFv: # 0x8031a05c 90 | lhz r0, 0xc(r3) 91 | srawi r0, r0, 8 92 | clrlwi r3, r0, 24 93 | blr 94 | 95 | 96 | .globl getProgramNumber__Q28JASystem14TRegisterParamCFv 97 | getProgramNumber__Q28JASystem14TRegisterParamCFv: # 0x8031a06c 98 | lhz r0, 0xc(r3) 99 | clrlwi r3, r0, 24 100 | blr 101 | 102 | -------------------------------------------------------------------------------- /source/JSystem/JSGLight.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__Q26JStage6TLightFv 3 | __dt__Q26JStage6TLightFv: # 0x8033710c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x80337154 12 | lis r3, __vvt__Q26JStage6TLight@h 13 | addi r0, r3, __vvt__Q26JStage6TLight@l 14 | stw r0, 0x0(r30) 15 | addi r3, r30, 0x0 16 | li r4, 0x0 17 | bl __dt__Q26JStage7TObjectFv 18 | extsh. r0, r31 19 | ble- branch_0x80337154 20 | mr r3, r30 21 | bl __dl__FPv 22 | branch_0x80337154: 23 | lwz r0, 0x1c(sp) 24 | mr r3, r30 25 | lwz r31, 0x14(sp) 26 | lwz r30, 0x10(sp) 27 | mtlr r0 28 | addi sp, sp, 0x18 29 | blr 30 | 31 | 32 | .globl JSGFGetType__Q26JStage6TLightCFv 33 | JSGFGetType__Q26JStage6TLightCFv: # 0x80337170 34 | li r3, 0x5 35 | blr 36 | 37 | 38 | .globl JSGGetLightType__Q26JStage6TLightCFv 39 | JSGGetLightType__Q26JStage6TLightCFv: # 0x80337178 40 | li r3, 0x1 41 | blr 42 | 43 | 44 | .globl JSGSetLightType__Q26JStage6TLightFQ26JStage7TELight 45 | JSGSetLightType__Q26JStage6TLightFQ26JStage7TELight: # 0x80337180 46 | blr 47 | 48 | 49 | .globl JSGGetColor__Q26JStage6TLightCFv 50 | JSGGetColor__Q26JStage6TLightCFv: # 0x80337184 51 | stwu sp, -0x18(sp) 52 | lwz r0, R2Off_0x9a0(r2) 53 | stw r0, 0x10(sp) 54 | lwz r3, 0x10(sp) 55 | addi sp, sp, 0x18 56 | blr 57 | 58 | 59 | .globl JSGSetColor__Q26JStage6TLightF8_GXColor 60 | JSGSetColor__Q26JStage6TLightF8_GXColor: # 0x8033719c 61 | blr 62 | 63 | 64 | .globl JSGGetDistanceAttenuation__Q26JStage6TLightCFPfPfP13_GXDistAttnFn 65 | JSGGetDistanceAttenuation__Q26JStage6TLightCFPfPfP13_GXDistAttnFn: # 0x803371a0 66 | blr 67 | 68 | 69 | .globl JSGSetDistanceAttenuation__Q26JStage6TLightFff13_GXDistAttnFn 70 | JSGSetDistanceAttenuation__Q26JStage6TLightFff13_GXDistAttnFn: # 0x803371a4 71 | blr 72 | 73 | 74 | .globl JSGGetAngleAttenuation__Q26JStage6TLightCFPfP9_GXSpotFn 75 | JSGGetAngleAttenuation__Q26JStage6TLightCFPfP9_GXSpotFn: # 0x803371a8 76 | blr 77 | 78 | 79 | .globl JSGSetAngleAttenuation__Q26JStage6TLightFf9_GXSpotFn 80 | JSGSetAngleAttenuation__Q26JStage6TLightFf9_GXSpotFn: # 0x803371ac 81 | blr 82 | 83 | 84 | .globl JSGGetPosition__Q26JStage6TLightCFP3Vec 85 | JSGGetPosition__Q26JStage6TLightCFP3Vec: # 0x803371b0 86 | blr 87 | 88 | 89 | .globl JSGSetPosition__Q26JStage6TLightFRC3Vec 90 | JSGSetPosition__Q26JStage6TLightFRC3Vec: # 0x803371b4 91 | blr 92 | 93 | 94 | .globl JSGGetDirection__Q26JStage6TLightCFP3Vec 95 | JSGGetDirection__Q26JStage6TLightCFP3Vec: # 0x803371b8 96 | blr 97 | 98 | 99 | .globl JSGSetDirection__Q26JStage6TLightFRC3Vec 100 | JSGSetDirection__Q26JStage6TLightFRC3Vec: # 0x803371bc 101 | blr 102 | 103 | -------------------------------------------------------------------------------- /source/System/TargetArrow.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__12TTargetArrowFv 3 | __dt__12TTargetArrowFv: # 0x802bc868 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x802bc8c0 12 | lis r3, __vvt__12TTargetArrow@ha 13 | addi r0, r3, __vvt__12TTargetArrow@l 14 | stw r0, 0x0(r30) 15 | beq- branch_0x802bc8b0 16 | lis r3, __vvt__Q26JDrama8TViewObj@ha 17 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 18 | stw r0, 0x0(r30) 19 | addi r3, r30, 0x0 20 | li r4, 0x0 21 | bl __dt__Q26JDrama8TNameRefFv 22 | branch_0x802bc8b0: 23 | extsh. r0, r31 24 | ble- branch_0x802bc8c0 25 | mr r3, r30 26 | bl __dl__FPv 27 | branch_0x802bc8c0: 28 | lwz r0, 0x1c(sp) 29 | mr r3, r30 30 | lwz r31, 0x14(sp) 31 | lwz r30, 0x10(sp) 32 | mtlr r0 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl setPos__12TTargetArrowFRCQ29JGeometry8TVec3_f_ 38 | setPos__12TTargetArrowFRCQ29JGeometry8TVec3_f_: # 0x802bc8dc 39 | lwz r3, 0x10(r3) 40 | cmplwi r3, 0x0 41 | beqlr- 42 | 43 | lwz r3, 0x4(r3) 44 | lfs f0, 0x0(r4) 45 | addi r3, r3, 0x20 46 | stfs f0, 0xc(r3) 47 | lfs f0, 0x4(r4) 48 | stfs f0, 0x1c(r3) 49 | lfs f0, 0x8(r4) 50 | stfs f0, 0x2c(r3) 51 | blr 52 | 53 | 54 | .globl perform__12TTargetArrowFUlPQ26JDrama9TGraphics 55 | perform__12TTargetArrowFUlPQ26JDrama9TGraphics: # 0x802bc90c 56 | mflr r0 57 | stw r0, 0x4(sp) 58 | stwu sp, -0x8(sp) 59 | lwz r6, 0x10(r3) 60 | cmplwi r6, 0x0 61 | beq- branch_0x802bc938 62 | lbz r0, 0x14(r3) 63 | cmplwi r0, 0x0 64 | beq- branch_0x802bc938 65 | mr r3, r6 66 | bl perform__6MActorFUlPQ26JDrama9TGraphics 67 | branch_0x802bc938: 68 | lwz r0, 0xc(sp) 69 | addi sp, sp, 0x8 70 | mtlr r0 71 | blr 72 | 73 | 74 | .globl loadAfter__12TTargetArrowFv 75 | loadAfter__12TTargetArrowFv: # 0x802bc948 76 | mflr r0 77 | stw r0, 0x4(sp) 78 | stwu sp, -0x18(sp) 79 | stw r31, 0x14(sp) 80 | mr r31, r3 81 | lwz r3, R13Off_m0x75c8(r13) 82 | bl getGlbResource__13JKRFileLoaderFPCc 83 | cmplwi r3, 0x0 84 | beq- branch_0x802bc998 85 | lis r3, unk_803a92e4@ha 86 | lwz r4, R13Off_m0x75c8(r13) 87 | addi r3, r3, unk_803a92e4@l 88 | li r5, 0x3 89 | lis r6, 0x1001 90 | bl SMS_MakeMActor__FPCcPCcUlUl 91 | stw r3, 0x10(r31) 92 | lis r3, unk_803a92fc@ha 93 | addi r4, r3, unk_803a92fc@l 94 | lwz r3, 0x10(r31) 95 | bl setBck__6MActorFPCc 96 | branch_0x802bc998: 97 | lwz r0, 0x1c(sp) 98 | lwz r31, 0x14(sp) 99 | addi sp, sp, 0x18 100 | mtlr r0 101 | blr 102 | 103 | -------------------------------------------------------------------------------- /source/JSystem/JDRGraphics.s: -------------------------------------------------------------------------------- 1 | 2 | .globl setViewport__Q26JDrama9TGraphicsFRCQ26JDrama5TRectff 3 | setViewport__Q26JDrama9TGraphicsFRCQ26JDrama5TRectff: # 0x802f9534 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x58(sp) 7 | stfd f31, 0x50(sp) 8 | fmr f31, f2 9 | stfd f30, 0x48(sp) 10 | fmr f30, f1 11 | stw r31, 0x44(sp) 12 | mr r31, r3 13 | stw r30, 0x40(sp) 14 | stw r29, 0x3c(sp) 15 | lwz r5, 0x0(r4) 16 | lwz r0, 0x4(r4) 17 | stw r5, 0x54(r3) 18 | stw r0, 0x58(r3) 19 | lwz r3, 0x8(r4) 20 | lwz r0, 0xc(r4) 21 | stw r3, 0x5c(r31) 22 | stw r0, 0x60(r31) 23 | lbz r0, 0x20(r31) 24 | cmplwi r0, 0x0 25 | beq- branch_0x802f9618 26 | lwz r5, 0x58(r31) 27 | lwz r4, 0x60(r31) 28 | lwz r3, 0x54(r31) 29 | lwz r0, 0x5c(r31) 30 | subf r30, r5, r4 31 | subf r29, r3, r0 32 | bl VIGetNextField 33 | lwz r5, 0x58(r31) 34 | xoris r4, r29, 0x8000 35 | lwz r6, 0x54(r31) 36 | xoris r0, r30, 0x8000 37 | xoris r5, r5, 0x8000 38 | xoris r6, r6, 0x8000 39 | stw r5, 0x2c(sp) 40 | lfd f4, 0x400(r2) 41 | fmr f5, f30 42 | stw r6, 0x34(sp) 43 | lis r6, 0x4330 44 | fmr f6, f31 45 | stw r4, 0x24(sp) 46 | stw r0, 0x1c(sp) 47 | stw r6, 0x28(sp) 48 | stw r6, 0x30(sp) 49 | lfd f0, 0x28(sp) 50 | stw r6, 0x20(sp) 51 | lfd f1, 0x30(sp) 52 | fsubs f2, f0, f4 53 | stw r6, 0x18(sp) 54 | lfd f3, 0x20(sp) 55 | fsubs f1, f1, f4 56 | lfd f0, 0x18(sp) 57 | fsubs f3, f3, f4 58 | fsubs f4, f0, f4 59 | bl GXSetViewportJitter 60 | b branch_0x802f9694 61 | 62 | branch_0x802f9618: 63 | lwz r6, 0x58(r31) 64 | lis r4, 0x4330 65 | lwz r0, 0x60(r31) 66 | fmr f5, f30 67 | lwz r7, 0x54(r31) 68 | lwz r3, 0x5c(r31) 69 | subf r5, r6, r0 70 | xoris r0, r7, 0x8000 71 | subf r3, r7, r3 72 | stw r0, 0x1c(sp) 73 | xoris r0, r6, 0x8000 74 | lfd f4, 0x400(r2) 75 | xoris r3, r3, 0x8000 76 | stw r0, 0x24(sp) 77 | xoris r0, r5, 0x8000 78 | fmr f6, f31 79 | stw r3, 0x2c(sp) 80 | stw r0, 0x34(sp) 81 | stw r4, 0x18(sp) 82 | stw r4, 0x20(sp) 83 | lfd f1, 0x18(sp) 84 | stw r4, 0x28(sp) 85 | lfd f0, 0x20(sp) 86 | fsubs f1, f1, f4 87 | stw r4, 0x30(sp) 88 | lfd f3, 0x28(sp) 89 | fsubs f2, f0, f4 90 | lfd f0, 0x30(sp) 91 | fsubs f3, f3, f4 92 | fsubs f4, f0, f4 93 | bl GXSetViewport 94 | branch_0x802f9694: 95 | lwz r0, 0x5c(sp) 96 | lfd f31, 0x50(sp) 97 | lfd f30, 0x48(sp) 98 | mtlr r0 99 | lwz r31, 0x44(sp) 100 | lwz r30, 0x40(sp) 101 | lwz r29, 0x3c(sp) 102 | addi sp, sp, 0x58 103 | blr 104 | 105 | -------------------------------------------------------------------------------- /source/System/SnapTimeObj.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__12TSnapTimeObjFv 3 | __dt__12TSnapTimeObjFv: # 0x802a5470 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x802a54c8 12 | lis r3, __vvt__12TSnapTimeObj@ha 13 | addi r0, r3, __vvt__12TSnapTimeObj@l 14 | stw r0, 0x0(r30) 15 | beq- branch_0x802a54b8 16 | lis r3, __vvt__Q26JDrama8TViewObj@ha 17 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 18 | stw r0, 0x0(r30) 19 | addi r3, r30, 0x0 20 | li r4, 0x0 21 | bl __dt__Q26JDrama8TNameRefFv 22 | branch_0x802a54b8: 23 | extsh. r0, r31 24 | ble- branch_0x802a54c8 25 | mr r3, r30 26 | bl __dl__FPv 27 | branch_0x802a54c8: 28 | lwz r0, 0x1c(sp) 29 | mr r3, r30 30 | lwz r31, 0x14(sp) 31 | lwz r30, 0x10(sp) 32 | mtlr r0 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl perform__12TSnapTimeObjFUlPQ26JDrama9TGraphics 38 | perform__12TSnapTimeObjFUlPQ26JDrama9TGraphics: # 0x802a54e4 39 | mflr r0 40 | stw r0, 0x4(sp) 41 | stwu sp, -0x50(sp) 42 | stw r31, 0x4c(sp) 43 | mr r31, r3 44 | stw r30, 0x48(sp) 45 | stw r29, 0x44(sp) 46 | addi r29, r4, 0x0 47 | lhz r0, 0x14(r3) 48 | clrlwi. r0, r0, 31 49 | beq- branch_0x802a55ac 50 | rlwinm. r0, r29, 0, 24, 24 51 | beq- branch_0x802a5558 52 | lwz r3, R13Off_m0x5ff8(r13) 53 | cmplwi r3, 0x0 54 | beq- branch_0x802a552c 55 | li r4, 0x0 56 | bl snapGXTime__8TTimeRecFUl 57 | branch_0x802a552c: 58 | lwz r30, R13Off_m0x5ff8(r13) 59 | cmplwi r30, 0x0 60 | beq- branch_0x802a5558 61 | bl OSGetTick 62 | lwz r0, 0x814(r30) 63 | addi r4, r3, 0x0 64 | li r5, 0x0 65 | mulli r3, r0, 0x408 66 | addi r3, r3, 0x4 67 | add r3, r30, r3 68 | bl append__10TTimeArrayFUlUl 69 | branch_0x802a5558: 70 | rlwinm. r0, r29, 0, 28, 28 71 | beq- branch_0x802a55ac 72 | lwz r0, 0x10(r31) 73 | lwz r29, R13Off_m0x5ff8(r13) 74 | stw r0, 0x38(sp) 75 | cmplwi r29, 0x0 76 | lwz r30, 0x38(sp) 77 | beq- branch_0x802a5598 78 | bl OSGetTick 79 | lwz r0, 0x814(r29) 80 | addi r4, r3, 0x0 81 | addi r5, r30, 0x0 82 | mulli r3, r0, 0x408 83 | addi r3, r3, 0x4 84 | add r3, r29, r3 85 | bl append__10TTimeArrayFUlUl 86 | branch_0x802a5598: 87 | lwz r3, R13Off_m0x5ff8(r13) 88 | lwz r4, 0x10(r31) 89 | cmplwi r3, 0x0 90 | beq- branch_0x802a55ac 91 | bl snapGXTime__8TTimeRecFUl 92 | branch_0x802a55ac: 93 | lwz r0, 0x54(sp) 94 | lwz r31, 0x4c(sp) 95 | lwz r30, 0x48(sp) 96 | mtlr r0 97 | lwz r29, 0x44(sp) 98 | addi sp, sp, 0x50 99 | blr 100 | 101 | -------------------------------------------------------------------------------- /source/JSystem/JAIEntry.s: -------------------------------------------------------------------------------- 1 | 2 | .globl checkSoundHandle__8JAIEntryFPP8JAISoundUlPv 3 | checkSoundHandle__8JAIEntryFPP8JAISoundUlPv: # 0x8030493c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x38(sp) 7 | stw r31, 0x34(sp) 8 | stw r30, 0x30(sp) 9 | li r30, 0x0 10 | stw r29, 0x2c(sp) 11 | mr. r29, r4 12 | stw r28, 0x28(sp) 13 | addi r28, r3, 0x0 14 | beq- branch_0x803049d4 15 | lwz r3, 0x0(r29) 16 | cmplwi r3, 0x0 17 | beq- branch_0x803049d4 18 | lwz r0, 0x8(r3) 19 | clrrwi r4, r5, 30 20 | clrrwi r0, r0, 30 21 | cmplw r4, r0 22 | beq- branch_0x80304994 23 | li r4, 0x0 24 | bl stop__8JAISoundFUl 25 | b branch_0x803049d4 26 | 27 | branch_0x80304994: 28 | lwz r3, 0x0(r28) 29 | mr r4, r6 30 | bl getSoundPrioity__8JAIBasicFPv 31 | lwz r4, 0x0(r29) 32 | clrlwi r31, r3, 24 33 | lwz r3, 0x0(r28) 34 | lwz r4, 0x3c(r4) 35 | bl getSoundPrioity__8JAIBasicFPv 36 | clrlwi r0, r3, 24 37 | cmplw r0, r31 38 | bgt- branch_0x803049d0 39 | lwz r3, 0x0(r29) 40 | li r4, 0x0 41 | bl stop__8JAISoundFUl 42 | b branch_0x803049d4 43 | 44 | branch_0x803049d0: 45 | li r30, 0x1 46 | branch_0x803049d4: 47 | lwz r0, 0x3c(sp) 48 | mr r3, r30 49 | lwz r31, 0x34(sp) 50 | lwz r30, 0x30(sp) 51 | mtlr r0 52 | lwz r29, 0x2c(sp) 53 | lwz r28, 0x28(sp) 54 | addi sp, sp, 0x38 55 | blr 56 | 57 | 58 | .globl initSoundParameter__8JAIEntryFP8JAISoundPP8JAISoundP8JAIActorUlUlUcPv 59 | initSoundParameter__8JAIEntryFP8JAISoundPP8JAISoundP8JAIActorUlUlUcPv: # 0x803049f8 60 | cmplwi r6, 0x0 61 | stw r7, 0x8(r4) 62 | beq- branch_0x80304a4c 63 | lwz r0, 0x0(r6) 64 | stw r0, 0x20(r4) 65 | lwz r0, 0x0(r6) 66 | cmplwi r0, 0x0 67 | beq- branch_0x80304a34 68 | lwz r0, 0x4(r6) 69 | stw r0, 0x24(r4) 70 | lwz r0, 0x8(r6) 71 | stw r0, 0x28(r4) 72 | lwz r0, 0xc(r6) 73 | stw r0, 0x18(r4) 74 | b branch_0x80304a60 75 | 76 | branch_0x80304a34: 77 | li r0, 0x0 78 | stw r0, 0x24(r4) 79 | stw r0, 0x28(r4) 80 | lwz r0, 0xc(r6) 81 | stw r0, 0x18(r4) 82 | b branch_0x80304a60 83 | 84 | branch_0x80304a4c: 85 | li r0, 0x0 86 | stw r0, 0x20(r4) 87 | stw r0, 0x24(r4) 88 | stw r0, 0x28(r4) 89 | stw r0, 0x18(r4) 90 | branch_0x80304a60: 91 | stw r5, 0x34(r4) 92 | li r3, 0xa 93 | li r0, 0x0 94 | stw r8, 0x10(r4) 95 | cmplwi r5, 0x0 96 | stb r9, 0x4(r4) 97 | stw r10, 0x3c(r4) 98 | stb r3, 0x2(r4) 99 | lbz r3, R13Off_m0x74d0(r13) 100 | stb r3, 0x5(r4) 101 | sth r0, 0x6(r4) 102 | stw r0, 0x14(r4) 103 | beqlr- 104 | 105 | stw r4, 0x0(r5) 106 | blr 107 | 108 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/mem.s: -------------------------------------------------------------------------------- 1 | 2 | .globl memcmp 3 | memcmp: # 0x803392a4 4 | addi r6, r3, -0x1 5 | addi r4, r4, -0x1 6 | addi r5, r5, 0x1 7 | b branch_0x803392d8 8 | 9 | branch_0x803392b4: 10 | lbzu r3, 0x1(r6) 11 | lbzu r0, 0x1(r4) 12 | cmplw r3, r0 13 | beq- branch_0x803392d8 14 | bge- branch_0x803392d0 15 | li r3, -0x1 16 | blr 17 | 18 | branch_0x803392d0: 19 | li r3, 0x1 20 | blr 21 | 22 | branch_0x803392d8: 23 | subic. r5, r5, 0x1 24 | bne+ branch_0x803392b4 25 | li r3, 0x0 26 | blr 27 | 28 | 29 | .globl memchr 30 | memchr: # 0x803392e8 31 | clrlwi r4, r4, 24 32 | addi r3, r3, -0x1 33 | addi r5, r5, 0x1 34 | b branch_0x80339304 35 | 36 | branch_0x803392f8: 37 | lbzu r0, 0x1(r3) 38 | cmplw r0, r4 39 | beqlr- 40 | 41 | branch_0x80339304: 42 | subic. r5, r5, 0x1 43 | bne+ branch_0x803392f8 44 | li r3, 0x0 45 | blr 46 | 47 | 48 | .globl memmove 49 | memmove: # 0x80339314 50 | mflr r0 51 | cmplwi r5, 0x20 52 | stw r0, 0x4(sp) 53 | stwu sp, -0x20(sp) 54 | stw r31, 0x1c(sp) 55 | addi r31, r3, 0x0 56 | subfc r3, r31, r4 57 | subfe r0, r0, r0 58 | neg r3, r0 59 | blt- branch_0x8033938c 60 | xor r0, r31, r4 61 | clrlwi. r0, r0, 30 62 | beq- branch_0x80339368 63 | cmpwi r3, 0x0 64 | bne- branch_0x8033935c 65 | mr r3, r31 66 | bl __copy_longs_unaligned 67 | b branch_0x80339384 68 | 69 | branch_0x8033935c: 70 | mr r3, r31 71 | bl __copy_longs_rev_unaligned 72 | b branch_0x80339384 73 | 74 | branch_0x80339368: 75 | cmpwi r3, 0x0 76 | bne- branch_0x8033937c 77 | mr r3, r31 78 | bl __copy_longs_aligned 79 | b branch_0x80339384 80 | 81 | branch_0x8033937c: 82 | mr r3, r31 83 | bl __copy_longs_rev_aligned 84 | branch_0x80339384: 85 | mr r3, r31 86 | b branch_0x803393dc 87 | 88 | branch_0x8033938c: 89 | cmpwi r3, 0x0 90 | bne- branch_0x803393b8 91 | addi r3, r4, -0x1 92 | addi r4, r31, -0x1 93 | addi r5, r5, 0x1 94 | b branch_0x803393ac 95 | 96 | branch_0x803393a4: 97 | lbzu r0, 0x1(r3) 98 | stbu r0, 0x1(r4) 99 | branch_0x803393ac: 100 | subic. r5, r5, 0x1 101 | bne+ branch_0x803393a4 102 | b branch_0x803393d8 103 | 104 | branch_0x803393b8: 105 | add r3, r4, r5 106 | add r4, r31, r5 107 | addi r5, r5, 0x1 108 | b branch_0x803393d0 109 | 110 | branch_0x803393c8: 111 | lbzu r0, -0x1(r3) 112 | stbu r0, -0x1(r4) 113 | branch_0x803393d0: 114 | subic. r5, r5, 0x1 115 | bne+ branch_0x803393c8 116 | branch_0x803393d8: 117 | mr r3, r31 118 | branch_0x803393dc: 119 | lwz r0, 0x24(sp) 120 | lwz r31, 0x1c(sp) 121 | addi sp, sp, 0x20 122 | mtlr r0 123 | blr 124 | 125 | -------------------------------------------------------------------------------- /source/System/THPRender.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__10TTHPRenderFv 3 | __dt__10TTHPRenderFv: # 0x802a983c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x802a9894 12 | lis r3, __vvt__10TTHPRender@ha 13 | addi r0, r3, __vvt__10TTHPRender@l 14 | stw r0, 0x0(r30) 15 | beq- branch_0x802a9884 16 | lis r3, __vvt__Q26JDrama8TViewObj@ha 17 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 18 | stw r0, 0x0(r30) 19 | addi r3, r30, 0x0 20 | li r4, 0x0 21 | bl __dt__Q26JDrama8TNameRefFv 22 | branch_0x802a9884: 23 | extsh. r0, r31 24 | ble- branch_0x802a9894 25 | mr r3, r30 26 | bl __dl__FPv 27 | branch_0x802a9894: 28 | lwz r0, 0x1c(sp) 29 | mr r3, r30 30 | lwz r31, 0x14(sp) 31 | lwz r30, 0x10(sp) 32 | mtlr r0 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl perform__10TTHPRenderFUlPQ26JDrama9TGraphics 38 | perform__10TTHPRenderFUlPQ26JDrama9TGraphics: # 0x802a98b0 39 | mflr r0 40 | stw r0, 0x4(sp) 41 | rlwinm. r0, r4, 0, 28, 28 42 | stwu sp, -0x20(sp) 43 | stw r31, 0x1c(sp) 44 | addi r31, r5, 0x0 45 | stw r30, 0x18(sp) 46 | addi r30, r3, 0x0 47 | beq- branch_0x802a9908 48 | bl SMS_DrawInit__Fv 49 | addi r3, r31, 0xb4 50 | li r4, 0x0 51 | bl GXLoadPosMtxImm 52 | li r3, 0x0 53 | bl GXSetCurrentMtx 54 | lwz r4, 0x10(r30) 55 | li r3, 0x0 56 | lwz r5, 0x14(r30) 57 | lwz r6, 0x18(r30) 58 | lwz r7, 0x1c(r30) 59 | bl THPPlayerDrawCurrentFrame 60 | stw r3, 0x20(r30) 61 | branch_0x802a9908: 62 | lwz r0, 0x24(sp) 63 | lwz r31, 0x1c(sp) 64 | lwz r30, 0x18(sp) 65 | mtlr r0 66 | addi sp, sp, 0x20 67 | blr 68 | 69 | 70 | .globl __ct__10TTHPRenderFPCc 71 | __ct__10TTHPRenderFPCc: # 0x802a9920 72 | mflr r0 73 | lis r5, __vvt__Q26JDrama8TNameRef@h 74 | stw r0, 0x4(sp) 75 | addi r0, r5, __vvt__Q26JDrama8TNameRef@l 76 | stwu sp, -0x20(sp) 77 | stw r31, 0x1c(sp) 78 | addi r31, r3, 0x0 79 | stw r0, 0x0(r3) 80 | mr r3, r4 81 | stw r4, 0x4(r31) 82 | bl calcKeyCode__Q26JDrama8TNameRefFPCc 83 | sth r3, 0x8(r31) 84 | lis r3, __vvt__Q26JDrama8TViewObj@ha 85 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 86 | stw r0, 0x0(r31) 87 | li r4, 0x0 88 | lis r3, __vvt__10TTHPRender@ha 89 | sth r4, 0xc(r31) 90 | addi r3, r3, __vvt__10TTHPRender@l 91 | li r0, -0x1 92 | stw r3, 0x0(r31) 93 | mr r3, r31 94 | stw r4, 0x10(r31) 95 | stw r4, 0x14(r31) 96 | stw r0, 0x20(r31) 97 | lwz r0, 0x24(sp) 98 | lwz r31, 0x1c(sp) 99 | addi sp, sp, 0x20 100 | mtlr r0 101 | blr 102 | 103 | -------------------------------------------------------------------------------- /source/gd/GDBase.s: -------------------------------------------------------------------------------- 1 | 2 | .globl GDInitGDLObj 3 | GDInitGDLObj: # 0x803646f8 4 | stw r4, 0x0(r3) 5 | add r0, r4, r5 6 | stw r4, 0x8(r3) 7 | stw r0, 0xc(r3) 8 | stw r5, 0x4(r3) 9 | blr 10 | 11 | 12 | .globl GDFlushCurrToMem 13 | GDFlushCurrToMem: # 0x80364710 14 | mflr r0 15 | stw r0, 0x4(sp) 16 | stwu sp, -0x8(sp) 17 | lwz r4, R13Off_m0x5778(r13) 18 | lwz r3, 0x0(r4) 19 | lwz r4, 0x4(r4) 20 | bl DCFlushRange 21 | lwz r0, 0xc(sp) 22 | addi sp, sp, 0x8 23 | mtlr r0 24 | blr 25 | 26 | 27 | .globl GDPadCurr32 28 | GDPadCurr32: # 0x8036473c 29 | lwz r3, R13Off_m0x5778(r13) 30 | lwz r0, 0x8(r3) 31 | clrlwi. r0, r0, 27 32 | beqlr- 33 | 34 | cmplwi r0, 0x20 35 | subfic r3, r0, 0x20 36 | li r6, 0x0 37 | bgelr- 38 | 39 | srwi. r0, r3, 3 40 | mtctr r0 41 | beq- branch_0x80364814 42 | branch_0x80364768: 43 | lwz r5, R13Off_m0x5778(r13) 44 | lwz r4, 0x8(r5) 45 | addi r0, r4, 0x1 46 | stw r0, 0x8(r5) 47 | stb r6, 0x0(r4) 48 | lwz r5, R13Off_m0x5778(r13) 49 | lwz r4, 0x8(r5) 50 | addi r0, r4, 0x1 51 | stw r0, 0x8(r5) 52 | stb r6, 0x0(r4) 53 | lwz r5, R13Off_m0x5778(r13) 54 | lwz r4, 0x8(r5) 55 | addi r0, r4, 0x1 56 | stw r0, 0x8(r5) 57 | stb r6, 0x0(r4) 58 | lwz r5, R13Off_m0x5778(r13) 59 | lwz r4, 0x8(r5) 60 | addi r0, r4, 0x1 61 | stw r0, 0x8(r5) 62 | stb r6, 0x0(r4) 63 | lwz r5, R13Off_m0x5778(r13) 64 | lwz r4, 0x8(r5) 65 | addi r0, r4, 0x1 66 | stw r0, 0x8(r5) 67 | stb r6, 0x0(r4) 68 | lwz r5, R13Off_m0x5778(r13) 69 | lwz r4, 0x8(r5) 70 | addi r0, r4, 0x1 71 | stw r0, 0x8(r5) 72 | stb r6, 0x0(r4) 73 | lwz r5, R13Off_m0x5778(r13) 74 | lwz r4, 0x8(r5) 75 | addi r0, r4, 0x1 76 | stw r0, 0x8(r5) 77 | stb r6, 0x0(r4) 78 | lwz r5, R13Off_m0x5778(r13) 79 | lwz r4, 0x8(r5) 80 | addi r0, r4, 0x1 81 | stw r0, 0x8(r5) 82 | stb r6, 0x0(r4) 83 | bdnz+ branch_0x80364768 84 | andi. r3, r3, 0x7 85 | beqlr- 86 | 87 | branch_0x80364814: 88 | mtctr r3 89 | branch_0x80364818: 90 | lwz r5, R13Off_m0x5778(r13) 91 | lwz r4, 0x8(r5) 92 | addi r0, r4, 0x1 93 | stw r0, 0x8(r5) 94 | stb r6, 0x0(r4) 95 | bdnz+ branch_0x80364818 96 | blr 97 | 98 | 99 | .globl GDOverflowed 100 | GDOverflowed: # 0x80364834 101 | mflr r0 102 | stw r0, 0x4(sp) 103 | stwu sp, -0x8(sp) 104 | lwz r12, R13Off_m0x5774(r13) 105 | cmplwi r12, 0x0 106 | beq- branch_0x80364854 107 | mtlr r12 108 | blrl 109 | branch_0x80364854: 110 | lwz r0, 0xc(sp) 111 | addi sp, sp, 0x8 112 | mtlr r0 113 | blr 114 | 115 | 116 | .globl GDSetOverflowCallback 117 | GDSetOverflowCallback: # 0x80364864 118 | stw r3, R13Off_m0x5774(r13) 119 | blr 120 | 121 | -------------------------------------------------------------------------------- /source/JSystem/JDRCharacter.s: -------------------------------------------------------------------------------- 1 | 2 | .globl load__Q26JDrama10TSmplCharaFR20JSUMemoryInputStream 3 | load__Q26JDrama10TSmplCharaFR20JSUMemoryInputStream: # 0x802f7b1c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x68(sp) 7 | stw r31, 0x64(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x60(sp) 10 | addi r30, r3, 0x0 11 | bl load__Q26JDrama8TNameRefFR20JSUMemoryInputStream 12 | addi r3, r31, 0x0 13 | addi r4, sp, 0x10 14 | li r5, 0x50 15 | bl readString__14JSUInputStreamFPcUs 16 | addi r3, r30, 0x0 17 | addi r4, sp, 0x10 18 | bl mountArc__Q26JDrama10TSmplCharaFPCc 19 | lwz r0, 0x6c(sp) 20 | lwz r31, 0x64(sp) 21 | lwz r30, 0x60(sp) 22 | mtlr r0 23 | addi sp, sp, 0x68 24 | blr 25 | 26 | 27 | .globl __dt__Q26JDrama10TSmplCharaFv 28 | __dt__Q26JDrama10TSmplCharaFv: # 0x802f7b70 29 | mflr r0 30 | stw r0, 0x4(sp) 31 | stwu sp, -0x18(sp) 32 | stw r31, 0x14(sp) 33 | addi r31, r4, 0x0 34 | stw r30, 0x10(sp) 35 | mr. r30, r3 36 | beq- branch_0x802f7be8 37 | lis r3, __vvt__Q26JDrama10TSmplChara@h 38 | addi r0, r3, __vvt__Q26JDrama10TSmplChara@l 39 | stw r0, 0x0(r30) 40 | lwz r3, 0xc(r30) 41 | cmplwi r3, 0x0 42 | beq- branch_0x802f7bb8 43 | lwz r12, 0x0(r3) 44 | lwz r12, 0xc(r12) 45 | mtlr r12 46 | blrl 47 | branch_0x802f7bb8: 48 | cmplwi r30, 0x0 49 | beq- branch_0x802f7bd8 50 | lis r3, __vvt__Q26JDrama10TCharacter@ha 51 | addi r0, r3, __vvt__Q26JDrama10TCharacter@l 52 | stw r0, 0x0(r30) 53 | addi r3, r30, 0x0 54 | li r4, 0x0 55 | bl __dt__Q26JDrama8TNameRefFv 56 | branch_0x802f7bd8: 57 | extsh. r0, r31 58 | ble- branch_0x802f7be8 59 | mr r3, r30 60 | bl __dl__FPv 61 | branch_0x802f7be8: 62 | lwz r0, 0x1c(sp) 63 | mr r3, r30 64 | lwz r31, 0x14(sp) 65 | lwz r30, 0x10(sp) 66 | mtlr r0 67 | addi sp, sp, 0x18 68 | blr 69 | 70 | 71 | .globl getRes__Q26JDrama10TSmplCharaCFPCc 72 | getRes__Q26JDrama10TSmplCharaCFPCc: # 0x802f7c04 73 | mflr r0 74 | stw r0, 0x4(sp) 75 | stwu sp, -0x8(sp) 76 | lwz r3, 0xc(r3) 77 | lwz r12, 0x0(r3) 78 | lwz r12, 0x14(r12) 79 | mtlr r12 80 | blrl 81 | lwz r0, 0xc(sp) 82 | addi sp, sp, 0x8 83 | mtlr r0 84 | blr 85 | 86 | 87 | .globl mountArc__Q26JDrama10TSmplCharaFPCc 88 | mountArc__Q26JDrama10TSmplCharaFPCc: # 0x802f7c34 89 | mflr r0 90 | li r6, 0x1 91 | stw r0, 0x4(sp) 92 | stwu sp, -0x20(sp) 93 | stw r31, 0x1c(sp) 94 | addi r31, r3, 0x0 95 | addi r3, r4, 0x0 96 | lwz r5, R13Off_m0x5f2c(r13) 97 | li r4, 0x1 98 | bl mount__10JKRArchiveFPCcQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection 99 | stw r3, 0xc(r31) 100 | lwz r0, 0x24(sp) 101 | lwz r31, 0x1c(sp) 102 | addi sp, sp, 0x20 103 | mtlr r0 104 | blr 105 | 106 | -------------------------------------------------------------------------------- /source/JSystem/dspproc.s: -------------------------------------------------------------------------------- 1 | 2 | .globl DSPReleaseHalt__Fv 3 | DSPReleaseHalt__Fv: # 0x803372e0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x20(sp) 7 | stmw r30, 0x18(sp) 8 | bl DSP_CreateMap__Fv 9 | addi r30, r4, 0x0 10 | li r5, 0x20 11 | bl __shr2u 12 | stw r4, 0x8(sp) 13 | li r0, -0x1 14 | and r0, r30, r0 15 | addi r3, sp, 0x8 16 | stw r0, 0xc(sp) 17 | li r4, 0x0 18 | li r5, 0x0 19 | bl DSPSendCommands2__FPUlUlPFUs_v 20 | lwz r0, 0x24(sp) 21 | lmw r30, 0x18(sp) 22 | addi sp, sp, 0x20 23 | mtlr r0 24 | blr 25 | 26 | branch_0x80337334: 27 | .long 0x0 28 | .long 0x0 29 | .long 0x0 30 | 31 | .globl setup_callback__FUs 32 | setup_callback__FUs: # 0x80337340 33 | li r0, 0x0 34 | stw r0, R13Off_m0x5ad0(r13) 35 | blr 36 | 37 | branch_0x8033734c: 38 | .long 0x0 39 | .long 0x0 40 | .long 0x0 41 | .long 0x0 42 | .long 0x0 43 | 44 | .globl DsetupTable__FUlUlUlUlUl 45 | DsetupTable__FUlUlUlUlUl: # 0x80337360 46 | mflr r0 47 | li r8, 0x1 48 | stw r0, 0x4(sp) 49 | clrlwi r0, r3, 16 50 | oris r0, r0, 0x8100 51 | lis r3, setup_callback__FUs@h 52 | stwu sp, -0x30(sp) 53 | stw r0, 0x1c(sp) 54 | addi r0, r3, setup_callback__FUs@l 55 | addi r3, sp, 0x1c 56 | stw r4, 0x20(sp) 57 | li r4, 0x5 58 | stw r5, 0x24(sp) 59 | mr r5, r0 60 | stw r6, 0x28(sp) 61 | stw r7, 0x2c(sp) 62 | stw r8, R13Off_m0x5ad0(r13) 63 | bl DSPSendCommands2__FPUlUlPFUs_v 64 | branch_0x803373a8: 65 | lwz r0, R13Off_m0x5ad0(r13) 66 | cmpwi r0, 0x0 67 | bne+ branch_0x803373a8 68 | lwz r0, 0x34(sp) 69 | addi sp, sp, 0x30 70 | mtlr r0 71 | blr 72 | 73 | branch_0x803373c4: 74 | .long 0x0 75 | .long 0x0 76 | .long 0x0 77 | .long 0x0 78 | .long 0x0 79 | .long 0x0 80 | .long 0x0 81 | 82 | .globl DsetMixerLevel__Ff 83 | DsetMixerLevel__Ff: # 0x803373e0 84 | stwu sp, -0x18(sp) 85 | lfs f0, 0x9a8(r2) 86 | fmuls f0, f0, f1 87 | fctiwz f0, f0 88 | stfd f0, 0x10(sp) 89 | lwz r0, 0x14(sp) 90 | sth r0, -0x73a8(r13) 91 | addi sp, sp, 0x18 92 | blr 93 | 94 | branch_0x80337404: 95 | .long 0x0 96 | .long 0x0 97 | .long 0x0 98 | .long 0x0 99 | .long 0x0 100 | .long 0x0 101 | .long 0x0 102 | 103 | .globl DsyncFrame__FUlUlUl 104 | DsyncFrame__FUlUlUl: # 0x80337420 105 | mflr r0 106 | clrlslwi r6, r3, 24, 16 107 | stw r0, 0x4(sp) 108 | oris r6, r6, 0x8200 109 | stwu sp, -0x28(sp) 110 | lhz r0, -0x73a8(r13) 111 | addi r3, sp, 0x18 112 | or r0, r6, r0 113 | stw r0, 0x18(sp) 114 | stw r4, 0x1c(sp) 115 | li r4, 0x3 116 | stw r5, 0x20(sp) 117 | li r5, 0x0 118 | bl DSPSendCommands2__FPUlUlPFUs_v 119 | lwz r0, 0x2c(sp) 120 | addi sp, sp, 0x28 121 | mtlr r0 122 | blr 123 | 124 | branch_0x80337468: 125 | .long 0x0 126 | .long 0x0 127 | .long 0x0 128 | .long 0x0 129 | .long 0x0 130 | .long 0x0 131 | -------------------------------------------------------------------------------- /source/TRK_MINNOW_DOLPHIN/mainloop.s: -------------------------------------------------------------------------------- 1 | 2 | .globl TRKHandleRequestEvent 3 | TRKHandleRequestEvent: # 0x8033d1e0 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x8(sp) 7 | lwz r3, 0x8(r3) 8 | bl TRKGetBuffer 9 | bl TRKDispatchMessage 10 | addi sp, sp, 0x8 11 | lwz r0, 0x4(sp) 12 | mtlr r0 13 | blr 14 | 15 | 16 | .globl TRKHandleSupportEvent 17 | TRKHandleSupportEvent: # 0x8033d208 18 | mflr r0 19 | stw r0, 0x4(sp) 20 | stwu sp, -0x8(sp) 21 | bl TRKTargetSupportRequest 22 | addi sp, sp, 0x8 23 | lwz r0, 0x4(sp) 24 | mtlr r0 25 | blr 26 | 27 | 28 | .globl TRKIdle 29 | TRKIdle: # 0x8033d228 30 | mflr r0 31 | stw r0, 0x4(sp) 32 | stwu sp, -0x8(sp) 33 | bl TRKTargetStopped 34 | cmpwi r3, 0x0 35 | bne- branch_0x8033d244 36 | bl TRKTargetContinue 37 | branch_0x8033d244: 38 | addi sp, sp, 0x8 39 | lwz r0, 0x4(sp) 40 | mtlr r0 41 | blr 42 | 43 | 44 | .globl TRKNubMainLoop 45 | TRKNubMainLoop: # 0x8033d254 46 | mflr r0 47 | lis r3, gTRKInputPendingPtr@h 48 | stw r0, 0x4(sp) 49 | stwu sp, -0x20(sp) 50 | stw r31, 0x1c(sp) 51 | addi r31, r3, gTRKInputPendingPtr@l 52 | stw r30, 0x18(sp) 53 | li r30, 0x0 54 | stw r29, 0x14(sp) 55 | li r29, 0x0 56 | b branch_0x8033d324 57 | 58 | branch_0x8033d280: 59 | addi r3, sp, 0x8 60 | bl TRKGetNextEvent 61 | cmpwi r3, 0x0 62 | beq- branch_0x8033d2f8 63 | lbz r0, 0x8(sp) 64 | li r29, 0x0 65 | cmpwi r0, 0x2 66 | beq- branch_0x8033d2c4 67 | bge- branch_0x8033d2b4 68 | cmpwi r0, 0x0 69 | beq- branch_0x8033d2ec 70 | bge- branch_0x8033d2d0 71 | b branch_0x8033d2ec 72 | 73 | branch_0x8033d2b4: 74 | cmpwi r0, 0x5 75 | beq- branch_0x8033d2e4 76 | bge- branch_0x8033d2ec 77 | b branch_0x8033d2d8 78 | 79 | branch_0x8033d2c4: 80 | addi r3, sp, 0x8 81 | bl TRKHandleRequestEvent 82 | b branch_0x8033d2ec 83 | 84 | branch_0x8033d2d0: 85 | li r30, 0x1 86 | b branch_0x8033d2ec 87 | 88 | branch_0x8033d2d8: 89 | addi r3, sp, 0x8 90 | bl TRKTargetInterrupt 91 | b branch_0x8033d2ec 92 | 93 | branch_0x8033d2e4: 94 | addi r3, sp, 0x8 95 | bl TRKHandleSupportEvent 96 | branch_0x8033d2ec: 97 | addi r3, sp, 0x8 98 | bl TRKDestructEvent 99 | b branch_0x8033d324 100 | 101 | branch_0x8033d2f8: 102 | cmpwi r29, 0x0 103 | beq- branch_0x8033d310 104 | lwz r3, 0x0(r31) 105 | lbz r0, 0x0(r3) 106 | cmplwi r0, 0x0 107 | beq- branch_0x8033d31c 108 | branch_0x8033d310: 109 | li r29, 0x1 110 | bl TRKGetInput 111 | b branch_0x8033d324 112 | 113 | branch_0x8033d31c: 114 | bl TRKIdle 115 | li r29, 0x0 116 | branch_0x8033d324: 117 | cmpwi r30, 0x0 118 | beq+ branch_0x8033d280 119 | lwz r31, 0x1c(sp) 120 | lwz r30, 0x18(sp) 121 | lwz r29, 0x14(sp) 122 | addi sp, sp, 0x20 123 | lwz r0, 0x4(sp) 124 | mtlr r0 125 | blr 126 | 127 | -------------------------------------------------------------------------------- /source/Camera/CameraCodeControl.s: -------------------------------------------------------------------------------- 1 | 2 | .globl controlByCameraCode___15CPolarSubCameraFPi 3 | controlByCameraCode___15CPolarSubCameraFPi: # 0x80022de4 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | li r0, -0x1 7 | stwu sp, -0x78(sp) 8 | stmw r27, 0x64(sp) 9 | addi r30, r4, 0x0 10 | addi r29, r3, 0x0 11 | li r28, 0x1 12 | stw r0, 0x0(r4) 13 | bl SMS_IsMarioOpeningDoor__Fv 14 | clrlwi. r0, r3, 24 15 | beq- branch_0x80022e68 16 | lwz r0, 0x50(r29) 17 | cmpwi r0, 0x42 18 | bne- branch_0x80022e58 19 | lwz r3, R13Off_m0x7110(r13) 20 | lwz r0, 0x18(r3) 21 | cmplwi r0, 0x78 22 | bne- branch_0x80022e58 23 | addi r3, r29, 0x0 24 | li r4, 0x14 25 | li r5, 0x1 26 | bl changeCamModeSpecifyFrame___15CPolarSubCameraFii 27 | lwz r4, R13Off_m0x60ac(r13) 28 | mr r3, r29 29 | lfs f1, 0xa8(r29) 30 | lha r4, 0x0(r4) 31 | addi r4, r4, 0x9c4 32 | bl warpPosAndAt__15CPolarSubCameraFfs 33 | branch_0x80022e58: 34 | lwz r3, 0x120(r29) 35 | bl onNeutralMarioKey__13TMarioGamePadFv 36 | li r28, 0x0 37 | b branch_0x80022f34 38 | 39 | branch_0x80022e68: 40 | lwz r4, R13Off_m0x60b4(r13) 41 | li r31, 0x0 42 | lwz r5, R13Off_m0x70f0(r13) 43 | lwz r3, 0x0(r4) 44 | lbz r27, 0x10(r5) 45 | lwz r0, 0x4(r4) 46 | lfs f0, -0x7968(r2) 47 | stw r3, 0x54(sp) 48 | stw r0, 0x58(sp) 49 | lwz r0, 0x8(r4) 50 | stw r0, 0x5c(sp) 51 | lfs f1, 0x58(sp) 52 | fadds f0, f1, f0 53 | stfs f0, 0x58(sp) 54 | b branch_0x80022f2c 55 | 56 | branch_0x80022ea4: 57 | lwz r3, R13Off_m0x70f0(r13) 58 | addi r5, r31, 0x0 59 | addi r4, sp, 0x54 60 | bl isInCube__16TCubeManagerBaseCFRC3Vecl 61 | clrlwi. r0, r3, 24 62 | beq- branch_0x80022f28 63 | lwz r3, R13Off_m0x70f0(r13) 64 | slwi r0, r31, 2 65 | lwz r4, 0x14(r3) 66 | lwz r4, 0x10(r4) 67 | add r4, r4, r0 68 | lwz r4, 0x0(r4) 69 | lwz r28, 0x38(r4) 70 | cmplwi r28, 0x0 71 | addi r4, r28, 0x0 72 | beq- branch_0x80022f14 73 | lwz r3, 0x50(r29) 74 | lwz r0, 0x24(r28) 75 | cmpw r3, r0 76 | bne- branch_0x80022f00 77 | lwz r0, 0x70(r29) 78 | cmplw r28, r0 79 | beq- branch_0x80022f08 80 | branch_0x80022f00: 81 | mr r3, r29 82 | bl changeCamModeSpecifyCamMapTool___15CPolarSubCameraFPC14TCameraMapTool 83 | branch_0x80022f08: 84 | lwz r0, 0x24(r28) 85 | stw r0, 0x0(r30) 86 | b branch_0x80022f20 87 | 88 | branch_0x80022f14: 89 | mr r4, r31 90 | bl getDataNo__16TCubeManagerBaseCFl 91 | stw r3, 0x0(r30) 92 | branch_0x80022f20: 93 | li r3, 0x1 94 | b branch_0x80022f38 95 | 96 | branch_0x80022f28: 97 | addi r31, r31, 0x1 98 | branch_0x80022f2c: 99 | cmpw r31, r27 100 | blt+ branch_0x80022ea4 101 | branch_0x80022f34: 102 | mr r3, r28 103 | branch_0x80022f38: 104 | lmw r27, 0x64(sp) 105 | lwz r0, 0x7c(sp) 106 | addi sp, sp, 0x78 107 | mtlr r0 108 | blr 109 | 110 | -------------------------------------------------------------------------------- /source/JSystem/JSUOutputStream.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__15JSUOutputStreamFv 3 | __dt__15JSUOutputStreamFv: # 0x802c5590 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | mr. r31, r3 9 | beq- branch_0x802c55d4 10 | lis r3, __vvt__15JSUOutputStream@h 11 | addi r0, r3, __vvt__15JSUOutputStream@l 12 | stw r0, 0x0(r31) 13 | beq- branch_0x802c55c4 14 | lis r3, __vvt__10JSUIosBase@ha 15 | addi r0, r3, __vvt__10JSUIosBase@l 16 | stw r0, 0x0(r31) 17 | branch_0x802c55c4: 18 | extsh. r0, r4 19 | ble- branch_0x802c55d4 20 | mr r3, r31 21 | bl __dl__FPv 22 | branch_0x802c55d4: 23 | lwz r0, 0x1c(sp) 24 | mr r3, r31 25 | lwz r31, 0x14(sp) 26 | addi sp, sp, 0x18 27 | mtlr r0 28 | blr 29 | 30 | 31 | .globl write__15JSUOutputStreamFPCvl 32 | write__15JSUOutputStreamFPCvl: # 0x802c55ec 33 | mflr r0 34 | stw r0, 0x4(sp) 35 | stwu sp, -0x20(sp) 36 | stw r31, 0x1c(sp) 37 | mr r31, r5 38 | stw r30, 0x18(sp) 39 | mr r30, r3 40 | lwz r12, 0x0(r30) 41 | lwz r12, 0x10(r12) 42 | mtlr r12 43 | blrl 44 | cmpw r3, r31 45 | beq- branch_0x802c562c 46 | lbz r0, 0x4(r30) 47 | ori r0, r0, 0x1 48 | stb r0, 0x4(r30) 49 | branch_0x802c562c: 50 | lwz r0, 0x24(sp) 51 | lwz r31, 0x1c(sp) 52 | lwz r30, 0x18(sp) 53 | mtlr r0 54 | addi sp, sp, 0x20 55 | blr 56 | 57 | 58 | .globl skip__15JSUOutputStreamFlSc 59 | skip__15JSUOutputStreamFlSc: # 0x802c5644 60 | mflr r0 61 | stw r0, 0x4(sp) 62 | stwu sp, -0x28(sp) 63 | stw r31, 0x24(sp) 64 | li r31, 0x0 65 | stw r30, 0x20(sp) 66 | addi r30, r4, 0x0 67 | stw r29, 0x1c(sp) 68 | addi r29, r3, 0x0 69 | stb r5, 0x10(sp) 70 | b branch_0x802c56a8 71 | 72 | branch_0x802c5670: 73 | mr r3, r29 74 | lwz r12, 0x0(r29) 75 | addi r4, sp, 0x10 76 | li r5, 0x1 77 | lwz r12, 0x10(r12) 78 | mtlr r12 79 | blrl 80 | cmplwi r3, 0x1 81 | beq- branch_0x802c56a4 82 | lbz r0, 0x4(r29) 83 | ori r0, r0, 0x1 84 | stb r0, 0x4(r29) 85 | b branch_0x802c56b0 86 | 87 | branch_0x802c56a4: 88 | addi r31, r31, 0x1 89 | branch_0x802c56a8: 90 | cmpw r31, r30 91 | blt+ branch_0x802c5670 92 | branch_0x802c56b0: 93 | lwz r0, 0x2c(sp) 94 | mr r3, r31 95 | lwz r31, 0x24(sp) 96 | lwz r30, 0x20(sp) 97 | mtlr r0 98 | lwz r29, 0x1c(sp) 99 | addi sp, sp, 0x28 100 | blr 101 | 102 | 103 | .globl seek__21JSURandomOutputStreamFl17JSUStreamSeekFrom 104 | seek__21JSURandomOutputStreamFl17JSUStreamSeekFrom: # 0x802c56d0 105 | mflr r0 106 | stw r0, 0x4(sp) 107 | stwu sp, -0x20(sp) 108 | stw r31, 0x1c(sp) 109 | mr r31, r3 110 | lwz r12, 0x0(r31) 111 | lwz r12, 0x24(r12) 112 | mtlr r12 113 | blrl 114 | lbz r0, 0x4(r31) 115 | clrrwi r0, r0, 1 116 | stb r0, 0x4(r31) 117 | lwz r0, 0x24(sp) 118 | lwz r31, 0x1c(sp) 119 | addi sp, sp, 0x20 120 | mtlr r0 121 | blr 122 | 123 | -------------------------------------------------------------------------------- /source/MSL_C_PPCEABI_bare_H/uart_console_io.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __close_console 3 | __close_console: # 0x8033ba88 4 | li r3, 0x0 5 | blr 6 | 7 | 8 | .globl __write_console 9 | __write_console: # 0x8033ba90 10 | mflr r0 11 | li r3, 0x0 12 | stw r0, 0x4(sp) 13 | stwu sp, -0x28(sp) 14 | stw r31, 0x24(sp) 15 | addi r31, r5, 0x0 16 | stw r30, 0x20(sp) 17 | addi r30, r4, 0x0 18 | lwz r0, R13Off_m0x5a80(r13) 19 | cmpwi r0, 0x0 20 | bne- branch_0x8033bad8 21 | lis r3, unk_0000e100@ha 22 | addi r3, r3, unk_0000e100@l 23 | bl InitializeUART 24 | cmpwi r3, 0x0 25 | bne- branch_0x8033bad8 26 | li r0, 0x1 27 | stw r0, R13Off_m0x5a80(r13) 28 | branch_0x8033bad8: 29 | cmpwi r3, 0x0 30 | beq- branch_0x8033bae8 31 | li r3, 0x1 32 | b branch_0x8033bb10 33 | 34 | branch_0x8033bae8: 35 | mr r3, r30 36 | lwz r4, 0x0(r31) 37 | bl WriteUARTN 38 | cmpwi r3, 0x0 39 | beq- branch_0x8033bb0c 40 | li r0, 0x0 41 | stw r0, 0x0(r31) 42 | li r3, 0x1 43 | b branch_0x8033bb10 44 | 45 | branch_0x8033bb0c: 46 | li r3, 0x0 47 | branch_0x8033bb10: 48 | lwz r0, 0x2c(sp) 49 | lwz r31, 0x24(sp) 50 | lwz r30, 0x20(sp) 51 | mtlr r0 52 | addi sp, sp, 0x28 53 | blr 54 | 55 | 56 | .globl __read_console 57 | __read_console: # 0x8033bb28 58 | mflr r0 59 | li r3, 0x0 60 | stw r0, 0x4(sp) 61 | stwu sp, -0x30(sp) 62 | stw r31, 0x2c(sp) 63 | stw r30, 0x28(sp) 64 | addi r30, r5, 0x0 65 | stw r29, 0x24(sp) 66 | addi r29, r4, 0x0 67 | lwz r0, R13Off_m0x5a80(r13) 68 | cmpwi r0, 0x0 69 | bne- branch_0x8033bb74 70 | lis r3, unk_0000e100@ha 71 | addi r3, r3, unk_0000e100@l 72 | bl InitializeUART 73 | cmpwi r3, 0x0 74 | bne- branch_0x8033bb74 75 | li r0, 0x1 76 | stw r0, R13Off_m0x5a80(r13) 77 | branch_0x8033bb74: 78 | cmpwi r3, 0x0 79 | beq- branch_0x8033bb84 80 | li r3, 0x1 81 | b branch_0x8033bbec 82 | 83 | branch_0x8033bb84: 84 | lwz r31, 0x0(r30) 85 | li r0, 0x0 86 | li r3, 0x0 87 | stw r0, 0x0(r30) 88 | b branch_0x8033bbc0 89 | 90 | branch_0x8033bb98: 91 | addi r3, r29, 0x0 92 | li r4, 0x1 93 | bl ReadUARTN 94 | lwz r4, 0x0(r30) 95 | addi r0, r4, 0x1 96 | stw r0, 0x0(r30) 97 | lbz r0, 0x0(r29) 98 | cmplwi r0, 0xd 99 | beq- branch_0x8033bbd4 100 | addi r29, r29, 0x1 101 | branch_0x8033bbc0: 102 | lwz r0, 0x0(r30) 103 | cmplw r0, r31 104 | bgt- branch_0x8033bbd4 105 | cmpwi r3, 0x0 106 | beq+ branch_0x8033bb98 107 | branch_0x8033bbd4: 108 | cmpwi r3, 0x0 109 | bne- branch_0x8033bbe4 110 | li r0, 0x0 111 | b branch_0x8033bbe8 112 | 113 | branch_0x8033bbe4: 114 | li r0, 0x1 115 | branch_0x8033bbe8: 116 | clrlwi r3, r0, 24 117 | branch_0x8033bbec: 118 | lwz r0, 0x34(sp) 119 | lwz r31, 0x2c(sp) 120 | lwz r30, 0x28(sp) 121 | mtlr r0 122 | lwz r29, 0x24(sp) 123 | addi sp, sp, 0x30 124 | blr 125 | 126 | -------------------------------------------------------------------------------- /source/System/ZBufferCatch.s: -------------------------------------------------------------------------------- 1 | 2 | .globl __dt__11TAlphaCatchFv 3 | __dt__11TAlphaCatchFv: # 0x802a5834 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | stwu sp, -0x18(sp) 7 | stw r31, 0x14(sp) 8 | addi r31, r4, 0x0 9 | stw r30, 0x10(sp) 10 | mr. r30, r3 11 | beq- branch_0x802a588c 12 | lis r3, __vvt__11TAlphaCatch@ha 13 | addi r0, r3, __vvt__11TAlphaCatch@l 14 | stw r0, 0x0(r30) 15 | beq- branch_0x802a587c 16 | lis r3, __vvt__Q26JDrama8TViewObj@ha 17 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 18 | stw r0, 0x0(r30) 19 | addi r3, r30, 0x0 20 | li r4, 0x0 21 | bl __dt__Q26JDrama8TNameRefFv 22 | branch_0x802a587c: 23 | extsh. r0, r31 24 | ble- branch_0x802a588c 25 | mr r3, r30 26 | bl __dl__FPv 27 | branch_0x802a588c: 28 | lwz r0, 0x1c(sp) 29 | mr r3, r30 30 | lwz r31, 0x14(sp) 31 | lwz r30, 0x10(sp) 32 | mtlr r0 33 | addi sp, sp, 0x18 34 | blr 35 | 36 | 37 | .globl perform__11TAlphaCatchFUlPQ26JDrama9TGraphics 38 | perform__11TAlphaCatchFUlPQ26JDrama9TGraphics: # 0x802a58a8 39 | mflr r0 40 | stw r0, 0x4(sp) 41 | rlwinm. r0, r4, 0, 28, 28 42 | stwu sp, -0x8(sp) 43 | beq- branch_0x802a58dc 44 | lwz r3, R13Off_m0x5ff0(r13) 45 | bl pushBreakPoint__16TDrawSyncManagerFv 46 | li r3, 0x7c 47 | bl GXSetDrawSync 48 | lwz r3, R13Off_m0x5ff0(r13) 49 | bl pushBreakPoint__16TDrawSyncManagerFv 50 | li r3, 0x0 51 | bl GXSetDrawSync 52 | branch_0x802a58dc: 53 | lwz r0, 0xc(sp) 54 | addi sp, sp, 0x8 55 | mtlr r0 56 | blr 57 | 58 | 59 | .globl perform__13TZBufferCatchFUlPQ26JDrama9TGraphics 60 | perform__13TZBufferCatchFUlPQ26JDrama9TGraphics: # 0x802a58ec 61 | mflr r0 62 | stw r0, 0x4(sp) 63 | rlwinm. r0, r4, 0, 28, 28 64 | stwu sp, -0x8(sp) 65 | beq- branch_0x802a5914 66 | lwz r3, R13Off_m0x5ff0(r13) 67 | bl pushBreakPoint__16TDrawSyncManagerFv 68 | bl ReInitializeGX 69 | li r3, 0x7d 70 | bl GXSetDrawSync 71 | branch_0x802a5914: 72 | lwz r0, 0xc(sp) 73 | addi sp, sp, 0x8 74 | mtlr r0 75 | blr 76 | 77 | 78 | .globl __dt__13TZBufferCatchFv 79 | __dt__13TZBufferCatchFv: # 0x802a5924 80 | mflr r0 81 | stw r0, 0x4(sp) 82 | stwu sp, -0x18(sp) 83 | stw r31, 0x14(sp) 84 | addi r31, r4, 0x0 85 | stw r30, 0x10(sp) 86 | mr. r30, r3 87 | beq- branch_0x802a597c 88 | lis r3, __vvt__13TZBufferCatch@ha 89 | addi r0, r3, __vvt__13TZBufferCatch@l 90 | stw r0, 0x0(r30) 91 | beq- branch_0x802a596c 92 | lis r3, __vvt__Q26JDrama8TViewObj@ha 93 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 94 | stw r0, 0x0(r30) 95 | addi r3, r30, 0x0 96 | li r4, 0x0 97 | bl __dt__Q26JDrama8TNameRefFv 98 | branch_0x802a596c: 99 | extsh. r0, r31 100 | ble- branch_0x802a597c 101 | mr r3, r30 102 | bl __dl__FPv 103 | branch_0x802a597c: 104 | lwz r0, 0x1c(sp) 105 | mr r3, r30 106 | lwz r31, 0x14(sp) 107 | lwz r30, 0x10(sp) 108 | mtlr r0 109 | addi sp, sp, 0x18 110 | blr 111 | 112 | -------------------------------------------------------------------------------- /source/dvd/dvderror.s: -------------------------------------------------------------------------------- 1 | 2 | .globl ErrorCode2Num 3 | ErrorCode2Num: # 0x8034e940 4 | li r0, 0x2 5 | lis r4, ErrorTable@ha 6 | mtctr r0 7 | addi r4, r4, ErrorTable@l 8 | li r5, 0x0 9 | branch_0x8034e954: 10 | lwz r0, 0x0(r4) 11 | cmplw r3, r0 12 | bne- branch_0x8034e968 13 | clrlwi r3, r5, 24 14 | blr 15 | 16 | branch_0x8034e968: 17 | lwzu r0, 0x4(r4) 18 | addi r5, r5, 0x1 19 | cmplw r3, r0 20 | bne- branch_0x8034e980 21 | clrlwi r3, r5, 24 22 | blr 23 | 24 | branch_0x8034e980: 25 | lwzu r0, 0x4(r4) 26 | addi r5, r5, 0x1 27 | cmplw r3, r0 28 | bne- branch_0x8034e998 29 | clrlwi r3, r5, 24 30 | blr 31 | 32 | branch_0x8034e998: 33 | lwzu r0, 0x4(r4) 34 | addi r5, r5, 0x1 35 | cmplw r3, r0 36 | bne- branch_0x8034e9b0 37 | clrlwi r3, r5, 24 38 | blr 39 | 40 | branch_0x8034e9b0: 41 | lwzu r0, 0x4(r4) 42 | addi r5, r5, 0x1 43 | cmplw r3, r0 44 | bne- branch_0x8034e9c8 45 | clrlwi r3, r5, 24 46 | blr 47 | 48 | branch_0x8034e9c8: 49 | lwzu r0, 0x4(r4) 50 | addi r5, r5, 0x1 51 | cmplw r3, r0 52 | bne- branch_0x8034e9e0 53 | clrlwi r3, r5, 24 54 | blr 55 | 56 | branch_0x8034e9e0: 57 | lwzu r0, 0x4(r4) 58 | addi r5, r5, 0x1 59 | cmplw r3, r0 60 | bne- branch_0x8034e9f8 61 | clrlwi r3, r5, 24 62 | blr 63 | 64 | branch_0x8034e9f8: 65 | lwzu r0, 0x4(r4) 66 | addi r5, r5, 0x1 67 | cmplw r3, r0 68 | bne- branch_0x8034ea10 69 | clrlwi r3, r5, 24 70 | blr 71 | 72 | branch_0x8034ea10: 73 | lwzu r0, 0x4(r4) 74 | addi r5, r5, 0x1 75 | cmplw r3, r0 76 | bne- branch_0x8034ea28 77 | clrlwi r3, r5, 24 78 | blr 79 | 80 | branch_0x8034ea28: 81 | addi r4, r4, 0x4 82 | addi r5, r5, 0x1 83 | bdnz+ branch_0x8034e954 84 | lis r4, unk_00100008@h 85 | cmplw r3, r4 86 | blt- branch_0x8034ea54 87 | addi r0, r4, unk_00100008@l 88 | cmplw r3, r0 89 | bgt- branch_0x8034ea54 90 | li r3, 0x11 91 | blr 92 | 93 | branch_0x8034ea54: 94 | li r3, 0x1d 95 | blr 96 | 97 | 98 | .globl __DVDStoreErrorCode 99 | __DVDStoreErrorCode: # 0x8034ea5c 100 | mflr r0 101 | stw r0, 0x4(sp) 102 | addis r0, r3, 0xfedd 103 | cmplwi r0, 0x4567 104 | stwu sp, -0x18(sp) 105 | stw r31, 0x14(sp) 106 | bne- branch_0x8034ea80 107 | li r31, 0xff 108 | b branch_0x8034eab4 109 | 110 | branch_0x8034ea80: 111 | cmplwi r0, 0x4568 112 | bne- branch_0x8034ea90 113 | li r31, 0xfe 114 | b branch_0x8034eab4 115 | 116 | branch_0x8034ea90: 117 | srwi r31, r3, 24 118 | clrlwi r3, r3, 8 119 | bl ErrorCode2Num 120 | cmplwi r31, 0x6 121 | blt- branch_0x8034eaa8 122 | li r31, 0x6 123 | branch_0x8034eaa8: 124 | mulli r0, r31, 0x1e 125 | clrlwi r3, r3, 24 126 | add r31, r3, r0 127 | branch_0x8034eab4: 128 | bl __OSLockSramEx 129 | stb r31, 0x24(r3) 130 | li r3, 0x1 131 | bl __OSUnlockSramEx 132 | lwz r0, 0x1c(sp) 133 | lwz r31, 0x14(sp) 134 | addi sp, sp, 0x18 135 | mtlr r0 136 | blr 137 | 138 | -------------------------------------------------------------------------------- /source/JSystem/JDRDStageGroup.s: -------------------------------------------------------------------------------- 1 | 2 | .globl perform__Q26JDrama12TDStageGroupFUlPQ26JDrama9TGraphics 3 | perform__Q26JDrama12TDStageGroupFUlPQ26JDrama9TGraphics: # 0x802f860c 4 | mflr r0 5 | stw r0, 0x4(sp) 6 | rlwinm. r0, r4, 0, 28, 28 7 | stwu sp, -0x28(sp) 8 | stw r31, 0x24(sp) 9 | addi r31, r5, 0x0 10 | stw r30, 0x20(sp) 11 | addi r30, r4, 0x0 12 | stw r29, 0x1c(sp) 13 | addi r29, r3, 0x0 14 | beq- branch_0x802f8684 15 | addi r3, r29, 0x20 16 | lwz r12, 0x20(r29) 17 | addi r4, r30, 0x0 18 | addi r5, r31, 0x0 19 | lwz r12, 0x20(r12) 20 | mtlr r12 21 | blrl 22 | addi r3, r29, 0x0 23 | addi r4, r30, 0x0 24 | addi r5, r31, 0x0 25 | bl perform__Q26JDrama55TViewObjPtrListT_Q26JDrama8TViewObj_Q26JDrama8TViewObj_FUlPQ26JDrama9TGraphics 26 | addi r3, r29, 0x20 27 | lwz r12, 0x20(r29) 28 | rlwinm r0, r30, 0, 29, 27 29 | addi r5, r31, 0x0 30 | lwz r12, 0x20(r12) 31 | ori r4, r0, 0x100 32 | mtlr r12 33 | blrl 34 | branch_0x802f8684: 35 | lwz r0, 0x2c(sp) 36 | lwz r31, 0x24(sp) 37 | lwz r30, 0x20(sp) 38 | mtlr r0 39 | lwz r29, 0x1c(sp) 40 | addi sp, sp, 0x28 41 | blr 42 | 43 | 44 | .globl __dt__Q26JDrama12TDStageGroupFv 45 | __dt__Q26JDrama12TDStageGroupFv: # 0x802f86a0 46 | mflr r0 47 | stw r0, 0x4(sp) 48 | stwu sp, -0x18(sp) 49 | stw r31, 0x14(sp) 50 | addi r31, r4, 0x0 51 | stw r30, 0x10(sp) 52 | mr. r30, r3 53 | beq- branch_0x802f8758 54 | lis r3, __vvt__Q26JDrama12TDStageGroup@h 55 | addi r3, r3, __vvt__Q26JDrama12TDStageGroup@l 56 | addic. r0, r30, 0x20 57 | stw r3, 0x0(r30) 58 | beq- branch_0x802f8700 59 | lis r3, __vvt__Q26JDrama9TFrmGXSet@h 60 | addi r3, r3, __vvt__Q26JDrama9TFrmGXSet@l 61 | addic. r0, r30, 0x20 62 | stw r3, 0x20(r30) 63 | beq- branch_0x802f8700 64 | lis r3, __vvt__Q26JDrama8TViewObj@ha 65 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 66 | stw r0, 0x20(r30) 67 | addi r3, r30, 0x20 68 | li r4, 0x0 69 | bl __dt__Q26JDrama8TNameRefFv 70 | branch_0x802f8700: 71 | cmplwi r30, 0x0 72 | beq- branch_0x802f8748 73 | lis r3, __vvt__Q26JDrama55TViewObjPtrListT_Q26JDrama8TViewObj_Q26JDrama8TViewObj_@h 74 | addi r3, r3, __vvt__Q26JDrama55TViewObjPtrListT_Q26JDrama8TViewObj_Q26JDrama8TViewObj_@l 75 | addic. r0, r30, 0x10 76 | stw r3, 0x0(r30) 77 | beq- branch_0x802f8728 78 | addi r3, r30, 0x10 79 | li r4, 0x0 80 | bl __dt__Q27JGadget18TList_pointer_voidFv 81 | branch_0x802f8728: 82 | cmplwi r30, 0x0 83 | beq- branch_0x802f8748 84 | lis r3, __vvt__Q26JDrama8TViewObj@ha 85 | addi r0, r3, __vvt__Q26JDrama8TViewObj@l 86 | stw r0, 0x0(r30) 87 | addi r3, r30, 0x0 88 | li r4, 0x0 89 | bl __dt__Q26JDrama8TNameRefFv 90 | branch_0x802f8748: 91 | extsh. r0, r31 92 | ble- branch_0x802f8758 93 | mr r3, r30 94 | bl __dl__FPv 95 | branch_0x802f8758: 96 | lwz r0, 0x1c(sp) 97 | mr r3, r30 98 | lwz r31, 0x14(sp) 99 | lwz r30, 0x10(sp) 100 | mtlr r0 101 | addi sp, sp, 0x18 102 | blr 103 | 104 | --------------------------------------------------------------------------------