help_system: sub_813B870

This commit is contained in:
PikalaxALT
2019-06-13 09:56:44 -04:00
parent 9a1408797c
commit 63b2153402
11 changed files with 185 additions and 805 deletions
-301
View File
@@ -5,307 +5,6 @@
.text
thumb_func_start sub_813B870
sub_813B870: @ 813B870
push {r4,r5,lr}
ldr r0, _0813B888 @ =gUnknown_203F178
ldrb r0, [r0, 0x15]
cmp r0, 0x8
bls _0813B87C
b _0813BB24
_0813B87C:
lsls r0, 2
ldr r1, _0813B88C @ =_0813B890
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813B888: .4byte gUnknown_203F178
_0813B88C: .4byte _0813B890
.align 2, 0
_0813B890:
.4byte _0813B8B4
.4byte _0813B968
.4byte _0813B994
.4byte _0813B9D8
.4byte _0813BA40
.4byte _0813BA78
.4byte _0813BAA0
.4byte _0813BAE0
.4byte _0813BB14
_0813B8B4:
ldr r1, _0813B904 @ =gUnknown_203F177
movs r0, 0
strb r0, [r1]
ldr r0, _0813B908 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0
bne _0813B900
ldr r2, _0813B90C @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _0813B8DA
ldr r0, _0813B910 @ =gUnknown_203F175
ldrb r0, [r0]
cmp r0, 0x1
beq _0813B900
_0813B8DA:
ldrh r1, [r2, 0x2E]
movs r0, 0xC0
lsls r0, 2
ands r0, r1
cmp r0, 0
bne _0813B8E8
b _0813BB24
_0813B8E8:
bl sub_812B45C
lsls r0, 24
cmp r0, 0
beq _0813B8FA
ldr r0, _0813B914 @ =gUnknown_3005ECC
ldrb r0, [r0]
cmp r0, 0
bne _0813B918
_0813B8FA:
movs r0, 0xFC
bl PlaySE
_0813B900:
movs r0, 0
b _0813BB28
.align 2, 0
_0813B904: .4byte gUnknown_203F177
_0813B908: .4byte gSaveBlock2Ptr
_0813B90C: .4byte gMain
_0813B910: .4byte gUnknown_203F175
_0813B914: .4byte gUnknown_3005ECC
_0813B918:
ldr r0, _0813B94C @ =gMPlayInfo_SE1
bl m4aMPlayStop
ldr r0, _0813B950 @ =gMPlayInfo_SE2
bl m4aMPlayStop
movs r0, 0xFA
bl PlaySE
ldr r0, _0813B954 @ =gUnknown_203F174
ldrb r0, [r0]
cmp r0, 0
bne _0813B93C
ldr r0, _0813B958 @ =gMPlayInfo_BGM
ldr r1, _0813B95C @ =0x0000ffff
movs r2, 0x80
bl m4aMPlayVolumeControl
_0813B93C:
bl sub_813BB38
ldr r1, _0813B960 @ =gUnknown_203F177
movs r0, 0x1
strb r0, [r1]
ldr r1, _0813B964 @ =gUnknown_203F178
movs r0, 0x1
b _0813BB22
.align 2, 0
_0813B94C: .4byte gMPlayInfo_SE1
_0813B950: .4byte gMPlayInfo_SE2
_0813B954: .4byte gUnknown_203F174
_0813B958: .4byte gMPlayInfo_BGM
_0813B95C: .4byte 0x0000ffff
_0813B960: .4byte gUnknown_203F177
_0813B964: .4byte gUnknown_203F178
_0813B968:
bl sub_813BBAC
bl sub_813BB74
bl sub_813BBC8
movs r1, 0xA0
lsls r1, 19
ldr r0, _0813B98C @ =gUnknown_8464128
ldrh r0, [r0, 0x1E]
strh r0, [r1]
movs r0, 0
movs r1, 0
bl SetGpuReg
ldr r1, _0813B990 @ =gUnknown_203F178
movs r0, 0x2
b _0813BB22
.align 2, 0
_0813B98C: .4byte gUnknown_8464128
_0813B990: .4byte gUnknown_203F178
_0813B994:
ldr r1, _0813B9C4 @ =0x0600c000
movs r2, 0x80
lsls r2, 7
movs r0, 0
movs r3, 0
bl RequestDma3Fill
ldr r0, _0813B9C8 @ =gUnknown_8464128
movs r1, 0xA0
lsls r1, 19
movs r2, 0x20
movs r3, 0
bl RequestDma3Copy
ldr r0, _0813B9CC @ =gUnknown_8464008
ldr r1, _0813B9D0 @ =gDecompressionBuffer + 0x3EE0
movs r2, 0x90
lsls r2, 1
movs r3, 0
bl RequestDma3Copy
ldr r1, _0813B9D4 @ =gUnknown_203F178
movs r0, 0x3
b _0813BB22
.align 2, 0
_0813B9C4: .4byte 0x0600c000
_0813B9C8: .4byte gUnknown_8464128
_0813B9CC: .4byte gUnknown_8464008
_0813B9D0: .4byte gDecompressionBuffer + 0x3EE0
_0813B9D4: .4byte gUnknown_203F178
_0813B9D8:
bl sub_813BCF4
bl sub_813C5D4
bl sub_813C5FC
ldr r0, _0813BA08 @ =gUnknown_841CB49
bl sub_813C454
movs r0, 0x1
bl sub_813BD14
bl sub_812B40C
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0813BA14
ldr r0, _0813BA0C @ =gUnknown_203F190
ldr r1, _0813BA10 @ =gUnknown_203F1AC
bl sub_812BC54
b _0813BA1C
.align 2, 0
_0813BA08: .4byte gUnknown_841CB49
_0813BA0C: .4byte gUnknown_203F190
_0813BA10: .4byte gUnknown_203F1AC
_0813BA14:
ldr r0, _0813BA34 @ =gUnknown_203F190
ldr r1, _0813BA38 @ =gUnknown_203F1AC
bl sub_812BCA8
_0813BA1C:
movs r0, 0x1
bl sub_813BE78
movs r0, 0x1
bl sub_813BF50
bl sub_813BC5C
ldr r1, _0813BA3C @ =gUnknown_203F178
movs r0, 0x4
b _0813BB22
.align 2, 0
_0813BA34: .4byte gUnknown_203F190
_0813BA38: .4byte gUnknown_203F1AC
_0813BA3C: .4byte gUnknown_203F178
_0813BA40:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
ldr r1, _0813BA70 @ =0x00001f0c
movs r0, 0x8
bl SetGpuReg
movs r1, 0x80
lsls r1, 1
movs r0, 0
bl SetGpuReg
ldr r1, _0813BA74 @ =gUnknown_203F178
movs r0, 0x5
b _0813BB22
.align 2, 0
_0813BA70: .4byte 0x00001f0c
_0813BA74: .4byte gUnknown_203F178
_0813BA78:
ldr r0, _0813BA94 @ =gUnknown_203F190
ldr r1, _0813BA98 @ =gUnknown_203F1AC
bl sub_812BB9C
lsls r0, 24
cmp r0, 0
bne _0813BB24
movs r0, 0xFB
bl PlaySE
ldr r1, _0813BA9C @ =gUnknown_203F178
movs r0, 0x6
b _0813BB22
.align 2, 0
_0813BA94: .4byte gUnknown_203F190
_0813BA98: .4byte gUnknown_203F1AC
_0813BA9C: .4byte gUnknown_203F178
_0813BAA0:
movs r0, 0
movs r1, 0
bl SetGpuReg
bl sub_813BC2C
movs r1, 0
ldr r5, _0813BAD0 @ =0x000001ff
movs r4, 0xA0
lsls r4, 19
ldr r0, _0813BAD4 @ =gUnknown_8464128
ldrh r2, [r0, 0x1E]
ldr r3, _0813BAD8 @ =0x05000200
_0813BABA:
adds r0, r1, r4
strh r2, [r0]
adds r0, r1, r3
strh r2, [r0]
adds r1, 0x2
cmp r1, r5
ble _0813BABA
ldr r1, _0813BADC @ =gUnknown_203F178
movs r0, 0x7
b _0813BB22
.align 2, 0
_0813BAD0: .4byte 0x000001ff
_0813BAD4: .4byte gUnknown_8464128
_0813BAD8: .4byte 0x05000200
_0813BADC: .4byte gUnknown_203F178
_0813BAE0:
ldr r0, _0813BB04 @ =gUnknown_203F174
ldrb r0, [r0]
cmp r0, 0
bne _0813BAF4
ldr r0, _0813BB08 @ =gMPlayInfo_BGM
ldr r1, _0813BB0C @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
_0813BAF4:
bl sub_813BC48
bl sub_813BBF4
ldr r1, _0813BB10 @ =gUnknown_203F178
movs r0, 0x8
b _0813BB22
.align 2, 0
_0813BB04: .4byte gUnknown_203F174
_0813BB08: .4byte gMPlayInfo_BGM
_0813BB0C: .4byte 0x0000ffff
_0813BB10: .4byte gUnknown_203F178
_0813BB14:
bl sub_813BBDC
ldr r1, _0813BB30 @ =gUnknown_203F177
movs r0, 0
strb r0, [r1]
ldr r1, _0813BB34 @ =gUnknown_203F178
movs r0, 0
_0813BB22:
strb r0, [r1, 0x15]
_0813BB24:
ldr r0, _0813BB34 @ =gUnknown_203F178
ldrb r0, [r0, 0x15]
_0813BB28:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0813BB30: .4byte gUnknown_203F177
_0813BB34: .4byte gUnknown_203F178
thumb_func_end sub_813B870
thumb_func_start sub_813BB38
sub_813BB38: @ 813BB38
ldr r2, _0813BB60 @ =gUnknown_203F178
+38 -24
View File
@@ -1913,76 +1913,90 @@ gUnknown_841B779:: @ 841B779
.include "data/text/teachy_tv.inc"
gUnknown_841CB3C:: @ 841CB3C
.incbin "baserom.gba", 0x41CB3C, 0x5
.string "BILL$"
gUnknown_841CB41:: @ 841CB41
.incbin "baserom.gba", 0x41CB41, 0x8
.string "SOMEONE$"
gUnknown_841CB49:: @ 841CB49
.incbin "baserom.gba", 0x41CB49, 0x5
.string "HELP$"
gUnknown_841CB4E:: @ 841CB4E
.incbin "baserom.gba", 0x41CB4E, 0x4
.string "{CLEAR_TO 8}$"
gUnknown_841CB52:: @ 841CB52
.incbin "baserom.gba", 0x41CB52, 0x8
.string " points$"
gUnknown_841CB5A:: @ 841CB5A
.incbin "baserom.gba", 0x41CB5A, 0x9
.string " time(s)$"
gUnknown_841CB63:: @ 841CB63
.incbin "baserom.gba", 0x41CB63, 0x46
.string "POKéMON JUMP RECORDS$"
.string "Jumps in a row:$"
.string "Best score:$"
.string "EXCELLENTS in a row:$"
gUnknown_841CBA9:: @ 841CBA9
.incbin "baserom.gba", 0x41CBA9, 0x21
.string "Awesome score! You've\n"
.string "won {UNKNOWN_F7 01} {UNKNOWN_F7 00}!$"
gUnknown_841CBCA:: @ 841CBCA
.incbin "baserom.gba", 0x41CBCA, 0x1A
.string "There's no room left now.$"
gUnknown_841CBE4:: @ 841CBE4
.incbin "baserom.gba", 0x41CBE4, 0x19
.string "You can't hold any more!$"
gUnknown_841CBFD:: @ 841CBFD
.incbin "baserom.gba", 0x41CBFD, 0x14
.string "Want to play again?$"
gUnknown_841CC11:: @ 841CC11
.incbin "baserom.gba", 0x41CC11, 0x31
.string "Somebody dropped out.\nThe link will be canceled.$"
gUnknown_841CC42:: @ 841CC42
.incbin "baserom.gba", 0x41CC42, 0x22
.string "SAVING\nDON'T TURN OFF THE POWER.$"
gUnknown_841CC64:: @ 841CC64
.incbin "baserom.gba", 0x41CC64, 0x9F
.string "Communication standby$"
.string "SAVING...\nDON'T TURN OFF THE POWER.$"
.string "DODRIO BERRY-PICKING RECORDS$"
.string "BERRIES picked:$"
.string "Best score:$"
.string "BERRIES picked in a row with\nfive players:$"
gUnknown_841CD03:: @ 841CD03
.incbin "baserom.gba", 0x41CD03, 0x22
.string "Announcing BERRY-PICKING results!$"
gUnknown_841CD25:: @ 841CD25
.incbin "baserom.gba", 0x41CD25, 0x1E
.string "10P 30P 50P {EXTRA 0xDD}50P$"
gUnknown_841CD43:: @ 841CD43
.incbin "baserom.gba", 0x41CD43, 0x15
.string "Announcing rankings!$"
gUnknown_841CD58:: @ 841CD58
.incbin "baserom.gba", 0x41CD58, 0x22
.string "Announcing prizes!$"
.string "1:$"
.string "2:$"
.string "3:$"
.string "4:$"
.string "5:$"
gUnknown_841CD7A:: @ 841CD7A
.incbin "baserom.gba", 0x41CD7A, 0x25
.string "The first-place winner gets\nthis {UNKNOWN_F7 00}!$"
gUnknown_841CD9F:: @ 841CD9F
.incbin "baserom.gba", 0x41CD9F, 0x1B
.string "You can't hold any more...$"
gUnknown_841CDBA:: @ 841CDBA
.incbin "baserom.gba", 0x41CDBA, 0x1D
.string "It filled its storage space.$"
gUnknown_841CDD7:: @ 841CDD7
.incbin "baserom.gba", 0x41CDD7, 0x14
.string "Want to play again?$"
gUnknown_841CDEB:: @ 841CDEB
.incbin "baserom.gba", 0x41CDEB, 0x31
.string "Somebody dropped out.\nThe link will be canceled.$"
gUnknown_841CE1C:: @ 841CE1C
.incbin "baserom.gba", 0x41CE1C, 0x8
.string " points$"
gUnknown_841CE24:: @ 841CE24
.incbin "baserom.gba", 0x41CE24, 0x1FC
-8
View File
@@ -1,8 +0,0 @@
.section .rodata
.align 2
gUnknown_8464008:: @ 8464008
.incbin "baserom.gba", 0x464008, 0x120
gUnknown_8464128:: @ 8464128
.incbin "baserom.gba", 0x464128, 0x20
Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

+5 -1
View File
@@ -252,6 +252,10 @@
#define SE_W063B 247
#define SE_CASHIER 248
#define SE_HELP_OPEN 250
#define SE_HELP_CLOSE 251
#define SE_HELP_PAGE 252
#define MUS_ME_ASA 256
#define MUS_FANFA1 257
#define MUS_FANFA4 258
@@ -480,4 +484,4 @@
#define BGM_BATTLE30 483
#define BGM_ROUTE_118 0x7FFF // What is this for?
#endif // GUARD_CONSTANTS_SONGS_H
#endif
+8 -2
View File
@@ -27,11 +27,15 @@ extern struct ListMenuItem gUnknown_203F1AC[];
extern bool8 gUnknown_3005ECC;
extern u8 gUnknown_203F175;
// help_system_812B1E0
void sub_812B1E0(u8);
void HelpSystem_SetSomeVariable2(u8);
bool8 sub_812B40C(void);
bool8 sub_812B45C(void);
void sub_812B478(void);
void sub_812B484(void);
void sub_812B4B8(void);
void HelpSystem_SetSomeVariable2(u8);
void sub_812B478(void);
bool8 sub_812BB9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BC54(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BC80(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BCA8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
@@ -42,6 +46,8 @@ bool8 sub_812BD98(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1
bool8 sub_812BE10(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BEEC(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
bool8 sub_812BF18(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
// help_system
void sub_813C64C(struct HelpSystemStruct_203F190 *, u8, u8);
void sub_813C4CC(const u8 *, u8, u8);
void sub_813BDA4(u8);
+5
View File
@@ -5,6 +5,11 @@
#include "gba/m4a_internal.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_SE3;
void m4aSoundVSync(void);
void m4aSoundVSyncOn(void);
-468
View File
@@ -1,468 +0,0 @@
#ifndef GUARD_SONGS_H
#define GUARD_SONGS_H
#include "global.h"
enum
{
/*0x00*/ SE_STOP,
/*0x01*/ SE_KAIFUKU,
/*0x02*/ SE_PC_LOGON,
/*0x03*/ SE_PC_OFF,
/*0x04*/ SE_PC_ON,
/*0x05*/ SE_SELECT,
/*0x06*/ SE_WIN_OPEN,
/*0x07*/ SE_WALL_HIT,
/*0x08*/ SE_DOOR,
/*0x09*/ SE_KAIDAN,
/*0x0A*/ SE_DANSA,
/*0x0B*/ SE_JITENSYA,
/*0x0C*/ SE_KOUKA_L, // Goggle told me Kouka means 'effectiveness' which makes sense, because
/*0x0D*/ SE_KOUKA_M, // those three sounds play whenever you use a move
/*0x0E*/ SE_KOUKA_H,
/*0x0F*/ SE_BOWA2,
/*0x10*/ SE_POKE_DEAD,
/*0x11*/ SE_NIGERU,
/*0x12*/ SE_JIDO_DOA,
/*0x13*/ SE_NAMINORI,
/*0x14*/ SE_BAN,
/*0x15*/ SE_PIN,
/*0x16*/ SE_BOO,
/*0x17*/ SE_BOWA,
/*0x18*/ SE_JYUNI,
/*0x19*/ SE_A,
/*0x1A*/ SE_I,
/*0x1B*/ SE_U,
/*0x1C*/ SE_E,
/*0x1D*/ SE_O,
/*0x1E*/ SE_N,
/*0x1F*/ SE_SEIKAI,
/*0x20*/ SE_HAZURE,
/*0x21*/ SE_EXP,
/*0x22*/ SE_JITE_PYOKO,
/*0x23*/ SE_MU_PACHI,
/*0x24*/ SE_TK_KASYA,
/*0x25*/ SE_FU_ZAKU,
/*0x26*/ SE_FU_ZAKU2,
/*0x27*/ SE_FU_ZUZUZU,
/*0x28*/ SE_RU_GASHIN,
/*0x29*/ SE_RU_GASYAN,
/*0x2A*/ SE_RU_BARI,
/*0x2B*/ SE_RU_HYUU,
/*0x2C*/ SE_KI_GASYAN,
/*0x2D*/ SE_TK_WARPIN,
/*0x2E*/ SE_TK_WARPOUT,
/*0x2F*/ SE_TU_SAA,
/*0x30*/ SE_HI_TURUN,
/*0x31*/ SE_TRACK_MOVE,
/*0x32*/ SE_TRACK_STOP,
/*0x33*/ SE_TRACK_HAIK,
/*0x34*/ SE_TRACK_DOOR,
/*0x35*/ SE_MOTER,
/*0x36*/ SE_CARD,
/*0x37*/ SE_SAVE,
/*0x38*/ SE_KON,
/*0x39*/ SE_KON2,
/*0x3A*/ SE_KON3,
/*0x3B*/ SE_KON4,
/*0x3C*/ SE_SUIKOMU,
/*0x3D*/ SE_NAGERU,
SE_TOY_C,
SE_TOY_D,
SE_TOY_E,
SE_TOY_F,
SE_TOY_G,
SE_TOY_A,
SE_TOY_B,
SE_TOY_C1,
SE_MIZU,
SE_HASHI,
SE_DAUGI,
SE_PINPON,
SE_FUUSEN1,
SE_FUUSEN2,
SE_FUUSEN3,
SE_TOY_KABE,
SE_TOY_DANGO,
SE_DOKU,
SE_ESUKA,
SE_T_AME,
SE_T_AME_E,
SE_T_OOAME,
SE_T_OOAME_E,
SE_T_KOAME,
SE_T_KOAME_E,
SE_T_KAMI,
SE_T_KAMI2,
SE_ELEBETA,
/*0x5A*/ SE_HINSI,
/*0x5B*/ SE_EXPMAX,
/*0x5C*/ SE_TAMAKORO,
/*0x5D*/ SE_TAMAKORO_E,
/*0x5E*/ SE_BASABASA,
/*0x5F*/ SE_REGI,
SE_C_GAJI,
SE_C_MAKU_U,
SE_C_MAKU_D,
SE_C_PASI,
SE_C_SYU,
SE_C_PIKON,
/*0x66*/ SE_REAPOKE,
/*0x67*/ SE_OP_BASYU,
/*0x68*/ SE_BT_START,
SE_DENDOU,
SE_JIHANKI,
SE_TAMA,
SE_Z_SCROLL,
/*0x6D*/ SE_Z_PAGE,
/*0x6E*/ SE_PN_ON,
/*0x6F*/ SE_PN_OFF,
/*0x70*/ SE_Z_SEARCH,
/*0x71*/ SE_TAMAGO,
/*0x72*/ SE_TB_START,
/*0x73*/ SE_TB_KON,
/*0x74*/ SE_TB_KARA,
/*0x75*/ SE_BIDORO,
/*0x76*/ SE_W085,
/*0x77*/ SE_W085B,
/*0x78*/ SE_W231,
/*0x79*/ SE_W171,
/*0x7A*/ SE_W233,
/*0x7B*/ SE_W233B,
/*0x7C*/ SE_W145,
/*0x7D*/ SE_W145B,
/*0x7E*/ SE_W145C,
/*0x7F*/ SE_W240,
/*0x80*/ SE_W015,
/*0x81*/ SE_W081,
/*0x82*/ SE_W081B,
/*0x83*/ SE_W088,
/*0x84*/ SE_W016,
/*0x85*/ SE_W016B,
/*0x86*/ SE_W003,
/*0x87*/ SE_W104,
/*0x88*/ SE_W013,
/*0x89*/ SE_W196,
/*0x8A*/ SE_W086,
/*0x8B*/ SE_W004,
/*0x8C*/ SE_W025,
/*0x8D*/ SE_W025B,
SE_W152,
SE_W026,
SE_W172,
SE_W172B,
SE_W053,
SE_W007,
SE_W092,
SE_W221,
SE_W221B,
SE_W052,
SE_W036,
SE_W059,
SE_W059B,
SE_W010,
SE_W011,
SE_W017,
SE_W019,
SE_W028,
SE_W013B,
SE_W044,
SE_W029,
SE_W057,
SE_W056,
SE_W250,
SE_W030,
SE_W039,
SE_W054,
SE_W077,
SE_W020,
SE_W082,
SE_W047,
SE_W195,
SE_W006,
SE_W091,
SE_W146,
SE_W120,
SE_W153,
SE_W071B,
SE_W071,
SE_W103,
/*0xB6*/ SE_W062,
/*0xB7*/ SE_W062B,
/*0xB8*/ SE_W048,
/*0xB9*/ SE_W187,
/*0xBA*/ SE_W118,
/*0xBB*/ SE_W155,
/*0xBC*/ SE_W122,
/*0xBD*/ SE_W060,
/*0xBE*/ SE_W185,
/*0xBF*/ SE_W014,
/*0xC0*/ SE_W043,
/*0xC1*/ SE_W207,
/*0xC2*/ SE_W207B,
/*0xC3*/ SE_W215,
/*0xC4*/ SE_W109,
/*0xC5*/ SE_W173,
/*0xC6*/ SE_W280,
/*0xC7*/ SE_W202,
/*0xC8*/ SE_W060B,
/*0xC9*/ SE_W076,
/*0xCA*/ SE_W080,
/*0xCB*/ SE_W100,
/*0xCC*/ SE_W107,
SE_W166,
SE_W129,
SE_W115,
SE_W112,
SE_W197,
SE_W199,
SE_W236,
SE_W204,
SE_W268,
SE_W070,
SE_W063,
SE_W127,
SE_W179,
SE_W151,
SE_W201,
SE_W161,
SE_W161B,
SE_W227,
SE_W227B,
SE_W226,
SE_W208,
SE_W213,
SE_W213B,
SE_W234,
SE_W260,
SE_W328,
SE_W320,
SE_W255,
SE_W291,
SE_W089,
SE_W239,
SE_W230,
SE_W281,
SE_W327,
SE_W287,
SE_W257,
SE_W253,
SE_W258,
SE_W322,
SE_W298,
SE_W287B,
SE_W114,
SE_W063B,
BGM_STOP = 349,
/*0x15E*/ BGM_TETSUJI,
/*0x15F*/ BGM_FIELD13,
/*0x160*/ BGM_KACHI22,
/*0x161*/ BGM_KACHI2,
/*0x162*/ BGM_KACHI3,
/*0x163*/ BGM_KACHI5,
/*0x164*/ BGM_PCC,
/*0x165*/ BGM_NIBI,
/*0x166*/ BGM_SUIKUN,
/*0x167*/ BGM_DOORO1,
/*0x168*/ BGM_DOORO_X1,
/*0x169*/ BGM_DOORO_X3,
/*0x16A*/ BGM_MACHI_S2,
/*0x16B*/ BGM_MACHI_S4,
/*0x16C*/ BGM_GIM,
/*0x16D*/ BGM_NAMINORI,
/*0x16E*/ BGM_DAN01,
/*0x16F*/ BGM_FANFA1,
/*0x170*/ BGM_ME_ASA,
/*0x171*/ BGM_ME_BACHI,
/*0x172*/ BGM_FANFA4,
/*0x173*/ BGM_FANFA5,
/*0x174*/ BGM_ME_WAZA,
/*0x175*/ BGM_BIJYUTU,
/*0x176*/ BGM_DOORO_X4,
/*0x177*/ BGM_FUNE_KAN,
/*0x178*/ BGM_ME_SHINKA,
/*0x179*/ BGM_SHINKA,
/*0x17A*/ BGM_ME_WASURE,
/*0x17B*/ BGM_SYOUJOEYE,
/*0x17C*/ BGM_BOYEYE,
/*0x17D*/ BGM_DAN02,
/*0x17E*/ BGM_MACHI_S3,
/*0x17F*/ BGM_ODAMAKI,
/*0x180*/ BGM_B_TOWER,
/*0x181*/ BGM_SWIMEYE,
/*0x182*/ BGM_DAN03,
/*0x183*/ BGM_ME_KINOMI,
/*0x184*/ BGM_ME_TAMA,
/*0x185*/ BGM_ME_B_BIG,
/*0x186*/ BGM_ME_B_SMALL,
/*0x187*/ BGM_ME_ZANNEN,
/*0x188*/ BGM_BD_TIME,
/*0x189*/ BGM_TEST1,
/*0x18A*/ BGM_TEST2,
/*0x18B*/ BGM_TEST3,
/*0x18C*/ BGM_TEST4,
/*0x18D*/ BGM_TEST,
/*0x18E*/ BGM_GOMACHI0,
/*0x18F*/ BGM_GOTOWN,
/*0x190*/ BGM_POKECEN,
/*0x191*/ BGM_NEXTROAD,
/*0x192*/ BGM_GRANROAD,
/*0x193*/ BGM_CYCLING,
/*0x194*/ BGM_FRIENDLY,
/*0x195*/ BGM_MISHIRO,
/*0x196*/ BGM_TOZAN,
/*0x197*/ BGM_GIRLEYE,
/*0x198*/ BGM_MINAMO,
/*0x199*/ BGM_ASHROAD,
/*0x19A*/ BGM_EVENT0,
/*0x19B*/ BGM_DEEPDEEP,
/*0x19C*/ BGM_KACHI1,
/*0x19D*/ BGM_TITLE3,
/*0x19E*/ BGM_DEMO1,
/*0x19F*/ BGM_GIRL_SUP,
/*0x1A0*/ BGM_HAGESHII,
/*0x1A1*/ BGM_KAKKOII,
/*0x1A2*/ BGM_KAZANBAI,
/*0x1A3*/ BGM_AQA_0,
/*0x1A4*/ BGM_TSURETEK,
/*0x1A5*/ BGM_BOY_SUP,
/*0x1A6*/ BGM_RAINBOW,
/*0x1A7*/ BGM_AYASII,
/*0x1A8*/ BGM_KACHI4,
/*0x1A9*/ BGM_ROPEWAY,
/*0x1AA*/ BGM_CASINO,
/*0x1AB*/ BGM_HIGHTOWN,
/*0x1AC*/ BGM_SAFARI,
BGM_C_ROAD,
BGM_AJITO,
BGM_M_BOAT,
BGM_M_DUNGON,
BGM_FINECITY,
BGM_MACHUPI,
BGM_P_SCHOOL,
BGM_DENDOU,
BGM_TONEKUSA,
BGM_MABOROSI,
BGM_CON_FAN,
BGM_CONTEST0,
BGM_MGM0,
BGM_T_BATTLE,
BGM_OOAME,
BGM_HIDERI,
BGM_RUNECITY,
BGM_CON_K,
BGM_EIKOU_R,
BGM_KARAKURI,
BGM_HUTAGO,
BGM_SITENNOU,
BGM_YAMA_EYE,
BGM_CONLOBBY,
BGM_INTER_V,
BGM_DAIGO,
BGM_THANKFOR,
BGM_END,
/*0x1C9*/ BGM_BATTLE_FRONTIER, // human-readable names start here because we don't know the actual filenames
BGM_BATTLE_ARENA,
BGM_ME_BATTLE_POINTS, // ME_ as in messagebox? Used for KINOMI (berries) and stuff above
BGM_ME_MATCH_CALL,
BGM_BATTLE_PYRAMID,
BGM_BATTLE_PYRAMID_SUMMIT,
BGM_BATTLE_PALACE,
BGM_FANFA_RAYQUAZA,
BGM_BATTLE_TOWER,
BGM_ME_BATTLE_SYMBOL,
BGM_BATTLE_DOME_TOURNAMENT,
BGM_BATTLE_PIKE,
BGM_BATTLE_FACTORY,
BGM_BATTLE_LEGENDARY,
BGM_BATTLE_FRONTIER_BRAIN,
BGM_BATTLE_MEW,
BGM_BATTLE_DOME, // end of the human-readable names
/*0x1DA*/ BGM_BATTLE27, // wild
BGM_BATTLE31, // aqua/magma grunt
BGM_BATTLE20, // trainer
BGM_BATTLE32, // gym leader
BGM_BATTLE33, // champion
BGM_BATTLE36, // regi
BGM_BATTLE34, // weather trio
BGM_BATTLE35, // rival
BGM_BATTLE38, // elite four
BGM_BATTLE30, // aqua/magma leader
/*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again!
BGM_FRLG_GAMECORNER,
BGM_FRLG_ROCKET_HIDEOUT,
BGM_FRLG_GYM,
BGM_FRLG_JIGGLYPUFF,
BGM_FRLG_OPENING,
BGM_FRLG_TITLE,
BGM_FRLG_CINNABAR_ISLAND,
BGM_FRLG_LAVENDER_TOWN,
BGM_FRLG_HEALING_TEST,
BGM_FRLG_BICYCLE,
BGM_FRLG_SUSPICIOUS_EYE,
BGM_FRLG_GIRL_EYE,
BGM_FRLG_BOY_EYE,
BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME,
BGM_FRLG_VIRIDIAN_FOREST,
BGM_FRLG_MT_MOON,
BGM_FRLG_POKEMON_MANSION,
BGM_FRLG_CREDITS,
BGM_FRLG_ROUTE_1,
BGM_FRLG_ROUTE_24,
BGM_FRLG_ROUTE_3,
BGM_FRLG_ROUTE_11,
BGM_FRLG_INDIGO_PLATEAU,
BGM_FRLG_BATTLE_LEADER,
BGM_FRLG_BATTLE_TRAINER,
BGM_FRLG_BATTLE_WILD_POKEMON,
BGM_FRLG_BATTLE_CHAMPION,
BGM_FRLG_PALLET_TOWN,
BGM_FRLG_OAK_LAB,
BGM_FRLG_PROF_OAK,
BGM_FRLG_POKEMON_CENTER,
BGM_FRLG_SS_ANNE,
BGM_FRLG_SURF,
BGM_FRLG_POKEMON_TOWER,
BGM_FRLG_SILPH,
BGM_FRLG_CERULEAN_CITY,
BGM_FRLG_CELADON_CITY,
BGM_FRLG_KACHI_TRAINER, // KACHI used in RS test - victory
BGM_FRLG_KACHI_WILD_POKEMON,
BGM_FRLG_KACHI_LEADER,
BGM_FRLG_VERMILION_CITY,
BGM_FRLG_VIRIDIAN_CITY,
BGM_FRLG_RIVAL,
BGM_FRLG_RIVAL_POSTBATTLE,
BGM_FRLG_ME_POKEDEX_EVAL,
BGM_FRLG_ME_KEYITEM,
BGM_FRLG_FANFA_POKEMON_CAUGHT,
BGM_FRLG_FANFA_TRAINERCARD_PHOTO,
BGM_FRLG_GAMEFREAK_LOGO,
BGM_FRLG_CAUGHT_POKEMON,
BGM_FRLG_GAME_EXPLANATION_START,
BGM_FRLG_GAME_EXPLANATION_MIDDLE,
BGM_FRLG_GAME_EXPLANATION_END,
BGM_FRLG_POKEMON_JUMP,
BGM_FRLG_UNION_ROOM,
BGM_FRLG_POKEMON_NETWORK_CENTER,
BGM_FRLG_MYSTERY_GIFT,
BGM_FRLG_DODRIO_BERRY_PICK,
BGM_FRLG_MT_EMBER,
BGM_FRLG_TEACHY_TV_EPISODE,
BGM_FRLG_SEVII_ISLANDS,
BGM_FRLG_TANOBY_RUINS,
BGM_FRLG_ISLAND_ONE,
BGM_FRLG_ISLAND_FOUR,
BGM_FRLG_ISLAND_SIX,
BGM_FRLG_FLUTE,
BGM_FRLG_BATTLE_DEOXYS,
BGM_FRLG_BATTLE_MEWTWO,
BGM_FRLG_BATTLE_LEGENDARY,
BGM_FRLG_LEADER_EYE,
BGM_FRLG_DEOXYS_EYE,
BGM_FRLG_TRAINER_TOWER,
BGM_FRLG_HALL_OF_FAME_PALLET_TOWN,
/*0x22E*/BGM_FRLG_TEACHY_TV,
};
#endif // GUARD_SONGS_H
+4
View File
@@ -142,4 +142,8 @@ extern const u8 gUnknown_841DFAC[];
extern const u8 gUnknown_841DFBE[];
extern const u8 gUnknown_841DFC9[];
// help_system
extern const u8 gUnknown_841CB49[];
extern const u8 gUnknown_841CB4E[];
#endif //GUARD_STRINGS_H
+1 -1
View File
@@ -428,7 +428,7 @@ SECTIONS {
data/menu_indicators.o(.rodata);
data/pokedex_area_markers.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
data/help_system.o(.rodata);
src/help_system.o(.rodata);
data/wild_pokemon_area.o(.rodata);
data/unk_text_util.o(.rodata);
data/berry_pouch.o(.rodata);
+124
View File
@@ -1,7 +1,14 @@
#include "global.h"
#include "decompress.h"
#include "gpu_regs.h"
#include "main.h"
#include "m4a.h"
#include "dma3.h"
#include "help_system.h"
#include "list_menu.h"
#include "sound.h"
#include "strings.h"
#include "constants/songs.h"
struct HelpSystemVideoState
{
@@ -16,6 +23,21 @@ struct HelpSystemVideoState
/*0x15*/ u8 state;
};
void sub_813BB38(void);
void sub_813BB74(void);
void sub_813BBAC(void);
void sub_813BBC8(void);
void sub_813BBDC(void);
void sub_813BCF4(void);
void sub_813BBF4(void);
void sub_813BD14(u8);
void sub_813BF50(u8);
void sub_813BC2C(void);
void sub_813BC48(void);
void sub_813BC5C(void);
void sub_813C454(const u8 * str);
void sub_813C5D4(void);
EWRAM_DATA u8 gUnknown_203B174[0x4000] = {0};
EWRAM_DATA u8 gUnknown_203F174 = 0;
EWRAM_DATA u8 gUnknown_203F175 = 0;
@@ -24,3 +46,105 @@ EWRAM_DATA u8 gUnknown_203F177 = 0;
EWRAM_DATA struct HelpSystemVideoState gUnknown_203F178 = {0};
EWRAM_DATA struct HelpSystemStruct_203F190 gUnknown_203F190 = {0};
EWRAM_DATA struct ListMenuItem gUnknown_203F1AC[52] = {0};
const u16 gUnknown_8464008[] = INCBIN_U16("graphics/help_system/unk_8464008.4bpp");
const u16 gUnknown_8464128[] = INCBIN_U16("graphics/help_system/unk_8464008.gbapal");
u8 sub_813B870(void)
{
s32 i;
switch (gUnknown_203F178.state)
{
case 0:
gUnknown_203F177 = 0;
if (gSaveBlock2Ptr->optionsButtonMode != OPTIONS_BUTTON_MODE_NORMAL)
return 0;
if (JOY_NEW(R_BUTTON) && gUnknown_203F175 == 1)
return 0;
if (JOY_NEW(L_BUTTON | R_BUTTON))
{
if (!sub_812B45C() || !gUnknown_3005ECC)
{
PlaySE(SE_HELP_PAGE);
return 0;
}
m4aMPlayStop(&gMPlayInfo_SE1);
m4aMPlayStop(&gMPlayInfo_SE2);
PlaySE(SE_HELP_OPEN);
if (!gUnknown_203F174)
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80);
sub_813BB38();
gUnknown_203F177 = 1;
gUnknown_203F178.state = 1;
}
break;
case 1:
sub_813BBAC();
sub_813BB74();
sub_813BBC8();
(*(vu16 *)PLTT) = gUnknown_8464128[15];
SetGpuReg(REG_OFFSET_DISPCNT, 0);
gUnknown_203F178.state = 2;
break;
case 2:
RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0);
RequestDma3Copy(gUnknown_8464128, (void *)PLTT, sizeof(gUnknown_8464128), 0);
RequestDma3Copy(gUnknown_8464008, gDecompressionBuffer + 0x3EE0, sizeof(gUnknown_8464008), 0);
gUnknown_203F178.state = 3;
break;
case 3:
sub_813BCF4();
sub_813C5D4();
sub_813C5FC();
sub_813C454(gUnknown_841CB49);
sub_813BD14(1);
if (sub_812B40C() == TRUE)
sub_812BC54(&gUnknown_203F190, gUnknown_203F1AC);
else
sub_812BCA8(&gUnknown_203F190, gUnknown_203F1AC);
sub_813BE78(1);
sub_813BF50(1);
sub_813BC5C();
gUnknown_203F178.state = 4;
break;
case 4:
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31));
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON);
gUnknown_203F178.state = 5;
break;
case 5:
if (!sub_812BB9C(&gUnknown_203F190, gUnknown_203F1AC))
{
PlaySE(SE_HELP_CLOSE);
gUnknown_203F178.state = 6;
}
break;
case 6:
SetGpuReg(REG_OFFSET_DISPCNT, 0);
sub_813BC2C();
for (i = 0; i < 0x200; i += 2)
{
*((vu16 *)(PLTT + 0x000 + i)) = gUnknown_8464128[15];
*((vu16 *)(PLTT + 0x200 + i)) = gUnknown_8464128[15];
}
gUnknown_203F178.state = 7;
break;
case 7:
if (!gUnknown_203F174)
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
sub_813BC48();
sub_813BBF4();
gUnknown_203F178.state = 8;
break;
case 8:
sub_813BBDC();
gUnknown_203F177 = 0;
gUnknown_203F178.state = 0;
break;
}
return gUnknown_203F178.state;
}