mirror of
https://github.com/holub/mame
synced 2025-06-30 07:58:56 +03:00
Merge branch 'master' of https://github.com/mamedev/mame.git
This commit is contained in:
commit
f07d274ac7
@ -638,7 +638,6 @@ void tms1400_cpu_device::device_reset()
|
||||
tms1100_cpu_device::device_reset();
|
||||
|
||||
// small differences in 00-3f area
|
||||
m_fixed_decode[0x09] = F_COMX;
|
||||
m_fixed_decode[0x0b] = F_TPC;
|
||||
}
|
||||
|
||||
|
@ -278,6 +278,8 @@ void emu_options::update_slot_options()
|
||||
}
|
||||
}
|
||||
}
|
||||
while (add_slot_options(false));
|
||||
add_device_options(false);
|
||||
}
|
||||
|
||||
|
||||
@ -365,8 +367,6 @@ bool emu_options::parse_slot_devices(int argc, char *argv[], astring &error_stri
|
||||
do {
|
||||
num = options_count();
|
||||
update_slot_options();
|
||||
while (add_slot_options(false));
|
||||
add_device_options(false);
|
||||
result = core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
|
||||
} while (num != options_count());
|
||||
|
||||
@ -502,8 +502,6 @@ void emu_options::set_system_name(const char *name)
|
||||
do {
|
||||
num = options_count();
|
||||
update_slot_options();
|
||||
while (add_slot_options(false));
|
||||
add_device_options(false);
|
||||
} while(num != options_count());
|
||||
}
|
||||
}
|
||||
|
@ -223,8 +223,10 @@ void via6522_device::device_start()
|
||||
save_item(NAME(m_acr));
|
||||
save_item(NAME(m_ier));
|
||||
save_item(NAME(m_ifr));
|
||||
save_item(NAME(m_time1));
|
||||
save_item(NAME(m_t1_active));
|
||||
save_item(NAME(m_t1_pb7));
|
||||
save_item(NAME(m_time2));
|
||||
save_item(NAME(m_t2_active));
|
||||
save_item(NAME(m_shift_counter));
|
||||
}
|
||||
|
@ -310,13 +310,13 @@ void ui_manager::display_startup_screens(bool first_time, bool show_disclaimer)
|
||||
const int maxstate = 4;
|
||||
int str = machine().options().seconds_to_run();
|
||||
bool show_gameinfo = !machine().options().skip_gameinfo();
|
||||
bool show_warnings = true;
|
||||
bool show_warnings = true, show_mandatory_fileman = true;
|
||||
int state;
|
||||
|
||||
// disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
|
||||
// or if we are debugging
|
||||
if (!first_time || (str > 0 && str < 60*5) || &machine().system() == &GAME_NAME(___empty) || (machine().debug_flags & DEBUG_FLAG_ENABLED) != 0)
|
||||
show_gameinfo = show_warnings = show_disclaimer = FALSE;
|
||||
show_gameinfo = show_warnings = show_disclaimer = show_mandatory_fileman = FALSE;
|
||||
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
// also disable for the JavaScript port since the startup screens do not run asynchronously
|
||||
@ -355,7 +355,7 @@ void ui_manager::display_startup_screens(bool first_time, bool show_disclaimer)
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (image_mandatory_scan(machine(), messagebox_text).len() > 0)
|
||||
if (show_mandatory_fileman && image_mandatory_scan(machine(), messagebox_text).len() > 0)
|
||||
{
|
||||
astring warning;
|
||||
warning.cpy("This driver requires images to be loaded in the following device(s): ").cat(messagebox_text.substr(0, messagebox_text.len() - 2));
|
||||
|
@ -13,7 +13,6 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m6502/m6502.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "includes/bogeyman.h"
|
||||
|
||||
|
||||
@ -21,23 +20,23 @@
|
||||
|
||||
// Sound section is copied from Mysterious Stones driver by Nicola, Mike, Brad
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_8910_latch_w)
|
||||
WRITE8_MEMBER(bogeyman_state::ay8910_latch_w)
|
||||
{
|
||||
m_psg_latch = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w)
|
||||
WRITE8_MEMBER(bogeyman_state::ay8910_control_w)
|
||||
{
|
||||
// bit 0 is flipscreen
|
||||
flip_screen_set(data & 0x01);
|
||||
|
||||
// bit 5 goes to 8910 #0 BDIR pin
|
||||
if ((m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00)
|
||||
machine().device<ay8910_device>("ay1")->data_address_w(space, m_last_write >> 4, m_psg_latch);
|
||||
m_ay1->data_address_w(space, m_last_write >> 4, m_psg_latch);
|
||||
|
||||
// bit 7 goes to 8910 #1 BDIR pin
|
||||
if ((m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00)
|
||||
machine().device<ay8910_device>("ay2")->data_address_w(space, m_last_write >> 6, m_psg_latch);
|
||||
m_ay2->data_address_w(space, m_last_write >> 6, m_psg_latch);
|
||||
|
||||
m_last_write = data;
|
||||
}
|
||||
@ -46,14 +45,14 @@ WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w)
|
||||
|
||||
static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8, bogeyman_state )
|
||||
AM_RANGE(0x0000, 0x17ff) AM_RAM
|
||||
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(bogeyman_videoram2_w) AM_SHARE("videoram2")
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(bogeyman_colorram2_w) AM_SHARE("colorram2")
|
||||
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(bogeyman_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE(bogeyman_colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
|
||||
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(colorram2_w) AM_SHARE("colorram2")
|
||||
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
|
||||
AM_RANGE(0x2800, 0x2bff) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE(bogeyman_paletteram_w) AM_SHARE("palette")
|
||||
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(bogeyman_8910_control_w)
|
||||
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(bogeyman_8910_latch_w)
|
||||
AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE(paletteram_w) AM_SHARE("palette")
|
||||
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(ay8910_control_w)
|
||||
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(ay8910_latch_w)
|
||||
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW2") AM_WRITENOP // ??? sound
|
||||
AM_RANGE(0x4000, 0xffff) AM_ROM
|
||||
@ -205,15 +204,17 @@ void bogeyman_state::machine_start()
|
||||
{
|
||||
save_item(NAME(m_psg_latch));
|
||||
save_item(NAME(m_last_write));
|
||||
save_item(NAME(m_colbank));
|
||||
}
|
||||
|
||||
void bogeyman_state::machine_reset()
|
||||
{
|
||||
m_psg_latch = 0;
|
||||
m_last_write = 0;
|
||||
m_colbank = 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_colbank_w)
|
||||
WRITE8_MEMBER(bogeyman_state::colbank_w)
|
||||
{
|
||||
if((data & 1) != (m_colbank & 1))
|
||||
{
|
||||
@ -237,7 +238,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bogeyman)
|
||||
@ -249,7 +250,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ay1", AY8910, 1500000) /* Verified */
|
||||
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(bogeyman_state, bogeyman_colbank_w))
|
||||
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(bogeyman_state, colbank_w))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
|
||||
|
||||
MCFG_SOUND_ADD("ay2", AY8910, 1500000) /* Verified */
|
||||
|
@ -738,6 +738,11 @@ ROM_START( sgnascar )
|
||||
ROM_LOAD32_WORD( "mpr-23483.ic32", 0xc000002, 0x1000000, CRC(c37adebe) SHA1(e84f6d2cc364c743f7f3b73d8c8d0271952bb093) )
|
||||
ROM_LOAD32_WORD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
||||
ROM_LOAD32_WORD( "mpr-23484.ic34", 0xe000002, 0x1000000, CRC(2ebe1aa1) SHA1(16b39f7422da1a334dde27169c2949e1d95bddb3) )
|
||||
|
||||
// 317-0283-COM Actel A54SX32
|
||||
// ID 0x4252
|
||||
ROM_REGION( 4, "rom_key", 0 )
|
||||
ROM_LOAD( "sgnascar-key.bin", 0x000000, 0x000004, CRC(f1452f9e) SHA1(86fb0f278a2eb0aba66a24032fb683f7a516b32b) )
|
||||
ROM_END
|
||||
|
||||
GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
|
||||
|
@ -26,15 +26,15 @@
|
||||
|
||||
static ADDRESS_MAP_START( yard_map, AS_PROGRAM, 8, m58_state )
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(yard_videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x9000, 0x9fff) AM_WRITE(yard_scroll_panel_w)
|
||||
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scroll_panel_w)
|
||||
AM_RANGE(0xc820, 0xc87f) AM_RAM AM_SHARE("spriteram")
|
||||
AM_RANGE(0xa000, 0xa000) AM_RAM AM_SHARE("scroll_x_low")
|
||||
AM_RANGE(0xa200, 0xa200) AM_RAM AM_SHARE("scroll_x_high")
|
||||
AM_RANGE(0xa400, 0xa400) AM_RAM AM_SHARE("scroll_y_low")
|
||||
AM_RANGE(0xa800, 0xa800) AM_RAM AM_SHARE("score_disable")
|
||||
AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("irem_audio", irem_audio_device, cmd_w)
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITE(yard_flipscreen_w) /* + coin counters */
|
||||
AM_RANGE(0xd001, 0xd001) AM_WRITE(flipscreen_w) /* + coin counters */
|
||||
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("IN2")
|
||||
@ -203,7 +203,7 @@ static MACHINE_CONFIG_START( yard, m58_state )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(m58_state, screen_update_yard)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(m58_state, screen_update)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -2462,7 +2462,7 @@ GAME( 1984, grobda3, grobda, grobda, grobda, mappy_state, grobda, ROT90
|
||||
|
||||
/* 3x6809, static tilemap, 2bpp sprites (Gaplus type) */
|
||||
GAME( 1983, phozon, 0, phozon, phozon, mappy_state, phozon, ROT90, "Namco", "Phozon (Japan)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, phozons, phozon, phozon, phozon, mappy_state, phozon, ROT90, "bootleg? (Sidam)", "Phozon (Sidam)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1983, phozons, phozon, phozon, phozon, mappy_state, phozon, ROT90, "Namco (Sidam license)", "Phozon (Sidam)", GAME_SUPPORTS_SAVE )
|
||||
|
||||
/* 2x6809, scroling tilemap, 4bpp sprites (Super Pacman type) */
|
||||
GAME( 1983, mappy, 0, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (US)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -6616,6 +6616,11 @@ DRIVER_INIT_MEMBER(pacman_state,mspacman)
|
||||
membank("bank1")->set_entry(1);
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(pacman_state, mschamp)
|
||||
{
|
||||
save_item(NAME(m_counter));
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(pacman_state,woodpek)
|
||||
{
|
||||
int i, len;
|
||||
@ -6844,8 +6849,8 @@ GAME( 1981, mspacii, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT
|
||||
GAME( 1981, mspacii2, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 2)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, pacgal, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pac-Man Plus", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mschamp, mspacman, mschamp, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", GAME_SUPPORTS_SAVE ) /* Rayglo version */
|
||||
GAME( 1995, mschamps, mspacman, mschamp, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mschamp, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", GAME_SUPPORTS_SAVE ) /* Rayglo version */
|
||||
GAME( 1995, mschamps, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", GAME_SUPPORTS_SAVE )
|
||||
|
||||
// These bootlegs have MADE IN GREECE clearly visible and etched into the PCBs. They were very common in Spain with several operators having their own versions.
|
||||
// Based on the PCBs and copyright dates shown they were produced late 80s / early 90s. Usually they run a version of Ms. Pacman, but were sometimes converted back to regular Pac-Man
|
||||
|
@ -4,20 +4,31 @@
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
class bogeyman_state : public driver_device
|
||||
{
|
||||
public:
|
||||
bogeyman_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette"),
|
||||
m_ay1(*this, "ay1"),
|
||||
m_ay2(*this, "ay2"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_videoram2(*this, "videoram2"),
|
||||
m_colorram(*this, "colorram"),
|
||||
m_colorram2(*this, "colorram2"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
m_spriteram(*this, "spriteram") { }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<ay8910_device> m_ay1;
|
||||
required_device<ay8910_device> m_ay2;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT8> m_videoram;
|
||||
required_shared_ptr<UINT8> m_videoram2;
|
||||
@ -34,23 +45,24 @@ public:
|
||||
int m_psg_latch;
|
||||
int m_last_write;
|
||||
int m_colbank;
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_8910_latch_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_8910_control_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_videoram2_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_colorram2_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_paletteram_w);
|
||||
DECLARE_WRITE8_MEMBER(bogeyman_colbank_w);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ay8910_latch_w);
|
||||
DECLARE_WRITE8_MEMBER(ay8910_control_w);
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(colorram_w);
|
||||
DECLARE_WRITE8_MEMBER(videoram2_w);
|
||||
DECLARE_WRITE8_MEMBER(colorram2_w);
|
||||
DECLARE_WRITE8_MEMBER(paletteram_w);
|
||||
DECLARE_WRITE8_MEMBER(colbank_w);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void video_start();
|
||||
|
||||
DECLARE_PALETTE_INIT(bogeyman);
|
||||
UINT32 screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
@ -3,42 +3,47 @@ class m58_state : public driver_device
|
||||
public:
|
||||
m58_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_yard_scroll_x_low(*this, "scroll_x_low"),
|
||||
m_yard_scroll_x_high(*this, "scroll_x_high"),
|
||||
m_yard_scroll_y_low(*this, "scroll_y_low"),
|
||||
m_yard_score_panel_disabled(*this, "score_disable"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT8> m_videoram;
|
||||
required_shared_ptr<UINT8> m_spriteram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t* m_bg_tilemap;
|
||||
|
||||
required_shared_ptr<UINT8> m_yard_scroll_x_low;
|
||||
required_shared_ptr<UINT8> m_yard_scroll_x_high;
|
||||
required_shared_ptr<UINT8> m_yard_scroll_y_low;
|
||||
required_shared_ptr<UINT8> m_yard_score_panel_disabled;
|
||||
bitmap_ind16 *m_scroll_panel_bitmap;
|
||||
DECLARE_WRITE8_MEMBER(yard_videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(yard_scroll_panel_w);
|
||||
DECLARE_WRITE8_MEMBER(yard_flipscreen_w);
|
||||
DECLARE_DRIVER_INIT(yard85);
|
||||
TILE_GET_INFO_MEMBER(yard_get_bg_tile_info);
|
||||
TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows);
|
||||
virtual void video_start();
|
||||
DECLARE_PALETTE_INIT(m58);
|
||||
UINT32 screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
m_palette(*this, "palette"),
|
||||
m_videoram(*this, "videoram"),
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_scroll_x_low(*this, "scroll_x_low"),
|
||||
m_scroll_x_high(*this, "scroll_x_high"),
|
||||
m_scroll_y_low(*this, "scroll_y_low"),
|
||||
m_score_panel_disabled(*this, "score_disable") { }
|
||||
|
||||
/* devices */
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
/* memory pointers */
|
||||
required_shared_ptr<UINT8> m_videoram;
|
||||
required_shared_ptr<UINT8> m_spriteram;
|
||||
required_shared_ptr<UINT8> m_scroll_x_low;
|
||||
required_shared_ptr<UINT8> m_scroll_x_high;
|
||||
required_shared_ptr<UINT8> m_scroll_y_low;
|
||||
required_shared_ptr<UINT8> m_score_panel_disabled;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t* m_bg_tilemap;
|
||||
bitmap_ind16 m_scroll_panel_bitmap;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||
DECLARE_WRITE8_MEMBER(scroll_panel_w);
|
||||
DECLARE_WRITE8_MEMBER(flipscreen_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(yard85);
|
||||
virtual void video_start();
|
||||
DECLARE_PALETTE_INIT(m58);
|
||||
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILEMAP_MAPPER_MEMBER(tilemap_scan_rows);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
void draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect );
|
||||
};
|
||||
|
@ -125,6 +125,7 @@ public:
|
||||
DECLARE_DRIVER_INIT(8bpm);
|
||||
DECLARE_DRIVER_INIT(porky);
|
||||
DECLARE_DRIVER_INIT(mspacman);
|
||||
DECLARE_DRIVER_INIT(mschamp);
|
||||
TILEMAP_MAPPER_MEMBER(pacman_scan_rows);
|
||||
TILE_GET_INFO_MEMBER(pacman_get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(s2650_get_tile_info);
|
||||
|
@ -36,31 +36,31 @@ PALETTE_INIT_MEMBER(bogeyman_state, bogeyman)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_videoram_w)
|
||||
WRITE8_MEMBER(bogeyman_state::videoram_w)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_colorram_w)
|
||||
WRITE8_MEMBER(bogeyman_state::colorram_w)
|
||||
{
|
||||
m_colorram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_videoram2_w)
|
||||
WRITE8_MEMBER(bogeyman_state::videoram2_w)
|
||||
{
|
||||
m_videoram2[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_colorram2_w)
|
||||
WRITE8_MEMBER(bogeyman_state::colorram2_w)
|
||||
{
|
||||
m_colorram2[offset] = data;
|
||||
m_fg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(bogeyman_state::bogeyman_paletteram_w)
|
||||
WRITE8_MEMBER(bogeyman_state::paletteram_w)
|
||||
{
|
||||
/* RGB output is inverted */
|
||||
m_palette->write(space, offset, UINT8(~data));
|
||||
@ -94,11 +94,9 @@ void bogeyman_state::video_start()
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
}
|
||||
|
||||
void bogeyman_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
void bogeyman_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs;
|
||||
|
||||
for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
|
||||
for (int offs = 0; offs < m_spriteram.bytes(); offs += 4)
|
||||
{
|
||||
int attr = m_spriteram[offs];
|
||||
|
||||
@ -139,7 +137,7 @@ void bogeyman_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipre
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 bogeyman_state::screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 bogeyman_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
|
@ -102,14 +102,14 @@ PALETTE_INIT_MEMBER(m58_state, m58)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE8_MEMBER(m58_state::yard_videoram_w)
|
||||
WRITE8_MEMBER(m58_state::videoram_w)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_bg_tilemap->mark_tile_dirty(offset / 2);
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(m58_state::yard_scroll_panel_w)
|
||||
WRITE8_MEMBER(m58_state::scroll_panel_w)
|
||||
{
|
||||
int sx,sy,i;
|
||||
|
||||
@ -128,7 +128,7 @@ WRITE8_MEMBER(m58_state::yard_scroll_panel_w)
|
||||
col = (data >> i) & 0x11;
|
||||
col = ((col >> 3) | col) & 3;
|
||||
|
||||
m_scroll_panel_bitmap->pix16(sy, sx + i) = RADAR_PALETTE_BASE + (sy & 0xfc) + col;
|
||||
m_scroll_panel_bitmap.pix16(sy, sx + i) = RADAR_PALETTE_BASE + (sy & 0xfc) + col;
|
||||
}
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ WRITE8_MEMBER(m58_state::yard_scroll_panel_w)
|
||||
*
|
||||
*************************************/
|
||||
|
||||
TILE_GET_INFO_MEMBER(m58_state::yard_get_bg_tile_info)
|
||||
TILE_GET_INFO_MEMBER(m58_state::get_bg_tile_info)
|
||||
{
|
||||
int offs = tile_index * 2;
|
||||
int attr = m_videoram[offs + 1];
|
||||
@ -152,7 +152,7 @@ TILE_GET_INFO_MEMBER(m58_state::yard_get_bg_tile_info)
|
||||
}
|
||||
|
||||
|
||||
TILEMAP_MAPPER_MEMBER(m58_state::yard_tilemap_scan_rows)
|
||||
TILEMAP_MAPPER_MEMBER(m58_state::tilemap_scan_rows)
|
||||
{
|
||||
/* logical (col,row) -> memory offset */
|
||||
if (col >= 32)
|
||||
@ -175,11 +175,13 @@ void m58_state::video_start()
|
||||
int height = m_screen->height();
|
||||
const rectangle &visarea = m_screen->visible_area();
|
||||
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::yard_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::yard_tilemap_scan_rows),this), 8, 8, 64, 32);
|
||||
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(m58_state::get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::tilemap_scan_rows),this), 8, 8, 64, 32);
|
||||
m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1));
|
||||
m_bg_tilemap->set_scrolldy(visarea.min_y - 8, height + 16 - (visarea.max_y + 1));
|
||||
|
||||
m_scroll_panel_bitmap = auto_bitmap_ind16_alloc(machine(), SCROLL_PANEL_WIDTH, height);
|
||||
//m_scroll_panel_bitmap = auto_bitmap_ind16_alloc(machine(), SCROLL_PANEL_WIDTH, height);
|
||||
m_screen->register_screen_bitmap(m_scroll_panel_bitmap);
|
||||
save_item(NAME(m_scroll_panel_bitmap));
|
||||
}
|
||||
|
||||
|
||||
@ -190,7 +192,7 @@ void m58_state::video_start()
|
||||
*
|
||||
*************************************/
|
||||
|
||||
WRITE8_MEMBER(m58_state::yard_flipscreen_w)
|
||||
WRITE8_MEMBER(m58_state::flipscreen_w)
|
||||
{
|
||||
/* screen flip is handled both by software and hardware */
|
||||
flip_screen_set((data & 0x01) ^ (~ioport("DSW2")->read() & 0x01));
|
||||
@ -265,7 +267,7 @@ void m58_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
|
||||
void m58_state::draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
{
|
||||
if (!*m_yard_score_panel_disabled)
|
||||
if (!*m_score_panel_disabled)
|
||||
{
|
||||
const rectangle clippanel(26*8, 32*8-1, 1*8, 31*8-1);
|
||||
const rectangle clippanelflip(0*8, 6*8-1, 1*8, 31*8-1);
|
||||
@ -278,7 +280,7 @@ void m58_state::draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
clip.max_y += visarea.max_y + yoffs;
|
||||
clip &= cliprect;
|
||||
|
||||
copybitmap(bitmap, *m_scroll_panel_bitmap, flip_screen(), flip_screen(),
|
||||
copybitmap(bitmap, m_scroll_panel_bitmap, flip_screen(), flip_screen(),
|
||||
sx, visarea.min_y + yoffs, clip);
|
||||
}
|
||||
}
|
||||
@ -291,10 +293,10 @@ void m58_state::draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect )
|
||||
*
|
||||
*************************************/
|
||||
|
||||
UINT32 m58_state::screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
UINT32 m58_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->set_scrollx(0, (*m_yard_scroll_x_high * 0x100) + *m_yard_scroll_x_low);
|
||||
m_bg_tilemap->set_scrolly(0, *m_yard_scroll_y_low);
|
||||
m_bg_tilemap->set_scrollx(0, (*m_scroll_x_high * 0x100) + *m_scroll_x_low);
|
||||
m_bg_tilemap->set_scrolly(0, *m_scroll_y_low);
|
||||
|
||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
draw_sprites(bitmap, cliprect);
|
||||
|
@ -67,9 +67,11 @@
|
||||
#include "machine/pit8253.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/wd_fdc.h"
|
||||
#include "machine/wd2010.h"
|
||||
#include "bus/rs232/rs232.h"
|
||||
#include "machine/ngen_kb.h"
|
||||
#include "machine/clock.h"
|
||||
#include "imagedev/harddriv.h"
|
||||
|
||||
class ngen_state : public driver_device
|
||||
{
|
||||
@ -89,7 +91,9 @@ public:
|
||||
m_fdc(*this,"fdc"),
|
||||
m_fd0(*this,"fdc:0"),
|
||||
m_fdc_timer(*this,"fdc_timer"),
|
||||
m_hdc_timer(*this,"hdc_timer")
|
||||
m_hdc(*this,"hdc"),
|
||||
m_hdc_timer(*this,"hdc_timer"),
|
||||
m_hd_buffer(*this,"hd_buffer_ram")
|
||||
{}
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
|
||||
@ -129,9 +133,12 @@ public:
|
||||
DECLARE_READ8_MEMBER(irq_cb);
|
||||
DECLARE_WRITE8_MEMBER(hdc_control_w);
|
||||
DECLARE_WRITE8_MEMBER(disk_addr_ext);
|
||||
DECLARE_READ8_MEMBER(hd_buffer_r);
|
||||
DECLARE_WRITE8_MEMBER(hd_buffer_w);
|
||||
|
||||
protected:
|
||||
virtual void machine_reset();
|
||||
virtual void machine_start();
|
||||
|
||||
private:
|
||||
required_device<i80186_cpu_device> m_maincpu;
|
||||
@ -147,7 +154,9 @@ private:
|
||||
optional_device<wd2797_t> m_fdc;
|
||||
optional_device<floppy_connector> m_fd0;
|
||||
optional_device<pit8253_device> m_fdc_timer;
|
||||
optional_device<wd2010_device> m_hdc;
|
||||
optional_device<pit8253_device> m_hdc_timer;
|
||||
optional_shared_ptr<UINT8> m_hd_buffer;
|
||||
|
||||
void set_dma_channel(int channel, int state);
|
||||
|
||||
@ -470,7 +479,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
||||
case 0x0a:
|
||||
case 0x0b:
|
||||
if(mem_mask & 0x00ff)
|
||||
m_fdc_timer->write(space,offset,data & 0xff);
|
||||
m_fdc_timer->write(space,offset-0x08,data & 0xff);
|
||||
break;
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
@ -480,6 +489,8 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
if(mem_mask & 0x00ff)
|
||||
m_hdc->write(space,offset-0x10,data & 0xff);
|
||||
logerror("WD1010 register %i write %02x mask %04x\n",offset-0x10,data & 0xff,mem_mask);
|
||||
break;
|
||||
case 0x18:
|
||||
@ -487,7 +498,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
||||
case 0x1a:
|
||||
case 0x1b:
|
||||
if(mem_mask & 0x00ff)
|
||||
m_hdc_timer->write(space,offset,data & 0xff);
|
||||
m_hdc_timer->write(space,offset-0x18,data & 0xff);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -510,7 +521,7 @@ READ16_MEMBER(ngen_state::fhd_r)
|
||||
case 0x0a:
|
||||
case 0x0b:
|
||||
if(mem_mask & 0x00ff)
|
||||
ret = m_fdc_timer->read(space,offset);
|
||||
ret = m_fdc_timer->read(space,offset-0x08);
|
||||
break;
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
@ -520,6 +531,8 @@ READ16_MEMBER(ngen_state::fhd_r)
|
||||
case 0x15:
|
||||
case 0x16:
|
||||
case 0x17:
|
||||
if(mem_mask & 0x00ff)
|
||||
ret = m_hdc->read(space,offset-0x10);
|
||||
logerror("WD1010 register %i read, mask %04x\n",offset-0x10,mem_mask);
|
||||
break;
|
||||
case 0x18:
|
||||
@ -527,7 +540,7 @@ READ16_MEMBER(ngen_state::fhd_r)
|
||||
case 0x1a:
|
||||
case 0x1b:
|
||||
if(mem_mask & 0x00ff)
|
||||
ret = m_hdc_timer->read(space,offset);
|
||||
ret = m_hdc_timer->read(space,offset-0x18);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -585,6 +598,16 @@ WRITE8_MEMBER(ngen_state::disk_addr_ext)
|
||||
m_disk_page = data & 0x7f;
|
||||
}
|
||||
|
||||
READ8_MEMBER(ngen_state::hd_buffer_r)
|
||||
{
|
||||
return m_hd_buffer[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ngen_state::hd_buffer_w)
|
||||
{
|
||||
m_hd_buffer[offset] = data;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER( ngen_state::dma_hrq_changed )
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
|
||||
@ -603,7 +626,7 @@ WRITE_LINE_MEMBER( ngen_state::dma_eop_changed )
|
||||
{
|
||||
if(state)
|
||||
{
|
||||
if(m_hdc_control & 0x04) // ROM transfer?
|
||||
if(m_hdc_control & 0x04) // ROM transfer
|
||||
m_hdc_control &= ~0x04; // switch it off when done
|
||||
}
|
||||
}
|
||||
@ -689,6 +712,11 @@ READ8_MEMBER( ngen_state::irq_cb )
|
||||
return m_pic->acknowledge();
|
||||
}
|
||||
|
||||
void ngen_state::machine_start()
|
||||
{
|
||||
m_hd_buffer.allocate(1024*8); // 8kB buffer RAM for HD controller
|
||||
}
|
||||
|
||||
void ngen_state::machine_reset()
|
||||
{
|
||||
m_port00 = 0;
|
||||
@ -837,15 +865,25 @@ static MACHINE_CONFIG_START( ngen, ngen_state )
|
||||
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu",i80186_cpu_device,drq1_w))
|
||||
MCFG_WD_FDC_FORCE_READY
|
||||
MCFG_DEVICE_ADD("fdc_timer", PIT8253, 0)
|
||||
MCFG_PIT8253_CLK0(XTAL_20MHz / 20)
|
||||
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
||||
MCFG_PIT8253_CLK0(XTAL_20MHz / 20)
|
||||
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w)) // clocked on FDC data register access
|
||||
MCFG_PIT8253_CLK1(XTAL_20MHz / 20)
|
||||
MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
||||
MCFG_PIT8253_CLK2(XTAL_20MHz / 20)
|
||||
MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
||||
// TODO: WD1010 HDC (not implemented)
|
||||
MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w)) // 1MHz
|
||||
MCFG_PIT8253_CLK2(XTAL_20MHz / 10)
|
||||
MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
||||
// TODO: WD1010 HDC (not implemented), use WD2010 for now
|
||||
MCFG_DEVICE_ADD("hdc", WD2010, XTAL_20MHz / 4)
|
||||
MCFG_WD2010_IN_BCS_CB(READ8(ngen_state,hd_buffer_r))
|
||||
MCFG_WD2010_OUT_BCS_CB(WRITE8(ngen_state,hd_buffer_w))
|
||||
MCFG_WD2010_IN_DRDY_CB(VCC)
|
||||
MCFG_WD2010_IN_INDEX_CB(VCC)
|
||||
MCFG_WD2010_IN_WF_CB(VCC)
|
||||
MCFG_WD2010_IN_TK000_CB(VCC)
|
||||
MCFG_WD2010_IN_SC_CB(VCC)
|
||||
MCFG_DEVICE_ADD("hdc_timer", PIT8253, 0)
|
||||
MCFG_PIT8253_CLK2(XTAL_20MHz / 10) // 2MHz
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ngen_floppies, "525qd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_HARDDISK_ADD("hard0")
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -679,8 +679,10 @@ INTERRUPT_GEN_MEMBER(pasogo_state::pasogo_interrupt)
|
||||
void pasogo_state::machine_reset()
|
||||
{
|
||||
astring region_tag;
|
||||
m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
|
||||
m_maincpu_rom = memregion("maincpu");
|
||||
m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
|
||||
if (!m_cart_rom) // this should never happen, since we make carts mandatory!
|
||||
m_cart_rom = memregion("maincpu");
|
||||
|
||||
membank("bank27")->set_base(m_cart_rom->base());
|
||||
membank("bank28")->set_base(m_maincpu_rom->base() + 0xb8000/*?*/);
|
||||
|
@ -4,8 +4,21 @@
|
||||
|
||||
Parker Brothers Split Second
|
||||
* TMS1400NLL MP7314-N2 (die labeled MP7314)
|
||||
|
||||
This is an electronic handheld reflex gaming device, it's straightforward
|
||||
to use. The included mini-games are:
|
||||
1, 2, 3: Mad Maze*
|
||||
4, 5: Space Attack*
|
||||
6: Auto Cross
|
||||
7: Stomp
|
||||
8: Speedball
|
||||
|
||||
*: higher number indicates harder difficulty
|
||||
|
||||
|
||||
TODO:
|
||||
- MCU clock is unknown
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -14,9 +27,13 @@
|
||||
|
||||
#include "splitsec.lh"
|
||||
|
||||
// master clock is a single stage RC oscillator: R=24K, C=100pf,
|
||||
// according to the TMS 1000 series data manual this is around 375kHz
|
||||
#define MASTER_CLOCK (375000)
|
||||
// The master clock is a single stage RC oscillator: R=24K, C=100pf,
|
||||
// according to the TMS 1000 series data manual this is around 375kHz.
|
||||
// However, this sounds too low-pitched and runs too slow when compared
|
||||
// to recordings, maybe the RC osc curve is different for TMS1400?
|
||||
|
||||
// so for now, the value below is an approximation
|
||||
#define MASTER_CLOCK (485000)
|
||||
|
||||
|
||||
class splitsec_state : public driver_device
|
||||
@ -160,13 +177,13 @@ WRITE16_MEMBER(splitsec_state::write_o)
|
||||
|
||||
static INPUT_PORTS_START( splitsec )
|
||||
PORT_START("IN.0") // R9
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // R10
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Select")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
@ -230,7 +247,7 @@ MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( splitsec )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "tms1400nll_mp7314", 0x0000, 0x1000, CRC(0cccdf59) SHA1(06a533134a433aaf856b80f0ca239d0498b98d5f) )
|
||||
ROM_LOAD( "tms1400nll_mp7314", 0x0000, 0x1000, CRC(e94b2098) SHA1(f0fc1f56a829252185592a2508740354c50bedf8) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1100_default_mpla.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
|
||||
@ -239,4 +256,4 @@ ROM_START( splitsec )
|
||||
ROM_END
|
||||
|
||||
|
||||
CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
|
||||
CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", GAME_SUPPORTS_SAVE )
|
||||
|
@ -25,69 +25,69 @@
|
||||
|
||||
<!-- maze of lamps -->
|
||||
|
||||
<bezel name="lamp6" element="lamp_rect"><bounds x="2" y="1" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp4" element="lamp_rect"><bounds x="7" y="1" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp2" element="lamp_rect"><bounds x="12" y="1" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp0" element="lamp_rect"><bounds x="2" y="1" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp2" element="lamp_rect"><bounds x="7" y="1" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp4" element="lamp_rect"><bounds x="12" y="1" width="4" height="1" /></bezel>
|
||||
|
||||
<bezel name="lamp16" element="lamp_rect"><bounds x="1" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp5" element="lamp_disk"><bounds x="3" y="3" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp14" element="lamp_rect"><bounds x="6" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp10" element="lamp_rect"><bounds x="1" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp1" element="lamp_disk"><bounds x="3" y="3" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp12" element="lamp_rect"><bounds x="6" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp3" element="lamp_disk"><bounds x="8" y="3" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp12" element="lamp_rect"><bounds x="11" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp1" element="lamp_disk"><bounds x="13" y="3" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp10" element="lamp_rect"><bounds x="16" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp14" element="lamp_rect"><bounds x="11" y="2" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp5" element="lamp_disk"><bounds x="13" y="3" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp16" element="lamp_rect"><bounds x="16" y="2" width="1" height="4" /></bezel>
|
||||
|
||||
<bezel name="lamp15" element="lamp_rect"><bounds x="2" y="6" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp11" element="lamp_rect"><bounds x="2" y="6" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp13" element="lamp_rect"><bounds x="7" y="6" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp11" element="lamp_rect"><bounds x="12" y="6" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp15" element="lamp_rect"><bounds x="12" y="6" width="4" height="1" /></bezel>
|
||||
|
||||
<bezel name="lamp26" element="lamp_rect"><bounds x="1" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp25" element="lamp_disk"><bounds x="3" y="8" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp24" element="lamp_rect"><bounds x="6" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp20" element="lamp_rect"><bounds x="1" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp21" element="lamp_disk"><bounds x="3" y="8" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp22" element="lamp_rect"><bounds x="6" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp23" element="lamp_disk"><bounds x="8" y="8" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp22" element="lamp_rect"><bounds x="11" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp21" element="lamp_disk"><bounds x="13" y="8" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp20" element="lamp_rect"><bounds x="16" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp24" element="lamp_rect"><bounds x="11" y="7" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp25" element="lamp_disk"><bounds x="13" y="8" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp26" element="lamp_rect"><bounds x="16" y="7" width="1" height="4" /></bezel>
|
||||
|
||||
<bezel name="lamp35" element="lamp_rect"><bounds x="2" y="11" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp31" element="lamp_rect"><bounds x="2" y="11" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp33" element="lamp_rect"><bounds x="7" y="11" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp31" element="lamp_rect"><bounds x="12" y="11" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp35" element="lamp_rect"><bounds x="12" y="11" width="4" height="1" /></bezel>
|
||||
|
||||
<bezel name="lamp36" element="lamp_rect"><bounds x="1" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp45" element="lamp_disk"><bounds x="3" y="13" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp34" element="lamp_rect"><bounds x="6" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp30" element="lamp_rect"><bounds x="1" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp41" element="lamp_disk"><bounds x="3" y="13" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp32" element="lamp_rect"><bounds x="6" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp43" element="lamp_disk"><bounds x="8" y="13" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp32" element="lamp_rect"><bounds x="11" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp41" element="lamp_disk"><bounds x="13" y="13" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp30" element="lamp_rect"><bounds x="16" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp34" element="lamp_rect"><bounds x="11" y="12" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp45" element="lamp_disk"><bounds x="13" y="13" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp36" element="lamp_rect"><bounds x="16" y="12" width="1" height="4" /></bezel>
|
||||
|
||||
<bezel name="lamp55" element="lamp_rect"><bounds x="2" y="16" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp51" element="lamp_rect"><bounds x="2" y="16" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp53" element="lamp_rect"><bounds x="7" y="16" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp51" element="lamp_rect"><bounds x="12" y="16" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp55" element="lamp_rect"><bounds x="12" y="16" width="4" height="1" /></bezel>
|
||||
|
||||
<bezel name="lamp46" element="lamp_rect"><bounds x="1" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp65" element="lamp_disk"><bounds x="3" y="18" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp44" element="lamp_rect"><bounds x="6" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp40" element="lamp_rect"><bounds x="1" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp61" element="lamp_disk"><bounds x="3" y="18" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp42" element="lamp_rect"><bounds x="6" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp63" element="lamp_disk"><bounds x="8" y="18" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp42" element="lamp_rect"><bounds x="11" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp61" element="lamp_disk"><bounds x="13" y="18" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp40" element="lamp_rect"><bounds x="16" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp44" element="lamp_rect"><bounds x="11" y="17" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp65" element="lamp_disk"><bounds x="13" y="18" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp46" element="lamp_rect"><bounds x="16" y="17" width="1" height="4" /></bezel>
|
||||
|
||||
<bezel name="lamp75" element="lamp_rect"><bounds x="2" y="21" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp71" element="lamp_rect"><bounds x="2" y="21" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp73" element="lamp_rect"><bounds x="7" y="21" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp71" element="lamp_rect"><bounds x="12" y="21" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp75" element="lamp_rect"><bounds x="12" y="21" width="4" height="1" /></bezel>
|
||||
|
||||
<bezel name="lamp56" element="lamp_rect"><bounds x="1" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp66" element="lamp_disk"><bounds x="3" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp54" element="lamp_rect"><bounds x="6" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp64" element="lamp_disk"><bounds x="8" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp52" element="lamp_rect"><bounds x="11" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp62" element="lamp_disk"><bounds x="13" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp50" element="lamp_rect"><bounds x="16" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp50" element="lamp_rect"><bounds x="1" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp60" element="lamp_disk"><bounds x="3" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp52" element="lamp_rect"><bounds x="6" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp62" element="lamp_disk"><bounds x="8" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp54" element="lamp_rect"><bounds x="11" y="22" width="1" height="4" /></bezel>
|
||||
<bezel name="lamp64" element="lamp_disk"><bounds x="13" y="23" width="2" height="2" /></bezel>
|
||||
<bezel name="lamp56" element="lamp_rect"><bounds x="16" y="22" width="1" height="4" /></bezel>
|
||||
|
||||
<bezel name="lamp76" element="lamp_rect"><bounds x="2" y="26" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp74" element="lamp_rect"><bounds x="7" y="26" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp72" element="lamp_rect"><bounds x="12" y="26" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp70" element="lamp_rect"><bounds x="2" y="26" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp72" element="lamp_rect"><bounds x="7" y="26" width="4" height="1" /></bezel>
|
||||
<bezel name="lamp74" element="lamp_rect"><bounds x="12" y="26" width="4" height="1" /></bezel>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
||||
|
@ -2842,7 +2842,7 @@ void amstrad_state::enumerate_roms()
|
||||
int i;
|
||||
bool slot3 = false,slot7 = false;
|
||||
|
||||
if(m_system_type == SYSTEM_PLUS || m_system_type == SYSTEM_GX4000)
|
||||
if (m_system_type == SYSTEM_PLUS || m_system_type == SYSTEM_GX4000)
|
||||
{
|
||||
UINT8 *crt = m_region_cart->base();
|
||||
int bank_mask = (m_cart->get_rom_size() / 0x4000) - 1;
|
||||
@ -3034,6 +3034,8 @@ MACHINE_START_MEMBER(amstrad_state,plus)
|
||||
|
||||
astring region_tag;
|
||||
m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
|
||||
if (!m_region_cart) // this should never happen, since we make carts mandatory!
|
||||
m_region_cart = memregion("maincpu");
|
||||
}
|
||||
|
||||
|
||||
@ -3076,6 +3078,8 @@ MACHINE_START_MEMBER(amstrad_state,gx4000)
|
||||
|
||||
astring region_tag;
|
||||
m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
|
||||
if (!m_region_cart) // this should never happen, since we make carts mandatory!
|
||||
m_region_cart = memregion("maincpu");
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(amstrad_state,gx4000)
|
||||
|
Loading…
Reference in New Issue
Block a user