Commit 0c3510d

Nick committed on
Fixing position jump
commit 0c3510d15afb5cd29d0c49c6227bfd3a074adf9c parent 0c59726
1 changed files +31−9
Modifieddriver.z80 +31−9
@@ -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