mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
champbwl.cpp: removed MACHINE_*_MEMBER macros
This commit is contained in:
parent
0d77739c27
commit
decb135282
@ -162,52 +162,82 @@ Notes:
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class champbwl_state : public driver_device
|
||||
|
||||
namespace {
|
||||
|
||||
class champbwl_base_state : public driver_device
|
||||
{
|
||||
public:
|
||||
champbwl_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
champbwl_base_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_seta001(*this, "spritegen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_x1(*this, "x1snd"),
|
||||
m_hopper(*this, "hopper"),
|
||||
m_mainbank(*this, "mainbank"),
|
||||
m_mainbank(*this, "mainbank")
|
||||
{ }
|
||||
|
||||
protected:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<seta001_device> m_seta001;
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
void palette(palette_device &palette) const;
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
class champbwl_state : public champbwl_base_state
|
||||
{
|
||||
public:
|
||||
champbwl_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
champbwl_base_state(mconfig, type, tag),
|
||||
m_fakex(*this, "FAKEX"),
|
||||
m_fakey(*this, "FAKEY")
|
||||
{ }
|
||||
|
||||
int m_screenflip;
|
||||
void champbwl(machine_config &config);
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<seta001_device> m_seta001;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<x1_010_device> m_x1;
|
||||
optional_device<ticket_dispenser_device> m_hopper;
|
||||
optional_memory_bank m_mainbank;
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
optional_ioport m_fakex;
|
||||
optional_ioport m_fakey;
|
||||
uint8_t m_last_trackball_val[2];
|
||||
private:
|
||||
required_ioport m_fakex;
|
||||
required_ioport m_fakey;
|
||||
uint8_t m_last_trackball_val[2];
|
||||
|
||||
uint8_t trackball_r();
|
||||
uint8_t trackball_reset_r();
|
||||
void champbwl_misc_w(uint8_t data);
|
||||
void doraemon_outputs_w(uint8_t data);
|
||||
DECLARE_MACHINE_START(champbwl);
|
||||
DECLARE_MACHINE_RESET(champbwl);
|
||||
DECLARE_MACHINE_START(doraemon);
|
||||
void champbwl_palette(palette_device &palette) const;
|
||||
uint32_t screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_champbwl);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_doraemon);
|
||||
void champbwl(machine_config &config);
|
||||
void doraemon(machine_config &config);
|
||||
void champbwl_map(address_map &map);
|
||||
void doraemon_map(address_map &map);
|
||||
void misc_w(uint8_t data);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
|
||||
void prg_map(address_map &map);
|
||||
};
|
||||
|
||||
void champbwl_state::champbwl_palette(palette_device &palette) const
|
||||
class doraemon_state : public champbwl_base_state
|
||||
{
|
||||
public:
|
||||
doraemon_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
champbwl_base_state(mconfig, type, tag),
|
||||
m_hopper(*this, "hopper")
|
||||
{ }
|
||||
|
||||
void doraemon(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
|
||||
private:
|
||||
required_device<ticket_dispenser_device> m_hopper;
|
||||
|
||||
void outputs_w(uint8_t data);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank);
|
||||
|
||||
void prg_map(address_map &map);
|
||||
};
|
||||
|
||||
|
||||
void champbwl_base_state::palette(palette_device &palette) const
|
||||
{
|
||||
uint8_t const *const color_prom = memregion("proms")->base();
|
||||
for (int i = 0; i < palette.entries(); i++)
|
||||
@ -217,14 +247,12 @@ void champbwl_state::champbwl_palette(palette_device &palette) const
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uint8_t champbwl_state::trackball_r()
|
||||
{
|
||||
uint8_t ret;
|
||||
uint8_t port4 = m_fakex->read();
|
||||
uint8_t port5 = m_fakey->read();
|
||||
|
||||
ret = (((port4 - m_last_trackball_val[0]) & 0x0f)<<4) | ((port5 - m_last_trackball_val[1]) & 0x0f);
|
||||
uint8_t ret = (((port4 - m_last_trackball_val[0]) & 0x0f) << 4) | ((port5 - m_last_trackball_val[1]) & 0x0f);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -239,7 +267,7 @@ uint8_t champbwl_state::trackball_reset_r()
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void champbwl_state::champbwl_misc_w(uint8_t data)
|
||||
void champbwl_state::misc_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, data & 1);
|
||||
machine().bookkeeping().coin_counter_w(1, data & 2);
|
||||
@ -250,17 +278,18 @@ void champbwl_state::champbwl_misc_w(uint8_t data)
|
||||
m_mainbank->set_entry((data & 0x30) >> 4);
|
||||
}
|
||||
|
||||
void champbwl_state::champbwl_map(address_map &map)
|
||||
|
||||
void champbwl_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom().region("maincpu", 0);
|
||||
map(0x4000, 0x7fff).bankr("mainbank");
|
||||
map(0x4000, 0x7fff).bankr(m_mainbank);
|
||||
map(0x8000, 0x87ff).ram().share("nvram");
|
||||
map(0xa000, 0xafff).ram().rw(m_seta001, FUNC(seta001_device::spritecodelow_r8), FUNC(seta001_device::spritecodelow_w8));
|
||||
map(0xb000, 0xbfff).ram().rw(m_seta001, FUNC(seta001_device::spritecodehigh_r8), FUNC(seta001_device::spritecodehigh_w8));
|
||||
map(0xc000, 0xdfff).rw(m_x1, FUNC(x1_010_device::read), FUNC(x1_010_device::write));
|
||||
map(0xc000, 0xdfff).rw("x1snd", FUNC(x1_010_device::read), FUNC(x1_010_device::write));
|
||||
map(0xe000, 0xe2ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r8), FUNC(seta001_device::spriteylow_w8));
|
||||
map(0xe300, 0xe303).mirror(0xfc).w(m_seta001, FUNC(seta001_device::spritectrl_w8)); /* control registers (0x80 mirror used by Arkanoid 2) */
|
||||
map(0xe800, 0xe800).w(m_seta001, FUNC(seta001_device::spritebgflag_w8)); /* enable / disable background transparency */
|
||||
map(0xe300, 0xe303).mirror(0xfc).w(m_seta001, FUNC(seta001_device::spritectrl_w8)); // control registers (0x80 mirror used by Arkanoid 2)
|
||||
map(0xe800, 0xe800).w(m_seta001, FUNC(seta001_device::spritebgflag_w8)); // enable / disable background transparency
|
||||
|
||||
map(0xf000, 0xf000).r(FUNC(champbwl_state::trackball_r));
|
||||
map(0xf002, 0xf002).portr("IN0");
|
||||
@ -268,48 +297,47 @@ void champbwl_state::champbwl_map(address_map &map)
|
||||
map(0xf006, 0xf006).portr("IN2");
|
||||
map(0xf007, 0xf007).portr("IN3");
|
||||
|
||||
map(0xf000, 0xf000).w(FUNC(champbwl_state::champbwl_misc_w));
|
||||
map(0xf002, 0xf002).nopw(); //buttons light?
|
||||
map(0xf004, 0xf004).nopw(); //buttons light?
|
||||
map(0xf006, 0xf006).nopw(); //buttons light?
|
||||
map(0xf000, 0xf000).w(FUNC(champbwl_state::misc_w));
|
||||
map(0xf002, 0xf002).nopw(); // buttons light?
|
||||
map(0xf004, 0xf004).nopw(); // buttons light?
|
||||
map(0xf006, 0xf006).nopw(); // buttons light?
|
||||
map(0xf800, 0xf800).nopw();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void champbwl_state::doraemon_outputs_w(uint8_t data)
|
||||
void doraemon_state::outputs_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); // coin in counter
|
||||
machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); // gift out counter
|
||||
|
||||
machine().bookkeeping().coin_lockout_w(0, BIT(~data, 3)); // coin lockout
|
||||
m_hopper->motor_w(BIT(~data, 2)); // gift out motor
|
||||
machine().bookkeeping().coin_lockout_w(0, BIT(~data, 3)); // coin lockout
|
||||
m_hopper->motor_w(BIT(~data, 2)); // gift out motor
|
||||
|
||||
m_mainbank->set_entry((data & 0x30) >> 4);
|
||||
|
||||
// popmessage("%02x", data);
|
||||
}
|
||||
|
||||
void champbwl_state::doraemon_map(address_map &map)
|
||||
|
||||
void doraemon_state::prg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom();
|
||||
map(0x4000, 0x7fff).bankr("mainbank");
|
||||
map(0x4000, 0x7fff).bankr(m_mainbank);
|
||||
map(0x8000, 0x87ff).ram().share("nvram");
|
||||
map(0xa000, 0xafff).ram().rw(m_seta001, FUNC(seta001_device::spritecodelow_r8), FUNC(seta001_device::spritecodelow_w8));
|
||||
map(0xb000, 0xbfff).ram().rw(m_seta001, FUNC(seta001_device::spritecodehigh_r8), FUNC(seta001_device::spritecodehigh_w8));
|
||||
map(0xc000, 0xc07f).rw(m_x1, FUNC(x1_010_device::read), FUNC(x1_010_device::write)); // Sound
|
||||
map(0xc000, 0xc07f).rw("x1snd", FUNC(x1_010_device::read), FUNC(x1_010_device::write)); // Sound
|
||||
map(0xe000, 0xe2ff).ram().rw(m_seta001, FUNC(seta001_device::spriteylow_r8), FUNC(seta001_device::spriteylow_w8));
|
||||
map(0xe300, 0xe303).w(m_seta001, FUNC(seta001_device::spritectrl_w8));
|
||||
map(0xe800, 0xe800).w(m_seta001, FUNC(seta001_device::spritebgflag_w8)); /* enable / disable background transparency */
|
||||
map(0xf000, 0xf000).portr("IN0").w(FUNC(champbwl_state::doraemon_outputs_w));
|
||||
map(0xf002, 0xf002).portr("IN1").nopw(); // Ack?
|
||||
map(0xf004, 0xf004).nopw(); // Ack?
|
||||
map(0xf006, 0xf006).portr("DSW").nopw(); // Ack?
|
||||
map(0xf800, 0xf800).nopw(); // 0
|
||||
map(0xe800, 0xe800).w(m_seta001, FUNC(seta001_device::spritebgflag_w8)); // enable / disable background transparency
|
||||
map(0xf000, 0xf000).portr("IN0").w(FUNC(doraemon_state::outputs_w));
|
||||
map(0xf002, 0xf002).portr("IN1").nopw(); // Ack?
|
||||
map(0xf004, 0xf004).nopw(); // Ack?
|
||||
map(0xf006, 0xf006).portr("DSW").nopw(); // Ack?
|
||||
map(0xf800, 0xf800).nopw(); // 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( champbwl )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
|
||||
@ -370,15 +398,13 @@ static INPUT_PORTS_START( champbwl )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("FAKEX") /* FAKE */
|
||||
PORT_START("FAKEX") // FAKE
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X )PORT_SENSITIVITY(50) PORT_KEYDELTA(50) PORT_CENTERDELTA(0)
|
||||
|
||||
PORT_START("FAKEY") /* FAKE */
|
||||
PORT_START("FAKEY") // FAKE
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(45) PORT_CENTERDELTA(0) PORT_REVERSE
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( doraemon )
|
||||
PORT_START("DSW") // f006
|
||||
PORT_DIPNAME( 0x0f, 0x09, "Gift Out" )
|
||||
@ -394,9 +420,9 @@ static INPUT_PORTS_START( doraemon )
|
||||
PORT_DIPSETTING( 0x06, "40 %" )
|
||||
PORT_DIPSETTING( 0x05, "60 %" )
|
||||
PORT_DIPSETTING( 0x04, "80 %" )
|
||||
// PORT_DIPSETTING( 0x03, "100 %" )
|
||||
// PORT_DIPSETTING( 0x02, "100 %" )
|
||||
// PORT_DIPSETTING( 0x01, "100 %" )
|
||||
PORT_DIPSETTING( 0x03, "100 %" )
|
||||
PORT_DIPSETTING( 0x02, "100 %" )
|
||||
PORT_DIPSETTING( 0x01, "100 %" )
|
||||
PORT_DIPSETTING( 0x00, "100 %" )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Games For 100 Yen" )
|
||||
PORT_DIPSETTING( 0x10, "1" )
|
||||
@ -433,7 +459,6 @@ static INPUT_PORTS_START( doraemon )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
static const gfx_layout charlayout =
|
||||
{
|
||||
16,16,
|
||||
@ -451,25 +476,23 @@ static GFXDECODE_START( gfx_champbwl )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 )
|
||||
GFXDECODE_END
|
||||
|
||||
MACHINE_START_MEMBER(champbwl_state,champbwl)
|
||||
|
||||
void champbwl_state::machine_start()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
|
||||
m_mainbank->configure_entries(0, 4, &ROM[0], 0x4000);
|
||||
m_mainbank->configure_entries(0, 4, &rom[0], 0x4000);
|
||||
|
||||
save_item(NAME(m_screenflip));
|
||||
save_item(NAME(m_last_trackball_val));
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(champbwl_state,champbwl)
|
||||
void champbwl_state::machine_reset()
|
||||
{
|
||||
m_screenflip = 0;
|
||||
m_last_trackball_val[0] = 0;
|
||||
m_last_trackball_val[1] = 0;
|
||||
|
||||
}
|
||||
|
||||
uint32_t champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t champbwl_base_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
bitmap.fill(0x1f0, cliprect);
|
||||
|
||||
@ -477,7 +500,7 @@ uint32_t champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_in
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(champbwl_state::screen_vblank_champbwl)
|
||||
WRITE_LINE_MEMBER(champbwl_state::screen_vblank)
|
||||
{
|
||||
// rising edge
|
||||
if (state)
|
||||
@ -487,95 +510,88 @@ WRITE_LINE_MEMBER(champbwl_state::screen_vblank_champbwl)
|
||||
|
||||
void champbwl_state::champbwl(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 16000000/4); /* 4MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &champbwl_state::champbwl_map);
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 16_MHz_XTAL / 4); // 4 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &champbwl_state::prg_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(champbwl_state::irq0_line_hold));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(champbwl_state,champbwl)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(champbwl_state,champbwl)
|
||||
SETA001_SPRITE(config, m_seta001, 16_MHz_XTAL, "palette", gfx_champbwl);
|
||||
m_seta001->set_fg_yoffsets(-0x12, 0x0e);
|
||||
m_seta001->set_bg_yoffsets(0x1, -0x1);
|
||||
|
||||
SETA001_SPRITE(config, m_seta001, 16000000, m_palette, gfx_champbwl);
|
||||
m_seta001->set_fg_yoffsets( -0x12, 0x0e );
|
||||
m_seta001->set_bg_yoffsets( 0x1, -0x1 );
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(57.5);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 32*8);
|
||||
screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1);
|
||||
screen.set_screen_update(FUNC(champbwl_state::screen_update_champbwl));
|
||||
screen.screen_vblank().set(FUNC(champbwl_state::screen_vblank_champbwl));
|
||||
screen.set_palette(m_palette);
|
||||
screen.set_screen_update(FUNC(champbwl_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(champbwl_state::screen_vblank));
|
||||
screen.set_palette("palette");
|
||||
|
||||
PALETTE(config, m_palette, FUNC(champbwl_state::champbwl_palette), 512);
|
||||
PALETTE(config, "palette", FUNC(champbwl_state::palette), 512);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
X1_010(config, m_x1, 16000000);
|
||||
m_x1->add_route(0, "lspeaker", 1.0);
|
||||
m_x1->add_route(1, "rspeaker", 1.0);
|
||||
x1_010_device &x1snd(X1_010(config, "x1snd", 16_MHz_XTAL));
|
||||
x1snd.add_route(0, "lspeaker", 1.0);
|
||||
x1snd.add_route(1, "rspeaker", 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(champbwl_state::screen_vblank_doraemon)
|
||||
WRITE_LINE_MEMBER(doraemon_state::screen_vblank)
|
||||
{
|
||||
// rising edge
|
||||
if (state)
|
||||
m_seta001->setac_eof();
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(champbwl_state,doraemon)
|
||||
void doraemon_state::machine_start()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
m_mainbank->configure_entries(0, 4, &ROM[0], 0x4000);
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
m_mainbank->configure_entries(0, 4, &rom[0], 0x4000);
|
||||
}
|
||||
|
||||
void champbwl_state::doraemon(machine_config &config)
|
||||
|
||||
void doraemon_state::doraemon(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, XTAL(14'318'181)/4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &champbwl_state::doraemon_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(champbwl_state::irq0_line_hold));
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 14.318181_MHz_XTAL / 4);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &doraemon_state::prg_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(doraemon_state::irq0_line_hold));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
SETA001_SPRITE(config, m_seta001, 14'318'181, m_palette, gfx_champbwl);
|
||||
m_seta001->set_bg_yoffsets( 0x00, 0x01 );
|
||||
m_seta001->set_fg_yoffsets( 0x00, 0x10 );
|
||||
SETA001_SPRITE(config, m_seta001, 14.318181_MHz_XTAL, "palette", gfx_champbwl);
|
||||
m_seta001->set_bg_yoffsets(0x00, 0x01);
|
||||
m_seta001->set_fg_yoffsets(0x00, 0x10);
|
||||
|
||||
TICKET_DISPENSER(config, m_hopper, attotime::from_msec(2000), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW );
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(champbwl_state,doraemon)
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(320, 256);
|
||||
screen.set_visarea(0, 320-1, 16, 256-16-1);
|
||||
screen.set_screen_update(FUNC(champbwl_state::screen_update_champbwl));
|
||||
screen.screen_vblank().set(FUNC(champbwl_state::screen_vblank_doraemon));
|
||||
screen.set_palette(m_palette);
|
||||
screen.set_screen_update(FUNC(doraemon_state::screen_update));
|
||||
screen.screen_vblank().set(FUNC(doraemon_state::screen_vblank));
|
||||
screen.set_palette("palette");
|
||||
|
||||
PALETTE(config, m_palette, FUNC(champbwl_state::champbwl_palette), 512);
|
||||
PALETTE(config, "palette", FUNC(doraemon_state::palette), 512);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
X1_010(config, m_x1, XTAL(14'318'181)).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
X1_010(config, "x1snd", 14.318181_MHz_XTAL).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ROM_START( champbwl )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* Z80 Code */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // Z80 Code
|
||||
ROM_LOAD( "ab001001.u1", 0x00000, 0x10000, CRC(6c6f7675) SHA1(19834f25f2644ae5d156c1e1bbb3fc50cae10fd2) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
@ -588,13 +604,13 @@ ROM_START( champbwl )
|
||||
ROM_LOAD( "ab001008.u26", 0x0000, 0x0200, CRC(30ac8d48) SHA1(af034de3f3b8548534effdf4e3717fe3838b7754) )
|
||||
ROM_LOAD( "ab001009.u27", 0x0200, 0x0200, CRC(3bbd4bcd) SHA1(8c87ccc42ece2432b8ad25f8679cdf886e12a43c) )
|
||||
|
||||
ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
|
||||
ROM_REGION( 0x100000, "x1snd", 0 ) // Samples
|
||||
ROM_LOAD( "ab002002.2-2", 0x00000, 0x40000, CRC(42ebe997) SHA1(1808b9e5e996a395c1d48ac001067f736f96feec) ) // jingles (for strike, spare etc.)
|
||||
ROM_LOAD( "ab003002.3-2", 0x40000, 0x40000, CRC(7ede8f28) SHA1(b5519c09b4f0019dc76cadca725da1d581912540) ) // basic coin + ball sounds
|
||||
ROM_LOAD( "ab002003.2-3", 0x80000, 0x40000, CRC(3051b8c3) SHA1(5f53596d7af1c79db1dde4bdca3878e07c67b5d1) ) // 'welcome to.. , strike' speech etc.
|
||||
ROM_LOAD( "ab003003.3-3", 0xc0000, 0x40000, CRC(ad40ad10) SHA1(db0e5744ea3fcda87345b545031f82fcb3fec175) ) // 'spare' speech etc.
|
||||
|
||||
ROM_REGION( 0x800, "nvram", 0 ) /* default settings, allows game to boot first time without having to reset it */
|
||||
ROM_REGION( 0x800, "nvram", 0 ) // default settings, allows game to boot first time without having to reset it
|
||||
ROM_LOAD( "champbwl.nv", 0x000, 0x800, CRC(1d46aa8e) SHA1(a733cf86cfb26d98fb4c491d7f779a7a1c8ff228) )
|
||||
ROM_END
|
||||
|
||||
@ -693,5 +709,8 @@ ROM_START( doraemon )
|
||||
ROM_LOAD( "u27-01.bin", 0x00200, 0x200, CRC(66245fc7) SHA1(c94d9dce7b557c21a3dc1f3f8a1b29594715c994) )
|
||||
ROM_END
|
||||
|
||||
GAME( 1993?,doraemon, 0, doraemon, doraemon, champbwl_state, empty_init, ROT0, "Sunsoft / Epoch", "Doraemon no Eawase Montage (prototype)", MACHINE_SUPPORTS_SAVE ) // year not shown, datecodes on pcb suggests late-1993
|
||||
GAME( 1989, champbwl, 0, champbwl, champbwl, champbwl_state, empty_init, ROT270, "Seta / Romstar Inc.", "Championship Bowling", MACHINE_SUPPORTS_SAVE )
|
||||
} // Anonymous namespace
|
||||
|
||||
|
||||
GAME( 1993?, doraemon, 0, doraemon, doraemon, doraemon_state, empty_init, ROT0, "Sunsoft / Epoch", "Doraemon no Eawase Montage (prototype)", MACHINE_SUPPORTS_SAVE ) // year not shown, datecodes on pcb suggests late-1993
|
||||
GAME( 1989, champbwl, 0, champbwl, champbwl, champbwl_state, empty_init, ROT270, "Seta / Romstar Inc.", "Championship Bowling", MACHINE_SUPPORTS_SAVE )
|
||||
|
Loading…
Reference in New Issue
Block a user