extracted m4a rodata

This commit is contained in:
Henny022p 2021-03-22 04:55:21 +01:00
parent cf5eacbdc8
commit 34931c4eac
4 changed files with 73 additions and 85 deletions

View File

@ -502,7 +502,7 @@ _080AF73A:
MPlayJumpTableCopy: @ 0x080AF744
mov ip, lr
movs r1, #0x24
ldr r2, _080AF774 @ =gUnk_089FC6C4
ldr r2, _080AF774 @ =gMPlayJumpTableTemplate
_080AF74A:
ldr r3, [r2]
bl _080AF75E
@ -520,7 +520,7 @@ _080AF75E:
push {r0}
lsrs r0, r2, #0x19
bne _080AF770
ldr r0, _080AF774 @ =gUnk_089FC6C4
ldr r0, _080AF774 @ =gMPlayJumpTableTemplate
cmp r2, r0
blo _080AF76E
lsrs r0, r2, #0xe
@ -531,7 +531,7 @@ _080AF770:
pop {r0}
bx lr
.align 2, 0
_080AF774: .4byte gUnk_089FC6C4
_080AF774: .4byte gMPlayJumpTableTemplate
thumb_func_start sub_080AF778
sub_080AF778: @ 0x080AF778
@ -931,7 +931,7 @@ _080AF9FA:
beq _080AFA82
b _080AFA26
_080AFA1C:
ldr r0, _080AFB78 @ =gUnk_089FC938
ldr r0, _080AFB78 @ =gClockTable
subs r1, #0x80
adds r1, r1, r0
ldrb r0, [r1]
@ -1126,7 +1126,7 @@ _080AFB64:
sub_080AFB74: @ 0x080AFB74
bx r3
.align 2, 0
_080AFB78: .4byte gUnk_089FC938
_080AFB78: .4byte gClockTable
_080AFB7C: .4byte 0x03007FF0
_080AFB80: .4byte 0x68736D53
@ -1219,7 +1219,7 @@ ply_note: @ 0x080AFC00
ldr r1, _080AFDF8 @ =0x03007FF0
ldr r1, [r1]
str r1, [sp, #4]
ldr r1, _080AFDFC @ =gUnk_089FC938
ldr r1, _080AFDFC @ =gClockTable
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r5, #4]
@ -1482,7 +1482,7 @@ _080AFDE6:
bx r0
.align 2, 0
_080AFDF8: .4byte 0x03007FF0
_080AFDFC: .4byte gUnk_089FC938
_080AFDFC: .4byte gClockTable
thumb_func_start ply_endtie
ply_endtie: @ 0x080AFE00

View File

@ -4,84 +4,6 @@
.section .rodata
.align 2
gUnk_089FC6C4:: @ 089FC6C4
@ replacing .incbin "baserom.gba", 0x009fc6c4, 0x90
.4byte ply_fine
.4byte ply_goto
.4byte ply_patt
.4byte ply_pend
.4byte ply_rept
.4byte ply_fine
.4byte ply_fine
.4byte ply_fine
.4byte ply_fine
.4byte ply_prio
.4byte ply_tempo
.4byte ply_keysh
.4byte ply_voice
.4byte ply_vol
.4byte ply_pan
.4byte ply_bend
.4byte ply_bendr
.4byte ply_lfos
.4byte ply_lfodl
.4byte ply_mod
.4byte ply_modt
.4byte ply_fine
.4byte ply_fine
.4byte ply_tune
.4byte ply_fine
.4byte ply_fine
.4byte ply_fine
.4byte ply_port
.4byte ply_fine
.4byte ply_endtie
.4byte SampleFreqSet
.4byte TrackStop
.4byte FadeOutBody
.4byte TrkVolPitSet
.4byte RealClearChain
.4byte SoundMainBTM
gScaleTable:: @ 089FC754
.incbin "baserom.gba", 0x9FC754, 0x00000B4
gFreqTable:: @ 089FC808
.incbin "baserom.gba", 0x9FC808, 0x0000030
gPcmSamplesPerVBlankTable:: @ 089FC838
.incbin "baserom.gba", 0x9FC838, 0x0000018
gCgbScaleTable:: @ 089FC850
.incbin "baserom.gba", 0x9FC850, 0x0000084
gCgbFreqTable:: @ 089FC8D4
.incbin "baserom.gba", 0x9FC8D4, 0x0000018
gNoiseTable:: @ 089FC8EC
.incbin "baserom.gba", 0x9FC8EC, 0x000003C
gCgb3Vol:: @ 089FC928
.incbin "baserom.gba", 0x9FC928, 0x0000010
gUnk_089FC938:: @ 089FC938
.incbin "baserom.gba", 0x9FC938, 0x0000034
gXcmdTable:: @ 089FC96C
@ replacing .incbin "baserom.gba", 0x009fc96c, 0x30
.4byte ply_xxx
.4byte ply_xwave
.4byte ply_xtype
.4byte ply_xxx
.4byte ply_xatta
.4byte ply_xdeca
.4byte ply_xsust
.4byte ply_xrele
.4byte ply_xiecv
.4byte ply_xiecl
.4byte ply_xleng
.4byte ply_xswee
gUnk_089FC99C:: @ 089FC99C
.incbin "baserom.gba", 0x9FC99C, 0x0000060

View File

@ -1040,6 +1040,7 @@ SECTIONS {
data/data_081320FC.o(.rodata);
data/strings.o(.rodata);
data/sprite_table.o(.rodata);
src/gba/m4a.o(.rodata);
data/data_089FC6C4.o(.rodata);
src/eeprom.o(.rodata);
} >rom

View File

@ -424,6 +424,71 @@ extern SoundInfo gSoundInfo;
#define CGB_NRx2_ENV_DIR_DEC 0x00
#define CGB_NRx2_ENV_DIR_INC 0x08
void* const gMPlayJumpTableTemplate[] = {
ply_fine, ply_goto, ply_patt, ply_pend, ply_rept, ply_fine, ply_fine, ply_fine, ply_fine,
ply_prio, ply_tempo, ply_keysh, ply_voice, ply_vol, ply_pan, ply_bend, ply_bendr, ply_lfos,
ply_lfodl, ply_mod, ply_modt, ply_fine, ply_fine, ply_tune, ply_fine, ply_fine, ply_fine,
ply_port, ply_fine, ply_endtie, SampleFreqSet, TrackStop, FadeOutBody, TrkVolPitSet, RealClearChain, SoundMainBTM,
};
const u8 gScaleTable[] = {
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB,
0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5,
0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
};
const u32 gFreqTable[] = {
2147483648u, 2275179671u, 2410468894u, 2553802834u, 2705659852u, 2866546760u,
3037000500u, 3217589947u, 3408917802u, 3611622603u, 3826380858u, 4053909305u,
};
const u16 gPcmSamplesPerVBlankTable[] = {
96, 132, 176, 224, 264, 304, 352, 448, 528, 608, 672, 704,
};
const u8 gCgbScaleTable[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
0x17, 0x18, 0x19, 0x1A, 0x1B, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x30, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
0x49, 0x4A, 0x4B, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x60, 0x61, 0x62, 0x63,
0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A,
0x7B, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95,
0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB,
};
const s16 gCgbFreqTable[] = {
-2004, -1891, -1785, -1685, -1591, -1501, -1417, -1337, -1262, -1192, -1125, -1062,
};
const u8 gNoiseTable[] = {
0xD7, 0xD6, 0xD5, 0xD4, 0xC7, 0xC6, 0xC5, 0xC4, 0xB7, 0xB6, 0xB5, 0xB4, 0xA7, 0xA6, 0xA5,
0xA4, 0x97, 0x96, 0x95, 0x94, 0x87, 0x86, 0x85, 0x84, 0x77, 0x76, 0x75, 0x74, 0x67, 0x66,
0x65, 0x64, 0x57, 0x56, 0x55, 0x54, 0x47, 0x46, 0x45, 0x44, 0x37, 0x36, 0x35, 0x34, 0x27,
0x26, 0x25, 0x24, 0x17, 0x16, 0x15, 0x14, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
};
const u8 gCgb3Vol[] = {
0x00, 0x00, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x20, 0x20,
};
const u8 gClockTable[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x1C, 0x1E, 0x20, 0x24, 0x28, 0x2A, 0x2C, 0x30, 0x34,
0x36, 0x38, 0x3C, 0x40, 0x42, 0x44, 0x48, 0x4C, 0x4E, 0x50, 0x54, 0x58, 0x5A, 0x5C, 0x60,
};
const XcmdFunc gXcmdTable[] = {
ply_xxx, ply_xwave, ply_xtype, ply_xxx, ply_xatta, ply_xdeca,
ply_xsust, ply_xrele, ply_xiecv, ply_xiecl, ply_xleng, ply_xswee,
};
void nullsub_544();
u32 MidiKeyToFreq(WaveData* wav, u8 key, u8 fineAdjust) {