@@ -135,11 +135,11 @@ ENDM |
| 135 |
|
135 |
|
| 136 |
SECTION "Song Data", ROM0 |
136 |
SECTION "Song Data", ROM0 |
| 137 |
;; order_cnt is the number of orders times 2 |
137 |
;; order_cnt is the number of orders times 2 |
| 138 |
order_cnt: db 2 |
138 |
order_cnt: db 6 |
| 139 |
order1: dw empty, unreal, unreal |
139 |
order1: dw unreal, unreal, unreal_arps |
| 140 |
order2: dw unreal_arps, empty, unreal_arps |
140 |
order2: dw empty, empty, empty |
| 141 |
order3: dw empty, unreal_arps |
141 |
order3: dw empty, empty, empty |
| 142 |
order4: dw empty, empty |
142 |
order4: dw empty, empty, empty |
| 143 |
|
143 |
|
| 144 |
lunawaves: |
144 |
lunawaves: |
| 145 |
include "lunawaves.inc" |
145 |
include "lunawaves.inc" |
@@ -253,6 +253,12 @@ instruments: |
| 253 |
|
253 |
|
| 254 |
square_instrument: |
254 |
square_instrument: |
| 255 |
.sweep: db ; unused for channel 2 |
255 |
.sweep: db ; unused for channel 2 |
|
|
256 |
.length_and_duty: db %00000000 |
|
|
257 |
.envelope: db %11110000 |
|
|
258 |
.unused: db |
|
|
259 |
|
|
|
260 |
square_instrument2: |
|
|
261 |
.sweep: db ; unused for channel 2 |
| 256 |
.length_and_duty: db %10000000 |
262 |
.length_and_duty: db %10000000 |
| 257 |
.envelope: db %11110000 |
263 |
.envelope: db %11110000 |
| 258 |
.unused: db |
264 |
.unused: db |
@@ -273,6 +279,11 @@ noise_instrument: |
| 273 |
.step_and_ratio: db 0 |
279 |
.step_and_ratio: db 0 |
| 274 |
.unused: db |
280 |
.unused: db |
| 275 |
|
281 |
|
|
|
282 |
|
|
|
283 |
routines: |
|
|
284 |
|
|
|
285 |
;; nothing yet |
|
|
286 |
|
| 276 |
SECTION "Playback variables", WRAM0 |
287 |
SECTION "Playback variables", WRAM0 |
| 277 |
pattern1: dw |
288 |
pattern1: dw |
| 278 |
pattern2: dw |
289 |
pattern2: dw |
@@ -444,7 +455,7 @@ load_pattern: MACRO |
| 444 |
add hl, de |
455 |
add hl, de |
| 445 |
|
456 |
|
| 446 |
ld a, [hl+] |
457 |
ld a, [hl+] |
| 447 |
ld [\2], a |
458 |
ld [\2], a |
| 448 |
ld a, [hl+] |
459 |
ld a, [hl+] |
| 449 |
ld [\2+1], a |
460 |
ld [\2+1], a |
| 450 |
ENDM |
461 |
ENDM |
@@ -732,9 +743,17 @@ fx_call_routine: |
| 732 |
|
743 |
|
| 733 |
;; free registers: A, D, E, H, L |
744 |
;; free registers: A, D, E, H, L |
| 734 |
|
745 |
|
| 735 |
;; TODO |
746 |
;; Routines are 16 bytes. Shift left to multiply by 16, then |
|
|
747 |
;; jump to that location. |
| 736 |
|
748 |
|
| 737 |
ret |
749 |
ld hl, routines |
|
|
750 |
sla c |
|
|
751 |
sla c |
|
|
752 |
sla c |
|
|
753 |
sla c |
|
|
754 |
ld a, c |
|
|
755 |
add_a_to_hl |
|
|
756 |
jp hl |
| 738 |
|
757 |
|
| 739 |
fx_set_pan: |
758 |
fx_set_pan: |
| 740 |
ret nz |
759 |
ret nz |
@@ -1485,6 +1504,7 @@ _newrow: |
| 1485 |
ld a, [next_order] |
1504 |
ld a, [next_order] |
| 1486 |
cp 0 |
1505 |
cp 0 |
| 1487 |
|
1506 |
|
|
|
1507 |
;; Maybe use HL instead? |
| 1488 |
push af |
1508 |
push af |
| 1489 |
ld a, 0 |
1509 |
ld a, 0 |
| 1490 |
ld [next_order], a |
1510 |
ld [next_order], a |
@@ -1494,6 +1514,8 @@ _newrow: |
| 1494 |
jr z, _neworder |
1514 |
jr z, _neworder |
| 1495 |
|
1515 |
|
| 1496 |
dec a |
1516 |
dec a |
|
|
1517 |
sla a ;; Multiply the order by 2 (they are words) |
|
|
1518 |
|
| 1497 |
jr _update_current_order |
1519 |
jr _update_current_order |
| 1498 |
|
1520 |
|
| 1499 |
.no_break: |
1521 |
.no_break: |
@@ -1513,7 +1535,7 @@ _neworder: |
| 1513 |
add a, 2 |
1535 |
add a, 2 |
| 1514 |
cp c |
1536 |
cp c |
| 1515 |
jr nz, _update_current_order |
1537 |
jr nz, _update_current_order |
| 1516 |
xor a ; ld a, 0 |
1538 |
ld a, 0 |
| 1517 |
_update_current_order: |
1539 |
_update_current_order: |
| 1518 |
;; Call with: |
1540 |
;; Call with: |
| 1519 |
;; A: The order to load |
1541 |
;; A: The order to load |