GB Memory: Fix initial WRAM pattern when skipping BIOS in GBC mode (fixes #2704)
This commit is contained in:
parent
2cab5f1705
commit
0418ae33d5
1
CHANGES
1
CHANGES
@ -18,6 +18,7 @@ Features:
|
|||||||
Emulation fixes:
|
Emulation fixes:
|
||||||
- ARM: Add framework for coprocessor support
|
- ARM: Add framework for coprocessor support
|
||||||
- GB Memory: Initialize HRAM when skipping BIOS in GBC mode (fixes mgba.io/i/3420)
|
- GB Memory: Initialize HRAM when skipping BIOS in GBC mode (fixes mgba.io/i/3420)
|
||||||
|
- GB Memory: Fix initial WRAM pattern when skipping BIOS in GBC mode (fixes mgba.io/i/2704)
|
||||||
- GB Serialize: Add missing Pocket Cam state to savestates
|
- GB Serialize: Add missing Pocket Cam state to savestates
|
||||||
- GB Video: Implement DMG-style sprite ordering
|
- GB Video: Implement DMG-style sprite ordering
|
||||||
- GB Video: Fix window enable edge case (fixes mgba.io/i/2640)
|
- GB Video: Fix window enable edge case (fixes mgba.io/i/2640)
|
||||||
|
@ -184,7 +184,18 @@ void GBMemoryReset(struct GB* gb) {
|
|||||||
uint32_t* base = (uint32_t*) gb->memory.wram;
|
uint32_t* base = (uint32_t*) gb->memory.wram;
|
||||||
size_t i;
|
size_t i;
|
||||||
uint32_t pattern = 0;
|
uint32_t pattern = 0;
|
||||||
|
// Banks 0, 1, 3, 6, and 7 are cleared with this pattern
|
||||||
for (i = 0; i < GB_SIZE_WORKING_RAM / 4; i += 4) {
|
for (i = 0; i < GB_SIZE_WORKING_RAM / 4; i += 4) {
|
||||||
|
if ((i & 0x1FFF) == 0x800) {
|
||||||
|
// Skip bank 2
|
||||||
|
i += 0x3FC;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ((i & 0x1FFF) == 0x1000) {
|
||||||
|
// Skip banks 5 and 5
|
||||||
|
i += 0x7FC;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if ((i & 0x1FF) == 0) {
|
if ((i & 0x1FF) == 0) {
|
||||||
pattern = ~pattern;
|
pattern = ~pattern;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user