mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
notes (nw)
This commit is contained in:
parent
d1cc1254ad
commit
e268dd2d5f
@ -6,7 +6,7 @@
|
||||
|
||||
original driver by Pierpaolo Prazzoli
|
||||
|
||||
The two games have identical game/video boards hardware, but
|
||||
The two games have near identical game/video boards hardware, but
|
||||
completely different sound boards. Laser Battle/Lazarian have a
|
||||
dumb sound board with TMS organ and CSG chips driven directly by the
|
||||
game program. Cat and Mouse uses an intelligent sound board with
|
||||
@ -29,6 +29,12 @@
|
||||
interface on J3. It seems there are no games that actually use the
|
||||
bidirectional interface on J7.
|
||||
|
||||
The game board appears to have had some last-minute design changes
|
||||
that aren't reflected in the Midway schematics, for example the last
|
||||
program ROM being double the size of the others. There are also
|
||||
some errors in the schematic like missing connections and incorrect
|
||||
logic gate symbols.
|
||||
|
||||
Laser Battle/Lazarian notes:
|
||||
* Manuals clearly indicate the controls to fire in four directions
|
||||
are four buttons arranged in a diamond, not a four-way joystick
|
||||
@ -46,16 +52,37 @@
|
||||
* Laser Battle is far less forgiving, sending you back to the start
|
||||
of an area on dying and not giving continues
|
||||
|
||||
Cat and Mouse notes:
|
||||
* Tilt input causes loss of one credit
|
||||
* 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
|
||||
* Flyer suggests there should be an "old lady" sprite, which is not
|
||||
present in our ROM dump
|
||||
* Sprite ROM is likely double size, banking could be controlled by
|
||||
one of the many unused CSOUND bits, the NEG2 bit, or even H128
|
||||
* 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
|
||||
* Sound board emulation is based on tracing the program and guessing
|
||||
what's connected where - we really need someone to trace out the
|
||||
1b11107 sound board if we want to get this right
|
||||
|
||||
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)
|
||||
- sound in laserbat (with schematics) and in catnmous
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "includes/laserbat.h"
|
||||
|
||||
#include "cpu/m6800/m6800.h"
|
||||
#include "cpu/s2650/s2650.h"
|
||||
#include "machine/6821pia.h"
|
||||
#include "includes/laserbat.h"
|
||||
|
||||
|
||||
WRITE8_MEMBER(laserbat_state_base::ct_io_w)
|
||||
@ -69,29 +96,32 @@ WRITE8_MEMBER(laserbat_state_base::ct_io_w)
|
||||
|
||||
Bit 3 is an open collector output with a 2k2 pull-up resistor.
|
||||
It is used to drive the "image commutation board" used to flip
|
||||
the screen for player 2 in cocktail configuration.
|
||||
the screen for player 2 in cocktail configuration. Note that
|
||||
this output is asserted when player 2 is active even in upright
|
||||
configuration, it's only supposed to be connected in a cocktail
|
||||
cabinet.
|
||||
|
||||
Bits 4-5 feed the input row select decoder that switches between
|
||||
ROW0, ROW1, SW1 and SW2 (ROW2 is selected using a bit in the
|
||||
video effects register, just to be confusing).
|
||||
|
||||
+-----+-----------------------------+-------------------+------------------------------+
|
||||
| bit | output | Laser Battle | Lazarian |
|
||||
+-----+-----------------------------+-------------------+------------------------------+
|
||||
| 0 | J2-3 solenoid driver | 1*Credits | 1*Coin C |
|
||||
| | | | |
|
||||
| 1 | J2-8 solenoid driver | 5*Coin A | 1*Coin A |
|
||||
| | | 10*Coin B | |
|
||||
| | | 1*Coin C | |
|
||||
| | | | |
|
||||
| 2 | J2-6 solenoid driver | | 1*Coin B |
|
||||
| | | | |
|
||||
| 3 | J3-4 open collector output | Connected to cocktail "image commutation board" |
|
||||
| | | | |
|
||||
| 4 | input row select A | | |
|
||||
| | | | |
|
||||
| 5 | input row select B | | |
|
||||
+-----+-----------------------------+-------------------+------------------------------+
|
||||
+-----+-----------------------------+--------------------+--------------+
|
||||
| bit | output | laserbat/catnmous | lazarian |
|
||||
+-----+-----------------------------+--------------------+--------------+
|
||||
| 0 | J2-3 solenoid driver | 1*Credits | 1*Coin C |
|
||||
| | | | |
|
||||
| 1 | J2-8 solenoid driver | 5*Coin A | 1*Coin A |
|
||||
| | | 10*Coin B | |
|
||||
| | | 1*Coin C | |
|
||||
| | | | |
|
||||
| 2 | J2-6 solenoid driver | | 1*Coin B |
|
||||
| | | | |
|
||||
| 3 | J3-4 open collector output | Screen flip | Screen flip |
|
||||
| | | | |
|
||||
| 4 | input row select A | | |
|
||||
| | | | |
|
||||
| 5 | input row select B | | |
|
||||
+-----+-----------------------------+--------------------+--------------+
|
||||
*/
|
||||
|
||||
coin_counter_w(machine(), 0, data & 0x01);
|
||||
@ -730,5 +760,5 @@ ROM_END
|
||||
|
||||
GAME( 1981, laserbat, 0, laserbat, laserbat, laserbat_state_base, laserbat, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, lazarian, laserbat, laserbat, lazarian, laserbat_state_base, laserbat, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, catnmous, 0, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, catnmousa, catnmous, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, catnmous, 0, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, catnmousa, catnmous, catnmous, catnmous, laserbat_state_base, laserbat, ROT90, "Zaccaria", "Cat and Mouse (set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -40,14 +40,26 @@
|
||||
However video is actually generated in a 16-bit internal colour
|
||||
space and mapped onto the 8-bit output colour space using a PLA.
|
||||
|
||||
The equations in the PAL give the following graphics priorities,
|
||||
from highest to lowest:
|
||||
The equations in the PLA for Laser Battle/Lazarian give the
|
||||
following graphics priorities, from highest to lowest:
|
||||
* TTL-generated sprite
|
||||
* PVIs (colours ORed, object/score output ignored)
|
||||
* Shell/area effect 2
|
||||
* Background tilemap
|
||||
* Area effect 1
|
||||
|
||||
The Cat and Mouse PLA program gives completely different priorities,
|
||||
once again from highest to lowest:
|
||||
* Background tilemap
|
||||
* PVIs (colours ORed, object/score output ignored)
|
||||
* TTL-generated sprite
|
||||
* Shell
|
||||
|
||||
Cat and Mouse uses some signals completely differently. LUM affects
|
||||
the background palette rather than the sprite palette, area effect 1
|
||||
affects the background palette, and area effect 2 is completely
|
||||
unused.
|
||||
|
||||
The game board has no logic for flipping the screen in cocktail
|
||||
mode. It just provides an active-low open collector out with pull-
|
||||
up indicating when player 2 is playing. In a cocktail cabinet this
|
||||
@ -231,26 +243,26 @@ UINT32 laserbat_state_base::screen_update_laserbat(screen_device &screen, bitmap
|
||||
TIMER_CALLBACK_MEMBER(laserbat_state_base::video_line)
|
||||
{
|
||||
/*
|
||||
+-----+---------+-----------------------------------+
|
||||
| bit | name | description |
|
||||
+-----+---------+-----------------------------------+
|
||||
| 0 | NAV0 | sprite bit 0 |
|
||||
| 1 | NAV1 | sprite bit 1 |
|
||||
| 2 | CLR0 | sprite colour bit 0 |
|
||||
| 3 | CLR1 | sprite colour bit 1 |
|
||||
| 4 | LUM | sprite luminance |
|
||||
| 5 | C1* | combined PVI red (active low) |
|
||||
| 6 | C2* | combined PVI green (active low) |
|
||||
| 7 | C3* | combined PVI blue (active low) |
|
||||
| 8 | BKR | background tilemap red |
|
||||
| 9 | BKG | background tilemap green |
|
||||
| 10 | BKB | background tilemap blue |
|
||||
| 11 | SHELL | shell point |
|
||||
| 12 | EFF1 | effect 1 area |
|
||||
| 13 | EFF2 | effect 2 area |
|
||||
| 14 | COLEFF0 | area effect colour bit 0 |
|
||||
| 15 | COLEFF1 | area effect colour bit 1 |
|
||||
+-----+---------+-----------------------------------+
|
||||
+-----+---------+----------------------------------+-------------------------------------+
|
||||
| bit | name | laserbat/lazarian | catnmous |
|
||||
+-----+---------+----------------------------------+-------------------------------------+
|
||||
| 0 | NAV0 | sprite bit 0 | sprite bit 0 |
|
||||
| 1 | NAV1 | sprite bit 1 | sprite bit 1 |
|
||||
| 2 | CLR0 | sprite palette bit 0 | sprite palette bit 0 |
|
||||
| 3 | CLR1 | sprite palette bit 1 | sprite palette bit 1 |
|
||||
| 4 | LUM | sprite luminance | background tilemap palette control |
|
||||
| 5 | C1* | combined PVI red (active low) | combined PVI red (active low) |
|
||||
| 6 | C2* | combined PVI green (active low) | combined PVI green (active low) |
|
||||
| 7 | C3* | combined PVI blue (active low) | combined PVI blue (active low) |
|
||||
| 8 | BKR | background tilemap red | background tilemap bit 0 |
|
||||
| 9 | BKG | background tilemap green | background tilemap bit 1 |
|
||||
| 10 | BKB | background tilemap blue | background tilemap bit 2 |
|
||||
| 11 | SHELL | shell point | shell point |
|
||||
| 12 | EFF1 | effect 1 area | background tilemap palette control |
|
||||
| 13 | EFF2 | effect 2 area | unused |
|
||||
| 14 | COLEFF0 | area effect colour bit 0 | background tilemap palette control |
|
||||
| 15 | COLEFF1 | area effect colour bit 1 | background tilemap palette control |
|
||||
+-----+---------+----------------------------------+-------------------------------------+
|
||||
*/
|
||||
|
||||
assert(m_bitmap.width() > m_screen->visible_area().max_x);
|
||||
|
Loading…
Reference in New Issue
Block a user