Merge branch 'master' into rateless_apu
This commit is contained in:
commit
c40b86d4a4
@ -1336,7 +1336,8 @@ void GB_cpu_run(GB_gameboy_t *gb)
|
|||||||
bool halt_bug = false;
|
bool halt_bug = false;
|
||||||
|
|
||||||
if (interrupt) {
|
if (interrupt) {
|
||||||
halt_bug = gb->halted && !gb->is_cgb; /* Todo: Does this bug happen on a CGB? */
|
/* Despite what some online documentations say, the HALT bug also happens on a CGB, in both CGB and DMG modes. */
|
||||||
|
halt_bug = gb->halted;
|
||||||
gb->halted = false;
|
gb->halted = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,15 +89,29 @@ static void vblank(GB_gameboy_t *gb)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frames == test_length) {
|
if (frames >= test_length ) {
|
||||||
FILE *f = fopen(bmp_filename, "wb");
|
bool is_screen_blank = false;
|
||||||
fwrite(&bmp_header, 1, sizeof(bmp_header), f);
|
if (!(gb->io_registers[GB_IO_LCDC] & 0x80)) { /* LCD is off */
|
||||||
fwrite(&bitmap, 1, sizeof(bitmap), f);
|
is_screen_blank = true;
|
||||||
fclose(f);
|
}
|
||||||
if (!gb->boot_rom_finished) {
|
else if(!gb->cgb_mode) { /* BG can't be disabled in CGB mode */
|
||||||
GB_log(gb, "Boot ROM did not finish.\n");
|
is_screen_blank =!(gb->io_registers[GB_IO_LCDC] & (gb->is_cgb? 3 : 0x23));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Let the test run for an extra 8 frames if the screen is off/disabled */
|
||||||
|
if (!is_screen_blank || frames >= test_length + 8) {
|
||||||
|
FILE *f = fopen(bmp_filename, "wb");
|
||||||
|
fwrite(&bmp_header, 1, sizeof(bmp_header), f);
|
||||||
|
fwrite(&bitmap, 1, sizeof(bitmap), f);
|
||||||
|
fclose(f);
|
||||||
|
if (!gb->boot_rom_finished) {
|
||||||
|
GB_log(gb, "Boot ROM did not finish.\n");
|
||||||
|
}
|
||||||
|
if (is_screen_blank) {
|
||||||
|
GB_log(gb, "Game probably stuck with blank screen. \n");
|
||||||
|
}
|
||||||
|
running = false;
|
||||||
}
|
}
|
||||||
running = false;
|
|
||||||
}
|
}
|
||||||
else if (frames == test_length - 1) {
|
else if (frames == test_length - 1) {
|
||||||
gb->disable_rendering = false;
|
gb->disable_rendering = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user