summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/m4a_1.s26
-rw-r--r--constants/m4a_constants.s11
-rw-r--r--include/gba/m4a_internal.h8
3 files changed, 26 insertions, 19 deletions
diff --git a/asm/m4a_1.s b/asm/m4a_1.s
index 3f079d0ec..2b548cacc 100644
--- a/asm/m4a_1.s
+++ b/asm/m4a_1.s
@@ -1549,24 +1549,24 @@ ply_note:
ldr r1, =gClockTable
adds r0, r1
ldrb r0, [r0]
- strb r0, [r5, 0x4]
+ strb r0, [r5, o_MusicPlayerTrack_gateTime]
ldr r3, [r5, o_MusicPlayerTrack_cmdPtr]
ldrb r0, [r3]
cmp r0, 0x80
- bcs _081DDB46
+ bhs _081DDB46
strb r0, [r5, o_MusicPlayerTrack_key]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
- bcs _081DDB44
- strb r0, [r5, 0x6]
+ bhs _081DDB44
+ strb r0, [r5, o_MusicPlayerTrack_velocity]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
- bcs _081DDB44
- ldrb r1, [r5, 0x4]
+ bhs _081DDB44
+ ldrb r1, [r5, o_MusicPlayerTrack_gateTime]
adds r1, r0
- strb r1, [r5, 0x4]
+ strb r1, [r5, o_MusicPlayerTrack_gateTime]
adds r3, 0x1
_081DDB44:
str r3, [r5, o_MusicPlayerTrack_cmdPtr]
@@ -1574,16 +1574,16 @@ _081DDB46:
movs r0, 0
str r0, [sp, 0x14]
adds r4, r5, 0
- adds r4, 0x24
+ adds r4, o_MusicPlayerTrack_ToneData_type
ldrb r2, [r4]
- movs r0, 0xC0
+ movs r0, TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB98
- ldrb r3, [r5, 0x5]
- movs r0, 0x40
+ ldrb r3, [r5, o_MusicPlayerTrack_key]
+ movs r0, TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB66
- ldr r1, [r5, 0x2C]
+ ldr r1, [r5, o_MusicPlayerTrack_ToneData_keySplitTable]
adds r1, r3
ldrb r0, [r1]
b _081DDB68
@@ -1593,7 +1593,7 @@ _081DDB68:
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
- ldr r0, [r5, 0x28]
+ ldr r0, [r5, o_MusicPlayerTrack_ToneData_wav]
adds r1, r0
mov r9, r1
mov r6, r9
diff --git a/constants/m4a_constants.s b/constants/m4a_constants.s
index 4b05bc63d..b424a9230 100644
--- a/constants/m4a_constants.s
+++ b/constants/m4a_constants.s
@@ -2,6 +2,11 @@
.equiv PCM_DMA_BUF_SIZE, 1584
+ .equiv TONEDATA_TYPE_CGB, 0x07
+ .equiv TONEDATA_TYPE_FIX, 0x08
+ .equiv TONEDATA_TYPE_SPL, 0x40 @ key split
+ .equiv TONEDATA_TYPE_RHY, 0x80 @ rhythm
+
.macro struct_begin
.struct 0
.endm
@@ -81,9 +86,9 @@
struct_field o_MusicPlayerTrack_wai, 1
struct_field o_MusicPlayerTrack_patP, 1
struct_field o_MusicPlayerTrack_repN, 1
- struct_field o_MusicPlayerTrack_gat, 1
+ struct_field o_MusicPlayerTrack_gateTime, 1
struct_field o_MusicPlayerTrack_key, 1
- struct_field o_MusicPlayerTrack_vel, 1
+ struct_field o_MusicPlayerTrack_velocity, 1
struct_field o_MusicPlayerTrack_run, 1
struct_field o_MusicPlayerTrack_keyM, 1
struct_field o_MusicPlayerTrack_pitM, 1
@@ -125,3 +130,5 @@
struct_field o_MusicPlayerTrack_cmdPtr, 4
struct_field o_MusicPlayerTrack_patS, 12
struct_field MusicPlayerTrack_size, 0
+
+ .equiv o_MusicPlayerTrack_ToneData_keySplitTable, o_MusicPlayerTrack_ToneData_attack
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index c09cde31f..8539af2e0 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -45,8 +45,8 @@ struct WaveData
#define TONEDATA_TYPE_CGB 0x07
#define TONEDATA_TYPE_FIX 0x08
-#define TONEDATA_TYPE_SPL 0x40
-#define TONEDATA_TYPE_RHY 0x80
+#define TONEDATA_TYPE_SPL 0x40 // key split
+#define TONEDATA_TYPE_RHY 0x80 // rhythm
#define TONEDATA_P_S_PAN 0xc0
#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN
@@ -241,9 +241,9 @@ struct MusicPlayerTrack
u8 wai;
u8 patP;
u8 repN;
- u8 gat;
+ u8 gateTime;
u8 key;
- u8 vel;
+ u8 velocity;
u8 run;
u8 keyM;
u8 pitM;