mirror of
https://github.com/holub/mame
synced 2025-04-25 09:50:04 +03:00
Arrow Bingo: Fixed clocks to be more accurate, hooked principal inputs
to make the game playable, added technical notes and cleaned-up a bit the driver. [Roberto Fresca]
This commit is contained in:
parent
c6c6fb8cc0
commit
22afdaeeff
@ -405,9 +405,9 @@
|
||||
************************************************************************************************/
|
||||
|
||||
|
||||
#define MASTER_CLOCK XTAL_10MHz /* unknown */
|
||||
#define MASTER_CLOCK XTAL_16MHz /* unknown */
|
||||
#define CPU_CLOCK MASTER_CLOCK/4 /* guess... seems accurate */
|
||||
#define CRTC_CLOCK MASTER_CLOCK/16 /* it gives 59.410646 fps with current settings */
|
||||
#define CRTC_CLOCK MASTER_CLOCK/24 /* it gives 63.371293 Hz. with current settings */
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
@ -519,14 +519,14 @@ uint32_t avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitma
|
||||
|
||||
count = 0;
|
||||
|
||||
for(y=0;y<mc6845_v_display;y++)
|
||||
for(y = 0; y < mc6845_v_display; y++)
|
||||
{
|
||||
for(x=0;x<mc6845_h_display;x++)
|
||||
for(x = 0; x < mc6845_h_display; x++)
|
||||
{
|
||||
uint16_t tile = m_videoram[count] | ((m_colorram[count] & 1) << 8);
|
||||
uint8_t color = (m_colorram[count] & 0xf0) >> 4;
|
||||
|
||||
gfx->opaque(bitmap,cliprect,tile,color,0,0,x*8,(y*8));
|
||||
gfx->opaque(bitmap, cliprect, tile,color, 0, 0, x * 8, y * 8);
|
||||
|
||||
count++;
|
||||
}
|
||||
@ -597,6 +597,8 @@ PALETTE_INIT_MEMBER(avt_state, avt)
|
||||
// popmessage("written : %02X", data);
|
||||
//}
|
||||
|
||||
// [:crtc] M6845: Mode Control 10 is not supported!!!
|
||||
|
||||
WRITE8_MEMBER( avt_state::avt_6845_address_w )
|
||||
{
|
||||
m_crtc_index = data;
|
||||
@ -631,9 +633,9 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( avt_portmap, AS_IO, 8, avt_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
// AM_RANGE(0x00, 0x03) unk, maybe IO
|
||||
// AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
|
||||
// AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
|
||||
// AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
|
||||
// AM_RANGE(0x08, 0x0b) unk, maybe IO
|
||||
// AM_RANGE(0x08, 0x08) AM_READ_PORT("IN2")
|
||||
// AM_RANGE(0x09, 0x09) AM_READ_PORT("IN3")
|
||||
@ -644,13 +646,63 @@ static ADDRESS_MAP_START( avt_portmap, AS_IO, 8, avt_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/* I/O byte R/W
|
||||
(from avtbingo)
|
||||
|
||||
inputs are throusg port 02h, masked with 0x3F & 0x40.
|
||||
|
||||
02C3: DB 02 in a,($02)
|
||||
02C5: 2F cpl
|
||||
02C6: E6 3F and $3F
|
||||
02C8: C9 ret
|
||||
|
||||
02D1: DB 02 in a,($02)
|
||||
02D3: 2F cpl
|
||||
02D4: E6 3F and $3F
|
||||
02D6: CD B2 02 call $02B2
|
||||
02D9: C9 ret
|
||||
|
||||
0338: DB 02 in a,($02)
|
||||
033A: E6 40 and $40
|
||||
033C: 28 02 jr z,$0340
|
||||
033E: AF xor a
|
||||
033F: C9 ret
|
||||
|
||||
|
||||
-----------------
|
||||
poll the port 00h and compare with 0x03
|
||||
|
||||
unknown writes:
|
||||
1379: 0E 00 ld c,$00
|
||||
137B: ED 78 in a,(c)
|
||||
137D: FE 03 cp $03
|
||||
137F: 20 04 jr nz,$1385
|
||||
...code continues...
|
||||
|
||||
|
||||
-----------------
|
||||
|
||||
unknown writes:
|
||||
|
||||
[:maincpu] ':maincpu' (01D4): unmapped io memory write to 0001 = 0F & FF
|
||||
[:maincpu] ':maincpu' (01D8): unmapped io memory write to 0009 = 4F & FF
|
||||
[:maincpu] ':maincpu' (01DC): unmapped io memory write to 000B = CF & FF
|
||||
[:maincpu] ':maincpu' (01E0): unmapped io memory write to 000B = C0 & FF
|
||||
|
||||
[:maincpu] ':maincpu' (01E4): unmapped io memory write to 000A = C0 & FF \
|
||||
[:maincpu] ':maincpu' (02CD): unmapped io memory write to 000A = EE & FF \
|
||||
[:maincpu] ':maincpu' (030E): unmapped io memory write to 000A = C0 & FF > Alternate these values too often... Mux selector?
|
||||
[:maincpu] ':maincpu' (02CD): unmapped io memory write to 000A = EE & FF /
|
||||
[:maincpu] ':maincpu' (030E): unmapped io memory write to 000A = C0 & FF /
|
||||
|
||||
[:maincpu] ':maincpu' (0321): unmapped io memory write to 0003 = 06 & FF \
|
||||
[:maincpu] ':maincpu' (0325): unmapped io memory write to 0003 = CF & FF \
|
||||
[:maincpu] ':maincpu' (0329): unmapped io memory write to 0003 = FF & FF > Unknown commands.
|
||||
[:maincpu] ':maincpu' (032D): unmapped io memory write to 0003 = 97 & FF /
|
||||
[:maincpu] ':maincpu' (0331): unmapped io memory write to 0003 = F7 & FF /
|
||||
|
||||
[:maincpu] ':maincpu' (0335): unmapped io memory write to 000A = C0 & FF \
|
||||
[:maincpu] ':maincpu' (02CD): unmapped io memory write to 000A = EE & FF \
|
||||
[:maincpu] ':maincpu' (030E): unmapped io memory write to 000A = C0 & FF > Same as above...
|
||||
[:maincpu] ':maincpu' (02CD): unmapped io memory write to 000A = EE & FF /
|
||||
[:maincpu] ':maincpu' (030E): unmapped io memory write to 000A = C0 & FF /
|
||||
|
||||
|
||||
avtnfl and avtbingo have similarities.
|
||||
@ -659,7 +711,6 @@ ADDRESS_MAP_END
|
||||
all access a000/c000 with an offset of 0x800 for video.
|
||||
avtnfl and avtbingo use 28/29 for CRTC.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/*********************************************
|
||||
@ -823,6 +874,20 @@ static INPUT_PORTS_START( symbols )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( avtbingo )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Column 3 UP")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Column 2 UP")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Column 1 UP")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Column 5 UP")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Column 4 UP")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/*********************************************
|
||||
* Graphics Layouts *
|
||||
*********************************************/
|
||||
@ -960,8 +1025,8 @@ ROM_END
|
||||
* Game Drivers *
|
||||
*********************************************/
|
||||
|
||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1985, avtsym14, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", MACHINE_NOT_WORKING )
|
||||
GAME( 1985, avtsym25, avtsym14, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", MACHINE_NOT_WORKING )
|
||||
GAME( 1985, avtbingo, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", MACHINE_NOT_WORKING )
|
||||
GAME( 1989, avtnfl, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", MACHINE_NOT_WORKING )
|
||||
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1985, avtsym14, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", MACHINE_NOT_WORKING )
|
||||
GAME( 1985, avtsym25, avtsym14, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", MACHINE_NOT_WORKING )
|
||||
GAME( 1985, avtbingo, 0, avt, avtbingo, driver_device, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", MACHINE_NOT_WORKING )
|
||||
GAME( 1989, avtnfl, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", MACHINE_NOT_WORKING )
|
||||
|
Loading…
Reference in New Issue
Block a user