summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2016-02-08 13:24:12 +1100
committer Vas Crabb <vas@vastheman.com>2016-02-08 13:49:44 +1100
commitf489eeaaef76676b848b5958912191011a387a38 (patch)
tree129554ba91b53820701bf06de6ae199f5e64f9c9
parent503ae769d1bd7867bfdfb0535ecf1da547810cee (diff)
catnmous: fix sprite banking
-rw-r--r--src/mame/audio/laserbat.cpp10
-rw-r--r--src/mame/drivers/laserbat.cpp4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/mame/audio/laserbat.cpp b/src/mame/audio/laserbat.cpp
index 5e8ee062b45..b16c4d73388 100644
--- a/src/mame/audio/laserbat.cpp
+++ b/src/mame/audio/laserbat.cpp
@@ -282,7 +282,7 @@ WRITE8_MEMBER(laserbat_state::csound2_w)
| 6 | SOUND 5 | PIA CA1 |
| 7 | | |
| 8 | | |
- | 9 | | |
+ | 9 | | 14L A11 |
| 10 | | |
| 11 | | |
| 12 | | |
@@ -292,6 +292,10 @@ WRITE8_MEMBER(laserbat_state::csound2_w)
| 16 | RESET | Unknown |
+-----+----------+-------------+
+ Bit 9 is used to select the sprite ROM bank. There's a wire visible
+ on the component side of the PCB connecting it to the high address
+ bit (A11) of the sprite ROM at 14L.
+
There could well be other connections on the sound board - these are
just what can be deduced by tracing the sound program.
@@ -308,8 +312,12 @@ WRITE8_MEMBER(catnmous_state::csound1_w)
WRITE8_MEMBER(catnmous_state::csound2_w)
{
+ // the bottom bit is used for sprite banking, of all things
+ m_gfx2 = memregion("gfx2")->base() + ((data & 0x01) ? 0x0800 : 0x0000);
+
// the top bit is called RESET on the wiring diagram - assume it resets the sound CPU
m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
+
m_csound2 = data;
}
diff --git a/src/mame/drivers/laserbat.cpp b/src/mame/drivers/laserbat.cpp
index c9617fb8de5..38f7d3cbb39 100644
--- a/src/mame/drivers/laserbat.cpp
+++ b/src/mame/drivers/laserbat.cpp
@@ -62,6 +62,9 @@
* Service coin 1 input grants two credits the first time it's
pushed, but remembers this and won't grant credits again unless
unless you trigger the tilt input
+ * The sprite ROM is twice the size as Laser Battle with the bank
+ selected using bit 9 of the 16-bit sound interface (there's a wire
+ making this connection visible on the component side of the PCB)
* Judging by the PLA program, the colour weight resistors are likely
different to what Laser Battle/Lazarian uses - we need a detailed
colour photo of the game board or a schematic to confirm values
@@ -71,7 +74,6 @@
TODO:
- work out where all the magic layer offsets come from
- - catnmous sprite ROM appears to be underdumped
- need to confirm colour weight resistors on catnmous (detailed photo required):
R58, R59, R60, R61, R62, R65, R66, R67, R68, R69, R72, R73, R74, R75
(network connected between 11M, 12M, Q5, Q7, Q8)