mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-16 19:47:35 +01:00
7dc95a0103
This commit undoes most of PokeCodec's PRs after the debate in chat. Some harmless or completely superseded PRs have been left alone, as there is not much benefit in attempting to undo them. Reverts #1104, #1108, #1115, #1118, #1119, #1124, #1126, #1127, #1132, #1136, #1137, #1139, #1140, #1144, #1148, #1149, #1150, #1153, #1155, #1177, #1179, #1180, #1181, #1182 and #1183.
120 lines
1.8 KiB
ArmAsm
120 lines
1.8 KiB
ArmAsm
.include "../asm/macros/asm.inc"
|
|
.include "../asm/macros/function.inc"
|
|
.include "../constants/gba_constants.inc"
|
|
|
|
.set SIO_ERROR, 0x0040
|
|
.set SIO_MULTI_BUSY, 0x0080
|
|
|
|
.set EWRAM_ORIG, 0x02000000
|
|
.set gCode, 0x02010000
|
|
.set PROG_ORIG, 0x00008000
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
arm_func_start _start
|
|
_start: @ 0
|
|
b _entry
|
|
arm_func_end _start
|
|
|
|
.include "asm/berry_fix_header.inc"
|
|
|
|
@ C0
|
|
.word 0
|
|
|
|
.global _GPIOPortData
|
|
_GPIOPortData: @ C4
|
|
.2byte 0
|
|
|
|
.global _GPIOPortDirection
|
|
_GPIOPortDirection: @ C6
|
|
.2byte 0
|
|
|
|
.global _GPIOPortReadEnable
|
|
_GPIOPortReadEnable: @ C8
|
|
.2byte 0
|
|
|
|
@ CA
|
|
.2byte 0
|
|
|
|
@ CC
|
|
.space 0x34
|
|
|
|
arm_func_start _entry
|
|
_entry: @ 100
|
|
b _send
|
|
arm_func_end _entry
|
|
|
|
.space 0x1C
|
|
|
|
arm_func_start _recv
|
|
_recv:
|
|
@ Waits until link cable is no longer busy.
|
|
@ Returns nz if an error has occurred
|
|
@ Otherwise, returns the received short in r1.
|
|
@ Preserves r0
|
|
_120:
|
|
ldrh r1, [r0, 0x8] @ SIOCNT
|
|
tst r1, SIO_MULTI_BUSY
|
|
beq _120
|
|
_12c:
|
|
ldrh r1, [r0, 0x8] @ SIOCNT
|
|
tst r1, SIO_MULTI_BUSY
|
|
bne _12c
|
|
ldrh r1, [r0, 0x8] @ SIOCNT
|
|
tst r1, SIO_ERROR
|
|
bxne lr
|
|
ldrh r1, [r0] @ SIOMULTI0
|
|
bx lr
|
|
arm_func_end _recv
|
|
|
|
arm_func_start _send
|
|
_send: @ 14c
|
|
ldr r0, =REG_SIOMULTI0
|
|
_150:
|
|
bl _recv
|
|
bne _150
|
|
mov r2, #0
|
|
strh r2, [r0, 0xa] @ SIOMLT_SEND
|
|
cmp r1, #0
|
|
bne _150
|
|
mov r2, 0x8000
|
|
_16c:
|
|
mov r1, #0
|
|
_170:
|
|
strh r1, [r0, 0xa] @ SIOMLT_SEND
|
|
bl _recv
|
|
bne _150
|
|
cmp r1, r2
|
|
bne _16c
|
|
lsr r2, #5
|
|
cmp r1, #0
|
|
bne _170
|
|
ldr r3, =BerryFixMBHeaderGameCode
|
|
ldrh r2, [r3]
|
|
strh r2, [r0, 0xa] @ SIOMLT_SEND
|
|
bl _recv
|
|
_1a0:
|
|
bne _1a0
|
|
cmp r1, r2
|
|
bne _1a0
|
|
ldrh r2, [r3, 0x2]
|
|
strh r2, [r0, 0xa] @ SIOMLT_SEND
|
|
bl _recv
|
|
bne _1a0
|
|
cmp r1, r2
|
|
bne _1a0
|
|
mov r1, #0
|
|
strh r1, [r0, 0xa] @ SIOMLT_SEND
|
|
ldr r0, =_data_2f0
|
|
ldr r1, =gCode
|
|
swi 0x11 << 16
|
|
ldr lr, =gCode
|
|
bx lr
|
|
.pool
|
|
arm_func_end _send
|
|
@ 1f0
|
|
|
|
.align 2, 0 @ don't pad with nop
|