GB MBC: Fix MBC1 RAM enable bit selection
Vicki Pfau vi@endrift.com
Tue, 16 Jun 2020 20:13:09 -0700
7 files changed,
3 insertions(+),
88 deletions(-)
M
CHANGES
→
CHANGES
@@ -6,6 +6,7 @@ Emulation fixes:
- ARM: Fix ALU reading PC after shifting - ARM: Fix STR storing PC after address calculation - GB MBC: Fix MBC1 mode changing behavior + - GB MBC: Fix MBC1 RAM enable bit selection - GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716) - GBA: Fix timing advancing too quickly in rare cases - GBA BIOS: Implement dummy sound driver calls
D
cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.sym
@@ -1,84 +0,0 @@
-; this file was created with wlalink by ville helin <vhelin@iki.fi>. -; wla symbolic information for "/home/vicki/Scratch/mooneye-gb/tests/build/emulator-only/mbc1/bits_ram_en.gb". - -[labels] -01:48c9 clear_vram -01:487a disable_lcd_safe -01:4880 disable_lcd_safe@wait_ly_0 -01:4898 memcmp -01:48dd memcpy -01:48e6 memset -01:48a6 print_hex4 -01:48d3 print_hex8 -01:48f6 print_inline_string -01:48b2 print_load_font -01:48be print_newline -01:48ef print_string -01:47f0 quit -01:4805 quit@cb_return -01:480a quit@wait_ly_1 -01:4810 quit@wait_ly_2 -01:4816 quit@wait_ly_3 -01:481c quit@wait_ly_4 -01:4826 quit@success -01:484d quit@failure -01:4862 quit@halt -01:4863 quit@halt_execution_0 -01:4866 reset_screen -01:4889 serial_send_byte -01:4000 font -00:0150 main -00:0164 test_round1 -00:018e test_round2 -00:01ae test_round2@expect_enabled -00:01b3 test_round2@expect_disabled -00:01cc test_round2@quit_inline_1 -00:01dd ram_data_enabled -00:01ed ram_data_disabled -00:01fd compare_ram_data -00:0206 fail_round1_disable -00:020d fail_round1_disable@quit_inline_2 -00:0240 fail_round1_enable -00:0247 fail_round1_enable@quit_inline_3 -00:0279 fail_round1_print_test_address -00:0286 fail_round2_disable -00:028d fail_round2_disable@quit_inline_4 -00:02ab fail_round2_expect -00:02b2 fail_round2_expect@quit_inline_5 -00:2000 ram_en_expectations -00:ff80 test_address -00:ff80 test_address_l -00:ff81 test_address_h -00:ff82 ram_en_value - -[definitions] -0000000a _sizeof_clear_vram -0000000f _sizeof_disable_lcd_safe -0000000e _sizeof_memcmp -00000009 _sizeof_memcpy -00000009 _sizeof_memset -0000000c _sizeof_print_hex4 -0000000a _sizeof_print_hex8 -00000006 _sizeof_print_inline_string -0000000c _sizeof_print_load_font -0000000b _sizeof_print_newline -00000007 _sizeof_print_string -00000076 _sizeof_quit -00000014 _sizeof_reset_screen -0000000f _sizeof_serial_send_byte -000007f0 _sizeof_font -00000002 _sizeof_test_address -00000001 _sizeof_test_address_l -00000001 _sizeof_test_address_h -00000001 _sizeof_ram_en_value -00000014 _sizeof_main -0000002a _sizeof_test_round1 -0000004f _sizeof_test_round2 -00000010 _sizeof_ram_data_enabled -00000010 _sizeof_ram_data_disabled -00000009 _sizeof_compare_ram_data -0000003a _sizeof_fail_round1_disable -00000039 _sizeof_fail_round1_enable -0000000d _sizeof_fail_round1_print_test_address -00000025 _sizeof_fail_round2_disable -00001d55 _sizeof_fail_round2_expect
M
cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini
→
cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini
@@ -1,2 +1,2 @@
[testinfo] -fail=1 +skip=360
M
src/gb/mbc.c
→
src/gb/mbc.c
@@ -442,7 +442,7 @@ struct GBMemory* memory = &gb->memory;
int bank = value & 0x1F; switch (address >> 13) { case 0x0: - switch (value) { + switch (value & 0xF) { case 0: memory->sramAccess = false; break;