mirror of
https://github.com/holub/mame
synced 2025-06-01 10:31:48 +03:00
New driver for Advanced Video Technology (AVT) platform [Roberto Fresca]
* Almost accurate memory map. * Decoded graphics. * Decoded the bipolar PROM. * Detected a CRTC (MC6845 type) reversing the code. * Guessed the CRTC clock to get proper values. * Hooked the AY-3-8910. * Added games notes. * Added technical notes. New games marked as GAME_NOT_WORKING ------------------------------------ Symbols (ver 1.4) [Roberto Fresca, Dave Ormiston] Symbols (ver 2.5) [Roberto Fresca, Dave Ormiston] Arrow Bingo [Roberto Fresca, Dave Ormiston] NFL (ver 109) [Roberto Fresca, Dave Ormiston]
This commit is contained in:
parent
bef05587c8
commit
30e795e988
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1441,6 +1441,7 @@ src/mame/drivers/ataxx.c svneol=native#text/plain
|
|||||||
src/mame/drivers/atetris.c svneol=native#text/plain
|
src/mame/drivers/atetris.c svneol=native#text/plain
|
||||||
src/mame/drivers/attckufo.c svneol=native#text/plain
|
src/mame/drivers/attckufo.c svneol=native#text/plain
|
||||||
src/mame/drivers/avalnche.c svneol=native#text/plain
|
src/mame/drivers/avalnche.c svneol=native#text/plain
|
||||||
|
src/mame/drivers/avt.c svneol=native#text/plain
|
||||||
src/mame/drivers/aztarac.c svneol=native#text/plain
|
src/mame/drivers/aztarac.c svneol=native#text/plain
|
||||||
src/mame/drivers/backfire.c svneol=native#text/plain
|
src/mame/drivers/backfire.c svneol=native#text/plain
|
||||||
src/mame/drivers/badlands.c svneol=native#text/plain
|
src/mame/drivers/badlands.c svneol=native#text/plain
|
||||||
|
895
src/mame/drivers/avt.c
Normal file
895
src/mame/drivers/avt.c
Normal file
@ -0,0 +1,895 @@
|
|||||||
|
/************************************************************************************************
|
||||||
|
|
||||||
|
AVT - ADVANCED VIDEO TECHNOLOGY
|
||||||
|
CPU Boards 1000-1 & 1001-1
|
||||||
|
|
||||||
|
Driver by Roberto Fresca.
|
||||||
|
|
||||||
|
|
||||||
|
Games running on this hardware:
|
||||||
|
|
||||||
|
* Symbols (ver 1.4), 1985, AVT.
|
||||||
|
* Symbols (ver 2.5), 1985, AVT.
|
||||||
|
* Arrow Bingo, 1985, AVT.
|
||||||
|
* NFL (ver 109), 1989, AVT.
|
||||||
|
|
||||||
|
|
||||||
|
Special thanks to Dave Ormiston for his invaluable collaboration,
|
||||||
|
providing dumps and other technical stuff.
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
Hardware Notes:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
CPU: 1x Z80
|
||||||
|
PIO: 2x Mostek MK3881 (U22 & U23)
|
||||||
|
CTC: 1x Mostek MK3882 (U27)
|
||||||
|
SND: 1x AY-3-8910 or similar.
|
||||||
|
|
||||||
|
CRTC: 1x MC6845 type...
|
||||||
|
|
||||||
|
Unknown Xtal.
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
------------------
|
||||||
|
*** Game Notes ***
|
||||||
|
------------------
|
||||||
|
|
||||||
|
|
||||||
|
** ARROW BINGO **
|
||||||
|
|
||||||
|
The code has a timer that takes a couple of minutes to boot into the game.
|
||||||
|
This is completely normal and expected.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** SYMBOLS **
|
||||||
|
|
||||||
|
|
||||||
|
INTRODUCTION
|
||||||
|
|
||||||
|
Symbols is a video skill game displaying a large red bordered box with a white grid of 5 rows
|
||||||
|
across and 5 columns of symbols down. The object of the game is to line up the winning symbols
|
||||||
|
either horizontally or diagonally in the shortest amount of time with the least amount of moves.
|
||||||
|
|
||||||
|
The winning symbols are selected at random at the start of the game and displayed with a dis-
|
||||||
|
tinctive yellow color surrounding that symbol in each column.
|
||||||
|
|
||||||
|
|
||||||
|
HOW TO PLAY THE GAME:
|
||||||
|
|
||||||
|
The player must first insert coins to obtain points to play the game. Once points are on the
|
||||||
|
screen the player may then press the play button one time for each point available up to the
|
||||||
|
coin multiplier limit (except when lockouts are in effect) at which time the game will auto
|
||||||
|
start. If the player wants to start before the coin max, he may press the start button to i-
|
||||||
|
nitiate play. At the start of the game arrows are displayed at the top of columns to show the
|
||||||
|
direction to move that column in order to get the winning symbol on screen, in the event that
|
||||||
|
particular winning symbol is already on screen, that symbol will appear at the top of the co-
|
||||||
|
lumn instead of the arrow. When the player has all the winning symbols on the screen an align-
|
||||||
|
ment of winning symbols, either horizontally or diagonally, should be done with the least a-
|
||||||
|
mount of moves in the shortest amount of time. In the event the lockout mode is engaged the
|
||||||
|
game will accept coins up to the lockout limit and will then auto start.
|
||||||
|
|
||||||
|
The game has two different win modes defined as follows. If an alignment is obtained in 13
|
||||||
|
moves or less, the player will be awarded points defined by the award tables. If alignment
|
||||||
|
is obtained from 14 to 32, moves stars will then be awarded for the amount of moves as de-
|
||||||
|
fined by the awards table. A bonus of 3 stars will be awarded if game is completed in 3 se-
|
||||||
|
conds or less and 100 stars equals 1 point.
|
||||||
|
|
||||||
|
Time is also an element in this game. When the game is started the player has a specific a-
|
||||||
|
mount of time to complete the game, also the arrows have a time limit. These time factors
|
||||||
|
are variable and may be adjusted in the setup mode. The game also show how the game may be
|
||||||
|
played.
|
||||||
|
|
||||||
|
|
||||||
|
ADJUSTABLE FEATURES:
|
||||||
|
|
||||||
|
Symbols has been designed for the convenience of the operator. The game is very flexible,
|
||||||
|
easy to use and can be custom tailored for each location by a menu driven setup mode.
|
||||||
|
To enter the setup mode, locate 2 small switches, with black rubber tops, on the logic board
|
||||||
|
labeled SW1 and SW2. First depress and hold SW2 and momentarily depress SW1, until the MAIN
|
||||||
|
MENU display appears on the screen. At this point you should see a menu that looks as follows:
|
||||||
|
|
||||||
|
MAIN MENU
|
||||||
|
-----------
|
||||||
|
ACCOUNTING MODE
|
||||||
|
POINTS SETUP
|
||||||
|
PLAY TIME SETUP
|
||||||
|
BUSINESS NAME SETUP
|
||||||
|
SYSTEM TESTS
|
||||||
|
GAME STATS
|
||||||
|
|
||||||
|
When you have this display on the screen you are in the setup mode. You will note a different
|
||||||
|
color band around one of the selections. This band indicates which module is to be selected
|
||||||
|
to enter that particular mode. This band may be moved by depressing either the first column
|
||||||
|
up or down arrow on your front panel. To enter a particular mode just depress the PLAY button
|
||||||
|
on your front panel. To exit a mode just depress the START button on your front panel. To ad-
|
||||||
|
just an entry in one of the modules use the second up or down arrow on your front panel. Now
|
||||||
|
lets go through each module so you know how to customize your game for a particular location.
|
||||||
|
|
||||||
|
Let's get into the first module on the menu which is the ACCOUNTING MODE. Remember to depress
|
||||||
|
the PLAY button on your front panel and presto, we are in the accounting mode. The display you
|
||||||
|
see should look something like this:
|
||||||
|
|
||||||
|
ACCOUNTING MODE
|
||||||
|
----------------
|
||||||
|
COINS IN: 0000
|
||||||
|
POINTS AWARDED: 0000
|
||||||
|
PLAYS TO DATE: 0000
|
||||||
|
STRUNG COINS: 0000
|
||||||
|
STARS AWARDED: 0000
|
||||||
|
GAMES PLAYED: 0000
|
||||||
|
|
||||||
|
To clear the accounting back to zero, use the second arrow down button on your front panel for
|
||||||
|
each item and use your first arrow up or down to move to each item.
|
||||||
|
|
||||||
|
|
||||||
|
To enter POINTS SETUP, move the shaded color bar to POINTS SETUP and depress the PLAY button on
|
||||||
|
your front panel. You should have a display that looks as follows:
|
||||||
|
|
||||||
|
POINTS MENU
|
||||||
|
--------------
|
||||||
|
POINTS SETUP
|
||||||
|
POINTS MULTIPLIER
|
||||||
|
|
||||||
|
Select the POINTS SETUP by depressing the PLAY button on your front panel and you should have
|
||||||
|
a display that looks similar to the following:
|
||||||
|
|
||||||
|
POINTS SETUP
|
||||||
|
--------------
|
||||||
|
POINTS MENU
|
||||||
|
1 100
|
||||||
|
2 50
|
||||||
|
3 20
|
||||||
|
4 10
|
||||||
|
5 9
|
||||||
|
6 8
|
||||||
|
7 7
|
||||||
|
8 6
|
||||||
|
9 5
|
||||||
|
10 4
|
||||||
|
11 3
|
||||||
|
12 2
|
||||||
|
13 1
|
||||||
|
|
||||||
|
To change any of the above values, move the shaded bar by depressing the first up or down arrow
|
||||||
|
to the desired award and then change the values by depressing the second up or down arrow until
|
||||||
|
the desired value is reached. To exit, press the START button on your front panel.
|
||||||
|
|
||||||
|
To change the POINT MULTIPLIER, enter this module and use the first up or down button on your
|
||||||
|
front panel to increment or decrement this value.
|
||||||
|
|
||||||
|
To change PLAY TIME SETUP, enter this module and you may change PLAY TIME or ARROW TIME (the a-
|
||||||
|
mount of time arrows are allowed to stay on screen during play). To enable the lockout mode, you
|
||||||
|
may set the lockout number to 1 or 2 or 3 or 4 and 0 if no lockout is desired. To disable the
|
||||||
|
STARS set the STAR MODE to OFF. To adjust the UP AWARDS set to ON for more upper awards and to
|
||||||
|
OFF for less upper awards table wins.
|
||||||
|
|
||||||
|
The default name used in BUSINESS NAME SETUP is "THE MANAGEMENT". If you want to put a location
|
||||||
|
name in the attract mode, enter the business name setup and use the second up and down arrows to
|
||||||
|
select from the alphabet. In the event you make a mistake you can backup by selecting the first
|
||||||
|
up arrow. When you are finished with your message just exit by pressing START button and the me-
|
||||||
|
ssage will automatically center when you exit.
|
||||||
|
|
||||||
|
SYSTEM TESTS
|
||||||
|
|
||||||
|
The SYSTEM TESTS mode allows you to test the ROM, RAM, CTC, MONITOR, and perform I/O tests.
|
||||||
|
The I/O tests allow you to check each front panel switch and the coins in switch individually.
|
||||||
|
To exit from the I/O mode, you have to press the SW1 reset switch on the logic board.
|
||||||
|
|
||||||
|
GAME STATS
|
||||||
|
|
||||||
|
The GAME STATS mode indicates the number of wins for each award in the awards tables. To clear
|
||||||
|
these back to zero depress the second arrow down button on your front panel.
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
Symbols front panel layout:
|
||||||
|
|
||||||
|
.------. .------. .------. .------. .------.
|
||||||
|
| UP | | UP | | UP | | UP | | UP |
|
||||||
|
.-------. | 1 | | 2 | | 3 | | 4 | | 5 | .------.
|
||||||
|
| START | '------' '------' '------' '------' '------' | PLAY |
|
||||||
|
| | .------. .------. .------. .------. .------. | |
|
||||||
|
'-------' | DOWN | | DOWN | | DOWN | | DOWN | | DOWN | '------'
|
||||||
|
| 1 | | 2 | | 3 | | 4 | | 5 |
|
||||||
|
'------' '------' '------' '------' '------'
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
Symbols connector list CPU 1000-1
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
*** J3 - Power Connector ***
|
||||||
|
|
||||||
|
Pin # Description
|
||||||
|
--------------------
|
||||||
|
01 +12V DC
|
||||||
|
02 +5V DC
|
||||||
|
03 N/C
|
||||||
|
04 GND
|
||||||
|
|
||||||
|
|
||||||
|
*** J1 - Switches and Lamps Circuits ***
|
||||||
|
|
||||||
|
Pin # Description Pin # Description
|
||||||
|
-------------------- --------------------
|
||||||
|
01, 02 Lamp #0 31 Down Arrow #1
|
||||||
|
03, 04 Lamp #1 32 Down Arrow #2
|
||||||
|
05, 06 Lamp #2 33 Down Arrow #3
|
||||||
|
07, 08 Lamp #3 34 Down Arrow #4
|
||||||
|
09, 10 Lamp #4 35 Down Arrow #5
|
||||||
|
11, 12 Lamp #5 36 N/C
|
||||||
|
13, 14 Lamp #6 37 Down Arrow commons
|
||||||
|
15, 16 Lamp #7 38 Tilt
|
||||||
|
17 Up Arrow #1 39 Play
|
||||||
|
18 Up Arrow #2 40 Start
|
||||||
|
19 Up Arrow #3 41 N/C
|
||||||
|
20 Up Arrow #4 42 N/C
|
||||||
|
21 Up Arrow #5 43 N/C
|
||||||
|
22 N/C 44 Tilt, Play, Start common
|
||||||
|
23 Up Arrow commons 45 N/C
|
||||||
|
24 N/C 46 N/C
|
||||||
|
25 N/C 47 N/C
|
||||||
|
26 N/C 48 N/C
|
||||||
|
27 N/C 49 N/C
|
||||||
|
28 N/C 50 N/C
|
||||||
|
29 Coins In
|
||||||
|
30 Coins In common
|
||||||
|
|
||||||
|
|
||||||
|
*** J2 - Monitor & Misc. ***
|
||||||
|
|
||||||
|
Pin # Description Pin # Description
|
||||||
|
-------------------- -------------------------------
|
||||||
|
33 Horz Sync 01, 02, 03, 04 Coins In Meter
|
||||||
|
35 Vert Sync 05, 06 AC Hot
|
||||||
|
37 Composite 07, 08 +Lamp
|
||||||
|
39 Red 09, 10 +5V
|
||||||
|
41 Green 11, 12 +5V
|
||||||
|
43 Blue 13, 14 +12V
|
||||||
|
45 Gnd 15, 16 +12V
|
||||||
|
47 Speaker + 25, 26 Lockout
|
||||||
|
49 Speaker -
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Interface Board 1001-1 connections
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
J3 Pin # Description J4 Pin # Description
|
||||||
|
----------------------- -------------------------
|
||||||
|
A, 01 +5V A, 01 N/C
|
||||||
|
B, 02 +12V B, 02, 03 N/C
|
||||||
|
C, 03 GND C Coin Meter
|
||||||
|
D, E, F N/C D AC Hot
|
||||||
|
04, 05, 06 N/C 04 Lockout
|
||||||
|
H, 07 Lamp + E AC Hot
|
||||||
|
J, K, L N/C 05 thru 21 N/C
|
||||||
|
08, 09 N/C F thru Y N/C
|
||||||
|
10 Lamp #0 Z, 22 Audio -
|
||||||
|
M Not Used a, 23 Audio +
|
||||||
|
11 Lamp #1 b, 24 N/C
|
||||||
|
N Arrow Down #5 c N/C
|
||||||
|
12 Lamp #2 25 Comp Sync
|
||||||
|
P Arrow Down #4 d Vert Sync
|
||||||
|
13 Lamp #3 26 Blue
|
||||||
|
R Arrow Down #3 e GND
|
||||||
|
14 Lamp #4 27 Green
|
||||||
|
S Arrow Down #2 f Horz Sync
|
||||||
|
15 Lamp #5 28 Red
|
||||||
|
T Arrow Down #1
|
||||||
|
16 Lamp #6
|
||||||
|
U Coins In common
|
||||||
|
17 Lamp #7
|
||||||
|
V Coins In
|
||||||
|
18 N/C
|
||||||
|
W Not Used
|
||||||
|
19 Arrows Down common
|
||||||
|
X Not Used
|
||||||
|
20 Tilt
|
||||||
|
21 Play
|
||||||
|
22 Start
|
||||||
|
a Not Used
|
||||||
|
23 Not Used
|
||||||
|
b Arrows Up common
|
||||||
|
24, c Not Used
|
||||||
|
25 Tilt, Play, Start common
|
||||||
|
d Arrow Up #5
|
||||||
|
26 N/C
|
||||||
|
e Arrow Up #4
|
||||||
|
27 Arrow Up #1
|
||||||
|
f Arrow Up #3
|
||||||
|
28 Arrow Up #2
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
*** Memory Map ***
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
0000-6000 ; ROM space.
|
||||||
|
A000-A7FF ; Video RAM.
|
||||||
|
C000-C7FF ; Color RAM?.
|
||||||
|
|
||||||
|
---I/O---
|
||||||
|
|
||||||
|
21-23 ; AY-3-8910
|
||||||
|
28-29 ; CRTC (MC6845?)
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
Color System
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Arrow Bingo & Symbols
|
||||||
|
|
||||||
|
Bipolar PROM scheme:
|
||||||
|
|
||||||
|
.-----------.----.----.----.----.----.----.----.----.----.----.----.----.----.----.----.----.
|
||||||
|
|Color Code | 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | A0 | B0 | C0 | D0 | E0 | F0 |
|
||||||
|
>-----------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----<
|
||||||
|
| 0000: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0C | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0010: | 02 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 02 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0020: | 04 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 04 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0030: | 06 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 06 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0040: | 08 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 08 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0050: | 0A | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0A | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0060: | 0C | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0C | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
|
||||||
|
| 0070: | 0E | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 0E | 00 | 00 | 00 | 00 | 00 | 00 | 0F |
|
||||||
|
'-----------'----'----'----'----'----'----'----'----'----'----'----'----'----'----'----'----'
|
||||||
|
|
||||||
|
Being....
|
||||||
|
|
||||||
|
|
||||||
|
7654 3210
|
||||||
|
---- ---x Unknown (intensity?).
|
||||||
|
---- --x- Red.
|
||||||
|
---- -x-- Green.
|
||||||
|
---- x--- Blue.
|
||||||
|
xxxx ---- Not used.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
DRIVER UPDATES:
|
||||||
|
|
||||||
|
|
||||||
|
[2010-10-10]
|
||||||
|
|
||||||
|
- Initial release.
|
||||||
|
- Preliminary memory map.
|
||||||
|
- Decoded graphics.
|
||||||
|
- Decoded the bipolar PROM.
|
||||||
|
- Detected a CRTC (MC6845 type) reversing the code.
|
||||||
|
- Guessed the CRTC clock to get proper values.
|
||||||
|
- Hooked the AY-3-8910.
|
||||||
|
- Added games notes.
|
||||||
|
- Added technical notes.
|
||||||
|
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
|
||||||
|
- Improve the memory map.
|
||||||
|
- Reverse the IO port R/W.
|
||||||
|
- PIO / CTC / daisy-chain interrupts.
|
||||||
|
- Inputs
|
||||||
|
|
||||||
|
|
||||||
|
************************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#define MASTER_CLOCK XTAL_10MHz /* unknown */
|
||||||
|
#define CPU_CLOCK MASTER_CLOCK/4 /* guess... seems accurate */
|
||||||
|
#define CRTC_CLOCK MASTER_CLOCK/16 /* it gives 59.410646 fps with current settings */
|
||||||
|
|
||||||
|
#include "emu.h"
|
||||||
|
#include "cpu/z80/z80.h"
|
||||||
|
#include "machine/nvram.h"
|
||||||
|
#include "sound/ay8910.h"
|
||||||
|
#include "video/mc6845.h"
|
||||||
|
//#include "machine/z80ctc.h"
|
||||||
|
//#include "machine/z80pio.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Video Hardware *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
static UINT8 *videoram;
|
||||||
|
static UINT8 *colorram;
|
||||||
|
static tilemap_t *bg_tilemap;
|
||||||
|
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( avt_videoram_w )
|
||||||
|
{
|
||||||
|
videoram[offset] = data;
|
||||||
|
tilemap_mark_tile_dirty(bg_tilemap, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static WRITE8_HANDLER( avt_colorram_w )
|
||||||
|
{
|
||||||
|
colorram[offset] = data;
|
||||||
|
tilemap_mark_tile_dirty(bg_tilemap, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static TILE_GET_INFO( get_bg_tile_info )
|
||||||
|
{
|
||||||
|
/* - bits -
|
||||||
|
7654 3210
|
||||||
|
xxxx ---- color code.
|
||||||
|
---- xxxx seems unused.
|
||||||
|
*/
|
||||||
|
int attr = colorram[tile_index];
|
||||||
|
int code = videoram[tile_index];
|
||||||
|
int color = (attr & 0xf0)>>4;
|
||||||
|
|
||||||
|
SET_TILE_INFO( 0, code, color, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VIDEO_START( avt )
|
||||||
|
{
|
||||||
|
bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 28, 32);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VIDEO_UPDATE( avt )
|
||||||
|
{
|
||||||
|
tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PALETTE_INIT( avt )
|
||||||
|
{
|
||||||
|
/* prom bits
|
||||||
|
7654 3210
|
||||||
|
---- ---x Intensity?.
|
||||||
|
---- --x- Red component.
|
||||||
|
---- -x-- Green component.
|
||||||
|
---- x--- Blue component.
|
||||||
|
xxxx ---- Unused.
|
||||||
|
*/
|
||||||
|
int j;
|
||||||
|
|
||||||
|
/* 0000BGRI */
|
||||||
|
if (color_prom == 0) return;
|
||||||
|
|
||||||
|
for (j = 0; j < machine->total_colors(); j++)
|
||||||
|
{
|
||||||
|
int bit1, bit2, bit3, r, g, b, inten, intenmin, intenmax, i;
|
||||||
|
|
||||||
|
intenmin = 0xe0;
|
||||||
|
intenmax = 0xff;
|
||||||
|
|
||||||
|
i = ((j & 0x7) << 4) | ((j & 0x78) >> 3);
|
||||||
|
|
||||||
|
|
||||||
|
/* intensity component */
|
||||||
|
// inten = 1 - (color_prom[i] & 0x01);
|
||||||
|
inten = (color_prom[i] & 0x01);
|
||||||
|
|
||||||
|
/* red component */
|
||||||
|
bit1 = (color_prom[i] >> 1) & 0x01;
|
||||||
|
r = (bit1 * intenmin) + (inten * (bit1 * (intenmax - intenmin)));
|
||||||
|
|
||||||
|
/* green component */
|
||||||
|
bit2 = (color_prom[i] >> 2) & 0x01;
|
||||||
|
g = (bit2 * intenmin) + (inten * (bit2 * (intenmax - intenmin)));
|
||||||
|
|
||||||
|
/* blue component */
|
||||||
|
bit3 = (color_prom[i] >> 3) & 0x01;
|
||||||
|
b = (bit3 * intenmin) + (inten * (bit3 * (intenmax - intenmin)));
|
||||||
|
|
||||||
|
|
||||||
|
/* hack to switch cyan->magenta for highlighted background */
|
||||||
|
if (j == 0x40)
|
||||||
|
palette_set_color(machine, j, MAKE_RGB(g, r, b)); // Why this one has R-G swapped?...
|
||||||
|
else
|
||||||
|
palette_set_color(machine, j, MAKE_RGB(r, g, b));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************
|
||||||
|
* Read / Write Handlers *
|
||||||
|
**********************************************/
|
||||||
|
|
||||||
|
//static WRITE8_HANDLER( debug_w )
|
||||||
|
//{
|
||||||
|
// popmessage("written : %02X", data);
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Memory Map Information *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
/* avtnfl, avtbingo */
|
||||||
|
static ADDRESS_MAP_START( avt_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
|
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||||
|
AM_RANGE(0x6000, 0x7fff) AM_RAM
|
||||||
|
AM_RANGE(0x8000, 0x9fff) AM_RAM // AM_SHARE("nvram")
|
||||||
|
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE(avt_videoram_w) AM_BASE(&videoram)
|
||||||
|
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE(avt_colorram_w) AM_BASE(&colorram)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START( avt_portmap, ADDRESS_SPACE_IO, 8 )
|
||||||
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
|
// AM_RANGE(0x00, 0x03) unk, maybe IO
|
||||||
|
// AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||||
|
// AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||||
|
// AM_RANGE(0x08, 0x0b) unk, maybe IO
|
||||||
|
// AM_RANGE(0x08, 0x08) AM_READ_PORT("IN2")
|
||||||
|
// AM_RANGE(0x09, 0x09) AM_READ_PORT("IN3")
|
||||||
|
AM_RANGE(0x21, 0x21) AM_DEVWRITE("aysnd", ay8910_data_w) /* AY8910 data */
|
||||||
|
AM_RANGE(0x23, 0x23) AM_DEVWRITE("aysnd", ay8910_address_w) /* AY8910 control */
|
||||||
|
AM_RANGE(0x28, 0x28) AM_DEVWRITE("crtc", mc6845_address_w)
|
||||||
|
AM_RANGE(0x29, 0x29) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
/* I/O byte R/W
|
||||||
|
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
unknown writes:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
avtnfl and avtbingo have similarities.
|
||||||
|
avtsym seems different.
|
||||||
|
|
||||||
|
all access a000/c000 with an offset of 0x800 for video.
|
||||||
|
avtnfl and avtbingo use 28/29 for CRTC.
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Input Ports *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( symbols )
|
||||||
|
PORT_START("IN0")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("IN0-1")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_NAME("IN0-2")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_NAME("IN0-3")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("IN0-4")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5) PORT_NAME("IN0-5")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6) PORT_NAME("IN0-6")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7) PORT_NAME("IN0-7")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8) PORT_NAME("IN0-8")
|
||||||
|
|
||||||
|
PORT_START("IN1")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("IN1-1")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("IN1-2")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("IN1-3")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("IN1-4")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_T) PORT_NAME("IN1-5")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_NAME("IN1-6")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_NAME("IN1-7")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_NAME("IN1-8")
|
||||||
|
|
||||||
|
PORT_START("IN2")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("IN2-1")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("IN2-2")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("IN2-3")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) PORT_NAME("IN2-4")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_NAME("IN2-5")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("IN2-6")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("IN2-7")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("IN2-8")
|
||||||
|
|
||||||
|
PORT_START("IN3")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("IN3-1")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("IN3-2")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_NAME("IN3-3")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_NAME("IN3-4")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_NAME("IN3-5")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_NAME("IN3-6")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_NAME("IN3-7")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("IN3-8")
|
||||||
|
|
||||||
|
PORT_START("IN4")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("IN4-1")
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("IN4-2")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("IN4-3")
|
||||||
|
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("IN4-4")
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("IN4-5")
|
||||||
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("IN4-6")
|
||||||
|
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("IN4-7")
|
||||||
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("IN4-8")
|
||||||
|
|
||||||
|
PORT_START("DSW1")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
|
PORT_START("DSW2")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
|
PORT_START("DSW3")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
|
||||||
|
PORT_START("DSW4")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Graphics Layouts *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
static const gfx_layout tilelayout =
|
||||||
|
{
|
||||||
|
8, 8,
|
||||||
|
RGN_FRAC(1,6),
|
||||||
|
3,
|
||||||
|
{ 0, RGN_FRAC(1,3), RGN_FRAC(2,3) },
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7 },
|
||||||
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
||||||
|
8*8
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************
|
||||||
|
* Graphics Decode Information *
|
||||||
|
**************************************************/
|
||||||
|
|
||||||
|
static GFXDECODE_START( avt )
|
||||||
|
GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 16 )
|
||||||
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************
|
||||||
|
* CRTC Interface *
|
||||||
|
*******************************************/
|
||||||
|
|
||||||
|
static const mc6845_interface mc6845_intf =
|
||||||
|
{
|
||||||
|
"screen", /* screen we are acting on */
|
||||||
|
8, /* number of pixels per video memory address */
|
||||||
|
NULL, /* before pixel update callback */
|
||||||
|
NULL, /* row update callback */
|
||||||
|
NULL, /* after pixel update callback */
|
||||||
|
DEVCB_NULL, /* callback for display state changes */
|
||||||
|
DEVCB_NULL, /* callback for cursor state changes */
|
||||||
|
DEVCB_NULL, /* HSYNC callback */
|
||||||
|
DEVCB_NULL, /* VSYNC callback */
|
||||||
|
NULL /* update address callback */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************
|
||||||
|
* Sound Interfaces *
|
||||||
|
********************************************/
|
||||||
|
|
||||||
|
static const ay8910_interface ay8910_config =
|
||||||
|
{
|
||||||
|
AY8910_LEGACY_OUTPUT,
|
||||||
|
AY8910_DEFAULT_LOADS,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL,
|
||||||
|
DEVCB_NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Machine Drivers *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
static MACHINE_CONFIG_START( avt, driver_device )
|
||||||
|
|
||||||
|
/* basic machine hardware */
|
||||||
|
MDRV_CPU_ADD("maincpu", Z80, CPU_CLOCK) /* guess */
|
||||||
|
MDRV_CPU_PROGRAM_MAP(avt_map)
|
||||||
|
MDRV_CPU_IO_MAP(avt_portmap)
|
||||||
|
// MDRV_CPU_VBLANK_INT("screen", nmi_line_pulse)
|
||||||
|
|
||||||
|
/* video hardware */
|
||||||
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
|
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||||
|
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||||
|
MDRV_SCREEN_SIZE(32*8, 32*8)
|
||||||
|
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* 240x224 (through CRTC) */
|
||||||
|
|
||||||
|
MDRV_GFXDECODE(avt)
|
||||||
|
|
||||||
|
MDRV_PALETTE_INIT(avt)
|
||||||
|
MDRV_PALETTE_LENGTH(8*16)
|
||||||
|
|
||||||
|
MDRV_VIDEO_START(avt)
|
||||||
|
MDRV_VIDEO_UPDATE(avt)
|
||||||
|
|
||||||
|
MDRV_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* guess */
|
||||||
|
|
||||||
|
/* sound hardware */
|
||||||
|
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
MDRV_SOUND_ADD("aysnd", AY8910, CPU_CLOCK/2) /* 1.25 MHz.?? */
|
||||||
|
MDRV_SOUND_CONFIG(ay8910_config)
|
||||||
|
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||||
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Rom Load *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
ROM_START( avtsym14 )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "avt1.41.u38", 0x0000, 0x2000, CRC(af4f696a) SHA1(4e969da7db8929b835f5f237fad3b969d5e39ea2) )
|
||||||
|
ROM_LOAD( "avt1.42.u39", 0x2000, 0x2000, CRC(eeefbed5) SHA1(1142279fa4939f26c2386f4a9f880f65bed5ee3e) )
|
||||||
|
ROM_LOAD( "avt1.43.u40", 0x4000, 0x2000, CRC(906363fa) SHA1(39582c9cf53782d24af7a43fa285e15e8780080b) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||||
|
ROM_LOAD( "sym.blu", 0x0000, 0x2000, CRC(ee07339b) SHA1(260ac4739c90efa60597bf815d12fb96cf5391ed) )
|
||||||
|
ROM_LOAD( "sym.grn", 0x2000, 0x2000, CRC(1df023ac) SHA1(1919ddb835d525fd1843326de939af74693fc88a) )
|
||||||
|
ROM_LOAD( "sym.red", 0x4000, 0x2000, CRC(b7688164) SHA1(bc83af273000019f45e42503f8090c4ee8592ffa) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x0200, "proms", 0 )
|
||||||
|
ROM_LOAD( "symbols", 0x0000, 0x0200, CRC(c1a2ecd9) SHA1(21c7a2599e48fa1efccd4f46cf1c34888add2087) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( avtsym25 )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "u38-2.51.u38", 0x0000, 0x2000, CRC(230a43df) SHA1(395508d5824b50210d6341b958049da10c067201) )
|
||||||
|
ROM_LOAD( "u39-2.52.u39", 0x2000, 0x2000, CRC(a1a8f8f6) SHA1(96798fae534bdef6126eeb3e497fab47a4badae9) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||||
|
ROM_LOAD( "sym.blu", 0x0000, 0x2000, CRC(ee07339b) SHA1(260ac4739c90efa60597bf815d12fb96cf5391ed) )
|
||||||
|
ROM_LOAD( "sym.grn", 0x2000, 0x2000, CRC(1df023ac) SHA1(1919ddb835d525fd1843326de939af74693fc88a) )
|
||||||
|
ROM_LOAD( "sym.red", 0x4000, 0x2000, CRC(b7688164) SHA1(bc83af273000019f45e42503f8090c4ee8592ffa) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x0200, "proms", 0 )
|
||||||
|
ROM_LOAD( "symbols", 0x0000, 0x0200, CRC(c1a2ecd9) SHA1(21c7a2599e48fa1efccd4f46cf1c34888add2087) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( avtbingo )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "avtab.u38", 0x0000, 0x2000, CRC(db4cde32) SHA1(28b50e85e846f99e4314b2ccad6f55a5a3a9326d) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||||
|
ROM_LOAD( "abu18.grn", 0x0000, 0x2000, CRC(7a7fd4b0) SHA1(7af6e7f96921df8467a92794681bbd0f7278652e) )
|
||||||
|
ROM_LOAD( "abu18.blu", 0x2000, 0x2000, CRC(73ea8359) SHA1(58bd2c5ba8edcdf818e4b3d84f7bd05a7a05f76a) )
|
||||||
|
ROM_LOAD( "abu16.red", 0x4000, 0x2000, CRC(f823fe1c) SHA1(0b7d943f8daa465afa7790c57526c32b7b22bb71) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x0400, "proms", 0 )
|
||||||
|
ROM_LOAD( "bingo.avt", 0x0000, 0x0200, CRC(c1a2ecd9) SHA1(21c7a2599e48fa1efccd4f46cf1c34888add2087) )
|
||||||
|
ROM_LOAD( "avtbingo.u34", 0x0200, 0x0200, CRC(9454c3de) SHA1(df05f24e607b7494856e627c9f995ffa0cc043f7) ) /* unknown */
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
ROM_START( avtnfl )
|
||||||
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
|
ROM_LOAD( "u38-14.31", 0x0000, 0x2000, CRC(573a0003) SHA1(901ff091f3ce93735539614c6de2efdfda1e99a3) )
|
||||||
|
ROM_LOAD( "u39-14.32", 0x2000, 0x2000, CRC(9f9edfa8) SHA1(aa3b039ee1b7143473c996b49f0a13df18e3732d) )
|
||||||
|
ROM_LOAD( "u40-14.33", 0x4000, 0x2000, CRC(205910dd) SHA1(37fee06926e4dcd89ec6390b4914a852f12a9e25) )
|
||||||
|
|
||||||
|
/* GFX from Symbols for debugging purposes.
|
||||||
|
Original graphics are missing.
|
||||||
|
*/
|
||||||
|
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||||
|
ROM_LOAD( "avtnfl.blu", 0x0000, 0x2000, BAD_DUMP CRC(ee07339b) SHA1(260ac4739c90efa60597bf815d12fb96cf5391ed) )
|
||||||
|
ROM_LOAD( "avtnfl.grn", 0x2000, 0x2000, BAD_DUMP CRC(1df023ac) SHA1(1919ddb835d525fd1843326de939af74693fc88a) )
|
||||||
|
ROM_LOAD( "avtnfl.red", 0x4000, 0x2000, BAD_DUMP CRC(b7688164) SHA1(bc83af273000019f45e42503f8090c4ee8592ffa) )
|
||||||
|
|
||||||
|
ROM_REGION( 0x0200, "proms", 0 )
|
||||||
|
ROM_LOAD( "avtnfl", 0x0000, 0x0200, CRC(ac975c82) SHA1(9d124115cd7905482bc197462b65d3b5afdab99b) )
|
||||||
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************
|
||||||
|
* Game Drivers *
|
||||||
|
*********************************************/
|
||||||
|
|
||||||
|
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
||||||
|
GAME( 1985, avtsym14, 0, avt, symbols, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", GAME_NOT_WORKING )
|
||||||
|
GAME( 1985, avtsym25, avtsym14, avt, symbols, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", GAME_NOT_WORKING )
|
||||||
|
GAME( 1985, avtbingo, 0, avt, symbols, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", GAME_NOT_WORKING )
|
||||||
|
GAME( 1989, avtnfl, 0, avt, symbols, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", GAME_NOT_WORKING )
|
@ -1495,6 +1495,7 @@ $(MAMEOBJ)/misc.a: \
|
|||||||
$(DRIVERS)/artmagic.o $(VIDEO)/artmagic.o \
|
$(DRIVERS)/artmagic.o $(VIDEO)/artmagic.o \
|
||||||
$(DRIVERS)/astrocorp.o \
|
$(DRIVERS)/astrocorp.o \
|
||||||
$(DRIVERS)/attckufo.o \
|
$(DRIVERS)/attckufo.o \
|
||||||
|
$(DRIVERS)/avt.o \
|
||||||
$(DRIVERS)/aztarac.o $(AUDIO)/aztarac.o $(VIDEO)/aztarac.o \
|
$(DRIVERS)/aztarac.o $(AUDIO)/aztarac.o $(VIDEO)/aztarac.o \
|
||||||
$(DRIVERS)/beaminv.o \
|
$(DRIVERS)/beaminv.o \
|
||||||
$(DRIVERS)/bingor.o \
|
$(DRIVERS)/bingor.o \
|
||||||
|
@ -10474,4 +10474,10 @@ Other Sun games
|
|||||||
/* Labtronix Technologies */
|
/* Labtronix Technologies */
|
||||||
DRIVER( dualgame ) /* (c) 1995 Labtronix Technologies */
|
DRIVER( dualgame ) /* (c) 1995 Labtronix Technologies */
|
||||||
|
|
||||||
|
/* Advanced Video Technologies */
|
||||||
|
DRIVER( avtsym14 ) /* (c) 1985 AVT */
|
||||||
|
DRIVER( avtsym25 ) /* (c) 1985 AVT */
|
||||||
|
DRIVER( avtbingo ) /* (c) 1985 AVT */
|
||||||
|
DRIVER( avtnfl ) /* (c) 1989 AVT */
|
||||||
|
|
||||||
#endif /* DRIVER_RECURSIVE */
|
#endif /* DRIVER_RECURSIVE */
|
||||||
|
Loading…
Reference in New Issue
Block a user