-added zelda spirit tracks port

This commit is contained in:
FIX94 2016-11-25 06:41:27 +01:00
parent 17c2638bf5
commit 97fa900877
3 changed files with 56 additions and 2 deletions

View File

@ -6,9 +6,9 @@ else
ZIP = zip ZIP = zip
endif endif
all: setup brainage dkjclimber kirby kirbymassattack mariokartds masterofdisguise newsmb_eur partnersintime sfcommand sm64ds yoshids zeldaph \ all: setup brainage dkjclimber kirby kirbymassattack mariokartds masterofdisguise newsmb_eur partnersintime sfcommand sm64ds yoshids zeldaph zeldast \
brainage.zip dkjclimber.zip kirby.zip kirbymassattack.zip mariokartds.zip masterofdisguise.zip newsmb_eur.zip partnersintime.zip \ brainage.zip dkjclimber.zip kirby.zip kirbymassattack.zip mariokartds.zip masterofdisguise.zip newsmb_eur.zip partnersintime.zip \
sfcommand.zip sm64ds.zip yoshids.zip yoshitouchandgo.zip zeldaph.zip sfcommand.zip sm64ds.zip yoshids.zip yoshitouchandgo.zip zeldaph.zip zeldast.zip
brainage: setup_brainage brainage.nds brainage: setup_brainage brainage.nds
@ -34,6 +34,8 @@ yoshids: setup_yoshids yoshids.nds
zeldaph: setup_zeldaph zeldaph.nds zeldaph: setup_zeldaph zeldaph.nds
zeldast: setup_zeldast zeldast.nds
setup: setup:
@cd option_select && make && cd .. @cd option_select && make && cd ..
@cd hbl_loader && make && cd .. @cd hbl_loader && make && cd ..
@ -87,6 +89,10 @@ setup_zeldaph:
@rm -f defines.s haxchi_rop.bin haxchi_rop_hook.bin @rm -f defines.s haxchi_rop.bin haxchi_rop_hook.bin
@cp -f zeldaph_defs.s defines.s @cp -f zeldaph_defs.s defines.s
setup_zeldast:
@rm -f defines.s haxchi_rop.bin haxchi_rop_hook.bin
@cp -f zeldast_defs.s defines.s
brainage.nds: brainage.nds:
@armips haxchi_rop.s @armips haxchi_rop.s
@armips haxchi.s @armips haxchi.s
@ -152,6 +158,11 @@ zeldaph.nds:
@armips haxchi.s @armips haxchi.s
@mv rom.nds zeldaph.nds @mv rom.nds zeldaph.nds
zeldast.nds:
@armips haxchi_rop.s
@armips haxchi.s
@mv rom.nds zeldast.nds
brainage.zip: brainage.zip:
$(ZIP) -JXjq9 brainage.zip brainage.nds $(ZIP) -JXjq9 brainage.zip brainage.nds
$(ZIP) -JXjq9 yoshitouchandgo.zip yoshitouchandgo.nds $(ZIP) -JXjq9 yoshitouchandgo.zip yoshitouchandgo.nds
@ -193,6 +204,9 @@ yoshids.zip:
zeldaph.zip: zeldaph.zip:
$(ZIP) -JXjq9 zeldaph.zip zeldaph.nds $(ZIP) -JXjq9 zeldaph.zip zeldaph.nds
zeldast.zip:
$(ZIP) -JXjq9 zeldast.zip zeldast.nds
clean: clean:
@rm -f *.bin *.nds *.zip defines.s @rm -f *.bin *.nds *.zip defines.s
@cd option_select && make clean && cd .. @cd option_select && make clean && cd ..

View File

@ -42,6 +42,7 @@ make sure to replace YOUR_GAME_TITLE_ID with one of the following:
|Wario Master of Disguise|101ABD00|101ABE00|101ABF00| |Wario Master of Disguise|101ABD00|101ABE00|101ABF00|
|Star Fox Command|101AC000|101AC100|101AC200| |Star Fox Command|101AC000|101AC100|101AC200|
|Kirby Canvas Curse|101B8800|101B8900|101B8A00| |Kirby Canvas Curse|101B8800|101B8900|101B8A00|
|Zelda Spirit Tracks|101B8B00|101B8C00|101B8D00|
|Super Mario 64 DS|101C3300|101C3400|101C3500| |Super Mario 64 DS|101C3300|101C3400|101C3500|
|Zelda Phantom Hourglass|101C3600|101C3700|101C3800| |Zelda Phantom Hourglass|101C3600|101C3700|101C3800|
|Kirby Mass Attack|101C8600|101C8700|101C8800| |Kirby Mass Attack|101C8600|101C8700|101C8800|

39
zeldast_defs.s Normal file
View File

@ -0,0 +1,39 @@
; game stack return address (note: not ideal here)
HAX_TARGET_ADDRESS equ (0x1079C50C)
; application memory pointer
HACHI_APPLICATION_PTR equ (0x10C92938)
; arm9 rom location address
ARM9_ROM_LOCATION equ (0x16441D00)
; constants for position calcs
RPX_OFFSET equ (0x01800000)
ARM7_ROM_MEM2_START equ (0xF0000000 - ARM9_ROM_LOCATION + 0x12000000)
; rop-gadgets part 1 (used for all sorts of different things)
LMW_R21R1xC_LWZ_R0R1x3C_MTLR_R0_ADDI_R1_x38_BLR equ (RPX_OFFSET + 0x0200369C)
BCTRL equ (RPX_OFFSET + 0x020041D8)
MTCTR_R27_ADDI_R31x2_MR_R3R31_R4R30_R5R29_R6R28_BCTRL_LMW_R26R1x18_MTLR_R1x34_ADDI_R1x30_BLR equ (RPX_OFFSET + 0x020ABF18)
LWZ_R0xAFC_MTLR_R0_ADDI_R1xAF8_BLR equ (RPX_OFFSET + 0x020ABAF0)
LWZ_R0R1x14_LWZ_R30R1x8_R31R1xC_MTLR_R0_ADDI_R1x10_BLR equ (RPX_OFFSET + 0x02001AF8)
MR_R11R31_LMW_R26R1x8_LWZ_R0x24_MTLR_R0_ADDI_R1x20_CLRLWI_R3R11x18_BLR equ (RPX_OFFSET + 0x02181A50)
LWZ_R0R11x4_R31R11xM4_MTLR_R0_MR_R1R11_BLR equ (RPX_OFFSET + 0x022815B4)
; rop-gadgets part 2 (only used to set up core 0 thread stack)
LWZ_R3_8_R1_LWZ_R0x14_MTLR_R0_ADDI_R1x10_BLR equ (RPX_OFFSET + 0x02018A88)
MR_R12_R3_CMPLW_R12_R0_LI_R3_0_BEQ_ADDI_R3_R12x10_LWZ_R0_R1x14_MTLR_R0_ADDI_R1x10_BLR equ (RPX_OFFSET + 0x020B7358)
LWZ_R5_R1x8_CMPLW_R5_R31_BNE_MR_R3_R5_LWZ_R0_R1x1C_LWZ_R30_R1x10_MTLR_R0_LWZ_R31_R1x14_ADDI_R1x18_BLR equ (RPX_OFFSET + 0x0200F610)
LWZ_R4_R1xC_STW_R12_R1x8_LWZ_R3_R1x8_LWZ_R0_R1x1C_MTLR_R0_ADDI_R1x18_BLR equ (RPX_OFFSET + 0x02088270)
LWZ_R7_R1x10_LWZ_R8_R1x14_STW_R7_R31x0_STW_R8_R31x0_LWZ_R0_R1x2C_LWZ_R31_R0x24_MTLR_R0_LWZ_R30_R0x20_ADDI_R1x28_BLR equ (RPX_OFFSET + 0x0205B0C8)
LWZ_R3_4_R3_LWZ_R0xC_MTLR_R0_ADDI_R1x8_BLR equ (RPX_OFFSET + 0x02018B10)
LWZ_R0_R1x1C_LWZ_R30_R1x10_MTLR_R0_LWZ_R31_R1x14_ADDI_R1x18_ADD_R3_R7_BLR equ (RPX_OFFSET + 0x02151B84)
MTCTR_R12_BCTRL_LI_R3_0_LWZ_R0_R1x14_LWZ_R31_R1xC_MTLR_R0_ADDI_R1x10_BLR equ (RPX_OFFSET + 0x0202441C)
; functions used from game
NERD_CREATETHREAD equ (RPX_OFFSET + 0x0222B28C)
NERD_STARTTHREAD equ (RPX_OFFSET + 0x0222B6A8)
NERD_JOINTHREAD equ (RPX_OFFSET + 0x0222B138)
HACHI_APPLICATION_SHUTDOWNANDDESTROY equ (RPX_OFFSET + 0x02006E2C)
NERD_FASTWIIU_SHUTDOWN equ (RPX_OFFSET + 0x0201FE74)
CORE_SHUTDOWN equ (RPX_OFFSET + 0x0222AD7C)
_START_EXIT equ (RPX_OFFSET + 0x02026544)