Skip to content

Commit 70fde8a

Browse files
authored
Macroify MML opcodes (#2485)
* add defines for sequence opcodes * name aseq_cmd_id defines from the corresponding macro names * ASEQ_CMD_ID_ -> ASEQ_OPC_ * remove previous opcode defines * ASEQ_OPC_LAYER_STEP3_ -> ASEQ_OPC_LAYER_ * sync with MM and fixups * format * ASEQ_OPC_ -> ASEQ_OP_ * ASEQ_OP_CTRLFLOW_ -> ASEQ_OP_ * tab-align * ASEQ_OP_SEQUENCE_ -> ASEQ_OP_SEQ_ * ASEQ_OP_CHANNEL_ -> ASEQ_OP_CHAN_ * define MML_VERSION in the Makefile for seqplayer.c
1 parent 5ddb3e6 commit 70fde8a

File tree

5 files changed

+604
-426
lines changed

5 files changed

+604
-426
lines changed

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ endif
538538

539539
$(BUILD_DIR)/src/boot/build.o: CPP_DEFINES += -DBUILD_CREATOR="\"$(BUILD_CREATOR)\"" -DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_TIME="\"$(BUILD_TIME)\""
540540

541+
$(BUILD_DIR)/src/audio/lib/seqplayer.o: CPP_DEFINES += -DMML_VERSION=MML_VERSION_OOT
542+
541543
ifeq ($(COMPILER),ido)
542544
$(BUILD_DIR)/src/boot/driverominit.o: OPTFLAGS := -O2
543545

assets/audio/sequences/seq_0.prg.seq

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,7 +1302,7 @@ CHAN_08EC:
13021302
/* 0x08EE [0xC7 0x02 0x09 0x04 ] */ stseq 2, LAYER_0903 + STSEQ_NOTEDV_DELAY_HI
13031303
/* 0x08F2 [0xC7 0x02 0x08 0xFD ] */ stseq 2, CHAN_08FC + STSEQ_LDI_IMM
13041304
/* 0x08F6 [0xB8 0x0C ] */ rand 12
1305-
/* 0x08F8 [0xC7 0x5C 0x09 0x03 ] */ stseq (NOTEDV_OPCODE | PITCH_DF3), LAYER_0903 + STSEQ_NOTEDV_OPCODE_PITCH
1305+
/* 0x08F8 [0xC7 0x5C 0x09 0x03 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_DF3), LAYER_0903 + STSEQ_NOTEDV_OPCODE_PITCH
13061306
CHAN_08FC:
13071307
/* 0x08FC [0xCC 0x01 ] */ ldi 1
13081308
/* 0x08FE [0xFC 0x00 0x48 ] */ call CHAN_0048
@@ -4978,7 +4978,7 @@ CHAN_2274:
49784978
/* 0x2284 [0x56 ] */ subio IO_PORT_6
49794979
/* 0x2285 [0xC9 0x07 ] */ and 7
49804980
CHAN_2287:
4981-
/* 0x2287 [0xC7 0x60 0x22 0x98 ] */ stseq (NOTEDV_OPCODE | PITCH_F3), LAYER_2298 + STSEQ_NOTEDV_OPCODE_PITCH
4981+
/* 0x2287 [0xC7 0x60 0x22 0x98 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_F3), LAYER_2298 + STSEQ_NOTEDV_OPCODE_PITCH
49824982
/* 0x228B [0x66 ] */ ldio IO_PORT_6
49834983
/* 0x228C [0xC8 0xFC ] */ sub 252
49844984
/* 0x228E [0xC9 0x04 ] */ and 4
@@ -6529,7 +6529,7 @@ LAYER_2C4E:
65296529

65306530
.channel CHAN_2C54
65316531
/* 0x2C54 [0x89 0x2C 0x62 ] */ ldlayer 1, LAYER_2C62
6532-
/* 0x2C57 [0xCC 0x58 ] */ ldi (NOTEDV_OPCODE | PITCH_A2)
6532+
/* 0x2C57 [0xCC 0x58 ] */ ldi (ASEQ_OP_LAYER_NOTEDV | PITCH_A2)
65336533
/* 0x2C59 [0xC7 0x00 0x22 0x88 ] */ stseq 0, CHAN_2287 + STSEQ_STSEQ_IMM
65346534
/* 0x2C5D [0xFB 0x22 0x67 ] */ jump CHAN_2267
65356535

@@ -6649,7 +6649,7 @@ CHAN_2D01:
66496649
.channel CHAN_2D13
66506650
/* 0x2D13 [0x89 0x2D 0x25 ] */ ldlayer 1, LAYER_2D25
66516651
/* 0x2D16 [0x8A 0x2D 0x23 ] */ ldlayer 2, LAYER_2D23
6652-
/* 0x2D19 [0xCC 0x66 ] */ ldi (NOTEDV_OPCODE | PITCH_B3)
6652+
/* 0x2D19 [0xCC 0x66 ] */ ldi (ASEQ_OP_LAYER_NOTEDV | PITCH_B3)
66536653
/* 0x2D1B [0xC7 0x00 0x22 0x88 ] */ stseq 0, CHAN_2287 + STSEQ_STSEQ_IMM
66546654
/* 0x2D1F [0xFB 0x22 0x67 ] */ jump CHAN_2267
66556655
/* 0x2D22 [0xFF ] */ end
@@ -9201,7 +9201,7 @@ CHAN_4162:
92019201
/* 0x4164 [0xC7 0x03 0x41 0x7A ] */ stseq 3, LAYER_4179 + STSEQ_NOTEDV_DELAY_HI
92029202
/* 0x4168 [0xC7 0x03 0x41 0x73 ] */ stseq 3, CHAN_4172 + STSEQ_LDI_IMM
92039203
/* 0x416C [0xB8 0x08 ] */ rand 8
9204-
/* 0x416E [0xC7 0x5B 0x41 0x79 ] */ stseq (NOTEDV_OPCODE | PITCH_C3), LAYER_4179 + STSEQ_NOTEDV_OPCODE_PITCH
9204+
/* 0x416E [0xC7 0x5B 0x41 0x79 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_C3), LAYER_4179 + STSEQ_NOTEDV_OPCODE_PITCH
92059205
CHAN_4172:
92069206
/* 0x4172 [0xCC 0x01 ] */ ldi 1
92079207
/* 0x4174 [0xFC 0x00 0x48 ] */ call CHAN_0048
@@ -9763,7 +9763,7 @@ LAYER_4245:
97639763
/* 0x44C9 [0x88 0x44 0xD7 ] */ ldlayer 0, LAYER_44D7
97649764
/* 0x44CC [0xED 0x14 ] */ gain 20
97659765
/* 0x44CE [0xB8 0x04 ] */ rand 4
9766-
/* 0x44D0 [0xC7 0x6B 0x44 0xD7 ] */ stseq (NOTEDV_OPCODE | PITCH_E4), LAYER_44D7 + STSEQ_NOTEDV_OPCODE_PITCH
9766+
/* 0x44D0 [0xC7 0x6B 0x44 0xD7 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_E4), LAYER_44D7 + STSEQ_NOTEDV_OPCODE_PITCH
97679767
/* 0x44D4 [0xD9 0xE8 ] */ releaserate 232
97689768
/* 0x44D6 [0xFF ] */ end
97699769

@@ -10353,7 +10353,7 @@ LAYER_47B3:
1035310353
/* 0x4860 [0x88 0x48 0x70 ] */ ldlayer 0, LAYER_4870
1035410354
CHAN_4863:
1035510355
/* 0x4863 [0xB8 0x04 ] */ rand 4
10356-
/* 0x4865 [0xC7 0x60 0x48 0x70 ] */ stseq (NOTEDV_OPCODE | PITCH_F3), LAYER_4870 + STSEQ_NOTEDV_OPCODE_PITCH
10356+
/* 0x4865 [0xC7 0x60 0x48 0x70 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_F3), LAYER_4870 + STSEQ_NOTEDV_OPCODE_PITCH
1035710357
/* 0x4869 [0xCC 0x12 ] */ ldi 18
1035810358
/* 0x486B [0xFC 0x00 0x48 ] */ call CHAN_0048
1035910359
/* 0x486E [0xF4 0xF3 ] */ rjump CHAN_4863
@@ -12266,7 +12266,7 @@ LAYER_53FD:
1226612266
/* 0x5403 [0xC1 0x7E ] */ instr FONTANY_INSTR_SFX
1226712267
/* 0x5405 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS
1226812268
/* 0x5406 [0xC8 0xB0 ] */ sub 176
12269-
/* 0x5408 [0xC7 0x00 0x54 0x17 ] */ stseq (NOTEDVG_OPCODE | PITCH_A0), LAYER_5417 + STSEQ_NOTEDVG_OPCODE_PITCH
12269+
/* 0x5408 [0xC7 0x00 0x54 0x17 ] */ stseq (ASEQ_OP_LAYER_NOTEDVG | PITCH_A0), LAYER_5417 + STSEQ_NOTEDVG_OPCODE_PITCH
1227012270
/* 0x540C [0xCB 0x54 0x1C ] */ ldseq UNK_541C
1227112271
/* 0x540F [0xC7 0x00 0x54 0x19 ] */ stseq 0, LAYER_5417 + STSEQ_NOTEDVG_DELAY_LO
1227212272
/* 0x5413 [0x88 0x54 0x17 ] */ ldlayer 0, LAYER_5417
@@ -12640,7 +12640,7 @@ CHAN_565E:
1264012640
/* 0x5660 [0xC7 0x28 0x56 0x76 ] */ stseq 40, LAYER_5675 + STSEQ_NOTEDV_DELAY_HI
1264112641
/* 0x5664 [0xC7 0x28 0x56 0x6F ] */ stseq 40, CHAN_566E + STSEQ_LDI_IMM
1264212642
/* 0x5668 [0xB8 0x06 ] */ rand 6
12643-
/* 0x566A [0xC7 0x64 0x56 0x75 ] */ stseq (NOTEDV_OPCODE | PITCH_A3), LAYER_5675 + STSEQ_NOTEDV_OPCODE_PITCH
12643+
/* 0x566A [0xC7 0x64 0x56 0x75 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A3), LAYER_5675 + STSEQ_NOTEDV_OPCODE_PITCH
1264412644
CHAN_566E:
1264512645
/* 0x566E [0xCC 0x01 ] */ ldi 1
1264612646
/* 0x5670 [0xFC 0x00 0x48 ] */ call CHAN_0048
@@ -14045,7 +14045,7 @@ CHAN_6116:
1404514045
/* 0x6118 [0x3F 0x06 ] */ stcio 15, IO_PORT_6
1404614046
CHAN_611A:
1404714047
/* 0x611A [0xCB 0x61 0x6D ] */ ldseq UNK_616D
14048-
/* 0x611D [0xC7 0x40 0x61 0x2D ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH
14048+
/* 0x611D [0xC7 0x40 0x61 0x2D ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH
1404914049
/* 0x6121 [0x66 ] */ ldio IO_PORT_6
1405014050
CHAN_6122:
1405114051
/* 0x6122 [0xCB 0x61 0x71 ] */ ldseq UNK_6171
@@ -14079,8 +14079,8 @@ CHAN_613E:
1407914079
/* 0x6145 [0xCC 0x00 ] */ ldi 0
1408014080
// Reads the byte at (PTR + 0) into TR (the note)
1408114081
/* 0x6147 [0xB6 ] */ dyntblv
14082-
// Store NOTEDV_OPCODE + TR into the pitch
14083-
/* 0x6148 [0xC7 0x40 0x61 0x2D ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH
14082+
// Store ASEQ_OP_LAYER_NOTEDV + TR into the pitch
14083+
/* 0x6148 [0xC7 0x40 0x61 0x2D ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A0), LAYER_612D + STSEQ_NOTEDV_OPCODE_PITCH
1408414084
// Load 1 into TR
1408514085
/* 0x614C [0xCC 0x01 ] */ ldi 1
1408614086
// Reads the byte at (PTR + 1) into TR (the velocity)
@@ -14355,7 +14355,7 @@ UNK_62CC:
1435514355
/* 0x62D1 [0x76 ] */ stio IO_PORT_6
1435614356
/* 0x62D2 [0xC9 0x01 ] */ and 1
1435714357
/* 0x62D4 [0xCB 0x62 0xE8 ] */ ldseq UNK_62E8
14358-
/* 0x62D7 [0xC7 0x40 0x64 0xBF ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH
14358+
/* 0x62D7 [0xC7 0x40 0x64 0xBF ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH
1435914359
/* 0x62DB [0xB8 0x02 ] */ rand 2
1436014360
/* 0x62DD [0xCB 0x62 0xEA ] */ ldseq UNK_62EA
1436114361
/* 0x62E0 [0xC7 0x00 0x64 0xC1 ] */ stseq 0, LAYER_64BF + STSEQ_NOTEDV_VELOCITY_2
@@ -14482,7 +14482,7 @@ UNK_6374:
1448214482
/* 0x6379 [0x76 ] */ stio IO_PORT_6
1448314483
/* 0x637A [0xC9 0x01 ] */ and 1
1448414484
/* 0x637C [0xCB 0x63 0x96 ] */ ldseq UNK_6396
14485-
/* 0x637F [0xC7 0x40 0x63 0x90 ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_6390 + STSEQ_NOTEDV_OPCODE_PITCH
14485+
/* 0x637F [0xC7 0x40 0x63 0x90 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A0), LAYER_6390 + STSEQ_NOTEDV_OPCODE_PITCH
1448614486
/* 0x6383 [0xB8 0x02 ] */ rand 2
1448714487
/* 0x6385 [0xCB 0x63 0x98 ] */ ldseq UNK_6398
1448814488
/* 0x6388 [0xC7 0x00 0x63 0x92 ] */ stseq 0, LAYER_6390 + STSEQ_NOTEDV_VELOCITY_2
@@ -14688,7 +14688,7 @@ UNK_6499:
1468814688
/* 0x64A8 [0x76 ] */ stio IO_PORT_6
1468914689
/* 0x64A9 [0xC9 0x01 ] */ and 1
1469014690
/* 0x64AB [0xCB 0x64 0xC5 ] */ ldseq UNK_64C5
14691-
/* 0x64AE [0xC7 0x40 0x64 0xBF ] */ stseq (NOTEDV_OPCODE | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH
14691+
/* 0x64AE [0xC7 0x40 0x64 0xBF ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_A0), LAYER_64BF + STSEQ_NOTEDV_OPCODE_PITCH
1469214692
/* 0x64B2 [0xB8 0x02 ] */ rand 2
1469314693
/* 0x64B4 [0xCB 0x64 0xC7 ] */ ldseq UNK_64C7
1469414694
/* 0x64B7 [0xC7 0x00 0x64 0xC1 ] */ stseq 0, LAYER_64BF + STSEQ_NOTEDV_VELOCITY_2
@@ -14785,7 +14785,7 @@ UNK_6511:
1478514785
.channel CHAN_6520
1478614786
/* 0x6520 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS
1478714787
/* 0x6521 [0xC8 0x50 ] */ sub 80
14788-
/* 0x6523 [0xC7 0x19 0x65 0x36 ] */ stseq (NOTEDVG_OPCODE | PITCH_BF2), LAYER_6536 + STSEQ_NOTEDVG_OPCODE_PITCH
14788+
/* 0x6523 [0xC7 0x19 0x65 0x36 ] */ stseq (ASEQ_OP_LAYER_NOTEDVG | PITCH_BF2), LAYER_6536 + STSEQ_NOTEDVG_OPCODE_PITCH
1478914789
/* 0x6527 [0xCB 0x65 0x3B ] */ ldseq UNK_653B
1479014790
/* 0x652A [0xC7 0x00 0x65 0x38 ] */ stseq 0, LAYER_6536 + STSEQ_NOTEDVG_DELAY_LO
1479114791
/* 0x652E [0x88 0x65 0x34 ] */ ldlayer 0, LAYER_6534
@@ -14806,7 +14806,7 @@ UNK_653B:
1480614806
.channel CHAN_6562
1480714807
/* 0x6562 [0x64 ] */ ldio IO_PORT_SFX_INDEX_LOBITS
1480814808
/* 0x6563 [0xC8 0x77 ] */ sub 119
14809-
/* 0x6565 [0xC7 0x00 0x65 0x76 ] */ stseq (NOTEDVG_OPCODE | PITCH_A0), LAYER_6576 + STSEQ_NOTEDVG_OPCODE_PITCH
14809+
/* 0x6565 [0xC7 0x00 0x65 0x76 ] */ stseq (ASEQ_OP_LAYER_NOTEDVG | PITCH_A0), LAYER_6576 + STSEQ_NOTEDVG_OPCODE_PITCH
1481014810
/* 0x6569 [0xCB 0x65 0x7B ] */ ldseq UNK_657B
1481114811
/* 0x656C [0xC7 0x00 0x65 0x78 ] */ stseq 0, LAYER_6576 + STSEQ_NOTEDVG_DELAY_LO
1481214812
/* 0x6570 [0x88 0x65 0x74 ] */ ldlayer 0, LAYER_6574

assets/audio/sequences/seq_1.prg.seq

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ CHAN_0308:
454454
/* 0x0319 [0xC7 0x60 0x10 0x00 ] */ stseq 96, ENVELOPE_0FFA + STSEQ_ENVELOPE_POINT(3)
455455
CHAN_031D:
456456
/* 0x031D [0xB8 0x18 ] */ rand 24
457-
/* 0x031F [0xC7 0x62 0x03 0x6F ] */ stseq (NOTEDV_OPCODE | PITCH_G3), LAYER_036F + STSEQ_NOTEDV_OPCODE_PITCH
457+
/* 0x031F [0xC7 0x62 0x03 0x6F ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_G3), LAYER_036F + STSEQ_NOTEDV_OPCODE_PITCH
458458
/* 0x0323 [0xCC 0x40 ] */ ldi 64
459459
/* 0x0325 [0x53 ] */ subio IO_PORT_3
460460
/* 0x0326 [0xC7 0x00 0x03 0x2B ] */ stseq 0, STSEQ_HERE + STSEQ_RAND
@@ -482,7 +482,7 @@ CHAN_0335:
482482
/* 0x034B [0xC8 0xFF ] */ sub 255
483483
/* 0x034D [0xC7 0x64 0x03 0x87 ] */ stseq 100, LAYER_0385 + STSEQ_NOTEDV_VELOCITY_2
484484
/* 0x0351 [0xC7 0x64 0x03 0x8A ] */ stseq 100, LAYER_0388 + STSEQ_NOTEDV_VELOCITY_2
485-
/* 0x0355 [0xC7 0x67 0x03 0x85 ] */ stseq (NOTEDV_OPCODE | PITCH_C4), LAYER_0385 + STSEQ_NOTEDV_OPCODE_PITCH
485+
/* 0x0355 [0xC7 0x67 0x03 0x85 ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_C4), LAYER_0385 + STSEQ_NOTEDV_OPCODE_PITCH
486486
/* 0x0359 [0xFF ] */ end
487487

488488
UNK_035A:
@@ -1664,7 +1664,7 @@ CHAN_0E72:
16641664
/* 0x0E84 [0xB8 0x02 ] */ rand 2
16651665
/* 0x0E86 [0x73 ] */ stio IO_PORT_3
16661666
CHAN_0E87:
1667-
/* 0x0E87 [0xC7 0x67 0x0E 0xCF ] */ stseq (NOTEDV_OPCODE | PITCH_C4), LAYER_0ECF + STSEQ_NOTEDV_OPCODE_PITCH
1667+
/* 0x0E87 [0xC7 0x67 0x0E 0xCF ] */ stseq (ASEQ_OP_LAYER_NOTEDV | PITCH_C4), LAYER_0ECF + STSEQ_NOTEDV_OPCODE_PITCH
16681668
/* 0x0E8B [0xB8 0x1E ] */ rand 30
16691669
/* 0x0E8D [0xC7 0x31 0x0E 0xCC ] */ stseq 49, LAYER_0ECB + STSEQ_NOTEPAN
16701670
/* 0x0E91 [0x76 ] */ stio IO_PORT_6

0 commit comments

Comments
 (0)