diff options
-rw-r--r-- | asm/fame_checker.s | 197 | ||||
-rw-r--r-- | charmap.txt | 7 | ||||
-rw-r--r-- | data/event_scripts.s | 7 | ||||
-rw-r--r-- | data/fame_checker.s | 34 | ||||
-rw-r--r-- | data/text/fame_checker.inc | 185 | ||||
-rw-r--r-- | include/global.h | 8 | ||||
-rw-r--r-- | include/new_menu_helpers.h | 1 | ||||
-rw-r--r-- | src/fame_checker.c | 44 |
8 files changed, 281 insertions, 202 deletions
diff --git a/asm/fame_checker.s b/asm/fame_checker.s index 80c8fa2a8..9cc4bf4ee 100644 --- a/asm/fame_checker.s +++ b/asm/fame_checker.s @@ -5,203 +5,6 @@ .text - thumb_func_start sub_812CC68 -sub_812CC68: @ 812CC68 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _0812CD18 @ =gTasks+0x8 - adds r6, r0, r1 - movs r0, 0xBB - bl PlaySE - ldr r2, _0812CD1C @ =gSprites - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - lsls r4, 24 - asrs r4, 24 - ldrh r1, [r0, 0x20] - adds r4, r1 - strh r4, [r0, 0x20] - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - lsls r5, 24 - asrs r5, 24 - ldrh r1, [r0, 0x22] - adds r5, r1 - strh r5, [r0, 0x22] - movs r4, 0 - ldr r5, _0812CD20 @ =gUnknown_203B0FC -_0812CCBE: - ldr r0, [r5] - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x1 - bl sub_812CEFC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _0812CCBE - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_812C990 - ldr r0, _0812CD20 @ =gUnknown_203B0FC - ldr r0, [r0] - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r0, 0x1D - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_812CEFC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812CD24 - adds r0, r7, 0 - bl sub_812CE04 - ldrb r0, [r6, 0x2] - bl sub_812DA14 - b _0812CD30 - .align 2, 0 -_0812CD18: .4byte gTasks+0x8 -_0812CD1C: .4byte gSprites -_0812CD20: .4byte gUnknown_203B0FC -_0812CD24: - ldr r0, _0812CD38 @ =gUnknown_3005EC8 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0812CD30 - bl sub_812DB10 -_0812CD30: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CD38: .4byte gUnknown_3005EC8 - thumb_func_end sub_812CC68 - - thumb_func_start sub_812CD3C -sub_812CD3C: @ 812CD3C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - bl sub_812E064 - lsls r0, 16 - lsrs r0, 16 - adds r6, r0, 0 - ldr r0, _0812CD7C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r7, _0812CD80 @ =gUnknown_203B0FC - ldr r0, [r7] - adds r0, 0xC - adds r0, r6 - ldrb r0, [r0] - lsls r0, 2 - adds r1, r0 - ldr r0, _0812CD84 @ =0x00003a54 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - lsrs r5, r0, 30 - cmp r5, 0x2 - beq _0812CD88 - bl sub_812CE9C - bl sub_812C990 - b _0812CDEE - .align 2, 0 -_0812CD7C: .4byte gSaveBlock1Ptr -_0812CD80: .4byte gUnknown_203B0FC -_0812CD84: .4byte 0x00003a54 -_0812CD88: - movs r0, 0xD0 - str r0, [sp] - movs r0, 0x20 - str r0, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x11 - movs r2, 0 - movs r3, 0 - bl FillWindowPixelRect - bl sub_812D6B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0812CDAC - movs r0, 0x10 - mov r8, r0 -_0812CDAC: - ldr r4, _0812CDFC @ =gStringVar4 - ldr r1, _0812CE00 @ =gUnknown_845F63C - ldr r0, [r7] - adds r0, 0xC - adds r0, r6 - ldrb r0, [r0] - add r0, r8 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80F78A8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - bl AddTextPrinterParametrized - movs r0, 0x2 - bl sub_812CEE0 -_0812CDEE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812CDFC: .4byte gStringVar4 -_0812CE00: .4byte gUnknown_845F63C - thumb_func_end sub_812CD3C - thumb_func_start sub_812CE04 sub_812CE04: @ 812CE04 push {r4-r6,lr} diff --git a/charmap.txt b/charmap.txt index f89919509..fc9cbc0a8 100644 --- a/charmap.txt +++ b/charmap.txt @@ -383,6 +383,11 @@ ENG = FC 16 PAUSE_MUSIC = FC 17 RESUME_MUSIC = FC 18 +@ font sizes + +SMALL = FC 06 00 +BIG = FC 06 04 + @ colors TRANSPARENT = 00 @@ -393,7 +398,7 @@ BLUE = 04 YELLOW = 05 CYAN = 06 MAGENTA = 07 -LIGHT_GREY = 08 +LIGHT_GRAY = 08 BLACK = 09 BLACK2 = 0A @ duplicate of black? SILVER = 0B diff --git a/data/event_scripts.s b/data/event_scripts.s index 6bfa500cc..4161c97d7 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -226,7 +226,12 @@ gUnknown_81A8DD8:: @ 81A8DD8 .incbin "baserom.gba", 0x1A8DD8, 0x25 gUnknown_81A8DFD:: @ 81A8DFD - .incbin "baserom.gba", 0x1A8DFD, 0xA072 + .incbin "baserom.gba", 0x1A8DFD, 0x738b + + .include "data/text/fame_checker.inc" + +gUnknown_81B0C45:: @ 0x81B0C45 + .incbin "baserom.gba", 0x1B0C45, 0x222A gUnknown_81B2E6F:: @ 81B2E6F .incbin "baserom.gba", 0x1B2E6F, 0x15A diff --git a/data/fame_checker.s b/data/fame_checker.s index 037891818..7f58fde76 100644 --- a/data/fame_checker.s +++ b/data/fame_checker.s @@ -40,8 +40,40 @@ gUnknown_845F60C:: @ 845F60C gUnknown_845F61C:: @ 845F61C .incbin "baserom.gba", 0x45F61C, 0x20 + gUnknown_845F63C:: @ 845F63C - .incbin "baserom.gba", 0x45F63C, 0x80 + .4byte gUnknown_81B0188 + .4byte gUnknown_81B0251 + .4byte gUnknown_81B030F + .4byte gUnknown_81B03B3 + .4byte gUnknown_81B0446 + .4byte gUnknown_81B0504 + .4byte gUnknown_81B05C2 + .4byte gUnknown_81B0667 + .4byte gUnknown_81B06FB + .4byte gUnknown_81B079F + .4byte gUnknown_81B0845 + .4byte gUnknown_81B08EE + .4byte gUnknown_81B097F + .4byte gUnknown_81B0A45 + .4byte gUnknown_81B0AFF + .4byte gUnknown_81B0BA6 + .4byte gUnknown_81B0198 + .4byte gUnknown_81B025D + .4byte gUnknown_81B031B + .4byte gUnknown_81B03BF + .4byte gUnknown_81B0456 + .4byte gUnknown_81B0510 + .4byte gUnknown_81B05CD + .4byte gUnknown_81B0675 + .4byte gUnknown_81B0708 + .4byte gUnknown_81B07AD + .4byte gUnknown_81B0851 + .4byte gUnknown_81B08FB + .4byte gUnknown_81B098B + .4byte gUnknown_81B0A50 + .4byte gUnknown_81B0B0E + .4byte gUnknown_81B0BB5 gUnknown_845F6BC:: @ 845F6BC .incbin "baserom.gba", 0x45F6BC, 0x180 diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc new file mode 100644 index 000000000..4462ce62f --- /dev/null +++ b/data/text/fame_checker.inc @@ -0,0 +1,185 @@ +gUnknown_81B0188:: @ 0x81B0188 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}PROF. OAK$" + +gUnknown_81B0198:: @ 0x81B0198 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: PROF. OAK\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Why do POKéMON compete and battle\n" + .string "so hard for you?\p" + .string "They do so because they can see\n" + .string "the love and trust you have\l" + .string "towards POKéMON.\p" + .string "Never forget that.$" + +gUnknown_81B0251:: @ 0x81B0251 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}DAISY$" + +gUnknown_81B025D:: @ 0x81B025D + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: DAISY\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}While I was comfortably enjoying\n" + .string "my tea breaks, you’ve grown very\l" + .string "skilled and powerful.\p" + .string "I hope you’ll remain a good rival\n" + .string "to my little brother.$" + +gUnknown_81B030F:: @ 0x81B030F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BROCK$" + +gUnknown_81B031B:: @ 0x81B031B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BROCK\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}In this big world of ours, there\n" + .string "must be many tough TRAINERS.\p" + .string "Let’s both keep training and\n" + .string "making ourselves stronger!$" + +gUnknown_81B03B3:: @ 0x81B03B3 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MISTY$" + +gUnknown_81B03BF:: @ 0x81B03BF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MISTY\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I’m going to keep training here at\n" + .string "this GYM.\p" + .string "When I get better, I’d love to hit\n" + .string "the road and travel.$" + +gUnknown_81B0446:: @ 0x81B0446 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LT. SURGE$" + +gUnknown_81B0456:: @ 0x81B0456 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LT. SURGE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, kid!\n" + .string "You electrified me in our battle!\p" + .string "I didn’t know that there were\n" + .string "gutsy TRAINERS like you.\p" + .string "It made me change my mind about\n" + .string "you!$" + +gUnknown_81B0504:: @ 0x81B0504 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}ERIKA$" + +gUnknown_81B0510:: @ 0x81B0510 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: ERIKA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I am so glad that there are strong\n" + .string "TRAINERS like you.\p" + .string "That awareness alone inspires and\n" + .string "motivates me to try harder.\p" + .string "Please visit me again.\n" + .string "Zzz…$" + +gUnknown_81B05C2:: @ 0x81B05C2 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}KOGA$" + +gUnknown_81B05CD:: @ 0x81B05CD + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: KOGA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}You and I, we must both set our\n" + .string "sights higher and work towards\l" + .string "meeting our challenges.\p" + .string "Now, I must go train my daughter.$" + +gUnknown_81B0667:: @ 0x81B0667 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}SABRINA$" + +gUnknown_81B0675:: @ 0x81B0675 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: SABRINA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}The love you have towards your\n" + .string "POKéMON…\p" + .string "It was a power that was never\n" + .string "bested by my psychic power.$" + +gUnknown_81B06FB:: @ 0x81B06FB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BLAINE$" + +gUnknown_81B0708:: @ 0x81B0708 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BLAINE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}My fire POKéMON!\n" + .string "They’ll become even more powerful!\p" + .string "And now, a quiz. How many kinds of\n" + .string "FIRE-type POKéMON are there?$" + +gUnknown_81B079F:: @ 0x81B079F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LORELEI$" + +gUnknown_81B07AD:: @ 0x81B07AD + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LORELEI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}I needed to thank you for your\n" + .string "help.\p" + .string "But that has nothing to do with our\n" + .string "battles.\p" + .string "You’d better watch out next time!$" + +gUnknown_81B0845:: @ 0x81B0845 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BRUNO$" + +gUnknown_81B0851:: @ 0x81B0851 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BRUNO\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}The super power of your POKéMON\n" + .string "and you I’ve experienced myself.\p" + .string "Next time, maybe I should show you\n" + .string "how to train yourself.$" + +gUnknown_81B08EE:: @ 0x81B08EE + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}AGATHA$" + +gUnknown_81B08FB:: @ 0x81B08FB + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: AGATHA\n" + .string "To: {PLAYER}\p" + .string "{SIZE 05}{COLOR RED}{SHADOW GREEN}When you grow older, don’t you\n" + .string "dare go soft like that coot OAK!\p" + .string "Be like me and keep battling on!$" + +gUnknown_81B097F:: @ 0x81B097F + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}LANCE$" + +gUnknown_81B098B:: @ 0x81B098B + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: LANCE\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}I’m considering going back to my\n" + .string "hometown.\p" + .string "I want to retrain my DRAGON-type\n" + .string "POKéMON and strengthen them.\p" + .string "I’d like to invite you to my\n" + .string "hometown one day.$" + +gUnknown_81B0A45:: @ 0x81B0A45 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}BILL$" + +gUnknown_81B0A50:: @ 0x81B0A50 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: BILL\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Hey, there! CELIO had nothing but\n" + .string "praise for you.\p" + .string "Hearing that makes me happy.\p" + .string "When you catch some rare POKéMON,\n" + .string "come show me, okay? Promise!$" + +gUnknown_81B0AFF:: @ 0x81B0AFF + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}MR. FUJI$" + +gUnknown_81B0B0E:: @ 0x81B0B0E + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: MR. FUJI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}Instead of hoping for the happiness\n" + .string "of just your POKéMON…\p" + .string "…Can I get you to wish for the\n" + .string "happiness of all POKéMON?$" + +gUnknown_81B0BA6:: @ 0x81B0BA6 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}GIOVANNI$" + +gUnknown_81B0BB5:: @ 0x81B0BB5 + .string "{COLOR LIGHT_GRAY}{SHADOW BLACK}From: GIOVANNI\n" + .string "To: {PLAYER}\p" + .string "{SIZE 04}{COLOR RED}{SHADOW GREEN}There is nothing that I wish to say\n" + .string "to you.\p" + .string "I will concentrate solely on\n" + .string "bettering myself, and none other.$" diff --git a/include/global.h b/include/global.h index 3dc11bfbd..568ece2be 100644 --- a/include/global.h +++ b/include/global.h @@ -570,6 +570,11 @@ struct QuestLog /*0x0668*/ u16 end[0]; }; +struct FameCheckerSaveData +{ + /*3a54*/ u8 unk_0_0:2; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 288 // 300 @@ -634,7 +639,8 @@ struct SaveBlock1 /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; /*0x3A48*/ u8 filler_3a48[4]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; - /*0x3A54*/ u8 filler3A54[0x2E4]; + /*0x3A54*/ struct FameCheckerSaveData fameChecker[17]; + /*0x3A98*/ u8 filler3A94[0x2A0]; u32 unkArray[4][3]; }; diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 639395941..432d06c81 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -16,5 +16,6 @@ void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); u8 GetPlayerTextSpeed(void); void sub_80F6F54(u8, u8); +u8 sub_80F78A8(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/fame_checker.c b/src/fame_checker.c index e83eaa301..70fad0094 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -14,6 +14,7 @@ #include "sound.h" #include "text.h" #include "window.h" +#include "string_util.h" #include "text_window.h" struct FameCheckerData @@ -65,7 +66,7 @@ void sub_812CE04(u8 taskId); void sub_812CE9C(void); void sub_812CEC0(void); void sub_812CEE0(u8 windowId); -void sub_812CEFC(u8 taskId, u8 a1); +bool8 sub_812CEFC(u8 taskId, u8 a1); void sub_812CF3C(u8 taskId); void sub_812D0F4(u8 a0); void sub_812D1A8(u8 a0); @@ -93,6 +94,7 @@ void sub_812E4A4(u8 a0); extern const u8 gUnknown_84181E4[]; extern const u16 gUnknown_845C600[]; +extern const u8 *const gUnknown_845F63C[]; extern const struct BgTemplate gUnknown_845FBF4[4]; extern const struct SpriteSheet gUnknown_845FB9C[]; extern const struct SpritePalette gUnknown_845FBDC[]; @@ -417,3 +419,43 @@ void sub_812CAD8(u8 taskId) } } } + +void sub_812CC68(u8 taskId, s8 dx, s8 dy) +{ + u8 i; + s16 *data = gTasks[taskId].data; + PlaySE(SE_W155); + gSprites[data[0]].pos1.x += dx; + gSprites[data[0]].pos1.y += dy; + for (i = 0; i < 6; i++) + sub_812CEFC(gUnknown_203B0FC->unk_1D[i], 1); + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + sub_812C990(); + if (sub_812CEFC(gUnknown_203B0FC->unk_1D[data[1]], 0) == TRUE) + { + sub_812CE04(taskId); + sub_812DA14(data[1]); + } + else if (gUnknown_3005EC8 != 0xFF) + sub_812DB10(); +} + +void sub_812CD3C(void) +{ + u8 r8 = 0; + u16 r6 = sub_812E064(); + if (gSaveBlock1Ptr->fameChecker[gUnknown_203B0FC->unk_0C[r6]].unk_0_0 != 2) + { + sub_812CE9C(); + sub_812C990(); + } + else + { + FillWindowPixelRect(2, 0x11, 0, 0, 0xd0, 0x20); + if (sub_812D6B4() == TRUE) + r8 = 16; + StringExpandPlaceholders(gStringVar4, gUnknown_845F63C[gUnknown_203B0FC->unk_0C[r6] + r8]); + AddTextPrinterParametrized(2, 2, gStringVar4, sub_80F78A8(), 0, 2, 1, 3); + sub_812CEE0(2); + } +} |