I have some ideas to make a custom mapper, which can be implemented using hardware as well as with DotFami. It would be 60-pins (I prefer the 60-pins cartridge; also it uses audio), and you use adapter for 72-pins.
Here is currently ideas:
I think this is all of it.
(Note: The only NES/Famicom hardware I have is a Famiclone device; I have counted the pins and I think there are sixty. I have no cartridges but it has some games built-in, some of which seem to have errors in them.)
Here is currently ideas:
- RAM from $5000-$5FFF, consisting of: name table, attribute table, general purpose.
- One register writes nametable mode: horizontal mirror, vertical mirror, cartridge RAM.
- 2K, 4K, or 8K CHR ROM. No bankswitching (except in attribute tables; see below). If there is 2K only, then only one plane is used for each tile (other is always zero), and it is mirrored in both pattern tables. 4K uses two planes and is mirrored in both pattern tables.
- Up to 64K PRG ROM, with 16K bank in $8000-$BFFF switchable and $C000-$FFFF switchable, by writing the low bit of any address in the range.
- At power, both ROM banks are reset; at soft reset, top ROM bank is reset only.
- Attribute table correspond to the name table byte for a single tile, using: bit0 = set to do IRQ while rendering this tile (for all eight scanlines). bit1 = unused (but exists; can be read by CPU). bit2, bit3 = palette selector. bit4, bit5, bit6, bit7 = if reading pattern table 0, then change the address as follows: If plane 0, use bit4 to select pattern table and bit5 to select plane number. If plane 1, use bit6 and bit7 in this way. If pattern table 1 is requested by the PPU, then do not use these bits at all.
- One register read for hardware random numbers.
- Memory $6000-$7FFF mapped to external memory card (optional feature).
- Four audio channels, all operating in the same way, with two registers each: Twelve bits of period and four bits which are AND by waveform data.
- Waveform data register you write four-bit values in series, sixteen in total.
- 2A03 audio can be either mixed with or amplitude modulating cartridge audio, depending on setting of a register.
I think this is all of it.
(Note: The only NES/Famicom hardware I have is a Famiclone device; I have counted the pins and I think there are sixty. I have no cartridges but it has some games built-in, some of which seem to have errors in them.)