mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 07:11:54 +00:00
Some DOSBox Raw OPL v2 indices were off by one.
This caused access violation errors on perfectly fine DRO files. For reference, scoredata[20] is the hardware type (OPL2, dual OPL2, or OPL3).
This commit is contained in:
parent
d0782d779d
commit
c7301a0fbb
1 changed files with 10 additions and 7 deletions
|
@ -104,16 +104,19 @@ fail: delete[] scoredata;
|
|||
}
|
||||
else if (((DWORD *)scoredata)[2] == MAKE_ID(2,0,0,0))
|
||||
{
|
||||
if (scoredata[20] != 0)
|
||||
{
|
||||
Printf("Unsupported DOSBox Raw OPL format %d\n", scoredata[20]);
|
||||
goto fail;
|
||||
}
|
||||
bool okay = true;
|
||||
if (scoredata[21] != 0)
|
||||
{
|
||||
Printf("Unsupported DOSBox Raw OPL compression %d\n", scoredata[21]);
|
||||
goto fail;
|
||||
Printf("Unsupported DOSBox Raw OPL format %d\n", scoredata[20]);
|
||||
okay = false;
|
||||
}
|
||||
if (scoredata[22] != 0)
|
||||
{
|
||||
Printf("Unsupported DOSBox Raw OPL compression %d\n", scoredata[21]);
|
||||
okay = false;
|
||||
}
|
||||
if (!okay)
|
||||
goto fail;
|
||||
RawPlayer = DosBox2;
|
||||
SamplesPerTick = OPL_SAMPLE_RATE / 1000;
|
||||
int headersize = 0x1A + scoredata[0x19];
|
||||
|
|
Loading…
Reference in a new issue