mirror of
https://github.com/LNH-team/pico-loader.git
synced 2026-06-02 09:16:49 +02:00
Add support for Slot 2 flashcarts using Compact Flash (#84)
- Supercard CF (SUPERCARDCF) - GBA Media Player CF (MPCF) - M3 Adapter CF (M3CF) - Max Media Dock CF (MMCF)
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
.cpu arm7tdmi
|
||||
.syntax unified
|
||||
.thumb
|
||||
|
||||
.section "m3cf_lock_unlock", "ax"
|
||||
|
||||
.equ M3_MODE_ROM, 8
|
||||
.equ M3_MODE_MEDIA, 6
|
||||
|
||||
.global m3cf_lockUnlockCard
|
||||
.type m3cf_lockUnlockCard, %function
|
||||
m3cf_lockUnlockCard:
|
||||
cmp r0, #1
|
||||
bne unlock
|
||||
movs r0, #0x08
|
||||
M3_changeMode:
|
||||
push {r1-r7, lr}
|
||||
@ READ_REG #0x08e00002
|
||||
ldr r1, =#0x08e00002
|
||||
ldrh r1, [r1]
|
||||
|
||||
adr r1, M3_regs
|
||||
@ r2 has #0x08801ffc
|
||||
@ r3 has #0x0800104a
|
||||
@ r4 has #0x08800612
|
||||
@ r5 has #0x08801b66
|
||||
@ r6 has #0x0800080e
|
||||
@ r7 has #0x09000000
|
||||
ldm r1!, {r2-r7}
|
||||
|
||||
@ load 0x08000000
|
||||
movs r1, #1
|
||||
lsls r1, #27
|
||||
|
||||
@ READ_REG #0x0800000e
|
||||
ldrh r1, [r1, #0x0E]
|
||||
|
||||
@ READ_REG #0x08801ffc
|
||||
ldrh r1, [r2]
|
||||
@ READ_REG #0x0800104a
|
||||
ldrh r1, [r3]
|
||||
@ READ_REG #0x08800612
|
||||
ldrh r1, [r4]
|
||||
|
||||
@ READ_REG #0x08000000
|
||||
@ load 0x08000000
|
||||
movs r2, #1
|
||||
lsls r2, #27
|
||||
ldrh r1, [r2]
|
||||
|
||||
@ READ_REG #0x08801b66
|
||||
ldrh r1, [r5]
|
||||
|
||||
@ READ_REG #0x08800000 + r0
|
||||
@ ldr r1, =#0x08800000
|
||||
movs r1, 0x88
|
||||
lsls r1, #20
|
||||
ldrh r1, [r1, r0]
|
||||
|
||||
@ READ_REG #0x0800080e
|
||||
ldrh r1, [r6]
|
||||
|
||||
@ READ_REG #0x08000000
|
||||
ldrh r1, [r2]
|
||||
|
||||
cmp r0, M3_MODE_ROM
|
||||
beq lastRomRead
|
||||
@ READ_REG #0x09000000
|
||||
ldrh r1, [r7]
|
||||
pop {r1-r7, pc}
|
||||
|
||||
lastRomRead:
|
||||
@ READ_REG #0x080001e4
|
||||
ldr r1, =#0x080001e4
|
||||
ldrh r3, [r1]
|
||||
ldrh r3, [r1]
|
||||
@ READ_REG #0x08000188
|
||||
subs r1, #0x5C
|
||||
ldrh r3, [r1]
|
||||
ldrh r3, [r1]
|
||||
pop {r1-r7, pc}
|
||||
unlock:
|
||||
movs r0, #0x06
|
||||
b M3_changeMode
|
||||
.pool
|
||||
M3_regs:
|
||||
.word 0x08801ffc
|
||||
.word 0x0800104a
|
||||
.word 0x08800612
|
||||
.word 0x08801b66
|
||||
.word 0x0800080e
|
||||
.word 0x09000000
|
||||
Reference in New Issue
Block a user