all repos — mgba @ 3ceadd4ccdb70574bc09d1a1270ab5d9341de776

mGBA Game Boy Advance Emulator

GB Memory: Initialize RAM pattern for GBC
Jeffrey Pfau jeffrey@endrift.com
Thu, 22 Sep 2016 06:49:32 -0700
commit

3ceadd4ccdb70574bc09d1a1270ab5d9341de776

parent

05edd2fe52a2f50ba3774c06175cd176fe328984

2 files changed, 15 insertions(+), 0 deletions(-)

jump to
M CHANGESCHANGES

@@ -14,6 +14,7 @@ - GB SIO: Don't auto-clock external shift clock

Misc: - All: Only update version info if needed - FFmpeg: Encoding cleanup + - GB Memory: Initialize RAM pattern for GBC 0.5.0: (2016-09-19) Features:
M src/gb/memory.csrc/gb/memory.c

@@ -89,6 +89,20 @@ if (gb->memory.wram) {

mappedMemoryFree(gb->memory.wram, GB_SIZE_WORKING_RAM); } gb->memory.wram = anonymousMemoryMap(GB_SIZE_WORKING_RAM); + if (gb->model >= GB_MODEL_CGB) { + uint32_t* base = (uint32_t*) gb->memory.wram; + size_t i; + uint32_t pattern = 0; + for (i = 0; i < GB_SIZE_WORKING_RAM / 4; i += 4) { + if ((i & 0x1FF) == 0) { + pattern = ~pattern; + } + base[i + 0] = pattern; + base[i + 1] = pattern; + base[i + 2] = ~pattern; + base[i + 3] = ~pattern; + } + } GBMemorySwitchWramBank(&gb->memory, 1); gb->memory.romBank = &gb->memory.rom[GB_SIZE_CART_BANK0]; gb->memory.currentBank = 1;