You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-12-11 05:02:16 -08:00
Move more main.asm code into individual files
This commit is contained in:
58
event/buena_menu.asm
Normal file
58
event/buena_menu.asm
Normal file
@@ -0,0 +1,58 @@
|
||||
AskRememberPassword: ; 4ae12
|
||||
call .DoMenu
|
||||
ld a, $0
|
||||
jr c, .okay
|
||||
ld a, $1
|
||||
|
||||
.okay
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
|
||||
.DoMenu: ; 4ae1f
|
||||
lb bc, 14, 7
|
||||
push bc
|
||||
ld hl, YesNoMenuDataHeader
|
||||
call CopyMenuDataHeader
|
||||
pop bc
|
||||
ld a, b
|
||||
ld [wMenuBorderLeftCoord], a
|
||||
add $5
|
||||
ld [wMenuBorderRightCoord], a
|
||||
ld a, c
|
||||
ld [wMenuBorderTopCoord], a
|
||||
add $4
|
||||
ld [wMenuBorderBottomCoord], a
|
||||
call PushWindow
|
||||
call VerticalMenu
|
||||
push af
|
||||
ld c, 15
|
||||
call DelayFrames
|
||||
call Buena_ExitMenu
|
||||
pop af
|
||||
jr c, .refused
|
||||
ld a, [wMenuCursorY]
|
||||
cp $2
|
||||
jr z, .refused
|
||||
and a
|
||||
ret
|
||||
|
||||
.refused
|
||||
ld a, $2
|
||||
ld [wMenuCursorY], a
|
||||
scf
|
||||
ret
|
||||
|
||||
Buena_ExitMenu: ; 4ae5e
|
||||
ld a, [hOAMUpdate]
|
||||
push af
|
||||
call ExitMenu
|
||||
call UpdateSprites
|
||||
xor a
|
||||
ld [hOAMUpdate], a
|
||||
call DelayFrame
|
||||
ld a, $1
|
||||
ld [hOAMUpdate], a
|
||||
call ApplyTilemap
|
||||
pop af
|
||||
ld [hOAMUpdate], a
|
||||
ret
|
||||
38
event/bug_contest/caught_mon.asm
Normal file
38
event/bug_contest/caught_mon.asm
Normal file
@@ -0,0 +1,38 @@
|
||||
BugContest_SetCaughtContestMon: ; e6ce
|
||||
ld a, [wContestMon]
|
||||
and a
|
||||
jr z, .firstcatch
|
||||
ld [wd265], a
|
||||
callba DisplayAlreadyCaughtText
|
||||
callba DisplayCaughtContestMonStats
|
||||
lb bc, 14, 7
|
||||
call PlaceYesNoBox
|
||||
ret c
|
||||
|
||||
.firstcatch
|
||||
call .generatestats
|
||||
ld a, [TempEnemyMonSpecies]
|
||||
ld [wd265], a
|
||||
call GetPokemonName
|
||||
ld hl, .caughttext
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.generatestats ; e6fd
|
||||
ld a, [TempEnemyMonSpecies]
|
||||
ld [CurSpecies], a
|
||||
ld [CurPartySpecies], a
|
||||
call GetBaseData
|
||||
xor a
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, wContestMon
|
||||
call ByteFill
|
||||
xor a
|
||||
ld [MonType], a
|
||||
ld hl, wContestMon
|
||||
jp GeneratePartyMonStats
|
||||
|
||||
.caughttext ; 0xe71d
|
||||
; Caught @ !
|
||||
text_jump UnknownText_0x1c10c0
|
||||
db "@"
|
||||
265
event/heal_machine_anim.asm
Executable file
265
event/heal_machine_anim.asm
Executable file
@@ -0,0 +1,265 @@
|
||||
HealMachineAnim: ; 12324
|
||||
; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
; The location of the healing machine relative to the player is stored in ScriptVar.
|
||||
; 0: Up and left (Pokemon Center)
|
||||
; 1: Left (Elm's Lab)
|
||||
; 2: Up (Hall of Fame)
|
||||
ld a, [ScriptVar]
|
||||
ld [Buffer1], a
|
||||
ld a, [rOBP1]
|
||||
ld [Buffer2], a
|
||||
call .DoJumptableFunctions
|
||||
ld a, [Buffer2]
|
||||
call DmgToCgbObjPal1
|
||||
ret
|
||||
; 1233e
|
||||
|
||||
.DoJumptableFunctions: ; 1233e
|
||||
xor a
|
||||
ld [Buffer3], a
|
||||
.jumpable_loop
|
||||
ld a, [Buffer1]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, .Pointers
|
||||
add hl, de
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [Buffer3]
|
||||
ld e, a
|
||||
inc a
|
||||
ld [Buffer3], a
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp 5
|
||||
jr z, .finish
|
||||
ld hl, .Jumptable
|
||||
rst JumpTable
|
||||
jr .jumpable_loop
|
||||
|
||||
.finish
|
||||
ret
|
||||
; 12365
|
||||
|
||||
.Pointers: ; 12365
|
||||
dw .Pokecenter
|
||||
dw .ElmLab
|
||||
dw .HallOfFame
|
||||
; 1236b
|
||||
|
||||
.Pokecenter: ; 1236b
|
||||
db 0, 1, 3, 5
|
||||
.ElmLab: ; 1236f
|
||||
db 0, 1, 3, 5
|
||||
.HallOfFame: ; 12373
|
||||
db 0, 2, 4, 5
|
||||
; 12377
|
||||
|
||||
.Jumptable: ; 12377
|
||||
dw .LoadGFX
|
||||
dw .PC_LoadBallsOntoMachine
|
||||
dw .HOF_LoadBallsOntoMachine
|
||||
dw .PlayHealMusic
|
||||
dw .HOF_PlaySFX
|
||||
dw .dummy_5 ; never encountered
|
||||
; 12383
|
||||
|
||||
.LoadGFX: ; 12383
|
||||
call .LoadPalettes
|
||||
ld de, .HealMachineGFX
|
||||
ld hl, VTiles0 tile $7c
|
||||
lb bc, BANK(.HealMachineGFX), $2
|
||||
call Request2bpp
|
||||
ret
|
||||
; 12393
|
||||
|
||||
.PC_LoadBallsOntoMachine: ; 12393
|
||||
ld hl, Sprites + $80
|
||||
ld de, .PC_ElmsLab_OAM
|
||||
call .PlaceHealingMachineTile
|
||||
call .PlaceHealingMachineTile
|
||||
jr .LoadBallsOntoMachine
|
||||
|
||||
.HOF_LoadBallsOntoMachine: ; 123a1
|
||||
ld hl, Sprites + $80
|
||||
ld de, .HOF_OAM
|
||||
|
||||
.LoadBallsOntoMachine: ; 123a7
|
||||
ld a, [PartyCount]
|
||||
ld b, a
|
||||
.party_loop
|
||||
call .PlaceHealingMachineTile
|
||||
push de
|
||||
ld de, SFX_SECOND_PART_OF_ITEMFINDER
|
||||
call PlaySFX
|
||||
pop de
|
||||
ld c, 30
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .party_loop
|
||||
ret
|
||||
; 123bf
|
||||
|
||||
.PlayHealMusic: ; 123bf
|
||||
ld de, MUSIC_HEAL
|
||||
call PlayMusic
|
||||
jp .FlashPalettes8Times
|
||||
; 123c8
|
||||
|
||||
.HOF_PlaySFX: ; 123c8
|
||||
ld de, SFX_GAME_FREAK_LOGO_GS
|
||||
call PlaySFX
|
||||
call .FlashPalettes8Times
|
||||
call WaitSFX
|
||||
ld de, SFX_BOOT_PC
|
||||
call PlaySFX
|
||||
ret
|
||||
; 123db
|
||||
|
||||
.dummy_5 ; 123db
|
||||
ret
|
||||
; 123dc
|
||||
|
||||
.PC_ElmsLab_OAM: ; 123dc
|
||||
dsprite 4, 0, 4, 2, $7c, $16
|
||||
dsprite 4, 0, 4, 6, $7c, $16
|
||||
dsprite 4, 6, 4, 0, $7d, $16
|
||||
dsprite 4, 6, 5, 0, $7d, $36 ; xflip
|
||||
dsprite 5, 3, 4, 0, $7d, $16
|
||||
dsprite 5, 3, 5, 0, $7d, $36 ; xflip
|
||||
dsprite 6, 0, 4, 0, $7d, $16
|
||||
dsprite 6, 0, 5, 0, $7d, $36 ; xflip
|
||||
; 123fc
|
||||
|
||||
.HealMachineGFX: ; 123fc
|
||||
INCBIN "gfx/overworld/heal_machine.2bpp"
|
||||
; 1241c
|
||||
|
||||
.HOF_OAM: ; 1241c
|
||||
dsprite 7, 4, 10, 1, $7d, $16
|
||||
dsprite 7, 4, 10, 6, $7d, $16
|
||||
dsprite 7, 3, 9, 5, $7d, $16
|
||||
dsprite 7, 3, 11, 2, $7d, $16
|
||||
dsprite 7, 1, 9, 1, $7d, $16
|
||||
dsprite 7, 1, 11, 5, $7d, $16
|
||||
; 12434
|
||||
|
||||
.LoadPalettes: ; 12434
|
||||
call IsCGB
|
||||
jr nz, .cgb
|
||||
ld a, %11100000
|
||||
ld [rOBP1], a
|
||||
ret
|
||||
|
||||
.cgb
|
||||
ld hl, .palettes
|
||||
ld de, OBPals + 8 * 6
|
||||
ld bc, 8
|
||||
ld a, $5
|
||||
call FarCopyWRAM
|
||||
ld a, $1
|
||||
ld [hCGBPalUpdate], a
|
||||
ret
|
||||
; 12451
|
||||
|
||||
.palettes ; 12451
|
||||
RGB 31, 31, 31
|
||||
RGB 31, 19, 10
|
||||
RGB 31, 07, 01
|
||||
RGB 00, 00, 00
|
||||
; 12459
|
||||
|
||||
.FlashPalettes8Times: ; 12459
|
||||
ld c, $8
|
||||
.palette_loop
|
||||
push bc
|
||||
call .FlashPalettes
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
pop bc
|
||||
dec c
|
||||
jr nz, .palette_loop
|
||||
ret
|
||||
; 12469
|
||||
|
||||
.FlashPalettes: ; 12469
|
||||
call IsCGB
|
||||
jr nz, .go
|
||||
ld a, [rOBP1]
|
||||
xor %00101000
|
||||
ld [rOBP1], a
|
||||
ret
|
||||
|
||||
.go
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, $5
|
||||
ld [rSVBK], a
|
||||
|
||||
ld hl, OBPals + 8 * 6
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
push de
|
||||
ld c, $3
|
||||
.palette_loop_2
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hld]
|
||||
ld d, a
|
||||
dec hl
|
||||
ld a, d
|
||||
ld [hld], a
|
||||
ld a, e
|
||||
ld [hli], a
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .palette_loop_2
|
||||
pop de
|
||||
dec hl
|
||||
ld a, d
|
||||
ld [hld], a
|
||||
ld a, e
|
||||
ld [hl], a
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ld a, $1
|
||||
ld [hCGBPalUpdate], a
|
||||
ret
|
||||
; 124a3
|
||||
|
||||
.PlaceHealingMachineTile: ; 124a3
|
||||
push bc
|
||||
ld a, [Buffer1]
|
||||
bcpixel 2, 4
|
||||
cp $1 ; ElmsLab
|
||||
jr z, .okay
|
||||
bcpixel 0, 0
|
||||
|
||||
.okay
|
||||
ld a, [de]
|
||||
add c
|
||||
inc de
|
||||
ld [hli], a
|
||||
ld a, [de]
|
||||
add b
|
||||
inc de
|
||||
ld [hli], a
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a
|
||||
pop bc
|
||||
ret
|
||||
; 124c1
|
||||
48
event/poisonstep_pals.asm
Normal file
48
event/poisonstep_pals.asm
Normal file
@@ -0,0 +1,48 @@
|
||||
LoadPoisonBGPals: ; cbcdd
|
||||
call .LoadPals
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
ret nz
|
||||
ret ; ????
|
||||
|
||||
.LoadPals: ; cbce5
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
jr nz, .cgb
|
||||
ld a, [TimeOfDayPal]
|
||||
and $3
|
||||
cp $3
|
||||
ld a, %00000000
|
||||
jr z, .convert_pals
|
||||
ld a, %10101010
|
||||
|
||||
.convert_pals
|
||||
call DmgToCgbBGPals
|
||||
ld c, 4
|
||||
call DelayFrames
|
||||
callba _UpdateTimePals
|
||||
ret
|
||||
|
||||
.cgb
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, $5
|
||||
ld [rSVBK], a
|
||||
ld hl, BGPals
|
||||
ld c, $20
|
||||
.loop
|
||||
; RGB 28, 21, 31
|
||||
ld a, (palred 28 + palgreen 21 + palblue 31) % $100
|
||||
ld [hli], a
|
||||
ld a, (palred 28 + palgreen 21 + palblue 31) / $100
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .loop
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ld a, $1
|
||||
ld [hCGBPalUpdate], a
|
||||
ld c, 4
|
||||
call DelayFrames
|
||||
callba _UpdateTimePals
|
||||
ret
|
||||
61
event/print_photo.asm
Executable file
61
event/print_photo.asm
Executable file
@@ -0,0 +1,61 @@
|
||||
PhotoStudio: ; 16dc7
|
||||
ld hl, .Text_AskWhichMon
|
||||
call PrintText
|
||||
callba SelectMonFromParty
|
||||
jr c, .cancel
|
||||
ld a, [CurPartySpecies]
|
||||
cp EGG
|
||||
jr z, .egg
|
||||
|
||||
ld hl, .Text_HoldStill
|
||||
call PrintText
|
||||
call DisableSpriteUpdates
|
||||
callba PrintPartymon
|
||||
call ReturnToMapWithSpeechTextbox
|
||||
ld a, [hPrinter]
|
||||
and a
|
||||
jr nz, .cancel
|
||||
ld hl, .Text_Presto
|
||||
jr .print_text
|
||||
|
||||
.cancel
|
||||
ld hl, .Text_NoPicture
|
||||
jr .print_text
|
||||
|
||||
.egg
|
||||
ld hl, .Text_Egg
|
||||
|
||||
.print_text
|
||||
call PrintText
|
||||
ret
|
||||
; 16e04
|
||||
|
||||
.Text_AskWhichMon: ; 0x16e04
|
||||
; Which #MON should I photo- graph?
|
||||
text_jump UnknownText_0x1be024
|
||||
db "@"
|
||||
; 0x16e09
|
||||
|
||||
.Text_HoldStill: ; 0x16e09
|
||||
; All righty. Hold still for a bit.
|
||||
text_jump UnknownText_0x1be047
|
||||
db "@"
|
||||
; 0x16e0e
|
||||
|
||||
.Text_Presto: ; 0x16e0e
|
||||
; Presto! All done. Come again, OK?
|
||||
text_jump UnknownText_0x1be06a
|
||||
db "@"
|
||||
; 0x16e13
|
||||
|
||||
.Text_NoPicture: ; 0x16e13
|
||||
; Oh, no picture? Come again, OK?
|
||||
text_jump UnknownText_0x1c0000
|
||||
db "@"
|
||||
; 0x16e18
|
||||
|
||||
.Text_Egg: ; 0x16e18
|
||||
; An EGG? My talent is worth more…
|
||||
text_jump UnknownText_0x1c0021
|
||||
db "@"
|
||||
; 0x16e1d
|
||||
62
event/photo.asm → event/print_unown.asm
Executable file → Normal file
62
event/photo.asm → event/print_unown.asm
Executable file → Normal file
@@ -231,65 +231,3 @@ PlaceUnownPrinterFrontpic: ; 16dac
|
||||
predef PlaceGraphic
|
||||
ret
|
||||
; 16dc7
|
||||
|
||||
PhotoStudio: ; 16dc7
|
||||
ld hl, .Text_AskWhichMon
|
||||
call PrintText
|
||||
callba SelectMonFromParty
|
||||
jr c, .cancel
|
||||
ld a, [CurPartySpecies]
|
||||
cp EGG
|
||||
jr z, .egg
|
||||
|
||||
ld hl, .Text_HoldStill
|
||||
call PrintText
|
||||
call DisableSpriteUpdates
|
||||
callba PrintPartymon
|
||||
call ReturnToMapWithSpeechTextbox
|
||||
ld a, [hPrinter]
|
||||
and a
|
||||
jr nz, .cancel
|
||||
ld hl, .Text_Presto
|
||||
jr .print_text
|
||||
|
||||
.cancel
|
||||
ld hl, .Text_NoPicture
|
||||
jr .print_text
|
||||
|
||||
.egg
|
||||
ld hl, .Text_Egg
|
||||
|
||||
.print_text
|
||||
call PrintText
|
||||
ret
|
||||
; 16e04
|
||||
|
||||
.Text_AskWhichMon: ; 0x16e04
|
||||
; Which #MON should I photo- graph?
|
||||
text_jump UnknownText_0x1be024
|
||||
db "@"
|
||||
; 0x16e09
|
||||
|
||||
.Text_HoldStill: ; 0x16e09
|
||||
; All righty. Hold still for a bit.
|
||||
text_jump UnknownText_0x1be047
|
||||
db "@"
|
||||
; 0x16e0e
|
||||
|
||||
.Text_Presto: ; 0x16e0e
|
||||
; Presto! All done. Come again, OK?
|
||||
text_jump UnknownText_0x1be06a
|
||||
db "@"
|
||||
; 0x16e13
|
||||
|
||||
.Text_NoPicture: ; 0x16e13
|
||||
; Oh, no picture? Come again, OK?
|
||||
text_jump UnknownText_0x1c0000
|
||||
db "@"
|
||||
; 0x16e18
|
||||
|
||||
.Text_Egg: ; 0x16e18
|
||||
; An EGG? My talent is worth more…
|
||||
text_jump UnknownText_0x1c0021
|
||||
db "@"
|
||||
; 0x16e1d
|
||||
111
event/print_unown_2.asm
Normal file
111
event/print_unown_2.asm
Normal file
@@ -0,0 +1,111 @@
|
||||
RotateUnownFrontpic: ; e0000
|
||||
; something to do with Unown printer
|
||||
push de
|
||||
xor a
|
||||
call GetSRAMBank
|
||||
ld hl, sScratch
|
||||
ld bc, 0
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
push bc
|
||||
ld de, wd002
|
||||
call .Copy
|
||||
call .Rotate
|
||||
ld hl, UnownPrinter_OverworldMapRectangle
|
||||
pop bc
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld d, [hl]
|
||||
ld hl, wd012
|
||||
call .Copy
|
||||
pop hl
|
||||
ld bc, $10
|
||||
add hl, bc
|
||||
pop bc
|
||||
inc c
|
||||
ld a, c
|
||||
cp 7 * 7
|
||||
jr c, .loop
|
||||
|
||||
ld hl, OverworldMap
|
||||
ld de, sScratch
|
||||
ld bc, 7 * 7 tiles
|
||||
call CopyBytes
|
||||
pop hl
|
||||
ld de, sScratch
|
||||
ld c, 7 * 7
|
||||
ld a, [hROMBank]
|
||||
ld b, a
|
||||
call Get2bpp
|
||||
call CloseSRAM
|
||||
ret
|
||||
|
||||
.Copy: ; e004e
|
||||
ld c, $10
|
||||
.loop_copy
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
dec c
|
||||
jr nz, .loop_copy
|
||||
ret
|
||||
|
||||
.Rotate: ; e0057
|
||||
ld hl, wd012
|
||||
ld e, %10000000
|
||||
ld d, 8
|
||||
.loop_decompress
|
||||
push hl
|
||||
ld hl, wd002
|
||||
call .CountSetBit
|
||||
pop hl
|
||||
ld a, b
|
||||
ld [hli], a
|
||||
push hl
|
||||
ld hl, wd003
|
||||
call .CountSetBit
|
||||
pop hl
|
||||
ld a, b
|
||||
ld [hli], a
|
||||
srl e
|
||||
dec d
|
||||
jr nz, .loop_decompress
|
||||
ret
|
||||
|
||||
.CountSetBit: ; e0078
|
||||
ld b, 0
|
||||
ld c, 8
|
||||
.loop_count
|
||||
ld a, [hli]
|
||||
and e
|
||||
jr z, .clear
|
||||
scf
|
||||
jr .apply
|
||||
|
||||
.clear
|
||||
and a
|
||||
|
||||
.apply
|
||||
rr b
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .loop_count
|
||||
ret
|
||||
|
||||
overworldmaprect: MACRO
|
||||
y = 0
|
||||
rept \1
|
||||
x = \1 * (\2 +- 1) + y
|
||||
rept \2
|
||||
dw OverworldMap tile x
|
||||
x = x +- \2
|
||||
endr
|
||||
y = y + 1
|
||||
endr
|
||||
endm
|
||||
|
||||
UnownPrinter_OverworldMapRectangle: ; e008b
|
||||
overworldmaprect 7, 7
|
||||
Reference in New Issue
Block a user