mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2024-11-14 14:55:12 +01:00
This commit is contained in:
commit
79d5df0a67
@ -33,7 +33,8 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke)
|
|||||||
* fixed incorrect masking of Level 3 (GFX) interrupts (spurious freeze during Japanese BIOS intro)
|
* fixed incorrect masking of Level 3 (GFX) interrupts (spurious freeze during Japanese BIOS intro)
|
||||||
* fixed H-INT vector handling when using Mode 1
|
* fixed H-INT vector handling when using Mode 1
|
||||||
* fixed access to "write-only" communication flags (verified on real hardware by Notaz)
|
* fixed access to "write-only" communication flags (verified on real hardware by Notaz)
|
||||||
* fixed pending level 1 interrupts when GFX interrupt is disabled (fixes random freezes out of "Batman Returns" option menu)
|
* fixed access to Sub-CPU "read-only" communication registers (fixes Round 5 Boss freeze in Streets of Rage / Sega Classics Arcade Collection)
|
||||||
|
* fixed pending level 1 interrupts when GFX interrupt is disabled (fixes random freezes when exiting "Batman Returns" option menu)
|
||||||
* fixed CDD seek command again (Final Fight CD freeze with model 2 BIOS)
|
* fixed CDD seek command again (Final Fight CD freeze with model 2 BIOS)
|
||||||
* optimized Sub-CPU / Main-CPU synchronization
|
* optimized Sub-CPU / Main-CPU synchronization
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
@ -1010,11 +1010,18 @@ static void scd_write_byte(unsigned int address, unsigned int data)
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* SUB-CPU communication words */
|
/* SUB-CPU communication words */
|
||||||
if ((address & 0xf0) == 0x20)
|
if ((address & 0x1f0) == 0x20)
|
||||||
{
|
{
|
||||||
s68k_poll_sync(1 << ((address - 0x10) & 0x1f));
|
s68k_poll_sync(1 << ((address - 0x10) & 0x1f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* MAIN-CPU communication words */
|
||||||
|
else if ((address & 0x1f0) == 0x10)
|
||||||
|
{
|
||||||
|
/* read-only (Sega Classic Arcade Collection) */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* default registers */
|
/* default registers */
|
||||||
if (address & 1)
|
if (address & 1)
|
||||||
{
|
{
|
||||||
@ -1297,11 +1304,18 @@ static void scd_write_word(unsigned int address, unsigned int data)
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* SUB-CPU communication words */
|
/* SUB-CPU communication words */
|
||||||
if ((address & 0xf0) == 0x20)
|
if ((address & 0x1f0) == 0x20)
|
||||||
{
|
{
|
||||||
s68k_poll_sync(3 << ((address - 0x10) & 0x1e));
|
s68k_poll_sync(3 << ((address - 0x10) & 0x1e));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* MAIN-CPU communication words */
|
||||||
|
else if ((address & 0x1f0) == 0x10)
|
||||||
|
{
|
||||||
|
/* read-only (Sega Classic Arcade Collection) */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* default registers */
|
/* default registers */
|
||||||
scd.regs[(address >> 1) & 0xff].w = data;
|
scd.regs[(address >> 1) & 0xff].w = data;
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user