Merge pull request #3 from PikalaxALT/main

Resolve some hardcoded syms in main.s
This commit is contained in:
Cleverking2003
2020-04-13 20:39:18 +03:00
committed by GitHub
10 changed files with 423 additions and 339 deletions

6
asm/arm7_rom.s Normal file
View File

@@ -0,0 +1,6 @@
/* arm7_rom.s TODO: Disassemble */
.section .text
.global Entry_ARM7
Entry_ARM7:
.incbin "baserom.nds", 0x30D000, 0x2931C

277
asm/entry.s Normal file
View File

@@ -0,0 +1,277 @@
.include "asm/macros.inc"
.text
arm_func_start Entry
Entry: @ 0x02000800
mov ip, #0x4000000
str ip, [ip, #0x208]
_02000808:
ldrh r0, [ip, #6]
cmp r0, #0
bne _02000808
bl init_cp15
mov r0, #0x13
msr cpsr_c, r0
ldr r0, _02000918 @ =0x027E0000
add r0, r0, #0x3fc0
mov sp, r0
mov r0, #0x12
msr cpsr_c, r0
ldr r0, _02000918 @ =0x027E0000
add r0, r0, #0x3fc0
sub r0, r0, #0x40
sub sp, r0, #4
tst sp, #4
subeq sp, sp, #4
ldr r1, _0200091C @ =0x00000400
sub r1, r0, r1
mov r0, #0x1f
msr cpsr_fsxc, r0
sub sp, r1, #4
mov r0, #0
ldr r1, _02000918 @ =0x027E0000
mov r2, #0x4000
bl INITi_CpuClear32
mov r0, #0
ldr r1, _02000920 @ =0x05000000
mov r2, #1024
bl INITi_CpuClear32
mov r0, #512
ldr r1, _02000924 @ =0x07000000
mov r2, #1024
bl INITi_CpuClear32
ldr r1, _02000928 @ =_02000B68
ldr r0, [r1, #20]
bl MIi_UncompressBackward
bl do_autoload
ldr r0, _02000928 @ =_02000B68
ldr r1, [r0, #12]
ldr r2, [r0, #16]
mov r3, r1
mov r0, #0
_020008B4:
cmp r1, r2
strcc r0, [r1], #4
bcc _020008B4
bic r1, r3, #31
_020008C4:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r1, cr7, cr5, 1
mcr p15, #0, r1, cr7, cr14, 1
add r1, #32
cmp r1, r2
blt _020008C4
ldr r1, _0200092C @ =0x027FFF9C
str r0, [r1]
ldr r1, _02000918 @ =0x027E0000
add r1, r1, #16320
add r1, r1, #60
ldr r0, _02000930 @ =0x01FF8000
str r0, [r1]
bl sub_20EC5CC
bl sub_2000B64_dummy
bl sub_20EC694
ldr r1, _02000934 @ =0x02000C55
ldr lr, _02000938 @ =0xFFFF0000
tst sp, #4
subne sp, sp, #4
bx r1
_02000918: .4byte 0x027E0000
_0200091C: .4byte 0x00000400
_02000920: .4byte 0x05000000
_02000924: .4byte 0x07000000
_02000928: .4byte _02000B68
_0200092C: .4byte 0x027FFF9C
_02000930: .4byte 0x01FF8000
_02000934: .4byte NitroMain+1
_02000938: .4byte 0xFFFF0000
arm_func_end Entry
arm_func_start INITi_CpuClear32
INITi_CpuClear32:
add ip, r1, r2
_02000940:
cmp r1, ip
stmlt r1!, {r0}
blt _02000940
bx lr
arm_func_end INITi_CpuClear32
arm_func_start MIi_UncompressBackward
MIi_UncompressBackward:
cmp r0, #0
beq _020009F8
push {r4, r5, r6, r7}
ldmdb r0, {r1, r2}
add r2, r0, r2
sub r3, r0, r1, lsr #24
bic r1, r1, #-16777216
sub r1, r0, r1
mov r4, r2
_02000974:
cmp r3, r1
ble _020009D4
ldrb r5, [r3, #-1]!
mov r6, #8
_02000984:
subs r6, r6, #1
blt _02000974
tst r5, #128
bne _020009A0
ldrb r0, [r3, #-1]!
strb r0, [r2, #-1]!
b _020009C8
_020009A0:
ldrb ip, [r3, #-1]!
ldrb r7, [r3, #-1]!
orr r7, r7, ip, lsl #8
bic r7, r7, #61440
add r7, r7, #2
add ip, ip, #32
_020009B8:
ldrb r0, [r2, r7]
strb r0, [r2, #-1]!
subs ip, ip, #16
bge _020009B8
_020009C8:
cmp r3, r1
lsl r5, r5, #1
bgt _02000984
_020009D4:
mov r0, #0
bic r3, r1, #31
_020009DC:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r3, cr7, cr5, 1
mcr p15, #0, r3, cr7, cr14, 1
add r3, r3, #32
cmp r3, r4
blt _020009DC
pop {r4, r5, r6, r7}
_020009F8:
bx lr
arm_func_end MIi_UncompressBackward
arm_func_start do_autoload
do_autoload:
ldr r0, =_02000B68
ldr r1, [r0]
ldr r2, [r0, #4]
ldr r3, [r0, #8]
_02000A0C:
cmp r1, r2
beq _02000A6C
ldr r5, [r1], #4
ldr r7, [r1], #4
add r6, r5, r7
mov r4, r5
_02000A24:
cmp r4, r6
ldrmi r7, [r3], #4
strmi r7, [r4], #4
bmi _02000A24
ldr r7, [r1], #4
add r6, r4, r7
mov r7, #0
_02000A40:
cmp r4, r6
strcc r7, [r4], #4
bcc _02000A40
bic r4, r5, #31
_02000A50:
mcr p15, #0, r7, cr7, cr10, 4
mcr p15, #0, r4, cr7, cr5, 1
mcr p15, #0, r4, cr7, cr14, 1
add r4, r4, #32
cmp r4, r6
blt _02000A50
b _02000A0C
_02000A6C:
b _2000A74
.pool
_2000A74:
bx lr
arm_func_end do_autoload
arm_func_start init_cp15
init_cp15: @ 0x02000A78
mrc p15, #0, r0, c1, c0, #0
ldr r1, =0x000F9005
bic r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
mov r0, #0
mcr p15, #0, r0, c7, c5, #0
mcr p15, #0, r0, c7, c6, #0
mcr p15, #0, r0, c7, c10, #4
ldr r0, =0x04000033
mcr p15, #0, r0, c6, c0, #0
ldr r0, =0x0200002D
mcr p15, #0, r0, c6, c1, #0
ldr r0, =0x027E0021
mcr p15, #0, r0, c6, c2, #0
ldr r0, =0x08000035
mcr p15, #0, r0, c6, c3, #0
ldr r0, =0x027E0000
orr r0, r0, #0x1a
orr r0, r0, #1
mcr p15, #0, r0, c6, c4, #0
ldr r0, =0x0100002F
mcr p15, #0, r0, c6, c5, #0
ldr r0, =0xFFFF001D
mcr p15, #0, r0, c6, c6, #0
ldr r0, =0x027FF017
mcr p15, #0, r0, c6, c7, #0
mov r0, #0x20
mcr p15, #0, r0, c9, c1, #1
ldr r0, =0x027E0000
orr r0, r0, #0xa
mcr p15, #0, r0, c9, c1, #0
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #1
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #0
mov r0, #2
mcr p15, #0, r0, c3, c0, #0
ldr r0, =0x05100011
mcr p15, #0, r0, c5, c0, #3
ldr r0, =0x15111011
mcr p15, #0, r0, c5, c0, #2
mrc p15, #0, r0, c1, c0, #0
ldr r1, =0x0005707D
orr r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
bx lr
.align 2, 0
.pool
arm_func_start sub_2000B60_dummy
sub_2000B60_dummy: @ 0x02000B60
bx lr
arm_func_start sub_2000B64_dummy
sub_2000B64_dummy: @ 0x02000B64
bx lr
_02000B68:
.word 0x02107700
.word 0x02107724
.word 0x02106FA0
.word 0x02106FA0
.word 0x021D74E0
.word 0x00000000
.byte 0x31, 0x75, 0x02, 0x03, 0x21, 0x06, 0xC0, 0xDE, 0xDE, 0xC0, 0x06, 0x21
# strings
.balign 4
.asciz "[SDK+NINTENDO:DWC1.2.30006.061019.2254_DWC_1_2_PLUS6]"
.balign 4
.asciz "[SDK+NINTENDO:WiFi1.2.30000.0609050341]"
.balign 4
.asciz "[SDK+UBIQUITOUS:CPS]"
.balign 4
.asciz "[SDK+UBIQUITOUS:SSL]"
.balign 4
.asciz "[SDK+Abiosso:libVCT 1.0.1_ec]"
.balign 4
.asciz "[SDK+NINTENDO:BACKUP]"

4
asm/filenametable.s Normal file
View File

@@ -0,0 +1,4 @@
.text
.global FileNameTable
FileNameTable:
.incbin "baserom.nds", 0x336400, 0x3cc9c00 @0x157F

4
asm/gap1.s Normal file
View File

@@ -0,0 +1,4 @@
.section .text
.rept 0x1E0
.byte 0xFF
.endr

4
asm/gap2.s Normal file
View File

@@ -0,0 +1,4 @@
.text
.rept 0x336400-0x33631c
.byte 255
.endr

View File

@@ -1,277 +1,9 @@
/* main.s TODO: Disassemble */
.include "asm/macros.inc"
.text
.section .text
arm_func_start Entry
Entry: @ 0x02000800
mov ip, #0x4000000
str ip, [ip, #0x208]
_02000808:
ldrh r0, [ip, #6]
cmp r0, #0
bne _02000808
bl init_cp15
mov r0, #0x13
msr cpsr_c, r0
ldr r0, _02000918 @ =0x027E0000
add r0, r0, #0x3fc0
mov sp, r0
mov r0, #0x12
msr cpsr_c, r0
ldr r0, _02000918 @ =0x027E0000
add r0, r0, #0x3fc0
sub r0, r0, #0x40
sub sp, r0, #4
tst sp, #4
subeq sp, sp, #4
ldr r1, _0200091C @ =0x00000400
sub r1, r0, r1
mov r0, #0x1f
msr cpsr_fsxc, r0
sub sp, r1, #4
mov r0, #0
ldr r1, _02000918 @ =0x027E0000
mov r2, #0x4000
bl INITi_CpuClear32
mov r0, #0
ldr r1, _02000920 @ =0x05000000
mov r2, #1024
bl INITi_CpuClear32
mov r0, #512
ldr r1, _02000924 @ =0x07000000
mov r2, #1024
bl INITi_CpuClear32
ldr r1, _02000928 @ = 0x02000B68
ldr r0, [r1, #20]
bl MIi_UncompressBackward
bl do_autoload
ldr r0, _02000928 @ =0x02000B68
ldr r1, [r0, #12]
ldr r2, [r0, #16]
mov r3, r1
mov r0, #0
_020008B4:
cmp r1, r2
strcc r0, [r1], #4
bcc _020008B4
bic r1, r3, #31
_020008C4:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r1, cr7, cr5, 1
mcr p15, #0, r1, cr7, cr14, 1
add r1, #32
cmp r1, r2
blt _020008C4
ldr r1, _0200092C @ =0x027FFF9C
str r0, [r1]
ldr r1, _02000918 @ =0x027E0000
add r1, r1, #16320
add r1, r1, #60
ldr r0, _02000930 @ =0x01FF8000
str r0, [r1]
bl sub_20EC5CC
bl sub_2000B64_dummy
bl sub_20EC694
ldr r1, _02000934 @ =0x02000C55
ldr lr, _02000938 @ =0xFFFF0000
tst sp, #4
subne sp, sp, #4
bx r1
_02000918: .4byte 0x027E0000
_0200091C: .4byte 0x00000400
_02000920: .4byte 0x05000000
_02000924: .4byte 0x07000000
_02000928: .4byte 0x02000B68
_0200092C: .4byte 0x027FFF9C
_02000930: .4byte 0x01FF8000
_02000934: .4byte 0x02000C55 @ NdsMain
_02000938: .4byte 0xFFFF0000
arm_func_end Entry
arm_func_start INITi_CpuClear32
INITi_CpuClear32:
add ip, r1, r2
_02000940:
cmp r1, ip
stmlt r1!, {r0}
blt _02000940
bx lr
arm_func_end INITi_CpuClear32
arm_func_start MIi_UncompressBackward
MIi_UncompressBackward:
cmp r0, #0
beq _020009F8
push {r4, r5, r6, r7}
ldmdb r0, {r1, r2}
add r2, r0, r2
sub r3, r0, r1, lsr #24
bic r1, r1, #-16777216
sub r1, r0, r1
mov r4, r2
_02000974:
cmp r3, r1
ble _020009D4
ldrb r5, [r3, #-1]!
mov r6, #8
_02000984:
subs r6, r6, #1
blt _02000974
tst r5, #128
bne _020009A0
ldrb r0, [r3, #-1]!
strb r0, [r2, #-1]!
b _020009C8
_020009A0:
ldrb ip, [r3, #-1]!
ldrb r7, [r3, #-1]!
orr r7, r7, ip, lsl #8
bic r7, r7, #61440
add r7, r7, #2
add ip, ip, #32
_020009B8:
ldrb r0, [r2, r7]
strb r0, [r2, #-1]!
subs ip, ip, #16
bge _020009B8
_020009C8:
cmp r3, r1
lsl r5, r5, #1
bgt _02000984
_020009D4:
mov r0, #0
bic r3, r1, #31
_020009DC:
mcr p15, #0, r0, cr7, cr10, 4
mcr p15, #0, r3, cr7, cr5, 1
mcr p15, #0, r3, cr7, cr14, 1
add r3, r3, #32
cmp r3, r4
blt _020009DC
pop {r4, r5, r6, r7}
_020009F8:
bx lr
arm_func_end MIi_UncompressBackward
arm_func_start do_autoload
do_autoload:
ldr r0, =0x02000B68
ldr r1, [r0]
ldr r2, [r0, #4]
ldr r3, [r0, #8]
_02000A0C:
cmp r1, r2
beq _02000A6C
ldr r5, [r1], #4
ldr r7, [r1], #4
add r6, r5, r7
mov r4, r5
_02000A24:
cmp r4, r6
ldrmi r7, [r3], #4
strmi r7, [r4], #4
bmi _02000A24
ldr r7, [r1], #4
add r6, r4, r7
mov r7, #0
_02000A40:
cmp r4, r6
strcc r7, [r4], #4
bcc _02000A40
bic r4, r5, #31
_02000A50:
mcr p15, #0, r7, cr7, cr10, 4
mcr p15, #0, r4, cr7, cr5, 1
mcr p15, #0, r4, cr7, cr14, 1
add r4, r4, #32
cmp r4, r6
blt _02000A50
b _02000A0C
_02000A6C:
b _2000A74
.pool
_2000A74:
bx lr
arm_func_end do_autoload
arm_func_start init_cp15
init_cp15: @ 0x02000A78
mrc p15, #0, r0, c1, c0, #0
ldr r1, =0x000F9005
bic r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
mov r0, #0
mcr p15, #0, r0, c7, c5, #0
mcr p15, #0, r0, c7, c6, #0
mcr p15, #0, r0, c7, c10, #4
ldr r0, =0x04000033
mcr p15, #0, r0, c6, c0, #0
ldr r0, =0x0200002D
mcr p15, #0, r0, c6, c1, #0
ldr r0, =0x027E0021
mcr p15, #0, r0, c6, c2, #0
ldr r0, =0x08000035
mcr p15, #0, r0, c6, c3, #0
ldr r0, =0x027E0000
orr r0, r0, #0x1a
orr r0, r0, #1
mcr p15, #0, r0, c6, c4, #0
ldr r0, =0x0100002F
mcr p15, #0, r0, c6, c5, #0
ldr r0, =0xFFFF001D
mcr p15, #0, r0, c6, c6, #0
ldr r0, =0x027FF017
mcr p15, #0, r0, c6, c7, #0
mov r0, #0x20
mcr p15, #0, r0, c9, c1, #1
ldr r0, =0x027E0000
orr r0, r0, #0xa
mcr p15, #0, r0, c9, c1, #0
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #1
mov r0, #0x42
mcr p15, #0, r0, c2, c0, #0
mov r0, #2
mcr p15, #0, r0, c3, c0, #0
ldr r0, =0x05100011
mcr p15, #0, r0, c5, c0, #3
ldr r0, =0x15111011
mcr p15, #0, r0, c5, c0, #2
mrc p15, #0, r0, c1, c0, #0
ldr r1, =0x0005707D
orr r0, r0, r1
mcr p15, #0, r0, c1, c0, #0
bx lr
.align 2, 0
.pool
arm_func_start sub_2000B60_dummy
sub_2000B60_dummy: @ 0x02000B60
bx lr
arm_func_start sub_2000B64_dummy
sub_2000B64_dummy: @ 0x02000B64
bx lr
_02000B68:
.word 0x02107700
.word 0x02107724
.word 0x02106FA0
.word 0x02106FA0
.word 0x021D74E0
.word 0x00000000
.byte 0x31, 0x75, 0x02, 0x03, 0x21, 0x06, 0xC0, 0xDE, 0xDE, 0xC0, 0x06, 0x21
# strings
.balign 4
.asciz "[SDK+NINTENDO:DWC1.2.30006.061019.2254_DWC_1_2_PLUS6]"
.balign 4
.asciz "[SDK+NINTENDO:WiFi1.2.30000.0609050341]"
.balign 4
.asciz "[SDK+UBIQUITOUS:CPS]"
.balign 4
.asciz "[SDK+UBIQUITOUS:SSL]"
.balign 4
.asciz "[SDK+Abiosso:libVCT 1.0.1_ec]"
.balign 4
.asciz "[SDK+NINTENDO:BACKUP]"
thumb_func_start NitroMain
NitroMain:
.incbin "baserom.nds", 0x4C54, 0x1A0
thumb_func_end NitroMain

View File

@@ -1,5 +0,0 @@
/* rom.s TODO: Disassemble */
.section .text
.incbin "baserom.nds", 0x4C54, 0x1A0

View File

@@ -1,5 +1,5 @@
/* rom3.s TODO: Disassemble */
.section .text
.section .text
.incbin "baserom.nds", 0x10B724, 0x3EF48DC
.incbin "baserom.nds", 0x10B724, 0x2016FC

View File

@@ -1,115 +1,152 @@
/* ROM HEADER for Pokemon Diamond (US) */
.section .text
.section .text
.balign 4
.balign 4
.global GameTitle
GameTitle:
.asciz "POKEMON D"
.asciz "POKEMON D"
.balign 4
.balign 4
.global GameCode
GameCode:
.ascii "ADAE"
.ascii "ADAE"
.global MakerCode
MakerCode:
.ascii "01"
.ascii "01"
.global UnitCode
UnitCode:
.byte 0
.byte 0
.global DeviceType
DeviceType:
.byte 0
.byte 0
.global DeviceCapacity
DeviceCapacity:
.byte 9
.byte 9
/*reserved*/
.space 9
.space 9
.global RomVersion
RomVersion:
.byte 5
.byte 5
/*reserved*/
.space 1
.space 1
.global ARM9ROMOffset
ARM9ROMOffset:
.word _arm9SegmentRomStart
.word _arm9SegmentRomStart
.global ARM9EntryAddress
ARM9EntryAddress:
.word Entry
.word Entry
.global ARM9RAMAddress
ARM9RAMAddress:
.word _arm9SegmentStart
.word _arm9SegmentStart
.global ARM9CodeSize
ARM9CodeSize:
.word _arm9SegmentSize
.word _arm9SegmentSize
.global ARM7ROMOffset
ARM7ROMOffset:
.word 0x0030D000
.word _arm7SegmentRomStart
.global ARM7EntryAddress
ARM7EntryAddress:
.word 0x02380000
.word Entry_ARM7
.global ARM7RAMAddress
ARM7RAMAddress:
.word 0x02380000
.word _arm7SegmentStart
.global ARM7CodeSize
ARM7CodeSize:
.word 0x0002931C
.word _arm7SegmentSize
.global FileNameTableOffset
FileNameTableOffset:
.word 0x00336400
.word _FileNameTableSegmentRomStart
.global FileNameTableSize
FileNameTableSize:
.word 0x0000157F
.word 0x0000157F
.global FATOffset
FATOffset:
.word 0x00337A00
.word 0x00337A00
.global FATSize
FATSize:
.word 0x00000B20
.word 0x00000B20
.global ARM9OverlayOffset
ARM9OverlayOffset:
.word 0x0010B800
.word 0x0010B800
.global ARM9OverlaySize
ARM9OverlaySize:
.word 0x00000AE0
.word 0x00000AE0
.global ARM7OverlayOffset
ARM7OverlayOffset:
.word 0x00000000
.word 0x00000000
.global ARM7OverlaySize
ARM7OverlaySize:
.word 0x00000000
.word 0x00000000
.global ROMControlInfo1
ROMControlInfo1:
.word 0x00416657
.word 0x00416657
.global ROMControlInfo2
ROMControlInfo2:
.word 0x081808F8
.word 0x081808F8
.global IconTitleOffset
IconTitleOffset:
.word 0x00338600
.word 0x00338600
.global SecureAreaCC
SecureAreaCC:
.short 0x5931
.short 0x5931
.global ROMControlInfo3
ROMControlInfo3:
.short 0x0D7E
.short 0x0D7E
.global ARM9AutoLoadHook
ARM9AutoLoadHook:
.word 0x02000A74
.word 0x02000A74
.global ARM7AutoLoadHook
ARM7AutoLoadHook:
.word 0x02380158
.word 0x02380158
.global SecureAreaDisable
SecureAreaDisable:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ApplicationEndOffset
ApplicationEndOffset:
.word 0x03A55EC0
.word 0x03A55EC0
.global ROMHeaderSize
ROMHeaderSize:
.word 0x00004000
.word 0x00004000
/* should be 36 bytes here but again theres stuff here. TODO: Identify */
.byte 0x68, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x68, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global PassMeAutobootDetect
PassMeAutobootDetect:
.word 0x00000000
.word 0x00000000
/* reserved */
.space 16
.space 16
.global NintendoLogo
NintendoLogo:
.byte 0x24, 0xFF, 0xAE, 0x51, 0x69, 0x9A, 0xA2, 0x21, 0x3D, 0x84, 0x82, 0x0A, 0x84, 0xE4, 0x09, 0xAD
.byte 0x11, 0x24, 0x8B, 0x98, 0xC0, 0x81, 0x7F, 0x21, 0xA3, 0x52, 0xBE, 0x19, 0x93, 0x09, 0xCE, 0x20
.byte 0x10, 0x46, 0x4A, 0x4A, 0xF8, 0x27, 0x31, 0xEC, 0x58, 0xC7, 0xE8, 0x33, 0x82, 0xE3, 0xCE, 0xBF
.byte 0x85, 0xF4, 0xDF, 0x94, 0xCE, 0x4B, 0x09, 0xC1, 0x94, 0x56, 0x8A, 0xC0, 0x13, 0x72, 0xA7, 0xFC
.byte 0x9F, 0x84, 0x4D, 0x73, 0xA3, 0xCA, 0x9A, 0x61, 0x58, 0x97, 0xA3, 0x27, 0xFC, 0x03, 0x98, 0x76
.byte 0x23, 0x1D, 0xC7, 0x61, 0x03, 0x04, 0xAE, 0x56, 0xBF, 0x38, 0x84, 0x00, 0x40, 0xA7, 0x0E, 0xFD
.byte 0xFF, 0x52, 0xFE, 0x03, 0x6F, 0x95, 0x30, 0xF1, 0x97, 0xFB, 0xC0, 0x85, 0x60, 0xD6, 0x80, 0x25
.byte 0xA9, 0x63, 0xBE, 0x03, 0x01, 0x4E, 0x38, 0xE2, 0xF9, 0xA2, 0x34, 0xFF, 0xBB, 0x3E, 0x03, 0x44
.byte 0x78, 0x00, 0x90, 0xCB, 0x88, 0x11, 0x3A, 0x94, 0x65, 0xC0, 0x7C, 0x63, 0x87, 0xF0, 0x3C, 0xAF
.byte 0xD6, 0x25, 0xE4, 0x8B, 0x38, 0x0A, 0xAC, 0x72, 0x21, 0xD4, 0xF8, 0x07
.byte 0x24, 0xFF, 0xAE, 0x51, 0x69, 0x9A, 0xA2, 0x21, 0x3D, 0x84, 0x82, 0x0A, 0x84, 0xE4, 0x09, 0xAD
.byte 0x11, 0x24, 0x8B, 0x98, 0xC0, 0x81, 0x7F, 0x21, 0xA3, 0x52, 0xBE, 0x19, 0x93, 0x09, 0xCE, 0x20
.byte 0x10, 0x46, 0x4A, 0x4A, 0xF8, 0x27, 0x31, 0xEC, 0x58, 0xC7, 0xE8, 0x33, 0x82, 0xE3, 0xCE, 0xBF
.byte 0x85, 0xF4, 0xDF, 0x94, 0xCE, 0x4B, 0x09, 0xC1, 0x94, 0x56, 0x8A, 0xC0, 0x13, 0x72, 0xA7, 0xFC
.byte 0x9F, 0x84, 0x4D, 0x73, 0xA3, 0xCA, 0x9A, 0x61, 0x58, 0x97, 0xA3, 0x27, 0xFC, 0x03, 0x98, 0x76
.byte 0x23, 0x1D, 0xC7, 0x61, 0x03, 0x04, 0xAE, 0x56, 0xBF, 0x38, 0x84, 0x00, 0x40, 0xA7, 0x0E, 0xFD
.byte 0xFF, 0x52, 0xFE, 0x03, 0x6F, 0x95, 0x30, 0xF1, 0x97, 0xFB, 0xC0, 0x85, 0x60, 0xD6, 0x80, 0x25
.byte 0xA9, 0x63, 0xBE, 0x03, 0x01, 0x4E, 0x38, 0xE2, 0xF9, 0xA2, 0x34, 0xFF, 0xBB, 0x3E, 0x03, 0x44
.byte 0x78, 0x00, 0x90, 0xCB, 0x88, 0x11, 0x3A, 0x94, 0x65, 0xC0, 0x7C, 0x63, 0x87, 0xF0, 0x3C, 0xAF
.byte 0xD6, 0x25, 0xE4, 0x8B, 0x38, 0x0A, 0xAC, 0x72, 0x21, 0xD4, 0xF8, 0x07
.global LogoCRC
LogoCRC:
.short 0xCF56
.short 0xCF56
.global HeaderCRC
HeaderCRC:
.short 0xCA37
.short 0xCA37
/* reserved */
.global __startup
.global __startup
__startup:
.space 160 /* hack so it builds */
.space 160 /* hack so it builds */

View File

@@ -24,8 +24,8 @@ SECTIONS {
BEGIN_SEG(arm9, 0x2000000)
{
build/asm/secure.o(.text);
build/asm/entry.o(.text);
build/asm/main.o(.text);
build/asm/rom.o(.text);
build/src/sub_02000DF4.o(.text);
build/asm/rom2.o(.text);
}
@@ -36,4 +36,29 @@ SECTIONS {
build/asm/rom3.o(.text);
}
END_SEG(rom3)
BEGIN_SEG(gap1, 0x2000000 + SIZEOF(rom3) + SIZEOF(arm9))
{
build/asm/gap1.o(.text);
}
END_SEG(gap1)
BEGIN_SEG(arm7, 0x02380000)
{
build/asm/arm7_rom.o(.text);
}
END_SEG(arm7)
BEGIN_SEG(gap2, 0x02380000 + SIZEOF(arm7))
{
build/asm/gap2.o(.text)
}
END_SEG(gap2)
. = 0x336400;
BEGIN_SEG(FileNameTable, 0x02400000)
{
build/asm/filenametable.o(.text);
}
END_SEG(FileNameTable)
}