summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchaos-lord <dd4791.mariokarter@hotmail.co.uk>2017-07-12 18:59:28 +0100
committerchaos-lord <dd4791.mariokarter@hotmail.co.uk>2017-07-12 18:59:28 +0100
commitda4e2bbd49eadfa084341dd11df39a392047e404 (patch)
treefdfc1ad35ca7dd69b1a4a06014ce5be8c110b987
parent3a675d926fd28eebd44887e8646ba5f24b098347 (diff)
labelled collision handlers
-rw-r--r--engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm4
-rw-r--r--engine/pinball_game/catchem_mode/catchem_mode_red_field.asm4
-rwxr-xr-xengine/pinball_game/evolution_mode.asm16
-rw-r--r--engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm4
-rw-r--r--engine/pinball_game/evolution_mode/evolution_mode_red_field.asm26
-rwxr-xr-xengine/pinball_game/map_move.asm24
-rw-r--r--engine/pinball_game/object_collision/blue_stage_resolve_collision.asm28
-rw-r--r--engine/pinball_game/object_collision/red_stage_resolve_collision.asm36
-rw-r--r--home/random.asm20
-rw-r--r--main.asm26
-rw-r--r--wram.asm20
11 files changed, 112 insertions, 96 deletions
diff --git a/engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm b/engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm
index 10a9fc3..d331b61 100644
--- a/engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm
+++ b/engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm
@@ -1,5 +1,5 @@
-Func_202bc: ; 0x202bc
- ld a, [wd54c]
+HandleBlueCatchEmCollision: ; 0x202bc
+ ld a, [wSpecialModeCollisionID]
cp $4
jp z, Func_204f1
cp $c
diff --git a/engine/pinball_game/catchem_mode/catchem_mode_red_field.asm b/engine/pinball_game/catchem_mode/catchem_mode_red_field.asm
index 4bdeda1..25e9f9f 100644
--- a/engine/pinball_game/catchem_mode/catchem_mode_red_field.asm
+++ b/engine/pinball_game/catchem_mode/catchem_mode_red_field.asm
@@ -1,5 +1,5 @@
-Func_20000: ; 0x20000
- ld a, [wd54c]
+HandleRedCatchEmCollision: ; 0x20000
+ ld a, [wSpecialModeCollisionID]
cp $4
jp z, Func_20230 ;if collided with voltorb
cp $c
diff --git a/engine/pinball_game/evolution_mode.asm b/engine/pinball_game/evolution_mode.asm
index a6c594b..226ba48 100755
--- a/engine/pinball_game/evolution_mode.asm
+++ b/engine/pinball_game/evolution_mode.asm
@@ -1,13 +1,13 @@
-Func_10a95: ; 0x19a95
+HandleEvoModeCollision: ; 0x19a95
ld a, [wCurrentStage]
call CallInFollowingTable
-PointerTable_10a9b: ; 0x10a9b
- padded_dab Func_20581 ; STAGE_RED_FIELD_TOP
- padded_dab Func_20581 ; STAGE_RED_FIELD_BOTTOM
- padded_dab Func_20581
- padded_dab Func_20581
- padded_dab Func_20bae ; STAGE_BLUE_FIELD_TOP
- padded_dab Func_20bae ; STAGE_BLUE_FIELD_BOTTOM
+HandleEvoModeCollisionPointerTable: ; 0x10a9b
+ padded_dab HandleRedEvoModeCollision ; STAGE_RED_FIELD_TOP
+ padded_dab HandleRedEvoModeCollision ; STAGE_RED_FIELD_BOTTOM
+ padded_dab HandleRedEvoModeCollision
+ padded_dab HandleRedEvoModeCollision
+ padded_dab HandleBlueEvoModeCollision ; STAGE_BLUE_FIELD_TOP
+ padded_dab HandleBlueEvoModeCollision ; STAGE_BLUE_FIELD_BOTTOM
StartEvolutionMode: ; 0x10ab3
ld a, [wInSpecialMode]
diff --git a/engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm b/engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm
index 128ea12..afcb9ea 100644
--- a/engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm
+++ b/engine/pinball_game/evolution_mode/evolution_mode_blue_field.asm
@@ -1,5 +1,5 @@
-Func_20bae: ; 0x20bae
- ld a, [wd54c]
+HandleBlueEvoModeCollision: ; 0x20bae
+ ld a, [wSpecialModeCollisionID]
cp $4
jp z, Func_20e34
cp $1
diff --git a/engine/pinball_game/evolution_mode/evolution_mode_red_field.asm b/engine/pinball_game/evolution_mode/evolution_mode_red_field.asm
index a78ceae..5bbf336 100644
--- a/engine/pinball_game/evolution_mode/evolution_mode_red_field.asm
+++ b/engine/pinball_game/evolution_mode/evolution_mode_red_field.asm
@@ -1,21 +1,21 @@
-Func_20581: ; 0x20581
- ld a, [wd54c]
+HandleRedEvoModeCollision: ; 0x20581
+ ld a, [wSpecialModeCollisionID]
cp $4
- jp z, Func_2080f
+ jp z, Func_2080f ;voltorb
cp $3
jp z, Func_20839
cp $5
- jp z, Func_2085a
+ jp z, Func_2085a ;bellsprout
cp $6
- jp z, Func_20887
+ jp z, Func_20887 ;staryu
cp $7
- jp z, Func_208a8
+ jp z, Func_208a8 ;diglett
cp $8
- jp z, Func_208c9
+ jp z, Func_208c9 ;diglett
cp $9
- jp z, Func_208ea
+ jp z, Func_208ea ;right rail?
cp $a
- jp z, Func_2090b
+ jp z, Func_2090b ;right rail?
cp $b
jp z, Func_2092c
cp $c
@@ -355,16 +355,16 @@ Func_20887: ; 0x20887
Func_208a8: ; 0x208a8
ld a, [wd551]
and a
- jr nz, .asm_208c7
+ jr nz, .asm_208c7 ;if ??? is NZ, skip
ld a, [wIndicatorStates + 13]
and a
- jr z, .asm_208c7
+ jr z, .asm_208c7 ;if indicator is off, skip
xor a
- ld [wIndicatorStates + 13], a
+ ld [wIndicatorStates + 13], a ;flick off indicator
ld a, [wd55d]
and a
ld a, $0
- ld [wd55d], a
+ ld [wd55d], a ;make ??? 0
jp nz, Func_20977
jp Func_209eb
diff --git a/engine/pinball_game/map_move.asm b/engine/pinball_game/map_move.asm
index 30973fa..888388a 100755
--- a/engine/pinball_game/map_move.asm
+++ b/engine/pinball_game/map_move.asm
@@ -1,13 +1,13 @@
-Func_301ce: ; 0x301ce
+HandleMapModeCollision: ; 0x301ce
ld a, [wCurrentStage]
call CallInFollowingTable
-PointerTable_301d4: ; 0x301d4
- padded_dab Func_314ae ; STAGE_RED_FIELD_TOP
- padded_dab Func_314ae ; STAGE_RED_FIELD_BOTTOM
- padded_dab Func_314ae
- padded_dab Func_314ae
- padded_dab Func_3161b ; STAGE_BLUE_FIELD_TOP
- padded_dab Func_3161b ; STAGE_BLUE_FIELD_BOTTOM
+HandleMapModeCollisionPointerTable: ; 0x301d4
+ padded_dab HandleRedMapModeCollision ; STAGE_RED_FIELD_TOP
+ padded_dab HandleRedMapModeCollision ; STAGE_RED_FIELD_BOTTOM
+ padded_dab HandleRedMapModeCollision
+ padded_dab HandleRedMapModeCollision
+ padded_dab HandleBlueMapModeCollision ; STAGE_BLUE_FIELD_TOP
+ padded_dab HandleBlueMapModeCollision ; STAGE_BLUE_FIELD_BOTTOM
StartMapMoveMode: ; 0x301ec
ld a, [wInSpecialMode]
@@ -424,10 +424,10 @@ SecondMapMoveSet_BlueField:
db SAFFRON_CITY
db CINNABAR_ISLAND
-Func_314ae: ; 0x314ae
+HandleRedMapModeCollision: ; 0x314ae
ld a, [wTimerActive]
and a
- ld a, [wd54c]
+ ld a, [wSpecialModeCollisionID]
jr z, .asm_314d0
cp $1
jp z, OpenRedMapMoveSlotFromLeft
@@ -574,10 +574,10 @@ ResolveSucsessfulRedMapMove: ; 0x315d5
scf
ret
-Func_3161b: ; 0x3161b
+HandleBlueMapModeCollision: ; 0x3161b
ld a, [wTimerActive]
and a
- ld a, [wd54c]
+ ld a, [wSpecialModeCollisionID]
jr z, .asm_3163d
cp $1
jp z, Func_31708
diff --git a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
index fd5992c..e2ac723 100644
--- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
@@ -19,7 +19,7 @@ ResolveBlueFieldTopGameObjectCollisions: ; 0x1c715
call UpdateMapMoveCounters_BlueFieldTop
callba ShowExtraBallMessage
ld a, $0
- callba Func_10000
+ callba CheckSpecialModeColision
ret
ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
@@ -44,7 +44,7 @@ ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
call UpdateMapMoveCounters_BlueFieldBottom
callba ShowExtraBallMessage
ld a, $0
- callba Func_10000
+ callba CheckSpecialModeColision
ret
InitBlueFieldCollisionAttributes: ; 0x1c7c7
@@ -339,7 +339,7 @@ ResolveShellderCollision: ; 0x1c9c1
sub $3
ld [wWhichAnimatedShellder], a
ld a, $4
- callba Func_10000
+ callba CheckSpecialModeColision
ld bc, FiveHundredPoints
callba AddBigBCD6FromQueueWithBallMultiplier
ret
@@ -398,7 +398,7 @@ ResolveBlueStageSpinnerCollision: ; 0x1ca5f
ld a, b
ld [wd50c], a
ld a, $c
- callba Func_10000
+ callba CheckSpecialModeColision
; fall through
UpdateBlueStageSpinner: ; 0x1ca85
@@ -659,7 +659,7 @@ HandleSecondaryLeftAlleyTrigger_BlueField: ; 0x1d010
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wLeftAlleyCount]
cp $3
@@ -688,7 +688,7 @@ HandleSecondaryRightAlleyTrigger_BlueField: ; 0x1d047
xor a
ld [wRightAlleyTrigger], a
ld a, $2
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wRightAlleyCount]
cp $3
@@ -1003,7 +1003,7 @@ ResolveSlowpokeCollision: ; 0x1d216
cp $0
jr nz, .asm_1d2f8
ld a, $f
- callba Func_10000
+ callba CheckSpecialModeColision
.asm_1d2f8
xor a
ld [wd642], a
@@ -1122,7 +1122,7 @@ ResolveCloysterCollision: ; 0x1d32d
lb de, $00, $06
call PlaySoundEffect
ld a, $e
- callba Func_10000
+ callba CheckSpecialModeColision
xor a
ld [wBlueFieldForceFieldFrameCounter], a
ld [wBlueFieldForceFieldSecondsCounter], a
@@ -1176,7 +1176,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
ld a, $3c
ld [wBonusMultiplierRailingEndLightDuration], a
ld a, $9
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wd610]
cp $3
jp nz, asm_1d4fa
@@ -1203,7 +1203,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
ld a, $1e
ld [wBonusMultiplierRailingEndLightDuration], a
ld a, $a
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wd611]
cp $3
jr nz, asm_1d4fa
@@ -1539,7 +1539,7 @@ ResolvePsyduckPoliwagCollision: ; 0x1dbd2
ld a, [wLeftMapMoveCounter]
cp $3
ld a, $7
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, $2
ld [wPoliwagState], a
ld a, $78
@@ -1576,7 +1576,7 @@ ResolvePsyduckPoliwagCollision: ; 0x1dbd2
ld a, [wRightMapMoveCounter]
cp $3
ld a, $8
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wRightMapMoveCounter]
cp $3
ccf
@@ -2043,7 +2043,7 @@ ResolveBallUpgradeTriggersCollision_BlueField: ; 0x1e356
ld [wLeftAlleyTrigger], a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $b
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wWhichPinballUpgradeTriggerId]
sub $13
ld c, a
@@ -2594,7 +2594,7 @@ DoSlotLogic_BlueField: ; 0x1e830
xor a
ld [wIndicatorStates + 4], a
ld a, $d
- callba Func_10000
+ callba CheckSpecialModeColision
jr nc, .asm_1e84b
ld a, $1
ld [wPinballIsVisible], a
diff --git a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
index df0118b..7d9774e 100644
--- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
@@ -18,7 +18,7 @@ ResolveRedFieldTopGameObjectCollisions: ; 0x1460e
call UpdateMapMoveCounters_RedFieldTop
callba ShowExtraBallMessage
ld a, $0
- callba Func_10000
+ callba CheckSpecialModeColision
ret
ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
@@ -43,7 +43,7 @@ ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
call UpdatePokeballs_RedField
callba ShowExtraBallMessage
ld a, $0
- callba Func_10000
+ callba CheckSpecialModeColision
ret
UpdateBallSaver: ; 0x146a2
@@ -259,7 +259,7 @@ ResolveDiglettCollision: ; 0x147aa
add $4
call LoadDiglettNumberGraphics
ld a, $8
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wRightMapMoveCounter]
cp $3
call z, HitRightDiglett3Times
@@ -275,7 +275,7 @@ ResolveDiglettCollision: ; 0x147aa
ld a, [wLeftMapMoveCounter]
call LoadDiglettNumberGraphics
ld a, $7
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wLeftMapMoveCounter]
cp $3
call z, HitLeftDiglett3Times
@@ -566,7 +566,7 @@ ResolveVoltorbCollision: ; 0x14d85
sub $3
ld [wWhichAnimatedVoltorb], a
ld a, $4
- callba Func_10000
+ callba CheckSpecialModeColision
ld bc, FiveHundredPoints
callba AddBigBCD6FromQueueWithBallMultiplier
ret
@@ -613,7 +613,7 @@ ResolveRedStageSpinnerCollision: ; 0x14dea
ld a, b
ld [wd50c], a
ld a, $c
- callba Func_10000
+ callba CheckSpecialModeColision
; fall through
UpdateRedStageSpinner: ; 0x14e10
@@ -937,7 +937,7 @@ ResolveBallUpgradeTriggersCollision_RedField: ; 0x1535d
ld [wSecondaryLeftAlleyTrigger], a
call UpdateFieldStructures_RedField
ld a, $b
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wWhichPinballUpgradeTriggerId]
sub $e
ld c, a
@@ -1301,7 +1301,7 @@ HandleSecondaryLeftAlleyTrigger_RedField: ; 0x1587c
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wLeftAlleyCount]
cp $3
@@ -1331,7 +1331,7 @@ HandleThirdLeftAlleyTrigger_RedField: ; 0x158c0
xor a
ld [wLeftAlleyTrigger], a
ld a, $1
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wLeftAlleyCount]
cp $3
@@ -1360,7 +1360,7 @@ HandleSecondaryStaryuAlleyTrigger_RedField: ; 0x15904
xor a
ld [wSecondaryLeftAlleyTrigger], a
ld a, $3
- callba Func_10000
+ callba CheckSpecialModeColision
ret
HandleLeftAlleyTrigger_RedField: ; 0x1591e
@@ -1395,7 +1395,7 @@ HandleSecondaryRightAlleyTrigger_RedField: ; 0x15944
xor a
ld [wRightAlleyTrigger], a
ld a, $2
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wRightAlleyCount]
cp $3
@@ -1434,7 +1434,7 @@ HandleThirdRightAlleyTrigger_RedField: ; 0x15990
xor a
ld [wRightAlleyTrigger], a
ld a, $2
- callba Func_10000
+ callba CheckSpecialModeColision
ret c
ld a, [wRightAlleyCount]
cp $3
@@ -1606,7 +1606,7 @@ ResolveBellsproutCollision: ; 0x15e93
lb de, $00, $06
call PlaySoundEffect
ld a, $5
- callba Func_10000
+ callba CheckSpecialModeColision
ret
BellsproutAnimationData: ; 0x15f69
@@ -2040,7 +2040,7 @@ DoSlotLogic_RedField: ; 0x16352
xor a
ld [wIndicatorStates + 4], a
ld a, $d
- callba Func_10000
+ callba CheckSpecialModeColision
jr nc, .asm_1636d
ld a, $1
ld [wPinballIsVisible], a
@@ -2513,7 +2513,7 @@ ResolveStaryuCollision_Top: ; 0x16781
ld [wd503], a
call LoadStaryuGraphics_Top
ld a, $6
- callba Func_10000
+ callba CheckSpecialModeColision
ret
.asm_167bd
@@ -2562,7 +2562,7 @@ ResolveStaryuCollision_Bottom: ; 0x167ff
ld [wd503], a
call LoadStaryuGraphics_Bottom
ld a, $6
- callba Func_10000
+ callba CheckSpecialModeColision
ret
.noCollision
@@ -2695,7 +2695,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
sub $21
jr nz, .hitRightRailing
ld a, $9
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wd610]
cp $3
jr nz, .asm_16e35
@@ -2710,7 +2710,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
.hitRightRailing
ld a, $a
- callba Func_10000
+ callba CheckSpecialModeColision
ld a, [wd611]
cp $3
jr nz, .asm_16e35
diff --git a/home/random.asm b/home/random.asm
index 84e4571..e2b8c32 100644
--- a/home/random.asm
+++ b/home/random.asm
@@ -4,16 +4,16 @@ GenRandom: ; 0x959
push hl
ld a, [wd811]
ld c, a
- ld b, $0
+ ld b, $0 ;load ??? into c
inc a
- cp 54 + 1
+ cp 54 + 1 ;inc ???, if ??? is 55 do alot of subtraction and make ??? 0
jr nz, .asm_96e
call Func_9fa
xor a
ld bc, $0000
.asm_96e
- ld [wd811], a
- ld hl, wd812
+ ld [wd811], a ;place wd811 + 1 back in
+ ld hl, wd812 ;choose number generated based on wd811 and all the subtraction
add hl, bc
ld a, [hl]
pop hl
@@ -79,11 +79,11 @@ Func_9fa: ; 0x9fa
ld a, [wd810]
ld d, a
ld bc, wd812
- ld hl, wd812 + $1f
+ ld hl, wd812 + $1f ;d831
ld e, $18
.asm_a06
ld a, [bc]
- sub [hl]
+ sub [hl] ;sub d831 from wd812, add wd810 if it does not carry, put result in wd812. repeat 24 times
jr nc, .asm_a0b
add d
.asm_a0b
@@ -109,11 +109,11 @@ Func_a21: ; 0xa21
push hl
ld c, a
ld b, $0
- ld hl, Data_a38
+ ld hl, Data_a38 ;jump to c in table, load (twice c?) into l
add hl, bc
ld l, [hl]
- call GenRandom
- call Func_dd4
+ call GenRandom ;a = a psuedo random number
+ call Func_dd4 ;a * l
inc h
srl h
ld a, h
@@ -121,7 +121,7 @@ Func_a21: ; 0xa21
pop bc
ret
-Data_a38:
+Data_a38: ;starting from 0, go up 2 each byte
x = 0
REPT 128
db x | ((x >> 7) & 1)
diff --git a/main.asm b/main.asm
index 8bc7f82..8c0807f 100644
--- a/main.asm
+++ b/main.asm
@@ -102,31 +102,31 @@ INCLUDE "engine/pinball_game/end_of_ball_bonus.asm"
SECTION "bank4", ROMX
-Func_10000: ; 0x10000
+CheckSpecialModeColision: ; 0x10000
ld c, a
ld a, [wInSpecialMode] ;special mode in c
and a
ret z ;if mot in special mode, ret
ld a, c
- ld [wd54c], a
+ ld [wSpecialModeCollisionID], a
ld a, [wSpecialMode]
cp SPECIAL_MODE_CATCHEM ;branch based on mode
- jp z, Func_10a95
+ jp z, HandleEvoModeCollision ;call evo mode logic
cp SPECIAL_MODE_EVOLUTION
- jr nz, .next
- callba Func_301ce
+ jr nz, .CatchMode ;call catch mode logic
+ callba HandleMapModeCollision ;call map move logic
ret
-.next
+.CatchMode
ld a, [wCurrentStage]
call CallInFollowingTable
-CallTable_10027: ; 0x10027
- padded_dab Func_20000 ; STAGE_RED_FIELD_TOP
- padded_dab Func_20000 ; STAGE_RED_FIELD_BOTTOM
- padded_dab Func_20000
- padded_dab Func_20000
- padded_dab Func_202bc ; STAGE_BLUE_FIELD_TOP
- padded_dab Func_202bc ; STAGE_BLUE_FIELD_BOTTOM
+HandleCatchEmCollisionCallTable: ; 0x10027
+ padded_dab HandleRedCatchEmCollision ; STAGE_RED_FIELD_TOP
+ padded_dab HandleRedCatchEmCollision ; STAGE_RED_FIELD_BOTTOM
+ padded_dab HandleRedCatchEmCollision
+ padded_dab HandleRedCatchEmCollision
+ padded_dab HandleBlueCatchEmCollision ; STAGE_BLUE_FIELD_TOP
+ padded_dab HandleBlueCatchEmCollision ; STAGE_BLUE_FIELD_BOTTOM
INCLUDE "engine/pinball_game/catchem_mode.asm"
INCLUDE "engine/pinball_game/evolution_mode.asm"
diff --git a/wram.asm b/wram.asm
index f19f0c3..a753245 100644
--- a/wram.asm
+++ b/wram.asm
@@ -566,7 +566,23 @@ wInSpecialMode:: ; 0xd54b
; Set to 1 if currently in special game mode. See wSpecialMode.
ds $1
-wd54c:: ; 0xd54c 10000 sets it to a input, records what the ball has collided with. 7 and 8 from the digletts, 4 from voltorb, b = upper cave lights?, 1 is upper left red trigger, 2 is a right trigger, 5 is bellsprout, d = slot, 6 = staryu, 9/a = right railing multiplier?,
+wSpecialModeCollisionID:: ; 0xd54c 10000 sets it to a input, records what the ball has collided with
+;0 nothing hit?
+;1 upper left red trigger (under ditto) | secondary left trigger on blue
+;2 second right trigger
+;3 second staryu ally trigger
+;4 any voltob | any shellder
+;5 bellsprout | N/A
+;6 staryu | N/A
+;7 left diglett | poliwag
+;8 right diglett | psyduck
+;9 hit right railing (33 multiplier)
+;a hit right railing (otherwise)
+;b upper cave lights (ball upgrade)
+;c Spinner
+;d slot hole
+;e N/A | cloyster
+;f N/A | slowpoke
ds $1
wd54d:: ; 0xd54d catch mode progress?
@@ -1908,7 +1924,7 @@ wOBP1:: ; 0xd80e
wd80f:: ; 0xd80f
ds $1
-wd810:: ; 0xd810
+wd810:: ; 0xd810 loaded by Func_9fa, RNG related
ds $1
wd811:: ; 0xd811