diff --git a/CHANGES b/CHANGES index f136763a2..0cb5eaafa 100644 --- a/CHANGES +++ b/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 diff --git a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/config.ini b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/config.ini deleted file mode 100644 index 7ddee425b..000000000 --- a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/config.ini +++ /dev/null @@ -1,2 +0,0 @@ -[testinfo] -fail=1 diff --git a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.gb b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.gb deleted file mode 100644 index 6117c265b..000000000 Binary files a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.gb and /dev/null differ diff --git a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.sym b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.sym deleted file mode 100644 index 3abf1f926..000000000 --- a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.sym +++ /dev/null @@ -1,84 +0,0 @@ -; this file was created with wlalink by ville helin . -; 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 diff --git a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/baseline_0000.png b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/baseline_0000.png new file mode 100644 index 000000000..f9e5e47b5 Binary files /dev/null and b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/baseline_0000.png differ diff --git a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini index 7ddee425b..7f44b56a9 100644 --- a/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini +++ b/cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ramg/config.ini @@ -1,2 +1,2 @@ [testinfo] -fail=1 +skip=360 diff --git a/src/gb/mbc.c b/src/gb/mbc.c index 8c6e3b2cf..8417c2102 100644 --- a/src/gb/mbc.c +++ b/src/gb/mbc.c @@ -442,7 +442,7 @@ void _GBMBC1(struct GB* gb, uint16_t address, uint8_t value) { int bank = value & 0x1F; switch (address >> 13) { case 0x0: - switch (value) { + switch (value & 0xF) { case 0: memory->sramAccess = false; break;