Version 4.7 - see readme for details. This includes a hot-fix for B-17 bomber so it doesn't flash when in Pilot view.

This commit is contained in:
Dave Bernazzani 2024-01-19 09:36:05 -05:00
parent 15a1746200
commit c08c5f6dc0
4 changed files with 28 additions and 6 deletions

Binary file not shown.

View File

@ -69,6 +69,7 @@ UINT16 mobBuffers[8][128] __attribute__((section(".dtcm")));
UINT8 fgcolor __attribute__((section(".dtcm"))) = 0;
UINT8 bgcolor __attribute__((section(".dtcm"))) = 0;
UINT8 bRenderBlanks = TRUE; // Only B-17 Bomber sets this to false... still debugging it.
// Movable objects
MOB mobs[8] __attribute__((section(".dtcm")));
@ -213,13 +214,20 @@ ITCM_CODE INT32 AY38900::tick(INT32 minimum) {
case MODE_START_ACTIVE_DISPLAY:
bCP1610_PIN_IN_INTRM = TRUE;
bHandleInterrupts = (!bCP1610_PIN_IN_BUSRQ || (I && !bCP1610_PIN_IN_INTRM));
//if the display is not enabled, skip the rest of the modes
if (!displayEnabled) {
if (previousDisplayEnabled) {
if (previousDisplayEnabled)
{
if (bRenderBlanks)
{
UINT32 borderColor32 = color_repeat_table[borderColor];
UINT32 *ptr = (UINT32 *)pixelBuffer;
//render a blank screen
for (int x = 0; x < 160*192; x++)
pixelBuffer[x] = borderColor;
for (int x = 0; x < (160*192)>>2; x++)
{
*ptr++ = borderColor32;
}
}
}
previousDisplayEnabled = FALSE;
mode = MODE_VBLANK;

View File

@ -343,6 +343,16 @@ Rip* Rip::LoadBinCfg(const CHAR* configFile, UINT32 crc, size_t size)
}
}
extern UINT8 bRenderBlanks;
bRenderBlanks = TRUE;
// Special handling for B-17 Bomber
if (db_entry->game_crc == 0x8AD19AB3)
{
bRenderBlanks = FALSE;
}
// Now add the required peripherals...
if (db_entry->bIntellivoice)
{
@ -710,6 +720,9 @@ Rip* Rip::LoadRom(const CHAR* filename)
// Load the ECS if asked for...
if (bUseECS) rip->AddPeripheralUsage("ECS", (bUseECS == 3) ? PERIPH_OPTIONAL:PERIPH_REQUIRED);
extern UINT8 bRenderBlanks;
bRenderBlanks = TRUE;
return rip;
}

View File

@ -82,6 +82,7 @@ BOOL LoadCart(const CHAR* filename)
slow_ram8_idx = 0; // Nothing uses this internally so we can reset to 0
fast_ram16_idx = 0x200; // 512 bytes is more than enough for internal Inty RAM so this is safely above the threshold
const CHAR* extStart = filename + strlen(filename) - 4;
if (strcmpi(extStart, ".int") == 0 || strcmpi(extStart, ".bin") == 0)