summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/pokenav.s962
-rw-r--r--ld_script.txt3
-rw-r--r--src/pokenav_after.c (renamed from src/pokenav.c)0
-rw-r--r--src/pokenav_before.c611
4 files changed, 613 insertions, 963 deletions
diff --git a/asm/pokenav.s b/asm/pokenav.s
index cb6a40450..359dccaf6 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -6,968 +6,6 @@
.text
- thumb_func_start sub_80EBA5C
-sub_80EBA5C: @ 80EBA5C
- push {lr}
- ldr r0, _080EBA74 @ =gMain
- ldr r2, _080EBA78 @ =0x0000043c
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bhi _080EBABC
- lsls r0, 2
- ldr r1, _080EBA7C @ =_080EBA80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBA74: .4byte gMain
-_080EBA78: .4byte 0x0000043c
-_080EBA7C: .4byte _080EBA80
- .align 2, 0
-_080EBA80:
- .4byte _080EBAC0
- .4byte _080EBB08
- .4byte _080EBB10
- .4byte _080EBB16
- .4byte _080EBB1C
- .4byte _080EBB22
- .4byte _080EBB28
- .4byte _080EBB2E
- .4byte _080EBB3E
- .4byte _080EBB4C
- .4byte _080EBB5C
- .4byte _080EBB6C
- .4byte _080EBB7C
- .4byte _080EBB90
- .4byte _080EBBA0
-_080EBABC:
- movs r0, 0
- strb r0, [r1]
-_080EBAC0:
- bl is_c1_link_related_active
- ldr r3, _080EBAF0 @ =0x02000000
- ldr r2, _080EBAF4 @ =0x00006dac
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080EBBC0
- ldr r1, _080EBAF8 @ =0x00006dab
- adds r0, r3, r1
- strb r2, [r0]
- ldr r1, _080EBAFC @ =gMain
- ldr r2, _080EBB00 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBB04 @ =sub_80EBBE8
- bl SetMainCallback2
- b _080EBBC0
- .align 2, 0
-_080EBAF0: .4byte 0x02000000
-_080EBAF4: .4byte 0x00006dac
-_080EBAF8: .4byte 0x00006dab
-_080EBAFC: .4byte gMain
-_080EBB00: .4byte 0x0000043c
-_080EBB04: .4byte sub_80EBBE8
-_080EBB08:
- movs r0, 0
- bl SetVBlankCallback
- b _080EBBC0
-_080EBB10:
- bl ResetPaletteFade
- b _080EBBC0
-_080EBB16:
- bl ResetSpriteData
- b _080EBBC0
-_080EBB1C:
- bl FreeAllSpritePalettes
- b _080EBBC0
-_080EBB22:
- bl ResetTasks
- b _080EBBC0
-_080EBB28:
- bl remove_some_task
- b _080EBBC0
-_080EBB2E:
- bl sub_80F1A90
- ldr r1, _080EBB44 @ =gMain
- ldr r0, _080EBB48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB3E:
- bl sub_80F1AC4
- b _080EBB80
- .align 2, 0
-_080EBB44: .4byte gMain
-_080EBB48: .4byte 0x0000043c
-_080EBB4C:
- bl sub_80F2688
- ldr r1, _080EBB64 @ =gMain
- ldr r2, _080EBB68 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB5C:
- bl sub_80F26BC
- b _080EBB80
- .align 2, 0
-_080EBB64: .4byte gMain
-_080EBB68: .4byte 0x0000043c
-_080EBB6C:
- bl sub_80F36F0
- ldr r1, _080EBB88 @ =gMain
- ldr r0, _080EBB8C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB7C:
- bl sub_80F3724
-_080EBB80:
- lsls r0, 24
- cmp r0, 0
- bne _080EBBCC
- b _080EBBC0
- .align 2, 0
-_080EBB88: .4byte gMain
-_080EBB8C: .4byte 0x0000043c
-_080EBB90:
- bl sub_80EBC10
- ldr r0, _080EBB9C @ =sub_80EBDD8
- bl sub_80EBDBC
- b _080EBBC0
- .align 2, 0
-_080EBB9C: .4byte sub_80EBDD8
-_080EBBA0:
- ldr r0, _080EBBD0 @ =0x02000000
- ldr r1, _080EBBD4 @ =0x00006dab
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x6E
- bl PlaySE
- ldr r0, _080EBBD8 @ =sub_80EBD90
- bl SetMainCallback2
- ldr r0, _080EBBDC @ =sub_80EBD18
- bl SetVBlankCallback
- bl sub_80F1A74
-_080EBBC0:
- ldr r1, _080EBBE0 @ =gMain
- ldr r2, _080EBBE4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBBCC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EBBD0: .4byte 0x02000000
-_080EBBD4: .4byte 0x00006dab
-_080EBBD8: .4byte sub_80EBD90
-_080EBBDC: .4byte sub_80EBD18
-_080EBBE0: .4byte gMain
-_080EBBE4: .4byte 0x0000043c
- thumb_func_end sub_80EBA5C
-
- thumb_func_start sub_80EBBE8
-sub_80EBBE8: @ 80EBBE8
- push {r4,lr}
- ldr r0, _080EBC08 @ =0x02000000
- ldr r2, _080EBC0C @ =0x00006dab
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080EBC02
- adds r4, r1, 0
-_080EBBF8:
- bl sub_80EBA5C
- ldrb r0, [r4]
- cmp r0, 0
- beq _080EBBF8
-_080EBC02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC08: .4byte 0x02000000
-_080EBC0C: .4byte 0x00006dab
- thumb_func_end sub_80EBBE8
-
- thumb_func_start sub_80EBC10
-sub_80EBC10: @ 80EBC10
- push {r4-r7,lr}
- ldr r1, _080EBC7C @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r2, _080EBC80 @ =0x02000000
- ldr r1, _080EBC84 @ =0x00008828
- adds r3, r2, r1
- movs r1, 0
- strb r0, [r3]
- ldr r3, _080EBC88 @ =0x00006ddc
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC8C @ =0x00009344
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC90 @ =0x00008768
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080EBC94 @ =0x0000ced0
- adds r0, r2, r3
- str r1, [r0]
- movs r3, 0
- ldr r0, _080EBC98 @ =0x00008fff
- adds r7, r2, r0
- mov r12, r2
- movs r6, 0
- ldr r5, _080EBC9C @ =0x00009040
- movs r4, 0x9B
-_080EBC4C:
- adds r0, r3, r7
- strb r6, [r0]
- lsls r1, r3, 2
- adds r1, r2
- adds r0, r1, r5
- strh r4, [r0]
- ldr r0, _080EBCA0 @ =0x00009042
- adds r1, r0
- movs r0, 0x5B
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080EBC4C
- ldr r1, _080EBCA4 @ =0x00006e95
- add r1, r12
- movs r0, 0
- strb r0, [r1]
- bl sub_80EBCA8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC7C: .4byte gKeyRepeatStartDelay
-_080EBC80: .4byte 0x02000000
-_080EBC84: .4byte 0x00008828
-_080EBC88: .4byte 0x00006ddc
-_080EBC8C: .4byte 0x00009344
-_080EBC90: .4byte 0x00008768
-_080EBC94: .4byte 0x0000ced0
-_080EBC98: .4byte 0x00008fff
-_080EBC9C: .4byte 0x00009040
-_080EBCA0: .4byte 0x00009042
-_080EBCA4: .4byte 0x00006e95
- thumb_func_end sub_80EBC10
-
- thumb_func_start sub_80EBCA8
-sub_80EBCA8: @ 80EBCA8
- push {r4,lr}
- ldr r4, _080EBCDC @ =0x02000000
- ldr r0, _080EBCE0 @ =0x00006db2
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBCE4 @ =0x00006db3
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080EBCE8 @ =0x00006db4
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _080EBCEC @ =0x0000083b
- bl FlagGet
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EBCF4
- ldr r0, _080EBCF0 @ =0x00006db5
- adds r1, r4, r0
- movs r0, 0x4
- strb r0, [r1]
- b _080EBCFA
- .align 2, 0
-_080EBCDC: .4byte 0x02000000
-_080EBCE0: .4byte 0x00006db2
-_080EBCE4: .4byte 0x00006db3
-_080EBCE8: .4byte 0x00006db4
-_080EBCEC: .4byte 0x0000083b
-_080EBCF0: .4byte 0x00006db5
-_080EBCF4:
- ldr r1, _080EBD0C @ =0x00006db5
- adds r0, r4, r1
- strb r2, [r0]
-_080EBCFA:
- ldr r0, _080EBD10 @ =0x02000000
- ldr r1, _080EBD14 @ =0x00006db6
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBD0C: .4byte 0x00006db5
-_080EBD10: .4byte 0x02000000
-_080EBD14: .4byte 0x00006db6
- thumb_func_end sub_80EBCA8
-
- thumb_func_start sub_80EBD18
-sub_80EBD18: @ 80EBD18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F1FF0
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD18
-
- thumb_func_start sub_80EBD30
-sub_80EBD30: @ 80EBD30
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl UpdateRegionMapVideoRegs
- bl sub_80EFE7C
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD30
-
- thumb_func_start sub_80EBD4C
-sub_80EBD4C: @ 80EBD4C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F5BF0
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD4C
-
- thumb_func_start sub_80EBD68
-sub_80EBD68: @ 80EBD68
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F6F64
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD68
-
- thumb_func_start sub_80EBD80
-sub_80EBD80: @ 80EBD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD80
-
- thumb_func_start sub_80EBD90
-sub_80EBD90: @ 80EBD90
- push {lr}
- ldr r0, _080EBDB8 @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- bl sub_80F19FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EBDB8: .4byte 0x02000000
- thumb_func_end sub_80EBD90
-
- thumb_func_start sub_80EBDBC
-sub_80EBDBC: @ 80EBDBC
- ldr r2, _080EBDD4 @ =0x02000000
- movs r3, 0xC0
- lsls r3, 2
- adds r1, r2, r3
- str r0, [r1]
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080EBDD4: .4byte 0x02000000
- thumb_func_end sub_80EBDBC
-
- thumb_func_start sub_80EBDD8
-sub_80EBDD8: @ 80EBDD8
- push {lr}
- sub sp, 0x4
- ldr r1, _080EBDF8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x11
- bls _080EBDEE
- b _080EC000
-_080EBDEE:
- lsls r0, 2
- ldr r1, _080EBDFC @ =_080EBE00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBDF8: .4byte 0x02000000
-_080EBDFC: .4byte _080EBE00
- .align 2, 0
-_080EBE00:
- .4byte _080EBE48
- .4byte _080EBE80
- .4byte _080EBE92
- .4byte _080EBEAC
- .4byte _080EBEC0
- .4byte _080EBED2
- .4byte _080EBEF0
- .4byte _080EBF04
- .4byte _080EBF18
- .4byte _080EBF2C
- .4byte _080EBF48
- .4byte _080EBF54
- .4byte _080EBF74
- .4byte _080EBF88
- .4byte _080EBFA0
- .4byte _080EBFB4
- .4byte _080EBFD0
- .4byte _080EBFE8
-_080EBE48:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080EBE74 @ =0x02000000
- ldr r3, _080EBE78 @ =0x00006ddc
- adds r0, r1, r3
- ldrb r2, [r0]
- subs r3, 0x2F
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EBE7C @ =0x00006dae
- adds r2, r1, r0
- movs r0, 0x5
- strb r0, [r2]
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBE74: .4byte 0x02000000
-_080EBE78: .4byte 0x00006ddc
-_080EBE7C: .4byte 0x00006dae
-_080EBE80:
- bl sub_80F3FF0
- ldr r1, _080EBEA8 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBE92:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- beq _080EBE9E
- b _080EC000
-_080EBE9E:
- ldr r1, _080EBEA8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEA8: .4byte 0x02000000
-_080EBEAC:
- bl sub_80F2598
- ldr r1, _080EBEBC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBEBC: .4byte 0x02000000
-_080EBEC0:
- bl sub_80EEE20
- ldr r1, _080EBEEC @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBED2:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- beq _080EBEDE
- b _080EC000
-_080EBEDE:
- bl sub_80EEE08
- ldr r1, _080EBEEC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEEC: .4byte 0x02000000
-_080EBEF0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EBF14 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF04:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EBF12
- b _080EC000
-_080EBF12:
- b _080EBFD4
- .align 2, 0
-_080EBF14: .4byte 0x02000000
-_080EBF18:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EBF44 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF2C:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBF44 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF44: .4byte 0x02000000
-_080EBF48:
- ldr r0, _080EBF50 @ =sub_80EBD18
- bl SetVBlankCallback
- b _080EBFD4
- .align 2, 0
-_080EBF50: .4byte sub_80EBD18
-_080EBF54:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080EBF70 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBF70: .4byte 0x02000000
-_080EBF74:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EBF84 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF84: .4byte 0x02000000
-_080EBF88:
- ldr r0, _080EBF9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r2, r3
- b _080EBFDC
- .align 2, 0
-_080EBF9C: .4byte gPaletteFade
-_080EBFA0:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EBFCC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBFB4:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBFCC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBFCC: .4byte 0x02000000
-_080EBFD0:
- bl sub_80F1DF0
-_080EBFD4:
- ldr r1, _080EBFE4 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080EBFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC000
- .align 2, 0
-_080EBFE4: .4byte 0x02000000
-_080EBFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- movs r0, 0
- movs r1, 0
- bl sub_80EF428
- ldr r0, _080EC008 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC000:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EC008: .4byte sub_80EC268
- thumb_func_end sub_80EBDD8
-
- thumb_func_start sub_80EC00C
-sub_80EC00C: @ 80EC00C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC02C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080EC022
- b _080EC1FA
-_080EC022:
- lsls r0, 2
- ldr r1, _080EC030 @ =_080EC034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC02C: .4byte 0x02000000
-_080EC030: .4byte _080EC034
- .align 2, 0
-_080EC034:
- .4byte _080EC06C
- .4byte _080EC0C0
- .4byte _080EC0D4
- .4byte _080EC0F0
- .4byte _080EC104
- .4byte _080EC120
- .4byte _080EC12A
- .4byte _080EC154
- .4byte _080EC168
- .4byte _080EC180
- .4byte _080EC194
- .4byte _080EC1A8
- .4byte _080EC1C4
- .4byte _080EC1DC
-_080EC06C:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080EC078
- b _080EC1FA
-_080EC078:
- ldr r0, _080EC0AC @ =sub_80EBD80
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080EC0B0 @ =0x02000000
- ldr r1, _080EC0B4 @ =0x00006ddc
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080EC0B8 @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080EC0BC @ =0x00006dae
- adds r1, r4, r0
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC1FA
- .align 2, 0
-_080EC0AC: .4byte sub_80EBD80
-_080EC0B0: .4byte 0x02000000
-_080EC0B4: .4byte 0x00006ddc
-_080EC0B8: .4byte 0x00006dad
-_080EC0BC: .4byte 0x00006dae
-_080EC0C0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EC0EC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC0D4:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EC0E2
- b _080EC1FA
-_080EC0E2:
- ldr r1, _080EC0EC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC0EC: .4byte 0x02000000
-_080EC0F0:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EC11C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC104:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080EC112
- b _080EC1FA
-_080EC112:
- ldr r1, _080EC11C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC11C: .4byte 0x02000000
-_080EC120:
- bl sub_8055870
- cmp r0, 0
- bne _080EC1FA
- b _080EC1C8
-_080EC12A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EC150 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC150: .4byte sub_80EBD18
-_080EC154:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EC164 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC164: .4byte 0x02000000
-_080EC168:
- ldr r0, _080EC17C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC1FA
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC17C: .4byte gPaletteFade
-_080EC180:
- bl sub_80F2598
- ldr r1, _080EC190 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC190: .4byte 0x02000000
-_080EC194:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EC1C0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC1A8:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r1, _080EC1C0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC1C0: .4byte 0x02000000
-_080EC1C4:
- bl sub_80F1DF0
-_080EC1C8:
- ldr r1, _080EC1D8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080EC1D0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC1FA
- .align 2, 0
-_080EC1D8: .4byte 0x02000000
-_080EC1DC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r0, _080EC204 @ =0x02000000
- ldr r1, _080EC208 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- ldr r0, _080EC20C @ =sub_80EC268
- bl sub_80EBDBC
-_080EC1FA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC204: .4byte 0x02000000
-_080EC208: .4byte 0x00006dad
-_080EC20C: .4byte sub_80EC268
- thumb_func_end sub_80EC00C
-
- thumb_func_start sub_80EC210
-sub_80EC210: @ 80EC210
- push {r4,r5,lr}
- ldr r5, _080EC228 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC22C
- cmp r0, 0x1
- beq _080EC24C
- b _080EC25C
- .align 2, 0
-_080EC228: .4byte 0x02000000
-_080EC22C:
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080EC248 @ =0x00006ddc
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC25C
- .align 2, 0
-_080EC248: .4byte 0x00006ddc
-_080EC24C:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC25C
- ldr r0, _080EC264 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC25C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC264: .4byte sub_80EC268
- thumb_func_end sub_80EC210
-
thumb_func_start sub_80EC268
sub_80EC268: @ 80EC268
push {r4-r6,lr}
diff --git a/ld_script.txt b/ld_script.txt
index c895c4d06..fda697ff9 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -186,8 +186,9 @@ SECTIONS {
src/bike.o(.text);
asm/easy_chat.o(.text);
src/easy_chat.o(.text);
+ src/pokenav_before.o(.text);
asm/pokenav.o(.text);
- src/pokenav.o(.text);
+ src/pokenav_after.o(.text);
asm/pokenav.o(.text_80F708C);
src/mon_markings.o(.text);
src/mauville_old_man.o(.text);
diff --git a/src/pokenav.c b/src/pokenav_after.c
index 84ed7b14b..84ed7b14b 100644
--- a/src/pokenav.c
+++ b/src/pokenav_after.c
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
new file mode 100644
index 000000000..d0efd2bbd
--- /dev/null
+++ b/src/pokenav_before.c
@@ -0,0 +1,611 @@
+#include "global.h"
+#include "main.h"
+#include "pokenav.h"
+#include "battle.h"
+#include "data2.h"
+#include "de_rom_8040FE0.h"
+#include "string_util.h"
+#include "rom4.h"
+#include "palette.h"
+#include "task.h"
+#include "unknown_task.h"
+#include "sound.h"
+#include "region_map.h"
+#include "songs.h"
+#include "flags.h"
+
+struct UnknownPokenav0 {
+ /* 0x0000 */ u8 fill0000[0x0300];
+ /* 0x0300 */ void (*var300)(void);
+ /* 0x0304 */ u16 var304;
+ /* 0x0306 */ u8 fill0306;
+ /* 0x0308 */ u32 var308;
+ /* 0x030C */ u8 fill030C[0x6a9f];
+ /* 0x6dab */ u8 var6dab;
+ /* 0x6dac */ u8 var6dac;
+ /* 0x6dad */ u8 var6dad;
+ /* 0x6dae */ u8 var6dae;
+ /* 0x6daf */ u8 fill6daf[0x3];
+ /* 0x6db2 */ u8 var6db2;
+ /* 0x6db3 */ u8 fill6db3[0x29];
+ /* 0x6ddc */ u8 var6ddc;
+ /* 0x6ddd */ u8 fill6ddd[0x198b];
+ /* 0x8768 */ u32 var8768;
+ /* 0x876C */ u8 fill876B[0x00bc];
+ /* 0x8828 */ u8 var8828;
+ /* 0x8829 */ u8 fill8829[0x07c0];
+ /* 0x8FE8 */ u8 var8fe8;
+ /* 0x8FE9 */ u8 fill8FE9[0x035B];
+ /* 0x9344 */ u8 var9344;
+ /* 0x9345 */ u8 fill9345[0x3b8b];
+ /* 0xced0 */ u32 varCED0;
+};
+
+struct UnknownPokenav8fff {
+ /* 0x8fff */ u8 var8fff[5];
+ /* 0x9004 */ u8 fill9004[0x6e90];
+ /* 0x6e95 */ u8 var6e95;
+};
+
+
+extern u8 ewram[];
+#define ewram0 (*(struct UnknownPokenav0*)(ewram + 0))
+#define ewram8fff (*(struct UnknownPokenav8fff*)(ewram + 0x8fff))
+extern u8 unk_2000000[];
+
+extern void sub_80F1A90();
+extern bool8 sub_80F1AC4();
+extern void sub_80F36F0();
+extern bool8 sub_80F3724();
+extern void sub_80EBC10();
+extern void sub_80EBDBC(void (*func)(void));
+extern void sub_80EBBE8();
+extern bool8 sub_80F26BC(void);
+extern void sub_80EBDD8();
+extern void sub_80EBD90();
+extern void sub_80EBD18();
+extern void sub_80F1A74();
+extern void sub_80F1FF0();
+extern void sub_80FB260();
+extern void sub_80EFE7C();
+extern void sub_80F5BF0();
+extern void sub_80F6F64();
+extern void _call_via_r0(void (*func)(void));
+extern void sub_80F19FC();
+
+void sub_80EBA5C() {
+ switch (gMain.state) {
+ default:
+ gMain.state = 0;
+ case 0:
+ ewram0.var6dac = is_c1_link_related_active();
+ if (!ewram0.var6dac) {
+ ewram0.var6dab = 0;
+ gMain.state++;
+ SetMainCallback2(&sub_80EBBE8);
+ break;
+ }
+ break;
+ case 1:
+ SetVBlankCallback(NULL);
+ break;
+ case 2:
+ ResetPaletteFade();
+ break;
+ case 3:
+ ResetSpriteData();
+ break;
+ case 4:
+ FreeAllSpritePalettes();
+ break;
+ case 5:
+ ResetTasks();
+ break;
+ case 6:
+ remove_some_task();
+ break;
+ case 7:
+ sub_80F1A90();
+ gMain.state++;
+ case 8:
+ if (sub_80F1AC4()) return;
+ break;
+ case 9:
+ sub_80F2688();
+ gMain.state++;
+
+ case 0xA:
+ if (sub_80F26BC()) return;
+ break;
+ case 0xB:
+ sub_80F36F0();
+ gMain.state++;
+ case 0xC:
+ if (sub_80F3724()) return;
+ break;
+ case 0xD:
+ sub_80EBC10();
+ sub_80EBDBC(&sub_80EBDD8);
+ break;
+ case 0xE:
+ ewram0.var6dab = 1;
+ PlaySE(SE_PN_ON);
+ SetMainCallback2(&sub_80EBD90);
+ SetVBlankCallback(&sub_80EBD18);
+ sub_80F1A74();
+ break;
+ }
+ gMain.state++;
+}
+
+void sub_80EBBE8() {
+ u8 var1;
+ if (!ewram0.var6dab) {
+ var1 = ewram0.var6dab;
+ do {
+ sub_80EBA5C();
+ var1 = ewram0.var6dab;
+ } while (!var1);
+ }
+}
+
+// Falla el acceso a 0x8fff
+#if 0
+
+u16 gKeyRepeatStartDelay;
+void sub_80EBCA8();
+
+//void sub_80EBC10() {
+// u16 i;
+// u16 *unk2;
+// gKeyRepeatStartDelay = 0x14;
+// unk_2000000[0x8828] = CalculatePlayerPartyCount();
+// unk_2000000[0x6ddc] = unk_2000000[0x9344] = 0;
+// *(u32 *)&unk_2000000[0x8768] = 0;
+// *(u32 *)&unk_2000000[0xced0] = 0;
+// for (i = 0; i <= 4; ++i) {
+// unk_2000000[0x8fff + i] = 0;
+// unk2 = (u16 *)unk_2000000;
+// unk2[i*2 + 0x4820] = 0x9B;
+// unk2[i*2 + 0x4821] = 0x5B;
+// }
+// unk_2000000[0x8fff + 0x6e95] = 0;
+// sub_80EBCA8();
+//}
+void sub_80EBC10() {
+ u16 i;
+ u16 *unk2;
+ gKeyRepeatStartDelay = 0x14;
+ ewram0.var8828 = CalculatePlayerPartyCount();
+ ewram0.var6ddc = 0;
+ ewram0.var9344 = 0;
+ ewram0.var8768 = 0;
+ ewram0.varCED0 = 0;
+ for (i = 0; i <= 4; ++i) {
+ ewram8fff.var8fff[i] = 0;
+ unk2 = (u16 *)ewram;
+ unk2[i*2 + 0x4820] = 0x9B;
+ unk2[i*2 + 0x4821] = 0x5B;
+ }
+ ewram8fff.var6e95 = 0;
+ sub_80EBCA8();
+}
+
+#else
+
+__attribute__((naked))
+void sub_80EBC10() {
+ asm_unified("push {r4-r7,lr}\n\
+ ldr r1, _080EBC7C @ =gKeyRepeatStartDelay\n\
+ movs r0, 0x14\n\
+ strh r0, [r1]\n\
+ bl CalculatePlayerPartyCount\n\
+ ldr r2, _080EBC80 @ =0x02000000\n\
+ ldr r1, _080EBC84 @ =0x00008828\n\
+ adds r3, r2, r1\n\
+ movs r1, 0\n\
+ strb r0, [r3]\n\
+ ldr r3, _080EBC88 @ =0x00006ddc\n\
+ adds r0, r2, r3\n\
+ strb r1, [r0]\n\
+ ldr r3, _080EBC8C @ =0x00009344\n\
+ adds r0, r2, r3\n\
+ strb r1, [r0]\n\
+ ldr r3, _080EBC90 @ =0x00008768\n\
+ adds r0, r2, r3\n\
+ str r1, [r0]\n\
+ ldr r3, _080EBC94 @ =0x0000ced0\n\
+ adds r0, r2, r3\n\
+ str r1, [r0]\n\
+ movs r3, 0\n\
+ ldr r0, _080EBC98 @ =0x00008fff\n\
+ adds r7, r2, r0\n\
+ mov r12, r2\n\
+ movs r6, 0\n\
+ ldr r5, _080EBC9C @ =0x00009040\n\
+ movs r4, 0x9B\n\
+_080EBC4C:\n\
+ adds r0, r3, r7\n\
+ strb r6, [r0]\n\
+ lsls r1, r3, 2\n\
+ adds r1, r2\n\
+ adds r0, r1, r5\n\
+ strh r4, [r0]\n\
+ ldr r0, _080EBCA0 @ =0x00009042\n\
+ adds r1, r0\n\
+ movs r0, 0x5B\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x4\n\
+ bls _080EBC4C\n\
+ ldr r1, _080EBCA4 @ =0x00006e95\n\
+ add r1, r12\n\
+ movs r0, 0\n\
+ strb r0, [r1]\n\
+ bl sub_80EBCA8\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080EBC7C: .4byte gKeyRepeatStartDelay\n\
+_080EBC80: .4byte 0x02000000\n\
+_080EBC84: .4byte 0x00008828\n\
+_080EBC88: .4byte 0x00006ddc\n\
+_080EBC8C: .4byte 0x00009344\n\
+_080EBC90: .4byte 0x00008768\n\
+_080EBC94: .4byte 0x0000ced0\n\
+_080EBC98: .4byte 0x00008fff\n\
+_080EBC9C: .4byte 0x00009040\n\
+_080EBCA0: .4byte 0x00009042\n\
+_080EBCA4: .4byte 0x00006e95\n");
+}
+#endif
+
+void sub_80EBCA8() {
+ unk_2000000[0x6db2] = 1;
+ unk_2000000[0x6db3] = 2;
+ unk_2000000[0x6db4] = 3;
+ if (FlagGet(SYS_RIBBON_GET)) {
+ unk_2000000[0x6db5] = 4;
+ }
+ else {
+ unk_2000000[0x6db5] = 0;
+ }
+ unk_2000000[0x6db6] = 5;
+}
+
+void sub_80EBD18() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F1FF0();
+}
+
+void sub_80EBD30() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ UpdateRegionMapVideoRegs();
+ sub_80EFE7C();
+}
+
+void sub_80EBD4C() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F5BF0();
+ sub_8089668();
+}
+
+void sub_80EBD68() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_80F6F64();
+}
+
+void sub_80EBD80() {
+ LoadOam();
+ ProcessSpriteCopyRequests();
+}
+
+void sub_80EBD90() {
+ _call_via_r0(ewram0.var300);
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ UpdatePaletteFade();
+ sub_80F19FC();
+}
+
+void sub_80EBDBC(void (*func)(void)) {
+ ewram0.var300 = func;
+ ewram0.var304 = 0;
+}
+
+void sub_80F3FF0();
+bool8 sub_80F4024();
+void sub_80F2598();
+void sub_80EEE20();
+bool8 sub_80EEE54();
+void sub_80EEE08();
+void sub_80EF248();
+bool8 sub_80EF284();
+void sub_80F1B8C();
+bool8 sub_80F1BC8(u32 unk);
+void sub_80EED2C();
+void sub_80F1DF0();
+bool8 sub_80F1E50();
+void sub_80EF428();
+void sub_80EC268();
+
+void sub_80EBDD8() {
+ switch (ewram0.var304) {
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_DISPCNT = 0;
+ ewram0.var6dad = ewram0.var6ddc;
+ ewram0.var6dae = 5;
+ ewram0.var304++;
+ break;
+ case 1:
+ sub_80F3FF0();
+ ewram0.var304++;
+ case 2:
+ if (sub_80F4024()) return;
+ ewram0.var304++;
+ break;
+ case 3:
+ sub_80F2598();
+ ewram0.var304++;
+ break;
+ case 4:
+ sub_80EEE20();
+ ewram0.var304++;
+ case 5:
+ if (sub_80EEE54()) return;
+ sub_80EEE08();
+ ewram0.var304++;
+ return;
+ case 6:
+ sub_80EF248(0);
+ ewram0.var304++;
+ case 7:
+ if (sub_80EF284(0)) return;
+ ewram0.var304++;
+ break;
+ case 8:
+ sub_80F1B8C(0);
+ ewram0.var304++;
+ case 9:
+ if (sub_80F1BC8(0)) return;
+ ewram0.var304++;
+ break;
+ case 10:
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0.var304++;
+ break;
+ case 11:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ ewram0.var304++;
+ return;
+ case 12:
+ sub_80EED2C(0);
+ ewram0.var304++;
+ return;
+ case 13:
+ if (gPaletteFade.active) return;
+ ewram0.var304++;
+ return;
+ case 14:
+ sub_80F2C80(0);
+ ewram0.var304++;
+ case 15:
+ if (sub_80F2CBC(0)) return;
+ ewram0.var304++;
+ break;
+ case 16:
+ sub_80F1DF0();
+ ewram0.var304++;
+ return;
+ case 17:
+ if (!sub_80F1E50()) {
+ sub_80EF428(0, 0);
+ sub_80EBDBC(&sub_80EC268);
+ }
+ return;
+
+ }
+
+}
+
+bool8 sub_80EEF78();
+void sub_80EED1C();
+
+void sub_80EC00C() {
+ switch (ewram0.var304) {
+ case 0:
+ if (!sub_80EEF78()) {
+ SetVBlankCallback(&sub_80EBD80);
+ sub_80EED1C();
+ ewram0.var6dad = ewram0.var6ddc;
+ ewram0.var6dae = 5;
+ sub_80EEE08();
+ ewram0.var304++;
+ }
+ break;
+ case 1:
+ sub_80EF248(0);
+ ewram0.var304++;
+ case 2:
+ if (sub_80EF284(0)) return;
+ ewram0.var304++;
+ break;
+ case 3:
+ sub_80F1B8C(0);
+ ewram0.var304++;
+ case 4:
+ if (sub_80F1BC8(0)) return;
+ ewram0.var304++;
+ break;
+ case 5:
+ if (sub_8055870()) return;
+ ewram0.var304++;
+ break;
+ case 6:
+ BeginNormalPaletteFade(ewram0.var308, -1, 0x10, 0, 0);
+ SetVBlankCallback(&sub_80EBD18);
+ ewram0.var304++;
+ break;
+ case 7:
+ sub_80EED2C(0);
+ ewram0.var304++;
+ break;
+ case 8:
+ if (gPaletteFade.active) return;
+ ewram0.var304++;
+ return;
+ case 9:
+ sub_80F2598();
+ ewram0.var304++;
+ break;
+ case 10:
+ sub_80F2C80(0);
+ ewram0.var304++;
+ case 11:
+ if (sub_80F2CBC(0)) return;
+ ewram0.var304++;
+ return;
+ case 12:
+ sub_80F1DF0();
+ ewram0.var304++;
+ return;
+ case 13:
+ if (sub_80F1E50()) return;
+ sub_80EF428(0, ewram0.var6dad);
+ sub_80EBDBC(&sub_80EC268);
+ }
+}
+
+void sub_80F2D04(u32);
+void sub_80EE9C0(u32, u8, u32);
+bool8 sub_80EEA0C();
+
+void sub_80EC210() {
+ switch (ewram0.var304) {
+ case 0:
+ sub_80F2D04(1);
+ sub_80EE9C0(0, ewram0.var6ddc, 0);
+ ewram0.var304++;
+ break;
+ case 1:
+ if (sub_80EEA0C()) return;
+ sub_80EBDBC(&sub_80EC268);
+ }
+}
+
+#if 0
+bool8 sub_80EEC10();
+bool8 sub_80F6250();
+void sub_80EED9C();
+void sub_80F6208();
+void sub_80EDB88();
+void sub_80EC4A0();
+void sub_80EC81C();
+void sub_80F208C();
+void sub_80EE96C();
+
+void sub_80EC268() {
+ if (ewram0.var304 != 3) {
+ // bls -> bgt
+ if (ewram0.var304 > 3) {
+ if (ewram0.var304 != 6) {
+ if (ewram0.var304 > 6) {
+ if (ewram0.var304 != 0xFF) return;
+ if (sub_80EEC10() == 0) {
+ if (gMain.newKeys == (A_BUTTON | B_BUTTON)) return;
+ sub_80EF428(0, ewram0.var6dad);
+ return;
+ }
+ PlaySE(0x5);
+ sub_80EF428(0, ewram0.var6dad);
+ sub_80EED9C();
+ return;
+
+ }
+ if (ewram0.var304 != 4) return;
+ if (sub_8055870() != 0) return;
+ if (ewram0.var8fe8 == 0) {
+ PlaySE(0x20);
+ sub_80EF428(0, 5);
+ ewram0.var304 = 0xFF;
+ return;
+ }
+ PlaySE(0x5);
+ sub_80EBDBC(&sub_80EDB88);
+ return;
+ }
+ if (ewram0.var304 != 4) return;
+ if (sub_8055870()) return;
+ if (!ewram0.var8fe8) {
+ PlaySE(0x20);
+ sub_80EF428(0, 5);
+ ewram0.var304 = 0xFF;
+ return;
+ }
+ PlaySE(5);
+ sub_80EBDBC(&sub_80EDB88);
+ return;
+ }
+ if (ewram0.var304 != 1) {
+ if (ewram0.var304 < 1) {
+ if (ewram0.var304 == 0) {
+ if (sub_80EEC10() == 0) {
+ if (gMain.newKeys != A_BUTTON) {
+
+ }
+ ewram0.var6ddc = ewram0.var6dad;
+ // TODO arreglar esto
+ switch (ewram0.var6db2) {
+ case 1:
+ PlaySE(5);
+ sub_80EBDBC(&sub_80EC4A0);
+ return;
+ case 2:
+ PlaySE(5);
+ sub_80EBDBC(&sub_80EC81C);
+ return;
+ case 3:
+ ewram0.var304 = 6;
+ return;
+ case 4:
+ ewram0.var304 = 2;
+ return;
+ case 5:
+ ewram0.var304 = 1;
+ return;
+ }
+ }
+ PlaySE(0x5);
+ sub_80EF428(0, ewram0.var6dad);
+ sub_80EED9C();
+ return;
+ }
+ }
+ sub_80F6208();
+ ewram0.var304++;
+ if (sub_80F6250() != 0) return;
+ ewram0.var304++;
+ return;
+ }
+ sub_80F208C();
+ sub_80EBDBC(&sub_80EE96C);
+ return;
+ }
+ if (sub_80F6250() != 0) return;
+ ewram0.var304++;
+ return;
+}
+#endif