mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-04-25 15:39:32 -05:00
Merge pull request #95 from ZoomTen/super-gameboy
Some work on SGB functions (bank $02)
This commit is contained in:
commit
f917febffb
4
Makefile
4
Makefile
|
|
@ -124,6 +124,10 @@ $(BUILD)/%.1bpp: %.1bpp.png tools/gfx | $$(dir $$@)
|
|||
$(BUILD)/%.tilemap: %.png | $$(dir $$@)
|
||||
$(RGBGFX) -t $@ $<
|
||||
|
||||
.PRECIOUS: $(BUILD)/%.sgb.tilemap
|
||||
$(BUILD)/%.sgb.tilemap: %.bin | $$(dir $$@)
|
||||
tr < $< -d '\000' > $@
|
||||
|
||||
.PRECIOUS: %/
|
||||
%/:
|
||||
mkdir -p $@
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
; SuperPalettes indexes (see data/sgb/super_palettes.inc)
|
||||
const_def
|
||||
const PAL_ROUTE ; 00
|
||||
const PAL_TOWN_01 ; 01
|
||||
|
|
|
|||
|
|
@ -2,122 +2,30 @@
|
|||
const_def
|
||||
const SGB_BATTLE_GRAYSCALE
|
||||
const SGB_BATTLE_COLORS
|
||||
const SGB_TRAINER_GEAR_PALS
|
||||
const SGB_TOWN_MAP
|
||||
const SGB_STATS_SCREEN_HP_PALS
|
||||
const SGB_POKEDEX
|
||||
const SGB_SLOT_MACHINE
|
||||
const SGB_06
|
||||
const SGB_TITLE_SCREEN
|
||||
const SGB_GS_INTRO
|
||||
const SGB_DIPLOMA
|
||||
const SGB_MAPPALS
|
||||
const SGB_MAP_PALS
|
||||
const SGB_PARTY_MENU
|
||||
const SGB_EVOLUTION
|
||||
const SGB_GS_TITLE_SCREEN
|
||||
const SGB_0D
|
||||
const SGB_MOVE_LIST
|
||||
const SGB_BETA_PIKACHU_MINIGAME
|
||||
const SGB_POKEDEX_SEARCH_OPTION
|
||||
const SGB_BETA_POKER
|
||||
const SGB_POKEPIC
|
||||
const SGB_TRAINER_GEAR
|
||||
const SGB_PACKPALS
|
||||
const SGB_GF_INTRO
|
||||
const SGB_TRAINER_CARD
|
||||
const SGB_POKEDEX_UNOWN_MODE
|
||||
const SGB_BILLS_PC
|
||||
const SGB_UNOWN_PUZZLE
|
||||
const SGB_GAMEFREAK_LOGO
|
||||
const SGB_PLAYER_OR_MON_FRONTPIC_PALS
|
||||
const SGB_TRADE_TUBE
|
||||
const SGB_TRAINER_OR_MON_FRONTPIC_PALS
|
||||
const SGB_MYSTERY_GIFT
|
||||
const SGB_1E
|
||||
const SGB_MOVE_LIST
|
||||
const SGB_PIKACHU_MINIGAME
|
||||
const SGB_POKEDEX_SELECTION
|
||||
const SGB_POKER
|
||||
const SGB_POKEPIC
|
||||
const SGB_TRAINERGEAR
|
||||
const SGB_TRAINERGEAR_MAP
|
||||
const SGB_TRAINERGEAR_RADIO
|
||||
|
||||
SGB_PARTY_MENU_HP_PALS EQU -4
|
||||
SGB_RAM EQU -1
|
||||
|
||||
; PredefPals indexes (see gfx/sgb/predef.pal)
|
||||
; GetPredefPal arguments (see engine/gfx/color.asm)
|
||||
const_def
|
||||
const PREDEFPAL_00
|
||||
const PREDEFPAL_PALLET
|
||||
const PREDEFPAL_VIRIDIAN
|
||||
const PREDEFPAL_PEWTER
|
||||
const PREDEFPAL_CERULEAN
|
||||
const PREDEFPAL_LAVENDER
|
||||
const PREDEFPAL_VERMILION
|
||||
const PREDEFPAL_CELADON
|
||||
const PREDEFPAL_FUCHSIA
|
||||
const PREDEFPAL_CINNABAR
|
||||
const PREDEFPAL_SAFFRON
|
||||
const PREDEFPAL_INDIGO
|
||||
const PREDEFPAL_NEW_BARK
|
||||
const PREDEFPAL_CHERRYGROVE
|
||||
const PREDEFPAL_VIOLET
|
||||
const PREDEFPAL_AZALEA
|
||||
const PREDEFPAL_GOLDENROD
|
||||
const PREDEFPAL_ECRUTEAK
|
||||
const PREDEFPAL_OLIVINE
|
||||
const PREDEFPAL_CIANWOOD
|
||||
const PREDEFPAL_MAHOGANY
|
||||
const PREDEFPAL_BLACKTHORN
|
||||
const PREDEFPAL_LAKE_OF_RAGE
|
||||
const PREDEFPAL_SILVER_CAVE
|
||||
const PREDEFPAL_DUNGEONS
|
||||
const PREDEFPAL_NITE
|
||||
const PREDEFPAL_BLACKOUT
|
||||
const PREDEFPAL_DIPLOMA ; RB_MEWMON
|
||||
const PREDEFPAL_TRADE_TUBE ; RB_BLUEMON
|
||||
const PREDEFPAL_POKEDEX ; RB_REDMON
|
||||
const PREDEFPAL_RB_CYANMON
|
||||
const PREDEFPAL_RB_PURPLEMON
|
||||
const PREDEFPAL_RB_BROWNMON
|
||||
const PREDEFPAL_RB_GREENMON
|
||||
const PREDEFPAL_RB_PINKMON
|
||||
const PREDEFPAL_RB_YELLOWMON
|
||||
const PREDEFPAL_CGB_BADGE ; RB_GRAYMON
|
||||
const PREDEFPAL_BETA_SHINY_MEWMON
|
||||
const PREDEFPAL_BETA_SHINY_BLUEMON
|
||||
const PREDEFPAL_BETA_SHINY_REDMON
|
||||
const PREDEFPAL_BETA_SHINY_CYANMON
|
||||
const PREDEFPAL_BETA_SHINY_PURPLEMON
|
||||
const PREDEFPAL_BETA_SHINY_BROWNMON
|
||||
const PREDEFPAL_BETA_SHINY_GREENMON
|
||||
const PREDEFPAL_BETA_SHINY_PINKMON
|
||||
const PREDEFPAL_BETA_SHINY_YELLOWMON
|
||||
const PREDEFPAL_PARTY_ICON ; BETA_SHINY_GRAYMON
|
||||
const PREDEFPAL_HP_GREEN
|
||||
const PREDEFPAL_HP_YELLOW
|
||||
const PREDEFPAL_HP_RED
|
||||
const PREDEFPAL_TRAINER_GEAR
|
||||
const PREDEFPAL_BETA_LOGO_1
|
||||
const PREDEFPAL_BETA_LOGO_2
|
||||
const PREDEFPAL_GS_INTRO_GAMEFREAK_LOGO
|
||||
const PREDEFPAL_GS_INTRO_SHELLDER_LAPRAS
|
||||
const PREDEFPAL_BETA_INTRO_LAPRAS
|
||||
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_BG
|
||||
const PREDEFPAL_GS_INTRO_JIGGLYPUFF_PIKACHU_OB
|
||||
const PREDEFPAL_GS_INTRO_STARTERS_TRANSITION
|
||||
const PREDEFPAL_BETA_INTRO_VENUSAUR
|
||||
const PREDEFPAL_PACK ; GS_INTRO_CHARIZARD
|
||||
const PREDEFPAL_SLOT_MACHINE_0
|
||||
const PREDEFPAL_SLOT_MACHINE_1
|
||||
const PREDEFPAL_SLOT_MACHINE_2
|
||||
const PREDEFPAL_SLOT_MACHINE_3
|
||||
const PREDEFPAL_BETA_POKER_0
|
||||
const PREDEFPAL_BETA_POKER_1
|
||||
const PREDEFPAL_BETA_POKER_2
|
||||
const PREDEFPAL_BETA_POKER_3
|
||||
const PREDEFPAL_BETA_RADIO
|
||||
const PREDEFPAL_BETA_TRAINER_GEAR
|
||||
const PREDEFPAL_47
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_0
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_1
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_2
|
||||
const PREDEFPAL_GS_TITLE_SCREEN_3
|
||||
const PREDEFPAL_UNOWN_PUZZLE
|
||||
const PREDEFPAL_4D
|
||||
const PREDEFPAL_GAMEFREAK_LOGO
|
||||
|
||||
; SGB system command codes
|
||||
; http://gbdev.gg8.se/wiki/articles/SGB_Functions#SGB_System_Command_Table
|
||||
const_def
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ GiveItemPredef::
|
|||
add_predef Function1457a
|
||||
add_predef Function143e0
|
||||
add_predef CheckSGB
|
||||
add_predef Function928b
|
||||
add_predef LoadSGBLayout
|
||||
add_predef Function8786
|
||||
add_predef DoBattleTransition
|
||||
add_predef Function8c9c6
|
||||
|
|
|
|||
73
data/sgb/blk_packets.inc
Normal file
73
data/sgb/blk_packets.inc
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
attr_blk: MACRO
|
||||
db (SGB_ATTR_BLK << 3) + ((\1 * 6) / 16 + 1)
|
||||
db \1
|
||||
ENDM
|
||||
|
||||
attr_blk_data: MACRO
|
||||
db \1 ; which regions are affected
|
||||
db \2 + (\3 << 2) + (\4 << 4) ; palette for each region
|
||||
db \5, \6, \7, \8 ; x1, y1, x2, y2
|
||||
ENDM
|
||||
|
||||
BlkPacket_986c:
|
||||
attr_blk 1
|
||||
attr_blk_data %011, 0,0,0, 00,00, 19,17
|
||||
ds 8
|
||||
|
||||
BlkPacket_GSIntroJigglypuffPikachu:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 1,1,0, 00,10, 19,13
|
||||
ds 8
|
||||
|
||||
BlkPacket_Battle:
|
||||
attr_blk 5
|
||||
attr_blk_data %111, 2,2,0, 00,12, 19,17
|
||||
attr_blk_data %011, 1,1,0, 01,00, 10,03
|
||||
attr_blk_data %011, 0,0,0, 10,08, 19,10
|
||||
attr_blk_data %011, 2,2,0, 00,04, 08,11
|
||||
attr_blk_data %011, 3,3,0, 11,00, 19,07
|
||||
|
||||
BlkPacket_StatsScreen:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 1,1,0, 00,01, 07,07
|
||||
ds 8
|
||||
|
||||
BlkPacket_MoveList:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 1,1,0, 11,01, 19,02
|
||||
ds 8
|
||||
|
||||
BlkPacket_Pokedex:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 1,1,0, 01,01, 08,08
|
||||
ds 8
|
||||
|
||||
BlkPacket_SlotMachine:
|
||||
attr_blk 5
|
||||
attr_blk_data %011, 1,1,0, 00,00, 19,11
|
||||
attr_blk_data %011, 2,2,0, 00,04, 19,09
|
||||
attr_blk_data %010, 3,3,0, 00,06, 19,07
|
||||
attr_blk_data %011, 0,0,0, 04,04, 15,09
|
||||
attr_blk_data %011, 0,0,0, 00,12, 19,17
|
||||
|
||||
BlkPacket_98fc:
|
||||
attr_blk 7
|
||||
attr_blk_data %111, 0,0,1, 00,00, 02,12
|
||||
attr_blk_data %010, 0,0,0, 12,00, 18,01
|
||||
attr_blk_data %010, 0,0,0, 12,02, 18,03
|
||||
attr_blk_data %010, 0,0,0, 12,04, 18,05
|
||||
attr_blk_data %010, 0,0,0, 12,06, 18,07
|
||||
attr_blk_data %010, 0,0,0, 12,08, 18,09
|
||||
attr_blk_data %010, 0,0,0, 12,10, 18,11
|
||||
ds 4
|
||||
|
||||
BlkPacket_TrainerGear:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 0,0,1, 00,00, 19,02
|
||||
ds 8
|
||||
|
||||
BlkPacket_TitleScreen:
|
||||
attr_blk 1
|
||||
attr_blk_data %111, 0,0,1, 00,00, 19,05
|
||||
ds 8
|
||||
|
||||
128
data/sgb/ctrl_packets.inc
Normal file
128
data/sgb/ctrl_packets.inc
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
sgb_pal_trn: MACRO
|
||||
db (SGB_PAL_TRN << 3) + 1
|
||||
ds 15
|
||||
ENDM
|
||||
|
||||
sgb_mlt_req: MACRO
|
||||
db (SGB_MLT_REG << 3) + 1
|
||||
db \1 - 1
|
||||
ds 14
|
||||
ENDM
|
||||
|
||||
sgb_chr_trn: MACRO
|
||||
db (SGB_CHR_TRN << 3) + 1
|
||||
db \1 + (\2 << 1)
|
||||
ds 14
|
||||
ENDM
|
||||
|
||||
sgb_pct_trn: MACRO
|
||||
db (SGB_PCT_TRN << 3) + 1
|
||||
ds 15
|
||||
ENDM
|
||||
|
||||
sgb_mask_en: MACRO
|
||||
db (SGB_MASK_EN << 3) + 1
|
||||
db \1
|
||||
ds 14
|
||||
ENDM
|
||||
|
||||
sgb_data_snd: MACRO
|
||||
db (SGB_DATA_SND << 3) + 1
|
||||
dw \1 ; address
|
||||
db \2 ; bank
|
||||
db \3 ; length (1-11)
|
||||
ENDM
|
||||
|
||||
PalTrnPacket: sgb_pal_trn
|
||||
MltReq1Packet: sgb_mlt_req 1
|
||||
MltReq2Packet: sgb_mlt_req 2
|
||||
ChrTrnPacket: sgb_chr_trn 0, 0
|
||||
PctTrnPacket: sgb_pct_trn
|
||||
|
||||
MaskEnFreezePacket: sgb_mask_en 1
|
||||
MaskEnCancelPacket: sgb_mask_en 0
|
||||
|
||||
; These are packets containing SNES code.
|
||||
; This set of packets is found in several Japanese SGB-compatible titles.
|
||||
; It appears to be part of NCL's SGB devkit.
|
||||
|
||||
DataSndPacket1:
|
||||
sgb_data_snd $085d, $0, 11
|
||||
db $8c ; cpx #$8c (2)
|
||||
db $d0, $f4 ; bne -$0c
|
||||
db $60 ; rts
|
||||
ds 7
|
||||
|
||||
DataSndPacket2:
|
||||
sgb_data_snd $0852, $0, 11
|
||||
db $a9, $e7 ; lda #$e7
|
||||
db $9f, $01, $c0, $7e ; sta $7ec001, x
|
||||
db $e8 ; inx
|
||||
db $e8 ; inx
|
||||
db $e8 ; inx
|
||||
db $e8 ; inx
|
||||
db $e0 ; cpx #$8c (1)
|
||||
|
||||
DataSndPacket3:
|
||||
sgb_data_snd $0847, $0, 11
|
||||
db $c4 ; cmp #$c4 (2)
|
||||
db $d0, $16 ; bne +$16
|
||||
db $a5 ; lda dp
|
||||
db $cb ; wai
|
||||
db $c9, $05 ; cmp #$05
|
||||
db $d0, $10 ; bne +$10
|
||||
db $a2, $28 ; ldx #$28
|
||||
|
||||
DataSndPacket4:
|
||||
sgb_data_snd $083c, $0, 11
|
||||
db $f0, $12 ; beq +$12
|
||||
db $a5 ; lda dp
|
||||
db $c9, $c9 ; cmp #$c9
|
||||
db $c8 ; iny
|
||||
db $d0, $1c ; bne +$1c
|
||||
db $a5 ; lda dp
|
||||
db $ca ; dex
|
||||
db $c9 ; cmp #$c4 (1)
|
||||
|
||||
DataSndPacket5:
|
||||
sgb_data_snd $0831, $0, 11
|
||||
dbw $0c, $caa5 ; tsb $caa5
|
||||
db $c9, $7e ; cmp #$7e
|
||||
db $d0, $06 ; bne +$06
|
||||
db $a5 ; lda dp
|
||||
db $cb ; wai
|
||||
db $c9, $7e ; cmp #$7e
|
||||
|
||||
DataSndPacket6:
|
||||
sgb_data_snd $0826, $0, 11
|
||||
db $39 ; bne +$39 (2)
|
||||
dbw $cd, $0c48 ; cmp $0c48
|
||||
db $d0, $34 ; bne +$34
|
||||
db $a5 ; lda dp
|
||||
db $c9, $c9 ; cmp #$c9
|
||||
db $80, $d0 ; bra -$30
|
||||
|
||||
DataSndPacket7:
|
||||
sgb_data_snd $081b, $0, 11
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
; $0820:
|
||||
db $a9, $01 ; lda #01
|
||||
dbw $cd, $0c4f ; cmp $c4f
|
||||
db $d0 ; bne +$39 (1)
|
||||
|
||||
DataSndPacket8:
|
||||
sgb_data_snd $0810, $0, 11
|
||||
dbw $4c, $0820 ; jmp $0820
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
db $60 ; rts
|
||||
db $ea ; nop
|
||||
db $ea ; nop
|
||||
|
||||
57
data/sgb/pal_packets.inc
Normal file
57
data/sgb/pal_packets.inc
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
sgb_pal_set: MACRO
|
||||
db (SGB_PAL_SET << 3) + 1
|
||||
dw PAL_\1, PAL_\2, PAL_\3, PAL_\4
|
||||
ds 7
|
||||
ENDM
|
||||
|
||||
PalPacket_Poker:
|
||||
sgb_pal_set POKER_1, POKER_2, POKER_3, POKER_4
|
||||
|
||||
PalPacket_995c:
|
||||
sgb_pal_set ROUTE, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GSIntroShellderLapras:
|
||||
sgb_pal_set INTRO_WATER, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_MagikarpIntro:
|
||||
sgb_pal_set INTRO_LAPRAS, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GSIntroJigglypuffPikachu:
|
||||
sgb_pal_set INTRO_FOREST, INTRO_JIGGLYPUFF_PIKACHU, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GSIntroBlastoise:
|
||||
sgb_pal_set INTRO_BLASTOISE, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GSIntroVenusaur:
|
||||
sgb_pal_set INTRO_VENUSAUR, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GSIntroCharizard:
|
||||
sgb_pal_set INTRO_CHARIZARD, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_PikachuMinigame:
|
||||
sgb_pal_set INTRO_JIGGLYPUFF_PIKACHU, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_PartyMenu:
|
||||
sgb_pal_set SHINY_GRAYMON, GREEN_BAR, YELLOW_BAR, RED_BAR
|
||||
|
||||
PalPacket_BattleGrayscale:
|
||||
sgb_pal_set BLACK, BLACK, BLACK, BLACK
|
||||
|
||||
PalPacket_TownMap:
|
||||
sgb_pal_set TOWN_MAP, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_Pokedex:
|
||||
sgb_pal_set INTRO_CHARIZARD, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_SlotMachine:
|
||||
sgb_pal_set SLOTS_1, SLOTS_2, SLOTS_3, SLOTS_4
|
||||
|
||||
PalPacket_TitleScreen:
|
||||
sgb_pal_set LOGO_1, LOGO_2, MEWMON, PURPLEMON
|
||||
|
||||
PalPacket_9a3c:
|
||||
sgb_pal_set MEWMON, ROUTE, ROUTE, ROUTE
|
||||
|
||||
PalPacket_GFIntro:
|
||||
sgb_pal_set GAME_FREAK, ROUTE, ROUTE, ROUTE
|
||||
|
||||
|
|
@ -3741,9 +3741,7 @@ Function78f0:
|
|||
ld a, [hl]
|
||||
xor $08
|
||||
ld [hl], a
|
||||
ld hl, Function96eb
|
||||
ld a, BANK(Function96eb)
|
||||
call FarCall_hl
|
||||
callab UpdateSGBBorder
|
||||
call LoadFont
|
||||
call LoadFontExtra
|
||||
ld c, $70
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -347,10 +347,10 @@ UpdateItemDescription::
|
|||
callab ShowItemDescription
|
||||
ret
|
||||
|
||||
Function2420b:
|
||||
Pokepic:
|
||||
ld a, $01
|
||||
ldh [hBGMapMode], a
|
||||
ld hl, .MenuHeader24262
|
||||
ld hl, .PokepicMenuHeader
|
||||
call LoadMenuHeader
|
||||
call MenuBox
|
||||
call UpdateSprites
|
||||
|
|
@ -372,7 +372,7 @@ Function2420b:
|
|||
call Coord2Tile
|
||||
ld a, $80
|
||||
ldh [hGraphicStartTile], a
|
||||
ld bc, $0707
|
||||
lb bc, 7, 7
|
||||
predef PlaceGraphic
|
||||
ld a, $01
|
||||
ldh [hBGMapMode], a
|
||||
|
|
@ -384,7 +384,7 @@ Function2420b:
|
|||
call LoadFont
|
||||
ret
|
||||
|
||||
.MenuHeader24262:
|
||||
.PokepicMenuHeader:
|
||||
db MENU_BACKUP_TILES
|
||||
menu_coords 6, 4, $e, $d
|
||||
dw 0
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ PikachuMiniGame::
|
|||
|
||||
.Init:
|
||||
call DisableLCD
|
||||
ld b, SGB_BETA_PIKACHU_MINIGAME
|
||||
ld b, SGB_PIKACHU_MINIGAME
|
||||
call GetSGBLayout
|
||||
callab InitEffectObject
|
||||
call PikachuMiniGame_ClearBothTilemaps
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "engine/gfx.asm", ROMX
|
||||
SECTION "engine/gfx/load_gfx.asm", ROMX
|
||||
|
||||
LoadFontGraphics::
|
||||
ld de, FontGFX
|
||||
33
engine/gfx/set_title_decoration.asm
Normal file
33
engine/gfx/set_title_decoration.asm
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "engine/gfx/set_title_decoration.asm", ROMX
|
||||
|
||||
SetTitleBGDecorationBorder:
|
||||
ld de, TitleBGDecorationBorder
|
||||
ld hl, vChars2 + $500
|
||||
lb bc, BANK(TitleBGDecorationBorder), 9
|
||||
call Request2bpp
|
||||
|
||||
; top row
|
||||
coord hl, 0, 8
|
||||
ld b, $50
|
||||
call .PlaceRow
|
||||
|
||||
; bottom row
|
||||
coord hl, 0, 16
|
||||
ld b, $54
|
||||
call .PlaceRow
|
||||
ret
|
||||
|
||||
.PlaceRow:
|
||||
xor a
|
||||
ld c, SCREEN_WIDTH
|
||||
.loop
|
||||
and $03
|
||||
or b
|
||||
ld [hli], a
|
||||
inc a
|
||||
dec c
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
896
engine/gfx/sgb_layouts.asm
Normal file
896
engine/gfx/sgb_layouts.asm
Normal file
|
|
@ -0,0 +1,896 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "engine/gfx/sgb_layouts.asm", ROMX
|
||||
|
||||
LoadSGBLayout:
|
||||
ld a, b
|
||||
cp SGB_RAM
|
||||
jr nz, .not_ram
|
||||
ld a, [wccd0]
|
||||
.not_ram
|
||||
cp SGB_PARTY_MENU_HP_PALS
|
||||
jp z, SGB_ApplyPartyMenuHPPals
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
ld de, .Jumptable
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld de, _LoadSGBLayout_ReturnFromJumpTable
|
||||
push de
|
||||
jp hl
|
||||
|
||||
.Jumptable:
|
||||
dw SGB_BattleGrayscale
|
||||
dw SGB_BattleColors
|
||||
dw SGB_TownMap
|
||||
dw SGB_StatsScreenHPPals
|
||||
dw SGB_Pokedex
|
||||
dw SGB_SlotMachine
|
||||
dw SGB_TitleScreen
|
||||
dw SGB_GSIntro
|
||||
dw SGB_Diploma
|
||||
dw SGB_MapPals
|
||||
dw SGB_PartyMenu
|
||||
dw SGB_Evolution
|
||||
dw SGB_GFIntro
|
||||
dw SGB_TrainerCard
|
||||
dw SGB_MoveList
|
||||
dw SGB_PikachuMinigame
|
||||
dw SGB_PokedexSelection
|
||||
dw SGB_Poker
|
||||
dw SGB12
|
||||
dw SGB_TrainerGear
|
||||
dw SGB_TrainerGearMap
|
||||
dw SGB_TrainerGearRadio
|
||||
|
||||
SGB_BattleGrayscale:
|
||||
ld hl, PalPacket_BattleGrayscale
|
||||
ld de, BlkPacket_Battle
|
||||
ret
|
||||
|
||||
SGB_BattleColors:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
|
||||
ld a, [wca3f]
|
||||
ld hl, wca02
|
||||
call Function9567
|
||||
jr c, .sub_92f7
|
||||
|
||||
ld e, $00
|
||||
call Function9599
|
||||
.sub_92f7
|
||||
ld b, a
|
||||
ld a, [wca44]
|
||||
ld hl, wcdd7
|
||||
call Function9567
|
||||
jr c, .sub_9308
|
||||
ld e, $01
|
||||
call Function9599
|
||||
.sub_9308
|
||||
ld c, a
|
||||
ld hl, wcce2
|
||||
ld a, [wccd1]
|
||||
add $23
|
||||
ld [hli], a
|
||||
inc hl
|
||||
ld a, [wccd2]
|
||||
add $23
|
||||
ld [hli], a
|
||||
inc hl
|
||||
ld a, b
|
||||
ld [hli], a
|
||||
inc hl
|
||||
ld a, c
|
||||
ld [hl], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_Battle
|
||||
ld a, $01
|
||||
ld [wccd0], a
|
||||
ret
|
||||
|
||||
SGB_MoveList:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld hl, wcce2
|
||||
ld [hl], $10
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [wccd1]
|
||||
add $23
|
||||
ld [hl], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_MoveList
|
||||
ret
|
||||
|
||||
SGB_TownMap:
|
||||
ld hl, PalPacket_TownMap
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_StatsScreenHPPals:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld a, [wMonDexIndex]
|
||||
call Function956d
|
||||
call Function957e
|
||||
push af
|
||||
ld hl, wcce2
|
||||
ld a, [wccd9]
|
||||
add $23
|
||||
ld [hli], a
|
||||
inc hl
|
||||
pop af
|
||||
ld [hl], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_StatsScreen
|
||||
ret
|
||||
|
||||
SGB_PartyMenu:
|
||||
ld hl, PalPacket_PartyMenu
|
||||
ld de, wcce2
|
||||
ret
|
||||
|
||||
SGB_Pokedex:
|
||||
ld hl, PalPacket_Pokedex
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld a, [wMonDexIndex]
|
||||
call Function956d
|
||||
ld hl, wcce4
|
||||
ld [hl], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_Pokedex
|
||||
ret
|
||||
|
||||
SGB_PokedexSelection:
|
||||
ld hl, PalPacket_GSIntroCharizard
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_SlotMachine:
|
||||
ld hl, PalPacket_SlotMachine
|
||||
ld de, BlkPacket_SlotMachine
|
||||
ret
|
||||
|
||||
SGB_TitleScreen:
|
||||
ld hl, PalPacket_TitleScreen
|
||||
ld de, BlkPacket_TitleScreen
|
||||
ret
|
||||
|
||||
SGB_Diploma:
|
||||
ld hl, PalPacket_9a3c
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_GSIntro:
|
||||
ld b, 0
|
||||
ld hl, .BlkPacketTable
|
||||
rept 4
|
||||
add hl, bc
|
||||
endr
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.BlkPacketTable:
|
||||
dw BlkPacket_986c, PalPacket_GSIntroShellderLapras
|
||||
dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu
|
||||
dw BlkPacket_986c, PalPacket_GSIntroBlastoise
|
||||
|
||||
SGB_GFIntro:
|
||||
ld hl, PalPacket_GFIntro
|
||||
ld de, BlkPacket_986c
|
||||
ld a, $08
|
||||
ld [wccd0], a
|
||||
ret
|
||||
|
||||
SGB_PikachuMinigame:
|
||||
ld hl, PalPacket_PikachuMinigame
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_Poker:
|
||||
ld hl, BlkPacket_986c
|
||||
ld de, wc51a
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld hl, PalPacket_Poker
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_MapPals:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
call GetMapPalsIndex
|
||||
ld hl, wcce2
|
||||
ld [hld], a
|
||||
ld de, BlkPacket_986c
|
||||
ld a, $09
|
||||
ld [wccd0], a
|
||||
ret
|
||||
|
||||
SGB_Evolution:
|
||||
push bc
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
pop bc
|
||||
ld a, c
|
||||
and a
|
||||
ld a, $0e
|
||||
jr nz, .sub_9437
|
||||
ld a, [wccd1]
|
||||
call Function956d
|
||||
call Function957e
|
||||
.sub_9437
|
||||
ld [wcce2], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB_TrainerCard:
|
||||
ld hl, PalPacket_9a3c
|
||||
ld de, BlkPacket_986c
|
||||
ret
|
||||
|
||||
SGB12:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld hl, BlkPacket_986c
|
||||
ld de, wccf1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
call GetMapPalsIndex
|
||||
ld hl, wcce2
|
||||
ld [hl], a
|
||||
ld a, [wMonDexIndex]
|
||||
call Function956d
|
||||
ld hl, wcce4
|
||||
ld [hl], a
|
||||
ld hl, wccf4
|
||||
ld a, $05
|
||||
ld [hli], a
|
||||
ld a, [wMenuBorderLeftCoord]
|
||||
ld [hli], a
|
||||
ld a, [wMenuBorderTopCoord]
|
||||
ld [hli], a
|
||||
ld a, [wMenuBorderRightCoord]
|
||||
ld [hli], a
|
||||
ld a, [wMenuBorderBottomCoord]
|
||||
ld [hl], a
|
||||
ld hl, wcce1
|
||||
ld de, wccf1
|
||||
ret
|
||||
|
||||
SGB_TrainerGear:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld a, $16
|
||||
ld [wcce2], a
|
||||
ld a, $30
|
||||
ld [wcce4], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_TrainerGear
|
||||
ret
|
||||
|
||||
SGB_TrainerGearMap:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld a, $16
|
||||
ld [wcce2], a
|
||||
ld a, $26
|
||||
ld [wcce4], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_TrainerGear
|
||||
ret
|
||||
|
||||
SGB_TrainerGearRadio:
|
||||
ld hl, PalPacket_995c
|
||||
ld de, wcce1
|
||||
ld bc, PALPACKET_LENGTH
|
||||
call CopyBytes
|
||||
ld a, $16
|
||||
ld [wcce2], a
|
||||
ld a, $39
|
||||
ld [wcce4], a
|
||||
ld hl, wcce1
|
||||
ld de, BlkPacket_TrainerGear
|
||||
ret
|
||||
|
||||
GetMapPalsIndex:
|
||||
ld a, [wMapPermissions]
|
||||
cp ROUTE
|
||||
jr z, .is_route
|
||||
cp CAVE
|
||||
jr z, .is_cave
|
||||
cp GATE
|
||||
jr z, .is_gate
|
||||
cp ENVIRONMENT_5
|
||||
jr z, .env5
|
||||
cp INDOOR
|
||||
jr z, .indoors
|
||||
call Function9527
|
||||
jr c, .sub_9524
|
||||
call Function9543
|
||||
ret
|
||||
|
||||
.indoors
|
||||
call Function9536
|
||||
jr c, .sub_9524
|
||||
call Function9543
|
||||
ret
|
||||
|
||||
.is_route
|
||||
call Function9527
|
||||
jr c, .sub_9524
|
||||
ld a, $00
|
||||
ret
|
||||
|
||||
.is_cave
|
||||
call Function9527
|
||||
jr c, .sub_9524
|
||||
ld a, $0c
|
||||
ret
|
||||
|
||||
.is_gate
|
||||
ld a, $03
|
||||
ret
|
||||
|
||||
.env5
|
||||
ld a, $04
|
||||
ret
|
||||
|
||||
.sub_9524
|
||||
ld a, $0d
|
||||
ret
|
||||
|
||||
Function9527:
|
||||
ld a, [wTimeOfDay]
|
||||
and $03
|
||||
jr z, .sub_9534
|
||||
cp $03
|
||||
jr z, .sub_9534
|
||||
scf
|
||||
ret
|
||||
.sub_9534
|
||||
and a
|
||||
ret
|
||||
|
||||
Function9536:
|
||||
ld a, [wTimeOfDay]
|
||||
and $03
|
||||
cp $02
|
||||
jr nz, .sub_9541
|
||||
scf
|
||||
ret
|
||||
.sub_9541
|
||||
and a
|
||||
ret
|
||||
|
||||
Function9543:
|
||||
ld a, [wMapGroup]
|
||||
ld e, a
|
||||
ld d, $00
|
||||
ld hl, Data954f
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ret
|
||||
|
||||
Data954f:
|
||||
db $01, $07, $0c, $03, $08, $06, $0b, $04
|
||||
db $05, $0a, $02, $03, $02, $02, $09, $01
|
||||
|
||||
_LoadSGBLayout_ReturnFromJumpTable:
|
||||
push de
|
||||
call PushSGBPals
|
||||
pop hl
|
||||
jp PushSGBPals
|
||||
|
||||
Function9567:
|
||||
bit 3, a
|
||||
ld a, $18
|
||||
ret nz
|
||||
ld a, [hl]
|
||||
|
||||
Function956d:
|
||||
and a
|
||||
jr z, .sub_957a
|
||||
ld e, a
|
||||
ld d, $00
|
||||
ld hl, PokemonPalettes
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret
|
||||
.sub_957a
|
||||
ld a, $0f
|
||||
scf
|
||||
ret
|
||||
|
||||
Function957e:
|
||||
push bc
|
||||
push af
|
||||
ld hl, wPartyMon1DVs
|
||||
ld a, [wWhichPokemon]
|
||||
ld bc, $0030
|
||||
call AddNTimes
|
||||
call Function95b0
|
||||
ld b, $00
|
||||
jr nc, .sub_9595
|
||||
ld b, $0a
|
||||
.sub_9595
|
||||
pop af
|
||||
add b
|
||||
pop bc
|
||||
ret
|
||||
|
||||
Function9599:
|
||||
push bc
|
||||
push af
|
||||
ld a, e
|
||||
and a
|
||||
ld a, [wcae1]
|
||||
jr z, .sub_95a4
|
||||
srl a
|
||||
.sub_95a4
|
||||
srl a
|
||||
ld b, $00
|
||||
jr nc, .sub_95ac
|
||||
ld b, $0a
|
||||
.sub_95ac
|
||||
pop af
|
||||
add b
|
||||
pop bc
|
||||
ret
|
||||
|
||||
Function95b0:
|
||||
ld a, [hl]
|
||||
cp $a0
|
||||
jr c, .sub_95ca
|
||||
ld a, [hli]
|
||||
and $0f
|
||||
cp $0a
|
||||
jr c, .sub_95ca
|
||||
ld a, [hl]
|
||||
cp $a0
|
||||
jr c, .sub_95ca
|
||||
ld a, [hl]
|
||||
and $0f
|
||||
cp $0a
|
||||
jr c, .sub_95ca
|
||||
scf
|
||||
ret
|
||||
.sub_95ca
|
||||
and a
|
||||
ret
|
||||
|
||||
Function95cc:
|
||||
ld hl, wcddf
|
||||
ldh a, [hBattleTurn]
|
||||
and a
|
||||
jr nz, .sub_95d7
|
||||
ld hl, wca08
|
||||
.sub_95d7
|
||||
call Function95b0
|
||||
ld hl, wcae1
|
||||
jr nc, .sub_95ec
|
||||
ldh a, [hBattleTurn]
|
||||
and a
|
||||
jr nz, .sub_95e8
|
||||
set 0, [hl]
|
||||
jr .sub_95f7
|
||||
.sub_95e8
|
||||
set 1, [hl]
|
||||
jr .sub_95f7
|
||||
.sub_95ec
|
||||
ldh a, [hBattleTurn]
|
||||
and a
|
||||
jr nz, .sub_95f5
|
||||
res 0, [hl]
|
||||
jr .sub_95f7
|
||||
.sub_95f5
|
||||
res 1, [hl]
|
||||
.sub_95f7
|
||||
ret
|
||||
|
||||
Function95f8:
|
||||
ld hl, BlkPacket_98fc
|
||||
ld de, wcce2
|
||||
ld bc, $0030
|
||||
jp CopyBytes
|
||||
|
||||
SGB_ApplyPartyMenuHPPals:
|
||||
ld hl, wccd3
|
||||
ld a, [wcce1]
|
||||
ld e, a
|
||||
ld d, $00
|
||||
add hl, de
|
||||
ld e, l
|
||||
ld d, h
|
||||
ld a, [de]
|
||||
and a
|
||||
ld e, $05
|
||||
jr z, .sub_961d
|
||||
dec a
|
||||
ld e, $0a
|
||||
jr z, .sub_961d
|
||||
ld e, $0f
|
||||
.sub_961d
|
||||
push de
|
||||
ld hl, wcceb
|
||||
ld bc, $0006
|
||||
ld a, [wcce1]
|
||||
call AddNTimes
|
||||
pop de
|
||||
ld [hl], e
|
||||
ret
|
||||
|
||||
LoadMagikarpPalettes_Intro:
|
||||
ld hl, PalPacket_MagikarpIntro
|
||||
jp PushSGBPals
|
||||
|
||||
LoadForestPalettes2_Intro:
|
||||
ld hl, BlkPacket_986c
|
||||
jp PushSGBPals
|
||||
|
||||
LoadVenusaurPalettes_Intro:
|
||||
ld hl, PalPacket_GSIntroVenusaur
|
||||
jp PushSGBPals
|
||||
|
||||
LoadCharizardPalettes_Intro:
|
||||
ld hl, PalPacket_GSIntroCharizard
|
||||
jp PushSGBPals
|
||||
|
||||
Function9645:
|
||||
ld hl, wc51a
|
||||
jp PushSGBPals
|
||||
|
||||
PushSGBPals:
|
||||
ld a, [wJoypadFlags]
|
||||
push af
|
||||
set 7, a
|
||||
ld [wJoypadFlags], a
|
||||
call _PushSGBPals
|
||||
pop af
|
||||
ld [wJoypadFlags], a
|
||||
ret
|
||||
|
||||
_PushSGBPals:
|
||||
ld a, [hl]
|
||||
and $7
|
||||
ret z
|
||||
ld b, a
|
||||
.loop
|
||||
push bc
|
||||
xor a
|
||||
ldh [rJOYP], a
|
||||
ld a, $30
|
||||
ldh [rJOYP], a
|
||||
ld b, $10
|
||||
.loop2
|
||||
ld e, $08
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
.loop3
|
||||
bit 0, d
|
||||
ld a, $10
|
||||
jr nz, .ok
|
||||
ld a, $20
|
||||
.ok
|
||||
ldh [rJOYP], a
|
||||
ld a, $30
|
||||
ldh [rJOYP], a
|
||||
rr d
|
||||
dec e
|
||||
jr nz, .loop3
|
||||
dec b
|
||||
jr nz, .loop2
|
||||
ld a, $20
|
||||
ldh [rJOYP], a
|
||||
ld a, $30
|
||||
ldh [rJOYP], a
|
||||
call SGBDelayCycles
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
CheckSGB:
|
||||
ld a, [wJoypadFlags]
|
||||
push af
|
||||
set 7, a
|
||||
ld [wJoypadFlags], a
|
||||
|
||||
xor a
|
||||
ldh [rJOYP], a
|
||||
ld [wSGB], a
|
||||
call PushSGBBorderPalsAndWait
|
||||
jr nc, .skip
|
||||
ld a, 1
|
||||
ld [wSGB], a
|
||||
call _InitSGBBorderPals
|
||||
call PushSGBBorder
|
||||
call SGBBorder_PushBGPals
|
||||
call SGB_ClearVRAM
|
||||
ld hl, MaskEnCancelPacket
|
||||
call _PushSGBPals
|
||||
.skip
|
||||
pop af
|
||||
ld [wJoypadFlags], a
|
||||
ret
|
||||
|
||||
_InitSGBBorderPals:
|
||||
ld hl, .PacketPointerTable
|
||||
ld c, 9
|
||||
|
||||
.loop
|
||||
push bc
|
||||
ld a, [hli]
|
||||
push hl
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
call _PushSGBPals
|
||||
pop hl
|
||||
inc hl
|
||||
pop bc
|
||||
dec c
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
.PacketPointerTable:
|
||||
dw MaskEnFreezePacket
|
||||
dw DataSndPacket1
|
||||
dw DataSndPacket2
|
||||
dw DataSndPacket3
|
||||
dw DataSndPacket4
|
||||
dw DataSndPacket5
|
||||
dw DataSndPacket6
|
||||
dw DataSndPacket7
|
||||
dw DataSndPacket8
|
||||
|
||||
UpdateSGBBorder:
|
||||
ld a, [wSGB]
|
||||
ret z
|
||||
di
|
||||
xor a
|
||||
ldh [rJOYP], a
|
||||
ld hl, MaskEnFreezePacket
|
||||
call _PushSGBPals
|
||||
call PushSGBBorder
|
||||
ld hl, MaskEnCancelPacket
|
||||
call _PushSGBPals
|
||||
ei
|
||||
ret
|
||||
|
||||
PushSGBBorder:
|
||||
call .LoadSGBBorderPointers
|
||||
push de
|
||||
call SGBBorder_YetMorePalPushing
|
||||
pop hl
|
||||
call SGBBorder_MorePalPushing
|
||||
ret
|
||||
|
||||
.LoadSGBBorderPointers:
|
||||
ld a, [wce5f]
|
||||
bit 3, a
|
||||
jr nz, .spaceworld_border
|
||||
|
||||
; load alternate border
|
||||
ld hl, AlternateSGBBorderGFX
|
||||
ld de, AlternateSGBBorderTilemap
|
||||
ret
|
||||
|
||||
.spaceworld_border
|
||||
ld hl, SGBBorderGFX
|
||||
ld de, SGBBorderTilemap
|
||||
ret
|
||||
|
||||
SGB_ClearVRAM:
|
||||
ld hl, vChars0
|
||||
ld bc, $2000
|
||||
xor a
|
||||
call ByteFill
|
||||
ret
|
||||
|
||||
PushSGBBorderPalsAndWait:
|
||||
ld hl, MltReq2Packet
|
||||
call _PushSGBPals
|
||||
call SGBDelayCycles
|
||||
ldh a, [rJOYP]
|
||||
and $3
|
||||
cp $3
|
||||
jr nz, .carry
|
||||
ld a, $20
|
||||
ldh [rJOYP], a
|
||||
ldh a, [rJOYP]
|
||||
ldh a, [rJOYP]
|
||||
call SGBDelayCycles
|
||||
call SGBDelayCycles
|
||||
ld a, $30
|
||||
ldh [rJOYP], a
|
||||
call SGBDelayCycles
|
||||
call SGBDelayCycles
|
||||
ld a, $10
|
||||
ldh [rJOYP], a
|
||||
rept 6
|
||||
ldh a, [rJOYP]
|
||||
endr
|
||||
call SGBDelayCycles
|
||||
call SGBDelayCycles
|
||||
ld a, $30
|
||||
ldh [rJOYP], a
|
||||
ldh a, [rJOYP]
|
||||
ldh a, [rJOYP]
|
||||
ldh a, [rJOYP]
|
||||
call SGBDelayCycles
|
||||
call SGBDelayCycles
|
||||
ldh a, [rJOYP]
|
||||
and $3
|
||||
cp $3
|
||||
jr nz, .carry
|
||||
call .FinalPush
|
||||
and a
|
||||
ret
|
||||
|
||||
.carry
|
||||
call .FinalPush
|
||||
scf
|
||||
ret
|
||||
|
||||
.FinalPush:
|
||||
ld hl, MltReq1Packet
|
||||
call _PushSGBPals
|
||||
jp SGBDelayCycles
|
||||
|
||||
SGBBorder_PushBGPals:
|
||||
call DisableLCD
|
||||
ld a, %11100100
|
||||
ldh [rBGP], a
|
||||
ld hl, SuperPalettes
|
||||
ld de, vChars1
|
||||
ld bc, $1000
|
||||
call CopyData
|
||||
call DrawDefaultTiles
|
||||
ld a, $e3
|
||||
ldh [rLCDC], a
|
||||
ld hl, PalTrnPacket
|
||||
call _PushSGBPals
|
||||
xor a
|
||||
ldh [rBGP], a
|
||||
ret
|
||||
|
||||
SGBBorder_MorePalPushing:
|
||||
call DisableLCD
|
||||
ld a, %11100100
|
||||
ldh [rBGP], a
|
||||
ld de, vChars1
|
||||
ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2
|
||||
call CopyData
|
||||
ld b, SCREEN_HEIGHT
|
||||
.loop
|
||||
push bc
|
||||
ld bc, 6 * 2
|
||||
call CopyData
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
call ClearBytes
|
||||
ld bc, 6 * 2
|
||||
call CopyData
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2
|
||||
call CopyData
|
||||
ld bc, $100
|
||||
call ClearBytes
|
||||
ld bc, $80
|
||||
call CopyData
|
||||
call DrawDefaultTiles
|
||||
ld a, $e3
|
||||
ldh [rLCDC], a
|
||||
ld hl, PctTrnPacket
|
||||
call _PushSGBPals
|
||||
xor a
|
||||
ldh [rBGP], a
|
||||
ret
|
||||
|
||||
SGBBorder_YetMorePalPushing:
|
||||
call DisableLCD
|
||||
ld a, $e4
|
||||
ldh [rBGP], a
|
||||
ld de, vChars1
|
||||
ld b, $80
|
||||
.loop
|
||||
push bc
|
||||
ld bc, $10
|
||||
call CopyData
|
||||
ld bc, $10
|
||||
call ClearBytes
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop
|
||||
call DrawDefaultTiles
|
||||
ld a, $e3
|
||||
ldh [rLCDC], a
|
||||
ld hl, ChrTrnPacket
|
||||
call _PushSGBPals
|
||||
xor a
|
||||
ldh [rBGP], a
|
||||
ret
|
||||
|
||||
CopyData:
|
||||
ld a, [hli]
|
||||
ld [de], a
|
||||
inc de
|
||||
dec bc
|
||||
ld a, c
|
||||
or b
|
||||
jr nz, CopyData
|
||||
ret
|
||||
|
||||
ClearBytes:
|
||||
xor a
|
||||
ld [de], a
|
||||
inc de
|
||||
dec bc
|
||||
ld a, c
|
||||
or b
|
||||
jr nz, ClearBytes
|
||||
ret
|
||||
|
||||
DrawDefaultTiles:
|
||||
hlbgcoord 0, 0
|
||||
ld de, BG_MAP_WIDTH - SCREEN_WIDTH
|
||||
ld a, $80
|
||||
ld c, 12 + 1
|
||||
.line
|
||||
ld b, SCREEN_WIDTH
|
||||
.tile
|
||||
ld [hli], a
|
||||
inc a
|
||||
dec b
|
||||
jr nz, .tile
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .line
|
||||
ret
|
||||
|
||||
SGBDelayCycles:
|
||||
ld de, 7000
|
||||
.wait
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec de
|
||||
ld a, d
|
||||
or e
|
||||
jr nz, .wait
|
||||
ret
|
||||
|
||||
INCLUDE "data/sgb/blk_packets.inc"
|
||||
INCLUDE "data/sgb/pal_packets.inc"
|
||||
INCLUDE "data/sgb/ctrl_packets.inc"
|
||||
|
|
@ -23,7 +23,7 @@ GameFreakIntro::
|
|||
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
ld b, SGB_GS_TITLE_SCREEN
|
||||
ld b, SGB_GF_INTRO
|
||||
call GetSGBLayout
|
||||
|
||||
callab IntroCopyRightInfo
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ TitleSequenceInit::
|
|||
ld a, " "
|
||||
call ByteFill
|
||||
|
||||
ld b, $06
|
||||
ld b, SGB_TITLE_SCREEN
|
||||
call GetSGBLayout
|
||||
call EnableLCD
|
||||
ld a, $01
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ TrainerGear_Init:
|
|||
call ClearBGPalettes
|
||||
call DisableLCD
|
||||
call ClearSprites
|
||||
ld b, SGB_TRAINER_GEAR
|
||||
ld b, SGB_TRAINERGEAR
|
||||
call GetSGBLayout
|
||||
|
||||
ld hl, TrainerGearGFX
|
||||
|
|
@ -282,7 +282,7 @@ TrainerGear_Map:
|
|||
call TrainerGear_Next
|
||||
call TrainerGear_ClearView
|
||||
call WaitForAutoBgMapTransfer
|
||||
ld b, SGB_PACKPALS
|
||||
ld b, SGB_TRAINERGEAR_MAP
|
||||
call GetSGBLayout
|
||||
ld de, TownMapGFX
|
||||
ld hl, vTilesetEnd
|
||||
|
|
@ -312,7 +312,7 @@ TrainerGear_Radio:
|
|||
call TrainerGear_Next
|
||||
call TrainerGear_ClearView
|
||||
call WaitForAutoBgMapTransfer
|
||||
ld b, SGB_TRAINER_CARD
|
||||
ld b, SGB_TRAINERGEAR_RADIO
|
||||
call GetSGBLayout
|
||||
|
||||
ld de, RadioGFX
|
||||
|
|
@ -595,7 +595,7 @@ TrainerGear_Phone:
|
|||
call TrainerGear_Next
|
||||
call TrainerGear_ClearView
|
||||
call WaitForAutoBgMapTransfer
|
||||
ld b, SGB_TRAINER_GEAR
|
||||
ld b, SGB_TRAINERGEAR
|
||||
call GetSGBLayout
|
||||
call LoadFontExtra
|
||||
ld de, .OutOfRangeText
|
||||
|
|
|
|||
18
gfx/gfx.asm
18
gfx/gfx.asm
|
|
@ -33,16 +33,22 @@ INCBIN "gfx/title/titlebgdecoration.2bpp"
|
|||
SECTION "gfx.asm@SGB GFX", ROMX
|
||||
|
||||
INCLUDE "data/pokemon/palettes.inc"
|
||||
INCLUDE "data/super_palettes.inc"
|
||||
INCLUDE "data/sgb/super_palettes.inc"
|
||||
|
||||
Corrupted9e1cGFX:
|
||||
INCBIN "slack/corrupted_9e1c.2bpp"
|
||||
AlternateSGBBorderTilemap::
|
||||
INCBIN "gfx/sgb/sgb_border_alt.sgb.tilemap"
|
||||
|
||||
UnusedSGBBorderGFX::
|
||||
AlternateSGBBorderPalettes:
|
||||
INCLUDE "gfx/sgb/sgb_border_alt.pal"
|
||||
|
||||
AlternateSGBBorderGFX::
|
||||
INCBIN "gfx/sgb/sgb_border_alt.2bpp"
|
||||
|
||||
Corrupteda66cGFX:
|
||||
INCBIN "slack/corrupted_a66c.2bpp"
|
||||
SGBBorderTilemap::
|
||||
INCBIN "gfx/sgb/sgb_border.sgb.tilemap"
|
||||
|
||||
SGBBorderPalettes:
|
||||
INCLUDE "gfx/sgb/sgb_border.pal"
|
||||
|
||||
SGBBorderGFX::
|
||||
if DEF(GOLD)
|
||||
|
|
|
|||
BIN
gfx/sgb/sgb_border.bin
Normal file
BIN
gfx/sgb/sgb_border.bin
Normal file
Binary file not shown.
80
gfx/sgb/sgb_border.pal
Normal file
80
gfx/sgb/sgb_border.pal
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
RGB 24, 6, 6
|
||||
RGB 0, 0, 0
|
||||
RGB 31, 31, 29
|
||||
RGB 31, 26, 15
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 31, 26, 15
|
||||
RGB 31, 12, 0
|
||||
RGB 0, 0, 0
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 6, 31
|
||||
RGB 26, 28, 31
|
||||
RGB 19, 20, 23
|
||||
RGB 0, 0, 0
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 12, 31, 6
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
RGB 18, 24, 18
|
||||
|
||||
BIN
gfx/sgb/sgb_border_alt.bin
Normal file
BIN
gfx/sgb/sgb_border_alt.bin
Normal file
Binary file not shown.
80
gfx/sgb/sgb_border_alt.pal
Normal file
80
gfx/sgb/sgb_border_alt.pal
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
RGB 24, 6, 6
|
||||
RGB 24, 24, 26
|
||||
RGB 14, 15, 20
|
||||
RGB 4, 7, 10
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 18, 24, 18
|
||||
RGB 31, 26, 15
|
||||
RGB 26, 19, 10
|
||||
RGB 12, 7, 5
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 18, 6, 31
|
||||
RGB 31, 31, 29
|
||||
RGB 31, 12, 0
|
||||
RGB 0, 0, 0
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 12, 31, 6
|
||||
RGB 22, 26, 30
|
||||
RGB 16, 17, 21
|
||||
RGB 0, 3, 0
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
RGB 31, 31, 25
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ GetSGBLayout::
|
|||
ld a, [wSGB]
|
||||
and a
|
||||
ret z
|
||||
predef_jump Function928b
|
||||
predef_jump LoadSGBLayout
|
||||
|
||||
SetHPPal::
|
||||
ld a, e
|
||||
|
|
|
|||
|
|
@ -127,9 +127,9 @@ ROMX $02
|
|||
"engine/trainer_gear.asm@OpenTrainerGear"
|
||||
"gfx.asm@Trainer Gear GFX"
|
||||
"engine/trainer_gear.asm@TrainerGear_RadioText"
|
||||
"engine/dumps/bank02.asm@SetTitleBGDecorationBorder"
|
||||
"engine/gfx/set_title_decoration.asm"
|
||||
"gfx.asm@Title Screen BG Decoration Border"
|
||||
"engine/dumps/bank02.asm@Function928b"
|
||||
"engine/gfx/sgb_layouts.asm"
|
||||
"gfx.asm@SGB GFX"
|
||||
"slack.asm@Unknownaebc"
|
||||
"slack.asm@Corrupted SGB GFX"
|
||||
|
|
@ -940,7 +940,7 @@ ROMX $3c
|
|||
|
||||
ROMX $3e
|
||||
org $4000
|
||||
"engine/gfx.asm"
|
||||
"engine/gfx/load_gfx.asm"
|
||||
"gfx.asm@Misc GFX"
|
||||
|
||||
ROMX $3f
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,4 +1,2 @@
|
|||
$(BUILD)/slack/corrupted_9e1c.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/slack/corrupted_a66c.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/slack/corrupted_b1e3.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/slack/sgb_border_gold_corrupted.2bpp: tools/gfx += --trim-whitespace
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user