@@ -122,7 +122,7 @@ DB "NF" |
| 122 |
SECTION "Song Data", ROM0 |
122 |
SECTION "Song Data", ROM0 |
| 123 |
;; order_cnt is the number of orders times 2 |
123 |
;; order_cnt is the number of orders times 2 |
| 124 |
order_cnt: db 2 |
124 |
order_cnt: db 2 |
| 125 |
order1: dw setduty, tfau_bass, unreal, unreal |
125 |
order1: dw setpan, tfau_bass, unreal, unreal |
| 126 |
order2: dw empty, tfau_arps, unreal_arps, unreal_arps |
126 |
order2: dw empty, tfau_arps, unreal_arps, unreal_arps |
| 127 |
order3: dw empty |
127 |
order3: dw empty |
| 128 |
order4: dw empty |
128 |
order4: dw empty |
@@ -188,7 +188,7 @@ rept 32 |
| 188 |
endr |
188 |
endr |
| 189 |
volslide: |
189 |
volslide: |
| 190 |
dn C5, 00, 00 |
190 |
dn C5, 00, 00 |
| 191 |
rept 64 |
191 |
rept 63 |
| 192 |
dn 90, 00, $A01 |
192 |
dn 90, 00, $A01 |
| 193 |
endr |
193 |
endr |
| 194 |
setduty: |
194 |
setduty: |
@@ -199,6 +199,23 @@ rept 21 |
| 199 |
dn 90, 00, $980 |
199 |
dn 90, 00, $980 |
| 200 |
dn 90, 00, $9C0 |
200 |
dn 90, 00, $9C0 |
| 201 |
endr |
201 |
endr |
|
|
202 |
setpan: |
|
|
203 |
dn C5, 00, $811 |
|
|
204 |
rept 15 |
|
|
205 |
dn 90, 00, 00 |
|
|
206 |
endr |
|
|
207 |
dn C5, 00, $801 |
|
|
208 |
rept 15 |
|
|
209 |
dn 90, 00, 00 |
|
|
210 |
endr |
|
|
211 |
dn C5, 00, $810 |
|
|
212 |
rept 15 |
|
|
213 |
dn 90, 00, 00 |
|
|
214 |
endr |
|
|
215 |
dn C5, 00, $800 |
|
|
216 |
rept 15 |
|
|
217 |
dn 90, 00, 00 |
|
|
218 |
endr |
| 202 |
|
219 |
|
| 203 |
SECTION "Playback variables", WRAM0 |
220 |
SECTION "Playback variables", WRAM0 |
| 204 |
pattern1: dw |
221 |
pattern1: dw |
@@ -329,13 +346,13 @@ _addr = _addr + 1 |
| 329 |
|
346 |
|
| 330 |
; Enable sound globally |
347 |
; Enable sound globally |
| 331 |
ld a, $80 |
348 |
ld a, $80 |
| 332 |
ldh [rAUDENA], a |
349 |
ld [rAUDENA], a |
| 333 |
; Enable channel 1 in stereo |
350 |
; Enable channel 1 in stereo |
| 334 |
ld a, $FF |
351 |
ld a, $FF |
| 335 |
ldh [rAUDTERM], a |
352 |
ld [rAUDTERM], a |
| 336 |
; Set volume |
353 |
; Set volume |
| 337 |
ld a, $77 |
354 |
ld a, $77 |
| 338 |
ldh [rAUDVOL], a |
355 |
ld [rAUDVOL], a |
| 339 |
|
356 |
|
| 340 |
ld c, 0 ;; Current order index |
357 |
ld c, 0 ;; Current order index |
| 341 |
call _refresh_patterns |
358 |
call _refresh_patterns |
@@ -591,7 +608,7 @@ _doeffect: |
| 591 |
jp fx_no_op ;fx_toneporta_volslide ;5xy |
608 |
jp fx_no_op ;fx_toneporta_volslide ;5xy |
| 592 |
jp fx_no_op ;fx_vibrato_volslide ;6xy |
609 |
jp fx_no_op ;fx_vibrato_volslide ;6xy |
| 593 |
jp fx_note_delay ;7xy |
610 |
jp fx_note_delay ;7xy |
| 594 |
jp fx_no_op ;fx_set_pan ;8xy |
611 |
jp fx_set_pan ;8xy |
| 595 |
jp fx_set_duty ;9xy |
612 |
jp fx_set_duty ;9xy |
| 596 |
jp fx_vol_slide ;Axy |
613 |
jp fx_vol_slide ;Axy |
| 597 |
jp fx_pos_jump ;Bxy |
614 |
jp fx_pos_jump ;Bxy |
@@ -618,6 +635,21 @@ setup_channel_pointer: |
| 618 |
fx_no_op: |
635 |
fx_no_op: |
| 619 |
ret |
636 |
ret |
| 620 |
|
637 |
|
|
|
638 |
fx_set_pan: |
|
|
639 |
ret nz |
|
|
640 |
|
|
|
641 |
;; B: channel |
|
|
642 |
;; C: effect parameters |
|
|
643 |
|
|
|
644 |
;; free registers: A, D, E, H, L |
|
|
645 |
|
|
|
646 |
;; Pretty simple. The editor can create the correct value here without a bunch |
|
|
647 |
;; of bit shifting manually. |
|
|
648 |
|
|
|
649 |
ld a, c |
|
|
650 |
ld [rAUDTERM], a |
|
|
651 |
ret |
|
|
652 |
|
| 621 |
fx_set_duty: |
653 |
fx_set_duty: |
| 622 |
ret nz |
654 |
ret nz |
| 623 |
|
655 |
|