; Super Game Boy development (step by step)
; Made by Imanol Barriuso (Imanolea) for Games aside
; Super Game boy command packets definition
MLT_REQ: MACRO
DB ($11 << 3) + 1
DB \\1 - 1
DS 14
ENDM
CHR_TRN: MACRO
DB ($13 << 3) + 1
DB \\1 + (\\2 << 1)
DS 14
ENDM
PCT_TRN: MACRO
DB ($14 << 3) + 1
DS 15
ENDM
PAL_SET: MACRO
DB ($A << 3) + 1
DW \\1, \\2, \\3, \\4
DS 7
ENDM
PAL_TRN: MACRO
DB ($B<< 3) + 1
DS 15
ENDM
MASK_EN: MACRO
DB ($17 << 3) + 1
DB \\1
DS 14
ENDM
RGB: MACRO
DW (\\3 << 10 | \\2 << 5 | \\1)
ENDM
; We assign the first palette (0) to the four palettes that are available for the game graphics
PalSet:: PAL_SET 0, 0, 0, 0
MltReqTwoPlayers:: MLT_REQ 2
MltReqOnePlayer:: MLT_REQ 1
; First 128 tile block transfer
ChrTrn1:: CHR_TRN 0, 0
; Second 128 tile block transfer
ChrTrn2:: CHR_TRN 1, 0
PctTrn:: PCT_TRN
PalTrn:: PAL_TRN
MaskEnFreeze: MASK_EN 1
MaskEnCancel: MASK_EN 0
; Initialization packets extracted from the official documentation
DataSnd0::
DB $79,$5D,$08,$00,$0B,$8C,$D0,$F4,$60,$00,$00,$00,$00,$00,$00,$00
DataSnd1::
DB $79,$52,$08,$00,$0B,$A9,$E7,$9F,$01,$C0,$7E,$E8,$E8,$E8,$E8,$E0
DataSnd2::
DB $79,$47,$08,$00,$0B,$C4,$D0,$16,$A5,$CB,$C9,$05,$D0,$10,$A2,$28
DataSnd3::
DB $79,$3C,$08,$00,$0B,$F0,$12,$A5,$C9,$C9,$C8,$D0,$1C,$A5,$CA,$C9
DataSnd4::
DB $79,$31,$08,$00,$0B,$0C,$A5,$CA,$C9,$7E,$D0,$06,$A5,$CB,$C9,$7E
DataSnd5::
DB $79,$26,$08,$00,$0B,$39,$CD,$48,$0C,$D0,$34,$A5,$C9,$C9,$80,$D0
DataSnd6::
DB $79,$1B,$08,$00,$0B,$EA,$EA,$EA,$EA,$EA,$A9,$01,$CD,$4F,$0C,$D0
DataSnd7::
DB $79,$10,$08,$00,$0B,$4C,$20,$08,$EA,$EA,$EA,$EA,$EA,$60,$EA,$EA
SGBSuperPalettes::
; Default palette
RGB 27,31,31
RGB 22,19,31
RGB 21,7,15
RGB 1,1,4