From c754c2a0466d8394c7ffcb3a515199d5703e47be Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Fri, 19 Feb 2021 16:01:53 -0800 Subject: [PATCH] Decomp more of personality_test (#27) * decomp most of personality_test * just gonna move the funcs to src in assembly for now so I can combine stuff * label another func and some cleanup * one func of personality test left in asm * small cleanups and labeling of funcs --- asm/credits.s | 10 +- asm/main_menu.s | 34 +- asm/personality_test.s | 1021 --------------------- asm/personality_test_2.s | 106 +++ data/data_80B9BB8.s | 8 +- data/data_80F4278.s | 41 +- data/personality_test.s | 1220 +++++++++++++++++++------- include/constants/emotions.h | 22 + include/constants/friend_area.h | 6 + include/constants/personality_test.h | 12 + include/personality_test.h | 95 ++ ld_script.txt | 3 +- src/code_8041AD0.c | 17 +- src/code_8048480.c | 6 +- src/event_flag.c | 6 +- src/main_menu.c | 8 +- src/personality_test.c | 52 +- src/personality_test_pre.c | 874 ++++++++++++++---- src/pokemon.c | 5 +- 19 files changed, 1915 insertions(+), 1631 deletions(-) delete mode 100644 asm/personality_test.s create mode 100644 asm/personality_test_2.s create mode 100644 include/constants/emotions.h create mode 100644 include/constants/personality_test.h create mode 100644 include/personality_test.h diff --git a/asm/credits.s b/asm/credits.s index fa7810bf..b0c45640 100644 --- a/asm/credits.s +++ b/asm/credits.s @@ -69,7 +69,7 @@ _08035472: _080354C0: .4byte gUnknown_203B340 _080354C4: .4byte gUnknown_80E4A10 _080354C8: .4byte gUnknown_80E4A28 -_080354CC: .4byte gUnknown_80E591C +_080354CC: .4byte gCreditsTable _080354D0: ldr r2, [r1, 0x8] movs r3, 0x4 @@ -157,7 +157,7 @@ _08035542: pop {r1} bx r1 .align 2, 0 -_08035570: .4byte gCreditsTable +_08035570: .4byte gCreditsText thumb_func_end sub_8035444 thumb_func_start sub_8035574 @@ -201,7 +201,7 @@ _080355A8: b _08035654 .align 2, 0 _080355C8: .4byte gUnknown_203B340 -_080355CC: .4byte gCreditsTable +_080355CC: .4byte gCreditsText _080355D0: bl sub_8099B94 lsls r0, 24 @@ -233,7 +233,7 @@ _08035600: str r0, [r1, 0x64] b _08035654 .align 2, 0 -_0803560C: .4byte gCreditsTable +_0803560C: .4byte gCreditsText _08035610: bl sub_8099B94 lsls r0, 24 @@ -262,7 +262,7 @@ _08035638: movs r0, 0x3 b _08035656 .align 2, 0 -_08035650: .4byte gCreditsTable +_08035650: .4byte gCreditsText _08035654: movs r0, 0 _08035656: diff --git a/asm/main_menu.s b/asm/main_menu.s index 1d102e81..8d33b1b8 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -286,8 +286,8 @@ _08035E0A: bx r1 thumb_func_end sub_8035DB4 - thumb_func_start sub_8035E10 -sub_8035E10: + thumb_func_start DrawMainMenu +DrawMainMenu: push {r4-r7,lr} mov r7, r8 push {r7} @@ -335,7 +335,7 @@ _08035E42: movs r1, 0x1 movs r2, 0x1 bl sub_800641C - bl sub_803628C + bl SetMainMenuItems ldr r0, [r4] movs r7, 0xD2 lsls r7, 1 @@ -343,7 +343,7 @@ _08035E42: movs r1, 0x1 negs r1, r1 str r1, [r0] - bl SetMainMenuType + bl SetMainMenuText lsls r0, 24 cmp r0, 0 beq _08035E9A @@ -369,10 +369,10 @@ _08035E9A: .align 2, 0 _08035EB8: .4byte gUnknown_203B34C _08035EBC: .4byte gUnknown_80E59C8 - thumb_func_end sub_8035E10 + thumb_func_end DrawMainMenu - thumb_func_start sub_8035EC0 -sub_8035EC0: + thumb_func_start CleanMainMenu +CleanMainMenu: push {r4,lr} bl ResetUnusedInputStruct movs r0, 0 @@ -392,7 +392,7 @@ _08035EE0: bx r0 .align 2, 0 _08035EE8: .4byte gUnknown_203B34C - thumb_func_end sub_8035EC0 + thumb_func_end CleanMainMenu thumb_func_start sub_8035EEC sub_8035EEC: @@ -426,7 +426,7 @@ _08035F0A: mov r1, sp bl sub_8013114 _08035F28: - bl SetMainMenuType + bl SetMainMenuText lsls r0, 24 cmp r0, 0 beq _08035F4A @@ -553,8 +553,8 @@ _0803601A: bx r1 thumb_func_end sub_8035EEC - thumb_func_start SetMainMenuType -SetMainMenuType: + thumb_func_start SetMainMenuText +SetMainMenuText: push {r4-r6,lr} sub sp, 0x10 ldr r6, _08036048 @@ -789,7 +789,7 @@ _08036226: _08036230: .4byte gUnknown_203B34C _08036234: .4byte gUnknown_80E5CB4 _08036238: .4byte gUnknown_80E5D48 - thumb_func_end SetMainMenuType + thumb_func_end SetMainMenuText thumb_func_start sub_803623C sub_803623C: @@ -801,7 +801,7 @@ sub_803623C: adds r0, r1 movs r1, 0x1 bl sub_8035CC0 - bl sub_803628C + bl SetMainMenuItems ldr r0, [r4] movs r1, 0xD2 lsls r1, 1 @@ -809,7 +809,7 @@ sub_803623C: movs r1, 0x1 negs r1, r1 str r1, [r0] - bl SetMainMenuType + bl SetMainMenuText lsls r0, 24 cmp r0, 0 beq _08036276 @@ -831,8 +831,8 @@ _08036276: _08036288: .4byte gUnknown_203B34C thumb_func_end sub_803623C - thumb_func_start sub_803628C -sub_803628C: + thumb_func_start SetMainMenuItems +SetMainMenuItems: push {r4,lr} sub sp, 0x10 bl sub_8011C34 @@ -984,7 +984,7 @@ _080363D0: .4byte gUnknown_203B34C _080363D4: .4byte gUnknown_80E59E0 _080363D8: .4byte gUnknown_80E59F8 _080363DC: .4byte gUnknown_203B350 - thumb_func_end sub_803628C + thumb_func_end SetMainMenuItems thumb_func_start sub_80363E0 sub_80363E0: diff --git a/asm/personality_test.s b/asm/personality_test.s deleted file mode 100644 index ad191c9b..00000000 --- a/asm/personality_test.s +++ /dev/null @@ -1,1021 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_803C870 -sub_803C870: - push {r4-r6,lr} - sub sp, 0x14 - ldr r5, _0803C8A4 - ldr r1, [r5] - ldr r0, [r1, 0x38] - adds r0, 0x1 - str r0, [r1, 0x38] - cmp r0, 0x8 - ble _0803C8B4 - ldr r0, _0803C8A8 - ldr r3, _0803C8AC - movs r1, 0 - str r1, [sp] - movs r4, 0x3 - str r4, [sp, 0x4] - str r1, [sp, 0x8] - str r1, [sp, 0xC] - ldr r1, _0803C8B0 - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - bl sub_8014248 - ldr r0, [r5] - str r4, [r0, 0x34] - b _0803C8F8 - .align 2, 0 -_0803C8A4: .4byte gUnknown_203B400 -_0803C8A8: .4byte gGenderText -_0803C8AC: .4byte gUnknown_80F275C -_0803C8B0: .4byte 0x00000101 -_0803C8B4: - adds r4, r5, 0 -_0803C8B6: - movs r0, 0x37 - bl RandomCapped - ldr r1, [r4] - str r0, [r1, 0x3C] - adds r1, 0x78 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x1 - beq _0803C8B6 - ldr r2, _0803C900 - ldr r1, _0803C904 - ldr r0, [r1] - ldr r0, [r0, 0x3C] - adds r0, r2 - ldrb r4, [r0] - movs r3, 0 - adds r6, r1, 0 - movs r5, 0x1 -_0803C8DC: - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, r4 - bne _0803C8EC - ldr r0, [r1] - adds r0, 0x78 - adds r0, r3 - strb r5, [r0] -_0803C8EC: - adds r3, 0x1 - cmp r3, 0x36 - ble _0803C8DC - ldr r1, [r6] - movs r0, 0x1 - str r0, [r1, 0x34] -_0803C8F8: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803C900: .4byte gNatureQuestionTable -_0803C904: .4byte gUnknown_203B400 - thumb_func_end sub_803C870 - - thumb_func_start sub_803C908 -sub_803C908: - push {lr} - bl sub_803CC04 - ldr r0, _0803C91C - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x34] - pop {r0} - bx r0 - .align 2, 0 -_0803C91C: .4byte gUnknown_203B400 - thumb_func_end sub_803C908 - - thumb_func_start sub_803C920 -sub_803C920: - push {r4-r6,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803C97C - ldr r3, [sp] - cmp r3, 0x63 - bne _0803C944 - ldr r0, _0803C940 - ldr r1, [r0] - movs r0, 0x37 - str r0, [r1, 0x3C] - movs r0, 0x1 - b _0803C97A - .align 2, 0 -_0803C940: .4byte gUnknown_203B400 -_0803C944: - ldr r1, _0803C984 - ldr r2, _0803C988 - ldr r0, [r2] - ldr r0, [r0, 0x3C] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r4, [r0, 0x8] - lsls r0, r3, 4 - adds r4, r0 - movs r3, 0 - adds r6, r2, 0 - adds r5, r6, 0 -_0803C95E: - ldr r1, [r5] - lsls r0, r3, 2 - adds r1, 0x44 - adds r1, r0 - adds r0, r4, r3 - ldrb r2, [r0] - ldr r0, [r1] - adds r0, r2 - str r0, [r1] - adds r3, 0x1 - cmp r3, 0xC - ble _0803C95E - ldr r1, [r6] - movs r0, 0 -_0803C97A: - str r0, [r1, 0x34] -_0803C97C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803C984: .4byte gPersonalityQuestionPointerTable -_0803C988: .4byte gUnknown_203B400 - thumb_func_end sub_803C920 - - thumb_func_start sub_803C98C -sub_803C98C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803C9CA - ldr r1, [sp] - cmp r1, 0 - bne _0803C9AC - ldr r0, _0803C9A8 - ldr r0, [r0] - adds r0, 0xB0 - b _0803C9B4 - .align 2, 0 -_0803C9A8: .4byte gUnknown_203B400 -_0803C9AC: - ldr r0, _0803C9D0 - ldr r0, [r0] - adds r0, 0xB0 - movs r1, 0x1 -_0803C9B4: - str r1, [r0] - ldr r0, _0803C9D4 - ldr r0, [r0] - strb r1, [r0, 0xB] - movs r0, 0 - bl sub_8099690 - ldr r0, _0803C9D0 - ldr r1, [r0] - movs r0, 0x4 - str r0, [r1, 0x34] -_0803C9CA: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803C9D0: .4byte gUnknown_203B400 -_0803C9D4: .4byte gUnknown_203B46C - thumb_func_end sub_803C98C - - thumb_func_start sub_803C9D8 -sub_803C9D8: - push {r4-r7,lr} - movs r0, 0xD - bl RandomCapped - ldr r2, _0803CA4C - ldr r1, [r2] - adds r1, 0x40 - strb r0, [r1] - ldr r0, [r2] - adds r0, 0x40 - ldrb r3, [r0] - adds r7, r2, 0 - movs r5, 0xB -_0803C9F2: - adds r3, 0x1 - cmp r3, 0xC - ble _0803C9FA - movs r3, 0 -_0803C9FA: - ldr r0, [r7] - lsls r2, r3, 2 - adds r1, r0, 0 - adds r1, 0x44 - adds r2, r1, r2 - adds r4, r0, 0 - adds r4, 0x40 - ldrb r0, [r4] - lsls r0, 2 - adds r1, r0 - ldr r2, [r2] - ldr r0, [r1] - ldr r6, _0803CA4C - cmp r2, r0 - ble _0803CA1A - strb r3, [r4] -_0803CA1A: - subs r5, 0x1 - cmp r5, 0 - bge _0803C9F2 - ldr r3, [r6] - ldr r2, _0803CA50 - adds r0, r3, 0 - adds r0, 0xB0 - ldr r1, [r0] - lsls r1, 1 - subs r0, 0x70 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r3, 0x8] - bl PrintPersonalityTypeDescription - ldr r1, [r6] - movs r0, 0x5 - str r0, [r1, 0x34] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803CA4C: .4byte gUnknown_203B400 -_0803CA50: .4byte gStarters - thumb_func_end sub_803C9D8 - - thumb_func_start sub_803CA54 -sub_803CA54: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803CA7A - ldr r0, _0803CA80 - ldr r3, _0803CA84 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - bl sub_803CC80 - ldr r0, _0803CA88 - ldr r1, [r0] - movs r0, 0x6 - str r0, [r1, 0x34] -_0803CA7A: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803CA80: .4byte gStarterReveal -_0803CA84: .4byte 0x00000101 -_0803CA88: .4byte gUnknown_203B400 - thumb_func_end sub_803CA54 - - thumb_func_start sub_803CA8C -sub_803CA8C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803CAA2 - ldr r0, _0803CAA8 - ldr r1, [r0] - movs r0, 0x7 - str r0, [r1, 0x34] -_0803CAA2: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803CAA8: .4byte gUnknown_203B400 - thumb_func_end sub_803CA8C - - thumb_func_start sub_803CAAC -sub_803CAAC: - push {lr} - ldr r0, _0803CAC8 - ldr r3, _0803CACC - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - ldr r0, _0803CAD0 - ldr r1, [r0] - movs r0, 0x8 - str r0, [r1, 0x34] - pop {r0} - bx r0 - .align 2, 0 -_0803CAC8: .4byte gUnknown_80F27DC -_0803CACC: .4byte 0x00000301 -_0803CAD0: .4byte gUnknown_203B400 - thumb_func_end sub_803CAAC - - thumb_func_start sub_803CAD4 -sub_803CAD4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803CAEA - ldr r0, _0803CAF0 - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x34] -_0803CAEA: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803CAF0: .4byte gUnknown_203B400 - thumb_func_end sub_803CAD4 - - thumb_func_start sub_803CAF4 -sub_803CAF4: - push {r4,lr} - ldr r4, _0803CB10 - ldr r0, [r4] - movs r1, 0x8 - ldrsh r0, [r0, r1] - bl sub_803CD08 - ldr r1, [r4] - movs r0, 0xA - str r0, [r1, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803CB10: .4byte gUnknown_203B400 - thumb_func_end sub_803CAF4 - - thumb_func_start sub_803CB14 -sub_803CB14: - push {r4,r5,lr} - bl sub_803CDC0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0803CB4C - cmp r5, r0 - beq _0803CB46 - subs r0, 0x1 - cmp r5, r0 - beq _0803CB46 - bl sub_803CE6C - ldr r4, _0803CB50 - ldr r0, [r4] - strh r5, [r0, 0xA] - ldr r0, _0803CB54 - ldr r3, _0803CB58 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - ldr r1, [r4] - movs r0, 0xB - str r0, [r1, 0x34] -_0803CB46: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803CB4C: .4byte 0x0000ffff -_0803CB50: .4byte gUnknown_203B400 -_0803CB54: .4byte gUnknown_80F286C -_0803CB58: .4byte 0x00000301 - thumb_func_end sub_803CB14 - - thumb_func_start sub_803CB5C -sub_803CB5C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803CB72 - ldr r0, _0803CB78 - ldr r1, [r0] - movs r0, 0xC - str r0, [r1, 0x34] -_0803CB72: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803CB78: .4byte gUnknown_203B400 - thumb_func_end sub_803CB5C - - thumb_func_start sub_803CB7C -sub_803CB7C: - push {r4,r5,lr} - ldr r4, _0803CBAC - ldr r0, [r4] - adds r5, r0, 0 - adds r5, 0x20 - movs r1, 0xA - ldrsh r0, [r0, r1] - bl sub_808D994 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_80922F4 - ldr r1, [r4] - adds r1, 0x20 - movs r0, 0x3 - bl sub_801602C - ldr r1, [r4] - movs r0, 0xD - str r0, [r1, 0x34] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803CBAC: .4byte gUnknown_203B400 - thumb_func_end sub_803CB7C - - thumb_func_start sub_803CBB0 -sub_803CBB0: - push {lr} - bl sub_8016080 - cmp r0, 0 - beq _0803CBD2 - bl sub_80160D8 - ldr r0, _0803CBD8 - ldr r3, _0803CBDC - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - ldr r0, _0803CBE0 - ldr r1, [r0] - movs r0, 0xE - str r0, [r1, 0x34] -_0803CBD2: - pop {r0} - bx r0 - .align 2, 0 -_0803CBD8: .4byte gUnknown_80F2898 -_0803CBDC: .4byte 0x00000301 -_0803CBE0: .4byte gUnknown_203B400 - thumb_func_end sub_803CBB0 - - thumb_func_start sub_803CBE4 -sub_803CBE4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803CBFA - ldr r0, _0803CC00 - ldr r1, [r0] - movs r0, 0xF - str r0, [r1, 0x34] -_0803CBFA: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0803CC00: .4byte gUnknown_203B400 - thumb_func_end sub_803CBE4 - - thumb_func_start sub_803CC04 -sub_803CC04: - push {lr} - sub sp, 0x14 - ldr r1, _0803CC38 - ldr r0, _0803CC3C - ldr r0, [r0] - ldr r0, [r0, 0x3C] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r1] - ldr r3, [r1, 0x4] - movs r2, 0 - str r2, [sp] - movs r1, 0x3 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r2, [sp, 0xC] - adds r1, 0xFE - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - add sp, 0x14 - pop {r0} - bx r0 - .align 2, 0 -_0803CC38: .4byte gPersonalityQuestionPointerTable -_0803CC3C: .4byte gUnknown_203B400 - thumb_func_end sub_803CC04 - - thumb_func_start PrintPersonalityTypeDescription -PrintPersonalityTypeDescription: - push {r4,lr} - ldr r0, _0803CC70 - ldr r4, _0803CC74 - ldr r1, [r4] - movs r2, 0x8 - ldrsh r1, [r1, r2] - bl sub_808D8BC - ldr r1, _0803CC78 - ldr r0, [r4] - adds r0, 0x40 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r3, _0803CC7C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803CC70: .4byte gUnknown_202DF98 -_0803CC74: .4byte gUnknown_203B400 -_0803CC78: .4byte gPersonalityTypeDescriptionTable -_0803CC7C: .4byte 0x00000101 - thumb_func_end PrintPersonalityTypeDescription - - thumb_func_start sub_803CC80 -sub_803CC80: - push {r4-r7,lr} - sub sp, 0x60 - ldr r0, _0803CD00 - ldr r0, [r0] - movs r1, 0x8 - ldrsh r4, [r0, r1] - mov r0, sp - bl sub_8006518 - add r1, sp, 0x18 - ldr r0, _0803CD04 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - mov r0, sp - movs r1, 0x1 - movs r2, 0 - bl sub_800641C - movs r0, 0x1 - bl sub_8008C54 - movs r0, 0x1 - bl sub_80073B8 - adds r0, r4, 0 - bl GetDialogueSpriteDataPtr - adds r5, r0, 0 - ldr r0, [r5, 0x4] - ldr r6, [r0, 0xC] - movs r4, 0 - movs r7, 0x8 -_0803CCC8: - adds r0, r4, 0 - adds r0, 0xE0 - ldr r1, [r5, 0x4] - adds r1, r7 - lsls r2, r4, 2 - ldr r1, [r1] - adds r1, r2 - bl SetBGPaletteBufferColorArray - adds r4, 0x1 - cmp r4, 0xF - ble _0803CCC8 - movs r0, 0x1 - adds r1, r6, 0 - movs r2, 0xE - bl sub_800836C - adds r0, r5, 0 - bl CloseFile - movs r0, 0x1 - bl sub_80073E0 - add sp, 0x60 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803CD00: .4byte gUnknown_203B400 -_0803CD04: .4byte gUnknown_80F4244 - thumb_func_end sub_803CC80 - - thumb_func_start sub_803CD08 -sub_803CD08: - push {r4-r7,lr} - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - bl sub_803CEAC - ldr r5, _0803CDB0 - ldr r0, [r5] - movs r3, 0 - movs r1, 0 - strh r4, [r0] - str r1, [r0, 0x4C] - adds r1, r0, 0 - adds r1, 0x54 - str r1, [r0, 0x50] - ldr r0, _0803CDB4 - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} - ldm r0!, {r2,r4,r7} - stm r1!, {r2,r4,r7} - ldr r1, [r5] - adds r1, 0x6C - ldr r0, _0803CDB8 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldr r1, [r5] - ldr r2, _0803CDBC - adds r1, 0x84 - adds r0, r2, 0 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldr r0, [r5] - adds r0, 0x9C - ldm r2!, {r1,r4,r6} - stm r0!, {r1,r4,r6} - ldm r2!, {r1,r4,r7} - stm r0!, {r1,r4,r7} - ldr r0, [r5] - ldr r1, [r0, 0x50] - adds r0, 0xB4 - str r0, [r1, 0x14] - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r5] - adds r0, 0xB5 - strb r3, [r0] - ldr r0, [r5] - adds r0, 0xB6 - movs r1, 0x6 - strb r1, [r0] - ldr r0, [r5] - adds r0, 0xB7 - strb r3, [r0] - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x54 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x18 - bl GetValidPartners - adds r1, r0, 0 - ldr r0, [r5] - ldr r3, [r0, 0x4C] - adds r0, r4, 0 - movs r2, 0xA - bl sub_8013818 - bl sub_803CEF0 - bl sub_803CFC0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803CDB0: .4byte gUnknown_203B404 -_0803CDB4: .4byte gUnknown_80F4290 -_0803CDB8: .4byte gUnknown_80F42A8 -_0803CDBC: .4byte gUnknown_80F4278 - thumb_func_end sub_803CD08 - - thumb_func_start sub_803CDC0 -sub_803CDC0: - push {r4,r5,lr} - ldr r4, _0803CDF0 - ldr r1, [r4] - movs r0, 0x30 - ldrsh r5, [r1, r0] - movs r0, 0 - strb r0, [r1, 0x16] - ldr r0, [r4] - adds r0, 0x18 - bl GetKeyPress - cmp r0, 0x1 - bne _0803CDF4 - movs r0, 0 - bl sub_80119D4 - ldr r0, [r4] - movs r2, 0x30 - ldrsh r1, [r0, r2] - lsls r1, 1 - adds r0, 0x2 - adds r0, r1 - ldrh r0, [r0] - b _0803CE2A - .align 2, 0 -_0803CDF0: .4byte gUnknown_203B404 -_0803CDF4: - ldr r0, [r4] - adds r0, 0x18 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - beq _0803CE08 - bl sub_803CEF0 -_0803CE08: - ldr r0, [r4] - movs r1, 0x30 - ldrsh r0, [r0, r1] - cmp r5, r0 - beq _0803CE16 - bl sub_803CFC0 -_0803CE16: - ldr r0, [r4] - ldrb r0, [r0, 0x16] - cmp r0, 0 - bne _0803CE28 - ldr r0, _0803CE24 - b _0803CE2A - .align 2, 0 -_0803CE24: .4byte 0x0000ffff -_0803CE28: - ldr r0, _0803CE30 -_0803CE2A: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0803CE30: .4byte 0x0000fffe - thumb_func_end sub_803CDC0 - - thumb_func_start sub_803CE34 -sub_803CE34: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl GetValidPartners - adds r1, r0, 0 - ldr r5, _0803CE68 - ldr r0, [r5] - strh r1, [r0, 0x3A] - adds r0, 0x18 - bl sub_8013984 - bl sub_803CEF0 - bl sub_803CFC0 - cmp r4, 0 - beq _0803CE62 - ldr r0, [r5] - adds r0, 0x18 - bl AddMenuCursorSprite -_0803CE62: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803CE68: .4byte gUnknown_203B404 - thumb_func_end sub_803CE34 - - thumb_func_start sub_803CE6C -sub_803CE6C: - push {r4,r5,lr} - ldr r4, _0803CEA4 - ldr r1, [r4] - ldr r2, [r1, 0x4C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x54 - ldr r0, _0803CEA8 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x54 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - bl sub_803CECC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803CEA4: .4byte gUnknown_203B404 -_0803CEA8: .4byte gUnknown_80F4278 - thumb_func_end sub_803CE6C - - thumb_func_start sub_803CEAC -sub_803CEAC: - push {r4,lr} - ldr r4, _0803CEC4 - movs r0, 0xB8 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - bl nullsub_135 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803CEC4: .4byte gUnknown_203B404 - thumb_func_end sub_803CEAC - - thumb_func_start nullsub_135 -nullsub_135: - bx lr - thumb_func_end nullsub_135 - - thumb_func_start sub_803CECC -sub_803CECC: - push {r4,lr} - ldr r4, _0803CEEC - ldr r0, [r4] - cmp r0, 0 - beq _0803CEE4 - bl nullsub_135 - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0803CEE4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803CEEC: .4byte gUnknown_203B404 - thumb_func_end sub_803CECC - - thumb_func_start sub_803CEF0 -sub_803CEF0: - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _0803CF60 - ldr r0, [r6] - movs r1, 0x32 - ldrsh r0, [r0, r1] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r6] - ldr r3, [r2, 0x4C] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x62 - movs r4, 0 - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x4C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x64 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r6] - adds r0, 0x54 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r6] - ldr r0, [r0, 0x4C] - bl sub_8008C54 - ldr r0, [r6] - ldr r0, [r0, 0x4C] - bl sub_80073B8 - ldr r2, _0803CF64 - ldr r0, [r6] - ldr r3, [r0, 0x4C] - str r4, [sp] - movs r0, 0xC - movs r1, 0 - bl xxx_call_draw_string - movs r5, 0 - b _0803CF98 - .align 2, 0 -_0803CF60: .4byte gUnknown_203B404 -_0803CF64: .4byte gUnknown_80F42C0 -_0803CF68: - ldr r0, [r6] - adds r0, 0x18 - adds r1, r5, 0 - bl sub_8013800 - adds r4, r0, 0 - ldr r0, [r6] - lsls r1, r5, 1 - adds r0, 0x2 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_808D994 - adds r2, r0, 0 - ldr r0, [r6] - ldr r3, [r0, 0x4C] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - adds r1, r4, 0 - bl xxx_call_draw_string - adds r5, 0x1 -_0803CF98: - ldr r0, [r6] - movs r1, 0x32 - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0803CF68 - ldr r4, _0803CFBC - ldr r0, [r4] - ldr r0, [r0, 0x4C] - bl sub_80073E0 - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x16] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803CFBC: .4byte gUnknown_203B404 - thumb_func_end sub_803CEF0 - - thumb_func_start sub_803CFC0 -sub_803CFC0: - push {r4-r7,lr} - ldr r0, _0803D02C - ldr r0, [r0] - movs r2, 0x30 - ldrsh r1, [r0, r2] - lsls r1, 1 - adds r0, 0x2 - adds r0, r1 - movs r1, 0 - ldrsh r4, [r0, r1] - movs r0, 0x1 - bl sub_8008C54 - movs r0, 0x1 - bl sub_80073B8 - adds r0, r4, 0 - bl GetDialogueSpriteDataPtr - adds r5, r0, 0 - ldr r0, [r5, 0x4] - ldr r6, [r0, 0x4] - movs r4, 0 - movs r7, 0 -_0803CFF0: - adds r0, r4, 0 - adds r0, 0xE0 - ldr r1, [r5, 0x4] - adds r1, r7 - lsls r2, r4, 2 - ldr r1, [r1] - adds r1, r2 - bl SetBGPaletteBufferColorArray - adds r4, 0x1 - cmp r4, 0xF - ble _0803CFF0 - movs r0, 0x1 - adds r1, r6, 0 - movs r2, 0xE - bl sub_800836C - adds r0, r5, 0 - bl CloseFile - movs r0, 0x1 - bl sub_80073E0 - ldr r0, _0803D02C - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x16] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803D02C: .4byte gUnknown_203B404 - thumb_func_end sub_803CFC0 - - .align 2,0 diff --git a/asm/personality_test_2.s b/asm/personality_test_2.s new file mode 100644 index 00000000..8ff0bfc6 --- /dev/null +++ b/asm/personality_test_2.s @@ -0,0 +1,106 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start RedrawPartnerSelectionMenu +RedrawPartnerSelectionMenu: + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _0803CF60 + ldr r0, [r6] + movs r1, 0x32 + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r6] + ldr r3, [r2, 0x4C] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x62 + movs r4, 0 + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x4C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x64 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r6] + adds r0, 0x54 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r6] + ldr r0, [r0, 0x4C] + bl sub_8008C54 + ldr r0, [r6] + ldr r0, [r0, 0x4C] + bl sub_80073B8 + ldr r2, _0803CF64 + ldr r0, [r6] + ldr r3, [r0, 0x4C] + str r4, [sp] + movs r0, 0xC + movs r1, 0 + bl xxx_call_draw_string + movs r5, 0 + b _0803CF98 + .align 2, 0 +_0803CF60: .4byte gUnknown_203B404 +_0803CF64: .4byte gUnknown_80F42C0 +_0803CF68: + ldr r0, [r6] + adds r0, 0x18 + adds r1, r5, 0 + bl sub_8013800 + adds r4, r0, 0 + ldr r0, [r6] + lsls r1, r5, 1 + adds r0, 0x2 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_808D994 + adds r2, r0, 0 + ldr r0, [r6] + ldr r3, [r0, 0x4C] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl xxx_call_draw_string + adds r5, 0x1 +_0803CF98: + ldr r0, [r6] + movs r1, 0x32 + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0803CF68 + ldr r4, _0803CFBC + ldr r0, [r4] + ldr r0, [r0, 0x4C] + bl sub_80073E0 + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x16] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803CFBC: .4byte gUnknown_203B404 + thumb_func_end RedrawPartnerSelectionMenu + + .align 2,0 diff --git a/data/data_80B9BB8.s b/data/data_80B9BB8.s index 79f01f46..8480f921 100644 --- a/data/data_80B9BB8.s +++ b/data/data_80B9BB8.s @@ -4906,12 +4906,12 @@ gUnknown_80E4A28: @ 80E4A28 .byte 0x10, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .global gCreditsTable -gCreditsTable: @ 80E4A40 + .global gCreditsText +gCreditsText: @ 80E4A40 .incbin "baserom.gba", 0xE4A40, 0xEDC - .global gUnknown_80E591C -gUnknown_80E591C: @ 80E591C + .global gCreditsTable +gCreditsTable: @ 80E591C .incbin "baserom.gba", 0xE591C, 0x74 .global gUnknown_80E5990 diff --git a/data/data_80F4278.s b/data/data_80F4278.s index 185bd58d..26a95fea 100644 --- a/data/data_80F4278.s +++ b/data/data_80F4278.s @@ -164,12 +164,16 @@ gUnknown_80F4D44: @ 80F4D44 gUnknown_80F4D64: @ 80F4D64 @ replacing .incbin "baserom.gba", 0x000f4d64, 0x28 .byte 0x02, 0x06, 0x04, 0x00, 0x02, 0x00, 0x04, 0x06, 0x04, 0x00, 0x06, 0x02, 0x04, 0x02, 0x06, 0x00, 0x06, 0x02, 0x00, 0x04, 0x06, 0x04, 0x02, 0x00, 0x00, 0x04, 0x02, 0x06, 0x00, 0x06, 0x02, 0x04 - .byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 + .string "pksdir0\0" + .align 2,0 .global gUnknown_80F4D8C gUnknown_80F4D8C: @ 80F4D8C @ replacing .incbin "baserom.gba", 0x000f4d8c, 0x14 - .byte 0x6d, 0x61, 0x70, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 + .string "mapparam\0" + .align 2,0 + .string "pksdir0\0" + .align 2,0 .global gUnknown_80F4DA0 gUnknown_80F4DA0: @ 80F4DA0 @@ -1656,35 +1660,52 @@ gUnknown_80F6778: @ 80F6778 .global gUnknown_80F6788 gUnknown_80F6788: @ 80F6788 - .incbin "baserom.gba", 0xF6788, 0xC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 .global gUnknown_80F6794 gUnknown_80F6794: @ 80F6794 - .incbin "baserom.gba", 0xF6794, 0x14 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x01, 0x00 + .byte 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x04, 0x00 + .byte 0x00, 0x00, 0x08, 0x00 .global gUnknown_80F67A8 gUnknown_80F67A8: @ 80F67A8 - .incbin "baserom.gba", 0xF67A8, 0xC + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 .global gUnknown_80F67B4 gUnknown_80F67B4: @ 80F67B4 - .incbin "baserom.gba", 0xF67B4, 0x10 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 .global gUnknown_80F67C4 gUnknown_80F67C4: @ 80F67C4 - .incbin "baserom.gba", 0xF67C4, 0x10 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x10, 0x00 + .byte 0x00, 0x00, 0x20, 0x00 + .byte 0x00, 0x00, 0x40, 0x00 .global gUnknown_80F67D4 gUnknown_80F67D4: @ 80F67D4 - .incbin "baserom.gba", 0xF67D4, 0x8 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x80, 0x00 .global gUnknown_80F67DC gUnknown_80F67DC: @ 80F67DC - .incbin "baserom.gba", 0xF67DC, 0x8 + .byte 0xD8, 0x00, 0xD9, 0x00 + .byte 0xD9, 0x00, 0x73, 0x01 .global gUnknown_80F67E4 gUnknown_80F67E4: @ 80F67E4 - .incbin "baserom.gba", 0xF67E4, 0x8 + .byte 0xDA, 0x00, 0xDB, 0x00 + .byte 0xDB, 0x00, 0x74, 0x01 .global gUnknown_80F67EC gUnknown_80F67EC: @ 80F67EC diff --git a/data/personality_test.s b/data/personality_test.s index 0f9a1283..58701e56 100644 --- a/data/personality_test.s +++ b/data/personality_test.s @@ -16,6 +16,8 @@ .string "Ignore it and play.\0" .string "At the last second.\0" .string "Study hard.\0" + .global HardyQuest1 + HardyQuest1: .byte 0xe4, 0x00, 0x0f, 0x08 .byte 0x84, 0x00, 0x0f, 0x08 .byte 0x54, 0x00, 0x0f, 0x08 @@ -36,6 +38,8 @@ .align 2,0 .string "Yes.\0" .align 2,0 + .global HardyQuest2 + HardyQuest2: .byte 0x68, 0x01, 0x0f, 0x08 .byte 0x34, 0x01, 0x0f, 0x08 .byte 0x14, 0x01, 0x0f, 0x08 @@ -52,6 +56,8 @@ .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff .string "No.\0" + .global HardyQuest3 + HardyQuest3: .byte 0xd8, 0x01, 0x0f, 0x08 .byte 0xb0, 0x01, 0x0f, 0x08 .byte 0x90, 0x01, 0x0f, 0x08 @@ -76,6 +82,8 @@ .align 2,0 .string "Full.\0" .align 2,0 + .global HardyQuest4 + HardyQuest4: .byte 0x80, 0x02, 0x0f, 0x08 .byte 0x38, 0x02, 0x0f, 0x08 .byte 0x08, 0x02, 0x0f, 0x08 @@ -96,6 +104,8 @@ .align 2,0 .string "Big box.\0" .align 2,0 + .global DocileQuest1 + DocileQuest1: .byte 0x24, 0x03, 0x0f, 0x08 .byte 0xe8, 0x02, 0x0f, 0x08 .byte 0xc8, 0x02, 0x0f, 0x08 @@ -116,6 +126,8 @@ .align 2,0 .string "Open a window right away.\0" .align 2,0 + .global DocileQuest2 + DocileQuest2: .byte 0xd8, 0x03, 0x0f, 0x08 .byte 0x84, 0x03, 0x0f, 0x08 .byte 0x64, 0x03, 0x0f, 0x08 @@ -141,6 +153,8 @@ .align 2,0 .string "Say thank you regularly.\0" .align 2,0 + .global DocileQuest3 + DocileQuest3: .byte 0xbc, 0x04, 0x0f, 0x08 .byte 0x40, 0x04, 0x0f, 0x08 .byte 0x10, 0x04, 0x0f, 0x08 @@ -167,6 +181,8 @@ .align 2,0 .string "Turn it in to the police!\0" .align 2,0 + .global DocileQuest4 + DocileQuest4: .byte 0xac, 0x05, 0x0f, 0x08 .byte 0x40, 0x05, 0x0f, 0x08 .byte 0x10, 0x05, 0x0f, 0x08 @@ -182,6 +198,8 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global BraveQuest1 + BraveQuest1: .byte 0x1c, 0x06, 0x0f, 0x08 .byte 0xf8, 0x05, 0x0f, 0x08 .byte 0xd8, 0x05, 0x0f, 0x08 @@ -210,6 +228,8 @@ .align 2,0 .string "Fight.\0" .align 2,0 + .global BraveQuest2A + BraveQuest2A: .byte 0x50, 0x07, 0x0f, 0x08 .byte 0x08, 0x07, 0x0f, 0x08 .byte 0xd8, 0x06, 0x0f, 0x08 @@ -229,6 +249,8 @@ .align 2,0 .string "Rule with the aliens.\0" .align 2,0 + .global BraveQuest2B + BraveQuest2B: .byte 0xe4, 0x07, 0x0f, 0x08 .byte 0xa0, 0x07, 0x0f, 0x08 .byte 0x80, 0x07, 0x0f, 0x08 @@ -251,6 +273,8 @@ .align 2,0 .string "Yank open the door.\0" .align 2,0 + .global BraveQuest3 + BraveQuest3: .byte 0x28, 0x09, 0x0f, 0x08 .byte 0xdc, 0x08, 0x0f, 0x08 .byte 0xbc, 0x08, 0x0f, 0x08 @@ -276,6 +300,8 @@ .byte 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x66, 0x65, 0x61, 0x72, 0x2e, 0x00, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x00 .byte 0x48, 0x65, 0x6c, 0x70, 0x7e, 0x32, 0x63, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x69, 0x66, 0x20, 0x73, 0x63, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x00, 0x48, 0x65, 0x6c, 0x70, 0x20, 0x77, 0x69, 0x74 .byte 0x68, 0x6f, 0x75, 0x74, 0x20, 0x68, 0x65, 0x73, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x00, 0x00, 0x00, 0x00 + .global BraveQuest4 + BraveQuest4: .byte 0x38, 0x0a, 0x0f, 0x08 .byte 0xa4, 0x09, 0x0f, 0x08 .byte 0x64, 0x09, 0x0f, 0x08 @@ -293,6 +319,8 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global JollyQuest1 + JollyQuest1: .byte 0xc8, 0x0a, 0x0f, 0x08 .byte 0xa4, 0x0a, 0x0f, 0x08 .byte 0x84, 0x0a, 0x0f, 0x08, 0x41, 0x72, 0x65, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x20, 0x63, 0x68, 0x65, 0x65, 0x72, 0x66 @@ -306,6 +334,8 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global JollyQuest2 + JollyQuest2: .byte 0x2c, 0x0b, 0x0f, 0x08 .byte 0x08, 0x0b, 0x0f, 0x08 .byte 0xe8, 0x0a, 0x0f, 0x08 @@ -327,6 +357,8 @@ .byte 0xff, 0xff, 0xff, 0xff .byte 0x41, 0x6e, 0x79, 0x77, 0x68, 0x65, 0x72, 0x65 .byte 0x2e, 0x00, 0x00, 0x00, 0x53, 0x70, 0x61, 0x73, 0x2e, 0x00, 0x00, 0x00, 0x54, 0x68, 0x65, 0x20, 0x62, 0x65, 0x61, 0x63, 0x68, 0x21, 0x00, 0x00 + .global JollyQuest3 + JollyQuest3: .byte 0xdc, 0x0b, 0x0f, 0x08 .byte 0x90, 0x0b, 0x0f, 0x08 .byte 0x60, 0x0b, 0x0f, 0x08 @@ -348,6 +380,8 @@ .byte 0x6f, 0x74, 0x74, 0x61, 0x20, 0x67, 0x6f, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6d, 0x2e, 0x2e, 0x2e, 0x20, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x61, 0x79, 0x20 .byte 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x3f, 0x00, 0x48, 0x61, 0x68, 0x61, 0x21, 0x20, 0x59, 0x65, 0x73, 0x2e, 0x20, 0x56, 0x65, 0x72, 0x79, 0x20, 0x66, 0x75, 0x6e, 0x6e .byte 0x79, 0x21, 0x00, 0x00 + .global JollyQuest4 + JollyQuest4: .byte 0xc8, 0x0c, 0x0f, 0x08 .byte 0x44, 0x0c, 0x0f, 0x08 .byte 0x14, 0x0c, 0x0f, 0x08 @@ -369,6 +403,8 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global ImpishQuest1 + ImpishQuest1: .byte 0xa0, 0x0d, 0x0f, 0x08 .byte 0x7c, 0x0d, 0x0f, 0x08 .byte 0x5c, 0x0d, 0x0f, 0x08 @@ -383,6 +419,8 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global ImpishQuest2 + ImpishQuest2: .byte 0x08, 0x0e, 0x0f, 0x08 .byte 0xe4, 0x0d, 0x0f, 0x08 .byte 0xc4, 0x0d, 0x0f, 0x08 @@ -397,9 +435,13 @@ .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + + .global ImpishQuest3 + ImpishQuest3: .byte 0x60, 0x0e, 0x0f, 0x08 .byte 0x3c, 0x0e, 0x0f, 0x08 .byte 0x1c, 0x0e, 0x0f, 0x08 + .byte 0x41, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x79, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x73, 0x20, 0x74, 0x68 .byte 0x61, 0x74, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x0a .byte 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00, 0x00 @@ -407,6 +449,7 @@ .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x24, 0x0f, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x0f, 0x0f, 0x08 @@ -415,19 +458,25 @@ .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .byte 0x48, 0x65, 0x63, 0x6b, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f .byte 0x6d, 0x20, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x43, 0x61, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79, 0x20, 0x66, 0x72 .byte 0x6f, 0x6d, 0x20, 0x61, 0x66, 0x61, 0x72, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x46, 0x61, 0x63, 0x65, 0x20, 0x75, 0x70, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x79 .byte 0x2e, 0x00, 0x00, 0x00 + + .global ImpishQuest4 + ImpishQuest4: .byte 0x48, 0x0f, 0x0f, 0x08 .byte 0xc4, 0x0e, 0x0f, 0x08 .byte 0x94, 0x0e, 0x0f, 0x08 + .byte 0x59, 0x6f, 0x75, 0x72, 0x20, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x73, 0x20, 0x62 .byte 0x65, 0x69, 0x6e, 0x67, 0x20, 0x62, 0x75, 0x6c, 0x6c, 0x69, 0x65, 0x64, 0x21, 0x0a, 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xd4, 0x0f, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x58, 0x02, 0x0f, 0x08 @@ -438,108 +487,205 @@ .byte 0xff, 0xff, 0xff, 0xff .byte 0x53, 0x70, 0x61, 0x72, 0x65, 0x20, 0x6d, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x4c, 0x6f, 0x76, 0x65 .byte 0x20, 0x74, 0x68, 0x65, 0x6d, 0x21, 0x00, 0x00 + + .global NaiveQuest1 + NaiveQuest1: .byte 0xec, 0x0f, 0x0f, 0x08 .byte 0xa8, 0x0f, 0x0f, 0x08 .byte 0x78, 0x0f, 0x0f, 0x08 + .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20 .byte 0x67, 0x72, 0x6f, 0x61, 0x6e, 0x2d, 0x69, 0x6e, 0x64, 0x75, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x70, 0x75, 0x6e, 0x73, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global NaiveQuest2Points + NaiveQuest2Points: .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global NaiveQuest2Answers + NaiveQuest2Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x54, 0x10, 0x0f, 0x08 - .byte 0x30, 0x10, 0x0f, 0x08 - .byte 0x10, 0x10, 0x0f, 0x08, 0x44, 0x6f, 0x20, 0x79 - .byte 0x6f, 0x75, 0x20, 0x74, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x61, 0x75, 0x67, 0x68, 0x20, 0x61, 0x20, 0x6c, 0x6f, 0x74, 0x3f, 0x00 + .global NaiveQuest2 + NaiveQuest2: + .4byte NaiveQuest2Question + .4byte NaiveQuest2Answers + .4byte NaiveQuest2Points + + .global NaiveQuest2Question + NaiveQuest2Question: + .string "Do you tend to laugh a lot?\0" + .align 2,0 + + .global NaiveQuest3Points + NaiveQuest3Points: .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global NaiveQuest3Answers + NaiveQuest3Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xb4, 0x10, 0x0f, 0x08 - .byte 0x90, 0x10, 0x0f, 0x08 - .byte 0x70, 0x10, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x6f - .byte 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x69, 0x73, 0x68, 0x3f, 0x00, 0x00 + .global NaiveQuest3 + NaiveQuest3: + .4byte NaiveQuest3Question + .4byte NaiveQuest3Answers + .4byte NaiveQuest3Points + + .global NaiveQuest3Question + NaiveQuest3Question: + .string "Do others often call you childish?\0" + .align 2,0 + + .global NaiveQuest4Points + NaiveQuest4Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global NaiveQuest4Answers + NaiveQuest4Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x1c, 0x11, 0x0f, 0x08 - .byte 0xf8, 0x10, 0x0f, 0x08 - .byte 0xd8, 0x10, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6d, 0x61, 0x67, 0x69, 0x6e, 0x65, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x67 - .byte 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x0a - .byte 0x61, 0x6d, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x3f, 0x00, 0x00, 0x00 + .global NaiveQuest4 + NaiveQuest4: + .4byte NaiveQuest4Question + .4byte NaiveQuest4Answers + .4byte NaiveQuest4Points + + .global NaiveQuest4Question + NaiveQuest4Question: + .string "Do you like to imagine things for your\n" + .string "amusement?\0" + .align 2,0 + + .global TimidQuest1Points + TimidQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xd8, 0x11, 0x0f, 0x08 + + .global TimidQuest1Answers + TimidQuest1Answers: + .4byte TimidQuest1_Scream .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xb8, 0x11, 0x0f, 0x08 + .4byte TimidQuest1_Close .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xa0, 0x11, 0x0f, 0x08 + .4byte TimidQuest1_Shake .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x53, 0x68, 0x61, 0x6b, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x69, 0x74, 0x2e, 0x00, 0x00, 0x00, 0x00 - .byte 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x69, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x2e, 0x00, 0x00, 0x00 - .byte 0x53, 0x63, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x00 - .byte 0xf4, 0x11, 0x0f, 0x08 - .byte 0x80, 0x11, 0x0f, 0x08 - .byte 0x50, 0x11, 0x0f, 0x08 - .byte 0x41, 0x20, 0x68, 0x75 - .byte 0x6d, 0x61, 0x6e, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x74, 0x6f, 0x69, 0x6c, 0x65, 0x74 - .byte 0x21, 0x0a - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x77, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global TimidQuest1_Shake + TimidQuest1_Shake: + .string "Shake hands with it.\0" + .align 2,0 + + .global TimidQuest1_Close + TimidQuest1_Close: + .string "Close the lid without a word.\0" + .align 2,0 + + .global TimidQuest1_Scream + TimidQuest1_Scream: + .string "Scream and run.\0" + .align 2,0 + + .global TimidQuest1 + TimidQuest1: + .4byte TimidQuest1Question + .4byte TimidQuest1Answers + .4byte TimidQuest1Points + + .global TimidQuest1Question + TimidQuest1Question: + .string "A human hand extends out of a toilet!\n" + .string "What would you do?\0" + .align 2,0 + + .global TimidQuest2Points + TimidQuest2Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0xf0, 0x12, 0x0f, 0x08 + + .global TimidQuest2Answers + TimidQuest2Answers: + .4byte TimidQuest2_Thumb .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xe0, 0x12, 0x0f, 0x08 + .4byte TimidQuest2_Index .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xd0, 0x12, 0x0f, 0x08 + .4byte TimidQuest2_Middle .byte 0x02, 0x00, 0x00, 0x00 - .byte 0xc0, 0x12, 0x0f, 0x08 + .4byte TimidQuest2_Ring .byte 0x03, 0x00, 0x00, 0x00 - .byte 0xb0, 0x12, 0x0f, 0x08 + .4byte TimidQuest2_Little .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x4c, 0x69, 0x74, 0x74, 0x6c, 0x65, 0x20, 0x66 - .byte 0x69, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x00, 0x00, 0x52, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x20, 0x66 - .byte 0x69, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x00, 0x00, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x20, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x2e, 0x00, 0x00, 0x00, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x2e, 0x00, 0x00 - .byte 0x04, 0x13, 0x0f, 0x08 - .byte 0x80, 0x12, 0x0f, 0x08 - .byte 0x30, 0x12, 0x0f, 0x08 - .byte 0x47, 0x72, 0x61, 0x62, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x20, 0x79, 0x6f - .byte 0x75, 0x72, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x0a - .byte 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x6e - .byte 0x64, 0x2e, 0x23, 0x57, 0x0a - .byte 0x57, 0x68, 0x69, 0x63, 0x68, 0x20, 0x64, 0x69, 0x67, 0x69, 0x74, 0x20, 0x64, 0x69, 0x64, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x67, 0x72, 0x61, 0x62, 0x3f, 0x00, 0x00 + .global TimidQuest2_Little + TimidQuest2_Little: + .string "Little finger.\0" + .align 2,0 + + .global TimidQuest2_Ring + TimidQuest2_Ring: + .string "Ring finger.\0" + .align 2,0 + + .global TimidQuest2_Middle + TimidQuest2_Middle: + .string "Middle finger.\0" + .align 2,0 + + .global TimidQuest2_Index + TimidQuest2_Index: + .string "Index finger.\0" + .align 2,0 + + .global TimidQuest2_Thumb + TimidQuest2_Thumb: + .string "Thumb.\0" + .align 2,0 + + .global TimidQuest2 + TimidQuest2: + .4byte TimidQuest2Question + .4byte TimidQuest2Answers + .4byte TimidQuest2Points + + .global TimidQuest2Question + TimidQuest2Question: + .string "Grab any digit on your left hand with your\n" + .string "right hand.#W\n" + .string "Which digit did you grab?\0" + .align 2,0 + + .global TimidQuest3Points + TimidQuest3Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + + .global TimidQuest3Answers + TimidQuest3Answers: .byte 0xbc, 0x13, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xb4, 0x13, 0x0f, 0x08 @@ -548,385 +694,737 @@ .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x00, 0x00, 0x00, 0x43, 0x72, 0x79, 0x2e - .byte 0x00, 0x00, 0x00, 0x00, 0x4b, 0x69, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x6f, 0x72, 0x2e, 0x00, 0x00 - .byte 0xd8, 0x13, 0x0f, 0x08 - .byte 0x88, 0x13, 0x0f, 0x08 - .byte 0x58, 0x13, 0x0f, 0x08 + + .string "Clean it.\0" + .align 2,0 + + .string "Cry.\0" + .align 2,0 + + .string "Kick the door.\0" + .align 2,0 + + .global TimidQuest3 + TimidQuest3: + .4byte TimidQuest3Question + .4byte TimidQuest3Answers + .4byte TimidQuest3Points + + .global TimidQuest3Question + TimidQuest3Question: .byte 0x59, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x75, 0x64, 0x64, 0x65, 0x6e, 0x6c, 0x79, 0x20, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x20, 0x61 .byte 0x0a .byte 0x70, 0x69, 0x74, 0x63, 0x68, 0x2d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x20, 0x72, 0x6f, 0x6f, 0x6d, 0x21, 0x23, 0x57, 0x0a .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75 .byte 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global TimidQuest4Points + TimidQuest4Points: .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x98, 0x14, 0x0f, 0x08 + + .global TimidQuest4Answers + TimidQuest4Answers: + .4byte TimidQuest4_NoProb .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x88, 0x14, 0x0f, 0x08 + .4byte TimidQuest4_Scared .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x70, 0x14, 0x0f, 0x08 + .4byte TimidQuest4_Someone .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x57, 0x69, 0x74, 0x68, 0x20, 0x73, 0x6f, 0x6d - .byte 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x49, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x55, 0x68, 0x2e, 0x2e, 0x2e, 0x20, 0x4e, 0x2d, 0x6e, 0x6f, 0x2e, 0x2e, 0x2e, 0x00, 0x00, 0x00 - .byte 0x4e, 0x6f, 0x20, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x21, 0x00 - .byte 0xb0, 0x14, 0x0f, 0x08 - .byte 0x50, 0x14, 0x0f, 0x08 - .byte 0x20, 0x14, 0x0f, 0x08 - .byte 0x43, 0x61, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20 - .byte 0x67, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x20, 0x61, 0x20, 0x68, 0x61, 0x75, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global TimidQuest4_Someone + TimidQuest4_Someone: + .string "With someone I like.\0" + .align 2,0 + + .global TimidQuest4_Scared + TimidQuest4_Scared: + .string "Uh... N-no...\0" + .align 2,0 + + .global TimidQuest4_NoProb + TimidQuest4_NoProb: + .string "No problem!\0" + .align 2,0 + + .global TimidQuest4 + TimidQuest4: + .4byte TimidQuest4Question + .4byte TimidQuest4Answers + .4byte TimidQuest4Points + + .global TimidQuest4Question + TimidQuest4Question: + .string "Can you go into a haunted house?\0" + .align 2,0 + + .global HastyQuest1Points + HastyQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x4c, 0x15, 0x0f, 0x08 + + .global HastyQuest1Answers + HastyQuest1Answers: + .4byte HastyQuest1_Now .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x3c, 0x15, 0x0f, 0x08 + .4byte HastyQuest1_Later .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x24, 0x15, 0x0f, 0x08 + .4byte HastyQuest1_Someone .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x47, 0x65, 0x74, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20 - .byte 0x69, 0x74, 0x2e, 0x00, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x2e, 0x00, 0x00, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x6e, 0x6f, 0x77, 0x2e - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x68, 0x15, 0x0f, 0x08 - .byte 0x04, 0x15, 0x0f, 0x08 - .byte 0xd4, 0x14, 0x0f, 0x08 - .byte 0x59, 0x6f, 0x75, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x20, 0x61, 0x20, 0x67, 0x69 - .byte 0x66, 0x74, 0x21, 0x23, 0x57, 0x0a - .byte 0x42, 0x75, 0x74, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x6e, 0x7e, 0x32, 0x37, 0x74, 0x20, 0x6b, 0x6e, 0x6f, 0x77, 0x20, 0x77, 0x68, 0x61, 0x74, 0x7e - .byte 0x32, 0x37, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x69, 0x74, 0x2e, 0x23, 0x57, 0x0a, 0x59, 0x6f, 0x75, 0x7e, 0x32, 0x37, 0x72, 0x65, 0x20, 0x63, 0x75, 0x72, 0x69, 0x6f, 0x75, 0x73, 0x7e, 0x32, 0x63 - .byte 0x20, 0x73, 0x6f, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00 + .global HastyQuest1_Someone + HastyQuest1_Someone: + .string "Get someone to open it.\0" + .align 2,0 + + .global HastyQuest1_Later + HastyQuest1_Later: + .string "Open it later.\0" + .align 2,0 + + .global HastyQuest1_Now + HastyQuest1_Now: + .string "Open it now.\0" + .align 2,0 + + .global HastyQuest1 + HastyQuest1: + .4byte HastyQuest1Question + .4byte HastyQuest1Answers + .4byte HastyQuest1Points + + .global HastyQuest1Question + HastyQuest1Question: + .string "You receive a gift!#W\n" + .string "But you don~27t know what~27s in it.#W\n" + .string "You~27re curious~2c so what do you do?\0" + .align 2,0 + + .global HastyQuest2Points + HastyQuest2Points: .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x38, 0x16, 0x0f, 0x08 + + .global HastyQuest2Answers + HastyQuest2Answers: + .4byte HastyQuest2_Spend .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x2c, 0x16, 0x0f, 0x08 + .4byte HastyQuest2_Save .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x1c, 0x16, 0x0f, 0x08 + .4byte HastyQuest2_Give .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x47, 0x69, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x61, 0x77, 0x61, 0x79, 0x2e, 0x00, 0x00, 0x00 - .byte 0x53, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x2e, 0x00, 0x00, 0x00, 0x00 - .byte 0x53, 0x70, 0x65, 0x6e, 0x64, 0x20, 0x69, 0x74, 0x20, 0x6e, 0x6f, 0x77, 0x2e, 0x00, 0x00, 0x00 - .byte 0x54, 0x16, 0x0f, 0x08 - .byte 0xfc, 0x15, 0x0f, 0x08 - .byte 0xcc, 0x15, 0x0f, 0x08 - .byte 0x59, 0x6f, 0x75, 0x20 - .byte 0x77, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x6c, 0x6f, 0x74, 0x74, 0x65, 0x72, 0x79, 0x21, 0x23, 0x57, 0x0a - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x20 - .byte 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x3f, 0x00 + .global HastyQuest2_Give + HastyQuest2_Give: + .string "Give it away.\0" + .align 2,0 + + .global HastyQuest2_Save + HastyQuest2_Save: + .string "Save it.\0" + .align 2,0 + + .global HastyQuest2_Spend + HastyQuest2_Spend: + .string "Spend it now.\0" + .align 2,0 + + .global HastyQuest2 + HastyQuest2: + .4byte HastyQuest2Question + .4byte HastyQuest2Answers + .4byte HastyQuest2Points + + .global HastyQuest2Question + HastyQuest2Question: + .string "You win a lottery!#W\n" + .string "What do you do with the money?\0" + .align 2,0 + + .global HastyQuest3Points + HastyQuest3Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x17, 0x0f, 0x08 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xf4, 0x16, 0x0f, 0x08 - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xd8, 0x16, 0x0f, 0x08 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff - .byte 0x49, 0x74, 0x7e, 0x32, 0x37, 0x73, 0x20, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x2e, 0x2e, 0x00, 0x4e, 0x6f, 0x2e, 0x2e - .byte 0x2e, 0x20, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x62, 0x65, 0x20, 0x61, 0x20, 0x74, 0x72, 0x61, 0x70, 0x2e, 0x2e, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x69, 0x74, 0x20 - .byte 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x61, 0x77, 0x61, 0x79, 0x21, 0x00 - .byte 0x30, 0x17, 0x0f, 0x08 - .byte 0xb8, 0x16, 0x0f, 0x08 - .byte 0x88, 0x16, 0x0f, 0x08 - .byte 0x59, 0x6f, 0x75, 0x20, 0x63, 0x6f, 0x6d, 0x65 - .byte 0x20, 0x61, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x20, 0x61, 0x20, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x20, 0x63, 0x68, 0x65, 0x73, 0x74, 0x21, 0x0a - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64 - .byte 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00 + .global HastyQuest3Answers + HastyQuest3Answers: + .4byte HastyQuest3_Open + .byte 0x00, 0x00, 0x00, 0x00 + .4byte HastyQuest3_Trap + .byte 0x01, 0x00, 0x00, 0x00 + .4byte HastyQuest3_Empty + .byte 0x02, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0xff, 0xff, 0xff, 0xff + + .global HastyQuest3_Empty + HastyQuest3_Empty: + .string "It~27s going to be empty...\0" + .align 2,0 + + .global HastyQuest3_Trap + HastyQuest3_Trap: + .string "No... Could be a trap...\0" + .align 2,0 + + .global HastyQuest3_Open + HastyQuest3_Open: + .string "Open it right away!\0" + .align 2,0 + + .global HastyQuest3 + HastyQuest3: + .4byte HastyQuest3Question + .4byte HastyQuest3Answers + .4byte HastyQuest3Points + + .global HastyQuest3Question + HastyQuest3Question: + .string "You come across a treasure chest!\n" + .string "What do you do?\0" + .align 2,0 + + .global HastyQuest4Points + HastyQuest4Points: .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xd8, 0x17, 0x0f, 0x08 + + .global HastyQuest4Answers + HastyQuest4Answers: + .4byte HastyQuest4_Irritate .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xc8, 0x17, 0x0f, 0x08 + .4byte HastyQuest4_Wait .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xb4, 0x17, 0x0f, 0x08 + .4byte HastyQuest4_Bail .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xff, 0xff, 0xff, 0xff, 0x47, 0x65, 0x74, 0x20 - .byte 0x61, 0x6e, 0x67, 0x72, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x62, 0x61, 0x69, 0x6c, 0x2e, 0x00, 0x57, 0x61, 0x69, 0x74, 0x20, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x2e, 0x00 - .byte 0x42, 0x65, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x69, 0x72, 0x72, 0x69, 0x74, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x00, 0x00, 0x00 - .byte 0xf8, 0x17, 0x0f, 0x08 - .byte 0x94, 0x17, 0x0f, 0x08 - .byte 0x64, 0x17, 0x0f, 0x08 - .byte 0x59, 0x6f, 0x75, 0x72, 0x20, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x20, 0x75, 0x70, 0x20, 0x66, 0x6f, 0x72 - .byte 0x20, 0x61, 0x20, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x0a - .byte 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x65, 0x64, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x2e - .byte 0x0a - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00, 0x00 + .byte 0xff, 0xff, 0xff, 0xff + .global HastyQuest4_Bail + HastyQuest4_Bail: + .string "Get angry and bail.\0" + .align 2,0 + + .global HastyQuest4_Wait + HastyQuest4_Wait: + .string "Wait patiently.\0" + .align 2,0 + + .global HastyQuest4_Irritate + HastyQuest4_Irritate: + .string "Become irritated.\0" + .align 2,0 + + .global HastyQuest4 + HastyQuest4: + .4byte HastyQuest4Question + .4byte HastyQuest4Answers + .4byte HastyQuest4Points + + .global HastyQuest4Question + HastyQuest4Question: + .string "Your friend fails to show up for a meeting\n" + .string "at the promised time.\n" + .string "What do you do?\0" + .align 2,0 + + .global SassyQuest1Points + SassyQuest1Points: .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xbc, 0x18, 0x0f, 0x08 + + .global SassyQuest1Answers + SassyQuest1Answers: + .4byte SassyQuest1_Calmly .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xa8, 0x18, 0x0f, 0x08 + .4byte SassyQuest1_Nervous .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x9c, 0x18, 0x0f, 0x08 + .4byte SassyQuest1_Whatever .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x57, 0x48, 0x41, 0x54, 0x45, 0x56, 0x45, 0x52, 0x21, 0x21, 0x00, 0x00, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x20, 0x6e, 0x65, 0x72, 0x76, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x2e - .byte 0x00, 0x00, 0x00, 0x00, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x20, 0x63, 0x61, 0x6c, 0x6d, 0x6c, 0x79, 0x2e, 0x00, 0x00, 0x00 - .byte 0xd8, 0x18, 0x0f, 0x08 - .byte 0x7c, 0x18, 0x0f, 0x08 - .byte 0x4c, 0x18, 0x0f, 0x08 - .byte 0x59, 0x6f, 0x75, 0x72, 0x20, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x7e, 0x32, 0x37, 0x73, 0x20, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x66, 0x72 - .byte 0x6f, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x79, 0x6f, 0x75, 0x2e, 0x0a - .byte 0x48, 0x6f, 0x77, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x20, 0x74, 0x6f, 0x20 - .byte 0x68, 0x69, 0x6d, 0x20, 0x6f, 0x72, 0x20, 0x68, 0x65, 0x72, 0x3f, 0x00 + .global SassyQuest1_Whatever + SassyQuest1_Whatever: + .string "WHATEVER!!\0" + .align 2,0 + + .global SassyQuest1_Nervous + SassyQuest1_Nervous: + .string "Speak nervously.\0" + .align 2,0 + + .global SassyQuest1_Calmly + SassyQuest1_Calmly: + .string "Speak calmly.\0" + .align 2,0 + + .global SassyQuest1 + SassyQuest1: + .4byte SassyQuest1Question + .4byte SassyQuest1Answers + .4byte SassyQuest1Points + + .global SassyQuest1Question + SassyQuest1Question: + .string "Your country~27s leader is in front of you.\n" + .string "How do you speak to him or her?\0" + .align 2,0 + + .global SassyQuest2Points + SassyQuest2Points: .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global SassyQuest2Answers + SassyQuest2Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x68, 0x19, 0x0f, 0x08 - .byte 0x44, 0x19, 0x0f, 0x08 - .byte 0x24, 0x19, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x73, 0x20, 0x74, 0x65, 0x6c, 0x6c, 0x20, 0x79 - .byte 0x6f, 0x75, 0x20, 0x74, 0x6f, 0x20, 0x77, 0x61, 0x74, 0x63, 0x68, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x61, 0x79, 0x3f, 0x00, 0x00, 0x00 + .global SassyQuest2 + SassyQuest2: + .4byte SassyQuest2Question + .4byte SassyQuest2Answers + .4byte SassyQuest2Points + + .global SassyQuest2Question + SassyQuest2Question: + .string "Do others tell you to watch what you say?\0" + .align 2,0 + + .global SassyQuest3Points + SassyQuest3Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global SassyQuest3Answers + SassyQuest3Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xd8, 0x19, 0x0f, 0x08 - .byte 0xb4, 0x19, 0x0f, 0x08 - .byte 0x94, 0x19, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6f, 0x6f, 0x6c, 0x3f, 0x0a - .byte 0x42, 0x65, 0x20, 0x68, 0x6f - .byte 0x6e, 0x65, 0x73, 0x74, 0x2e, 0x00, 0x00, 0x00 + .global SassyQuest3 + SassyQuest3: + .4byte SassyQuest3Question + .4byte SassyQuest3Answers + .4byte SassyQuest3Points + + .global SassyQuest3Question + SassyQuest3Question: + .string "Do you think you are cool?\n" + .string "Be honest.\0" + .align 2,0 + + .global SassyQuest4Points + SassyQuest4Points: .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + + .global SassyQuest4Answers + SassyQuest4Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x44, 0x1a, 0x0f, 0x08 - .byte 0x20, 0x1a, 0x0f, 0x08 - .byte 0x00, 0x1a, 0x0f, 0x08 - .byte 0x43, 0x61, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x72, 0x65, 0x6c, 0x79, 0x20, 0x74, 0x68 - .byte 0x61, 0x6e, 0x6b, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x0a - .byte 0x66, 0x65, 0x65, 0x6c, 0x20, 0x67, 0x72, 0x61, 0x74, 0x65, 0x66 - .byte 0x75, 0x6c, 0x3f, 0x00 + .global SassyQuest4 + SassyQuest4: + .4byte SassyQuest4Question + .4byte SassyQuest4Answers + .4byte SassyQuest4Points + + .global SassyQuest4Question + SassyQuest4Question: + .string "Can you sincerely thank someone when you\n" + .string "feel grateful?\0" + .align 2,0 + + .global CalmQuest1Points + CalmQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global CalmQuest1Answers + CalmQuest1Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xc0, 0x1a, 0x0f, 0x08 - .byte 0x9c, 0x1a, 0x0f, 0x08 - .byte 0x7c, 0x1a, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6f, 0x63, 0x63, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x63, 0x6f, 0x6e, 0x73 - .byte 0x69, 0x64, 0x65, 0x72, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x6c, 0x66, 0x0a - .byte 0x64, 0x75, 0x6c, 0x6c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x79, 0x20, 0x63, 0x61 - .byte 0x75, 0x74, 0x69, 0x6f, 0x75, 0x73, 0x3f, 0x00 + .global CalmQuest1 + CalmQuest1: + .4byte CalmQuest1Question + .4byte CalmQuest1Answers + .4byte CalmQuest1Points + + .global CalmQuest1Question + CalmQuest1Question: + .string "Do you occasionally consider yourself\n" + .string "dull and overly cautious?\0" + .align 2,0 + + .global CalmQuest2Points + CalmQuest2Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global CalmQuest2Answers + CalmQuest2Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x44, 0x1b, 0x0f, 0x08 - .byte 0x20, 0x1b, 0x0f, 0x08 - .byte 0x00, 0x1b, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x20, 0x6f, 0x66, 0x20, 0x6c, 0x6f, 0x75, 0x6e - .byte 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x69, 0x64, 0x6c, 0x79, 0x0a - .byte 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x65, 0x78 - .byte 0x63, 0x69, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x3f, 0x00, 0x00, 0x00 + .global CalmQuest2 + CalmQuest2: + .4byte CalmQuest2Question + .4byte CalmQuest2Answers + .4byte CalmQuest2Points + + .global CalmQuest2Question + CalmQuest2Question: + .string "Do you dream of lounging around idly\n" + .string "without much excitement?\0" + .align 2,0 + + .global CalmQuest3Points + CalmQuest3Points: .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 + + .global CalmQuest3Answers + CalmQuest3Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xc8, 0x1b, 0x0f, 0x08 - .byte 0xa4, 0x1b, 0x0f, 0x08 - .byte 0x84, 0x1b, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x66 - .byte 0x69, 0x67, 0x68, 0x74, 0x3f, 0x00, 0x00, 0x00 + .global CalmQuest3 + CalmQuest3: + .4byte CalmQuest3Question + .4byte CalmQuest3Answers + .4byte CalmQuest3Points + + .global CalmQuest3Question + CalmQuest3Question: + .string "Do you like to fight?\0" + .align 2,0 + + .global CalmQuest4Points + CalmQuest4Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global CalmQuest4Answers + CalmQuest4Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x24, 0x1c, 0x0f, 0x08 - .byte 0x00, 0x1c, 0x0f, 0x08 - .byte 0xe0, 0x1b, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x79, 0x61, 0x77, 0x6e, 0x3f, 0x00, 0x00 + .global CalmQuest4 + CalmQuest4: + .4byte CalmQuest4Question + .4byte CalmQuest4Answers + .4byte CalmQuest4Points + + .global CalmQuest4Question + CalmQuest4Question: + .string "Do you often yawn?\0" + .align 2,0 + + .global RelaxedQuest1Points + RelaxedQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global RelaxedQuest1Answers + RelaxedQuest1Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x7c, 0x1c, 0x0f, 0x08 - .byte 0x58, 0x1c, 0x0f, 0x08 - .byte 0x38, 0x1c, 0x0f, 0x08, 0x41, 0x72, 0x65, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6f, 0x66, 0x74, 0x65, 0x6e, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x73, 0x63, 0x68, 0x6f, 0x6f - .byte 0x6c, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3f, 0x00, 0x00 + .global RelaxedQuest1 + RelaxedQuest1: + .4byte RelaxedQuest1Question + .4byte RelaxedQuest1Answers + .4byte RelaxedQuest1Points + + .global RelaxedQuest1Question + RelaxedQuest1Question: + .string "Are you often late for school or meetings?\0" + .align 2,0 + + .global RelaxedQuest2Points + RelaxedQuest2Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global RelaxedQuest2Answers + RelaxedQuest2Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xec, 0x1c, 0x0f, 0x08 - .byte 0xc8, 0x1c, 0x0f, 0x08 - .byte 0xa8, 0x1c, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74 - .byte 0x68, 0x65, 0x20, 0x66, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x79, 0x6f, 0x75, 0x7e, 0x32, 0x37, 0x76, 0x65, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0a - .byte 0x64, 0x6f, 0x77, 0x6e, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global RelaxedQuest2 + RelaxedQuest2: + .4byte RelaxedQuest2Question + .4byte RelaxedQuest2Answers + .4byte RelaxedQuest2Points + + .global RelaxedQuest2Question + RelaxedQuest2Question: + .string "Do you get the feeling that you~27ve slowed\n" + .string "down lately?\0" + .align 2,0 + + .global RelaxedQuest3Points + RelaxedQuest3Points: .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x9c, 0x1d, 0x0f, 0x08 + + .global RelaxedQuest3Answers + RelaxedQuest3Answers: + .4byte RelaxedQuest3_Great .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x90, 0x1d, 0x0f, 0x08 + .4byte RelaxedQuest3_Snore .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x78, 0x1d, 0x0f, 0x08 + .4byte RelaxedQuest3_Home .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x49, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x6f, 0x20, 0x68, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x6f, 0x6f, 0x6e, 0x21, 0x00, 0x53, 0x6e, 0x6f, 0x72, 0x65, 0x2e, 0x2e, 0x2e - .byte 0x00, 0x00, 0x00, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x65, 0x65, 0x6c, 0x73, 0x20, 0x67, 0x72, 0x65, 0x61, 0x74, 0x21, 0x00, 0x00, 0x00 - .byte 0xbc, 0x1d, 0x0f, 0x08 - .byte 0x58, 0x1d, 0x0f, 0x08 - .byte 0x28, 0x1d, 0x0f, 0x08 - .byte 0x49, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x6c, 0x65, 0x61, 0x73, 0x61, 0x6e, 0x74, 0x20, 0x64, 0x61, 0x79, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20 - .byte 0x62, 0x65, 0x61, 0x63, 0x68, 0x2e, 0x0a - .byte 0x48, 0x6f, 0x77, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x66, 0x65, 0x65, 0x6c, 0x3f, 0x00 + + .global RelaxedQuest3_Home + RelaxedQuest3_Home: + .string "I want to go home soon!\0" + .align 2,0 + + .global RelaxedQuest3_Snore + RelaxedQuest3_Snore: + .string "Snore...\0" + .align 2,0 + + .global RelaxedQuest3_Great + RelaxedQuest3_Great: + .string "This feels great!\0" + .align 2,0 + + .global RelaxedQuest3 + RelaxedQuest3: + .4byte RelaxedQuest3Question + .4byte RelaxedQuest3Answers + .4byte RelaxedQuest3Points + + .global RelaxedQuest3Question + RelaxedQuest3Question: + .string "It is a pleasant day at the beach.\n" + .string "How do you feel?\0" + .align 2,0 + .global RelaxedQuest4Points + RelaxedQuest4Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global RelaxedQuest4Answers + RelaxedQuest4Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x34, 0x1e, 0x0f, 0x08 - .byte 0x10, 0x1e, 0x0f, 0x08 - .byte 0xf0, 0x1d, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79 - .byte 0x6f, 0x75, 0x20, 0x66, 0x61, 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x69, 0x6e, 0x67, 0x3f - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 + + .global RelaxedQuest4 + RelaxedQuest4: + .4byte RelaxedQuest4Question + .4byte RelaxedQuest4Answers + .4byte RelaxedQuest4Points + + .global RelaxedQuest4Question + RelaxedQuest4Question: + .string "Do you fall asleep without noticing?\0" + .align 2,0 + + .global LonelyQuest1Points + LonelyQuest1Points: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global LonelyQuest1Answers + LonelyQuest1Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0xa0, 0x1e, 0x0f, 0x08 - .byte 0x7c, 0x1e, 0x0f, 0x08 - .byte 0x5c, 0x1e, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x66, 0x65, 0x65, 0x6c, 0x20, 0x6c, 0x6f, 0x6e, 0x65, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x77, 0x68, 0x65 - .byte 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global LonelyQuest1 + LonelyQuest1: + .4byte LonelyQuest1Question + .4byte LonelyQuest1Answers + .4byte LonelyQuest1Points + .global LonelyQuest1Question + LonelyQuest1Question: + .string "Do you feel lonesome when you are alone?\0" + .align 2,0 + + .global LonelyQuest2Points + LonelyQuest2Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global LonelyQuest2Answers + LonelyQuest2Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x10, 0x1f, 0x0f, 0x08 - .byte 0xec, 0x1e, 0x0f, 0x08 - .byte 0xcc, 0x1e, 0x0f, 0x08 - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x68 - .byte 0x61, 0x74, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x61, 0x73, 0x74, 0x20, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x65, 0x61 - .byte 0x76, 0x65, 0x0a - .byte 0x63, 0x6c, 0x61, 0x73, 0x73, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x65, 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x20 - .byte 0x64, 0x61, 0x79, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xa8, 0x1f, 0x0f, 0x08 + + .global LonelyQuest2 + LonelyQuest2: + .4byte LonelyQuest2Question + .4byte LonelyQuest2Answers + .4byte LonelyQuest2Points + + .global LonelyQuest2Question + LonelyQuest2Question: + .string "Do you hate to be the last person to leave\n" + .string "class at the end of a school day?\0" + .align 2,0 + + .global LonelyQuest3Points + LonelyQuest3Points: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global LonelyQuest3Answers + LonelyQuest3Answers: + .4byte LonelyQuest3_On .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x98, 0x1f, 0x0f, 0x08 + .4byte LonelyQuest3_Off .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x54, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x74, 0x20, 0x6f, 0x66, 0x66, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x20, 0x69, 0x74, 0x20, 0x6f, 0x6e, 0x2e, 0x00, 0x00, 0x00, 0x00 - .byte 0xc4, 0x1f, 0x0f, 0x08 - .byte 0x80, 0x1f, 0x0f, 0x08 - .byte 0x60, 0x1f, 0x0f, 0x08 - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20 - .byte 0x79, 0x6f, 0x75, 0x72, 0x20, 0x72, 0x6f, 0x6f, 0x6d, 0x7e, 0x32, 0x37, 0x73, 0x20, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x0a - .byte 0x77, 0x68, 0x65, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x7e, 0x32, 0x37, 0x72 - .byte 0x65, 0x20, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x3f, 0x00, 0x00, 0x00, 0x00 + + .global LonelyQuest3_Off + LonelyQuest3_Off: + .string "Turn it off.\0" + .align 2,0 + + .global LonelyQuest3_On + LonelyQuest3_On: + .string "Leave it on.\0" + .align 2,0 + + + .global LonelyQuest3 + LonelyQuest3: + .4byte LonelyQuest3Question + .4byte LonelyQuest3Answers + .4byte LonelyQuest3Points + + .global LonelyQuest3Question + LonelyQuest3Question: + .string "What do you do with your room~27s light\n" + .string "when you~27re going to bed at night?\0" + .align 2,0 @ Question 4, Category 12 (Lonely) + .global LonelyQuest4Points + LonelyQuest4Points: .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00 - .byte 0x90, 0x20, 0x0f, 0x08 + + .global LonelyQuest4Answers + LonelyQuest4Answers: + .4byte LonelyQuest4_Trip .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x78, 0x20, 0x0f, 0x08 + .4byte LonelyQuest4_Hang .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x64, 0x20, 0x0f, 0x08 + .4byte LonelyQuest4_Huddle .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x48, 0x75, 0x64, 0x64, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x2e, 0x00 - .byte 0x48, 0x61, 0x6e, 0x67, 0x20, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x76, 0x61, 0x63, 0x61, 0x6e, 0x74, 0x6c, 0x79, 0x2e, 0x00, 0x00, 0x00, 0x47, 0x6f, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x20 - .byte 0x74, 0x72, 0x69, 0x70, 0x2e, 0x00, 0x00, 0x00 - .byte 0xac, 0x20, 0x0f, 0x08 - .byte 0x44, 0x20, 0x0f, 0x08 - .byte 0x14, 0x20, 0x0f, 0x08 - .byte 0x49, 0x74, 0x7e, 0x32, 0x37, 0x73, 0x20, 0x61, 0x20, 0x77, 0x65, 0x65 - .byte 0x6b, 0x65, 0x6e, 0x64, 0x7e, 0x32, 0x63, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6e, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x70, 0x6c, 0x61, 0x79, 0x0a, 0x77, 0x69, 0x74 - .byte 0x68, 0x20, 0x79, 0x6f, 0x75, 0x2e, 0x2e, 0x2e, 0x0a - .byte 0x57, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x3f, 0x00, 0x00, 0x00, 0x00 + + .global LonelyQuest4_Huddle + LonelyQuest4_Huddle: + .string "Huddle in a corner.\0" + .align 2,0 + + .global LonelyQuest4_Hang + LonelyQuest4_Hang: + .string "Hang around vacantly.\0" + .align 2,0 + + .global LonelyQuest4_Trip + LonelyQuest4_Trip: + .string "Go on a trip.\0" + .align 2,0 + + .global LonelyQuest4 + LonelyQuest4: + .4byte LonelyQuest4Question + .4byte LonelyQuest4Answers + .4byte LonelyQuest4Points + + .global LonelyQuest4Question + LonelyQuest4Question: + .string "It~27s a weekend~2c but no one will play\n" + .string "with you...\n" + .string "What do you do?\0" + .align 2,0 @ Question 1, Category 13 (Quirky) + .global QuirkyQuest1Points + QuirkyQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global QuirkyQuest1Answers + QuirkyQuest1Answers: .byte 0x54, 0x01, 0x0f, 0x08 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xc8, 0x01, 0x0f, 0x08 @@ -936,96 +1434,155 @@ .global QuirkyQuest1 QuirkyQuest1: - .byte 0x38, 0x21, 0x0f, 0x08 - .byte 0x14, 0x21, 0x0f, 0x08 - .byte 0xf4, 0x20, 0x0f, 0x08 + .4byte QuirkyQuest1Question + .4byte QuirkyQuest1Answers + .4byte QuirkyQuest1Points - .byte 0x44, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x75, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x6e - .byte 0x67, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x0a - .byte 0x61, 0x6c, 0x6c, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x73, 0x75, 0x64, 0x64, 0x65, 0x6e, 0x3f, 0x00, 0x00, 0x00 + .global QuirkyQuest1Question + QuirkyQuest1Question: + .string "Do you sometimes run out of things to do\n" + .string "all of a sudden?\0" + .align 2,0 @ Question 2, Category 13 (Quirky) + .global QuirkyQuest2Points + QuirkyQuest2Points: .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xf0, 0x21, 0x0f, 0x08 + + .global QuirkyQuest2Answers + QuirkyQuest2Answers: + .4byte QuirkyQuest2_Reply .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xd8, 0x21, 0x0f, 0x08 + .4byte QuirkyQuest2_MayMayNot .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xc4, 0x21, 0x0f, 0x08 + .4byte QuirkyQuest2_Trouble .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x54, 0x6f, 0x6f, 0x20, 0x6d, 0x75, 0x63, 0x68, 0x20, 0x74, 0x72, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x2e, 0x00, 0x00, 0x00 - .byte 0x4d, 0x61, 0x79, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x7e, 0x32, 0x63, 0x20, 0x6d, 0x61, 0x79, 0x20, 0x6e, 0x6f, 0x74, 0x2e, 0x00, 0x00, 0x00, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x20, 0x72, 0x69 - .byte 0x67, 0x68, 0x74, 0x20, 0x61, 0x77, 0x61, 0x79, 0x2e, 0x00, 0x00, 0x00 + + .global QuirkyQuest2_Trouble + QuirkyQuest2_Trouble: + .string "Too much trouble.\0" + .align 2,0 + + .global QuirkyQuest2_MayMayNot + QuirkyQuest2_MayMayNot: + .string "May reply~2c may not.\0" + .align 2,0 + + .global QuirkyQuest2_Reply + QuirkyQuest2_Reply: + .string "Reply right away.\0" + .align 2,0 .global QuirkyQuest2 QuirkyQuest2: - .byte 0x10, 0x22, 0x0f, 0x08 - .byte 0xa4, 0x21, 0x0f, 0x08 - .byte 0x74, 0x21, 0x0f, 0x08 + .4byte QuirkyQuest2Question + .4byte QuirkyQuest2Answers + .4byte QuirkyQuest2Points - .byte 0x48, 0x6f, 0x77, 0x20, 0x71, 0x75, 0x69, 0x63 - .byte 0x6b, 0x6c, 0x79, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x6e, 0x20, 0x65, 0x2d, 0x6d, 0x61, 0x69, 0x6c, 0x3f, 0x00, 0x00, 0x00, 0x00 + .global QuirkyQuest2Question + QuirkyQuest2Question: + .string "How quickly do you respond to an e-mail?\0" + .align 2,0 @ Question 3, Category 13 (Quirky) + .global QuirkyQuest3Points + QuirkyQuest3Points: .byte 0x01, 0x00, 0x03, 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, 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0xe8, 0x22, 0x0f, 0x08 + + .global QuirkyQuest3Answers + QuirkyQuest3Answers: + .4byte QuirkyQuest3_Declare .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xd4, 0x22, 0x0f, 0x08 + .4byte QuirkyQuest3_Hello .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xb4, 0x22, 0x0f, 0x08 + .4byte QuirkyQuest3_Prank .byte 0x02, 0x00, 0x00, 0x00 - .byte 0xa4, 0x22, 0x0f, 0x08 + .4byte QuirkyQuest3_Afar .byte 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff - .byte 0x4c, 0x6f, 0x6f, 0x6b, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x66, 0x61, 0x72, 0x2e, 0x00, 0x50, 0x75, 0x6c, 0x6c - .byte 0x20, 0x61, 0x20, 0x70, 0x72, 0x61, 0x6e, 0x6b, 0x20, 0x74, 0x6f, 0x20, 0x67, 0x65, 0x74, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x00, 0x00, 0x4d, 0x69, 0x67, 0x68 - .byte 0x74, 0x20, 0x73, 0x61, 0x79, 0x20, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x2e, 0x2e, 0x00, 0x00, 0x42, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x20 - .byte 0x6d, 0x79, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x00, 0x00, 0x00, 0x00 + + .global QuirkyQuest3_Afar + QuirkyQuest3_Afar: + .string "Look from afar.\0" + .align 2,0 + + .global QuirkyQuest3_Prank + QuirkyQuest3_Prank: + .string "Pull a prank to get attention.\0" + .align 2,0 + + .global QuirkyQuest3_Hello + QuirkyQuest3_Hello: + .string "Might say hello...\0" + .align 2,0 + + .global QuirkyQuest3_Declare + QuirkyQuest3_Declare: + .string "Bravely declare my love.\0" + .align 2,0 .global QuirkyQuest3 QuirkyQuest3: - .byte 0x10, 0x23, 0x0f, 0x08 - .byte 0x7c, 0x22, 0x0f, 0x08 - .byte 0x3c, 0x22, 0x0f, 0x08 + .4byte QuirkyQuest3Question + .4byte QuirkyQuest3Answers + .4byte QuirkyQuest3Points + + .global QuirkyQuest3Question + QuirkyQuest3Question: .string "There is a person you like...#W\n" .string "But there~27s no opportunity to get close.\n" .string "What do you do?\0" .align 2,0 @ Question 4, Category 13 (Quirky) + .global QuirkyQuest4Points + QuirkyQuest4Points: .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +2 Docile .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +2 Sassy .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 @ +2 Quirky - .byte 0xe8, 0x23, 0x0f, 0x08 + .global QuirkyQuest4Answers + QuirkyQuest4Answers: + .4byte QuirkyQuest4_GoRight .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xd0, 0x23, 0x0f, 0x08 + .4byte QuirkyQuest4_GoLeft .byte 0x01, 0x00, 0x00, 0x00 - .byte 0xbc, 0x23, 0x0f, 0x08 + .4byte QuirkyQuest4_EitherSide .byte 0x02, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0xff, 0xff, 0xff, 0xff + .global QuirkyQuest4_EitherSide + QuirkyQuest4_EitherSide: .string "Choose either side.\0" .align 2,0 + + .global QuirkyQuest4_GoLeft + QuirkyQuest4_GoLeft: .string "It~27s a trap! Go left.\0" .align 2,0 + + .global QuirkyQuest4_GoRight + QuirkyQuest4_GoRight: .string "Instantly go right.\0" .align 2,0 .global QuirkyQuest4 QuirkyQuest4: - .byte 0x08, 0x24, 0x0f, 0x08 - .byte 0x9c, 0x23, 0x0f, 0x08 - .byte 0x6c, 0x23, 0x0f, 0x08 + .4byte QuirkyQuest4Question + .4byte QuirkyQuest4Answers + .4byte QuirkyQuest4Points + .global QuirkyQuest4Question + QuirkyQuest4Question: .string "The road forks to the right and left.\n" .string "You are told there is a treasure on the\n" .string "right side. What do you do?\0" @@ -1036,6 +1593,7 @@ MiscQuest1Points: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 @ +1 Hasty, +1 Quirky .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 @ +1 Jolly, +1 Lonely + .global MiscQuest1Answers MiscQuest1Answers: .4byte MiscQuest1_Alone @@ -1137,54 +1695,54 @@ .global gPersonalityQuestionPointerTable gPersonalityQuestionPointerTable: @ 80F2624 (pointers to each question text) - .byte 0xD8, 0x00, 0x0F, 0x08 - .byte 0x5C, 0x01, 0x0F, 0x08 - .byte 0xCC, 0x01, 0x0F, 0x08 - .byte 0x74, 0x02, 0x0F, 0x08 - .byte 0x18, 0x03, 0x0F, 0x08 - .byte 0xCC, 0x03, 0x0F, 0x08 - .byte 0xB0, 0x04, 0x0F, 0x08 - .byte 0xA0, 0x05, 0x0F, 0x08 - .byte 0x10, 0x06, 0x0F, 0x08 - .byte 0x44, 0x07, 0x0F, 0x08 - .byte 0x1C, 0x09, 0x0F, 0x08 - .byte 0x2C, 0x0A, 0x0F, 0x08 - .byte 0xBC, 0x0A, 0x0F, 0x08 - .byte 0x20, 0x0B, 0x0F, 0x08 - .byte 0xD0, 0x0B, 0x0F, 0x08 - .byte 0xBC, 0x0C, 0x0F, 0x08 - .byte 0x94, 0x0D, 0x0F, 0x08 - .byte 0xFC, 0x0D, 0x0F, 0x08 - .byte 0x54, 0x0E, 0x0F, 0x08 - .byte 0x3C, 0x0F, 0x0F, 0x08 - .byte 0xE0, 0x0F, 0x0F, 0x08 - .byte 0x48, 0x10, 0x0F, 0x08 - .byte 0xA8, 0x10, 0x0F, 0x08 - .byte 0x10, 0x11, 0x0F, 0x08 - .byte 0xE8, 0x11, 0x0F, 0x08 - .byte 0xF8, 0x12, 0x0F, 0x08 - .byte 0xCC, 0x13, 0x0F, 0x08 - .byte 0xA4, 0x14, 0x0F, 0x08 - .byte 0x5C, 0x15, 0x0F, 0x08 - .byte 0x48, 0x16, 0x0F, 0x08 - .byte 0x24, 0x17, 0x0F, 0x08 - .byte 0xEC, 0x17, 0x0F, 0x08 - .byte 0xCC, 0x18, 0x0F, 0x08 - .byte 0x5C, 0x19, 0x0F, 0x08 - .byte 0xCC, 0x19, 0x0F, 0x08 - .byte 0x38, 0x1A, 0x0F, 0x08 - .byte 0xB4, 0x1A, 0x0F, 0x08 - .byte 0x38, 0x1B, 0x0F, 0x08 - .byte 0xBC, 0x1B, 0x0F, 0x08 - .byte 0x18, 0x1C, 0x0F, 0x08 - .byte 0x70, 0x1C, 0x0F, 0x08 - .byte 0xE0, 0x1C, 0x0F, 0x08 - .byte 0xB0, 0x1D, 0x0F, 0x08 - .byte 0x28, 0x1E, 0x0F, 0x08 - .byte 0x94, 0x1E, 0x0F, 0x08 - .byte 0x04, 0x1F, 0x0F, 0x08 - .byte 0xB8, 0x1F, 0x0F, 0x08 - .byte 0xA0, 0x20, 0x0F, 0x08 + .4byte HardyQuest1 + .4byte HardyQuest2 + .4byte HardyQuest3 + .4byte HardyQuest4 + .4byte DocileQuest1 + .4byte DocileQuest2 + .4byte DocileQuest3 + .4byte DocileQuest4 + .4byte BraveQuest1 + .4byte BraveQuest2A + .4byte BraveQuest3 + .4byte BraveQuest4 + .4byte JollyQuest1 + .4byte JollyQuest2 + .4byte JollyQuest3 + .4byte JollyQuest4 + .4byte ImpishQuest1 + .4byte ImpishQuest2 + .4byte ImpishQuest3 + .4byte ImpishQuest4 + .4byte NaiveQuest1 + .4byte NaiveQuest2 + .4byte NaiveQuest3 + .4byte NaiveQuest4 + .4byte TimidQuest1 + .4byte TimidQuest2 + .4byte TimidQuest3 + .4byte TimidQuest4 + .4byte HastyQuest1 + .4byte HastyQuest2 + .4byte HastyQuest3 + .4byte HastyQuest4 + .4byte SassyQuest1 + .4byte SassyQuest2 + .4byte SassyQuest3 + .4byte SassyQuest4 + .4byte CalmQuest1 + .4byte CalmQuest2 + .4byte CalmQuest3 + .4byte CalmQuest4 + .4byte RelaxedQuest1 + .4byte RelaxedQuest2 + .4byte RelaxedQuest3 + .4byte RelaxedQuest4 + .4byte LonelyQuest1 + .4byte LonelyQuest2 + .4byte LonelyQuest3 + .4byte LonelyQuest4 .4byte QuirkyQuest1 .4byte QuirkyQuest2 .4byte QuirkyQuest3 @@ -1192,7 +1750,7 @@ gPersonalityQuestionPointerTable: @ 80F2624 (pointers to each question text) .4byte MiscQuest1 .4byte MiscQuest2 .4byte MiscQuest3 - .byte 0xD8, 0x07, 0x0F, 0x08 @ (pointer to Question 2B for Brave) + .4byte BraveQuest2B .global gNatureQuestionTable gNatureQuestionTable: @ 80F2704 (Categories) @@ -1218,8 +1776,8 @@ gGenderText: @ 80F273C .align 2,0 .4byte gGenderText - .global gUnknown_80F275C -gUnknown_80F275C: @ 80F275C + .global gGenderMenu +gGenderMenu: @ 80F275C .4byte BoyText @ Pointer to boy text .byte 0x00, 0x00, 0x00, 0x00 .4byte GirlText @ Pointer to girl text @@ -1251,7 +1809,7 @@ gUnknown_80F275C: @ 80F275C .byte 0x0D .global gStarters -gStarters: @ 80F278E +gStarters: @ 80F278E (2D Array / [Male][Female]) .byte 0x04, 0x00 @ Charmander (Hardy M) .byte 0x19, 0x00 @ Pikachu (Hardy F) .byte 0x01, 0x00 @ Bulbasaur (Docile M) @@ -1286,29 +1844,29 @@ gStarterReveal: @ 80F27C4 .string "#+The Pokémon $m0!\0" .4byte gStarterReveal - .global gUnknown_80F27DC -gUnknown_80F27DC: @ 80F27DC + .global gPartnerPrompt +gPartnerPrompt: @ 80F27DC .string "#+This is the final step.#W\n" .string "#+Who would you like to have as a partner?#P" @ #P -> scroll down .string "#+Choose the Pokémon you want\n" .string "#+as your partner from this group.\0" .align 2,0 - .4byte gUnknown_80F27DC + .4byte gPartnerPrompt - .global gUnknown_80F286C -gUnknown_80F286C: @ 80F286C + .global gPartnerNickPrompt +gPartnerNickPrompt: @ 80F286C .string "#+What is your partner~27s nickname?\0" .align 2,0 - .4byte gUnknown_80F286C + .4byte gPartnerNickPrompt - .global gUnknown_80F2898 -gUnknown_80F2898: @ 80F2898 + .global gEndIntroText +gEndIntroText: @ 80F2898 .string "#+OK! We~27re all set!#P" .string "#+Let~27s get you into the\n" .string "#+world of Pokémon!#P" .string "#+Go for it!\0" .align 2,0 - .4byte gUnknown_80F2898 + .4byte gEndIntroText .global gPersonalityTypeDescriptionTable gPersonalityTypeDescriptionTable: @ 80F28F4 diff --git a/include/constants/emotions.h b/include/constants/emotions.h new file mode 100644 index 00000000..72db73c5 --- /dev/null +++ b/include/constants/emotions.h @@ -0,0 +1,22 @@ +#ifndef GUARD_CONSTANTS_EMOTIONS_H +#define GUARD_CONSTANTS_EMOTIONS_H + +#define EMOTION_NORMAL 0 +#define EMOTION_HAPPY 2 +#define EMOTION_PAINED 4 +#define EMOTION_ANGRY 6 +#define EMOTION_WORRIED 8 +#define EMOTION_SAD 10 +#define EMOTION_CRYING 12 +#define EMOTION_SHOUTING 14 +#define EMOTION_TEARY_EYE 16 +#define EMOTION_DETERMINED 18 +#define EMOTION_JOYOUS 20 +#define EMOTION_INSPIRED 22 +#define EMOTION_SUPRISED 24 +#define EMOTION_DIZZY 26 +#define EMOTION_SIGH 32 +#define EMOTION_STUNNED 34 +#define MAX_EMOTIONS 40 + +#endif // GUARD_CONSTANTS_EMOTIONS_H diff --git a/include/constants/friend_area.h b/include/constants/friend_area.h index 3d0a9c59..061e1ae8 100644 --- a/include/constants/friend_area.h +++ b/include/constants/friend_area.h @@ -1,3 +1,7 @@ +#ifndef GUARD_CONSTANTS_FRIEND_AREA_H +#define GUARD_CONSTANTS_FRIEND_AREA_H + + #define NUM_FRIEND_AREAS 58 #define NONE 0 @@ -58,3 +62,5 @@ #define SOUTHERN_ISLAND 55 #define ENCLOSED_ISLAND 56 #define FINAL_ISLAND 57 + +#endif diff --git a/include/constants/personality_test.h b/include/constants/personality_test.h new file mode 100644 index 00000000..c711b3ca --- /dev/null +++ b/include/constants/personality_test.h @@ -0,0 +1,12 @@ +#ifndef GUARD_CONSTANTS_PERSONALITY_TEST_H +#define GUARD_CONSTANTS_PERSONALITY_TEST_H + +#define NUM_PARTNERS 10 +#define NUM_PERSONALITIES 13 +#define NUM_QUIZ_QUESTIONS 55 +#define MAX_ASKED_QUESTIONS 8 + +#define MALE 0 +#define FEMALE 1 + +#endif diff --git a/include/personality_test.h b/include/personality_test.h new file mode 100644 index 00000000..49f6c6b5 --- /dev/null +++ b/include/personality_test.h @@ -0,0 +1,95 @@ +#ifndef GUARD_PERSONALITY_TEST_H +#define GUARD_PERSONALITY_TEST_H + +#include "constants/personality_test.h" + +struct unkData +{ + u8 unk0[24]; +}; + +extern const struct unkData gUnknown_80F4244; + +struct PersonalityStruct_203B400 +{ + s32 FrameCounter; + u32 unk4; + /* 0x8 */ s16 StarterID; + /* 0xA */ s16 PartnerID; + u8 padding[0x20 - 0xC]; + s32 unk20; + u8 padding2[0x34 - 0x24]; + /* 0x34 */ u32 TestState; + /* 0x38 */ s32 QuestionCounter; + /* 0x3C */ u32 currQuestionIndex; + /* 0x40 */ u8 playerNature; + u8 padding3[3]; + /* 0x44 */ s32 NatureTotals[13]; + /* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS]; + /* 0xB0 */ u32 playerGender; // 1 = Female, 0 = Male + u32 unkb4; + u32 unkb8; + u32 unkbc; +}; +extern struct PersonalityStruct_203B400 *gUnknown_203B400; + +struct PersonalitySubStruct +{ + u8 unkb4; + u8 unkb5; + u8 unkb6; + u8 unkb7; +}; + +struct PersonalityStruct_203B404 +{ + // Size: 0xB8 + /* 0x0 */ s16 StarterID; + /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; + u8 unk16; + u8 unk17; + /* 0x18 */ struct UnkInputStruct *unk18; // something menu related (seems to be some struct) + u8 padding[0x30 - 0x1C]; + /* 0x30 */ s16 currPartnerSelection; + s16 unk32; + u8 padding2[0x3A - 0x34]; + /* 0x3A */ s16 numPartners; + u8 padding3[0x4C - 0x3C]; + u32 unk4C; + /* 0x50 */ struct unkData *unk50; + /* 0x54 */ struct unkData unk54[4]; + /* 0xB4 */ struct PersonalitySubStruct sub; +}; +extern struct PersonalityStruct_203B404 *gUnknown_203B404; + + + + +void InitializeTestStats(void); +void GenerateNewQuestionOrGender(void); +void CallPromptNewQuestion(void); +void PrintPersonalityTypeDescription(void); +void SetPlayerGender(void); +void RevealPersonality(void); +void RevealStarter(void); +void sub_803CA8C(void); +void PromptPickPartner(void); +void sub_803CAD4(void); +void CallCreatePartnerSelectionMenu(void); +void PromptForPartnerNickname(void); +void sub_803CB5C(void); +void sub_803CB7C(void); +void PrintEndIntroText(void); +void sub_803CBE4(void); +s32 GetValidPartners(void); +void UpdateNatureTotals(void); +void PromptNewQuestion(void); +void PersonalityTest_DisplayPartnerSprite(void); +u16 HandlePartnerSelectionInput(void); +void PersonalityTest_DisplayStarterSprite(void); +void CreatePartnerSelectionMenu(s16); +void sub_803CECC(void); +void nullsub_135(void); + + +#endif diff --git a/ld_script.txt b/ld_script.txt index e548bb62..08ddbf83 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -103,7 +103,7 @@ SECTIONS { src/code_803C1B4.o(.text); asm/code_803C1D0.o(.text); src/personality_test_pre.o(.text); - asm/personality_test.o(.text); + asm/personality_test_2.o(.text); src/personality_test.o(.text); asm/code_803D110.o(.text); src/code_8040094.o(.text); @@ -217,6 +217,7 @@ SECTIONS { data/data_80B9BB8.o(.rodata); data/pokemon_mail.o(.rodata); data/personality_test.o(.rodata); + src/personality_test_pre.o(.rodata); src/personality_test.o(.rodata); data/data_80F4278.o(.rodata); data/friend_area_dialogue.o(.rodata); diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index 29b17103..9358ddb1 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -31,7 +31,7 @@ extern u8 sub_8071858(struct unkDungeon_8041D5C *r0, u8); extern u32 sub_806F62C(u32); extern void sub_8083E38(u32); extern u8 sub_803F428(struct unkDungeon_8041D5C *r0); -extern void sub_8041550(struct unkDungeon_8041D5C *r0, u32, u32, u32); +extern void sub_8041550(struct unkDungeon_8041D5C *r0, u32, u32, u32, u32, u32); void sub_80421C0(struct unkDungeon_8041D5C *r0, u16 r1); @@ -439,10 +439,7 @@ void sub_8041EF8(struct unkDungeon_8041D5C *r0) void sub_8041F08(struct unkDungeon_8041D5C *r0) { - volatile struct unk_struct_8041F08 temp; - temp.unk0 = 2; - temp.unk4 = 0; - sub_8041550(r0, 0x15, 1, 3); + sub_8041550(r0, 0x15, 1, 3, 2, 0); } void nullsub_90(void) @@ -597,10 +594,7 @@ void sub_80420B8(struct unkDungeon_8041D5C *r0, u32 r1) void sub_80420C8(struct unkDungeon_8041D5C *r0) { - volatile struct unk_struct_8041F08 temp; - temp.unk0 = 2; - temp.unk4 = 0; - sub_8041550(r0, 0x15, 1, 3); + sub_8041550(r0, 0x15, 1, 3, 2, 0); } void nullsub_92(void) @@ -611,7 +605,6 @@ void sub_80420E8(struct unkDungeon_8041D5C *r0, struct unkStruct_80420E8 *r1) { u32 temp; u32 arg; - volatile struct unk_struct_8041F08 temp_1; temp = r1->unk8; if(gUnknown_203B418[0x16d] != 0) temp = sub_806F62C(r1->unk8); @@ -631,9 +624,7 @@ void sub_80420E8(struct unkDungeon_8041D5C *r0, struct unkStruct_80420E8 *r1) arg = 11; break; } - temp_1.unk0 = 0; - temp_1.unk4 = 1; - sub_8041550(r0, arg, 1, 3); + sub_8041550(r0, arg, 1, 3, 0, 1); } void sub_8042148(struct unkDungeon_8041D5C *r0) diff --git a/src/code_8048480.c b/src/code_8048480.c index 4d403e1e..7860fa89 100644 --- a/src/code_8048480.c +++ b/src/code_8048480.c @@ -18,7 +18,7 @@ extern s16 gUnknown_80F4FBE; extern void sub_807D148(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2, u32 r3); extern void sub_8075FCC(u32 r0, struct unkDungeon_8041D5C *r1); extern void sub_8077AE4(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2); -extern void sub_8072008(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2, u8 r3); +extern void sub_8072008(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2, u8 r3, u32); extern void sub_8076D10(u32 r0, struct unkDungeon_8041D5C *r1); extern void sub_807232C(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2); @@ -135,9 +135,7 @@ void sub_804849C(u32 r0, struct unkDungeon_8041D5C *r1) void sub_80484A8(u32 r0, struct unkDungeon_8041D5C *r1) { - volatile u32 temp; - temp = 1; - sub_8072008(r0, r1, 1, 1); + sub_8072008(r0, r1, 1, 1, 1); } void sub_80484BC(u32 r0, struct unkDungeon_8041D5C *r1) diff --git a/src/event_flag.c b/src/event_flag.c index a19d3dbd..10f6b8f9 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -7,7 +7,7 @@ extern void sub_800226C(u8 r0, u8 r1, u32* r2, u8 u3); extern void sub_800160C(struct UnkEventStruct *r0, u32 r1, u32 r2); extern u8 sub_8002658(s32); -extern u8 gUnknown_2000A88; +extern u8 gUnknown_2000A88[0x400]; bool8 sub_80026CC(s16 r0) { @@ -21,7 +21,7 @@ void sub_80026E8(s16 r0) bool8 sub_8002700(void *r0) { - MemoryCopy8(r0, &gUnknown_2000A88, 0x80 << 3); + MemoryCopy8(r0, gUnknown_2000A88, 0x400); return 1; } @@ -29,7 +29,7 @@ bool8 sub_8002718(u8 *r0) { struct UnkEventStruct temp; sub_800160C(&temp, 0, 0); - MemoryCopy8(&gUnknown_2000A88, r0, 0x80 << 3); + MemoryCopy8(gUnknown_2000A88, r0, 0x400); if (temp.unk0[5] != temp.unk4[0]) return 0; return 1; diff --git a/src/main_menu.c b/src/main_menu.c index 765039fd..0302550c 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -30,7 +30,7 @@ extern void MemoryFree(void *); extern void sub_8094C14(void); extern void sub_8099690(u32); -extern void sub_8035E10(void); +extern void DrawMainMenu(void); extern void CreateDebugMenu(void); extern void sub_8036400(void); extern void sub_8036FDC(void); @@ -56,7 +56,7 @@ extern s32 sub_80383D4(void); extern s32 sub_8038630(void); extern s32 sub_803A2A4(void); -extern void sub_8035EC0(void); +extern void CleanMainMenu(void); extern void sub_80393F0(void); extern void sub_8036B04(void); extern void sub_80370D4(void); @@ -103,7 +103,7 @@ void SetUpMenu(void) case 1: sub_8094C14(); sub_8099690(0); - sub_8035E10(); + DrawMainMenu(); break; case 6: case 7: @@ -242,7 +242,7 @@ void CleanUpMenu(void) if (gUnknown_203B348->unk8 != gUnknown_203B348->unk4) { switch(gUnknown_203B348->unk8) { case 1: - sub_8035EC0(); + CleanMainMenu(); break; case 6: case 7: diff --git a/src/personality_test.c b/src/personality_test.c index 9aef10a0..41fbfed8 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -1,21 +1,15 @@ #include "global.h" +#include "constants/emotions.h" #include "constants/species.h" +#include "personality_test.h" #include "pokemon.h" -#define NUM_PARTNERS 10 +extern void sub_80073E0(u32); +extern void sub_80073B8(u32); +extern void sub_8008C54(u32); +extern void sub_800836C(u32, u8 *r0, u32); +extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray); -// TODO convert this... maybe a script? -const u8 gUnknown_80F4244[32] = -{ - 0, 0, 0, 0, - 5, 0, 0, 0, - 0xC, 0, 6, 0, - 5, 0, 5, 0, - 5, 0, 0, 0, - 0, 0, 0, 0, - - 'p', 'k', 's', 'd', 'i', 'r', '0', 0 -}; const s16 gPartners[NUM_PARTNERS] = { @@ -35,14 +29,34 @@ extern u8 gUnknown_80F42D0[]; extern u8 gUnknown_80F42F0[]; extern u8 gUnknown_203B408; -struct unkStruct_203B404 +// Definitely wrong but need to figure out better structure later +struct FaceData { - // Size: 0xB8 - /* 0x0 */ s16 StarterID; - /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; + /* 0x0 */ u8 *unk0[5]; }; -extern struct unkStruct_203B404 *gUnknown_203B404; +void PersonalityTest_DisplayPartnerSprite(void) +{ + s32 partnerID; + struct OpenedFile *faceFile; + int palleteIndex; + u8 *r6; + u32 faceIndex; + + partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection]; + sub_8008C54(1); + sub_80073B8(1); + faceFile = GetDialogueSpriteDataPtr(partnerID); + r6 = ((struct FaceData *)(faceFile->data))->unk0[1 + EMOTION_NORMAL]; + faceIndex = EMOTION_NORMAL; + for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ + SetBGPaletteBufferColorArray(palleteIndex + 224,&((struct FaceData *)(faceFile->data))->unk0[faceIndex][palleteIndex << 2]); + } + sub_800836C(1,r6,0xe); + CloseFile(faceFile); + sub_80073E0(1); + gUnknown_203B404->unk16 = 1; +} s32 GetValidPartners(void) { @@ -88,5 +102,3 @@ u8 sub_803D100(u8 r0) { return gUnknown_80F42D0[r0]; } - - diff --git a/src/personality_test_pre.c b/src/personality_test_pre.c index 9603b0e8..27a55a8e 100644 --- a/src/personality_test_pre.c +++ b/src/personality_test_pre.c @@ -1,54 +1,114 @@ #include "global.h" +#include "personality_test.h" +#include "constants/emotions.h" +#include "random.h" +#include "file_system.h" +#include "pokemon.h" +#include "input.h" -#define NUM_PERSONALITIES 13 -#define NUM_QUIZ_QUESTIONS 55 - -struct PersonalityStruct_203B400 -{ - u32 unk0; - u32 unk4; - u8 padding[0x34 - 8]; - /* 0x34 */ u32 TestState; - /* 0x38 */ u32 QuestionCounter; - /* 0x3C */ u32 currQuestionIndex; - u8 unk40; - u8 padding2[3]; - /* 0x44 */ u32 NatureTotals[13]; - /* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS]; - u32 unkb0; - u32 unkb4; - u32 unkb8; - u32 unkbc; -}; - -extern struct PersonalityStruct_203B400 *gUnknown_203B400; extern void* MemoryAlloc(u32, u32); extern void MemoryFree(void *); extern void sub_801317C(u32 *); extern void sub_8099690(u32); extern void sub_8001024(u32 *); -extern s32 Random(void); extern s32 sub_8094E4C(void); extern void sub_8011C40(s32); extern void sub_8094D28(s32); extern void sub_8001044(u32 *); -extern void sub_803C870(void); -extern void sub_803C908(void); -extern void sub_803C920(void); -extern void sub_803C98C(void); -extern void sub_803C9D8(void); -extern void sub_803CA54(void); -extern void sub_803CA8C(void); -extern void sub_803CAAC(void); -extern void sub_803CAD4(void); -extern void sub_803CAF4(void); -extern void sub_803CB14(void); -extern void sub_803CB5C(void); -extern void sub_803CB7C(void); -extern void sub_803CBB0(void); -extern void sub_803CBE4(void); -void InitializeTestStats(void); + + +struct UnkSaveStruct1 +{ + /* 0x0 */ u32 unk0; + /* 0x4 */ u32 unk4; + /* 0x8 */ u16 unk8; + /* 0xA */ u8 unkA; + /* 0xB */ u8 playerGender; +}; +extern struct UnkSaveStruct1 *gUnknown_203B46C; + +// The frick... This is definitely wrong in terms of members +// There's 5 pointers in the data +struct FaceData +{ + /* 0x0 */ u8 *unk0[5]; +}; + +struct stack_PartnerSprite +{ + // size: 0x60 + u32 unk0; + u8 padding[0x18 - 4]; + struct unkData data; + u32 padding2[12]; +}; + +extern void sub_80141B4(const char *text, u32 r1, u32 r2, u16 r3); +extern void sub_8014248(const char *text, u32, u32, u32 *r0, u32, u32, u32, u32, u32); + +extern u32 sub_80144A4(s32 *); + +extern void sub_803CE6C(void); +extern u32 sub_808D994(u32); +extern void sub_80922F4(s32 *r0, u32); +extern void sub_801602C(u32, s32 *r0); + +extern u32 sub_8016080(void); +extern void sub_80160D8(void); +extern void sub_8099690(u32); +extern void sub_808D8BC(u32 *r0, u32); + +extern void sub_8006518(void *); +extern void sub_800641C(void *, u32, u32); +extern void sub_80073E0(u32); +extern void sub_80073B8(u32); +extern void sub_8008C54(u32); +extern void sub_800836C(u32, u8 *r0, u32); +extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray); + +extern void sub_803CEAC(void); +extern void RedrawPartnerSelectionMenu(void); +extern void sub_8013818(u32 *r0, s32, u32, u32); + +extern u32 GetKeyPress(struct UnkInputStruct **r0); +extern u8 sub_80138B8(struct UnkInputStruct **r0, u32); +extern void sub_80119D4(u32); + + +extern void sub_8013984(struct UnkInputStruct **r0); +extern void AddMenuCursorSprite(struct UnkInputStruct **r0); + +extern const char gStarterReveal; +extern const char gPartnerPrompt; +extern const char gPartnerNickPrompt; +extern const char gEndIntroText; +extern const char gGenderText; +extern u32 gGenderMenu; + +extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS]; +extern const char *gPersonalityTypeDescriptionTable[]; + +extern u32 gUnknown_202DF98; + + +struct unkData gUnknown_80F4244 = +{ + 0, 0, 0, 0, + 5, 0, 0, 0, + 0xC, 0, 6, 0, + 5, 0, 5, 0, + 5, 0, 0, 0, + 0, 0, 0, 0, +}; + +const u8 filler[8] = +{ + 'p', 'k', 's', 'd', 'i', 'r', '0', 0 +}; + +extern struct unkData gUnknown_80F4278; + u8 CreateTestTracker(void) { @@ -64,7 +124,7 @@ void InitializeTestStats(void) s32 counter; sub_8001024(&gUnknown_203B400->unk4); - gUnknown_203B400->unk0 = 0; + gUnknown_203B400->FrameCounter = 0; gUnknown_203B400->TestState = 0; gUnknown_203B400->QuestionCounter = 0; for(counter = 0; counter < NUM_PERSONALITIES; counter++){ @@ -74,52 +134,51 @@ void InitializeTestStats(void) for(counter = 0; counter < NUM_QUIZ_QUESTIONS; counter++){ gUnknown_203B400->QuestionTracker[counter] = 0; } - gUnknown_203B400->unk40 = 0; - gUnknown_203B400->unkb0 = 0; + gUnknown_203B400->playerNature = 0; + gUnknown_203B400->playerGender = 0; } -#ifdef NONMATCHING u8 HandleTestTrackerState(void) { s32 counter; s32 iVar1; - gUnknown_203B400->unk0++; + gUnknown_203B400->FrameCounter++; switch(gUnknown_203B400->TestState) { case 0: - sub_803C870(); + GenerateNewQuestionOrGender(); break; case 1: - sub_803C908(); + CallPromptNewQuestion(); break; case 2: - sub_803C920(); + UpdateNatureTotals(); break; case 3: - sub_803C98C(); + SetPlayerGender(); break; case 4: - sub_803C9D8(); + RevealPersonality(); break; case 5: - sub_803CA54(); + RevealStarter(); break; case 6: sub_803CA8C(); break; case 7: - sub_803CAAC(); + PromptPickPartner(); break; case 8: sub_803CAD4(); break; case 9: - sub_803CAF4(); + CallCreatePartnerSelectionMenu(); break; case 10: - sub_803CB14(); + PromptForPartnerNickname(); break; case 11: sub_803CB5C(); @@ -128,18 +187,17 @@ u8 HandleTestTrackerState(void) sub_803CB7C(); break; case 13: - sub_803CBB0(); + PrintEndIntroText(); break; case 14: sub_803CBE4(); break; case 15: - iVar1 = Random() * gUnknown_203B400->unk0; + iVar1 = Random() * gUnknown_203B400->FrameCounter; sub_8094D28(Random()); - // TODO fix this math.. - for(counter = 0; counter < 13; counter++){ - iVar1 *= (gUnknown_203B400->NatureTotals[counter] + 3); + for(counter = 0; counter < NUM_PERSONALITIES; counter++){ + iVar1 *= (gUnknown_203B400->NatureTotals[counter] + counter + 3); } iVar1 += sub_8094E4C(); @@ -154,146 +212,572 @@ u8 HandleTestTrackerState(void) return 0; } -#else -NAKED -u8 HandleTestTrackerState(void) -{ - asm_unified( - "\tpush {r4,r5,lr}\n" - "\tldr r0, _0803C750\n" - "\tldr r1, [r0]\n" - "\tldr r0, [r1]\n" - "\tadds r0, 0x1\n" - "\tstr r0, [r1]\n" - "\tldr r0, [r1, 0x34]\n" - "\tcmp r0, 0xF\n" - "\tbls _0803C744\n" - "\tb _0803C848\n" - "_0803C744:\n" - "\tlsls r0, 2\n" - "\tldr r1, _0803C754\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.align 2, 0\n" - "_0803C750: .4byte gUnknown_203B400\n" - "_0803C754: .4byte _0803C758\n" - "\t.align 2, 0\n" - "_0803C758:\n" - "\t.4byte _0803C798\n" - "\t.4byte _0803C79E\n" - "\t.4byte _0803C7A4\n" - "\t.4byte _0803C7AA\n" - "\t.4byte _0803C7B0\n" - "\t.4byte _0803C7B6\n" - "\t.4byte _0803C7BC\n" - "\t.4byte _0803C7C2\n" - "\t.4byte _0803C7C8\n" - "\t.4byte _0803C7CE\n" - "\t.4byte _0803C7D4\n" - "\t.4byte _0803C7DA\n" - "\t.4byte _0803C7E0\n" - "\t.4byte _0803C7E6\n" - "\t.4byte _0803C7EC\n" - "\t.4byte _0803C7F2\n" - "_0803C798:\n" - "\tbl sub_803C870\n" - "\tb _0803C848\n" - "_0803C79E:\n" - "\tbl sub_803C908\n" - "\tb _0803C848\n" - "_0803C7A4:\n" - "\tbl sub_803C920\n" - "\tb _0803C848\n" - "_0803C7AA:\n" - "\tbl sub_803C98C\n" - "\tb _0803C848\n" - "_0803C7B0:\n" - "\tbl sub_803C9D8\n" - "\tb _0803C848\n" - "_0803C7B6:\n" - "\tbl sub_803CA54\n" - "\tb _0803C848\n" - "_0803C7BC:\n" - "\tbl sub_803CA8C\n" - "\tb _0803C848\n" - "_0803C7C2:\n" - "\tbl sub_803CAAC\n" - "\tb _0803C848\n" - "_0803C7C8:\n" - "\tbl sub_803CAD4\n" - "\tb _0803C848\n" - "_0803C7CE:\n" - "\tbl sub_803CAF4\n" - "\tb _0803C848\n" - "_0803C7D4:\n" - "\tbl sub_803CB14\n" - "\tb _0803C848\n" - "_0803C7DA:\n" - "\tbl sub_803CB5C\n" - "\tb _0803C848\n" - "_0803C7E0:\n" - "\tbl sub_803CB7C\n" - "\tb _0803C848\n" - "_0803C7E6:\n" - "\tbl sub_803CBB0\n" - "\tb _0803C848\n" - "_0803C7EC:\n" - "\tbl sub_803CBE4\n" - "\tb _0803C848\n" - "_0803C7F2:\n" - "\tbl Random\n" - "\tldr r4, _0803C844\n" - "\tldr r1, [r4]\n" - "\tldr r1, [r1]\n" - "\tadds r5, r0, 0\n" - "\tmuls r5, r1\n" - "\tbl Random\n" - "\tbl sub_8094D28\n" - "\tmovs r1, 0\n" - "\tldr r0, [r4]\n" - "\tadds r2, r0, 0\n" - "\tadds r2, 0x44\n" - "_0803C810:\n" - "\tldm r2!, {r0}\n" - "\tadds r0, r1\n" - "\tadds r0, 0x3\n" - "\tmuls r5, r0\n" - "\tadds r1, 0x1\n" - "\tcmp r1, 0xC\n" - "\tble _0803C810\n" - "\tbl sub_8094E4C\n" - "\tadds r5, r0\n" - "\tmovs r0, 0x1\n" - "\tnegs r0, r0\n" - "\tcmp r5, r0\n" - "\tbne _0803C838\n" - "\tadds r4, r5, 0\n" - "_0803C82E:\n" - "\tbl sub_8094E4C\n" - "\tadds r5, r0\n" - "\tcmp r5, r4\n" - "\tbeq _0803C82E\n" - "_0803C838:\n" - "\tadds r0, r5, 0\n" - "\tbl sub_8011C40\n" - "\tmovs r0, 0x3\n" - "\tb _0803C84A\n" - "\t.align 2, 0\n" -"_0803C844: .4byte gUnknown_203B400\n" -"_0803C848:\n" - "\tmovs r0, 0\n" -"_0803C84A:\n" - "\tpop {r4,r5}\n" - "\tpop {r1}\n" - "\tbx r1"); -#endif - -} - void DeleteTestTracker(void) { sub_8001044(&gUnknown_203B400->unk4); MemoryFree(gUnknown_203B400); gUnknown_203B400 = NULL; } + +void GenerateNewQuestionOrGender(void) +{ + u8 category; + int counter; + int newQuestion; + + gUnknown_203B400->QuestionCounter++; + if (gUnknown_203B400->QuestionCounter > MAX_ASKED_QUESTIONS) { + // We've asked enough questions + sub_8014248(&gGenderText, 0, 0, &gGenderMenu, 0, 3, 0, 0, 257); + gUnknown_203B400->TestState = 3; + } + else + { + do { + // Generate new question number and make sure we haven't done it + newQuestion = RandomCapped(NUM_QUIZ_QUESTIONS); + gUnknown_203B400->currQuestionIndex = newQuestion; + } while (gUnknown_203B400->QuestionTracker[newQuestion] == 1); + + // Found one so let's get the category + category = gNatureQuestionTable[gUnknown_203B400->currQuestionIndex]; + + // Mark all of the questions in the category as used + for(counter = 0; counter < NUM_QUIZ_QUESTIONS; counter++){ + if (gNatureQuestionTable[counter] == category) + gUnknown_203B400->QuestionTracker[counter] = 1; + } + gUnknown_203B400->TestState = 1; + } +} + +void CallPromptNewQuestion(void) +{ + PromptNewQuestion(); + gUnknown_203B400->TestState = 2; +} + +NAKED +void UpdateNatureTotals(void) +{ + asm_unified( + "\tpush {r4-r6,lr}\n" + "\tsub sp, 0x4\n" + "\tmov r0, sp\n" + "\tbl sub_80144A4\n" + "\tcmp r0, 0\n" + "\tbne _0803C97C\n" + "\tldr r3, [sp]\n" + "\tcmp r3, 0x63\n" + "\tbne _0803C944\n" + "\tldr r0, _0803C940\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0x37\n" + "\tstr r0, [r1, 0x3C]\n" + "\tmovs r0, 0x1\n" + "\tb _0803C97A\n" + "\t.align 2, 0\n" +"_0803C940: .4byte gUnknown_203B400\n" +"_0803C944:\n" + "\tldr r1, _0803C984\n" + "\tldr r2, _0803C988\n" + "\tldr r0, [r2]\n" + "\tldr r0, [r0, 0x3C]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tldr r4, [r0, 0x8]\n" + "\tlsls r0, r3, 4\n" + "\tadds r4, r0\n" + "\tmovs r3, 0\n" + "\tadds r6, r2, 0\n" + "\tadds r5, r6, 0\n" +"_0803C95E:\n" + "\tldr r1, [r5]\n" + "\tlsls r0, r3, 2\n" + "\tadds r1, 0x44\n" + "\tadds r1, r0\n" + "\tadds r0, r4, r3\n" + "\tldrb r2, [r0]\n" + "\tldr r0, [r1]\n" + "\tadds r0, r2\n" + "\tstr r0, [r1]\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0xC\n" + "\tble _0803C95E\n" + "\tldr r1, [r6]\n" + "\tmovs r0, 0\n" +"_0803C97A:\n" + "\tstr r0, [r1, 0x34]\n" +"_0803C97C:\n" + "\tadd sp, 0x4\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0803C984: .4byte gPersonalityQuestionPointerTable\n" +"_0803C988: .4byte gUnknown_203B400" + ); +} + +void SetPlayerGender(void) +{ + + int gender; + + if (sub_80144A4(&gender) == 0) { + if (gender == MALE) { + gUnknown_203B400->playerGender = MALE; + gUnknown_203B46C->playerGender = MALE; + } + else + { + gUnknown_203B400->playerGender = FEMALE; + gUnknown_203B46C->playerGender = FEMALE; + } + sub_8099690(0); + gUnknown_203B400->TestState = 4; + } +} + +#ifdef NONMATCHING +void RevealPersonality(void) +{ + s32 currentNature; + s32 counter; + + gUnknown_203B400->playerNature = RandomCapped(NUM_PERSONALITIES); + currentNature = gUnknown_203B400->playerNature; + + // 2 Statements flip-flop but is functionaly equivalent + // Struct saving into register and intialize of the counter + for(counter = NUM_PERSONALITIES - 2; counter >= 0; counter--){ + currentNature = currentNature++; + + // Wraparound check + if (currentNature > NUM_PERSONALITIES - 1) { + currentNature = 0; + } + + if (gUnknown_203B400->NatureTotals[currentNature] > gUnknown_203B400->NatureTotals[gUnknown_203B400->playerNature]) { + gUnknown_203B400->playerNature = currentNature; + } + } + gUnknown_203B400->StarterID = gStarters[gUnknown_203B400->playerNature][gUnknown_203B400->playerGender]; + PrintPersonalityTypeDescription(); + gUnknown_203B400->TestState = 5; +} +#else +NAKED +void RevealPersonality(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmovs r0, 0xD\n" + "\tbl RandomCapped\n" + "\tldr r2, _0803CA4C\n" + "\tldr r1, [r2]\n" + "\tadds r1, 0x40\n" + "\tstrb r0, [r1]\n" + "\tldr r0, [r2]\n" + "\tadds r0, 0x40\n" + "\tldrb r3, [r0]\n" + "\tadds r7, r2, 0\n" + "\tmovs r5, 0xB\n" +"_0803C9F2:\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0xC\n" + "\tble _0803C9FA\n" + "\tmovs r3, 0\n" +"_0803C9FA:\n" + "\tldr r0, [r7]\n" + "\tlsls r2, r3, 2\n" + "\tadds r1, r0, 0\n" + "\tadds r1, 0x44\n" + "\tadds r2, r1, r2\n" + "\tadds r4, r0, 0\n" + "\tadds r4, 0x40\n" + "\tldrb r0, [r4]\n" + "\tlsls r0, 2\n" + "\tadds r1, r0\n" + "\tldr r2, [r2]\n" + "\tldr r0, [r1]\n" + "\tldr r6, _0803CA4C\n" + "\tcmp r2, r0\n" + "\tble _0803CA1A\n" + "\tstrb r3, [r4]\n" +"_0803CA1A:\n" + "\tsubs r5, 0x1\n" + "\tcmp r5, 0\n" + "\tbge _0803C9F2\n" + "\tldr r3, [r6]\n" + "\tldr r2, _0803CA50\n" + "\tadds r0, r3, 0\n" + "\tadds r0, 0xB0\n" + "\tldr r1, [r0]\n" + "\tlsls r1, 1\n" + "\tsubs r0, 0x70\n" + "\tldrb r0, [r0]\n" + "\tlsls r0, 2\n" + "\tadds r1, r0\n" + "\tadds r1, r2\n" + "\tldrh r0, [r1]\n" + "\tstrh r0, [r3, 0x8]\n" + "\tbl PrintPersonalityTypeDescription\n" + "\tldr r1, [r6]\n" + "\tmovs r0, 0x5\n" + "\tstr r0, [r1, 0x34]\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0803CA4C: .4byte gUnknown_203B400\n" +"_0803CA50: .4byte gStarters"); +} +#endif + +void RevealStarter(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + sub_80141B4(&gStarterReveal,0,0,0x101); + PersonalityTest_DisplayStarterSprite(); + gUnknown_203B400->TestState = 6; + } +} + +void sub_803CA8C(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + gUnknown_203B400->TestState = 7; + } +} + +void PromptPickPartner(void) +{ + sub_80141B4(&gPartnerPrompt, 0, 0, 0x301); + gUnknown_203B400->TestState = 8; +} + +void sub_803CAD4(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + gUnknown_203B400->TestState = 9; + } +} + +void CallCreatePartnerSelectionMenu(void) +{ + CreatePartnerSelectionMenu(gUnknown_203B400->StarterID); + gUnknown_203B400->TestState = 10; +} + +void PromptForPartnerNickname(void) +{ + u16 selectedPartner; + + selectedPartner = HandlePartnerSelectionInput(); + if (selectedPartner != 0xffff) + { + if(selectedPartner != 0xfffe) { + sub_803CE6C(); + gUnknown_203B400->PartnerID = selectedPartner; + sub_80141B4(&gPartnerNickPrompt, 0, 0, 0x301); + gUnknown_203B400->TestState = 11; + } + } +} + +void sub_803CB5C(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + gUnknown_203B400->TestState = 12; + } +} + +void sub_803CB7C(void) +{ + u32 uVar1; + s32 *iVar2; + + iVar2 = &gUnknown_203B400->unk20; + uVar1 = sub_808D994(gUnknown_203B400->PartnerID); + sub_80922F4(iVar2,uVar1); + sub_801602C(3, &gUnknown_203B400->unk20); + gUnknown_203B400->TestState = 13; +} + +void PrintEndIntroText(void) +{ + if (sub_8016080() != 0) { + sub_80160D8(); + sub_80141B4(&gEndIntroText, 0, 0, 0x301); + gUnknown_203B400->TestState = 14; + } +} + +void sub_803CBE4(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + gUnknown_203B400->TestState = 15; + } +} + +NAKED +void PromptNewQuestion(void) +{ + asm_unified( + "\tpush {lr}\n" + "\tsub sp, 0x14\n" + "\tldr r1, _0803CC38\n" + "\tldr r0, _0803CC3C\n" + "\tldr r0, [r0]\n" + "\tldr r0, [r0, 0x3C]\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldr r1, [r0]\n" + "\tldr r0, [r1]\n" + "\tldr r3, [r1, 0x4]\n" + "\tmovs r2, 0\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0x3\n" + "\tstr r1, [sp, 0x4]\n" + "\tstr r2, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tadds r1, 0xFE\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0\n" + "\tbl sub_8014248\n" + "\tadd sp, 0x14\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0803CC38: .4byte gPersonalityQuestionPointerTable\n" +"_0803CC3C: .4byte gUnknown_203B400" + ); +} + +void PrintPersonalityTypeDescription(void) +{ + sub_808D8BC(&gUnknown_202DF98,gUnknown_203B400->StarterID); + sub_80141B4(gPersonalityTypeDescriptionTable[gUnknown_203B400->playerNature],0, + 0,0x101); +} + +void PersonalityTest_DisplayStarterSprite(void) +{ + s32 starterID; + struct OpenedFile *faceFile; + int palleteIndex; + u8 *r6; + u32 faceIndex; + struct stack_PartnerSprite stackArray; + + starterID = gUnknown_203B400->StarterID; + sub_8006518(&stackArray); + stackArray.data = gUnknown_80F4244; + ResetUnusedInputStruct(); + sub_800641C(&stackArray, 1, 0); + sub_8008C54(1); + sub_80073B8(1); + faceFile = GetDialogueSpriteDataPtr(starterID); + r6 = ((struct FaceData *)(faceFile->data))->unk0[1 + EMOTION_HAPPY]; + faceIndex = EMOTION_HAPPY; + for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ + SetBGPaletteBufferColorArray(palleteIndex + 224, &((struct FaceData *)(faceFile->data))->unk0[faceIndex][palleteIndex << 2]); + } + sub_800836C(1, r6, 0xe); + CloseFile(faceFile); + sub_80073E0(1); +} + +#ifdef NONMATCHING +void CreatePartnerSelectionMenu(s16 starterID) +{ + s32 starterID_s32; + starterID_s32 = starterID; // force an asr shift.. does lsr without it + + sub_803CEAC(); // creates 203B404 + gUnknown_203B404->StarterID = starterID_s32; + gUnknown_203B404->unk4C = 0; + gUnknown_203B404->unk50 = &gUnknown_203B404->unk54; + + gUnknown_203B404->unk54[0] = gUnknown_80F4290; + gUnknown_203B404->unk54[1] = gUnknown_80F42A8; + gUnknown_203B404->unk54[2] = gUnknown_80F4278; + gUnknown_203B404->unk54[3] = gUnknown_80F4278; + + // TODO this is the problem area + //gUnknown_203B404->unk50[5] = (u32 *) &gUnknown_203B404->sub; // so weird but think they store the substruct + + gUnknown_203B404->sub.unkb4 = 1; + gUnknown_203B404->sub.unkb5 = 0; + gUnknown_203B404->sub.unkb6 = 6; + gUnknown_203B404->sub.unkb7 = 0; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B404->unk54, 1, 1); + sub_8013818(&gUnknown_203B404->unk18, GetValidPartners(), 0xA, gUnknown_203B404->unk4C); + RedrawPartnerSelectionMenu(); + PersonalityTest_DisplayPartnerSprite(); +} +#else +NAKED +void CreatePartnerSelectionMenu(s16 starterID) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tadds r4, r0, 0\n" + "\tlsls r4, 16\n" + "\tasrs r4, 16\n" + "\tbl sub_803CEAC\n" + "\tldr r5, _0803CDB0\n" + "\tldr r0, [r5]\n" + "\tmovs r3, 0\n" + "\tmovs r1, 0\n" + "\tstrh r4, [r0]\n" + "\tstr r1, [r0, 0x4C]\n" + "\tadds r1, r0, 0\n" + "\tadds r1, 0x54\n" + "\tstr r1, [r0, 0x50]\n" + "\tldr r0, _0803CDB4\n" + "\tldm r0!, {r2,r4,r6}\n" + "\tstm r1!, {r2,r4,r6}\n" + "\tldm r0!, {r2,r4,r7}\n" + "\tstm r1!, {r2,r4,r7}\n" + "\tldr r1, [r5]\n" + "\tadds r1, 0x6C\n" + "\tldr r0, _0803CDB8\n" + "\tldm r0!, {r2,r6,r7}\n" + "\tstm r1!, {r2,r6,r7}\n" + "\tldm r0!, {r4,r6,r7}\n" + "\tstm r1!, {r4,r6,r7}\n" + "\tldr r1, [r5]\n" + "\tldr r2, _0803CDBC\n" + "\tadds r1, 0x84\n" + "\tadds r0, r2, 0\n" + "\tldm r0!, {r4,r6,r7}\n" + "\tstm r1!, {r4,r6,r7}\n" + "\tldm r0!, {r4,r6,r7}\n" + "\tstm r1!, {r4,r6,r7}\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x9C\n" + "\tldm r2!, {r1,r4,r6}\n" + "\tstm r0!, {r1,r4,r6}\n" + "\tldm r2!, {r1,r4,r7}\n" + "\tstm r0!, {r1,r4,r7}\n" + "\tldr r0, [r5]\n" + "\tldr r1, [r0, 0x50]\n" + "\tadds r0, 0xB4\n" + "\tstr r0, [r1, 0x14]\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0xB5\n" + "\tstrb r3, [r0]\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0xB6\n" + "\tmovs r1, 0x6\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0xB7\n" + "\tstrb r3, [r0]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x54\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r4, [r5]\n" + "\tadds r4, 0x18\n" + "\tbl GetValidPartners\n" + "\tadds r1, r0, 0\n" + "\tldr r0, [r5]\n" + "\tldr r3, [r0, 0x4C]\n" + "\tadds r0, r4, 0\n" + "\tmovs r2, 0xA\n" + "\tbl sub_8013818\n" + "\tbl RedrawPartnerSelectionMenu\n" + "\tbl PersonalityTest_DisplayPartnerSprite\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0803CDB0: .4byte gUnknown_203B404\n" +"_0803CDB4: .4byte gUnknown_80F4290\n" +"_0803CDB8: .4byte gUnknown_80F42A8\n" +"_0803CDBC: .4byte gUnknown_80F4278"); +} + +#endif + +u16 HandlePartnerSelectionInput(void) +{ + s32 sVar1; + + sVar1 = gUnknown_203B404->currPartnerSelection; + gUnknown_203B404->unk16 = 0; + if (GetKeyPress(&gUnknown_203B404->unk18) == A_BUTTON) { + sub_80119D4(0); + return gUnknown_203B404->PartnerArray[gUnknown_203B404->currPartnerSelection]; + } + else { + if (sub_80138B8(&gUnknown_203B404->unk18, 1) != '\0') { + RedrawPartnerSelectionMenu(); + } + if (sVar1 != gUnknown_203B404->currPartnerSelection) { + PersonalityTest_DisplayPartnerSprite(); + } + if (gUnknown_203B404->unk16 != '\0') { + return 0xfffe; + } + else { + return 0xffff; + } + } +} + +void sub_803CE34(u8 param_1) +{ + gUnknown_203B404->numPartners = GetValidPartners(); + sub_8013984(&gUnknown_203B404->unk18); + RedrawPartnerSelectionMenu(); + PersonalityTest_DisplayPartnerSprite(); + if (param_1 != 0) { + AddMenuCursorSprite(&gUnknown_203B404->unk18); + } +} + +void sub_803CE6C() +{ + gUnknown_203B404->unk54[gUnknown_203B404->unk4C] = gUnknown_80F4278; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B404->unk54, 1, 1); + sub_803CECC(); // Free 203B404 +} + +void sub_803CEAC(void) +{ + gUnknown_203B404 = MemoryAlloc(sizeof(struct PersonalityStruct_203B404), 8); + nullsub_135(); +} + +void nullsub_135(void) +{ +} + + +void sub_803CECC(void) +{ + if(gUnknown_203B404 != NULL){ + nullsub_135(); + MemoryFree(gUnknown_203B404); + gUnknown_203B404 = NULL; + } +} diff --git a/src/pokemon.c b/src/pokemon.c index 1df05428..05a0dffb 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -8,7 +8,7 @@ extern struct FileArchive gSystemFileArchive; extern const char gUnknown_81075F4; extern struct OpenedFile *gMonsterParametersFile; extern u16 gLevelCurrentPokeId; -extern struct gPokemon gMonsterParameters; +extern struct gPokemon *gMonsterParameters; extern u64 gUnknown_8107544[]; extern u32 gUnknown_810697C; @@ -30,8 +30,7 @@ void LoadMonsterParameters(void) { gUnknown_203B45C = &gUnknown_202F400; gMonsterParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_81075F4, &gSystemFileArchive); - // TODO verify this... other parts imply this is an array - gMonsterParameters.species = gMonsterParametersFile->data; + gMonsterParameters = (struct gPokemon *)gMonsterParametersFile->data; gLevelCurrentPokeId = 0; }