Don't enable SCAT shadow RAM if SCAT configured for less than 1 MB of
low memory. Fixes Hyundai Super-286TR with 1 MB RAM configured.
This commit is contained in:
parent
a89347d415
commit
142301adbf
1 changed files with 13 additions and 3 deletions
16
src/scat.c
16
src/scat.c
|
|
@ -78,10 +78,19 @@ void scat_shadow_state_update()
|
||||||
{
|
{
|
||||||
int i, val;
|
int i, val;
|
||||||
|
|
||||||
for (i = 0; i < 24; i++)
|
if ((scat_regs[SCAT_DRAM_CONFIGURATION] & 0xF) < 4)
|
||||||
{
|
{
|
||||||
val = ((scat_regs[SCAT_SHADOW_RAM_ENABLE_1 + (i >> 3)] >> (i & 7)) & 1) ? MEM_READ_INTERNAL | MEM_WRITE_INTERNAL : MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL;
|
/*Less than 1MB low memory, no shadow RAM available*/
|
||||||
mem_set_mem_state((i + 40) << 14, 0x4000, val);
|
for (i = 0; i < 24; i++)
|
||||||
|
mem_set_mem_state((i + 40) << 14, 0x4000, MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i = 0; i < 24; i++)
|
||||||
|
{
|
||||||
|
val = ((scat_regs[SCAT_SHADOW_RAM_ENABLE_1 + (i >> 3)] >> (i & 7)) & 1) ? MEM_READ_INTERNAL | MEM_WRITE_INTERNAL : MEM_READ_EXTERNAL | MEM_WRITE_EXTERNAL;
|
||||||
|
mem_set_mem_state((i + 40) << 14, 0x4000, val);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
flushmmucache();
|
flushmmucache();
|
||||||
|
|
@ -1043,6 +1052,7 @@ void scat_write(uint16_t port, uint8_t val, void *priv)
|
||||||
break;
|
break;
|
||||||
case SCAT_DRAM_CONFIGURATION:
|
case SCAT_DRAM_CONFIGURATION:
|
||||||
scat_map_update = 1;
|
scat_map_update = 1;
|
||||||
|
scat_shadow_update = 1;
|
||||||
|
|
||||||
if((scat_regs[SCAT_VERSION] & 0xF0) == 0)
|
if((scat_regs[SCAT_VERSION] & 0xF0) == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue