Permalink
Browse files

GB: Fix GBC games running on GBA with BIOS

GBC games can detect if they are running on a GBA by checking if the
low bit of register B is set to 1.  B is set in `GBSkipBIOS`, but
B was not updated when loading a real BIOS.  Load 1 into B after
unmapping the BIOS if the model is set to GBA.
  • Loading branch information...
dobyrch authored and endrift committed Mar 29, 2018
1 parent f28e20d commit 36de596fdbe9190a52ab40318a02b9d37806ce35
Showing with 4 additions and 0 deletions.
  1. +4 −0 src/gb/gb.c
View
@@ -555,6 +555,10 @@ void GBUnmapBIOS(struct GB* gb) {
free(gb->memory.romBase);
gb->memory.romBase = gb->memory.rom;
}
+ // XXX: Force AGB registers for AGB-mode
+ if (gb->model == GB_MODEL_AGB && gb->cpu->pc == 0x100) {
+ gb->cpu->b = 1;
+ }
}
void GBDetectModel(struct GB* gb) {

0 comments on commit 36de596

Please sign in to comment.