Merge pull request #156 from Kermalis/kermalis-cleanup-i-guess

Kermalis huge refactor #1
This commit is contained in:
Seth Barberee
2023-09-09 21:51:11 -07:00
committed by GitHub
385 changed files with 20873 additions and 21198 deletions

View File

@@ -124,10 +124,6 @@ $(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
# Stack size in sub_801A9E0 is funky with an unused var
$(C_BUILDDIR)/kecleon_bros.o: CC1FLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
#### Main Rules ####

View File

@@ -417,6 +417,9 @@ _08002A68:
bx r1
thumb_func_end sub_8002984
@ https://decomp.me/scratch/HXC9z
@ https://decomp.me/scratch/BWmWQ
@ https://decomp.me/scratch/QfX03
thumb_func_start sub_8002A70
sub_8002A70:
push {r4,lr}
@@ -491,6 +494,8 @@ _08002AFC:
bx r1
thumb_func_end sub_8002A70
@ https://decomp.me/scratch/oCt37
@ https://decomp.me/scratch/ZTHtV [Probably the correct one]
thumb_func_start sub_8002B04
sub_8002B04:
push {lr}

File diff suppressed because it is too large Load Diff

View File

@@ -2923,7 +2923,7 @@ sub_800F204:
thumb_func_end sub_800F204
thumb_func_start GetDungeonPokemonSprite
@ struct DungeonPokemonSprite *GetDungeonPokemonSprite(int id)
@ DungeonPokemonSprite *GetDungeonPokemonSprite(int id)
GetDungeonPokemonSprite:
push {r4,lr}
adds r4, r0, 0
@@ -2958,7 +2958,7 @@ _0800F240:
thumb_func_end GetDungeonPokemonSprite
thumb_func_start NewDungeonPokemonSprite
@ struct DungeonPokemonSprite *NewDungeonPokemonSprite(void)
@ DungeonPokemonSprite *NewDungeonPokemonSprite(void)
NewDungeonPokemonSprite:
push {lr}
movs r2, 0
@@ -3137,7 +3137,7 @@ _0800F35C:
thumb_func_end sub_800F2EC
thumb_func_start DrawStatusSprite
@ void DrawStatusSprite(?, int status, struct Position *pos, struct Position *pos_offset, struct Position *pos_screen, ?)
@ void DrawStatusSprite(?, int status, Position *pos, Position *pos_offset, Position *pos_screen, ?)
DrawStatusSprite:
push {r4-r7,lr}
mov r7, r8
@@ -3807,7 +3807,7 @@ _0800F8CC: .4byte gDungeonPokemonSprites
thumb_func_end sub_800F7D0
thumb_func_start AddPokemonDungeonSprite
@ void AddPokemonDungeonSprite(int id, short species, struct Position *pos, ?)
@ void AddPokemonDungeonSprite(int id, short species, Position *pos, ?)
AddPokemonDungeonSprite:
push {r4-r7,lr}
mov r7, r8

View File

@@ -7280,7 +7280,7 @@ _080561E0:
lsls r1, r2, 24
lsrs r1, 24
movs r2, 0
bl sub_8090DC4
bl BufferItemName
adds r0, r5, 0
mov r1, r8
bl SendMessage
@@ -7650,7 +7650,7 @@ _080564E4:
lsls r1, r2, 24
lsrs r1, 24
movs r2, 0
bl sub_8090DC4
bl BufferItemName
_080564F2:
mov r0, r8
ldrh r1, [r0, 0x2]

View File

@@ -360,7 +360,7 @@ _080844A4:
adds r1, r6
ldrb r1, [r1]
movs r2, 0
bl sub_8090DC4
bl BufferItemName
movs r3, 0
ldr r0, _0808450C
adds r6, r0, 0

View File

@@ -1,56 +0,0 @@
#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80869E4
sub_80869E4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
mov r9, r1
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r3, 24
asrs r6, r3, 24
ldr r0, [r7, 0x70]
adds r0, 0x46
movs r4, 0
ldrsb r4, [r0, r4]
cmp r4, r6
beq _08086A30
adds r5, r0, 0
_08086A08:
adds r0, r4, 0
adds r1, r6, 0
mov r2, r8
bl sub_8002A70
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x7
ands r0, r4
strb r0, [r5]
ldrb r1, [r5]
adds r0, r7, 0
bl sub_806CE68
mov r0, r9
movs r1, 0x46
bl sub_803E708
cmp r4, r6
bne _08086A08
_08086A30:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80869E4
.align 2,0

View File

@@ -6376,7 +6376,7 @@ _0809C2CA:
ldr r0, _0809C308
adds r1, r4, 0
movs r2, 0
bl sub_8090DC4
bl BufferItemName
adds r0, r5, 0
bl ShiftItemsDownFrom
ldr r0, [r6]

View File

@@ -279,6 +279,7 @@ _0800177A:
bx r1
thumb_func_end sub_8001658
@ https://decomp.me/scratch/xF3HH
thumb_func_start sub_8001784
sub_8001784:
push {r4,r5,lr}

1764
asm/file_system.s Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,105 +0,0 @@
#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_80926F8
sub_80926F8:
push {r4-r7,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r3, r0, 24
lsls r2, 24
lsrs r7, r2, 24
movs r5, 0
movs r2, 0
ldr r0, _08092780
mov r12, r0
cmp r2, r3
bge _08092724
ldr r1, _08092784
adds r2, r3, 0
_08092714:
movs r6, 0
ldrsh r0, [r1, r6]
adds r5, r0
adds r1, 0x8
subs r2, 0x1
cmp r2, 0
bne _08092714
adds r2, r3, 0
_08092724:
str r5, [r4, 0x8]
mov r1, r12
ldr r0, [r1]
adds r0, r2
ldrb r0, [r0]
strb r0, [r4, 0x4]
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _0809279C
movs r0, 0
strh r0, [r4, 0x2]
ldr r1, _08092784
lsls r0, r2, 3
adds r0, r1
ldrh r0, [r0]
strh r0, [r4]
movs r6, 0
ldrsh r0, [r4, r6]
cmp r0, 0
ble _080927A0
ldr r6, _08092788
adds r2, r0, 0
_08092752:
movs r0, 0x58
adds r1, r5, 0
muls r1, r0
ldr r0, [r6]
adds r3, r0, r1
ldrb r1, [r3]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08092792
ldrb r0, [r3, 0x2]
cmp r0, 0
bne _08092776
cmp r7, 0
bne _0809278C
ldrb r0, [r3, 0x4]
cmp r0, 0x41
bne _0809278C
_08092776:
ldrh r0, [r4]
subs r0, 0x1
strh r0, [r4]
b _08092792
.align 2, 0
_08092780: .4byte gFriendAreas
_08092784: .4byte gFriendAreaSettings
_08092788: .4byte gRecruitedPokemonRef
_0809278C:
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
_08092792:
subs r2, 0x1
adds r5, 0x1
cmp r2, 0
bne _08092752
b _080927A0
_0809279C:
strh r0, [r4, 0x2]
strh r0, [r4]
_080927A0:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80926F8
.align 2,0 @ Don't pad with nop

View File

@@ -3364,6 +3364,7 @@ nullsub_174:
bx lr
thumb_func_end nullsub_174
@ https://decomp.me/scratch/A63Io
thumb_func_start sub_80095E4
sub_80095E4:
push {lr}

View File

@@ -298,8 +298,10 @@ END_COLOR_TEXT_2 = 23 72 @ #r
WHITE = 30 @ 0
BLUE = 31 @ 1
RED = 32 @ 2
UNK_COLOR_2 = 02
BLACK = 33 @ 3
GREEN = 34 @ 4
UNK_COLOR_4 = 04
CYAN = 35 @ 5
CYAN_2 = 05
YELLOW = 36 @ 6

View File

@@ -1,105 +1,32 @@
.section .rodata
.string "pksdir0\0"
.align 2, 0
@ event_flag.c
.string "pksdir0\0"
.global gUnknown_80B690C
gUnknown_80B690C: @ 80B690C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x34, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x85, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x45, 0x01, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x9e, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x1b, 0x01, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x36, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00
.byte 0x18, 0x01, 0x00, 0x00
.byte 0x0a, 0x00, 0x00, 0x00
.byte 0x9b, 0x00, 0x00, 0x00
.byte 0x0b, 0x00, 0x00, 0x00
.byte 0x68, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00
.byte 0x0d, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00
.byte 0x0f, 0x00, 0x00, 0x00
.byte 0x15, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.align 2, 0
.global gUnknown_80B6D30
gUnknown_80B6D30:
.2byte 5, 7, 0, 0, 1, 0; .4byte gUnknown_80B6D88
.2byte 5, 7, 2, 0, 1, 0; .4byte gUnknown_80B6D80
.2byte 5, 7, 4, 0, 1, 0; .4byte gUnknown_80B6D78
.2byte 5, 7, 6, 0, 1, 0; .4byte gUnknown_80B6D70
.global gUnknown_80B6994
gUnknown_80B6994: @ 80B6994
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x9e, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x18, 0x01, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
gUnknown_80B6D70:
.string "LOCAL3\0"
.align 2, 0
.global gPMDBuildVersion
gPMDBuildVersion: @ 80B69BC
.string "PKDi ver 1.0 [Apr 28 2006] 16:37:54\0"
.align 2,0
gUnknown_80B6D78:
.string "LOCAL2\0"
.align 2, 0
.global titlen0_text
titlen0_text:
.string "titlen0\0"
.align 2,0
gUnknown_80B6D80:
.string "LOCAL1\0"
.align 2, 0
.global titlen1_text
titlen1_text:
.string "titlen1\0"
.align 2,0
.global titlen2_text
titlen2_text:
.string "titlen2\0"
.align 2,0
.global gLoadScreenBackgroundFileNames
gLoadScreenBackgroundFileNames: @ 80B69F8
.4byte titlen0_text
.4byte titlen1_text
.4byte titlen2_text
.global titlen0p_text
titlen0p_text:
.string "titlen0p\0"
.align 2,0
.global titlen1p_text
titlen1p_text:
.string "titlen1p\0"
.align 2,0
.global titlen2p_text
titlen2p_text:
.string "titlen2p\0"
.align 2,0
.global gLoadScreenBackgroundPaletteFileNames
gLoadScreenBackgroundPaletteFileNames: @ 80B6A28
.4byte titlen0p_text
.4byte titlen1p_text
.4byte titlen2p_text
#include "text/save.inc"
gUnknown_80B6D88:
.string "LOCAL0\0"
.align 2, 0
.global gUnknown_80B6D90
gUnknown_80B6D90: @ 80B6D90
@@ -546,7 +473,7 @@ gUnknown_80B71A0: @ 80B71A0
.global gUnknown_80B71E4
gUnknown_80B71E4: @ 80B71E4
@ struct unkEventStruct
@ [struct unkEventStruct]
.2byte 105, 1
.2byte 106, 2
.2byte 107, 3
@@ -656,7 +583,9 @@ gUnknown_80B7378: @ 80B7378
.global gUnknown_80B7388
gUnknown_80B7388: @ 80B7388
.string "1-1\0"
.string "pksdir0\0"
@ code.c
.string "pksdir0\0"
.global gUnknown_80B7394
gUnknown_80B7394: @ 80B7394
@@ -1070,18 +999,26 @@ gUnknown_80B7DF8:
.string "VERSION\0"
.align 2, 0
.string "pksdir0\0"
.string "pksdir0\0"
@ ???
.string "pksdir0\0"
@ ???
.string "pksdir0\0"
.fill 28, 1, 0
.string "pksdir0\0"
@ code_8002774.s
.string "pksdir0\0"
.fill 8, 1, 0
.global gUnknown_80B7E3C
gUnknown_80B7E3C: @ 80B7E3C
.4byte 0, 1, 1, 1, 1, 0, 1, -1, 0, -1, -1, -1, -1, 0, -1, 1
.string "pksdir0\0"
.string "pksdir0\0"
@ ???
.string "pksdir0\0"
@ memory.s
.string "pksdir0\0"
gUnknown_80B7E8C:
.string "../system/memory_locate.c\0"
@@ -1134,14 +1071,30 @@ gUnknown_80B7F88: @ 80B7F88
gLocalCreateErrorMessage: @ 80B7F94
.string "Memroy LocalCreate buffer %08x size can't locate\0" @ Spelling error is intentional
.align 2,0
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
@ code_80035F0
.string "pksdir0\0"
@ other_random
.string "pksdir0\0"
@ util
.string "pksdir0\0"
@ bg_palette_buffer
.string "pksdir0\0"
@ input
.string "pksdir0\0"
@ code_8004AA0
.string "pksdir0\0"
@ sprite
.string "pksdir0\0"
@ code_800558C.c
.string "pksdir0\0"
.global gUnknown_80B8008
gUnknown_80B8008: @ 80B8008
@@ -1800,8 +1753,13 @@ gUnknown_80B83EA: @ 80B83EA
.2byte 0x0000
.align 2, 0
.string "pksdir0\0"
.string "pksdir0\0"
@ text1.c ?
.string "pksdir0\0"
@ text1.c or text2.c (gKanjiA_file_string is used in text1.c but the rest in text2.c, and we get code changes for merging the files...)
.string "pksdir0\0"
.global gUnknown_80B853C
gUnknown_80B853C: @ 80B853C
.4byte 0x66666666
@@ -1955,7 +1913,9 @@ gUnknown_80B8868: @ 80B8868
.byte 0x00, 0x00, 0xf0, 0xff
.byte 0x00, 0x00, 0x00, 0xff
.byte 0x00, 0x00, 0x00, 0xf0
.string "pksdir0\0"
@ text.s
.string "pksdir0\0"
.align 2,0
.global gUnknown_80B88B0
@@ -1977,8 +1937,12 @@ gUnknown_80B88C0: @ 80B88C0
gUnknown_80B88CC: @ 80B88CC
.string "fontpal\0"
.align 2,0
.string "pksdir0\0"
.string "pksdir0\0"
@ code_8009804.s
.string "pksdir0\0"
@ file_system
.string "pksdir0\0"
.global gFastMod3Lookup
gFastMod3Lookup: @ 80B88E4
@@ -2162,306 +2126,4 @@ gUnknown_80B92E4: @ 80B92E4
.4byte 30, 30, 30, 30, 31, 31, 31, 31
.4byte 31, 31, 31, 31, 31, 31, 31, 31
.global gUnknown_80B96E4
gUnknown_80B96E4: @ 80B96E4
@ It's an array..
.4byte 0
.4byte 0
.4byte 45426
.4byte 71998
.4byte 90852
.4byte 105476
.4byte 117424
.4byte 127527
.4byte 136278
.4byte 143997
.4byte 150902
.4byte 157148
.4byte 162850
.4byte 168096
.4byte 172953
.4byte 177474
.4byte 181704
.4byte 185677
.4byte 189423
.4byte 192966
.4byte 196328
.4byte 199525
.4byte 202574
.4byte 205487
.4byte 208276
.4byte 210952
.4byte 213522
.4byte 215995
.4byte 218379
.4byte 220679
.4byte 222900
.4byte 225049
.4byte 227130
.4byte 229147
.4byte 231103
.4byte 233003
.4byte 234849
.4byte 236645
.4byte 238392
.4byte 240095
.4byte 241754
.4byte 243372
.4byte 244951
.4byte 246494
.4byte 248000
.4byte 249473
.4byte 250913
.4byte 252323
.4byte 253703
.4byte 255054
.4byte 256378
.4byte 257676
.4byte 258948
.4byte 260197
.4byte 261422
.4byte 262624
.4byte 263805
.4byte 264965
.4byte 266105
.4byte 267225
.4byte 268326
.4byte 269410
.4byte 270475
.4byte 271524
.4byte 272556
.4byte 273572
.4byte 274573
.4byte 275558
.4byte 276529
.4byte 277486
.4byte 278429
.4byte 279358
.4byte 280275
.4byte 281179
.4byte 282071
.4byte 282950
.4byte 283818
.4byte 284675
.4byte 285521
.4byte 286356
.4byte 287180
.4byte 287994
.4byte 288798
.4byte 289593
.4byte 290378
.4byte 291153
.4byte 291920
.4byte 292677
.4byte 293426
.4byte 294167
.4byte 294899
.4byte 295623
.4byte 296339
.4byte 297048
.4byte 297749
.4byte 298442
.4byte 299129
.4byte 299808
.4byte 300480
.4byte 301145
.4byte 301804
.4byte 302456
.4byte 303102
.4byte 303741
.4byte 304374
.4byte 305001
.4byte 305623
.4byte 306238
.4byte 306848
.4byte 307452
.4byte 308050
.4byte 308643
.4byte 309231
.4byte 309814
.4byte 310391
.4byte 310963
.4byte 311531
.4byte 312093
.4byte 312651
.4byte 313204
.4byte 313753
.4byte 314296
.4byte 314836
.4byte 315371
.4byte 315901
.4byte 316428
.4byte 316950
.4byte 317468
.4byte 317982
.4byte 318492
.4byte 318998
.4byte 319500
.4byte 319999
.4byte 320493
.4byte 320984
.4byte 321472
.4byte 321955
.4byte 322435
.4byte 322912
.4byte 323385
.4byte 323855
.4byte 324321
.4byte 324785
.4byte 325244
.4byte 325701
.4byte 326155
.4byte 326605
.4byte 327052
.4byte 327497
.4byte 327938
.4byte 328376
.4byte 328812
.4byte 329245
.4byte 329674
.4byte 330101
.4byte 330525
.4byte 330947
.4byte 331366
.4byte 331782
.4byte 332195
.4byte 332606
.4byte 333014
.4byte 333420
.4byte 333824
.4byte 334224
.4byte 334623
.4byte 335019
.4byte 335412
.4byte 335804
.4byte 336193
.4byte 336579
.4byte 336964
.4byte 337346
.4byte 337726
.4byte 338103
.4byte 338479
.4byte 338852
.4byte 339224
.4byte 339593
.4byte 339960
.4byte 340325
.4byte 340688
.4byte 341049
.4byte 341408
.4byte 341766
.4byte 342121
.4byte 342474
.4byte 342825
.4byte 343175
.4byte 343523
.4byte 343868
.4byte 344212
.4byte 344555
.4byte 344895
.4byte 345234
.4byte 345571
.4byte 345906
.4byte 346240
.4byte 346571
.4byte 346902
.4byte 347230
.4byte 347557
.4byte 347882
.4byte 348206
.4byte 348528
.4byte 348848
.4byte 349167
.4byte 349485
.4byte 349800
.4byte 350115
.4byte 350428
.4byte 350739
.4byte 351049
.4byte 351357
.4byte 351664
.4byte 351970
.4byte 352274
.4byte 352576
.4byte 352878
.4byte 353178
.4byte 353476
.4byte 353773
.4byte 354069
.4byte 354364
.4byte 354657
.4byte 354949
.4byte 355240
.4byte 355529
.4byte 355817
.4byte 356104
.4byte 356389
.4byte 356674
.4byte 356957
.4byte 357239
.4byte 357519
.4byte 357799
.4byte 358077
.4byte 358354
.4byte 358630
.4byte 358905
.4byte 359179
.4byte 359451
.4byte 359723
.4byte 359993
.4byte 360262
.4byte 360530
.4byte 360797
.4byte 361063
.4byte 361328
.4byte 361591
.4byte 361854
.4byte 362116
.4byte 362376
.4byte 362636
.4byte 362894
.4byte 363152
.4byte 363408
.4byte 363664
.4byte 363918
.4byte 364172
.4byte 364424
.4byte 364676
.4byte 364927
.4byte 365176
.4byte 365425
.4byte 365673
.4byte 365920
.4byte 366165
.4byte 366410
.4byte 366655
.4byte 366898
.4byte 367140
.4byte 367381
.4byte 367622
.4byte 367861
.4byte 368100
.4byte 368338
.4byte 368575
.4byte 368811
.4byte 369047
.4byte 369281
.4byte 369515
.4byte 369748
.4byte 369980
.4byte 370211
.4byte 370441
.4byte 370671
.4byte 370899
.4byte 371127
.4byte 371354
.4byte 371581
.4byte 371806
.4byte 372031
.4byte 372255
.4byte 372479
.4byte 372701
.4byte 372923
.4byte 373144
.4byte 373364
.4byte 373584
@ END file_system

View File

@@ -1,6 +1,14 @@
#define TILE_SIZE_2BPP 32
.section .rodata
@ ???
.align 2, 0
.string "pksdir0\0"
.align 2,0
@ main.c
.string "pksdir0\0"
.string "PKD ROM USER DATA 000000\0"
.global gUnknown_80B9BF1

File diff suppressed because it is too large Load Diff

365
data/data_80DBD98.s Normal file
View File

@@ -0,0 +1,365 @@
.section .rodata
@ code_801C620 #1
.align 2,0
.string "pksdir0\0"
.global gUnknown_80DBD98
gUnknown_80DBD98: @ 80DBD98
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBDB0
gUnknown_80DBDB0: @ 80DBDB0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBDC8
gUnknown_80DBDC8: @ 80DBDC8
.string "Switch\0"
@ code_801C620 #2
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBDD8
gUnknown_80DBDD8: @ 80DBDD8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBDF0
gUnknown_80DBDF0: @ 80DBDF0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x10, 0x00, 0x11, 0x00
.byte 0x13, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBE08
gUnknown_80DBE08: @ 80DBE08
.string "IQ Skills\0"
.align 2,0
.global gUnknown_80DBE14
gUnknown_80DBE14: @ 80DBE14
.byte 0x87, 0x42, 0x00, 0x00
.global gUnknown_80DBE18
gUnknown_80DBE18: @ 80DBE18
.byte 0x87, 0x40, 0x00, 0x00
.global gUnknown_80DBE1C
gUnknown_80DBE1C: @ 80DBE1C
.string "{ARG_MOVE_ITEM_0}{ARG_MOVE_ITEM_1}\0"
@ code_801C620 #3
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBE2C
gUnknown_80DBE2C: @ 80DBE2C
.string "{ARG_MOVE_ITEM_0}\0"
.align 2,0
.global gUnknown_80DBE30
gUnknown_80DBE30: @ 80DBE30
.string "{ARG_POKEMON_0}\0"
@ code_801C620 #4
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBE3C
gUnknown_80DBE3C: @ 80DBE3C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBE54
gUnknown_80DBE54: @ 80DBE54
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x10, 0x00, 0x0E, 0x00
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBE6C
gUnknown_80DBE6C: @ 80DBE6C
@ code_801C620 #5
.string "Storage\0"
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBE7C
gUnknown_80DBE7C: @ 80DBE7C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global UnkData_80DBE94
UnkData_80DBE94:
.byte 0x01, 0x00, 0x07, 0x00
.global gUnknown_80DBE98
gUnknown_80DBE98: @ 80DBE98
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x09, 0x00, 0x06, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.4byte UnkData_80DBE94
.global gUnknown_80DBEB0
gUnknown_80DBEB0: @ 80DBEB0
.byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x04, 0x00, 0x10, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x04, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gMenuItems
gMenuItems: @ 80DBF10
.string "Items\0"
.align 2,0
.global gMenuTeam
gMenuTeam: @ 80DBF18
.string "Team\0"
.align 2,0
.global gMenuJobList
gMenuJobList: @ 80DBF20
.string "Job List\0"
.align 2,0
.global gMenuOthers
gMenuOthers: @ 80DBF2C
.string "Others\0"
.align 2,0
.global gUnknown_80DBF34
gUnknown_80DBF34: @ 80DBF34
.byte 0x81, 0x48
.byte 0x81, 0x48
.byte 0x81, 0x48
.byte 0x00, 0x00
.global gUnknown_80DBF3C
gUnknown_80DBF3C: @ 80DBF3C
.string "%s {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} Pts.\0"
.align 2,0
.global gUnknown_80DBF4C
gUnknown_80DBF4C: @ 80DBF4C
.string "Money: {COLOR_1 CYAN}%d{END_COLOR_TEXT_1} {POKE}"
.align 2,0
.global gTeamRankBadgeFileName
gTeamRankBadgeFileName: @ 80DBF60
.string "tmrkpat\0"
@ code_801D760
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBF70
gUnknown_80DBF70: @ 80DBF70
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBF88
gUnknown_80DBF88: @ 80DBF88
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x18, 0x00, 0x11, 0x00
.byte 0x11, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DBFA0
gUnknown_80DBFA0: @ 80DBFA0
.string "Field\0"
@ options_menu #1
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DBFB0
gUnknown_80DBFB0: @ 80DBFB0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global UnkData_80DBFC8
UnkData_80DBFC8:
.byte 0x01, 0x00, 0x07, 0x00
.global gUnknown_80DBFCC
gUnknown_80DBFCC: @ 80DBFCC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x0A, 0x00, 0x06, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.4byte UnkData_80DBFC8
.global gOthers_MenuOption
gOthers_MenuOption: @ 80DBFE4
.string "Others\0"
.align 2,0
.global gUnknown_80DBFEC
gUnknown_80DBFEC: @ 80DBFEC
.string "Change settings?\0"
.align 2,0
.global gOthers_GameOptions
gOthers_GameOptions: @ 80DC000
.string "Game Options\0"
.align 2,0
.global gOthers_Hints
gOthers_Hints: @ 80DC010
.string "Hints\0"
@ options_menu #2
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC020
gUnknown_80DC020: @ 80DC020
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global UnkData_80DC038
UnkData_80DC038:
.byte 0x01, 0x00, 0x0a, 0x00
.global gUnknown_80DC03C
gUnknown_80DC03C: @ 80DC03C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x18, 0x00, 0x10, 0x00
.byte 0x12, 0x00, 0x00, 0x00
.4byte UnkData_80DC038
.global gWindowBGTitle
gWindowBGTitle: @ 80DC054
.string "Game Options\0"
.align 2,0
.global gUnknown_80DC064
gUnknown_80DC064: @ 80DC064
.string "Windows#=P.Blue#=x.Red#="
.byte 0xA0
.string ".Green\0"
.align 2,0
.global gWindowBGBlueString
gWindowBGBlueString: @ 80DC084
.string "Blue\0"
.align 2,0
.global gWindowBGRedString
gWindowBGRedString: @ 80DC08C
.string "Red\0"
.align 2,0
.global gWindowBGGreenString
gWindowBGGreenString: @ 80DC090
.string "Green\0"
@ hints_menu #1
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC0A0
gUnknown_80DC0A0: @ 80DC0A0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global Data_80DC0B8
Data_80DC0B8:
.byte 0x01, 0x00, 0x08, 0x00
.global gUnknown_80DC0BC
gUnknown_80DC0BC: @ 80DC0BC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x18, 0x00, 0x0E, 0x00
.byte 0x0E, 0x00, 0x00, 0x00
.4byte Data_80DC0B8
.global gUnknown_80DC0D4
gUnknown_80DC0D4: @ 80DC0D4
.string "Hints\0"
@ hints_menu #2
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC0E4
gUnknown_80DC0E4: @ 80DC0E4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC0FC
gUnknown_80DC0FC: @ 80DC0FC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x1a, 0x00, 0x10, 0x00
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00

103
data/data_80DC240.s Normal file
View File

@@ -0,0 +1,103 @@
.section .rodata
@ code_801EE10
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC240
gUnknown_80DC240: @ 80DC240
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global Data_80DC258
Data_80DC258:
.byte 0x01, 0x00, 0x0f, 0x00
.global gUnknown_80DC25C
gUnknown_80DC25C: @ 80DC25C
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x06, 0x00
.byte 0x00, 0x00
.byte 0x02, 0x00
.byte 0x02, 0x00
.byte 0x12, 0x00
.byte 0x08, 0x00
.byte 0x08, 0x00
.byte 0x00, 0x00
.4byte Data_80DC258
.global gUnknown_80DC274
gUnknown_80DC274: @ 80DC274
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x0f, 0x00
.byte 0x1a, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC28C
gUnknown_80DC28C: @ 80DC28C
.string "Moves: {COLOR_1 YELLOW}{ARG_POKEMON_0}{END_COLOR_TEXT_1} \0"
.align 2,0
.global gUnknown_80DC2A0
gUnknown_80DC2A0: @ 80DC2A0
.string "{ARG_MOVE_ITEM_0}\0"
@ code_801EE10_mid #1
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC2AC
gUnknown_80DC2AC: @ 80DC2AC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC2C4
gUnknown_80DC2C4: @ 80DC2C4
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x06, 0x00
.byte 0x00, 0x00
.byte 0x02, 0x00
.byte 0x02, 0x00
.byte 0x0f, 0x00
.byte 0x04, 0x00
.byte 0x06, 0x00
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x00, 0x00
.global gUnknown_80DC2DC
gUnknown_80DC2DC: @ 80DC2DC
.string "Moves Page: %d/%d \0"
.align 2,0
@ code_801EE10_mid #2
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC2F8
gUnknown_80DC2F8: @ 80DC2F8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC310
gUnknown_80DC310: @ 80DC310
.string "{ARG_POKEMON_0}\0"

413
data/data_80DC464.s Normal file
View File

@@ -0,0 +1,413 @@
.section .rodata
@ wigglytuff_shop1
.align 2,0
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC464
gUnknown_80DC464: @ 80DC464
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC47C
gUnknown_80DC47C: @ 80DC47C
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x06, 0x00
.byte 0x00, 0x00
.byte 0x02, 0x00
.byte 0x02, 0x00
.byte 0x11, 0x00
.byte 0x11, 0x00
.byte 0x11, 0x00
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x00, 0x00
.global gUnknown_80DC494
gUnknown_80DC494: @ 80DC494
.string "Friend Areas\0"
.align 2,0
.global gUnknown_80DC4A4
gUnknown_80DC4A4: @ 80DC4A4
.string "{COLOR_1 RED}%s{END_COLOR_TEXT_1}\0"
.align 2,0
.global gUnknown_80DC4AC
gUnknown_80DC4AC: @ 80DC4AC
.string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}\0"
.align 2,0
@ wigglytuff_shop2
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC4BC
gUnknown_80DC4BC: @ 80DC4BC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC4D4
gUnknown_80DC4D4: @ 80DC4D4
.byte 0x01, 0x00, 0x12, 0x00
.global gUnknown_80DC4D8
gUnknown_80DC4D8: @ 80DC4D8
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x06, 0x00
.byte 0x00, 0x00
.byte 0x02, 0x00
.byte 0x02, 0x00
.byte 0x1a, 0x00
.byte 0x11, 0x00
.byte 0x11, 0x00
.byte 0x00, 0x00
.4byte gUnknown_80DC4D4
.global gUnknown_80DC4F0
gUnknown_80DC4F0: @ 80DC4F0
.string "Inhabitants (Friends: {COLOR_2 CYAN}Light blue{END_COLOR_TEXT_2})\0"
.align 2,0
.global gUnknown_80DC518
gUnknown_80DC518: @ 80DC518
.string "Inhabitants\0"
.align 2,0
.global gUnknown_80DC524
gUnknown_80DC524: @ 80DC524
.string "{COLOR_2 CYAN}%s{END_COLOR_TEXT_2}\0"
.align 2,0
@ wigglytuff_shop3
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC534
gUnknown_80DC534: @ 80DC534
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC54C
gUnknown_80DC54C: @ 80DC54C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC564
gUnknown_80DC564: @ 80DC564
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x0e, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@ code_8023144
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC584
gUnknown_80DC584: @ 80DC584
.4byte Yes_80DC5A0
.byte 0x02, 0x00, 0x00, 0x00
.4byte No_80DC59C
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.global No_80DC59C
No_80DC59C:
.string "No\0"
.align 2,0
.global Yes_80DC5A0
Yes_80DC5A0:
.string "Yes\0"
.align 2,0
.global gUnknown_80DC5A4
gUnknown_80DC5A4: @ 80DC5A4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC5BC
gUnknown_80DC5BC: @ 80DC5BC
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC5D4
gUnknown_80DC5D4: @ 80DC5D4
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x0b, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC5EC
gUnknown_80DC5EC: @ 80DC5EC
.byte 0x81, 0x48
.byte 0x81, 0x48
.byte 0x81, 0x48
.byte 0x00, 0x00
.global gUnknown_80DC5F4
gUnknown_80DC5F4: @ 80DC5F4
.string "It doesn{APOSTROPHE}t appear to be hungry.\0"
.align 2,0
.global gUnknown_80DC618
gUnknown_80DC618: @ 80DC618
.string "{ARG_POKEMON_1} took the Gummi and ate it.\n"
.string "This Gummi looks like a big favorite!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0"
.align 2,0
.global gUnknown_80DC674
gUnknown_80DC674: @ 80DC674
.string "{ARG_POKEMON_1} took the Gummi and ate it.\n"
.string "This Gummi looks like a favorite!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0"
.align 2,0
.global gUnknown_80DC6CC
gUnknown_80DC6CC: @ 80DC6CC
.string "{ARG_POKEMON_1} took the Gummi and ate it.\n"
.string "It doesn{APOSTROPHE}t seem to dislike this Gummi.\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0"
.align 2,0
.global gUnknown_80DC728
gUnknown_80DC728: @ 80DC728
.string "{ARG_POKEMON_1} took the Gummi and ate it.\n"
.string "It appears to be just a little satisfied.\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s IQ went up!\0"
.align 2,0
.global gUnknown_80DC788
gUnknown_80DC788: @ 80DC788
.string "{ARG_POKEMON_1}{APOSTROPHE}s IQ helped it learn how to\n"
.string "use {ARG_MOVE_ITEM_1}!\0"
.align 2,0
.global gUnknown_80DC7B4
gUnknown_80DC7B4: @ 80DC7B4
.string "Yes! {ARG_POKEMON_1} grew explosively!\n"
.string "Attack{COMMA} Defense{COMMA} and so on rose by 1!\0"
.align 2,0
.global gUnknown_80DC7FC
gUnknown_80DC7FC: @ 80DC7FC
.string "Yes!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s Attack rose by 1!\0"
.align 2,0
.global gUnknown_80DC81C
gUnknown_80DC81C: @ 80DC81C
.string "Yes!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s Special Attack rose by 1!\0"
.align 2,0
.global gUnknown_80DC844
gUnknown_80DC844: @ 80DC844
.string "Yes!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s Defense rose by 1!\0"
.align 2,0
.global gUnknown_80DC864
gUnknown_80DC864: @ 80DC864
.string "Yes!\n"
.string "{ARG_POKEMON_1}{APOSTROPHE}s Special Defense rose by 1!\0"
.align 2,0
.global gUnknown_80DC88C
gUnknown_80DC88C: @ 80DC88C
.string "You don{APOSTROPHE}t have any Gummis.\0"
.align 2,0
.global gUnknown_80DC8AC
gUnknown_80DC8AC: @ 80DC8AC
.string "You don{APOSTROPHE}t have an item.\0"
.align 2,0
.global gUnknown_80DC8C8
gUnknown_80DC8C8: @ 80DC8C8
.string "The Gummi is gone!\0"
.align 2,0
.global gUnknown_80DC8DC
gUnknown_80DC8DC: @ 80DC8DC
.string "The item is gone!\0"
.align 2,0
.global gUnknown_80DC8F0
gUnknown_80DC8F0: @ 80DC8F0
.string "Give\0"
.align 2,0
.global gUnknown_80DC8F8
gUnknown_80DC8F8: @ 80DC8F8
.string "Use\0"
.align 2,0
@ code_8023144 #2
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC904
gUnknown_80DC904: @ 80DC904
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC91C
gUnknown_80DC91C: @ 80DC91C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x0f, 0x00, 0x0e, 0x00
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC934
gUnknown_80DC934: @ 80DC934
.string "Pokémon\0"
.align 2,0
.global gUnknown_80DC93C
gUnknown_80DC93C: @ 80DC93C
.string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0"
.align 2,0
@ code_801EE10_1
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC950
gUnknown_80DC950: @ 80DC950
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC968
gUnknown_80DC968: @ 80DC968
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x0f, 0x00, 0x0e, 0x00
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC980
gUnknown_80DC980: @ 80DC980
.string "Friends\0"
.global gUnknown_80DC988
gUnknown_80DC988: @ 80DC988
.string "Pokémon Friends\0"
.global gUnknown_80DC998
gUnknown_80DC998: @ 80DC998
.string "{COLOR_2}%c%s{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_80DC9A4
gUnknown_80DC9A4: @ 80DC9A4
.string "%s\0"
.align 2,0
@ code_801EE10_1 #2
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC9B0
gUnknown_80DC9B0: @ 80DC9B0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC9C8
gUnknown_80DC9C8: @ 80DC9C8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
.byte 0x12, 0x00, 0x0e, 0x00
.byte 0x12, 0x00, 0x02, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@ luminous_cave
.string "pksdir0\0"
.align 2,0
.global gUnknown_80DC9E8
gUnknown_80DC9E8: @ 80DC9E8
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DCA00
gUnknown_80DCA00: @ 80DCA00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x04, 0x00
.byte 0x06, 0x00, 0x03, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DCA18
gUnknown_80DCA18: @ 80DCA18
.string "Evolve\0"
.align 2,0
.4byte gUnknown_80DCA18
.global gUnknown_80DCA24
gUnknown_80DCA24: @ 80DCA24
.string "No\0"
.align 2,0
.4byte gUnknown_80DCA24
.global gUnknown_80DCA2C
gUnknown_80DCA2C: @ 80DCA2C
.string "Yes\0"
.align 2,0
.4byte gUnknown_80DCA2C

View File

@@ -1,30 +1,13 @@
.section .rodata
.global gUnknown_80F42D0
gUnknown_80F42D0: @ 80F42D0
@ replacing .incbin "baserom.gba", 0x000f42d0, 0x20
.byte 0x3f, 0x36, 0x37, 0x4e, 0x50, 0x52, 0x38, 0x39, 0x46, 0x30, 0x2b, 0x85, 0x53, 0x54, 0x58, 0x59, 0x34, 0x35, 0x4d, 0x43, 0x48, 0x4a, 0x2d, 0x4b, 0x31, 0x32, 0x21, 0xbe, 0x33, 0x51, 0xbd, 0x57
.global gUnknown_80F42F0
gUnknown_80F42F0: @ 80F42F0
@ replacing .incbin "baserom.gba", 0x000f42f0, 0x100
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0a, 0xff, 0x16, 0xff, 0xff, 0x09, 0x18, 0x19, 0x1c, 0x10, 0x11, 0x01, 0x02, 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
.byte 0xff, 0xff, 0xff, 0x13, 0xff, 0xff, 0x08, 0xff, 0x14, 0xff, 0x15, 0x17, 0xff, 0x12, 0x03, 0xff, 0x04, 0x1d, 0x05, 0x0c, 0x0d, 0xff, 0xff, 0x1f, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x1b, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2,0
@ code_803D110.s (probably part of code_803D0D8)
.global gUnknown_80F43F0
gUnknown_80F43F0: @ 80F43F0
@ replacing .incbin "baserom.gba", 0x000f43f0, 0x36
.byte 0x0d, 0x07, 0x19, 0x0f, 0x04, 0x1d, 0x2a, 0x31, 0x08, 0x13, 0x2d, 0x18, 0x0e, 0x1a, 0x1b, 0x29, 0x01, 0x20, 0x21, 0x22, 0x11, 0x33, 0x26, 0x00, 0x35, 0x0a, 0x2b, 0x1f, 0x12, 0x23, 0x2c, 0x17
.byte 0x27, 0x10, 0x1c, 0x30, 0x0b, 0x02, 0x24, 0x09, 0x32, 0x05, 0x28, 0x34, 0x2e, 0x03, 0x1e, 0x0c, 0x25, 0x14, 0x2f, 0x16, 0x06, 0x15
.global gUnknown_80F4426
gUnknown_80F4426: @ 80F4426
@ replacing .incbin "baserom.gba", 0x000f4426, 0x22
.byte 0x0c, 0x06, 0x13, 0x08, 0x04, 0x0d, 0x0f, 0x09, 0x10, 0x02, 0x14, 0x12, 0x00, 0x15, 0x0b, 0x05, 0x17, 0x03, 0x11, 0x0a, 0x01, 0x0e, 0x16, 0x07, 0x00, 0x00
.byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00

View File

@@ -1,55 +1,88 @@
.section .rodata
.string "pksdir0\0"
.string "pksdir0\0"
@ START code_80718D8
.global gUnknown_8107010
gUnknown_8107010: @ 8107010
.byte 0, 1, 1, 2, 1, 1, 0, 0
.global gUnknown_8107018
gUnknown_8107018: @ 8107018
@ replacing .incbin "baserom.gba", 0x107018, 0x160
.4byte gUnknown_810702C
.4byte gUnknown_8107028
.4byte gUnknown_8107024
.global gUnknown_8107024
gUnknown_8107024:
.byte 0x0a, 0x00, 0x00, 0x00
.global gUnknown_8107028
gUnknown_8107028:
.byte 0x23, 0x57, 0x0a, 0x00
.global gUnknown_810702C
gUnknown_810702C:
.byte 0x00, 0x00, 0x00, 0x00
.string "pksdir0\0"
@ END code_80718D8
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
@ START code_807CD9C
.global gUnknown_81070E8
gUnknown_81070E8:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
.byte 0xff, 0xff, 0x01, 0x00, 0x63, 0x00, 0x63, 0x00
.global gUnknown_8107110
gUnknown_8107110:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00
@@ -62,36 +95,52 @@ gUnknown_8107110:
.global gUnknown_8107178
gUnknown_8107178: @ 8107178
@ replacing .incbin "baserom.gba", 0x107178, 0x5C
.4byte gUnknown_81070E8
.4byte gUnknown_81070E8
.4byte gUnknown_8107110
.string "pksdir0\0"
@ END code_807CD9C
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_81071D4
gUnknown_81071D4: @ 81071D4
@ replacing .incbin "baserom.gba", 0x1071D4, 0xC
.byte 0x82, 0xe2, 0x82, 0xe6, 0x82, 0xa2, 0x97, 0x6c, 0x00, 0x00, 0x00, 0x00
.global gUnknown_81071E0
gUnknown_81071E0: @ 81071E0
@ replacing .incbin "baserom.gba", 0x1071E0, 0x44
.byte 0x82, 0xdd, 0x82, 0xb3, 0x82, 0xab, 0x97, 0x6c, 0x00, 0x00, 0x00, 0x00
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
@ START code_808417C #1
.byte 0x70, 0x6b, 0x73, 0x64
.byte 0x69, 0x72, 0x30, 0x00
@@ -101,9 +150,10 @@ gUnknown_8107224: @ 8107224
.byte 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00
.string "pksdir0\0"
@ END code_808417C #1
.global gUnknown_8107234
gUnknown_8107234: @ 8107234
@ replacing .incbin "baserom.gba", 0x107234, 0xE0
.byte 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00, 0x00, 0x02, 0x04, 0x02, 0x05, 0x03, 0x06, 0x00, 0x00
.byte 0x03, 0x07, 0x04, 0x08, 0x05, 0x09, 0x00, 0x00, 0x04, 0x0a, 0x06, 0x0b, 0x07, 0x0c, 0x00, 0x00
.byte 0x05, 0x0d, 0x08, 0x0e, 0x09, 0x0f, 0x00, 0x00, 0x06, 0x10, 0x0a, 0x11, 0x0a, 0x11, 0x00, 0x00
@@ -121,7 +171,6 @@ gUnknown_8107234: @ 8107234
.global gUnknown_8107314
gUnknown_8107314: @ 8107314
@ replacing .incbin "baserom.gba", 0x107314, 0x44
.byte 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff
.byte 0x02, 0x00, 0x00, 0x00, 0xfd, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff
.byte 0x04, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff
@@ -130,20 +179,18 @@ gUnknown_8107314: @ 8107314
.global gUnknown_8107358
gUnknown_8107358: @ 8107358
@ replacing .incbin "baserom.gba", 0x107358, 0x1C
.byte 0x04, 0x03, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05, 0x04, 0x03, 0x02, 0x03, 0x04, 0x05, 0x06, 0x05
.byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107374
gUnknown_8107374: @ 8107374
@ replacing .incbin "baserom.gba", 0x107374, 0xC
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global gUnknown_8107380
gUnknown_8107380: @ 8107380
@ replacing .incbin "baserom.gba", 0x107380, 0x1C
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_810739C
@@ -1327,20 +1374,17 @@ gUnknown_81097C4: @ 81097C4
.global gUnknown_81097C5
gUnknown_81097C5: @ 81097C5
@ replacing .incbin "baserom.gba", 0x001097c5, 0x1b
.byte 0x9f, 0x83, 0xa0, 0x83, 0xa1, 0x83, 0xa2, 0x83, 0xa3, 0x83, 0xa4, 0x83, 0xa5, 0x83, 0xa6, 0x83, 0xa7, 0x83, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x97, 0x10, 0x08
.global gGummiStatBoostLUT
gGummiStatBoostLUT: @ 81097E0
@ replacing .incbin "baserom.gba", 0x001097e0, 0x8
.2byte 0x0001
.2byte 0x0002
.2byte 0x0004
.2byte 0x0008
.2byte 1
.2byte 2
.2byte 4
.2byte 8
.global gUnknown_81097E8
gUnknown_81097E8: @ 81097E8
@ replacing .incbin "baserom.gba", 0x001097e8, 0x10
.byte 0x10, 0x00, 0x00, 0x00
.byte 0x12, 0x00, 0x00, 0x00
.byte 0x14, 0x00, 0x00, 0x00
@@ -1348,14 +1392,13 @@ gUnknown_81097E8: @ 81097E8
.global gUnknown_81097F8
gUnknown_81097F8: @ 81097F8
@ replacing .incbin "baserom.gba", 0x001097f8, 0x18
.byte 0x11, 0x00, 0x00, 0x00
.byte 0x13, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x00, 0x00
.byte 0x17, 0x00, 0x00, 0x00
.string "pksdir0\0"
.string "pksdir0\0"
@ START rescue_team_info.c
.global gRescueRankMaxPoints
gRescueRankMaxPoints: @ 8109810
.4byte 50
@@ -1369,11 +1412,11 @@ gRescueRankMaxPoints: @ 8109810
.global gTeamNamePlaceholder
gTeamNamePlaceholder: @ 810982C
.string "Pokémon\0"
.string "pksdir0\0"
.string "pksdir0\0"
@ END rescue_team_info.c
.global gUnknown_810983C
gUnknown_810983C: @ 810983C
@ replacing .incbin "baserom.gba", 0x10983C, 0x68
.4byte gUnknown_8109888
.4byte gUnknown_8109884
.4byte gUnknown_8109880
@@ -1415,25 +1458,27 @@ gUnknown_8109884:
gUnknown_8109888:
.byte 0x82, 0x4f, 0x00, 0x00
.string "pksdir0\0"
.string "pksdir0\0"
.string "pksdir0\0"
.global gUnknown_81098A4
gUnknown_81098A4: @ 81098A4
.string "{COLOR_2}"
.byte 0x4
.string "%s{END_COLOR_TEXT_2}\0"
.string "pksdir0\0"
@ START friend_area.c
.global sUnknown_81098A4
sUnknown_81098A4: @ 81098A4
.string "{COLOR_2 UNK_COLOR_4}%s{END_COLOR_TEXT_2}\0"
.align 2,0
.global gUnknown_81098AC
gUnknown_81098AC: @ 81098AC
.string "%s#=%c{COLOR_1}"
.byte 0x4
.string "%s{END_COLOR_TEXT_1}\0"
.align 2,0
.string "pksdir0"
.global sUnknown_81098AC
sUnknown_81098AC: @ 81098AC
.string "%s#=%c{COLOR_1 UNK_COLOR_4}%s{END_COLOR_TEXT_1}\0"
.align 2,0
.string "pksdir0"
@ END friend_area.c
.align 2,0
.global gUnknown_81098C4
gUnknown_81098C4: @ 81098C4
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

View File

@@ -5239,8 +5239,8 @@ gUnknown_81139B8: @ 81139B8
gUnknown_81139CC: @ 81139CC
.4byte Item_81139BC
.global gFriendAreaNames
gFriendAreaNames: @ 81139D0
.global sFriendAreaNames
sFriendAreaNames: @ 81139D0
.4byte gNoneText
.4byte gUnknown_8113E20
.4byte gUnknown_8113E10
@@ -5533,8 +5533,8 @@ gUnknown_8113E20:
.string "Bountiful Sea\0"
.align 2,0
.global gFriendAreaDescriptions
gFriendAreaDescriptions: @ 8113E30
.global sFriendAreaDescriptions
sFriendAreaDescriptions: @ 8113E30
@ replacing .incbin "baserom.gba", 0x113E30, 0x18E8
.4byte gNoneText
.4byte gUnknown_81156A8

144
data/data_code_2.s Normal file
View File

@@ -0,0 +1,144 @@
.section .rodata
.string "pksdir0\0"
.global gUnknown_80B690C
gUnknown_80B690C: @ 80B690C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x34, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x85, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x45, 0x01, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x9e, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x1b, 0x01, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x36, 0x00, 0x00, 0x00
.byte 0x08, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00
.byte 0x09, 0x00, 0x00, 0x00
.byte 0x18, 0x01, 0x00, 0x00
.byte 0x0a, 0x00, 0x00, 0x00
.byte 0x9b, 0x00, 0x00, 0x00
.byte 0x0b, 0x00, 0x00, 0x00
.byte 0x68, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x00, 0x00
.byte 0x42, 0x00, 0x00, 0x00
.byte 0x0d, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x0e, 0x00, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00
.byte 0x0f, 0x00, 0x00, 0x00
.byte 0x15, 0x01, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80B6994
gUnknown_80B6994: @ 80B6994
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x9e, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x18, 0x01, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x98, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.global gPMDBuildVersion
gPMDBuildVersion: @ 80B69BC
.string "PKDi ver 1.0 [Apr 28 2006] 16:37:54\0"
.align 2,0
.global titlen0_text
titlen0_text:
.string "titlen0\0"
.align 2,0
.global titlen1_text
titlen1_text:
.string "titlen1\0"
.align 2,0
.global titlen2_text
titlen2_text:
.string "titlen2\0"
.align 2,0
.global gLoadScreenBackgroundFileNames
gLoadScreenBackgroundFileNames: @ 80B69F8
.4byte titlen0_text
.4byte titlen1_text
.4byte titlen2_text
.global titlen0p_text
titlen0p_text:
.string "titlen0p\0"
.align 2,0
.global titlen1p_text
titlen1p_text:
.string "titlen1p\0"
.align 2,0
.global titlen2p_text
titlen2p_text:
.string "titlen2p\0"
.align 2,0
.global gLoadScreenBackgroundPaletteFileNames
gLoadScreenBackgroundPaletteFileNames: @ 80B6A28
.4byte titlen0p_text
.4byte titlen1p_text
.4byte titlen2p_text
gSaveTextQuicksaving:: @ 80B6A34
.string "{CENTER_ALIGN}Quicksaving your adventure...\n"
.string "{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power.\0"
.align 2, 0
gSaveTextYourAdventureHasBeenSaved:: @ 80B6A7C
.string "{CENTER_ALIGN}Your adventure has been saved.\0"
.align 2, 0
gSaveTextYourAdventureHasBeenSavedLong:: @ 80B6AA0
.string "{CENTER_ALIGN}Your adventure has been saved.\n"
.string "{CENTER_ALIGN}When you are in a dungeon{COMMA} quicksave\n"
.string "{CENTER_ALIGN}your progress before ending the game.\0"
.align 2, 0
gSaveTextTheDataCouldNotBeWritten:: @ 80B6B14
.string "{CENTER_ALIGN}The data could not be written.\n"
.string "{CENTER_ALIGN}Please turn off the power and remove\n"
.string "{CENTER_ALIGN}and reinsert the DS Card.\0"
.align 2, 0
gSaveTextFailed:: @ 80B6B78
.string "{CENTER_ALIGN}Save failed.\0"
.align 2, 0
gSaveTextError:: @ 80B6B88
.string "{CENTER_ALIGN}Error reading data.\n"
.string "{CENTER_ALIGN}Please turn off the power and reinsert\n"
.string "{CENTER_ALIGN}the DS Game Card.\0"
.align 2, 0
gSaveTextCantResume:: @ 80B6BDC
.string "{CENTER_ALIGN}Your data was not properly saved{COMMA}\n"
.string "{CENTER_ALIGN}so your game cannot be resumed\n"
.string "{CENTER_ALIGN}from your last spot.{EXTRA_MSG}{CENTER_ALIGN}Your last outing is considered a defeat.\n"
.string "{CENTER_ALIGN}Before shutting down{COMMA} save in your\n"
.string "{CENTER_ALIGN}team base{COMMA} or quicksave in a dungeon.\0"
.align 2, 0
gSaveTextMayNotResume:: @ 80B6CB8
.string "{CENTER_ALIGN}You may not resume your dungeon\n"
.string "{CENTER_ALIGN}adventure using this saved data.\n"
.string "{CENTER_ALIGN}Your last outing is considered a defeat.\0"

View File

@@ -1,70 +0,0 @@
gSaveTextQuicksaving:: @ 80B6A34
.string "{CENTER_ALIGN}Quicksaving your adventure...\n"
.string "{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power.\0"
.align 2, 0
gSaveTextYourAdventureHasBeenSaved:: @ 80B6A7C
.string "{CENTER_ALIGN}Your adventure has been saved.\0"
.align 2, 0
gSaveTextYourAdventureHasBeenSavedLong:: @ 80B6AA0
.string "{CENTER_ALIGN}Your adventure has been saved.\n"
.string "{CENTER_ALIGN}When you are in a dungeon{COMMA} quicksave\n"
.string "{CENTER_ALIGN}your progress before ending the game.\0"
.align 2, 0
gSaveTextTheDataCouldNotBeWritten:: @ 80B6B14
.string "{CENTER_ALIGN}The data could not be written.\n"
.string "{CENTER_ALIGN}Please turn off the power and remove\n"
.string "{CENTER_ALIGN}and reinsert the DS Card.\0"
.align 2, 0
gSaveTextFailed:: @ 80B6B78
.string "{CENTER_ALIGN}Save failed.\0"
.align 2, 0
gSaveTextError:: @ 80B6B88
.string "{CENTER_ALIGN}Error reading data.\n"
.string "{CENTER_ALIGN}Please turn off the power and reinsert\n"
.string "{CENTER_ALIGN}the DS Game Card.\0"
.align 2, 0
gSaveTextCantResume:: @ 80B6BDC
.string "{CENTER_ALIGN}Your data was not properly saved{COMMA}\n"
.string "{CENTER_ALIGN}so your game cannot be resumed\n"
.string "{CENTER_ALIGN}from your last spot.{EXTRA_MSG}{CENTER_ALIGN}Your last outing is considered a defeat.\n"
.string "{CENTER_ALIGN}Before shutting down{COMMA} save in your\n"
.string "{CENTER_ALIGN}team base{COMMA} or quicksave in a dungeon.\0"
.align 2, 0
gSaveTextMayNotResume:: @ 80B6CB8
.string "{CENTER_ALIGN}You may not resume your dungeon\n"
.string "{CENTER_ALIGN}adventure using this saved data.\n"
.string "{CENTER_ALIGN}Your last outing is considered a defeat.\0"
.align 2, 0
.string "pksdir0\0"
.align 2, 0
.global gUnknown_80B6D30
gUnknown_80B6D30:
.2byte 5, 7, 0, 0, 1, 0; .4byte gUnknown_80B6D88
.2byte 5, 7, 2, 0, 1, 0; .4byte gUnknown_80B6D80
.2byte 5, 7, 4, 0, 1, 0; .4byte gUnknown_80B6D78
.2byte 5, 7, 6, 0, 1, 0; .4byte gUnknown_80B6D70
gUnknown_80B6D70:
.string "LOCAL3\0"
.align 2, 0
gUnknown_80B6D78:
.string "LOCAL2\0"
.align 2, 0
gUnknown_80B6D80:
.string "LOCAL1\0"
.align 2, 0
gUnknown_80B6D88:
.string "LOCAL0\0"
.align 2, 0

View File

@@ -1,8 +1,21 @@
#ifndef GUARD_ADVENTURE_LOG_H
#define GUARD_ADVENTURE_LOG_H
void CreateAdventureLogMenu(void);
void CleanAdventureLogMenu(void);
u32 UpdateAdventureLogMenu(void);
#include "input.h"
#include "text.h"
#endif
// size: 0xA0
typedef struct AdventureLog
{
MenuInputStruct input;
u32 unk34;
UnkTextStruct2 *unk38;
UnkTextStruct2 unk3C[4];
u8 unk9C[4];
} AdventureLog;
void CleanAdventureLogScreen(void);
bool8 CreateAdventureLogScreen(u32 kind);
u32 HandleAdventureLogInput(u8);
#endif // GUARD_ADVENTURE_LOG_H

View File

@@ -0,0 +1,8 @@
#ifndef GUARD_ADVENTURE_LOG_MENU_H
#define GUARD_ADVENTURE_LOG_MENU_H
void CreateAdventureLogMenu(void);
void CleanAdventureLogMenu(void);
u32 UpdateAdventureLogMenu(void);
#endif // GUARD_ADVENTURE_LOG_MENU_H

View File

@@ -4,14 +4,14 @@
#include "file_system.h"
// size: 0x8
struct UnkSpriteMem
typedef struct UnkSpriteMem
{
/* 0x0 */ void *src;
/* 0x4 */ s32 byteCount;
};
} UnkSpriteMem;
// size: 0x20
struct axdata1
typedef struct axdata1
{
/* 0x0 */ s16 xPos;
/* 0x2 */ s16 yPos;
@@ -27,20 +27,20 @@ struct axdata1
/* 0x1A */ s16 lastPoseId;
u8 fill1C[0x1E - 0x1C];
u8 paletteNum;
};
} axdata1;
// size: 0xA
struct __attribute__ ((packed, aligned(2))) ax_pose
typedef struct __attribute__((packed, aligned(2))) ax_pose
{
/* 0x0 */ s16 sprite;
u16 unk2; // Always 0 in red (except for end markers which are 0xFFFF)
/* 0x4 */ u16 flags1;
/* 0x6 */ u16 flags2;
/* 0x8 */ u16 flags3;
};
} ax_pose;
// size: 0xC
struct ax_anim
typedef struct ax_anim
{
/* 0x0 */ u8 frames;
/* 0x1 */ u8 unkFlags;
@@ -49,38 +49,38 @@ struct ax_anim
/* 0x6 */ s16 yOffset;
/* 0x8 */ s16 xShadow;
/* 0xA */ s16 yShadow;
};
} ax_anim;
// size: 0x3C
struct axdata
typedef struct axdata
{
/* 0x0 */ u16 flags; // 0x8000 - animating, 0x2000 finished? 0x1000 continue
/* 0x2 */ s16 animFrames; // frames left in the current animation frame
/* 0x4 */ s16 animWaitFrames; // frames to not update the animation for
/* 0x6 */ s16 totalFrames; // max 30000
/* 0x8 */ struct axdata1 sub1;
/* 0x28 */ struct ax_anim *nextAnimData; // next animation data (if flags&0x1000)
/* 0x2C */ struct ax_anim *activeAnimData; // current animation data
/* 0x8 */ axdata1 sub1;
/* 0x28 */ ax_anim *nextAnimData; // next animation data (if flags&0x1000)
/* 0x2C */ ax_anim *activeAnimData; // current animation data
/* 0x30 */ void *paletteData; // ?
/* 0x34 */ struct ax_pose **poseData;
/* 0x38 */ struct UnkSpriteMem **spriteData;
};
/* 0x34 */ ax_pose **poseData;
/* 0x38 */ UnkSpriteMem **spriteData;
} axdata;
// size: 0x14
struct axmain
typedef struct axmain
{
/* 0x0 */ struct ax_pose **poses;
/* 0x4 */ struct ax_anim ****animations;
/* 0x0 */ ax_pose **poses;
/* 0x4 */ ax_anim ****animations;
/* 0x8 */ u32 animCount;
/* 0xC */ void *spriteData; // ?
/* 0x10 */ void *palettes; // ?
};
} axmain;
// size: ?
struct axPokemon
{
/* 0x0 */ struct axdata axdata;
/* 0x3C */ struct OpenedFile *spriteFile;
/* 0x0 */ axdata axdata;
/* 0x3C */ OpenedFile *spriteFile;
u16 unk40_maybeAnimTimer;
u8 unk42_animId1;
u8 unk43_animId2;
@@ -90,7 +90,7 @@ struct axPokemon
u8 unk47;
u8 unk48;
u8 fill49[0x4C - 0x49];
/* 0x4C */ struct axmain *axmain;
/* 0x4C */ axmain *axmain;
u8 flags_0x50;
u8 fill51;
s16 unk52;

View File

@@ -10,18 +10,18 @@ enum
NUM_BGS
};
struct BGControlStruct
typedef struct BGControlStruct
{
u16 padding;
u16 unk2;
s16 hofs;
s16 vofs;
};
} BGControlStruct;
extern struct BGControlStruct gBG0Control;
extern struct BGControlStruct gBG1Control;
extern struct BGControlStruct gBG2Control;
extern struct BGControlStruct gBG3Control;
extern BGControlStruct gBG0Control;
extern BGControlStruct gBG1Control;
extern BGControlStruct gBG2Control;
extern BGControlStruct gBG3Control;
extern u16 gBldAlpha;
extern u16 gBldCnt;
extern bool8 gUnknown_202D7FE;

View File

@@ -2,7 +2,8 @@
#define GUARD_BG_PALETTE_BUFFER_H
void InitBGPaletteBuffer(void);
void nullsub_4(s32 index, u8 *RGBArray, s32 a1, u8 *a2);
void SetBGPaletteBufferColorRGB(s32 index, u8 *RGBArray, s32 a1, u8 *a2);
void nullsub_4(s32 index, u8 *colorArray, s32, u8 *);
void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray);
void SetBGPaletteBufferColorRGB(s32 index, u8 *colorArray, s32, u8 *);
#endif // GUARD_BG_PALETTE_BUFFER_H

View File

@@ -3,8 +3,8 @@
#include "dungeon_entity.h"
bool8 MoveMatchesChargingStatus(struct Entity *pokemon, struct Move *move);
bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move);
// checkCharge = Check for the move named Charge.
bool8 IsCharging(struct Entity *pokemon, bool8 checkCharge);
bool8 IsCharging(Entity *pokemon, bool8 checkCharge);
#endif

View File

@@ -4,38 +4,38 @@
#include "file_system.h"
// size: 0x4
struct RGB
typedef struct RGB
{
// IDK which is R G B
u8 unk0;
u8 unk1;
u8 unk2;
};
} RGB;
// size: 0x18
struct unkStruct_202EE8C
typedef struct unkStruct_202EE8C
{
u32 unk0;
u16 unk4;
s16 unk6;
struct RGB *unk8;
struct RGB *unkC;
struct RGB *unk10;
struct RGB unk14;
};
RGB *unk8;
RGB *unkC;
RGB *unk10;
RGB unk14;
} unkStruct_202EE8C;
// size: Variable
struct unkDataFor8004AA4
typedef struct unkDataFor8004AA4
{
/* 0x0 */ s16 colorCount;
s16 unk2;
/* 0x4 */ struct RGB colors[0];
};
/* 0x4 */ RGB colors[0];
} unkDataFor8004AA4;
void nullsub_6(void);
void sub_8004AA4(struct unkStruct_202EE8C *, struct OpenedFile *, s32);
bool8 sub_8004AF0(bool8, struct unkStruct_202EE8C *, s32, s32, s32, u8 *);
bool8 sub_8004D14(struct unkStruct_202EE8C *, s32);
bool8 sub_8004D40(struct unkStruct_202EE8C *, s32);
void sub_8004AA4(unkStruct_202EE8C *, OpenedFile *, s32);
bool8 sub_8004AF0(bool8, unkStruct_202EE8C *, s32, s32, s32, u8 *);
bool8 sub_8004D14(unkStruct_202EE8C *, s32);
bool8 sub_8004D40(unkStruct_202EE8C *, s32);
#endif // GUARD_CODE_8004AA0_H

View File

@@ -20,9 +20,10 @@ void nullsub_10(bool8);
void nullsub_12(void);
void nullsub_13(void);
void nullsub_14(void);
void sub_8005610(struct OpenedFile *, s32, s32, u8 *);
void sub_8005770(s32, u8 *, s32, u8 *);
void sub_8005610(OpenedFile *, s32, s32, u8 *);
void sub_8005770(s32, u8 *colorArray, s32, u8 *);
void sub_80057E8(void);
void sub_8005838(s32 *, u8 kind);
void sub_80060EC(void);
#endif // GUARD_CODE_800558C_H

28
include/code_8009804.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef GUARD_CODE_8009804_H
#define GUARD_CODE_8009804_H
// size: 0xC
struct unkStruct_202D240
{
u32 *unk0;
u32 *unk4;
u32 size;
};
// size: 0x40
struct unkStruct_202D038
{
u32 unk0[0x10];
};
void vram_related_8009804(void);
void sub_80097B0(void);
void sub_80098A0(void);
void sub_80098BC(u32 *, u32 *, u32);
void sub_80098F8(u32);
void sub_8009908(void);
void sub_80099C0(void);
void sub_80099F0(u32);
#endif // GUARD_CODE_8009804_H

9
include/code_800C9CC.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef GUARD_CODE_800D090_H
#define GUARD_CODE_800D090_H
#include "input.h"
void ReadKeyInput(Inputs *);
void sub_800CB20(void);
#endif // GUARD_CODE_800D090_H

View File

@@ -3,13 +3,18 @@
#include "file_system.h"
#include "menu.h"
#include "text.h"
// code_80130A8.s
extern void sub_8013AA0(u32 *);
extern u32 sub_8013BBC(u32 *);
extern void sub_8013C68(u32 *);
extern void sub_80141B4(const u8 *, u32, struct OpenedFile **, u32);
extern void sub_8014248(const u8 *, u32, u32, const struct MenuItem *, void *, u32, u32, struct OpenedFile **, u32);
extern void sub_8013F84(void);
extern void sub_80140B4(UnkTextStruct2 *);
extern void sub_80140DC(void);
extern void sub_8014114(void);
extern void sub_80141B4(const u8 *, u32, OpenedFile **, u32);
extern void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32);
extern s32 sub_80144A4(s32 *);
extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32);

29
include/code_801AFA4.h Normal file
View File

@@ -0,0 +1,29 @@
#ifndef GUARD_CODE_801AFA4_H
#define GUARD_CODE_801AFA4_H
#include "global.h"
#include "constants/move.h"
#include "menu.h"
#include "pokemon.h"
// size: 0xA4
typedef struct unkStruct_203B22C
{
/* 0x0 */ s32 state;
/* 0x4 */ u32 teamItemIndex;
/* 0x8 */ u8 id; // item index
/* 0xA */ u16 moveID; // item move??
/* 0xC */ Move moves[MAX_MON_MOVES * 2];
/* 0x4C */ s32 monsAbleToLearnMove; // number of party members able to learn move
/* 0x50 */ s16 unk50[MAX_TEAM_MEMBERS]; // species IDs of each member able to learn move
/* 0x58 */ s16 chosenPokemon; // species of pokemon that will learn move
/* 0x5C */ PokemonStruct1 *pokeStruct; // PokemonStruct of said pokemon
u32 unk60;
/* 0x64 */ MenuItem menuItems[8];
} unkStruct_203B22C;
bool8 sub_801AFA4(u32 index);
u32 sub_801B00C(void);
void sub_801B048(void);
#endif // GUARD_CODE_801AFA4_H

View File

@@ -2,26 +2,26 @@
#define GUARD_CODE_801B3C0_H
#include "input.h"
#include "item.h"
#include "items.h"
#include "subStruct_203B240.h"
#include "text.h"
// size: 0x94
struct unkStruct_203B230
typedef struct unkStruct_203B230
{
s32 state;
struct Item item;
/* 0x4 */ Item item;
s32 unk8;
s32 unkC;
struct subStruct_203B240 *unk10[2];
u8 fill18[0x20 - 0x18];
u32 unk20;
u32 unk24;
struct UnkTextStruct2 unk28[4];
struct MenuInputStructSub unk88;
};
UnkTextStruct2 unk28[4];
MenuInputStructSub unk88;
} unkStruct_203B230;
u32 sub_801B3C0(struct Item *);
bool8 sub_801B3C0(Item *item);
u32 sub_801B410(void);
void sub_801B450(void);

30
include/code_801B60C.h Normal file
View File

@@ -0,0 +1,30 @@
#ifndef GUARD_CODE_801B60C_H
#define GUARD_CODE_801B60C_H
#include "items.h"
#include "menu.h"
#include "text.h"
// size: 0x154
typedef struct unkStruct_203B234
{
u32 unk0;
/* 0x4 */ u32 state;
/* 0x8 */ u32 fallbackState;
u8 unkC;
Item unk10;
struct unkStruct_8090F58 unk14;
Item unk20;
u32 unk24;
MenuStruct unk28;
MenuStruct unk78;
/* 0xC8 */ u32 menuAction;
MenuItem unkCC[5];
UnkTextStruct2 unkF4[4];
} unkStruct_203B234;
bool8 sub_801B60C(u32, u8 id, u8 quantity);
u32 sub_801B6AC(void);
void sub_801B72C(void);
#endif // GUARD_CODE_801B60C_H

View File

@@ -3,8 +3,11 @@
#include "text.h"
bool8 sub_801C8C4(s32, s32, struct UnkTextStruct2_sub *, u32);
extern u32 sub_801CA08(bool8);
bool8 sub_801BEEC(s16 species);
u32 sub_801BF48(void);
void sub_801BF98(void);
bool8 sub_801C8C4(s32, s32, UnkTextStruct2_sub *, u32);
u32 sub_801CA08(bool8);
u8 sub_801CB24(void);
void sub_801CB5C(bool8);
void sub_801CBB8(void);
@@ -13,6 +16,6 @@ bool8 sub_801CF14(s32);
bool8 sub_801CF50(s32);
void sub_801CF94(void);
s32 sub_801CFB8(void);
u32 sub_801CFE0(u8);
u32 sub_801CFE0(u8 index);
#endif // GUARD_CODE_801C620_H

View File

@@ -1,27 +1,39 @@
#ifndef CODE_801EE10_H
#define CODE_801EE10_H
#include "constants/move.h"
#include "input.h"
#include "pokemon.h"
#include "text.h"
struct unkStruct_203B270
// size 0xBC
typedef struct unkStruct_203B270
{
// size 0xBC
u32 unk0;
u8 unk4;
u8 unk5;
u8 unk6;
u8 unk7;
/* 0x8 */ struct PokemonStruct *pokeStruct;
/* 0x8 */ PokemonStruct1 *pokeStruct;
/* 0xC */ u8 isTeamLeader;
/* 0x10 */ struct Move *moves;
/* 0x10 */ Move *moves;
u8 fill14[0x1C - 0x14];
struct MenuInputStruct input;
MenuInputStruct input;
u32 unk50;
u32 unk54;
struct UnkTextStruct2 unk58[4];
u8 *text;
};
UnkTextStruct2 unk58[4];
const u8 *text;
} unkStruct_203B270;
#endif
u8 sub_801EE10(u32, s16 species, Move *moves, u32, const u8 *text, u32);
// code_801EE10.s
extern u32 sub_801EF38(u32);
extern u32 sub_801F194(void);
extern bool8 sub_801F1A4(void);
extern void sub_801F1B0(bool8, bool8);
extern void sub_801F214(void);
extern void sub_801F280(u32); // Probably bool
#endif // CODE_801EE10_H

View File

@@ -1,6 +1,9 @@
#ifndef GUARD_CODE_801EE10_1_H
#define GUARD_CODE_801EE10_1_H
bool8 sub_8024458(s16 speciesNum, s32);
void sub_802453C(void);
// code_801EE10_1.s
extern void sub_8023868(u32, u32, u32, u32);
extern u32 sub_8023A94(bool8);

View File

@@ -1,6 +1,16 @@
#ifndef GUARD_CODE_801EE10_MID_H
#define GUARD_CODE_801EE10_MID_H
bool8 sub_801F428(s16 index, s32);
u32 sub_801F520(u8);
u16 sub_801F5B4(void);
void sub_801F5F0(bool8);
void sub_801F63C(void);
void sub_801F700(void);
bool8 sub_801F808(u16 *moveIDs);
u32 sub_801F890(void);
void sub_801F8D0(void);
// code_801EE10_mid.s
extern void sub_8021494(void);

View File

@@ -1,9 +1,16 @@
#ifndef GUARD_CODE_8023144_H
#define GUARD_CODE_8023144_H
struct unkStruct_203B294
{
// size: 0x1A8
#include "constants/iq_skill.h"
#include "input.h"
#include "items.h"
#include "menu.h"
#include "pokemon.h"
#include "text.h"
// size: 0x1A8
typedef struct unkStruct_203B294
{
/* 0x0 */ s32 state;
/* 0x4 */ s32 fallbackState;
u8 iqSkillPreGummi[NUM_IQ_SKILLS];
@@ -11,17 +18,34 @@ struct unkStruct_203B294
u32 availIQSkillPreGummi;
u32 availIQSkillPostGummi;
u32 unk40; // Gummi eaten flag?
struct Gummi gummi;
/* 0x48 */ struct PokemonStruct *pokeStruct;
Gummi gummi;
/* 0x48 */ PokemonStruct1 *pokeStruct;
u32 itemIndex;
struct Item item;
struct MenuStruct unk54;
struct MenuStruct unkA4;
Item item;
MenuStruct unk54;
MenuStruct unkA4;
u32 menuAction;
struct MenuItem unkF8[0x8];
MenuItem unkF8[0x8];
u16 unk138[0x8];
struct UnkTextStruct2 unk148[4];
};
UnkTextStruct2 unk148[4];
} unkStruct_203B294;
// size: 0x3FC
typedef struct unkStruct_3001B5C
{
u8 unk0;
u32 unk4;
u32 unk8;
s16 unkC[2];
u32 unk10;
u8 fill14[0x354 - 0x14];
u8 unk354;
u8 fill355[0x35C - 0x355];
MenuInputStruct input;
u32 unk390;
UnkTextStruct2 *unk394;
UnkTextStruct2 unk398[4];
u8 unk3F8[4];
} unkStruct_3001B5C;
#endif // GUARD_CODE_8023144_H
#endif // GUARD_CODE_8023144_H

View File

@@ -1,7 +1,14 @@
struct unkStruct_802C39C
#ifndef GUARD_CODE_802C39C_H
#define GUARD_CODE_802C39C_H
#include "code_8094F88.h"
#include "wonder_mail.h"
// size: 0x58
typedef struct unkStruct_802C39C
{
/* 0x0 */ u32 unk0[2];
/* 0x8 */ struct WonderMailSub *unk8;
/* 0x8 */ WonderMailSub *unk8;
/* 0xC */ u8 *playerName;
/* 0x10 */ s16 clientSpecies;
/* 0x12 */ s16 targetSpecies;
@@ -20,5 +27,7 @@ struct unkStruct_802C39C
/* 0x48 */ u32 y;
/* 0x4C */ u8 *unk4C;
u8 *unk50;
/* 0x54 */ struct WonderMail *mail;
};
/* 0x54 */ WonderMail *mail;
} unkStruct_802C39C;
#endif // GUARD_CODE_802C39C_H

23
include/code_803B050.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef GUARD_CODE_803B050_H
#define GUARD_CODE_803B050_H
// size: 0x8
typedef struct unkStruct_80E9920
{
/* 0x0 */ s16 unkA;
/* 0x2 */ s16 unkB;
/* 0x4 */ u8 *text;
} unkStruct_80E9920;
// size: 0xC
typedef struct unkStruct_80E9F8C
{
/* 0x0 */ s16 unkA;
/* 0x2 */ s16 unkB;
/* 0x4 */ u8 *text1;
/* 0x8 */ u8 *text2;
} unkStruct_80E9F8C;
void sub_803B6B0(s32 x, s32 y, u8 index, u32);
#endif // GUARD_CODE_803B050_H

8
include/code_803D0D8.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef GUARD_CODE_803D0D8_H
#define GUARD_CODE_803D0D8_H
u8 sub_803D0D8(void);
u8 sub_803D0F0(u8);
u8 sub_803D100(u8);
#endif // GUARD_CODE_803D0D8_H

View File

@@ -3,6 +3,6 @@
#include "dungeon_entity.h"
void SendMessage(struct Entity *pokemon, const char message[]);
void SendMessage(Entity *pokemon, const char message[]);
#endif
#endif // GUARD_CODE_80521D0_H

View File

@@ -1,13 +1,13 @@
#ifndef GUARD_CODE_805D8C8_H
#define GUARD_CODE_805D8C8_H
#include "sprite.h"
#include "file_system.h"
extern struct OpenedFile *sub_80687D0(s16);
/*struct OpenedFile *sub_80687D0(s16 species)
{
s32 species32 = species;
return gDungeon->sprites[species32];
}*/
void CloseAllSpriteFiles(void);
void sub_8068768(void);
void sub_80687AC(void);
OpenedFile *sub_80687D0(s16 species);
void sub_8068838(s16 id, bool32);
#endif // GUARD_CODE_805D8C8_H

22
include/code_806CD90.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef GUARD_CODE_806CD90_H
#define GUARD_CODE_806CD90_H
#include "dungeon_entity.h"
void sub_806CC10(void);
void sub_806CC70(void);
void sub_806CCB4(Entity *entity, u8);
void sub_806CD90(void);
void sub_806CDD4(Entity *entity, u8, u32);
void sub_806CDFC(Entity *entity, u8, u32);
void sub_806CE34(Entity *entity, u32 newDir);
void sub_806CE68(Entity *entity, u32 newDir);
void sub_806CE94(Entity *entity, u32 newDir);
u8 sub_806CEBC(Entity *entity);
void sub_806CEFC(Entity *entity, u32 newDir);
void sub_806CF18(Entity *entity);
u8 sub_806CF54(Entity *entity);
void sub_806CF60(void);
u32 sub_806CF98(Entity *entity);
#endif // GUARD_CODE_806CD90_H

View File

@@ -1,52 +1,52 @@
#ifndef GUARD_CODE_8077274_1_H
#define GUARD_CODE_8077274_1_H
void MuzzleTarget(struct Entity *pokemon, struct Entity *target);
void TransformStatusTarget(struct Entity * pokemon, struct Entity * target);
void MobileStatusTarget(struct Entity * pokemon, struct Entity * target);
void ExposeStatusTarget(struct Entity * pokemon, struct Entity * target, s16 param_3);
void IdentityItemHolders(struct Entity *pokemon, struct Entity *target);
void BlindTarget(struct Entity *pokemon, struct Entity *target);
void CrossEyeVisionTarget(struct Entity *pokemon, struct Entity *target);
void RestoreVisionTarget(struct Entity *pokemon, struct Entity *target);
void RestorePPTarget(struct Entity * pokemon,struct Entity * target, s32 param_3);
void RaiseAtkStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment);
void RaiseSpAtkStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment);
void RaiseDefStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment);
void RaiseSpDefStatTarget(struct Entity * pokemon,struct Entity * target, s32 increment);
void LongTossStatusTarget(struct Entity * pokemon,struct Entity * target);
void PierceStatusTarget(struct Entity * pokemon,struct Entity * target);
void SetChargeStatusTarget(struct Entity *pokemon, struct Entity *target, u8 newStatus, struct Move *move, u8 *message);
void sub_8079764(struct Entity * pokemon);
void CounterStatusTarget(struct Entity * pokemon, struct Entity * target, u8 newStatus);
void SafeguardStatusTarget(struct Entity * pokemon, struct Entity * target);
void MistStatusTarget(struct Entity * pokemon, struct Entity * target);
void WishStatusTarget(struct Entity * pokemon, struct Entity * target);
void MagicCoatStatusTarget(struct Entity * pokemon, struct Entity * target);
void LightScreenStatusTarget(struct Entity * pokemon, struct Entity * target);
void ReflectStatusTarget(struct Entity * pokemon, struct Entity * target);
void ProtectStatusTarget(struct Entity * pokemon, struct Entity * target);
void MirrorCoatStatusTarget(struct Entity * pokemon, struct Entity * target);
void EndureStatusTarget(struct Entity * pokemon, struct Entity * target);
void MirrorMoveStatusTarget(struct Entity * pokemon, struct Entity * target);
void Conversion2StatusTarget(struct Entity * pokemon, struct Entity * target);
void VitalThrowStatusTarget(struct Entity * pokemon, struct Entity * target);
void sub_8079F20(struct Entity * pokemon, struct Entity * target, u8 param_3, u8 param_4);
void sub_807A0CC(struct Entity * pokemon, struct Entity * target);
void SendSleepEndMessage(struct Entity * pokemon, struct Entity * target, bool8 param_3, bool8 param_4);
void SendNonVolatileEndMessage(struct Entity * pokemon, struct Entity * target);
void SendImmobilizeEndMessage(struct Entity * pokemon, struct Entity *target);
void SendVolatileEndMessage(struct Entity * pokemon, struct Entity *target);
void SendProtectionEndMessage(struct Entity * pokemon, struct Entity *target);
void SendWaitingEndMessage(struct Entity * pokemon, struct Entity * target, u8 waitingStatus);
void SendLinkedEndMessage(struct Entity * pokemon, struct Entity * target);
void SendMoveEndMessage(struct Entity * pokemon, struct Entity * target);
void SendTransformEndMessage(struct Entity * pokemon, struct Entity *target);
void SendEyesightEndMessage(struct Entity * pokemon,struct Entity * target);
void SendMuzzledEndMessage(struct Entity * pokemon, struct Entity * target);
void sub_807A96C(struct Entity *pokemon, struct Entity *target);
void WakeUpPokemon(struct Entity * pokemon);
void SendThawedMessage(struct Entity *pokemon, struct Entity *target);
void MuzzleTarget(Entity *pokemon, Entity *target);
void TransformStatusTarget(Entity * pokemon, Entity * target);
void MobileStatusTarget(Entity * pokemon, Entity * target);
void ExposeStatusTarget(Entity * pokemon, Entity * target, s16 param_3);
void IdentityItemHolders(Entity *pokemon, Entity *target);
void BlindTarget(Entity *pokemon, Entity *target);
void CrossEyeVisionTarget(Entity *pokemon, Entity *target);
void RestoreVisionTarget(Entity *pokemon, Entity *target);
void RestorePPTarget(Entity * pokemon,Entity * target, s32 param_3);
void RaiseAtkStatTarget(Entity * pokemon,Entity * target, s32 increment);
void RaiseSpAtkStatTarget(Entity * pokemon,Entity * target, s32 increment);
void RaiseDefStatTarget(Entity * pokemon,Entity * target, s32 increment);
void RaiseSpDefStatTarget(Entity * pokemon,Entity * target, s32 increment);
void LongTossStatusTarget(Entity * pokemon,Entity * target);
void PierceStatusTarget(Entity * pokemon,Entity * target);
void SetChargeStatusTarget(Entity *pokemon, Entity *target, u8 newStatus, Move *move, u8 *message);
void sub_8079764(Entity * pokemon);
void CounterStatusTarget(Entity * pokemon, Entity * target, u8 newStatus);
void SafeguardStatusTarget(Entity * pokemon, Entity * target);
void MistStatusTarget(Entity * pokemon, Entity * target);
void WishStatusTarget(Entity * pokemon, Entity * target);
void MagicCoatStatusTarget(Entity * pokemon, Entity * target);
void LightScreenStatusTarget(Entity * pokemon, Entity * target);
void ReflectStatusTarget(Entity * pokemon, Entity * target);
void ProtectStatusTarget(Entity * pokemon, Entity * target);
void MirrorCoatStatusTarget(Entity * pokemon, Entity * target);
void EndureStatusTarget(Entity * pokemon, Entity * target);
void MirrorMoveStatusTarget(Entity * pokemon, Entity * target);
void Conversion2StatusTarget(Entity * pokemon, Entity * target);
void VitalThrowStatusTarget(Entity * pokemon, Entity * target);
void sub_8079F20(Entity * pokemon, Entity * target, u8 param_3, u8 param_4);
void sub_807A0CC(Entity * pokemon, Entity * target);
void SendSleepEndMessage(Entity * pokemon, Entity * target, bool8 param_3, bool8 param_4);
void SendNonVolatileEndMessage(Entity * pokemon, Entity * target);
void SendImmobilizeEndMessage(Entity * pokemon, Entity *target);
void SendVolatileEndMessage(Entity * pokemon, Entity *target);
void SendProtectionEndMessage(Entity * pokemon, Entity *target);
void SendWaitingEndMessage(Entity * pokemon, Entity * target, u8 waitingStatus);
void SendLinkedEndMessage(Entity * pokemon, Entity * target);
void SendMoveEndMessage(Entity * pokemon, Entity * target);
void SendTransformEndMessage(Entity * pokemon, Entity *target);
void SendEyesightEndMessage(Entity * pokemon,Entity * target);
void SendMuzzledEndMessage(Entity * pokemon, Entity * target);
void sub_807A96C(Entity *pokemon, Entity *target);
void WakeUpPokemon(Entity * pokemon);
void SendThawedMessage(Entity *pokemon, Entity *target);
void sub_807AA30(void);
#endif // !GUARD_CODE_8077274_1_H

View File

@@ -1,6 +1,6 @@
#ifndef GUARD_808417C_H
#define GUARD_808417C_H
s32 CalculateStatusTurns(struct Entity *target, s16 *turnRange, bool8 factorCurerSkills);
s32 CalculateStatusTurns(Entity *target, s16 *turnRange, bool8 factorCurerSkills);
#endif // GUARD_808417C_H

42
include/code_80869E4.h Normal file
View File

@@ -0,0 +1,42 @@
#ifndef GUARD_CODE_80869E4_H
#define GUARD_CODE_80869E4_H
#include "dungeon_entity.h"
// size: 0x8
typedef struct unkStruct_202F3D0
{
u8 unk0;
u8 unk1;
u8 unk2;
u8 unk3;
u8 unk4;
u8 unk5;
} unkStruct_202F3D0;
void SpriteLookAroundEffect(Entity *entity);
void SpriteShockEffect(Entity *entity);
void sub_8086448(void);
void sub_8086500(void);
void sub_808654C(void);
void sub_8086598(void);
void sub_80865E8(void);
void sub_808663C(void);
void sub_8086690(void);
void sub_80866C4(const u8 *dialogue);
void sub_8086738(void);
void sub_8086764(void);
void sub_8086794(void);
void sub_80867F4(void);
void sub_808680C(void);
void sub_808682C(void);
void sub_8086838(u8 entity, u8, u8);
void sub_8086848(u8 entity, u8);
void sub_8086854(void);
void sub_80868F4(Entity *entity);
void sub_8086910(Entity *entity);
void sub_808692C(void);
void sub_80869E4(Entity *, s32, u8, s8);
#endif // GUARD_CODE_80869E4_H

View File

@@ -1,21 +1,21 @@
#ifndef GUARD_CODE_8092334_H
#define GUARD_CODE_8092334_H
struct unkStruct_8094924
// size: 0x10?
typedef struct unkStruct_8094924
{
// size: 0x10?
u8 *unk0; // head?
u8 *unk4; // tail?
u32 unk8;
u32 unkC;
};
} unkStruct_8094924;
void xxx_init_struct_8094924_save_809486C(struct unkStruct_8094924 *r0, u8 *r1, s32 size);
void nullsub_102(struct unkStruct_8094924 *r0);
void SaveIntegerBits(struct unkStruct_8094924 *r0, void *r1, s32 size);
void xxx_init_struct_8094924_restore_809485C(struct unkStruct_8094924 *r0, u8 *r1, s32 size);
void sub_80948E4(struct unkStruct_8094924 *r0, u8 *r1, s32 size);
void RestoreIntegerBits(struct unkStruct_8094924 *r0, void *r1, s32 size);
void nullsub_102(unkStruct_8094924 *);
void RestoreIntegerBits(unkStruct_8094924 *, void *, s32 size);
void SaveIntegerBits(unkStruct_8094924 *, void *, s32 size);
void xxx_init_struct_8094924_restore_809485C(unkStruct_8094924 *, u8 *, s32 size);
void xxx_init_struct_8094924_save_809486C(unkStruct_8094924 *, u8 *, s32 size);
#endif
void sub_80948E4(unkStruct_8094924 *, u8 *, s32 size);
#endif // GUARD_CODE_8092334_H

View File

@@ -1,12 +1,13 @@
#ifndef GUARD_CODE_809447C_H
#define GUARD_CODE_809447C_H
struct unkStruct_80928C0
// size: 0xC
typedef struct unkStruct_80928C0
{
u32 unk0;
s32 unk4;
u8 unk8;
u8 unk9;
};
} unkStruct_80928C0;
#endif
#endif // GUARD_CODE_809447C_H

View File

@@ -1,20 +1,24 @@
#ifndef GUARD_CODE_8094F88_H
#define GUARD_CODE_8094F88_H
#include "item.h"
#include "code_8092334.h"
#include "dungeon_global_data.h"
#include "items.h"
#include "pokemon.h"
struct WonderMailSub
// size: 0x8
typedef struct WonderMailSub
{
/* 0x4 */ struct DungeonLocation dungeon;
u32 seed;
};
/* 0x0 */ DungeonLocation dungeon;
/* 0x4 */ u32 seed;
} WonderMailSub;
// size: 0x30
struct unkStruct_203B480
typedef struct unkStruct_203B480
{
/* 0x0 */ u8 mailType;
/* 0x1 */ u8 missionType;
struct WonderMailSub unk4;
WonderMailSub unk4;
/* 0xC */ s16 clientSpecies;
/* 0xE */ s16 targetSpecies;
union unk10_temp
@@ -23,53 +27,53 @@ struct unkStruct_203B480
u16 unk10_u16;
} unk10;
/* 0x14 */ u8 playerName[0x20 - 0x14];
struct Item item;
Item item;
u32 unk24;
u32 unk28;
/* 0x2C */ s8 rescuesAllowed;
u8 unk2D;
};
} unkStruct_203B480;
// size: 0x5C
struct unkStruct_203B484
typedef struct unkStruct_203B484
{
/* 0x0 */ u32 unk0;
/* 0x4 */ struct PokemonStruct unk4;
};
/* 0x4 */ PokemonStruct1 unk4;
} unkStruct_203B484;
// size: 0x84
struct unkStruct_203B48C
typedef struct unkStruct_203B48C
{
/* 0x0 */ s32 unk0;
/* 0x4 */ s32 unk4[0x20];
};
} unkStruct_203B48C;
extern struct unkStruct_203B480 *gUnknown_203B480;
extern struct unkStruct_203B484 *gUnknown_203B484;
extern unkStruct_203B480 *gUnknown_203B480;
extern unkStruct_203B484 *gUnknown_203B484;
extern u32 *gUnknown_203B488;
extern struct unkStruct_203B48C *gUnknown_203B48C;
extern unkStruct_203B48C *gUnknown_203B48C;
void sub_80950BC(void);
struct unkStruct_203B480 *sub_80950F8(void);
struct unkStruct_203B484 *sub_8095100(void);
unkStruct_203B480 *sub_80950F8(void);
unkStruct_203B484 *sub_8095100(void);
u32 *sub_8095108(void);
struct unkStruct_203B48C *sub_8095110(void);
unkStruct_203B48C *sub_8095110(void);
void sub_8095118(void);
s32 FindOpenMailSlot(void);
bool8 sub_80951BC(struct unkStruct_203B480 *mail);
bool8 sub_80951FC(struct unkStruct_203B480 *param_1);
struct unkStruct_203B480 * GetMailatIndex(u8 index);
bool8 sub_80951BC(unkStruct_203B480 *mail);
bool8 sub_80951FC(unkStruct_203B480 *);
unkStruct_203B480 * GetMailatIndex(u8 index);
void DeleteMailAtIndex(u8 index);
void sub_8095274(u32 param_1);
bool8 sub_8095298(s32 param_1);
void sub_8095274(u32);
bool8 sub_8095298(s32);
void sub_80952C4(void);
bool8 HasMail(u8 mailType, u32 param_2);
bool8 HasMail(u8 mailType, u32);
s32 CountMailType(u8 mailType);
u32 CountAllMail(void);
s32 sub_8095374(void);
s32 GetMailIndex(u8 mailType, u32 param_2);
s32 GetMailIndex(u8 mailType, u32);
s32 GetFirstIndexofMailType(u8 mailType);
void sub_8095824(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
void sub_8095774(struct unkStruct_8094924 * a, struct unkStruct_203B480 *b);
void sub_8095824(struct unkStruct_8094924 *a, unkStruct_203B480 *b);
void sub_8095774(struct unkStruct_8094924 *a, unkStruct_203B480 *b);
#endif
#endif // GUARD_CODE_8094F88_H

View File

@@ -1,26 +1,30 @@
#ifndef GUARD_CODE_80958E8_H
#define GUARD_CODE_80958E8_H
#include "wonder_mail.h"
#include "constants/mailbox.h"
struct subStruct_203B490
// size: 0xC
typedef struct subStruct_203B490
{
// size: 0xC
struct DungeonLocation dungeon;
u32 seed;
/* 0x0 */ DungeonLocation dungeon;
/* 0x4 */ u32 seed;
u32 unk8;
};
} subStruct_203B490;
struct unkStruct_203B490
// size: 0x32C?
typedef struct unkStruct_203B490
{
// size: 0x330?
/* 0x0 */ struct WonderMail mailboxSlots[NUM_MAILBOX_SLOTS];
/* 0x50 */ struct WonderMail pelipperBoardJobs[MAX_ACCEPTED_JOBS];
/* 0xF0 */ struct WonderMail jobSlots[MAX_ACCEPTED_JOBS];
/* 0x0 */ WonderMail mailboxSlots[NUM_MAILBOX_SLOTS];
/* 0x50 */ WonderMail pelipperBoardJobs[MAX_ACCEPTED_JOBS];
/* 0xF0 */ WonderMail jobSlots[MAX_ACCEPTED_JOBS];
u8 unk190[0x28];
u8 unk1B8[0x78];
struct subStruct_203B490 unk230[16];
u8 PKMNNewsReceived[NUM_POKEMON_NEWS];
subStruct_203B490 unk230[16];
/* 0x2F0 */ u8 PKMNNewsReceived[NUM_POKEMON_NEWS];
bool8 unk328;
};
} unkStruct_203B490;
extern struct unkStruct_203B490 *gUnknown_203B490;
extern unkStruct_203B490 *gUnknown_203B490;
#endif // GUARD_CODE_80958E8_H

9
include/code_80958E8_1.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef GUARD_CODE_80958E8_1_H
#define GUARD_CODE_80958E8_1_H
#include "wonder_mail.h"
s32 CountJobsinDungeon(u8 dungeon);
WonderMail *GetJobSlotInfo(u8 index);
#endif // GUARD_CODE_80958E8_1_H

25
include/code_80972F4.h Normal file
View File

@@ -0,0 +1,25 @@
#ifndef GUARD_CODE_80972F4_H
#define GUARD_CODE_80972F4_H
// size: 0x8
typedef struct MissionText
{
/* 0x0 */ u8 *text;
u8 unk4;
u8 unk5;
u8 unk6;
u8 unk7;
} MissionText;
const u8 *GetCurrentMissionText(s16 index);
// TODO: this should probably be bool8 but can't get a match just yet
bool32 IsMazeCompleted(s16 mazeIndex);
bool8 sub_8097504(s16 mazeIndex);
const u8 *sub_80975DC(u32);
// These two are definitely bool8 but can't get them to match with it yet
//bool8 sub_8097384(s16);
//bool8 sub_80973F4(s16);
#endif // GUARD_CODE_80972F4_H

View File

@@ -10,7 +10,7 @@ struct unkStruct_203B494
/* 0x4 */ s32 numAdventures;
s32 unk8;
s32 unkC;
/* 0x10 */ struct DungeonLocation dungeonLocation;
/* 0x10 */ DungeonLocation dungeonLocation;
s16 unk14;
s16 unk16;
s16 unk18;
@@ -20,6 +20,26 @@ struct unkStruct_203B494
s32 unkC0;
};
extern struct unkStruct_203B494 *gUnknown_203B494;
const u8 *GetAdventureLogLine(u8 index);
DungeonLocation *GetDungeonLocationInfo(void);
s32 GetNumAdventures(void);
void ResetNumAdventures(void);
void sub_8097670(void);
struct unkStruct_203B494 *sub_8097680(void);
void sub_80976A8(void);
void sub_80976F8(u8);
bool8 sub_8097710(u8);
void sub_8097790(void);
s32 sub_80977B8(void);
void sub_80977D0(void);
s32 sub_80977F8(void);
s16 sub_8097838(void);
void sub_8097848(void);
s16 sub_8097870(void);
s16 sub_8097880(void);
s16 sub_80978B8(void);
#endif // GUARD_CODE_8097670_H

9
include/code_8098BDC.h Normal file
View File

@@ -0,0 +1,9 @@
#ifndef GUARD_CODE_8098BDC_H
#define GUARD_CODE_8098BDC_H
// code_8098DBC.s
extern void sub_80993D8(void);
extern void sub_80993E4(void);
extern void sub_8099690(u32);
#endif // GUARD_CODE_8098BDC_H

View File

@@ -1,4 +1,8 @@
struct unkStruct_80A2608
#ifndef GUARD_CODE_80A26CC_H
#define GUARD_CODE_80A26CC_H
// size: 0x14
typedef struct unkStruct_80A2608
{
/* 0x0 */ s16 unk0;
/* 0x2 */ s16 unk2;
@@ -11,7 +15,29 @@ struct unkStruct_80A2608
/* 0xE */ s16 unkE;
/* 0x10 */ u8 unk10;
/* 0x11 */ u8 unk11;
};
} unkStruct_80A2608;
struct unkStruct_80A2608 *sub_80A2608(s16 r0);
struct unkStruct_80A2608 *sub_80A2620(s16 r0);
void sub_80A2500(s32, s16 *);
void sub_80A252C(s32, s16 *);
void sub_80A2558(s32, s16 *);
void sub_80A2584(s16, s16);
void sub_80A2598(s16, s16);
u32 sub_80A25AC(u16);
const unkStruct_80A2608 *sub_80A2608(s16 index);
const unkStruct_80A2608 *sub_80A2620(s16 index);
s16 sub_80A2654(s16 index);
s16 sub_80A2668(u32);
s16 sub_80A2688(u8);
s16 sub_80A26B8(s16);
s16 sub_80A26CC(s16);
u8 sub_80A270C(s16 index);
u8 sub_80A2728(s16 index);
u8 sub_80A2740(s32 index);
s16 sub_80A2750(s16);
bool8 sub_80A27CC(s16);
bool8 sub_80A2824(u8 index);
bool8 sub_80A28F0(u8 index);
s32 sub_80A29B0(u8 *);
const u8 *sub_80A2B18(s16);
#endif // GUARD_CODE_80A26CC_H

View File

@@ -1,7 +1,11 @@
#ifndef GUARD_CONSTANTS_ITEM_H
#define GUARD_CONSTANTS_ITEM_H
#define NUMBER_OF_ITEM_IDS 0xF0
#define MAX_KECLEON_ITEM_SHOP_ITEMS 8
#define MAX_KECLEON_WARE_SHOP_ITEMS 4
#define MAX_TEAM_MONEY 99999
#define MAX_TEAM_SAVINGS 9999999
#define CATEGORY_THROWN_LINE 0
#define CATEGORY_THROWN_ARC 1
@@ -272,4 +276,13 @@
#define ITEM_G_MACHINE_7 0xEE
#define ITEM_G_MACHINE_8 0xEF
#endif
#define NUMBER_OF_ITEM_IDS (ITEM_G_MACHINE_8 + 1)
#define NUMBER_OF_GUMMIS 18
#define INVENTORY_SIZE 20
#define STORAGE_SIZE NUMBER_OF_ITEM_IDS
#define MIN_SPAWN_AMOUNT 0
#define MAX_SPAWN_AMOUNT 1
#endif // GUARD_CONSTANTS_ITEM_H

View File

@@ -34,7 +34,8 @@ enum AccuracyType
NUM_ACCURACY_TYPES
};
struct MoveDataEntry
// size: 0x24
typedef struct MoveDataEntry
{
/* 0x0 */ u8 *name;
/* 0x4 */ s16 basePower;
@@ -57,16 +58,17 @@ struct MoveDataEntry
/* 0x19 */ u8 rangeID;
/* 0x1C */ u8 *description;
/* 0x20 */ u8 *useText; // The text displayed when this move is used.
};
} MoveDataEntry;
struct Move
// size: 0x8
typedef struct Move
{
u8 moveFlags;
u8 moveFlags2;
u16 id;
u8 PP;
u8 ginseng; // How much the move is boosted by Ginsengs.
};
} Move;
enum TargetingFlag
{
@@ -94,4 +96,4 @@ enum TargetingFlag
TARGETING_FLAG_EXPOSE = 0x600,
};
#endif
#endif // GUARD_CONSTANTS_MOVE_H

View File

@@ -1,16 +1,17 @@
#ifndef GUARD_DEBUG_H
#define GUARD_DEBUG_H
#include "gba/gba.h"
struct DebugLocation
// size: 0xC
typedef struct DebugLocation
{
char *file;
u32 line;
char *func;
};
/* 0x0 */ u8 *file;
/* 0x4 */ u32 line;
/* 0x8 */ u8 *func;
} DebugLocation;
void Log(u8 num, const char *text, ...);
void Log(u8 num, const u8 *text, ...);
void NDS_DebugInit(void);
void nullsub_25(void);
void nullsub_26(void);
@@ -22,17 +23,17 @@ void nullsub_31(void);
void nullsub_32(void);
void nullsub_137(void);
void nullsub_199(void);
void PrintFuncFileLineOrNotEntry(char * buf, struct DebugLocation *debug);
void PrintFuncFileLine(char *buf, struct DebugLocation *loc, const char* prefix);
void PrintMessageWithFuncFileLine(u8 *buffer, struct DebugLocation *debug, const char *text, ...);
void PrintFuncFileLine(u8 *buf, DebugLocation *loc, const u8 *prefix);
void PrintMessageWithFuncFileLine(u8 *buffer, DebugLocation *debug, const u8 *text, ...);
void sub_8011B08(void);
void sub_8011B88(const char *text, ...);
void sub_8011B88(const u8 *text, ...);
u32 sub_8011BA4(void);
u32 sub_8011BA8(void);
const char *sub_8011BAC(void);
const u8 *sub_8011BAC(void);
void sub_8011B14(void);
u8 sub_8011B20(void);
u8 sub_8011B3C(void);
void sub_8011BC8(u32 r0, u32 r1, u32 r2, ...);
void sub_8011BC8(u32, u32, u32, ...);
void UnusedHang(void);
#endif
#endif // GUARD_DEBUG_H

View File

@@ -7,8 +7,8 @@
// size: 0x1A4
struct DebugMenu
{
struct MenuStruct unk0[4];
struct UnkTextStruct2 unk140[4];
MenuStruct unk0[4];
UnkTextStruct2 unk140[4];
u32 fill1A0;
};

View File

@@ -10,19 +10,19 @@ struct unkStruct_203B3F0
/* 0x0 */ u32 state;
/* 0x4 */ u8 id;
/* 0x8 */ u32 menuAction;
/* 0xC */ struct MenuItem menuItems[8];
struct MenuStruct unk4C;
/* 0xC */ MenuItem menuItems[8];
MenuStruct unk4C;
u32 unk9C;
u32 unkA0;
u32 unkA4;
u32 unkA8;
u32 unkAC;
u32 unkB0;
struct UnkTextStruct2 *unkB4;
UnkTextStruct2 *unkB4;
u32 unkB8;
u32 unkBC;
u8 fill4[0xD8 - 0xC0];
struct UnkTextStruct2 unkD8[4];
UnkTextStruct2 unkD8[4];
};
#endif // GUARD_DEBUG_MENU2_H

View File

@@ -5,14 +5,14 @@
#include "text.h"
// size: 0xFC
struct unkStruct_203B3F4
typedef struct unkStruct_203B3F4
{
/* 0x0 */ u32 state;
/* 0x4 */ u8 friendArea;
/* 0x8 */ u32 menuAction;
/* 0xC */ struct MenuItem menuItems[8];
struct MenuStruct unk4C;
struct UnkTextStruct2 unk9C[4];
};
/* 0xC */ MenuItem menuItems[8];
MenuStruct unk4C;
UnkTextStruct2 unk9C[4];
} unkStruct_203B3F4;
#endif // GUARD_DEBUG_MENU3_H

View File

@@ -6,27 +6,27 @@
#include "text.h"
// size: 0x140
struct unkStruct_203B3F8
typedef struct unkStruct_203B3F8
{
/* 0x0 */ u32 state;
s16 unk4;
u16 unk6;
/* 0x8 */ struct PokemonStruct *pokemon;
/* 0x8 */ PokemonStruct1 *pokemon;
/* 0xC */ u32 menuAction;
struct MenuStruct unk10;
MenuStruct unk10;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
struct UnkTextStruct2 *unk78;
UnkTextStruct2 *unk78;
u32 unk7C;
u32 unk80;
u8 fill84[0x90 - 0x84];
struct MenuItem unk90[8];
MenuItem unk90[8];
u16 unkD0[8];
struct UnkTextStruct2 unkE0[4];
};
UnkTextStruct2 unkE0[4];
} unkStruct_203B3F8;
#endif // GUARD_DEBUG_MENU4_H

14
include/decompress.h Normal file
View File

@@ -0,0 +1,14 @@
#ifndef GUARD_DECOMPRESS_H
#define GUARD_DECOMPRESS_H
#include "file_system.h"
u32 DecompressAT(u8 *result, s32 resultLength, const u8 *compressedData);
u32 DecompressATFile(u8 *result, s32 resultLength, OpenedFile *file);
u32 DecompressATGlobalFile(u32 *result, s32 resultLength, OpenedFile *file);
u8 *GetSiroPtr(OpenedFile *openedFile);
void nullsub_16(void);
bool8 sub_800B2D4(char *, char *, s32 length);
#endif // GUARD_DECOMPRESS_H

View File

@@ -4,14 +4,14 @@
#include "dungeon_global_data.h"
// size: 0x8
struct DungeonName
typedef struct DungeonName
{
const u8 *name1;
const u8 *name2;
};
} DungeonName;
// size: 0x10
struct DungeonDataEntry
typedef struct DungeonDataEntry
{
/* 0x0 */ bool8 stairDirectionUp;
// If enabled, enemies will evolve when a team member is KOed (and doesn't revive) if their evolution spawns on the floor.
@@ -31,17 +31,20 @@ struct DungeonDataEntry
// The chance that a wild Pokémon's moveRandomly flag will be set when spawning,
// causing them to move randomly inside a room instead of exploring rooms.
/* 0xE */ s16 randomMovementChance;
};
} DungeonDataEntry;
extern struct DungeonDataEntry gDungeons[];
extern struct DungeonName gDungeonNames[];
extern DungeonDataEntry gDungeons[];
extern DungeonName gDungeonNames[];
s32 GetDungeonFloorCount(u8 dungeon);
const u8 *GetDungeonName1(u8 dungeon);
u32 sub_80908D8(struct DungeonLocation *dungeon);
u8 sub_8090910(struct DungeonLocation *dungeon, u32 param_2);
bool8 sub_809095C(u8 dungeon);
u32 GetMaxItemsAllowed(u8 dungeon);
s8 GetRescuesAllowed(u8 dungeon);
bool8 HasCheckpoint(u8 dungeon);
s32 GetDungeonFloorCount(u8 dungeon);
void PrintYellowDungeonNametoBuffer(u8 *buffer, DungeonLocation *dungeonLocation);
#endif //GUARD_DUNGEON_H
u32 sub_80908D8(DungeonLocation *dungeon);
u8 sub_8090910(DungeonLocation *dungeon, u32 param_2);
bool8 sub_809095C(u8 dungeon);
#endif // GUARD_DUNGEON_H

View File

@@ -3,8 +3,8 @@
#include "dungeon_entity.h"
void ClearMonsterActionFields(struct ActionContainer *actionPointer);
void SetMonsterActionFields(struct ActionContainer *actionPointer, u16 action);
void SetActionPassTurnOrWalk(struct ActionContainer *actionPointer, s16 species);
void ClearMonsterActionFields(ActionContainer *actionPointer);
void SetMonsterActionFields(ActionContainer *actionPointer, u16 action);
void SetActionPassTurnOrWalk(ActionContainer *actionPointer, s16 species);
#endif

View File

@@ -3,8 +3,8 @@
#include "dungeon_entity.h"
u32 sub_8075818(struct Entity *entity);
void sub_8075900(struct Entity *pokemon, u8 r1);
void RunMonsterAI(struct Entity *pokemon, u32 unused);
u32 sub_8075818(Entity *entity);
void sub_8075900(Entity *pokemon, u8 r1);
void RunMonsterAI(Entity *pokemon, u32 unused);
#endif

View File

@@ -13,13 +13,13 @@ struct AIPossibleMove
s32 weight;
};
void DecideAttack(struct Entity *pokemon);
s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, struct Entity *pokemon, struct Move *move);
bool8 IsTargetInLineRange(struct Entity *user, struct Entity *target, s32 range);
s32 TryAddTargetToAITargetList(s32 numPotentialTargets, s32 targetingFlags, struct Entity *user, struct Entity *target, struct Move *move, u32 hasStatusChecker);
bool8 IsAITargetEligible(s32 targetingFlags, struct Entity *user, struct Entity *target, struct Move *move, bool32 hasStatusChecker);
s32 WeightMove(struct Entity *user, s32 targetingFlags, struct Entity *target, u32 moveType);
bool8 TargetRegularAttack(struct Entity *pokemon, u32 *targetDir, bool8 checkPetrified);
bool8 IsTargetInRange(struct Entity *pokemon, struct Entity *targetPokemon, s32 direction, s32 maxRange);
void DecideAttack(Entity *pokemon);
s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move *move);
bool8 IsTargetInLineRange(Entity *user, Entity *target, s32 range);
s32 TryAddTargetToAITargetList(s32 numPotentialTargets, s32 targetingFlags, Entity *user, Entity *target, Move *move, u32 hasStatusChecker);
bool8 IsAITargetEligible(s32 targetingFlags, Entity *user, Entity *target, Move *move, bool32 hasStatusChecker);
s32 WeightMove(Entity *user, s32 targetingFlags, Entity *target, u32 moveType);
bool8 TargetRegularAttack(Entity *pokemon, u32 *targetDir, bool8 checkPetrified);
bool8 IsTargetInRange(Entity *pokemon, Entity *targetPokemon, s32 direction, s32 maxRange);
#endif

View File

@@ -3,7 +3,7 @@
#include "dungeon_entity.h"
u32 EvaluateItem(struct Entity *targetPokemon, struct Item *item, u32 itemTargetFlags);
bool8 CanTargetAdjacentPokemon(struct Entity *pokemon);
u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags);
bool8 CanTargetAdjacentPokemon(Entity *pokemon);
#endif

View File

@@ -4,9 +4,9 @@
#include "dungeon_entity.h"
#include "position.h"
void DecideUseItem(struct Entity *pokemon);
void FindStraightThrowableTargets(struct Entity *pokemon, s32 thrownAIFlag, struct Item *item, bool8 ignoreRollChance);
void FindRockItemTargets(struct Entity *pokemon, struct Item *item, struct Position potentialTargets[], bool8 ignoreRollChance);
void TargetThrownItem(struct Entity *pokemon, struct Entity *targetPokemon, struct Item *item, s32 targetingFlags, bool8 ignoreRollChance);
void DecideUseItem(Entity *pokemon);
void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance);
void FindRockItemTargets(Entity *pokemon, Item *item, Position potentialTargets[], bool8 ignoreRollChance);
void TargetThrownItem(Entity *pokemon, Entity *targetPokemon, Item *item, s32 targetingFlags, bool8 ignoreRollChance);
#endif

View File

@@ -3,7 +3,7 @@
#include "dungeon_entity.h"
bool8 TargetLeader(struct Entity *pokemon);
struct Entity* GetLeaderIfVisible(struct Entity *pokemon);
bool8 TargetLeader(Entity *pokemon);
Entity* GetLeaderIfVisible(Entity *pokemon);
#endif

View File

@@ -3,11 +3,11 @@
#include "dungeon_entity.h"
void MoveIfPossible(struct Entity *pokemon, bool8 showRunAwayEffect);
bool8 CanTakeItem(struct Entity *pokemon);
bool8 ChooseTargetPosition(struct Entity *pokemon);
void DecideMovement(struct Entity *pokemon, bool8 showRunAwayEffect);
bool8 AvoidEnemies(struct Entity *pokemon);
bool8 Wander(struct Entity *pokemon);
void MoveIfPossible(Entity *pokemon, bool8 showRunAwayEffect);
bool8 CanTakeItem(Entity *pokemon);
bool8 ChooseTargetPosition(Entity *pokemon);
void DecideMovement(Entity *pokemon, bool8 showRunAwayEffect);
bool8 AvoidEnemies(Entity *pokemon);
bool8 Wander(Entity *pokemon);
#endif

View File

@@ -3,14 +3,14 @@
#include "dungeon_entity.h"
bool8 CanAttackInDirection(struct Entity *pokemon, s32 direction);
bool8 CanAIMonsterMoveInDirection(struct Entity *pokemon, s32 direction, bool8 *pokemonInFront);
bool8 IsAtJunction(struct Entity *pokemon);
bool8 ShouldAvoidFirstHit(struct Entity *pokemon, bool8 forceAvoid);
bool8 ShouldMonsterRunAway(struct Entity *pokemon);
bool8 ShouldMonsterRunAwayAndShowEffect(struct Entity *pokemon, bool8 showRunAwayEffect);
void CheckRunAwayVisualFlag(struct Entity *pokemon, bool8 showRunAwayEffect);
u8 CanTarget(struct Entity *pokemon, struct Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified);
u8 sub_807167C(struct Entity * pokemon, struct Entity * target);
bool8 CanAttackInDirection(Entity *pokemon, s32 direction);
bool8 CanAIMonsterMoveInDirection(Entity *pokemon, s32 direction, bool8 *pokemonInFront);
bool8 IsAtJunction(Entity *pokemon);
bool8 ShouldAvoidFirstHit(Entity *pokemon, bool8 forceAvoid);
bool8 ShouldMonsterRunAway(Entity *pokemon);
bool8 ShouldMonsterRunAwayAndShowEffect(Entity *pokemon, bool8 showRunAwayEffect);
void CheckRunAwayVisualFlag(Entity *pokemon, bool8 showRunAwayEffect);
u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified);
u8 sub_807167C(Entity * pokemon, Entity * target);
#endif

View File

@@ -3,11 +3,11 @@
#include "dungeon_entity.h"
bool8 CannotMove(struct Entity *pokemon, bool8 checkBlinker);
bool8 sub_8070BC0(struct Entity* entity);
bool8 CannotUseItems(struct Entity *pokemon);
bool8 HasStatusThatPreventsActing(struct Entity *pokemon);
bool8 CannotAttack(struct Entity *pokemon, bool8 skipSleep);
bool8 CanMoveInDirection(struct Entity *pokemon, u32 direction);
bool8 CannotMove(Entity *pokemon, bool8 checkBlinker);
bool8 sub_8070BC0(Entity* entity);
bool8 CannotUseItems(Entity *pokemon);
bool8 HasStatusThatPreventsActing(Entity *pokemon);
bool8 CannotAttack(Entity *pokemon, bool8 skipSleep);
bool8 CanMoveInDirection(Entity *pokemon, u32 direction);
#endif

View File

@@ -3,7 +3,7 @@
#include "constants/global.h"
#include "constants/move.h"
#include "item.h"
#include "items.h"
#include "position.h"
#include "sprite.h"
@@ -24,7 +24,7 @@
#define STAT_STAGE_EVASION 1
// size: 0x18
struct ActionContainer
typedef struct ActionContainer
{
/* 0x0 */ u16 action;
/* 0x2 */ u8 direction;
@@ -32,16 +32,16 @@ struct ActionContainer
// Additional parameter alongside actionIndex. Used for things like indicating which move a Pokémon should use from its moveset.
/* 0x4 */ u8 actionUseIndex;
// Position of the Pokémon the last time it threw an item.
/* 0x8 */ struct Position lastItemThrowPosition;
/* 0x8 */ Position lastItemThrowPosition;
u8 unkC;
u8 fillD[3];
u8 fill10[4];
// Position of the target that the Pokémon wants throw an item at.
/* 0x14 */ struct Position itemTargetPosition;
};
/* 0x14 */ Position itemTargetPosition;
} ActionContainer;
// size: 0x208
struct EntityInfo
typedef struct EntityInfo
{
// This has different purposes for Pokémon, items, and traps.
// Pokemon: MovementFlag
@@ -85,12 +85,12 @@ struct EntityInfo
/* 0x3E */ u8 hiddenPowerType;
u8 fill3F;
/* 0x40 */ u8 joinedAt; // Uses the dungeon index in dungeon.h.
/* 0x44 */ struct ActionContainer action;
/* 0x44 */ ActionContainer action;
/* 0x5C */ u8 types[2];
/* 0x5E */ u8 abilities[2];
/* 0x60 */ struct Item heldItem;
/* 0x60 */ Item heldItem;
u8 fill64[0x68 - 0x64];
/* 0x68 */ struct Position prevPos[NUM_PREV_POS];
/* 0x68 */ Position prevPos[NUM_PREV_POS];
/* 0x78 */ u8 aiObjective;
/* 0x79 */ bool8 aiNotNextToTarget;
/* 0x7A */ bool8 aiTargetingEnemy;
@@ -98,7 +98,7 @@ struct EntityInfo
/* 0x7C */ u16 aiTargetSpawnGenID;
/* 0x80 */ struct Entity *aiTarget;
u8 fill84[0x88 - 0x84];
/* 0x88 */ struct Position aiTargetPos;
/* 0x88 */ Position aiTargetPos;
// Bitwise flags corresponding to selected IQ skills.
/* 0x8C */ u8 IQSkillMenuFlags[4]; // IQ skills selected in the IQ skills menu.
/* 0x90 */ u8 IQSkillFlags[4];
@@ -191,7 +191,7 @@ struct EntityInfo
// When non-zero, an AI Pokémon will move in a random direction every turn when it is a room.
// There is a chance of this flag being set when a wild Pokémon spawns. The chance depends on the dungeon's randomMovementChance.
/* 0x114 */ u32 moveRandomly;
/* 0x118 */ struct Move moves[MAX_MON_MOVES];
/* 0x118 */ Move moves[MAX_MON_MOVES];
/* 0x138 */ u8 struggleMoveFlags;
/* 0x13C */ u32 belly;
/* 0x140 */ u32 maxBelly;
@@ -228,17 +228,17 @@ struct EntityInfo
/* 0x167 */ u8 unk167;
/* 0x168 */ u8 unk168;
/* 0x169 */ u8 turnsSinceWarpScarfActivation;
/* 0x16C */ struct Position targetPos;
/* 0x170 */ struct Position pixelPos;
/* 0x16C */ Position targetPos;
/* 0x170 */ Position pixelPos;
u32 unk174;
u16 unk178;
/* 0x17A */ u16 mimicMoveIDs[MAX_MON_MOVES]; // All moves that Mimic has copied (not sure on size...)
// Previous value of targetPosition for movement, 1 and 2 moves ago.
/* 0x184 */ struct Position previousTargetMovePosition1;
/* 0x188 */ struct Position32 previousTargetMovePosition2;
/* 0x184 */ Position previousTargetMovePosition1;
/* 0x188 */ Position32 previousTargetMovePosition2;
/* 0x190 */ u8 lastMoveDirection; // The last direction that the Pokémon moved in.
// Number of tiles that the Pokémon moved last, multiplied by 0x100.
/* 0x194 */ struct Position32 lastMoveIncrement;
/* 0x194 */ Position32 lastMoveIncrement;
/* 0x19C */ u8 walkAnimFramesLeft; // Set when the Pokémon starts moving, and counts down until the Pokémon's walk animation stops.
u8 fill19D[0x1F4 - 0x19D];
/* 0x1F4 */ u8 numMoveTiles; // Number of tiles to move in a turn. Can be greater than 1 if the user's movement speed is boosted.
@@ -249,18 +249,18 @@ struct EntityInfo
/* 0x1FC */ u16 expGainedInTurn; // Used to accumulate experience when multiple enemies are defeated in one turn.
/* 0x200 */ u32 statusIcons;
u8 unk204;
};
} EntityInfo;
// size: 0x74 | Used for Pokémon, items, and traps.
struct Entity
typedef struct Entity
{
/* 0x0 */ u32 type;
/* 0x4 */ struct Position pos;
/* 0x8 */ struct Position prevPos;
/* 0x4 */ Position pos;
/* 0x8 */ Position prevPos;
// The center of the entity acccording to pixel-space coordinates, using the same origin as posWorld.
// X = (posWorld * 24 + 16) * 256, while Y = (posWorld * 24 + 12) * 256.
/* 0xC */ struct Position32 pixelPos;
/* 0x14 */ struct Position32 prevPixelPos;
/* 0xC */ Position32 pixelPos;
/* 0x14 */ Position32 prevPixelPos;
s32 unk1C;
/* 0x20 */ bool8 isVisible; // Turned off when a Pokémon faints.
u8 fill21;
@@ -271,8 +271,8 @@ struct Entity
// The global spawn index counter starts at 10. Each Pokémon that spawns increments the counter and
// gets assigned the current counter value as its spawn index.
/* 0x26 */ u16 spawnGenID;
/* 0x28*/ struct EntitySpriteInfo spriteInfo;
struct OpenedFile *sprite;
/* 0x28*/ EntitySpriteInfo spriteInfo;
OpenedFile *sprite;
s16 unk68;
u8 unk6A;
u8 unk6B;
@@ -280,8 +280,8 @@ struct Entity
/* 0x6D */ u8 direction2; // Duplicate of 0x6C?
u8 unk6E;
u8 unk6F;
/* 0x70 */ struct EntityInfo *info;
};
/* 0x70 */ EntityInfo *info;
} Entity;
enum EntityType
{

View File

@@ -14,32 +14,30 @@
#define DUNGEON_MAX_WILD_POKEMON 16
#define DUNGEON_MAX_POKEMON MAX_TEAM_MEMBERS + DUNGEON_MAX_WILD_POKEMON
extern struct Dungeon *gDungeon;
// size: 0x4
struct DungeonLocation
typedef struct DungeonLocation
{
/* 0x0 */ u8 id;
/* 0x1 */ u8 floor;
};
} DungeonLocation;
// size: 0x4
struct Dungeon_sub
typedef struct Dungeon_sub
{
u8 unk0;
u8 unk1;
u8 unk2;
};
} Dungeon_sub;
// size: 0x30
struct unkDungeonGlobal_unk1CE98_sub
typedef struct unkDungeonGlobal_unk1CE98_sub
{
/* 0x0 */ u8 buffer1[10];
/* 0xA */ u8 buffer2[10];
/* 0x14 */ s16 moveID;
/* 0x16 */ u8 fill16[0x2];
/* 0x18 */ struct DungeonLocation dungeonLocation;
/* 0x1C */ struct Item heldItem;
/* 0x18 */ DungeonLocation dungeonLocation;
/* 0x1C */ Item heldItem;
/* 0x20 */ u32 exp;
/* 0x24 */ s16 maxHPStat;
/* 0x26 */ u8 atk;
@@ -52,10 +50,10 @@ struct unkDungeonGlobal_unk1CE98_sub
/* 0x2D */ u8 defBoost;
/* 0x2E */ u8 spDefBoost;
u8 unk2F; // speedBoost?
};
} unkDungeonGlobal_unk1CE98_sub;
// size: 0x10
struct DungeonMusicPlayer
typedef struct DungeonMusicPlayer
{
/* 0x0 */ u32 state;
/* 0x4 */ u32 fadeOutSpeed;
@@ -63,10 +61,10 @@ struct DungeonMusicPlayer
/* 0xA */ u16 songIndex;
/* 0xC */ u16 pastSongIndex;
/* 0xE */ u16 queuedSongIndex;
};
} DungeonMusicPlayer;
// size: 0x1CEDC
struct Dungeon
typedef struct Dungeon
{
u8 unk0;
u8 unk1;
@@ -85,16 +83,16 @@ struct Dungeon
u8 unk11;
s16 unk12;
u8 fill14[0xB8 - 0x14];
struct Entity *unkB8;
struct Entity *unkBC;
Entity *unkB8;
Entity *unkBC;
u8 fillC0[0x16D - 0xC0];
u8 unk16D;
u8 fill16E[0x179 - 0x16E];
/* 0x179 */ bool8 pokemonExposed; // True if a Pokémon on the floor has the Exposed status.
u8 fill17A[0x17C - 0x17A];
struct Dungeon_sub unk17C[0x100];
Dungeon_sub unk17C[0x100];
/* 0x57C */ u8 fill57C[0x644 - 0x57c];
/* 0x644 */ struct DungeonLocation dungeonLocation;
/* 0x644 */ DungeonLocation dungeonLocation;
u8 fill646[0x654 - 0x648];
u8 unk654;
u8 fill655[0x65C - 0x655];
@@ -126,7 +124,7 @@ struct Dungeon
u8 fill68B[0x699 - 0x68B];
u8 unk699;
u8 fill69A[0x69C - 0x69A];
/* 0x69C */ struct EntityInfo unk69C[4];
/* 0x69C */ EntityInfo unk69C[4];
u8 fillEBC[0x363C - 0xEBC];
/* 0x363C */ u8 expYieldRankings[NUM_MONSTERS];
u8 fill37D9[0x37F0 - 0x37D9];
@@ -147,9 +145,9 @@ struct Dungeon
/* 0x3A10 */ u16 unk3A10;
u8 fill3A10[0x3A14 - 0x3A12];
/* 0x3A14 */ s16 bossBattleIndex;
/* 0x3A18 */ struct Tile tiles[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X];
/* 0x3A18 */ Tile tiles[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X];
u8 fillE218[0xE220 - 0xE218];
struct Position unkE220[4];
Position unkE220[4];
u8 unkE230[0xE23C - 0xE230];
s16 unkE23C; // x coord of some kind
s16 unkE23E; // y coord of some kind
@@ -168,13 +166,13 @@ struct Dungeon
/* 0xE278 */ u8 waterSportTurns;
/* 0xE279 */ bool8 nullifyWeather; // Air Lock and Cloud Nine toggle this to disable weather effects
u8 fillE27A[0xE8C0 - 0xE27A];
/* 0xE8C0 */ struct Tile* tilePointers[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X];
/* 0xE8C0 */ Tile *tilePointers[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X];
u8 unk104C0;
/* 0x104C4 */ struct RoomData roomData[MAX_ROOM_COUNT];
/* 0x104C4 */ RoomData roomData[MAX_ROOM_COUNT];
u8 fill10764[0x10844 - 0x10764];
/* 0x10844 */ s16 naturalJunctionListCounts[MAX_ROOM_COUNT];
u8 fill10874[0x10884 - 0x10874];
/* 0x10884 */ struct Position naturalJunctionList[MAX_ROOM_COUNT][32]; // Arrays of room exits for each room.
/* 0x10884 */ Position naturalJunctionList[MAX_ROOM_COUNT][32]; // Arrays of room exits for each room.
u8 fill11444[0x11884 - 0x11484];
u8 unk11884[0x1194];
u8 fill12A18[0x12C24 - 0x12A18];
@@ -189,28 +187,28 @@ struct Dungeon
/* 0x13578 */ u8 unk13578;
/* 0x13579 */ u8 unk13579;
u8 fill1357A[0x1357C - 0x1357A];
/* 0x1357C */ struct Entity *teamPokemon[MAX_TEAM_MEMBERS];
/* 0x1358C */ struct Entity *wildPokemon[DUNGEON_MAX_WILD_POKEMON];
/* 0x135CC */ struct Entity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon
/* 0x1361C */ struct Entity *clientPokemon[0x40];
/* 0x1371C */ struct Entity *unk1371C[0x40];
/* 0x1381C */ struct Entity teamPokemonEntities[MAX_TEAM_MEMBERS];
/* 0x139EC */ struct Entity wildPokemonEntities[DUNGEON_MAX_WILD_POKEMON];
/* 0x1412C */ struct Entity clientPokemonEntities[0x40];
/* 0x15E2C */ struct Entity unk15E2C[0x40];
/* 0x17B2C */ struct Entity *lightningRodPokemon;
/* 0x17B30 */ struct Entity *snatchPokemon;
/* 0x1357C */ Entity *teamPokemon[MAX_TEAM_MEMBERS];
/* 0x1358C */ Entity *wildPokemon[DUNGEON_MAX_WILD_POKEMON];
/* 0x135CC */ Entity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon
/* 0x1361C */ Entity *clientPokemon[0x40];
/* 0x1371C */ Entity *unk1371C[0x40];
/* 0x1381C */ Entity teamPokemonEntities[MAX_TEAM_MEMBERS];
/* 0x139EC */ Entity wildPokemonEntities[DUNGEON_MAX_WILD_POKEMON];
/* 0x1412C */ Entity clientPokemonEntities[0x40];
/* 0x15E2C */ Entity unk15E2C[0x40];
/* 0x17B2C */ Entity *lightningRodPokemon;
/* 0x17B30 */ Entity *snatchPokemon;
/* 0x17B34 */ u8 fillunk1734[0x17B38 - 0x17B34];
/* 0x17B38 */ u32 unk17B38;
/* 0x17B3C */ u32 unk17B3C;
u8 fill17B40[0x17B44 - 0x17B40];
/* 0x17B44 */ struct OpenedFile *sprites[MONSTER_MAX + 1];
/* 0x181E4 */ struct OpenedFile *paletFile;
/* 0x181E8 */ struct Position cameraPos;
/* 0x181EC */ struct Position cameraPosMirror;
/* 0x181F0 */ struct Position cameraPixelPos;
/* 0x181F4 */ struct Position cameraPixelPosMirror;
/* 0x181F8 */ struct Entity *cameraTarget;
/* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX + 1];
/* 0x181E4 */ OpenedFile *paletFile;
/* 0x181E8 */ Position cameraPos;
/* 0x181EC */ Position cameraPosMirror;
/* 0x181F0 */ Position cameraPixelPos;
/* 0x181F4 */ Position cameraPixelPosMirror;
/* 0x181F8 */ Entity *cameraTarget;
u32 unk181FC;
u32 unk18200;
u32 unk18204;
@@ -231,9 +229,11 @@ struct Dungeon
u8 fill1C57F[0x1C58B - 0x1C57F];
u8 unk1C58B;
u8 fill1C58C[0x1CE98 - 0x1C58C];
struct unkDungeonGlobal_unk1CE98_sub unk1CE98; // TODO: not sure how large this is
unkDungeonGlobal_unk1CE98_sub unk1CE98; // TODO: not sure how large this is
u32 unk1CEC8;
/* 0x1CECC */ struct DungeonMusicPlayer musPlayer;
};
/* 0x1CECC */ DungeonMusicPlayer musPlayer;
} Dungeon;
extern Dungeon *gDungeon;
#endif

View File

@@ -3,6 +3,6 @@
#include "dungeon_entity.h"
bool8 HasHeldItem(struct Entity *pokemon, u8 id);
bool8 HasHeldItem(Entity *pokemon, u8 id);
#endif

View File

@@ -1,7 +1,9 @@
#ifndef GUARD_DUNGEON_LEADER_H
#define GUARD_DUNGEON_LEADER_H
struct Entity* GetLeader();
struct EntityInfo* GetLeaderInfo(void);
#include "dungeon_entity.h"
#endif
Entity* GetLeader(void);
EntityInfo* GetLeaderInfo(void);
#endif // GUARD_DUNGEON_LEADER_H

View File

@@ -3,12 +3,12 @@
#include "map.h"
struct unkStruct_202F190
typedef struct unkStruct_202F190
{
struct Tile* unk0[6];
};
Tile *unk0[6];
} unkStruct_202F190;
struct Tile* GetTile(s32 x, s32 y);
struct Tile* GetTileSafe(s32 x, s32 y);
Tile *GetTile(s32 x, s32 y);
Tile *GetTileSafe(s32 x, s32 y);
#endif

View File

@@ -5,12 +5,12 @@
u8 GetCrossableTerrain(s16 species);
u8 sub_807034C(s16 id, struct Tile *tile);
u8 sub_80703A0(struct Entity *pokemon, struct Position *pos);
bool8 CanCrossWalls(struct Entity *pokemon);
bool8 sub_807049C(struct Entity *pokemon, struct Position *pos);
bool8 sub_8070564(struct Entity *pokemon, struct Position *pos);
bool8 sub_80705F0(struct Entity *pokemon, struct Position *pos);
bool8 sub_80706A4(struct Entity *pokemon, struct Position *pos);
s32 CalcSpeedStage(struct Entity *pokemon);
u8 sub_80703A0(Entity *pokemon, Position *pos);
bool8 CanCrossWalls(Entity *pokemon);
bool8 sub_807049C(Entity *pokemon, Position *pos);
bool8 sub_8070564(Entity *pokemon, Position *pos);
bool8 sub_80705F0(Entity *pokemon, Position *pos);
bool8 sub_80706A4(Entity *pokemon, Position *pos);
s32 CalcSpeedStage(Entity *pokemon);
#endif

View File

@@ -3,18 +3,18 @@
#include "dungeon_entity.h"
bool8 HasSafeguardStatus(struct Entity * param_1, struct Entity * param_2, bool8 displayMessage);
bool8 sub_80717A4(struct Entity *pokemon, u16 moveID);
bool8 HasAbility(struct Entity *pokemon, u8 ability);
bool8 MonsterIsType(struct Entity *pokemon, u8 type);
bool8 CanSeeInvisibleMonsters(struct Entity *pokemon);
bool8 HasTactic(struct Entity *pokemon, u8 tactic);
bool8 IQSkillIsEnabled(struct Entity *pokemon, u8 IQSkill);
void LoadIQSkills(struct Entity *pokemon);
bool8 CanSeeTeammate(struct Entity * pokemon);
u8 GetMoveTypeForMonster(struct Entity *pokemon, struct Move *pokeMove);
s32 GetMovePower(struct Entity *pokemon, struct Move *pokeMove);
bool8 ToolboxEnabled(struct EntityInfo *pokemon);
bool8 SetVisualFlags(struct EntityInfo *entityInfo, u16 newFlag, bool8 param_3);
bool8 HasSafeguardStatus(Entity * param_1, Entity * param_2, bool8 displayMessage);
bool8 sub_80717A4(Entity *pokemon, u16 moveID);
bool8 HasAbility(Entity *pokemon, u8 ability);
bool8 MonsterIsType(Entity *pokemon, u8 type);
bool8 CanSeeInvisibleMonsters(Entity *pokemon);
bool8 HasTactic(Entity *pokemon, u8 tactic);
bool8 IQSkillIsEnabled(Entity *pokemon, u8 IQSkill);
void LoadIQSkills(Entity *pokemon);
bool8 CanSeeTeammate(Entity * pokemon);
u8 GetMoveTypeForMonster(Entity *pokemon, Move *pokeMove);
s32 GetMovePower(Entity *pokemon, Move *pokeMove);
bool8 ToolboxEnabled(EntityInfo *pokemon);
bool8 SetVisualFlags(EntityInfo *entityInfo, u16 newFlag, bool8 param_3);
#endif

View File

@@ -3,37 +3,40 @@
#include "position.h"
struct DungeonPokemonStatusSprite
// size: 0x8
typedef struct DungeonPokemonStatusSprite
{
u32 status;
u32 frame;
};
/* 0x0 */ u32 status;
/* 0x4 */ u32 frame;
} DungeonPokemonStatusSprite;
struct DungeonPokemonSprite
// size: 0x40
typedef struct DungeonPokemonSprite
{
/* 0x0000 */ u8 exists;
/* 0x0004 */ u32 id;
/* 0x0008 */ u16 species; // Or sprite ID?
/* 0x000A */ u16 unkA;
/* 0x000C */ u32 status;
/* 0x0010 */ u8 visible;
/* 0x0011 */ u8 unk11;
/* 0x0014 */ struct Position pos;
/* 0x0018 */ struct Position statusOffsets[2];
/* 0x0020 */ u32 unk20;
/* 0x0024 */ u32 unk24;
/* 0x0028 */ struct DungeonPokemonStatusSprite statusSprites[2];
/* 0x0038 */ u8 unk38;
/* 0x003C */ u16 unk3C;
/* 0x003E */ u16 unk3E;
}
/* 0x0 */ u8 exists;
/* 0x4 */ u32 id;
/* 0x8 */ u16 species; // Or sprite ID?
/* 0xA */ u16 unkA;
/* 0xC */ u32 status;
/* 0x10 */ u8 visible;
/* 0x11 */ u8 unk11;
/* 0x14 */ Position pos;
/* 0x18 */ Position statusOffsets[2];
/* 0x20 */ u32 unk20;
/* 0x24 */ u32 unk24;
/* 0x28 */ DungeonPokemonStatusSprite statusSprites[2];
/* 0x38 */ u8 unk38;
/* 0x3C */ u16 unk3C;
/* 0x3E */ u16 unk3E;
} DungeonPokemonSprite;
struct DungeonPokemonSprites
// size: 0x584
typedef struct DungeonPokemonSprites
{
u32 frame;
struct DungeonPokemonSprites sprites[22];
};
/* 0x0 */ u32 frame;
/* 0x4 */ struct DungeonPokemonSprites sprites[22];
} DungeonPokemonSprites;
extern struct DungeonPokemonSprites *gDungeonPokemonSprites;
extern DungeonPokemonSprites *gDungeonPokemonSprites;
#endif
#endif // GUARD_DUNGEON_POKEMON_SPRITES_H

View File

@@ -3,8 +3,8 @@
#include "position.h"
bool8 IsPositionActuallyInSight(struct Position *pos1, struct Position *pos2);
bool8 IsPositionInSight(struct Position *pos1, struct Position *pos2);
bool8 IsTargetTwoTilesAway(struct Position *pos1, struct Position *pos2);
bool8 IsPositionActuallyInSight(Position *pos1, Position *pos2);
bool8 IsPositionInSight(Position *pos1, Position *pos2);
bool8 IsTargetTwoTilesAway(Position *pos1, Position *pos2);
#endif

View File

@@ -5,14 +5,14 @@
#include "dungeon_entity.h"
#include "position.h"
extern const struct Position gAdjacentTileOffsets[NUM_DIRECTIONS];
extern const Position gAdjacentTileOffsets[NUM_DIRECTIONS];
bool8 EntityExists(struct Entity *pokemon);
u32 GetEntityType(struct Entity *entity);
u8 GetEntityRoom(struct Entity *entity);
struct EntityInfo *GetTrapData(struct Entity *entity);
struct Item *GetItemData(struct Entity *entity);
struct Tile *GetTileAtEntitySafe(struct Entity *entity);
struct Item *GetItemData_1(struct Entity *entity);
bool8 EntityExists(Entity *pokemon);
u32 GetEntityType(Entity *entity);
u8 GetEntityRoom(Entity *entity);
EntityInfo *GetTrapData(Entity *entity);
Item *GetItemData(Entity *entity);
struct Tile *GetTileAtEntitySafe(Entity *entity);
Item *GetItemData_1(Entity *entity);
#endif

View File

@@ -3,20 +3,20 @@
#include "dungeon_entity.h"
struct Entity *xxx_call_GetLeader(void);
struct Entity *GetPartnerEntity(void);
Entity *xxx_call_GetLeader(void);
Entity *GetPartnerEntity(void);
void sub_80854D4(void);
struct Entity *GetEntityFromClientType(u8 entityType);
void sub_80856C8(struct Entity * pokemon, s32 x, s32 y);
void sub_80856E0(struct Entity * pokemon, s32 direction);
Entity *GetEntityFromClientType(u8 entityType);
void sub_80856C8(Entity * pokemon, s32 x, s32 y);
void sub_80856E0(Entity * pokemon, s32 direction);
void sub_8085764(void);
void sub_8085860(s32 x, s32 y);
void sub_8085890(s32 x, s32 y);
void ShiftCameraToPosition(struct Position32 *posStruct, s32 cameraSteps);
void SetFacingDirection(struct Entity *pokemon, s32 direction);
void ShiftCameraToPosition(Position32 *posStruct, s32 cameraSteps);
void SetFacingDirection(Entity *pokemon, s32 direction);
void sub_8085930(s32 direction);
void sub_80859F0(s32 direction);
bool8 IsMovingClient(struct Entity *entity);
void sub_8085B0C(struct Entity *pokemon);
bool8 IsMovingClient(Entity *entity);
void sub_8085B0C(Entity *pokemon);
#endif

View File

@@ -3,10 +3,10 @@
#include "dungeon_entity.h"
bool8 CanSeeTarget(struct Entity *entity, struct Entity *targetEntity);
bool8 CanTargetEntity(struct Entity *entity, struct Entity *targetEntity);
bool8 sub_8045A70(struct Entity *entity, struct Entity *targetEntity);
bool8 sub_8045AAC(struct Entity *entity, struct Position *pos);
bool8 CanTargetPosition(struct Entity *entity, struct Position *pos);
bool8 CanSeeTarget(Entity *entity, Entity *targetEntity);
bool8 CanTargetEntity(Entity *entity, Entity *targetEntity);
bool8 sub_8045A70(Entity *entity, Entity *targetEntity);
bool8 sub_8045AAC(Entity *entity, Position *pos);
bool8 CanTargetPosition(Entity *entity, Position *pos);
#endif

View File

@@ -1,13 +1,13 @@
#ifndef GUARD_EVENT_FLAG_H
#define GUARD_EVENT_FLAG_H
// size: 0x8
struct UnkEventStruct
{
/* 0x0 */ s16 *unk0;
/* 0x4 */ u8 *unk4;
};
void sub_8001B88(s32 param_1,u32 *param_2,u32 *param_3);
void ScenarioCalc(s16 param_1, s32 param_2, s32 param_3);
bool8 sub_8001CC4(s16 param_1, u32 param_2, s32 param_3);
@@ -32,4 +32,7 @@ bool8 sub_8002718(u8 *r0);
void sub_8002758(s32 r0);
u8 sub_800276C(void);
// event_flag.s
extern u32 sub_8001658(u32, u32);
#endif // GUARD_EVENT_FLAG_H

View File

@@ -13,7 +13,7 @@ struct FelicityBankWork
/* 0x8 */ u32 fallbackState;
/* 0xC */ u32 chosenAmount;
/* 0x10 */ u32 menuAction;
struct MenuItem unk14[8];
MenuItem unk14[8];
u16 unk54[8];
u32 unk64;
s32 unk68;
@@ -21,11 +21,11 @@ struct FelicityBankWork
/* 0x70 */ s32 maximumDepositWithdraw;
s32 unk74;
u32 unk78;
struct UnkTextStruct2 *unk7C;
UnkTextStruct2 *unk7C;
s32 unk80;
s32 unk84;
u8 fill88[0x94 - 0x88];
/* 0x94 */ struct OpenedFile *faceFile;
/* 0x94 */ OpenedFile *faceFile;
/* 0x98 */ u8 *faceData;
u16 unk9C;
u16 unk9E;
@@ -33,8 +33,8 @@ struct FelicityBankWork
u8 unkA1;
u8 unkA2;
u8 unkA3;
struct OpenedFile **unkA4;
struct UnkTextStruct2 unkA8[4];
OpenedFile **unkA4;
UnkTextStruct2 unkA8[4];
};
extern struct FelicityBankWork *gFelicityBankWork;

View File

@@ -2,48 +2,48 @@
#define GUARD_FILE_SYSTEM_H
// size: 0x8
struct File
typedef struct File
{
/* 0x0 */ char *name;
/* 0x4 */ u8 *data;
};
} File;
// size: 0x8
struct OpenedFile
typedef struct OpenedFile
{
/* 0x0 */ struct File *file;
/* 0x0 */ File *file;
/* 0x4 */ u8 *data;
};
} OpenedFile;
// size: 0x10
struct FileArchive
typedef struct FileArchive
{
/* 0x0 */ char magic[8];
/* 0x8 */ s32 count;
/* 0xC */ struct File *entries;
};
/* 0xC */ File *entries;
} FileArchive;
// size: 0x8
struct SiroArchive
typedef struct SiroArchive
{
/* 0x0 */ u32 magic;
/* 0x4 */ u8 *data;
};
} SiroArchive;
// size: 0x8
struct UnkFileStruct1
typedef struct UnkFileStruct
{
u32 unk0;
u32 unk4;
};
/* 0x0 */ u32 unk0;
/* 0x4 */ u32 unk4;
} UnkFileStruct;
OpenedFile *Call_OpenFileAndGetFileDataPtr(const u8 *filename, const FileArchive *arc);
void CloseFile(OpenedFile *openedFile);
u8 *GetFileDataPtr(OpenedFile *openedFile, s32 unused);
void InitFileSystem(void);
struct OpenedFile *OpenFile(const char *filename, const struct FileArchive *arc);
u8 *GetFileDataPtr(struct OpenedFile *openedFile, int unused);
struct OpenedFile *OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc);
struct OpenedFile *Call_OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc);
u32 DecompressATFile(char *result, s32 resultLength, struct OpenedFile *file);
void CloseFile(struct OpenedFile *openedFile);
u32 DecompressATGlobalFile(u32 *result, s32 resultLength, struct OpenedFile *file);
OpenedFile *OpenFile(const u8 *filename, const FileArchive *arc);
OpenedFile *OpenFileAndGetFileDataPtr(const u8 *filename, const FileArchive *arc);
u32 sub_800A8F8(u32 value);
#endif //GUARD_FILE_SYSTEM_H

View File

@@ -1,41 +1,44 @@
#ifndef GUARD_FRIEND_AREA_H
#define GUARD_FRIEND_AREA_H
struct FriendAreaSettings
// size: 0x8
typedef struct FriendAreaSettings
{
s16 num_pokemon;
u16 unlock_condition;
u32 price;
};
/* 0x0 */ s16 num_pokemon;
/* 0x2 */ u16 unlock_condition;
/* 0x4 */ u32 price;
} FriendAreaSettings;
struct unkStruct_8092638
// size: 0xC
typedef struct unkStruct_8092638
{
/* 0x0 */ s16 numPokemon;
s16 unk2;
/* 0x4 */ bool8 hasFriendArea;
u8 fill5[3];
s32 unk8;
};
} unkStruct_8092638;
extern bool8 *gFriendAreas;
void LoadFriendAreas(void);
bool8 *GetBoughtFriendAreas(void);
void InitializeFriendAreas(void);
u8 sub_80923D4(s32 target);
void sub_809249C(u8 friendArea, bool8 clear);
bool8 HasAllFriendAreas(void);
bool8 GetFriendAreaStatus(u8 index);
void UnlockFriendArea(u8 index);
u8 *GetFriendAreaDescription(u8 index);
u8 GetFriendAreaUnlockCondition(u8 index);
const u8 *GetFriendAreaDescription(u8 index);
const u8 *GetFriendAreaName(u8 index);
s32 GetFriendAreaPrice(u8 index);
bool8 GetFriendAreaStatus(u8 index);
u8 GetFriendAreaUnlockCondition(u8 index);
bool8 HasAllFriendAreas(void);
void InitializeFriendAreas(void);
void LoadFriendAreas(void);
u32 ReadSavedFriendAreas(u8 *, s32 size);
u32 SaveFriendAreas(u8 *, u32 size);
void UnlockFriendArea(u8 index);
u8 sub_80923D4(s32 target);
void sub_8092404(u8, u16 *, bool8, bool8);
void sub_809249C(u8 friendArea, bool8 clear);
void sub_8092558(u8 *buffer, u8 index);
void sub_8092578(u8 *buffer, u8 index, bool8 printPrice);
const char *GetFriendAreaName(u8 index);
void sub_809249C(u8 friendArea, u8 clear);
void sub_8092638(u8 friendArea, struct unkStruct_8092638 *param_2, bool8 checkLeader, bool8 checkDungeon);
void sub_8092638(u8 friendArea, unkStruct_8092638 *, bool8 checkLeader, bool8 checkDungeon);
void sub_80926F8(u8, unkStruct_8092638 *, u8);
u32 SaveFriendAreas(u8 *r0, u32 r1);
u32 ReadSavedFriendAreas(u8 *r0, s32 r1);
#endif
#endif // GUARD_FRIEND_AREA_H

View File

@@ -10,25 +10,25 @@ struct unkStruct_203B2BC
s16 targetPoke;
u16 unkA;
u32 id;
struct BulkItem itemToGive;
struct BulkItem item2;
struct PokemonStruct *pokeStruct;
BulkItem itemToGive;
BulkItem item2;
PokemonStruct1 *pokeStruct;
bool8 isTeamLeader;
u32 moveIndex; // some sort of move index
u16 moveID;
struct Move moves[8];
Move moves[8];
u16 moveIDs[MAX_MON_MOVES]; // some list of move IDs
u32 menuAction1;
u32 menuAction2;
u32 menuAction3;
struct MenuStruct unk7C;
MenuStruct unk7C;
u8 fill80[0xFD - 0xCC];
u32 unkFD;
u8 fill101[0x11C - 0x104];
struct MenuItem menuItems[4];
MenuItem menuItems[4];
u8 fill120[0x16C - 0x13C];
u16 unk16C[10];
struct UnkTextStruct2 unk180[4];
UnkTextStruct2 unk180[4];
};
enum FriendAreaActionMenuStates {

View File

@@ -2,30 +2,30 @@
#define GUARD_FRIEND_RESCUE_H
#include "code_8094F88.h"
#include "item.h"
#include "items.h"
#include "pokemon.h"
#include "wonder_mail.h"
#include "menu.h"
// size: 0x568
struct WonderMailStruct_203B33C
typedef struct WonderMailStruct_203B33C
{
/* 0x0 */ u32 state;
/* 0x4 */ u32 fallbackState;
/* 0x8 */ u8 passwordBuffer[0x36];
u32 unk40;
/* 0x44 */ u32 status;
struct unkStruct_203B480 unk48;
struct unkStruct_203B480 unk78;
struct WonderMailStruct_203B2C0_sub unkA8;
struct WonderMailStruct_203B2C0_sub unk130;
struct unkStruct_203B480 unk1B8;
struct unkStruct_203B480 unk1E8;
unkStruct_203B480 unk48;
unkStruct_203B480 unk78;
WonderMailStruct_203B2C0_sub unkA8;
WonderMailStruct_203B2C0_sub unk130;
unkStruct_203B480 unk1B8;
unkStruct_203B480 unk1E8;
u8 unk218;
struct MenuStruct unk21C[4];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
/* 0x41C */ struct Item item;
MenuStruct unk21C[4];
UnkTextStruct2 unk35C[4];
UnkTextStruct2 unk3BC[4];
/* 0x41C */ Item item;
u32 unk420; // Is this supposed to be a File like 203B2C4?
u8 unk424[0x100];
s32 unk524;
@@ -36,9 +36,9 @@ struct WonderMailStruct_203B33C
u32 unk530;
u32 unk534;
/* 0x538 */ s16 speciesNum; // A7 << 3
struct unkStruct_802F204 unk53C;
unkStruct_802F204 unk53C;
s32 unk564;
};
} WonderMailStruct_203B33C;
u32 CreateFriendRescueMenu(void);
u32 UpdateFriendRescueMenu(void);

View File

@@ -1,24 +1,7 @@
#ifndef GUARD_GAME_OPTIONS_H
#define GUARD_GAME_OPTIONS_H
struct GameOptions
{
// TODO: find where Controls/Touch Screen are in this structure in PMD Blue
/* 0x0 */ u8 dungeonSpeed;
/* 0x1 */ u8 FarOffPals;
/* 0x2 */ bool8 damageTurn;
/* 0x3 */ bool8 gridEnable;
/* 0x4 */ u8 mapOption;
/* 0x5 */ u8 fill5[3];
/* 0x8 */ u8 windowColor;
/* 0x9 */ u8 unk9; // maybe Controls?
/* 0xA */ u8 unkA; // maybe Touch Screen?
/* 0xB */ u8 playerGender;
/* 0xC */ u8 unkC;
};
enum DungeonSpeed
enum DungeonSpeed
{
DUNGEON_SPEED_SLOW,
DUNGEON_SPEED_FAST,
@@ -30,7 +13,6 @@ enum FarOffPals
FAROFFPALS_LOCK,
};
// GBA has 3 options while DS has 7
enum MapOption
{
@@ -60,10 +42,26 @@ enum windowColor
NUM_WINDOW_COLORS,
};
typedef struct GameOptions
{
// TODO: find where Controls/Touch Screen are in this structure in PMD Blue
/* 0x0 */ u8 dungeonSpeed;
/* 0x1 */ u8 FarOffPals;
/* 0x2 */ bool8 damageTurn;
/* 0x3 */ bool8 gridEnable;
/* 0x4 */ u8 mapOption;
/* 0x5 */ u8 fill5[3];
/* 0x8 */ u8 windowColor;
/* 0x9 */ u8 unk9; // maybe Controls?
/* 0xA */ u8 unkA; // maybe Touch Screen?
/* 0xB */ u8 playerGender;
/* 0xC */ u8 unkC;
} GameOptions;
void LoadGameOptions(void);
struct GameOptions * GetGameOptions(void);
GameOptions * GetGameOptions(void);
void InitializeGameOptions(bool8 initializeGender);
bool8 GameOptionsNotChange(struct GameOptions *r0);
bool8 GameOptionsNotChange(GameOptions *);
#endif
#endif // GUARD_GAME_OPTIONS_H

16
include/ground_main.h Normal file
View File

@@ -0,0 +1,16 @@
#ifndef GUARD_GROUND_MAIN_H
#define GUARD_GROUND_MAIN_H
// size: 0xC
typedef struct unkStruct_811BAF4
{
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
/* 0x8 */ u8 *text;
} unkStruct_811BAF4;
bool8 sub_8098F88(void);
#endif // GUARD_GROUND_MAIN_H

19
include/ground_map.h Normal file
View File

@@ -0,0 +1,19 @@
#ifndef GUARD_GROUND_MAP_H
#define GUARD_GROUND_MAP_H
// size: 0x55C
typedef struct unkStruct_3001B70
{
u8 fill0[0x55C - 0x0];
} unkStruct_3001B70;
extern unkStruct_3001B70 *gUnknown_3001B70;
void GroundMap_Reset(void);
void sub_80A4A7C(void);
void sub_80A4AC4(void);
void sub_80A4B38(void);
void sub_80A4B54(void);
#endif // GUARD_GROUND_MAP_H

Some files were not shown because too many files have changed in this diff Show More