mirror of
https://github.com/holub/mame
synced 2025-07-01 00:09:18 +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();
|
tms1100_cpu_device::device_reset();
|
||||||
|
|
||||||
// small differences in 00-3f area
|
// small differences in 00-3f area
|
||||||
m_fixed_decode[0x09] = F_COMX;
|
|
||||||
m_fixed_decode[0x0b] = F_TPC;
|
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 {
|
do {
|
||||||
num = options_count();
|
num = options_count();
|
||||||
update_slot_options();
|
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);
|
result = core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
|
||||||
} while (num != options_count());
|
} while (num != options_count());
|
||||||
|
|
||||||
@ -502,8 +502,6 @@ void emu_options::set_system_name(const char *name)
|
|||||||
do {
|
do {
|
||||||
num = options_count();
|
num = options_count();
|
||||||
update_slot_options();
|
update_slot_options();
|
||||||
while (add_slot_options(false));
|
|
||||||
add_device_options(false);
|
|
||||||
} while(num != options_count());
|
} while(num != options_count());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -223,8 +223,10 @@ void via6522_device::device_start()
|
|||||||
save_item(NAME(m_acr));
|
save_item(NAME(m_acr));
|
||||||
save_item(NAME(m_ier));
|
save_item(NAME(m_ier));
|
||||||
save_item(NAME(m_ifr));
|
save_item(NAME(m_ifr));
|
||||||
|
save_item(NAME(m_time1));
|
||||||
save_item(NAME(m_t1_active));
|
save_item(NAME(m_t1_active));
|
||||||
save_item(NAME(m_t1_pb7));
|
save_item(NAME(m_t1_pb7));
|
||||||
|
save_item(NAME(m_time2));
|
||||||
save_item(NAME(m_t2_active));
|
save_item(NAME(m_t2_active));
|
||||||
save_item(NAME(m_shift_counter));
|
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;
|
const int maxstate = 4;
|
||||||
int str = machine().options().seconds_to_run();
|
int str = machine().options().seconds_to_run();
|
||||||
bool show_gameinfo = !machine().options().skip_gameinfo();
|
bool show_gameinfo = !machine().options().skip_gameinfo();
|
||||||
bool show_warnings = true;
|
bool show_warnings = true, show_mandatory_fileman = true;
|
||||||
int state;
|
int state;
|
||||||
|
|
||||||
// disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
|
// disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
|
||||||
// or if we are debugging
|
// 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)
|
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
|
#ifdef SDLMAME_EMSCRIPTEN
|
||||||
// also disable for the JavaScript port since the startup screens do not run asynchronously
|
// 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;
|
break;
|
||||||
|
|
||||||
case 3:
|
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;
|
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));
|
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 "emu.h"
|
||||||
#include "cpu/m6502/m6502.h"
|
#include "cpu/m6502/m6502.h"
|
||||||
#include "sound/ay8910.h"
|
|
||||||
#include "includes/bogeyman.h"
|
#include "includes/bogeyman.h"
|
||||||
|
|
||||||
|
|
||||||
@ -21,23 +20,23 @@
|
|||||||
|
|
||||||
// Sound section is copied from Mysterious Stones driver by Nicola, Mike, Brad
|
// 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;
|
m_psg_latch = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w)
|
WRITE8_MEMBER(bogeyman_state::ay8910_control_w)
|
||||||
{
|
{
|
||||||
// bit 0 is flipscreen
|
// bit 0 is flipscreen
|
||||||
flip_screen_set(data & 0x01);
|
flip_screen_set(data & 0x01);
|
||||||
|
|
||||||
// bit 5 goes to 8910 #0 BDIR pin
|
// bit 5 goes to 8910 #0 BDIR pin
|
||||||
if ((m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00)
|
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
|
// bit 7 goes to 8910 #1 BDIR pin
|
||||||
if ((m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00)
|
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;
|
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 )
|
static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8, bogeyman_state )
|
||||||
AM_RANGE(0x0000, 0x17ff) AM_RAM
|
AM_RANGE(0x0000, 0x17ff) AM_RAM
|
||||||
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(bogeyman_videoram2_w) AM_SHARE("videoram2")
|
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
|
||||||
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(bogeyman_colorram2_w) AM_SHARE("colorram2")
|
AM_RANGE(0x1c00, 0x1fff) AM_RAM_WRITE(colorram2_w) AM_SHARE("colorram2")
|
||||||
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(bogeyman_videoram_w) AM_SHARE("videoram")
|
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||||
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE(bogeyman_colorram_w) AM_SHARE("colorram")
|
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
|
||||||
AM_RANGE(0x2800, 0x2bff) AM_RAM AM_SHARE("spriteram")
|
AM_RANGE(0x2800, 0x2bff) AM_RAM AM_SHARE("spriteram")
|
||||||
AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE(bogeyman_paletteram_w) AM_SHARE("palette")
|
AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE(paletteram_w) AM_SHARE("palette")
|
||||||
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(bogeyman_8910_control_w)
|
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(ay8910_control_w)
|
||||||
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(bogeyman_8910_latch_w)
|
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(ay8910_latch_w)
|
||||||
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW1")
|
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW1")
|
||||||
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW2") AM_WRITENOP // ??? sound
|
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW2") AM_WRITENOP // ??? sound
|
||||||
AM_RANGE(0x4000, 0xffff) AM_ROM
|
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_psg_latch));
|
||||||
save_item(NAME(m_last_write));
|
save_item(NAME(m_last_write));
|
||||||
|
save_item(NAME(m_colbank));
|
||||||
}
|
}
|
||||||
|
|
||||||
void bogeyman_state::machine_reset()
|
void bogeyman_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_psg_latch = 0;
|
m_psg_latch = 0;
|
||||||
m_last_write = 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))
|
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_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
||||||
MCFG_SCREEN_SIZE(32*8, 32*8)
|
MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
|
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_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bogeyman)
|
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bogeyman)
|
||||||
@ -249,7 +250,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
|
|||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ay1", AY8910, 1500000) /* Verified */
|
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_ROUTE(ALL_OUTPUTS, "mono", 0.30)
|
||||||
|
|
||||||
MCFG_SOUND_ADD("ay2", AY8910, 1500000) /* Verified */
|
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-23483.ic32", 0xc000002, 0x1000000, CRC(c37adebe) SHA1(e84f6d2cc364c743f7f3b73d8c8d0271952bb093) )
|
||||||
ROM_LOAD32_WORD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
ROM_LOAD32_WORD( "mpr-23480.ic33", 0xe000000, 0x1000000, CRC(f517b8b3) SHA1(c04740adb612473c4c9f8186e7e93d2f73d1bb1a) )
|
||||||
ROM_LOAD32_WORD( "mpr-23484.ic34", 0xe000002, 0x1000000, CRC(2ebe1aa1) SHA1(16b39f7422da1a334dde27169c2949e1d95bddb3) )
|
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
|
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 )
|
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 )
|
static ADDRESS_MAP_START( yard_map, AS_PROGRAM, 8, m58_state )
|
||||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||||
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(yard_videoram_w) AM_SHARE("videoram")
|
AM_RANGE(0x8000, 0x8fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
|
||||||
AM_RANGE(0x9000, 0x9fff) AM_WRITE(yard_scroll_panel_w)
|
AM_RANGE(0x9000, 0x9fff) AM_WRITE(scroll_panel_w)
|
||||||
AM_RANGE(0xc820, 0xc87f) AM_RAM AM_SHARE("spriteram")
|
AM_RANGE(0xc820, 0xc87f) AM_RAM AM_SHARE("spriteram")
|
||||||
AM_RANGE(0xa000, 0xa000) AM_RAM AM_SHARE("scroll_x_low")
|
AM_RANGE(0xa000, 0xa000) AM_RAM AM_SHARE("scroll_x_low")
|
||||||
AM_RANGE(0xa200, 0xa200) AM_RAM AM_SHARE("scroll_x_high")
|
AM_RANGE(0xa200, 0xa200) AM_RAM AM_SHARE("scroll_x_high")
|
||||||
AM_RANGE(0xa400, 0xa400) AM_RAM AM_SHARE("scroll_y_low")
|
AM_RANGE(0xa400, 0xa400) AM_RAM AM_SHARE("scroll_y_low")
|
||||||
AM_RANGE(0xa800, 0xa800) AM_RAM AM_SHARE("score_disable")
|
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(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(0xd000, 0xd000) AM_READ_PORT("IN0")
|
||||||
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("IN1")
|
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("IN1")
|
||||||
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("IN2")
|
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_ADD("screen", RASTER)
|
||||||
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
|
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")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
|
@ -2462,7 +2462,7 @@ GAME( 1984, grobda3, grobda, grobda, grobda, mappy_state, grobda, ROT90
|
|||||||
|
|
||||||
/* 3x6809, static tilemap, 2bpp sprites (Gaplus type) */
|
/* 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, 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) */
|
/* 2x6809, scroling tilemap, 4bpp sprites (Super Pacman type) */
|
||||||
GAME( 1983, mappy, 0, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (US)", GAME_SUPPORTS_SAVE )
|
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);
|
membank("bank1")->set_entry(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DRIVER_INIT_MEMBER(pacman_state, mschamp)
|
||||||
|
{
|
||||||
|
save_item(NAME(m_counter));
|
||||||
|
}
|
||||||
|
|
||||||
DRIVER_INIT_MEMBER(pacman_state,woodpek)
|
DRIVER_INIT_MEMBER(pacman_state,woodpek)
|
||||||
{
|
{
|
||||||
int i, len;
|
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, 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, 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( 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( 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, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", GAME_SUPPORTS_SAVE )
|
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.
|
// 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
|
// 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
|
class bogeyman_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bogeyman_state(const machine_config &mconfig, device_type type, const char *tag)
|
bogeyman_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, 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_videoram(*this, "videoram"),
|
||||||
m_videoram2(*this, "videoram2"),
|
m_videoram2(*this, "videoram2"),
|
||||||
m_colorram(*this, "colorram"),
|
m_colorram(*this, "colorram"),
|
||||||
m_colorram2(*this, "colorram2"),
|
m_colorram2(*this, "colorram2"),
|
||||||
m_spriteram(*this, "spriteram"),
|
m_spriteram(*this, "spriteram") { }
|
||||||
m_maincpu(*this, "maincpu"),
|
|
||||||
m_gfxdecode(*this, "gfxdecode"),
|
/* devices */
|
||||||
m_palette(*this, "palette") { }
|
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 */
|
/* memory pointers */
|
||||||
required_shared_ptr<UINT8> m_videoram;
|
required_shared_ptr<UINT8> m_videoram;
|
||||||
required_shared_ptr<UINT8> m_videoram2;
|
required_shared_ptr<UINT8> m_videoram2;
|
||||||
@ -34,23 +45,24 @@ public:
|
|||||||
int m_psg_latch;
|
int m_psg_latch;
|
||||||
int m_last_write;
|
int m_last_write;
|
||||||
int m_colbank;
|
int m_colbank;
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_8910_latch_w);
|
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_8910_control_w);
|
DECLARE_WRITE8_MEMBER(ay8910_latch_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_videoram_w);
|
DECLARE_WRITE8_MEMBER(ay8910_control_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_colorram_w);
|
DECLARE_WRITE8_MEMBER(videoram_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_videoram2_w);
|
DECLARE_WRITE8_MEMBER(colorram_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_colorram2_w);
|
DECLARE_WRITE8_MEMBER(videoram2_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_paletteram_w);
|
DECLARE_WRITE8_MEMBER(colorram2_w);
|
||||||
DECLARE_WRITE8_MEMBER(bogeyman_colbank_w);
|
DECLARE_WRITE8_MEMBER(paletteram_w);
|
||||||
|
DECLARE_WRITE8_MEMBER(colbank_w);
|
||||||
|
|
||||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||||
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
TILE_GET_INFO_MEMBER(get_fg_tile_info);
|
||||||
|
|
||||||
virtual void machine_start();
|
virtual void machine_start();
|
||||||
virtual void machine_reset();
|
virtual void machine_reset();
|
||||||
virtual void video_start();
|
virtual void video_start();
|
||||||
|
|
||||||
DECLARE_PALETTE_INIT(bogeyman);
|
DECLARE_PALETTE_INIT(bogeyman);
|
||||||
UINT32 screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
void draw_sprites( 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;
|
|
||||||
};
|
};
|
||||||
|
@ -3,42 +3,47 @@ class m58_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
m58_state(const machine_config &mconfig, device_type type, const char *tag)
|
m58_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, 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_maincpu(*this, "maincpu"),
|
||||||
m_gfxdecode(*this, "gfxdecode"),
|
m_gfxdecode(*this, "gfxdecode"),
|
||||||
m_screen(*this, "screen"),
|
m_screen(*this, "screen"),
|
||||||
m_palette(*this, "palette") { }
|
m_palette(*this, "palette"),
|
||||||
|
m_videoram(*this, "videoram"),
|
||||||
/* memory pointers */
|
m_spriteram(*this, "spriteram"),
|
||||||
required_shared_ptr<UINT8> m_videoram;
|
m_scroll_x_low(*this, "scroll_x_low"),
|
||||||
required_shared_ptr<UINT8> m_spriteram;
|
m_scroll_x_high(*this, "scroll_x_high"),
|
||||||
|
m_scroll_y_low(*this, "scroll_y_low"),
|
||||||
/* video-related */
|
m_score_panel_disabled(*this, "score_disable") { }
|
||||||
tilemap_t* m_bg_tilemap;
|
|
||||||
|
/* devices */
|
||||||
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 );
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
required_device<palette_device> m_palette;
|
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(8bpm);
|
||||||
DECLARE_DRIVER_INIT(porky);
|
DECLARE_DRIVER_INIT(porky);
|
||||||
DECLARE_DRIVER_INIT(mspacman);
|
DECLARE_DRIVER_INIT(mspacman);
|
||||||
|
DECLARE_DRIVER_INIT(mschamp);
|
||||||
TILEMAP_MAPPER_MEMBER(pacman_scan_rows);
|
TILEMAP_MAPPER_MEMBER(pacman_scan_rows);
|
||||||
TILE_GET_INFO_MEMBER(pacman_get_tile_info);
|
TILE_GET_INFO_MEMBER(pacman_get_tile_info);
|
||||||
TILE_GET_INFO_MEMBER(s2650_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_videoram[offset] = data;
|
||||||
m_bg_tilemap->mark_tile_dirty(offset);
|
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_colorram[offset] = data;
|
||||||
m_bg_tilemap->mark_tile_dirty(offset);
|
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_videoram2[offset] = data;
|
||||||
m_fg_tilemap->mark_tile_dirty(offset);
|
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_colorram2[offset] = data;
|
||||||
m_fg_tilemap->mark_tile_dirty(offset);
|
m_fg_tilemap->mark_tile_dirty(offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(bogeyman_state::bogeyman_paletteram_w)
|
WRITE8_MEMBER(bogeyman_state::paletteram_w)
|
||||||
{
|
{
|
||||||
/* RGB output is inverted */
|
/* RGB output is inverted */
|
||||||
m_palette->write(space, offset, UINT8(~data));
|
m_palette->write(space, offset, UINT8(~data));
|
||||||
@ -94,11 +94,9 @@ void bogeyman_state::video_start()
|
|||||||
m_fg_tilemap->set_transparent_pen(0);
|
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 (int offs = 0; offs < m_spriteram.bytes(); offs += 4)
|
||||||
|
|
||||||
for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
|
|
||||||
{
|
{
|
||||||
int attr = m_spriteram[offs];
|
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);
|
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||||
draw_sprites(bitmap, cliprect);
|
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_videoram[offset] = data;
|
||||||
m_bg_tilemap->mark_tile_dirty(offset / 2);
|
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;
|
int sx,sy,i;
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ WRITE8_MEMBER(m58_state::yard_scroll_panel_w)
|
|||||||
col = (data >> i) & 0x11;
|
col = (data >> i) & 0x11;
|
||||||
col = ((col >> 3) | col) & 3;
|
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 offs = tile_index * 2;
|
||||||
int attr = m_videoram[offs + 1];
|
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 */
|
/* logical (col,row) -> memory offset */
|
||||||
if (col >= 32)
|
if (col >= 32)
|
||||||
@ -175,11 +175,13 @@ void m58_state::video_start()
|
|||||||
int height = m_screen->height();
|
int height = m_screen->height();
|
||||||
const rectangle &visarea = m_screen->visible_area();
|
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_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_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 */
|
/* screen flip is handled both by software and hardware */
|
||||||
flip_screen_set((data & 0x01) ^ (~ioport("DSW2")->read() & 0x01));
|
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 )
|
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 clippanel(26*8, 32*8-1, 1*8, 31*8-1);
|
||||||
const rectangle clippanelflip(0*8, 6*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.max_y += visarea.max_y + yoffs;
|
||||||
clip &= cliprect;
|
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);
|
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_scrollx(0, (*m_scroll_x_high * 0x100) + *m_scroll_x_low);
|
||||||
m_bg_tilemap->set_scrolly(0, *m_yard_scroll_y_low);
|
m_bg_tilemap->set_scrolly(0, *m_scroll_y_low);
|
||||||
|
|
||||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||||
draw_sprites(bitmap, cliprect);
|
draw_sprites(bitmap, cliprect);
|
||||||
|
@ -67,9 +67,11 @@
|
|||||||
#include "machine/pit8253.h"
|
#include "machine/pit8253.h"
|
||||||
#include "machine/z80dart.h"
|
#include "machine/z80dart.h"
|
||||||
#include "machine/wd_fdc.h"
|
#include "machine/wd_fdc.h"
|
||||||
|
#include "machine/wd2010.h"
|
||||||
#include "bus/rs232/rs232.h"
|
#include "bus/rs232/rs232.h"
|
||||||
#include "machine/ngen_kb.h"
|
#include "machine/ngen_kb.h"
|
||||||
#include "machine/clock.h"
|
#include "machine/clock.h"
|
||||||
|
#include "imagedev/harddriv.h"
|
||||||
|
|
||||||
class ngen_state : public driver_device
|
class ngen_state : public driver_device
|
||||||
{
|
{
|
||||||
@ -89,7 +91,9 @@ public:
|
|||||||
m_fdc(*this,"fdc"),
|
m_fdc(*this,"fdc"),
|
||||||
m_fd0(*this,"fdc:0"),
|
m_fd0(*this,"fdc:0"),
|
||||||
m_fdc_timer(*this,"fdc_timer"),
|
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);
|
DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
|
||||||
@ -129,9 +133,12 @@ public:
|
|||||||
DECLARE_READ8_MEMBER(irq_cb);
|
DECLARE_READ8_MEMBER(irq_cb);
|
||||||
DECLARE_WRITE8_MEMBER(hdc_control_w);
|
DECLARE_WRITE8_MEMBER(hdc_control_w);
|
||||||
DECLARE_WRITE8_MEMBER(disk_addr_ext);
|
DECLARE_WRITE8_MEMBER(disk_addr_ext);
|
||||||
|
DECLARE_READ8_MEMBER(hd_buffer_r);
|
||||||
|
DECLARE_WRITE8_MEMBER(hd_buffer_w);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_reset();
|
virtual void machine_reset();
|
||||||
|
virtual void machine_start();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
required_device<i80186_cpu_device> m_maincpu;
|
required_device<i80186_cpu_device> m_maincpu;
|
||||||
@ -147,7 +154,9 @@ private:
|
|||||||
optional_device<wd2797_t> m_fdc;
|
optional_device<wd2797_t> m_fdc;
|
||||||
optional_device<floppy_connector> m_fd0;
|
optional_device<floppy_connector> m_fd0;
|
||||||
optional_device<pit8253_device> m_fdc_timer;
|
optional_device<pit8253_device> m_fdc_timer;
|
||||||
|
optional_device<wd2010_device> m_hdc;
|
||||||
optional_device<pit8253_device> m_hdc_timer;
|
optional_device<pit8253_device> m_hdc_timer;
|
||||||
|
optional_shared_ptr<UINT8> m_hd_buffer;
|
||||||
|
|
||||||
void set_dma_channel(int channel, int state);
|
void set_dma_channel(int channel, int state);
|
||||||
|
|
||||||
@ -470,7 +479,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
|||||||
case 0x0a:
|
case 0x0a:
|
||||||
case 0x0b:
|
case 0x0b:
|
||||||
if(mem_mask & 0x00ff)
|
if(mem_mask & 0x00ff)
|
||||||
m_fdc_timer->write(space,offset,data & 0xff);
|
m_fdc_timer->write(space,offset-0x08,data & 0xff);
|
||||||
break;
|
break;
|
||||||
case 0x10:
|
case 0x10:
|
||||||
case 0x11:
|
case 0x11:
|
||||||
@ -480,6 +489,8 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
|||||||
case 0x15:
|
case 0x15:
|
||||||
case 0x16:
|
case 0x16:
|
||||||
case 0x17:
|
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);
|
logerror("WD1010 register %i write %02x mask %04x\n",offset-0x10,data & 0xff,mem_mask);
|
||||||
break;
|
break;
|
||||||
case 0x18:
|
case 0x18:
|
||||||
@ -487,7 +498,7 @@ WRITE16_MEMBER(ngen_state::hfd_w)
|
|||||||
case 0x1a:
|
case 0x1a:
|
||||||
case 0x1b:
|
case 0x1b:
|
||||||
if(mem_mask & 0x00ff)
|
if(mem_mask & 0x00ff)
|
||||||
m_hdc_timer->write(space,offset,data & 0xff);
|
m_hdc_timer->write(space,offset-0x18,data & 0xff);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -510,7 +521,7 @@ READ16_MEMBER(ngen_state::fhd_r)
|
|||||||
case 0x0a:
|
case 0x0a:
|
||||||
case 0x0b:
|
case 0x0b:
|
||||||
if(mem_mask & 0x00ff)
|
if(mem_mask & 0x00ff)
|
||||||
ret = m_fdc_timer->read(space,offset);
|
ret = m_fdc_timer->read(space,offset-0x08);
|
||||||
break;
|
break;
|
||||||
case 0x10:
|
case 0x10:
|
||||||
case 0x11:
|
case 0x11:
|
||||||
@ -520,6 +531,8 @@ READ16_MEMBER(ngen_state::fhd_r)
|
|||||||
case 0x15:
|
case 0x15:
|
||||||
case 0x16:
|
case 0x16:
|
||||||
case 0x17:
|
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);
|
logerror("WD1010 register %i read, mask %04x\n",offset-0x10,mem_mask);
|
||||||
break;
|
break;
|
||||||
case 0x18:
|
case 0x18:
|
||||||
@ -527,7 +540,7 @@ READ16_MEMBER(ngen_state::fhd_r)
|
|||||||
case 0x1a:
|
case 0x1a:
|
||||||
case 0x1b:
|
case 0x1b:
|
||||||
if(mem_mask & 0x00ff)
|
if(mem_mask & 0x00ff)
|
||||||
ret = m_hdc_timer->read(space,offset);
|
ret = m_hdc_timer->read(space,offset-0x18);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -585,6 +598,16 @@ WRITE8_MEMBER(ngen_state::disk_addr_ext)
|
|||||||
m_disk_page = data & 0x7f;
|
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 )
|
WRITE_LINE_MEMBER( ngen_state::dma_hrq_changed )
|
||||||
{
|
{
|
||||||
m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
|
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(state)
|
||||||
{
|
{
|
||||||
if(m_hdc_control & 0x04) // ROM transfer?
|
if(m_hdc_control & 0x04) // ROM transfer
|
||||||
m_hdc_control &= ~0x04; // switch it off when done
|
m_hdc_control &= ~0x04; // switch it off when done
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -689,6 +712,11 @@ READ8_MEMBER( ngen_state::irq_cb )
|
|||||||
return m_pic->acknowledge();
|
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()
|
void ngen_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_port00 = 0;
|
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_DRQ_CALLBACK(DEVWRITELINE("maincpu",i80186_cpu_device,drq1_w))
|
||||||
MCFG_WD_FDC_FORCE_READY
|
MCFG_WD_FDC_FORCE_READY
|
||||||
MCFG_DEVICE_ADD("fdc_timer", PIT8253, 0)
|
MCFG_DEVICE_ADD("fdc_timer", PIT8253, 0)
|
||||||
MCFG_PIT8253_CLK0(XTAL_20MHz / 20)
|
MCFG_PIT8253_CLK0(XTAL_20MHz / 20)
|
||||||
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
MCFG_PIT8253_OUT0_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w)) // clocked on FDC data register access
|
||||||
MCFG_PIT8253_CLK1(XTAL_20MHz / 20)
|
MCFG_PIT8253_CLK1(XTAL_20MHz / 20)
|
||||||
MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
MCFG_PIT8253_OUT1_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w)) // 1MHz
|
||||||
MCFG_PIT8253_CLK2(XTAL_20MHz / 20)
|
MCFG_PIT8253_CLK2(XTAL_20MHz / 10)
|
||||||
MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("pic",pic8259_device,ir7_w))
|
||||||
// TODO: WD1010 HDC (not implemented)
|
// 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_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_FLOPPY_DRIVE_ADD("fdc:0", ngen_floppies, "525qd", floppy_image_device::default_floppy_formats)
|
||||||
|
MCFG_HARDDISK_ADD("hard0")
|
||||||
|
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -679,8 +679,10 @@ INTERRUPT_GEN_MEMBER(pasogo_state::pasogo_interrupt)
|
|||||||
void pasogo_state::machine_reset()
|
void pasogo_state::machine_reset()
|
||||||
{
|
{
|
||||||
astring region_tag;
|
astring region_tag;
|
||||||
m_cart_rom = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_REGION_TAG));
|
|
||||||
m_maincpu_rom = memregion("maincpu");
|
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("bank27")->set_base(m_cart_rom->base());
|
||||||
membank("bank28")->set_base(m_maincpu_rom->base() + 0xb8000/*?*/);
|
membank("bank28")->set_base(m_maincpu_rom->base() + 0xb8000/*?*/);
|
||||||
|
@ -4,8 +4,21 @@
|
|||||||
|
|
||||||
Parker Brothers Split Second
|
Parker Brothers Split Second
|
||||||
* TMS1400NLL MP7314-N2 (die labeled MP7314)
|
* 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"
|
#include "emu.h"
|
||||||
@ -14,9 +27,13 @@
|
|||||||
|
|
||||||
#include "splitsec.lh"
|
#include "splitsec.lh"
|
||||||
|
|
||||||
// master clock is a single stage RC oscillator: R=24K, C=100pf,
|
// 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
|
// according to the TMS 1000 series data manual this is around 375kHz.
|
||||||
#define MASTER_CLOCK (375000)
|
// 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
|
class splitsec_state : public driver_device
|
||||||
@ -160,13 +177,13 @@ WRITE16_MEMBER(splitsec_state::write_o)
|
|||||||
|
|
||||||
static INPUT_PORTS_START( splitsec )
|
static INPUT_PORTS_START( splitsec )
|
||||||
PORT_START("IN.0") // R9
|
PORT_START("IN.0") // R9
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
|
|
||||||
PORT_START("IN.1") // R10
|
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( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Select")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start")
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Start")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
@ -230,7 +247,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
ROM_START( splitsec )
|
ROM_START( splitsec )
|
||||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
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_REGION( 867, "maincpu:mpla", 0 )
|
||||||
ROM_LOAD( "tms1100_default_mpla.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
|
ROM_LOAD( "tms1100_default_mpla.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
|
||||||
@ -239,4 +256,4 @@ ROM_START( splitsec )
|
|||||||
ROM_END
|
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 -->
|
<!-- maze of lamps -->
|
||||||
|
|
||||||
<bezel name="lamp6" element="lamp_rect"><bounds x="2" 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="lamp4" element="lamp_rect"><bounds x="7" 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="lamp2" element="lamp_rect"><bounds x="12" 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="lamp10" 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="lamp1" 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="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="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="lamp14" 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="lamp5" 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="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="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="lamp20" 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="lamp21" 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="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="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="lamp24" 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="lamp25" 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="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="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="lamp30" 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="lamp41" 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="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="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="lamp34" 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="lamp45" 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="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="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="lamp40" 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="lamp61" 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="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="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="lamp44" 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="lamp65" 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="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="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="lamp50" 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="lamp60" 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="lamp52" 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="lamp62" 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="lamp54" 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="lamp64" 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="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="lamp70" 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="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="lamp74" element="lamp_rect"><bounds x="12" y="26" width="4" height="1" /></bezel>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</mamelayout>
|
</mamelayout>
|
||||||
|
@ -2842,7 +2842,7 @@ void amstrad_state::enumerate_roms()
|
|||||||
int i;
|
int i;
|
||||||
bool slot3 = false,slot7 = false;
|
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();
|
UINT8 *crt = m_region_cart->base();
|
||||||
int bank_mask = (m_cart->get_rom_size() / 0x4000) - 1;
|
int bank_mask = (m_cart->get_rom_size() / 0x4000) - 1;
|
||||||
@ -3034,6 +3034,8 @@ MACHINE_START_MEMBER(amstrad_state,plus)
|
|||||||
|
|
||||||
astring region_tag;
|
astring region_tag;
|
||||||
m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_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;
|
astring region_tag;
|
||||||
m_region_cart = memregion(region_tag.cpy(m_cart->tag()).cat(GENERIC_ROM_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)
|
MACHINE_RESET_MEMBER(amstrad_state,gx4000)
|
||||||
|
Loading…
Reference in New Issue
Block a user