Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .ROMBANKMAP
- BANKSTOTAL 4
- BANKSIZE $70
- BANKS 1
- BANKSIZE $4000
- BANKS 3
- .ENDRO
- .MEMORYMAP
- SLOTSIZE $4000
- DEFAULTSLOT 0
- SLOT 0 $0000
- SLOT 1 $4000
- .ENDME
- ; gbs_wrap.s
- .DB "GBS" ; ident
- .DB 1 ; version
- .DB 1 ; track count
- .DB 1 ; first track
- .DW $0000 ; load address
- .DW INIT ; init address
- .DW PLAY ; play address
- .DW $FEFF ; stack pointer
- .DB 0 ; timer modulo
- .DB 0 ; timer control
- .ORG $10 ; title
- .DB "TITLE", 0
- .ORG $30 ; author
- .DB "AUTHOR", 0
- .ORG $50 ; copyright
- .DB "COPYRIGHT", 0
- .EMPTYFILL $c9 ; ret.
- .DEFINE Clock $C000
- .BANK 1 SLOT 0
- .ORG $0
- .SECTION "Main" FORCE
- LOAD:
- INIT:
- ld HL, $FF26
- ld A, $80 ; sound enable
- ldd (HL), A
- ld A, %11111111 ; pan
- ldd (HL), A
- ld A, %01110111 ; master volume
- ldd (HL), A
- ld A, $40
- ldh ($11), A ; pulse duty / length
- ldh ($16), A
- ld A, $C4
- ldh ($12), A ; volume
- ld A, $95
- ldh ($17), A
- ld HL, Clock
- ld (HL), 1
- inc HL
- ld (HL), $3F
- ret
- PLAY:
- ld HL, Clock
- ld A, (HL)
- dec A
- jr z, +
- ld (HL), A
- ret
- + ld A, 6
- ldi (HL), A
- ld A, (HL)
- inc A
- and $3F
- ld (HL), A
- ld B, 0
- ld C, A
- ld HL, cir_pu1
- add HL, BC
- ld A, (HL)
- cp $FF
- jr z, +
- rlca
- ld D, 0
- ld E, A
- ld HL, gb_periods
- add HL, DE
- ldi A, (HL)
- ldh ($13), A
- ldi A, (HL)
- ld E, $80
- or E
- ldh ($14), A
- +
- ld HL, cir_pu2
- add HL, BC
- ld A, (HL)
- cp $FF
- jr z, +
- rlca
- ld D, 0
- ld E, A
- ld HL, gb_periods
- add HL, DE
- ldi A, (HL)
- ldh ($18), A
- ldi A, (HL)
- ld E, $80
- or E
- ldh ($19), A
- +
- ret
- .ENDS
- cir_pu1:
- .DB $30, -1, -1, $2E, -1, -1, $30, -1
- .DB $33, -1, -1, -1, -1, -1, -1, -1
- .DB $30, -1, $2E, -1, $30, -1, $33, -1
- .DB -1, -1, $35, -1, $30, -1, $2E, -1
- .DB $30, -1, $2E, -1, $30, -1, $33, -1
- .DB -1, -1, -1, -1, -1, -1, -1, -1
- .DB $30, -1, $2E, -1, $30, -1, $37, -1
- .DB -1, -1, $37, -1, $35, -1, -1, -1
- cir_pu2:
- .DB $27, -1, -1, $27, -1, -1, $27, -1
- .DB $30, -1, -1, -1, -1, -1, -1, -1
- .DB $27, -1, $27, -1, $27, -1, $30, -1
- .DB -1, -1, $30, -1, $2b, -1, $2B, -1
- .DB $27, -1, $27, -1, $27, -1, $30, -1
- .DB -1, -1, -1, -1, -1, -1, -1, -1
- .DB $27, -1, $27, -1, $27, -1, $33, -1
- .DB -1, -1, $33, -1, $32, -1, -1, -1
- gb_periods:
- .DW $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000, $0000
- .DW $002C, $009D, $0107, $016B, $01C9, $0223, $0277, $02C7, $0312, $0358, $039B, $03DA
- .DW $0416, $044E, $0483, $04B5, $04E5, $0511, $053B, $0563, $0589, $05AC, $05CE, $05ED
- .DW $060B, $0627, $0642, $065B, $0672, $0689, $069E, $06B2, $06C4, $06D6, $06E7, $06F7
- .DW $0706, $0714, $0721, $072D, $0739, $0744, $074F, $0759, $0762, $076B, $0773, $077B
- .DW $0783, $078A, $0790, $0797, $079D, $07A2, $07A7, $07AC, $07B1, $07B6, $07BA, $07BE
- .DW $07C1, $07C5, $07C8, $07CB, $07CE, $07D1, $07D4, $07D6, $07D9, $07DB, $07DD, $07DF
- .DW $07E1, $07E2, $07E4, $07E6, $07E7, $07E9, $07EA, $07EB, $07EC, $07ED, $07EE, $07EF
- ; WLA DX is not actually designed with producing non-ROM files in mind
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement