mapper-related updates and fixes (#491)

* m116: Fix support for Huang-2 chip

* Provide 8K CHR ram if no CHR rom/ram is provided due to bad headers

* m15: Implement CHR write-protect

* Update Namco 106

- Cleanup save state struct
- Implement nametable mirroring
- fix sound issue (fceux)

Co-authored-by: negativeExponent <negativeExponent@users.noreply.github.com>
This commit is contained in:
negativeExponent
2022-02-01 15:14:16 +08:00
committed by GitHub
parent e0200b03c8
commit 85ace685b9
6 changed files with 76 additions and 45 deletions

View File

@@ -63,11 +63,19 @@ static void Sync(void) {
setprg8(0xC000, preg[2]);
setprg8(0xE000, preg[3]);
setmirror(((latched >> 6) & 1) ^ 1);
setchr8(0);
}
static DECLFW(M15Write) {
latchea = A;
latched = V;
/* cah4e3 02.10.19 once again, there may be either two similar mapper 15 exist. the one for 110in1 or 168in1 carts with complex multi game features.
and another implified version for subor/waixing chinese originals and hacks with no different modes, working only in mode 0 and which does not
expect there is any CHR write protection. protecting CHR writes only for mode 3 fixes the problem, all roms may be run on the same source again. */
if((latchea & 3) == 3)
SetupCartCHRMapping(0, CHRptr[0], 0x2000, 0);
else
SetupCartCHRMapping(0, CHRptr[0], 0x2000, 1);
Sync();
}