UNIF/UNL-DripGame
UNL-DripGame is a ASIC (actually, FPGA) mapper invented by Quietust for a single game.
The iNES number is #4098. The UNIF name is "UNL-DripGame".
Memory map
CPU:
- $4800-$5FFF = Readable registers
- $6000-$7FFF = PRG RAM
- $8000-$BFFF = Switchable bank
- $C000-$FFFF = Fixed to the last bank
Readable registers
$4800-$4FFF (Status)
[DSSS SSSS] |||| |||| |+++-++++---- Ready flag; $64 if ready +------------ Switch
All other registers should not be touched until it is ready.
$5000-$57FF (Sound channel 0 status)
[FE.. ....] || |+----------- Buffer is empty +------------ Buffer is full
$5800-$5FFF (Sound channel 1 status)
Similar to $5000 but for the second channel.
Writable registers
All of these registers are mirrored at $8000-$BFFF; the low four bits select the register number.
$8000 (Sound channel 0 silence register)
Writing anything silences channel 0 and clears the buffer.
$8001 (Sound channel 0 data)
Writing data inserts it into the buffer.
$8002 (Sound channel 0 low period)
[PPPP PPPP]
Specify low 8-bits of period of channel 0.
$8003 (Sound channel 0 high period)
[VVVV PPPP] |||| |||| |||| ++++---- High 4-bits of period ++++--------- Volume control
Specify high 4-bits of period of channel 0, and volume control.
$8004 (Sound channel 1 silence register)
Writing anything silences channel 1 and clears the buffer.
$8005 (Sound channel 1 data)
Writing data inserts it into the buffer.
$8006 (Sound channel 1 low period)
[PPPP PPPP]
Specify low 8-bits of period of channel 1.
$8007 (Sound channel 1 high period)
[VVVV PPPP] |||| |||| |||| ++++---- High 4-bits of period ++++--------- Volume control
Specify high 4-bits of period of channel 1, and volume control.
$8088 (Low IRQ register)
[XXXX XXXX] |||| |||| ++++-++++---- Low 8-bits of IRQ value
$8089 (High IRQ register)
[EXXX XXXX] |||| |||| |+++-++++---- High 7-bits of IRQ value +------------ Enable flag
IRQ is automatically disabled when it is overflow.