summaryrefslogtreecommitdiff
path: root/asm/diploma.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/diploma.s')
-rw-r--r--asm/diploma.s313
1 files changed, 313 insertions, 0 deletions
diff --git a/asm/diploma.s b/asm/diploma.s
new file mode 100644
index 000000000..c7857b592
--- /dev/null
+++ b/asm/diploma.s
@@ -0,0 +1,313 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8145D74
+sub_8145D74: @ 8145D74
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145D74
+
+ thumb_func_start sub_8145D88
+sub_8145D88: @ 8145D88
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ mov r8, r0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r6, _08145EB0
+ strh r1, [r6]
+ adds r0, 0xC
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x14
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldr r2, _08145EB4
+ str r0, [r2]
+ movs r1, 0xC0
+ lsls r1, 19
+ str r1, [r2, 0x4]
+ ldr r0, _08145EB8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r2]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08145EBC
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ str r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08145EC0
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _08145EC4
+ bl LZ77UnCompVram
+ ldr r0, _08145EC8
+ ldr r1, _08145ECC
+ bl LZ77UnCompVram
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl ResetPaletteFade
+ bl FreeAllSpritePalettes
+ ldr r0, _08145ED0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08145ED4
+ bl SetUpWindowConfig
+ ldr r0, _08145ED8
+ bl InitMenuWindow
+ bl pokedex_diploma_something
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08145EDC
+ ldrh r2, [r3]
+ strh r5, [r3]
+ ldr r4, _08145EE0
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08145EE4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08145EE8
+ bl SetVBlankCallback
+ ldr r0, _08145EEC
+ bl SetMainCallback2
+ ldr r0, _08145EF0
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r1, _08145EF4
+ adds r0, r1, 0
+ strh r0, [r6]
+ movs r1, 0xCA
+ lsls r1, 5
+ adds r0, r1, 0
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _08145EF8
+ movs r1, 0
+ bl CreateTask
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145EB0: .4byte REG_BG3CNT
+_08145EB4: .4byte 0x040000d4
+_08145EB8: .4byte 0x8100c000
+_08145EBC: .4byte 0x85000100
+_08145EC0: .4byte 0x81000200
+_08145EC4: .4byte gUnknown_0840D288
+_08145EC8: .4byte gUnknown_0840CB4C
+_08145ECC: .4byte 0x06003000
+_08145ED0: .4byte gUnknown_0840CB0C
+_08145ED4: .4byte gWindowConfig_81E6C3C
+_08145ED8: .4byte gWindowConfig_81E6CE4
+_08145EDC: .4byte 0x04000208
+_08145EE0: .4byte 0x04000200
+_08145EE4: .4byte REG_DISPSTAT
+_08145EE8: .4byte sub_8145D74
+_08145EEC: .4byte sub_8145EFC
+_08145EF0: .4byte REG_BLDCNT
+_08145EF4: .4byte 0x00004603
+_08145EF8: .4byte sub_8145F14
+ thumb_func_end sub_8145D88
+
+ thumb_func_start sub_8145EFC
+sub_8145EFC: @ 8145EFC
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145EFC
+
+ thumb_func_start sub_8145F14
+sub_8145F14: @ 8145F14
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08145F38
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08145F34
+ ldr r0, _08145F3C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08145F40
+ str r0, [r1]
+_08145F34:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145F38: .4byte gPaletteFade
+_08145F3C: .4byte gTasks
+_08145F40: .4byte sub_8145F44
+ thumb_func_end sub_8145F14
+
+ thumb_func_start sub_8145F44
+sub_8145F44: @ 8145F44
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08145F80
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08145F76
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08145F84
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08145F88
+ str r1, [r0]
+_08145F76:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145F80: .4byte gMain
+_08145F84: .4byte gTasks
+_08145F88: .4byte sub_8145F8C
+ thumb_func_end sub_8145F44
+
+ thumb_func_start sub_8145F8C
+sub_8145F8C: @ 8145F8C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08145FB0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08145FAA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _08145FB4
+ bl SetMainCallback2
+_08145FAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145FB0: .4byte gPaletteFade
+_08145FB4: .4byte sub_80546F0
+ thumb_func_end sub_8145F8C
+
+ thumb_func_start pokedex_diploma_something
+pokedex_diploma_something: @ 8145FB8
+ push {lr}
+ bl sub_8090FF4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08145FE8
+ ldr r1, _08145FDC
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08145FE0
+ ldr r1, _08145FE4
+ bl StringCopy
+ b _08145FF4
+ .align 2, 0
+_08145FDC: .4byte REG_BG3HOFS
+_08145FE0: .4byte gStringVar1
+_08145FE4: .4byte gOtherText_NationalDex
+_08145FE8:
+ ldr r0, _08146004
+ strh r1, [r0]
+ ldr r0, _08146008
+ ldr r1, _0814600C
+ bl StringCopy
+_08145FF4:
+ ldr r0, _08146010
+ movs r1, 0x6
+ movs r2, 0x2
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146004: .4byte REG_BG3HOFS
+_08146008: .4byte gStringVar1
+_0814600C: .4byte gOtherText_HoennDex
+_08146010: .4byte gOtherText_DiplomaCertificationGameFreak
+ thumb_func_end pokedex_diploma_something
+
+ .align 2, 0 @ Don't pad with nop.