summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/scrcmd.s8
-rw-r--r--data/event_scripts.s3
-rw-r--r--data/specials.inc456
3 files changed, 461 insertions, 6 deletions
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index 9bb17887a..24793be37 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -46,7 +46,7 @@ sub_8069EFC: @ 8069EFC
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 14
- ldr r1, _08069F18 @ =gUnknown_815FD60
+ ldr r1, _08069F18 @ =gSpecials
adds r1, r0, r1
ldr r0, _08069F1C @ =gUnknown_8160450
cmp r1, r0
@@ -55,7 +55,7 @@ sub_8069EFC: @ 8069EFC
bl _call_via_r0
b _08069F2C
.align 2, 0
-_08069F18: .4byte gUnknown_815FD60
+_08069F18: .4byte gSpecials
_08069F1C: .4byte gUnknown_8160450
_08069F20:
ldr r0, _08069F34 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
@@ -85,7 +85,7 @@ sub_8069F3C: @ 8069F3C
bl ScriptReadHalfword
lsls r0, 16
lsrs r0, 14
- ldr r1, _08069F6C @ =gUnknown_815FD60
+ ldr r1, _08069F6C @ =gSpecials
adds r1, r0, r1
ldr r0, _08069F70 @ =gUnknown_8160450
cmp r1, r0
@@ -95,7 +95,7 @@ sub_8069F3C: @ 8069F3C
strh r0, [r5]
b _08069F80
.align 2, 0
-_08069F6C: .4byte gUnknown_815FD60
+_08069F6C: .4byte gSpecials
_08069F70: .4byte gUnknown_8160450
_08069F74:
ldr r0, _08069F88 @ =gUnknown_83A725C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scrcmd.c"
diff --git a/data/event_scripts.s b/data/event_scripts.s
index c27df1946..5aef19caa 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -9,8 +9,7 @@ gScriptCmdTableEnd:: @ 815FD08
gUnknown_815FD0C:: @ 815FD0C
.incbin "baserom.gba", 0x15FD0C, 0x54
-gUnknown_815FD60:: @ 815FD60
- .incbin "baserom.gba", 0x15FD60, 0x6F0
+ .include "data/specials.inc"
gUnknown_8160450:: @ 8160450
.incbin "baserom.gba", 0x160450, 0x28
diff --git a/data/specials.inc b/data/specials.inc
new file mode 100644
index 000000000..171a6fd8e
--- /dev/null
+++ b/data/specials.inc
@@ -0,0 +1,456 @@
+.macro def_special ptr
+.global SPECIAL_\ptr
+.set SPECIAL_\ptr, __special__
+.set __special__, __special__ + 1
+ .4byte \ptr
+ .endm
+
+.set __special__, 0
+ .align 2
+
+gSpecials:: @ 815FD60
+ def_special sp000_heal_pokemon
+ def_special SetCableClubWarp
+ def_special sub_807E654
+ def_special sub_807E704
+ def_special sub_8081744
+ def_special sub_8081770
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_8081064
+ def_special sub_80810CC
+ def_special sub_80810F4
+ def_special sub_80098B8
+ def_special sub_80819C8
+ def_special sub_8081978
+ def_special sub_80819B8
+ def_special sub_808130C
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special SavePlayerParty
+ def_special LoadPlayerParty
+ def_special sub_80A0334
+ def_special sp02A_crash_sound
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special IsEnigmaBerryValid
+ def_special sub_80803CC
+ def_special sub_80805D8
+ def_special sub_8080618
+ def_special ScrSpecial_HasTrainerBeenFought
+ def_special ScrSpecial_EndTrainerApproach
+ def_special sub_8080628
+ def_special sub_810CD4C
+ def_special sub_810CEB4
+ def_special sub_80805B0
+ def_special sub_808C6A8
+ def_special CheckForAlivePartyMons
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CBEBC
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_8081128
+ def_special sub_806F67C
+ def_special nullsub_56
+ def_special sub_80FEE44
+ def_special sub_80BDA7C
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80A0918
+ def_special sub_80A0930
+ def_special sub_80A096C
+ def_special sub_80A0984
+ def_special sub_80CBFA0
+ def_special TV_CopyNicknameToStringVar1AndEnsureTerminated
+ def_special TV_CheckMonOTIDEqualsPlayerID
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80BDB1C
+ def_special nullsub_75
+ def_special sub_809A540
+ def_special CalculatePlayerPartyCount
+ def_special CountPartyNonEggMons
+ def_special CountPartyAliveNonEggMons_IgnoreVar0x8004Slot
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA68C
+ def_special DrawWholeMapView
+ def_special sub_80CA69C
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA6BC
+ def_special sub_80CA6DC
+ def_special sub_80CA714
+ def_special sub_80CA758
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_8055DC4
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_807F888
+ def_special ChangePokemonNickname
+ def_special sub_80BF8FC
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_8113364
+ def_special sub_8113288
+ def_special sub_81133A4
+ def_special sub_8113064
+ def_special sub_81132CC
+ def_special sub_8113510
+ def_special sub_81130A8
+ def_special sub_8113530
+ def_special sub_8082E54
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA74C
+ def_special GetDaycareMonNicknames
+ def_special sub_80464B4
+ def_special RejectEggFromDayCare
+ def_special GiveEggFromDaycare
+ def_special SetDaycareCompatibilityString
+ def_special GetSelectedMonNickAndSpecies
+ def_special StoreSelectedPokemonInDaycare
+ def_special ChooseSendDaycareMon
+ def_special ShowDaycareLevelMenu
+ def_special GetNumLevelsGainedFromDaycare
+ def_special GetDaycareCost
+ def_special TakePokemonFromDaycare
+ def_special ScriptHatchMon
+ def_special sub_8046FD4
+ def_special sub_8046EAC
+ def_special sub_80CD228
+ def_special IsEnoughForCostInVar0x8005
+ def_special SubtractMoneyFromVar0x8005
+ def_special ExecuteWhiteOut
+ def_special sub_80CA3C4
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80A0EC4
+ def_special sub_80A0EEC
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA3D8
+ def_special sub_80CA524
+ def_special sub_80CA86C
+ def_special sub_80CA9A8
+ def_special sub_80CB204
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80BF93C
+ def_special sub_80BF9BC
+ def_special sub_80BFBA8
+ def_special ScrSpecial_GetPokemonNicknameAndMoveName
+ def_special ScrSpecial_CountPokemonMoves
+ def_special sub_80E4634
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA664
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CA76C
+ def_special sub_80E5970
+ def_special sub_80E5C28
+ def_special sub_80E6648
+ def_special sub_80E67FC
+ def_special sub_80E7538
+ def_special sub_80E6900
+ def_special sub_80E6A0C
+ def_special sub_80E6C8C
+ def_special sub_80E6E14
+ def_special sub_80E6FB8
+ def_special sub_80E7058
+ def_special sub_80E71D0
+ def_special sub_80E724C
+ def_special sub_80E72B8
+ def_special sub_80A0380
+ def_special ValidateEReaderTrainer
+ def_special nullsub_75
+ def_special sub_80A03D8
+ def_special sub_80EB6AC
+ def_special sub_80EB6FC
+ def_special sub_80CA7EC
+ def_special sub_8053A9C
+ def_special sub_8053D68
+ def_special sub_8054440
+ def_special sub_8053D2C
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sp109_CreatePCMenu
+ def_special sub_80CA574
+ def_special sub_80CA618
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_61
+ def_special DoSoftReset
+ def_special sub_80CA2E4
+ def_special sub_80CB498
+ def_special nullsub_75
+ def_special SpawnScriptFieldObject
+ def_special RemoveScriptFieldObject
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CAAAC
+ def_special sub_80CAABC
+ def_special player_get_direction_lower_nybble
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special LeadMonHasEffortRibbon
+ def_special GivLeadMonEffortRibbon
+ def_special ScrSpecial_AreLeadMonEVsMaxedOut
+ def_special sub_8069740
+ def_special sub_8069768
+ def_special sub_8141D9C
+ def_special nullsub_75
+ def_special sub_80CA804
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CAB78
+ def_special nullsub_75
+ def_special sub_80CABD0
+ def_special nullsub_75
+ def_special sub_80CB580
+ def_special nullsub_75
+ def_special sub_80CAC08
+ def_special sub_806E99C
+ def_special sub_80CAC28
+ def_special sub_807FA68
+ def_special sub_807F9D8
+ def_special sub_807FABC
+ def_special sub_8080398
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_807B6C0
+ def_special sp13E_warp_to_last_warp
+ def_special sp13F_fall_to_last_warp
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80E5E70
+ def_special sub_807F998
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_80CAD54
+ def_special sub_80BFC14
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special LoadPlayerBag
+ def_special sub_807F0B0
+ def_special nullsub_75
+ def_special nullsub_75
+ def_special sub_8088F58
+ def_special sub_80CAD7C
+ def_special nullsub_75
+ def_special sub_80E759C
+ def_special GetNameOfEnigmaBerryInPlayerParty
+ def_special nullsub_75
+ def_special sub_810B82C
+ def_special sub_807F904
+ def_special sub_80CA630
+ def_special sub_80CB7C4
+ def_special sub_80CBC5C
+ def_special sub_80CADC4
+ def_special sub_80CADEC
+ def_special sub_805D1A8
+ def_special sub_80CB0A8
+ def_special sub_80CB1D8
+ def_special GetDaycarePokemonCount
+ def_special sub_80CB63C
+ def_special sub_80CBD80
+ def_special sub_80CBDB0
+ def_special sub_80CBDCC
+ def_special sub_810C444
+ def_special sub_80CC7B4
+ def_special ChangeBoxPokemonNickname
+ def_special sub_80CC2BC
+ def_special sub_80CC3CC
+ def_special sub_80CC524
+ def_special sub_8009480
+ def_special sub_8115A24
+ def_special BerryBlenderLinkJoinGroup
+ def_special UnionRoomSpecial
+ def_special sub_814F1D4
+ def_special EnableNationalPokedex
+ def_special sub_80699E0
+ def_special sub_80699BC
+ def_special sub_810C3A4
+ def_special SetFlavorTextFlagFromSpecialVars
+ def_special UpdatePickStateFromSpecialVar8005
+ def_special sub_8054C48
+ def_special sub_8046B40
+ def_special sub_8046B70
+ def_special sub_8046B94
+ def_special sub_8046BBC
+ def_special sub_8046BDC
+ def_special sub_8146E78
+ def_special sub_80CC48C
+ def_special sub_812B220
+ def_special sub_812B234
+ def_special sub_812B248
+ def_special sub_8143FC8
+ def_special sub_810B810
+ def_special sub_811999C
+ def_special sp182_move_string
+ def_special sub_811390C
+ def_special sub_80CC4D4
+ def_special sub_80CC730
+ def_special sub_8110AB4
+ def_special sub_8112364
+ def_special sub_8146CE8
+ def_special get_unknown_box_id
+ def_special sub_809D504
+ def_special sub_809D620
+ def_special sub_812781C
+ def_special sub_8127888
+ def_special sub_80803FC
+ def_special sub_812B35C
+ def_special sub_815D334
+ def_special sub_8149A18
+ def_special sub_806E25C
+ def_special sub_815D9E8
+ def_special sub_814B504
+ def_special sub_80CC8CC
+ def_special sub_80CC948
+ def_special sub_812B478
+ def_special sub_812B484
+ def_special sub_810B82C
+ def_special sub_8099FAC
+ def_special sub_815F094
+ def_special sub_815F114
+ def_special sub_815EEB0
+ def_special sub_815EF5C
+ def_special sub_815F070
+ def_special sub_80CC974
+ def_special sub_814EA7C
+ def_special sub_80CCB94
+ def_special sub_80CCCF8
+ def_special sub_80F39B4
+ def_special sub_8153810
+ def_special sub_809D764
+ def_special sub_809D8C0
+ def_special sub_8147500
+ def_special player_get_direction_lower_nybble
+ def_special sub_80CCDFC
+ def_special sub_80CD008
+ def_special sub_8147594
+ def_special sub_80CD034
+ def_special sub_815D834
+ def_special sub_8088F84
+ def_special sub_80CD074
+ def_special sub_80CD098
+ def_special sub_811B15C
+ def_special sub_80CD0F4
+ def_special sub_809C4A8
+ def_special sub_81537C0
+ def_special sub_809C5FC
+ def_special sub_80CB328
+ def_special sub_80CD154
+ def_special sub_80CD1B4
+ def_special sub_8044838
+gSpecialsEnd::