From 2c35a85fa48b0c500ac1962792a0e70b6bb33e87 Mon Sep 17 00:00:00 2001 From: goyuken Date: Sun, 7 Jun 2015 16:16:11 +0000 Subject: [PATCH] gambatte: fix behavior for MBC5 when bank == 0 is written. Thanks Dabomstew for pointing this out. --- libgambatte/src/mem/cartridge.cpp | 2 +- output/dll/libgambatte.dll | Bin 151040 -> 151040 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/libgambatte/src/mem/cartridge.cpp b/libgambatte/src/mem/cartridge.cpp index ac16d17262..6ce6795e8a 100644 --- a/libgambatte/src/mem/cartridge.cpp +++ b/libgambatte/src/mem/cartridge.cpp @@ -431,7 +431,7 @@ class Mbc5 : public DefaultMbc { unsigned char rambank; bool enableRam; - static unsigned adjustedRombank(const unsigned bank) { return bank ? bank : 1; } + static unsigned adjustedRombank(const unsigned bank) { return bank; } void setRambank() const { memptrs.setRambank(enableRam ? MemPtrs::READ_EN | MemPtrs::WRITE_EN : 0, rambank & (rambanks(memptrs) - 1)); } void setRombank() const { memptrs.setRombank(adjustedRombank(rombank & (rombanks(memptrs) - 1))); } diff --git a/output/dll/libgambatte.dll b/output/dll/libgambatte.dll index 37fb65562b78fe6d18cb50724348770d08ce1cc1..9d315b33e9ab7f43ccecafe9faa5f9d5d60f43e6 100644 GIT binary patch delta 6290 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 delta 6334 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 K$NSNJ{r?BQgPE`Z