sanity checking for YMZ280BROM[SIZE]
This commit is contained in:
parent
2b07ca39a4
commit
97bf951b0f
|
@ -460,7 +460,8 @@ static INT32 LoadRoms()
|
|||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM + 0x000000, 9, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x200000, 10, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0x400000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 11, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -492,7 +492,8 @@ static INT32 LoadRoms()
|
|||
|
||||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM, 11, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0x400000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 12, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -446,7 +446,8 @@ static INT32 LoadRoms()
|
|||
NibbleSwap2(CaveTileROM[1], 0x200000);
|
||||
|
||||
BurnLoadRom(YMZ280BROM, 6, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0x400000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 7, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -674,7 +674,7 @@ static INT32 LoadRoms()
|
|||
BurnLoadRom(YMZ280BROM + 0x000000, 7, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x400000, 8, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x800000, 9, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0xc00000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -504,7 +504,8 @@ static INT32 LoadRoms()
|
|||
|
||||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM, 9, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0x400000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 14, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -533,6 +533,7 @@ static INT32 LoadRoms()
|
|||
|
||||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM, 4, 1);
|
||||
YMZ280BROMSIZE = 0x100000;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -613,6 +614,7 @@ static INT32 crushermLoadRoms()
|
|||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM + 0x000000, 4, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x100000, 5, 1);
|
||||
YMZ280BROMSIZE = 0x200000;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -441,7 +441,8 @@ static INT32 LoadRoms()
|
|||
|
||||
// Load YMZ280B data
|
||||
BurnLoadRom(YMZ280BROM, 4, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0x200000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 5, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -431,7 +431,8 @@ static INT32 LoadRoms()
|
|||
BurnLoadRom(YMZ280BROM + 0x000000, 9, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x400000, 10, 1);
|
||||
BurnLoadRom(YMZ280BROM + 0x800000, 11, 1);
|
||||
|
||||
YMZ280BROMSIZE = 0xc00000;
|
||||
|
||||
BurnLoadRom(DefaultEEPROM, 12, 1);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -8,6 +8,7 @@ static INT32 nYMZ280BSampleRate;
|
|||
bool bESPRaDeMixerKludge = false;
|
||||
|
||||
UINT8* YMZ280BROM;
|
||||
UINT32 YMZ280BROMSIZE = 0xffffff; // 16meg max addressable rom size
|
||||
void (*pYMZ280BRAMWrite)(INT32 offset, INT32 nValue) = NULL;
|
||||
INT32 (*pYMZ280BRAMRead)(INT32 offset) = NULL;
|
||||
|
||||
|
@ -192,6 +193,7 @@ void YMZ280BExit()
|
|||
pYMZ280BRAMWrite = NULL;
|
||||
pYMZ280BRAMRead = NULL;
|
||||
bESPRaDeMixerKludge = false;
|
||||
YMZ280BROMSIZE = 0xffffff;
|
||||
|
||||
DebugSnd_YMZ280BInitted = 0;
|
||||
}
|
||||
|
@ -253,10 +255,20 @@ inline static void RampChannel()
|
|||
#endif
|
||||
}
|
||||
|
||||
UINT8 ymz280b_read_memory(UINT32 offset)
|
||||
{
|
||||
if (offset < YMZ280BROMSIZE) {
|
||||
return YMZ280BROM[offset];
|
||||
} else {
|
||||
bprintf(0, _T("ymz280b bad offset: %d!! (max. size: %d)\n"), offset, YMZ280BROMSIZE);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
inline static void decode_adpcm()
|
||||
{
|
||||
// Get next value & compute delta
|
||||
nDelta = YMZ280BROM[channelInfo->nPosition >> 1];
|
||||
nDelta = ymz280b_read_memory(channelInfo->nPosition >> 1);
|
||||
if (channelInfo->nPosition & 1) {
|
||||
nDelta &= 0x0F;
|
||||
} else {
|
||||
|
@ -287,7 +299,7 @@ inline static void decode_adpcm()
|
|||
|
||||
inline static void decode_pcm8()
|
||||
{
|
||||
nDelta = YMZ280BROM[channelInfo->nPosition >> 1];
|
||||
nDelta = ymz280b_read_memory(channelInfo->nPosition >> 1);
|
||||
|
||||
channelInfo->nSample = (INT8)nDelta * 256;
|
||||
channelInfo->nPosition+=2;
|
||||
|
@ -295,7 +307,7 @@ inline static void decode_pcm8()
|
|||
|
||||
inline static void decode_pcm16()
|
||||
{
|
||||
nDelta = (INT16)((YMZ280BROM[channelInfo->nPosition / 2 + 1] << 8) + YMZ280BROM[channelInfo->nPosition / 2]);
|
||||
nDelta = (INT16)((ymz280b_read_memory(channelInfo->nPosition / 2 + 1) << 8) + ymz280b_read_memory(channelInfo->nPosition / 2));
|
||||
|
||||
channelInfo->nSample = nDelta;
|
||||
channelInfo->nPosition+=4;
|
||||
|
@ -382,7 +394,7 @@ inline static void RenderADPCMLoop_Linear()
|
|||
|
||||
do {
|
||||
// Check for end of sample
|
||||
if (channelInfo->nPosition == channelInfo->nLoopStop) {
|
||||
if (channelInfo->nPosition >= channelInfo->nLoopStop) {
|
||||
channelInfo->nStep = channelInfo->nLoopStep;
|
||||
channelInfo->nSample = channelInfo->nLoopSample;
|
||||
channelInfo->nPosition = channelInfo->nLoopStart;
|
||||
|
@ -569,7 +581,7 @@ void YMZ280BWriteRegister(UINT8 nValue)
|
|||
|
||||
if (YMZ280BChannelInfo[nWriteChannel].nMode > 1) {
|
||||
#ifdef DEBUG
|
||||
// bprintf(0,_T("Sample Start: %08X - Stop: %08X.\n"),YMZ280BChannelInfo[nWriteChannel].nSampleStart, YMZ280BChannelInfo[nWriteChannel].nSampleStop);
|
||||
//bprintf(0,_T("Sample Start: %08X - Stop: %08X.\n"),YMZ280BChannelInfo[nWriteChannel].nSampleStart, YMZ280BChannelInfo[nWriteChannel].nSampleStop);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ UINT32 YMZ280BReadStatus();
|
|||
UINT32 YMZ280BReadRAM();
|
||||
|
||||
extern UINT8* YMZ280BROM;
|
||||
extern UINT32 YMZ280BROMSIZE;
|
||||
extern bool bESPRaDeMixerKludge;
|
||||
|
||||
// external memory handlers
|
||||
|
|
Loading…
Reference in New Issue