Start Mapper 197 (based on MMC3) and sort out the use of this vs Mapper 91.

This commit is contained in:
adelikat 2012-08-05 21:34:00 +00:00
parent 6a63f2f197
commit ea8d47bcc0
3 changed files with 4 additions and 67 deletions
BizHawk.Emulation
BizHawk.Emulation.csproj
Consoles/Nintendo/NES/Boards
BizHawk.MultiClient/output

View File

@ -200,6 +200,7 @@
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper191.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper192.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper194.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper197.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper205.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\Mapper245.cs" />
<Compile Include="Consoles\Nintendo\NES\Boards\MMC3_family\MMC3.cs" />

View File

@ -8,70 +8,8 @@ namespace BizHawk.Emulation.Consoles.Nintendo
class Mapper91 : NES.NESBoardBase
{
/*
* Here are Disch's original notes:
========================
= Mapper 091 =
========================
Example Game:
--------------------------
Street Fighter 3
Notes:
---------------------------
Regs exist at $6000-7FFF, so this mapper has no SRAM.
Registers:
---------------------------
Range,Mask: $6000-7FFF, $7003
$6000-6003: CHR Regs
$7000-7001: [.... PPPP] PRG Regs
$7002 [.... ....] IRQ Stop
$7003 [.... ....] IRQ Start
CHR Setup:
---------------------------
$0000 $0400 $0800 $0C00 $1000 $1400 $1800 $1C00
+---------------+---------------+---------------+---------------+
| $6000 | $6001 | $6002 | $6003 |
+---------------+---------------+---------------+---------------+
PRG Setup:
---------------------------
$8000 $A000 $C000 $E000
+-------+-------+-------+-------+
| $7000 | $7001 | { -2} | { -1} |
+-------+-------+-------+-------+
IRQs:
---------------------------
IRQs on this mapper seem to behave exactly like MMC3 -- except it's fixed so that it will only fire after 8
scanlines. This is easily emulatable by using MMC3 logic.
Write to $7002/$7003 can translate directly to write(s) to the following MMC3 registers:
on $7002 write:
a) write to $E000
on $7003 write:
a) write $07 to $C000
b) write to $C001
c) write to $E001
For details on MMC3 IRQ operation, see mapper 004
*Note: Street Fighter III (Unl) is actually mapper 197. However variations such as Street Fighter III (9 Fighter) and Mari Street Fighter III use this mapper
//http://wiki.nesdev.com/w/index.php/INES_Mapper_091
*/
ByteBuffer chr_regs_2k = new ByteBuffer(4);
@ -84,7 +22,6 @@ namespace BizHawk.Emulation.Consoles.Nintendo
switch (Cart.board_type)
{
case "MAPPER091":
case "MAPPER197": //GoodNES reports 197 instead of 91
break;
default:
return false;
@ -164,7 +101,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo
{
if (addr < 0x2000)
{
int bank_2k = (addr >> 11);
int bank_2k = (addr >> 11) - 1;
bank_2k = chr_regs_2k[bank_2k];
bank_2k &= chr_bank_mask_2k;
return VROM[(bank_2k * 0x800) + addr];

View File

@ -114,7 +114,6 @@ sha1:6DF9AECF5787C0833B0F05A9A83D0E58A6153977 Rumblestation 15-in-1 (Unl) NES
sha1:E4BFD5AB3C3649DBD36B9A7280CF431641BCBCEC Peek-A-Boo Poker (Unl) NES board=NES-CNROM;PRG=32;CHR=24;WRAM=0
sha1:39294394A0631708F58397371CE14075AE1FB7E6 Peek-A-Boo Poker (Panesian) NES board=NES-CNROM;PRG=32;CHR=64;WRAM=0
sha1:C87E7E6A68DD9C7E24652CD2C7D390A14E8ADF04 Lagrange Point NES board=KONAMI-VRC-7;PRG=512;CHR=0;WRAM=8;PRAM=8;PCB=352402
sha1:E05B0FCA7EA2F6433FA06DD204F7265417B91BBE Street Fighter III NES board=MAPPER091;PRG=128;CHR=512
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------