diff options
| author | Zumi Daxuya <daxuya.zumi+code@protonmail.com> | 2021-05-17 18:05:49 +0700 |
|---|---|---|
| committer | Zumi Daxuya <daxuya.zumi+code@protonmail.com> | 2021-05-17 18:09:43 +0700 |
| commit | 0f72265c2fb4df1069654ee9e62707398e326649 (patch) | |
| tree | b1ec69c0f13f54fd0b5e9a20506edbeec5188af3 | |
| parent | 437e556b3dd0d37609e1a629aed473f88c068be3 (diff) | |
Decode SGB system control packets
| -rw-r--r-- | data/sgb/ctrl_packets.inc | 142 |
1 files changed, 105 insertions, 37 deletions
diff --git a/data/sgb/ctrl_packets.inc b/data/sgb/ctrl_packets.inc index bcca0ed..b613e7d 100644 --- a/data/sgb/ctrl_packets.inc +++ b/data/sgb/ctrl_packets.inc @@ -1,60 +1,128 @@ -PalTrnPacket: - db $59, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_pal_trn: MACRO + db (SGB_PAL_TRN << 3) + 1 + ds 15 +ENDM -MltReq1Packet: - db $89, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_mlt_req: MACRO + db (SGB_MLT_REG << 3) + 1 + db \1 - 1 + ds 14 +ENDM -MltReq2Packet: - db $89, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_chr_trn: MACRO + db (SGB_CHR_TRN << 3) + 1 + db \1 + (\2 << 1) + ds 14 +ENDM -ChrTrnPacket: - db $99, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_pct_trn: MACRO + db (SGB_PCT_TRN << 3) + 1 + ds 15 +ENDM -PctTrnPacket: - db $a1, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_mask_en: MACRO + db (SGB_MASK_EN << 3) + 1 + db \1 + ds 14 +ENDM -MaskEnFreezePacket: - db $b9, $01, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +sgb_data_snd: MACRO + db (SGB_DATA_SND << 3) + 1 + dw \1 ; address + db \2 ; bank + db \3 ; length (1-11) +ENDM -MaskEnCancelPacket: - db $b9, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 +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: - db $79, $5d, $08, $00, $0b, $8c, $d0, $f4 - db $60, $00, $00, $00, $00, $00, $00, $00 + sgb_data_snd $085d, $0, 11 + db $8c ; cpx #$8c (2) + db $d0, $f4 ; bne -$0c + db $60 ; rts + ds 7 DataSndPacket2: - db $79, $52, $08, $00, $0b, $a9, $e7, $9f - db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 + 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: - db $79, $47, $08, $00, $0b, $c4, $d0, $16 - db $a5, $cb, $c9, $05, $d0, $10, $a2, $28 + 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: - db $79, $3c, $08, $00, $0b, $f0, $12, $a5 - db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 + 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: - db $79, $31, $08, $00, $0b, $0c, $a5, $ca - db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e + 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: - db $79, $26, $08, $00, $0b, $39, $cd, $48 - db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 + 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: - db $79, $1b, $08, $00, $0b, $ea, $ea, $ea - db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 + 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: - db $79, $10, $08, $00, $0b, $4c, $20, $08 - db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea + 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 |
