You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
move miscellaneous asm into engine/
This commit is contained in:
198
engine/bittable2.asm
Normal file
198
engine/bittable2.asm
Normal file
@@ -0,0 +1,198 @@
|
||||
; All locations are in WRAM bank 1.
|
||||
|
||||
; location, bit
|
||||
|
||||
; pokegear
|
||||
dwb $d957, %00000010 ; radio card
|
||||
dwb $d957, %00000001 ; map card
|
||||
dwb $d957, %00000100 ; phone card
|
||||
dwb $d957, %00001000 ; expn card
|
||||
dwb $d957, %10000000 ; on/off
|
||||
|
||||
; DaycareMan, %10000000 ; daycare 1 on
|
||||
dwb DaycareMan, %01000000 ; monster 1 and 2 are compatible
|
||||
; DaycareMan, %00100000 ; egg is ready
|
||||
dwb DaycareMan, %00000001 ; monster 1 in daycare
|
||||
|
||||
; DaycareLady, %10000000 = daycare 2 on
|
||||
dwb DaycareLady, %00000001 ; monster 2 in daycare
|
||||
|
||||
dwb $d854, %00000001 ; mom saving money
|
||||
dwb $d854, %10000000 ; dst
|
||||
|
||||
dwb $dc39, %00000001
|
||||
|
||||
dwb $d84c, %00000001 ; pokedex
|
||||
dwb $d84c, %00000010 ; unown dex
|
||||
dwb $d84c, %00001000 ; pokerus
|
||||
dwb $d84c, %00010000 ; rocket signal on ch20
|
||||
dwb $d84c, %01000000 ; credits skip
|
||||
dwb $d84c, %10000000 ; bug contest on
|
||||
dwb $d84d, %00000100 ; bug contest timer
|
||||
dwb $d84d, %00000010 ; rockets in radio tower
|
||||
dwb $d84d, %00000001 ; bike shop call enabled (1024 bike steps reqd)
|
||||
dwb $d84d, %00010000
|
||||
dwb $d84d, %00100000 ; give pokerus; berry -> berry juice when trading?
|
||||
dwb $d84d, %01000000
|
||||
dwb $d84d, %10000000 ; rockets in mahogany
|
||||
|
||||
dwb $dbf5, %00000001 ; strength active
|
||||
dwb $dbf5, %00000010 ; always on bike (cant surf)
|
||||
dwb $dbf5, %00000100 ; downhill (cycling road)
|
||||
|
||||
dwb JohtoBadges, %00000001 ; zephyrbadge
|
||||
dwb JohtoBadges, %00000010 ; hivebadge
|
||||
dwb JohtoBadges, %00000100 ; plainbadge
|
||||
dwb JohtoBadges, %00001000 ; fogbadge
|
||||
dwb JohtoBadges, %00010000 ; mineralbadge
|
||||
dwb JohtoBadges, %00100000 ; stormbadge
|
||||
dwb JohtoBadges, %01000000 ; glacierbadge
|
||||
dwb JohtoBadges, %10000000 ; risingbadge
|
||||
|
||||
dwb KantoBadges, %00000001 ; boulderbadge
|
||||
dwb KantoBadges, %00000010 ; cascadebadge
|
||||
dwb KantoBadges, %00000100 ; thunderbadge
|
||||
dwb KantoBadges, %00001000 ; rainbowbadge
|
||||
dwb KantoBadges, %00010000 ; soulbadge
|
||||
dwb KantoBadges, %00100000 ; marshbadge
|
||||
dwb KantoBadges, %01000000 ; volcanobadge
|
||||
dwb KantoBadges, %10000000 ; earthbadge
|
||||
|
||||
; unown sets
|
||||
dwb UnlockedUnowns, %00000001 ; 1
|
||||
dwb UnlockedUnowns, %00000010 ; 2
|
||||
dwb UnlockedUnowns, %00000100 ; 3
|
||||
dwb UnlockedUnowns, %00001000 ; 4
|
||||
dwb UnlockedUnowns, %00010000 ; 5
|
||||
dwb UnlockedUnowns, %00100000 ; 6
|
||||
dwb UnlockedUnowns, %01000000 ; 7
|
||||
dwb UnlockedUnowns, %10000000 ; 8
|
||||
|
||||
; fly
|
||||
dwb FlypointPerms, %00000001 ; your house
|
||||
dwb FlypointPerms, %00000010 ; viridian pokecenter
|
||||
dwb FlypointPerms, %00000100 ; pallet
|
||||
dwb FlypointPerms, %00001000 ; viridian
|
||||
dwb FlypointPerms, %00010000 ; pewter
|
||||
dwb FlypointPerms, %00100000 ; cerulean
|
||||
dwb FlypointPerms, %01000000 ; rock tunnel
|
||||
dwb FlypointPerms, %10000000 ; vermilion
|
||||
dwb FlypointPerms + 1, %00000001 ; lavender
|
||||
dwb FlypointPerms + 1, %00000010 ; saffron
|
||||
dwb FlypointPerms + 1, %00000100 ; celadon
|
||||
dwb FlypointPerms + 1, %00001000 ; fuchsia
|
||||
dwb FlypointPerms + 1, %00010000 ; cinnabar
|
||||
dwb FlypointPerms + 1, %00100000 ; indigo plateau
|
||||
dwb FlypointPerms + 1, %01000000 ; new bark
|
||||
dwb FlypointPerms + 1, %10000000 ; cherrygrove
|
||||
dwb FlypointPerms + 2, %00000001 ; violet
|
||||
dwb FlypointPerms + 2, %00000100 ; azalea
|
||||
dwb FlypointPerms + 2, %00001000 ; cianwood
|
||||
dwb FlypointPerms + 2, %00010000 ; goldenrod
|
||||
dwb FlypointPerms + 2, %00100000 ; olivine
|
||||
dwb FlypointPerms + 2, %01000000 ; ecruteak
|
||||
dwb FlypointPerms + 2, %10000000 ; mahogany
|
||||
dwb FlypointPerms + 3, %00000001 ; lake of rage
|
||||
dwb FlypointPerms + 3, %00000010 ; blackthorn
|
||||
dwb FlypointPerms + 3, %00000100 ; silver cave
|
||||
dwb FlypointPerms + 3, %00010000 ; unused
|
||||
|
||||
dwb $dc9d, %00000001 ; lucky number show
|
||||
dwb $d84d, %00001000
|
||||
|
||||
dwb $dc1e, %00000001 ; kurt making balls
|
||||
dwb $dc1e, %00000010
|
||||
dwb $dc1e, %00000100 ; special wilddata?
|
||||
dwb $dc1e, %00001000 ; time capsule (24h wait)
|
||||
dwb $dc1e, %00010000 ; all fruit trees
|
||||
dwb $dc1e, %00100000 ; shuckle given
|
||||
dwb $dc1e, %01000000 ; goldenrod underground merchant closed
|
||||
dwb $dc1e, %10000000 ; fought in trainer hall today
|
||||
|
||||
dwb $dc1f, %00000001 ; mt moon square clefairy
|
||||
dwb $dc1f, %00000010 ; union cave lapras
|
||||
dwb $dc1f, %00000100 ; goldenrod underground haircut used
|
||||
dwb $dc1f, %00001000 ; goldenrod mall happiness event floor05 person07
|
||||
dwb $dc1f, %00010000 ; tea in blues house
|
||||
dwb $dc1f, %00100000 ; indigo plateau rival fight
|
||||
dwb $dc1f, %01000000
|
||||
dwb $dc1f, %10000000
|
||||
|
||||
dwb $dc20, %00000001 ; $60
|
||||
dwb $dc20, %00000010 ; goldenrod dept store sale is on
|
||||
|
||||
dwb $cfbc, %10000000 ; $62
|
||||
|
||||
dwb PlayerGender, %00000001 ; player is female
|
||||
|
||||
dwb $dbf3, %00000100 ; have gs ball after kurt examined it
|
||||
|
||||
; rematches
|
||||
dwb $dc4c, %00000001 ; jack
|
||||
dwb $dc4c, %00000010 ; huey
|
||||
dwb $dc4c, %00000100 ; gaven
|
||||
dwb $dc4c, %00001000 ; beth
|
||||
dwb $dc4c, %00010000 ; jose
|
||||
dwb $dc4c, %00100000 ; reena
|
||||
dwb $dc4c, %01000000 ; joey
|
||||
dwb $dc4c, %10000000 ; wade
|
||||
dwb $dc4d, %00000001 ; ralph
|
||||
dwb $dc4d, %00000010 ; liz
|
||||
dwb $dc4d, %00000100 ; anthony
|
||||
dwb $dc4d, %00001000 ; todd
|
||||
dwb $dc4d, %00010000 ; gina
|
||||
dwb $dc4d, %00100000 ; arnie
|
||||
dwb $dc4d, %01000000 ; alan
|
||||
dwb $dc4d, %10000000 ; dana
|
||||
dwb $dc4e, %00000001 ; chad
|
||||
dwb $dc4e, %00000010 ; tully
|
||||
dwb $dc4e, %00000100 ; brent
|
||||
dwb $dc4e, %00001000 ; tiffany
|
||||
dwb $dc4e, %00010000 ; vance
|
||||
dwb $dc4e, %00100000 ; wilton
|
||||
dwb $dc4e, %01000000 ; parry
|
||||
dwb $dc4e, %10000000 ; erin
|
||||
|
||||
dwb $dc50, %00000001 ; beverly has nugget
|
||||
dwb $dc50, %00000010 ; jose has star piece
|
||||
dwb $dc50, %00000100 ; wade has item (see bittable1 $032b-e)
|
||||
dwb $dc50, %00001000 ; gina has leaf stone
|
||||
dwb $dc50, %00010000 ; alan has fire stone
|
||||
dwb $dc50, %00100000 ; liz has thunderstone
|
||||
dwb $dc50, %01000000 ; derek has nugget
|
||||
dwb $dc50, %10000000 ; tully has water stone
|
||||
|
||||
dwb $dc51, %00000001 ; tiffany has pink bow
|
||||
dwb $dc51, %00000010 ; wilton has item (see bittable1 $032f-31)
|
||||
|
||||
dwb $dc54, %00000001
|
||||
dwb $dc54, %00000010
|
||||
dwb $dc54, %00000100
|
||||
dwb $dc54, %00001000
|
||||
dwb $dc54, %00010000
|
||||
dwb $dc54, %00100000
|
||||
dwb $dc54, %01000000
|
||||
dwb $dc54, %10000000
|
||||
|
||||
dwb $dc55, %00000001
|
||||
dwb $dc55, %00000010
|
||||
dwb $dc55, %00000100
|
||||
dwb $dc55, %00001000
|
||||
dwb $dc55, %00010000
|
||||
dwb $dc55, %00100000
|
||||
dwb $dc55, %01000000
|
||||
dwb $dc55, %10000000
|
||||
|
||||
dwb $dc56, %00000001
|
||||
dwb $dc56, %00000010
|
||||
dwb $dc56, %00000100
|
||||
dwb $dc56, %00001000
|
||||
dwb $dc56, %00010000
|
||||
dwb $dc56, %00100000
|
||||
dwb $dc56, %01000000
|
||||
dwb $dc56, %10000000
|
||||
|
||||
dwb $d45b, %00000100 ; female player has been transformed into male
|
||||
|
||||
dwb $dc20, %00000100 ; dunsparce swarm
|
||||
dwb $dc20, %00001000 ; yanma swarm
|
||||
824
engine/credits.asm
Normal file
824
engine/credits.asm
Normal file
File diff suppressed because it is too large
Load Diff
275
engine/joypad.asm
Normal file
275
engine/joypad.asm
Normal file
@@ -0,0 +1,275 @@
|
||||
JoypadInt: ; 92e
|
||||
; Replaced by Joypad, called from VBlank instead of the useless
|
||||
; joypad interrupt.
|
||||
|
||||
; This is a placeholder in case the interrupt is somehow enabled.
|
||||
reti
|
||||
; 92f
|
||||
|
||||
ClearJoypadPublic: ; 92f
|
||||
xor a
|
||||
; Pressed this frame (delta)
|
||||
ld [hJoyPressed], a
|
||||
; Currently pressed
|
||||
ld [hJoyDown], a
|
||||
ret
|
||||
; 935
|
||||
|
||||
Joypad: ; 935
|
||||
; Read the joypad register and translate it to something more
|
||||
; workable for use in-game. There are 8 buttons, so we can use
|
||||
; one byte to contain all player input.
|
||||
|
||||
; Updates:
|
||||
|
||||
; hJoypadReleased: released this frame (delta)
|
||||
; hJoypadPressed: pressed this frame (delta)
|
||||
; hJoypadDown: currently pressed
|
||||
; hJoypadSum: pressed so far
|
||||
|
||||
; Any of these three bits can be used to disable input.
|
||||
ld a, [$cfbe]
|
||||
and %11010000
|
||||
ret nz
|
||||
|
||||
; If we're saving, input is disabled.
|
||||
ld a, [$c2cd]
|
||||
and a
|
||||
ret nz
|
||||
|
||||
; We can only get four inputs at a time.
|
||||
; We take d-pad first for no particular reason.
|
||||
ld a, D_PAD
|
||||
ld [rJOYP], a
|
||||
; Read twice to give the request time to take.
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
|
||||
; The Joypad register output is in the lo nybble (inversed).
|
||||
; We make the hi nybble of our new container d-pad input.
|
||||
cpl
|
||||
and $f
|
||||
swap a
|
||||
|
||||
; We'll keep this in b for now.
|
||||
ld b, a
|
||||
|
||||
; Buttons make 8 total inputs (A, B, Select, Start).
|
||||
; We can fit this into one byte.
|
||||
ld a, BUTTONS
|
||||
ld [rJOYP], a
|
||||
; Wait for input to stabilize.
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
; Buttons take the lo nybble.
|
||||
cpl
|
||||
and $f
|
||||
or b
|
||||
ld b, a
|
||||
|
||||
; Reset the joypad register since we're done with it.
|
||||
ld a, $30
|
||||
ld [rJOYP], a
|
||||
|
||||
; To get the delta we xor the last frame's input with the new one.
|
||||
ld a, [hJoypadDown] ; last frame
|
||||
ld e, a
|
||||
xor b
|
||||
ld d, a
|
||||
; Released this frame:
|
||||
and e
|
||||
ld [hJoypadReleased], a
|
||||
; Pressed this frame:
|
||||
ld a, d
|
||||
and b
|
||||
ld [hJoypadPressed], a
|
||||
|
||||
; Add any new presses to the list of collective presses:
|
||||
ld c, a
|
||||
ld a, [hJoypadSum]
|
||||
or c
|
||||
ld [hJoypadSum], a
|
||||
|
||||
; Currently pressed:
|
||||
ld a, b
|
||||
ld [hJoypadDown], a
|
||||
|
||||
; Now that we have the input, we can do stuff with it.
|
||||
|
||||
; For example, soft reset:
|
||||
and BUTTON_A | BUTTON_B | SELECT | START
|
||||
cp BUTTON_A | BUTTON_B | SELECT | START
|
||||
jp z, $0150 ; reset
|
||||
|
||||
ret
|
||||
; 984
|
||||
|
||||
|
||||
GetJoypadPublic: ; 984
|
||||
; Update mirror joypad input from hJoypadDown (real input)
|
||||
|
||||
; hJoyReleased: released this frame (delta)
|
||||
; hJoyPressed: pressed this frame (delta)
|
||||
; hJoyDown: currently pressed
|
||||
|
||||
; bit 0 A
|
||||
; 1 B
|
||||
; 2 SELECT
|
||||
; 3 START
|
||||
; 4 RIGHT
|
||||
; 5 LEFT
|
||||
; 6 UP
|
||||
; 7 DOWN
|
||||
|
||||
push af
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
|
||||
; The player input can be automated using an input stream.
|
||||
; See more below.
|
||||
ld a, [InputType]
|
||||
cp a, AUTO_INPUT
|
||||
jr z, .auto
|
||||
|
||||
; To get deltas, take this and last frame's input.
|
||||
ld a, [hJoypadDown] ; real input
|
||||
ld b, a
|
||||
ld a, [hJoyDown] ; last frame mirror
|
||||
ld e, a
|
||||
|
||||
; Released this frame:
|
||||
xor b
|
||||
ld d, a
|
||||
and e
|
||||
ld [hJoyReleased], a
|
||||
|
||||
; Pressed this frame:
|
||||
ld a, d
|
||||
and b
|
||||
ld [hJoyPressed], a
|
||||
|
||||
; It looks like the collective presses got commented out here.
|
||||
ld c, a
|
||||
|
||||
; Currently pressed:
|
||||
ld a, b
|
||||
ld [hJoyDown], a ; frame input
|
||||
|
||||
.quit
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
pop af
|
||||
ret
|
||||
|
||||
.auto
|
||||
; Use a predetermined input stream (used in the catching tutorial).
|
||||
|
||||
; Stream format: [input][duration]
|
||||
; A value of $ff will immediately end the stream.
|
||||
|
||||
; Read from the input stream.
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, [AutoInputBank]
|
||||
rst Bankswitch
|
||||
|
||||
ld hl, AutoInputAddress
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
; We only update when the input duration has expired.
|
||||
ld a, [AutoInputLength]
|
||||
and a
|
||||
jr z, .updateauto
|
||||
|
||||
; Until then, don't change anything.
|
||||
dec a
|
||||
ld [AutoInputLength], a
|
||||
pop af
|
||||
rst Bankswitch
|
||||
jr .quit
|
||||
|
||||
|
||||
.updateauto
|
||||
; An input of $ff will end the stream.
|
||||
ld a, [hli]
|
||||
cp a, $ff
|
||||
jr z, .stopauto
|
||||
ld b, a
|
||||
|
||||
; A duration of $ff will end the stream indefinitely.
|
||||
ld a, [hli]
|
||||
ld [AutoInputLength], a
|
||||
cp a, $ff
|
||||
jr nz, .next
|
||||
|
||||
; The current input is overwritten.
|
||||
dec hl
|
||||
dec hl
|
||||
ld b, NO_INPUT
|
||||
jr .finishauto
|
||||
|
||||
.next
|
||||
; On to the next input...
|
||||
ld a, l
|
||||
ld [AutoInputAddress], a
|
||||
ld a, h
|
||||
ld [AutoInputAddress+1], a
|
||||
jr .finishauto
|
||||
|
||||
.stopauto
|
||||
call StopAutoInput
|
||||
ld b, NO_INPUT
|
||||
|
||||
.finishauto
|
||||
pop af
|
||||
rst Bankswitch
|
||||
ld a, b
|
||||
ld [hJoyPressed], a ; pressed
|
||||
ld [hJoyDown], a ; input
|
||||
jr .quit
|
||||
; 9ee
|
||||
|
||||
|
||||
StartAutoInput: ; 9ee
|
||||
; Start reading automated input stream at a:hl.
|
||||
|
||||
ld [AutoInputBank], a
|
||||
ld a, l
|
||||
ld [AutoInputAddress], a
|
||||
ld a, h
|
||||
ld [AutoInputAddress+1], a
|
||||
; Start reading the stream immediately.
|
||||
xor a
|
||||
ld [AutoInputLength], a
|
||||
; Reset input mirrors.
|
||||
xor a
|
||||
ld [hJoyPressed], a ; pressed this frame
|
||||
ld [hJoyReleased], a ; released this frame
|
||||
ld [hJoyDown], a ; currently pressed
|
||||
|
||||
ld a, AUTO_INPUT
|
||||
ld [InputType], a
|
||||
ret
|
||||
; a0a
|
||||
|
||||
|
||||
StopAutoInput: ; a0a
|
||||
; Clear variables related to automated input.
|
||||
xor a
|
||||
ld [AutoInputBank], a
|
||||
ld [AutoInputAddress], a
|
||||
ld [AutoInputAddress+1], a
|
||||
ld [AutoInputLength], a
|
||||
; Back to normal input.
|
||||
ld [InputType], a
|
||||
ret
|
||||
; a1b
|
||||
|
||||
539
engine/landmarks.asm
Normal file
539
engine/landmarks.asm
Normal file
File diff suppressed because it is too large
Load Diff
3127
engine/scripting.asm
Normal file
3127
engine/scripting.asm
Normal file
File diff suppressed because it is too large
Load Diff
539
engine/vblank.asm
Normal file
539
engine/vblank.asm
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user