From 38d9a1c003ef0570610cab9cab70e414aa46db14 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 16 Jun 2020 20:13:09 -0700 Subject: [PATCH] GB MBC: Fix MBC1 RAM enable bit selection --- CHANGES | 4 + .../emulator-only/mbc1/bits_ram_en/test.gb | Bin 65536 -> 0 bytes .../emulator-only/mbc1/bits_ram_en/test.sym | 84 ------------------ src/gb/mbc.c | 2 +- 4 files changed, 5 insertions(+), 85 deletions(-) delete mode 100644 cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.gb delete mode 100644 cinema/gb/mooneye-gb/emulator-only/mbc1/bits_ram_en/test.sym diff --git a/CHANGES b/CHANGES index 6c17edab8..470deede0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +0.8.3: (Future) +Emulation fixes: + - GB MBC: Fix MBC1 RAM enable bit selection + 0.8.2: (2020-06-14) Emulation fixes: - ARM: Fix timing on Thumb shift instructions 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 6117c265b578f74acc6ae49bf2fd4814cea11e5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65536 zcmeI)O-LMP7zglo$JI>yNXLB07=}2zUChQ>F-DTbZl>dOt7BqXkxD^?nl)|`XjMoK z#%?y6lF}SXTkw#8r9CBw9;AUDN+3`qX_mO9&{Il;4KyC4X;adsjcwe%&pwW8rI#KX z{}0aWJoA44<{c3fbGh{$Vy4UY&HY4TwnCH@oe=Mca#11F%9{7ii%oZChvw(zZeP55 z_2|IRrXOeL?p*xj>X&=0w}yv@22Tw>e>85M96WJS^!AD(pW@pic9st9Udmae3ql0M zr#?+o&iOKPZXj24dSN`5T$sq++bb&X`!Y{_-kyU8z}GjC5XoXt(k z*2{I?RTj_Y@|~IIhEtcr#j?6yv|RWZ6-H$PGxIPo>zjGdp1I~`9=Wf{DVeVx6jdT! z{qaYeA8kHz=!fPP8vgvc=Eb#-nkPAP!F?F0P^g1PZujmMGv7nv@bNbXj|l4Xl)^oC zw;nQwhEJMDj-NOjr@|^H{V>q}A6gC$tu$Pm$Ys8B7su%=dwDCxKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=>qj89D(LtAtI`zmr_Y1`wxe)XmqQ3urMqDng;KtgOoqdBP^PLo zc7(%*QCb>}Qj7ln$;o5Ks;YMFDk-6I!!Tu3SJ&27S95*tm#!&PRnw@3rty9H^vj_8 zR9;tS7?x!ib#;_c&;%`u&YXK^uLb4NsCT#U$@LY5`!-G6rZQa*g&Y~7kgij%s=7{n ztEyp89*sJV->>VYnab~fFLxXsgX)LFuA5A9|EZL1CzFcel}DqL(+FHYmHOxS)E^yQ zIbU0rq7>G^Jr~yN=gaHk9;p86az*jh-__-fN9CGUULFi``!i=~t{glbuf={ph19;aH5lBwwa{N-zwr7Z5qeuF*x$DK-SPWrw)A}SZ8vT# z<8n<~`~Ffb3hvK)@Aw{_qfte%thTn67RpG5_HR7i*GD-8ztg;aMTTWLj#r=G7U2%f(9qOG51lifq4#{~USD54?l`nlZJY9z7TPWJ4k~%m`ue6O z8kfp=^}0@T=UmgGQJO(vd>X5^cKdcNr#)Es{zCUAWc2nX5`}Ww1FLi11DeL~EPZFC zQK-IQXj-ETO=Ex0%G)vY{L5visy9Ds)zsA4NuTu83qkpAk@Xe3*Y9P<+)TpFTyX>9 zLONjQZY@2CEq!1v%JYZ$^UC$uWpigq(Wc@mbw@?*wuYcRnmO;DlE;`l-j+vF9;fA@ zZ?i2&ey;hlh5lqZ>ttWb9?TxFDzmorSGIj7?b4vBn>^mFYw4`dn#d~C`)QKq. -; 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/src/gb/mbc.c b/src/gb/mbc.c index be03f1511..059e7c0a2 100644 --- a/src/gb/mbc.c +++ b/src/gb/mbc.c @@ -425,7 +425,7 @@ void _GBMBC1(struct GB* gb, uint16_t address, uint8_t value) { int stride = 1 << memory->mbcState.mbc1.multicartStride; switch (address >> 13) { case 0x0: - switch (value) { + switch (value & 0xF) { case 0: memory->sramAccess = false; break;