mirror of
https://github.com/holub/mame
synced 2025-04-27 02:33:13 +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 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 "emu.h"
|
||||||
#include "cpu/z80/z80.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;
|
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);
|
uint16_t tile = m_videoram[count] | ((m_colorram[count] & 1) << 8);
|
||||||
uint8_t color = (m_colorram[count] & 0xf0) >> 4;
|
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++;
|
count++;
|
||||||
}
|
}
|
||||||
@ -597,6 +597,8 @@ PALETTE_INIT_MEMBER(avt_state, avt)
|
|||||||
// popmessage("written : %02X", data);
|
// popmessage("written : %02X", data);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
// [:crtc] M6845: Mode Control 10 is not supported!!!
|
||||||
|
|
||||||
WRITE8_MEMBER( avt_state::avt_6845_address_w )
|
WRITE8_MEMBER( avt_state::avt_6845_address_w )
|
||||||
{
|
{
|
||||||
m_crtc_index = data;
|
m_crtc_index = data;
|
||||||
@ -631,9 +633,9 @@ ADDRESS_MAP_END
|
|||||||
static ADDRESS_MAP_START( avt_portmap, AS_IO, 8, avt_state )
|
static ADDRESS_MAP_START( avt_portmap, AS_IO, 8, avt_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
// AM_RANGE(0x00, 0x03) unk, maybe IO
|
// 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(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, 0x0b) unk, maybe IO
|
||||||
// AM_RANGE(0x08, 0x08) AM_READ_PORT("IN2")
|
// AM_RANGE(0x08, 0x08) AM_READ_PORT("IN2")
|
||||||
// AM_RANGE(0x09, 0x09) AM_READ_PORT("IN3")
|
// 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
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/* I/O byte R/W
|
/* 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
|
||||||
|
|
||||||
|
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:
|
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.
|
avtnfl and avtbingo have similarities.
|
||||||
@ -659,7 +711,6 @@ ADDRESS_MAP_END
|
|||||||
all access a000/c000 with an offset of 0x800 for video.
|
all access a000/c000 with an offset of 0x800 for video.
|
||||||
avtnfl and avtbingo use 28/29 for CRTC.
|
avtnfl and avtbingo use 28/29 for CRTC.
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*********************************************
|
/*********************************************
|
||||||
@ -823,6 +874,20 @@ static INPUT_PORTS_START( symbols )
|
|||||||
INPUT_PORTS_END
|
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 *
|
* Graphics Layouts *
|
||||||
*********************************************/
|
*********************************************/
|
||||||
@ -960,8 +1025,8 @@ ROM_END
|
|||||||
* Game Drivers *
|
* Game Drivers *
|
||||||
*********************************************/
|
*********************************************/
|
||||||
|
|
||||||
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
|
/* 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, 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, 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( 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 )
|
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