INES Mapper 188: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Hedge more)
(update from naruko's notes)
Line 1: Line 1:
{{DEFAULTSORT:188}}[[category:iNES Mappers]]
{{DEFAULTSORT:188}}[[category:iNES Mappers]][[category:Mappers with bus conflicts]]
[[iNES Mapper 188]] describes the board used for Bandai's Karaoke Studio. This game, like [[iNES Mapper 068#.24F000-.24FFFF:_PRG_bank_at_.248000|Nantettatte!! Baseball]] additionally supports an external ROM that allows augmenting the original game.
[[iNES Mapper 188]] describes the board used for Bandai's Karaoke Studio. This game, like [[iNES Mapper 068#.24F000-.24FFFF:_PRG_bank_at_.248000|Nantettatte!! Baseball]] additionally supports an external ROM that allows augmenting the original game.


Line 8: Line 8:
* CHR capacity: 8 KiB RAM
* CHR capacity: 8 KiB RAM
* CHR bank size: Not bankswitched
* CHR bank size: Not bankswitched
* Nametable [[mirroring]]: mapper-selectable, details unknown
* Nametable [[mirroring]]: Controlled by mapper
* Subject to [[bus conflict]]s: Probably not? ''(The game includes and uses a bus conflict prevention table. It's unclear whether this is because the original game was going to be released on UNROM and desperately ported due to a late-breaking flaw, or it actually needs it)''
* Subject to [[bus conflict]]s: Yes
 
The [[Bandai M60001-0115P pinout|mapper IC]] used here has Mitsubishi's part number for custom orders: M60001.


== Registers ==
== Registers ==
The mapper IC is connected to CPU A12-A15, so any register must be mapped over at least a 4096 address range, and maybe more. It's not clear why CPU A12 is connected at all; the functionality described here doesn't seem to use it.
=== $6000-$7FFF: Microphone input ===
 
=== $6xxx-????: Microphone input ===
The microphone for this game is permanently tethered to the cartridge, and contains two buttons labeled "A" (closer to the microphone itself) and "B" (closer to the cord).
The microphone for this game is permanently tethered to the cartridge, and contains two buttons labeled "A" (closer to the microphone itself) and "B" (closer to the cord).


Line 20: Line 20:


  7  bit  0
  7  bit  0
  xXXX XMBA
  .... .MBA
  ---- ----
  ---- ----
  |||| ||||
  |||| ||||
Line 26: Line 26:
  |||| ||+-- 0: B button is pressed
  |||| ||+-- 0: B button is pressed
  |||| |+--- 1-bit ADC microphone input
  |||| |+--- 1-bit ADC microphone input
  |+++-+---- possibly connected, probably open bus.
  ++++-+---- open bus
+--------- definitely open bus


=== $Cxxx-????: Banking control ===
=== $8000-$FFFF: Banking control ===
  7  bit  0
  7  bit  0
  .XXR BBBB
  .LXR BBBB
  ---- ----
  ---- ----
   ||| ||||
   ||| ||||
   ||| ++++- Select ROM bank mapped from $8000-$BFFF.
   ||| ++++- Select ROM bank mapped from $8000-$BFFF.
   ||+------ 0: Select external ROM, 1: Select internal ROM
   ||+------ 0: Select external ROM, 1: Select internal ROM
   ++------- Unknown
   |+------- CIRAM A10 is connected to  0: PPU A10 ("vertical mirroring"), 1: PPU A11 ("horizontal mirroring")
  +-------- 1 bit latch, present but unused


The bank from $C000-$FFFF is fixed to the last bank of the internal ROM.
The bank from $C000-$FFFF is fixed to the last bank of the internal ROM.
Both Nestopia and FCEUX implement logic that selects the last bank of the internal ROM if the software tries to select the first bank of the external ROM when it isn't present. Enri's schematic of the expansion cartridge does show two grounds connected, perhaps allowing the mapper to detect insertion; however his schematic does not show any extra connections leaving the base cartridge going back to the mapper IC, so it's unclear what hardware causes this behavior. It's possible that the game checks for a signature in the external ROM, but this signature happens to be in the first bank of the internal ROM too, and the emulators don't implement open bus.
Enri believes (based on pin order and the gap in this register), but was unable to test, that the mapper provides PRG A17.
=== Unknown register ===
The IC provides mirroring control (it is connected to PPU A10, PPU A11, and CIRAM A10). It's not known how to do so. Enri guesses it might be in the register at $C000. Neither Nestopia nor FCEUX implement anything.


== Warning ==
== Warning ==
The 256 KiB iNES dumps under this mapper are actually the 128KiB internal ROM followed by a 128KiB expansion ROM.
The 256 KiB iNES dumps under this mapper are actually the 128KiB internal ROM followed by a 128KiB expansion ROM.
For the 128 KiB iNES dump (solely the internal ROM), several emulators implement logic that selects the last bank of the internal ROM when the game tries to select the first of the external ROM. There may be a fingerprint the game requires on being absent. Properly implementing open bus is more accurate.


== References ==
== References ==
* Enri's schematic: http://www43.tok2.com/home/cmpslv/Famic/Famic.htm (scroll down to " カラオケスタジオの回路図 ")
* Enri's schematic: http://www43.tok2.com/home/cmpslv/Famic/Famic.htm (scroll down to " カラオケスタジオの回路図 ")
* Naruko's wiki: [http://seesaawiki.jp/famicomcartridge/d/%a5%ab%a5%e9%a5%aa%a5%b1%a5%b9%a5%bf%a5%b8%a5%aa カラオケスタジオ]
* Nestopia and FCEUX source
* Nestopia and FCEUX source

Revision as of 18:09, 15 March 2014

iNES Mapper 188 describes the board used for Bandai's Karaoke Studio. This game, like Nantettatte!! Baseball additionally supports an external ROM that allows augmenting the original game.

Overview

  • PRG ROM: Up to 256 KiB + Up to 256 KiB expansion cartridge
  • PRG ROM bank size: 16 KiB
  • PRG RAM: None
  • CHR capacity: 8 KiB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Controlled by mapper
  • Subject to bus conflicts: Yes

The mapper IC used here has Mitsubishi's part number for custom orders: M60001.

Registers

$6000-$7FFF: Microphone input

The microphone for this game is permanently tethered to the cartridge, and contains two buttons labeled "A" (closer to the microphone itself) and "B" (closer to the cord).

Reads from this address provide the status of the microphone and its buttons:

7  bit  0
.... .MBA
---- ----
|||| ||||
|||| |||+- 0: A button is pressed
|||| ||+-- 0: B button is pressed
|||| |+--- 1-bit ADC microphone input
++++-+---- open bus

$8000-$FFFF: Banking control

7  bit  0
.LXR BBBB
---- ----
 ||| ||||
 ||| ++++- Select ROM bank mapped from $8000-$BFFF.
 ||+------ 0: Select external ROM, 1: Select internal ROM
 |+------- CIRAM A10 is connected to  0: PPU A10 ("vertical mirroring"), 1: PPU A11 ("horizontal mirroring")
 +-------- 1 bit latch, present but unused

The bank from $C000-$FFFF is fixed to the last bank of the internal ROM.

Warning

The 256 KiB iNES dumps under this mapper are actually the 128KiB internal ROM followed by a 128KiB expansion ROM.

For the 128 KiB iNES dump (solely the internal ROM), several emulators implement logic that selects the last bank of the internal ROM when the game tries to select the first of the external ROM. There may be a fingerprint the game requires on being absent. Properly implementing open bus is more accurate.

References