You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So the correct flow for getting the start of the data should be (excluding read checks):
uint32_t version = container.readUint32(0x08);
size_t csr = 0x40;
if (version >= 0x150)
csr += container.readUint32(0x34);
Some examples of VGM files that don't get read correctly:
YU-NO: Imperial City
VGM version is 0x170, VGM data offset is 0xAC. Real start of VGM data is at 0xE0.
A YM2608 port 0 write (command 0x56) starts at 0xFE, 0x100 has the last argument to that command
-> 0x70, which is being interpreted as a 1-sample wait. All the parsing afterwards is likely very wrong.
Briganty: Coda "BRIGANTY" (Ending)
VGM version is 0x170, VGM data offset is 0xAC. Real start of VGM data is at 0xE0.
A YM2608 port 0 write (command 0x56) starts at 0xFE, 0x100 has the last argument to that command
-> 0x00, which causes the VGM parser to abort due to an unknown command
The text was updated successfully, but these errors were encountered:
The VGM data stream is currently hardcoded to be expected at
0x100
:YM2608-Tone-Editor/src/io/vgm_io.cpp
Lines 25 to 27 in 0a076ea
This is a bad assumption. The VGM specification says:
So the correct flow for getting the start of the data should be (excluding read checks):
Some examples of VGM files that don't get read correctly:
YU-NO: Imperial City
VGM version is
0x170
, VGM data offset is0xAC
. Real start of VGM data is at0xE0
.A YM2608 port 0 write (command
0x56
) starts at0xFE
,0x100
has the last argument to that command->
0x70
, which is being interpreted as a 1-sample wait. All the parsing afterwards is likely very wrong.Briganty: Coda "BRIGANTY" (Ending)
VGM version is
0x170
, VGM data offset is0xAC
. Real start of VGM data is at0xE0
.A YM2608 port 0 write (command
0x56
) starts at0xFE
,0x100
has the last argument to that command->
0x00
, which causes the VGM parser to abort due to an unknown commandThe text was updated successfully, but these errors were encountered: