- actfancr.cpp, battlera.cpp: use finders, minor cleanups

- namcos12.cpp: updated fgtlayer title as per GitHub comments
This commit is contained in:
Ivan Vangelista 2021-11-26 20:28:32 +01:00
parent bad7b7ec68
commit 30ac5da480
8 changed files with 308 additions and 329 deletions

View File

@ -1690,14 +1690,11 @@ files {
createMAMEProjects(_target, _subtarget, "dataeast") createMAMEProjects(_target, _subtarget, "dataeast")
files { files {
MAME_DIR .. "src/mame/drivers/actfancr.cpp", MAME_DIR .. "src/mame/drivers/actfancr.cpp",
MAME_DIR .. "src/mame/includes/actfancr.h",
MAME_DIR .. "src/mame/video/actfancr.cpp",
MAME_DIR .. "src/mame/drivers/astrof.cpp", MAME_DIR .. "src/mame/drivers/astrof.cpp",
MAME_DIR .. "src/mame/includes/astrof.h", MAME_DIR .. "src/mame/includes/astrof.h",
MAME_DIR .. "src/mame/audio/astrof.cpp", MAME_DIR .. "src/mame/audio/astrof.cpp",
MAME_DIR .. "src/mame/drivers/backfire.cpp", MAME_DIR .. "src/mame/drivers/backfire.cpp",
MAME_DIR .. "src/mame/drivers/battlera.cpp", MAME_DIR .. "src/mame/drivers/battlera.cpp",
MAME_DIR .. "src/mame/includes/battlera.h",
MAME_DIR .. "src/mame/drivers/boogwing.cpp", MAME_DIR .. "src/mame/drivers/boogwing.cpp",
MAME_DIR .. "src/mame/includes/boogwing.h", MAME_DIR .. "src/mame/includes/boogwing.h",
MAME_DIR .. "src/mame/video/boogwing.cpp", MAME_DIR .. "src/mame/video/boogwing.cpp",

View File

@ -11,39 +11,130 @@
Update of the 03/04/2005 Update of the 03/04/2005
Added Trio The Punch (World), this set will be the new parent. Added Trio The Punch (World), this set will be the new parent.
Fixed filenames in both Trio The Punch sets to match correct labels on the pcb. Fixed filenames in both Trio The Punch sets to match correct labels on the PCB.
Update by Roberto Gandola, sophitia@email.it Update by Roberto Gandola, sophitia@email.it
*******************************************************************************/ *******************************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/actfancr.h"
#include "video/decbac06.h"
#include "video/decmxc06.h"
#include "cpu/h6280/h6280.h"
#include "cpu/m6502/m6502.h" #include "cpu/m6502/m6502.h"
#include "machine/gen_latch.h"
#include "sound/okim6295.h" #include "sound/okim6295.h"
#include "sound/ymopn.h"
#include "sound/ymopl.h" #include "sound/ymopl.h"
#include "sound/ymopn.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h" #include "screen.h"
#include "speaker.h" #include "speaker.h"
/******************************************************************************/
void actfancr_state::triothep_control_select_w(uint8_t data) namespace {
class actfancr_state : public driver_device
{ {
m_trio_control_select = data; public:
actfancr_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_gfxdecode(*this, "gfxdecode"),
m_tilegen(*this, "tilegen%u", 1U),
m_spritegen(*this, "spritegen"),
m_spriteram(*this, "spriteram"),
m_spriteram16(*this, "spriteram16", 0x800 / 2, ENDIANNESS_BIG) { }
void actfancr(machine_config &config);
protected:
// devices
required_device<h6280_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device_array<deco_bac06_device, 2> m_tilegen;
required_device<deco_mxc06_device> m_spritegen;
void buffer_spriteram_w(uint8_t data);
private:
// memory pointers
required_shared_ptr<uint8_t> m_spriteram;
memory_share_creator<uint16_t> m_spriteram16; // a 16-bit copy of spriteram for use with the MXC06 code
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void prg_map(address_map &map);
void dec0_s_map(address_map &map);
};
class triothep_state : public actfancr_state
{
public:
triothep_state(const machine_config &mconfig, device_type type, const char *tag) :
actfancr_state(mconfig, type, tag),
m_p(*this, "P%u", 1U),
m_dsw(*this, "DSW%u", 1U),
m_system(*this, "SYSTEM") { }
void triothep(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
// misc
required_ioport_array<2> m_p;
required_ioport_array<2> m_dsw;
required_ioport m_system;
uint8_t m_control_select;
void control_select_w(uint8_t data);
uint8_t control_r();
void prg_map(address_map &map);
};
uint32_t actfancr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// Draw playfield
bool flip = m_tilegen[1]->get_flip_state();
m_tilegen[0]->set_flip_screen(flip);
m_tilegen[1]->set_flip_screen(flip);
m_spritegen->set_flip_screen(flip);
m_tilegen[0]->deco_bac06_pf_draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
m_spritegen->draw_sprites(screen, bitmap, cliprect, m_gfxdecode->gfx(1), m_spriteram16.target(), 0x800/2);
m_tilegen[1]->deco_bac06_pf_draw(screen, bitmap, cliprect, 0, 0);
return 0;
} }
uint8_t actfancr_state::triothep_control_r() /******************************************************************************/
void triothep_state::control_select_w(uint8_t data)
{ {
switch (m_trio_control_select) m_control_select = data;
}
uint8_t triothep_state::control_r()
{
switch (m_control_select)
{ {
case 0: return ioport("P1")->read(); case 0: return m_p[0]->read();
case 1: return ioport("P2")->read(); case 1: return m_p[1]->read();
case 2: return ioport("DSW1")->read(); case 2: return m_dsw[0]->read();
case 3: return ioport("DSW2")->read(); case 3: return m_dsw[1]->read();
case 4: return ioport("SYSTEM")->read(); /* VBL */ case 4: return m_system->read(); // VBL
} }
return 0xff; return 0xff;
@ -53,15 +144,14 @@ uint8_t actfancr_state::triothep_control_r()
void actfancr_state::buffer_spriteram_w(uint8_t data) void actfancr_state::buffer_spriteram_w(uint8_t data)
{ {
uint8_t *src = reinterpret_cast<uint8_t *>(memshare("spriteram")->ptr());
// copy to a 16-bit region for our sprite draw code too // copy to a 16-bit region for our sprite draw code too
for (int i=0;i<0x800/2;i++) for (int i = 0; i < 0x800 / 2; i++)
{ {
m_spriteram16[i] = src[i*2] | (src[(i*2)+1] <<8); m_spriteram16[i] = m_spriteram[i * 2] | (m_spriteram[(i * 2) + 1] << 8);
} }
} }
void actfancr_state::actfan_map(address_map &map) void actfancr_state::prg_map(address_map &map)
{ {
map(0x000000, 0x02ffff).rom(); map(0x000000, 0x02ffff).rom();
map(0x060000, 0x060007).w(m_tilegen[0], FUNC(deco_bac06_device::pf_control0_8bit_w)); map(0x060000, 0x060007).w(m_tilegen[0], FUNC(deco_bac06_device::pf_control0_8bit_w));
@ -70,19 +160,19 @@ void actfancr_state::actfan_map(address_map &map)
map(0x070000, 0x070007).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control0_8bit_w)); map(0x070000, 0x070007).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control0_8bit_w));
map(0x070010, 0x07001f).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control1_8bit_swap_w)); map(0x070010, 0x07001f).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control1_8bit_swap_w));
map(0x072000, 0x0727ff).rw(m_tilegen[1], FUNC(deco_bac06_device::pf_data_8bit_swap_r), FUNC(deco_bac06_device::pf_data_8bit_swap_w)); map(0x072000, 0x0727ff).rw(m_tilegen[1], FUNC(deco_bac06_device::pf_data_8bit_swap_r), FUNC(deco_bac06_device::pf_data_8bit_swap_w));
map(0x100000, 0x1007ff).ram().share("spriteram"); map(0x100000, 0x1007ff).ram().share(m_spriteram);
map(0x110000, 0x110001).w(FUNC(actfancr_state::buffer_spriteram_w)); map(0x110000, 0x110001).w(FUNC(actfancr_state::buffer_spriteram_w));
map(0x120000, 0x1205ff).ram().w("palette", FUNC(palette_device::write8)).share("palette"); map(0x120000, 0x1205ff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
map(0x130000, 0x130000).portr("P1"); map(0x130000, 0x130000).portr("P1");
map(0x130001, 0x130001).portr("P2"); map(0x130001, 0x130001).portr("P2");
map(0x130002, 0x130002).portr("DSW1"); map(0x130002, 0x130002).portr("DSW1");
map(0x130003, 0x130003).portr("DSW2"); map(0x130003, 0x130003).portr("DSW2");
map(0x140000, 0x140001).portr("SYSTEM"); /* VBL */ map(0x140000, 0x140001).portr("SYSTEM"); // VBL
map(0x150000, 0x150000).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x150000, 0x150000).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0x1f0000, 0x1f3fff).ram(); /* Main ram */ map(0x1f0000, 0x1f3fff).ram(); // Main RAM
} }
void actfancr_state::triothep_map(address_map &map) void triothep_state::prg_map(address_map &map)
{ {
map(0x000000, 0x03ffff).rom(); map(0x000000, 0x03ffff).rom();
map(0x040000, 0x040007).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control0_8bit_w)); map(0x040000, 0x040007).w(m_tilegen[1], FUNC(deco_bac06_device::pf_control0_8bit_w));
@ -93,12 +183,12 @@ void actfancr_state::triothep_map(address_map &map)
map(0x060010, 0x06001f).w(m_tilegen[0], FUNC(deco_bac06_device::pf_control1_8bit_swap_w)); map(0x060010, 0x06001f).w(m_tilegen[0], FUNC(deco_bac06_device::pf_control1_8bit_swap_w));
map(0x064000, 0x0647ff).rw(m_tilegen[0], FUNC(deco_bac06_device::pf_data_8bit_swap_r), FUNC(deco_bac06_device::pf_data_8bit_swap_w)); map(0x064000, 0x0647ff).rw(m_tilegen[0], FUNC(deco_bac06_device::pf_data_8bit_swap_r), FUNC(deco_bac06_device::pf_data_8bit_swap_w));
map(0x066400, 0x0667ff).rw(m_tilegen[0], FUNC(deco_bac06_device::pf_rowscroll_8bit_swap_r), FUNC(deco_bac06_device::pf_rowscroll_8bit_swap_w)); map(0x066400, 0x0667ff).rw(m_tilegen[0], FUNC(deco_bac06_device::pf_rowscroll_8bit_swap_r), FUNC(deco_bac06_device::pf_rowscroll_8bit_swap_w));
map(0x100000, 0x100000).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x100000, 0x100000).w("soundlatch", FUNC(generic_latch_8_device::write));
map(0x110000, 0x110001).w(FUNC(actfancr_state::buffer_spriteram_w)); map(0x110000, 0x110001).w(FUNC(triothep_state::buffer_spriteram_w));
map(0x120000, 0x1207ff).ram().share("spriteram"); map(0x120000, 0x1207ff).ram().share("spriteram");
map(0x130000, 0x1305ff).ram().w("palette", FUNC(palette_device::write8)).share("palette"); map(0x130000, 0x1305ff).ram().w("palette", FUNC(palette_device::write8)).share("palette");
map(0x140000, 0x140001).nopr(); /* Value doesn't matter */ map(0x140000, 0x140001).nopr(); // Value doesn't matter
map(0x1f0000, 0x1f3fff).ram(); /* Main ram */ map(0x1f0000, 0x1f3fff).ram(); // Main RAM
} }
/******************************************************************************/ /******************************************************************************/
@ -108,7 +198,7 @@ void actfancr_state::dec0_s_map(address_map &map)
map(0x0000, 0x07ff).ram(); map(0x0000, 0x07ff).ram();
map(0x0800, 0x0801).w("ym1", FUNC(ym2203_device::write)); map(0x0800, 0x0801).w("ym1", FUNC(ym2203_device::write));
map(0x1000, 0x1001).w("ym2", FUNC(ym3812_device::write)); map(0x1000, 0x1001).w("ym2", FUNC(ym3812_device::write));
map(0x3000, 0x3000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x3000, 0x3000).r("soundlatch", FUNC(generic_latch_8_device::read));
map(0x3800, 0x3800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x3800, 0x3800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0x4000, 0xffff).rom(); map(0x4000, 0xffff).rom();
} }
@ -157,7 +247,7 @@ static INPUT_PORTS_START( actfancr )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) // Listed as "Unused"
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) )
@ -179,12 +269,12 @@ static INPUT_PORTS_START( actfancr )
PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) ) PORT_DIPSETTING( 0x0c, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW2:5" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW2:5" ) // Listed as "Unused"
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:6") PORT_DIPNAME( 0x20, 0x20, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x20, "800000" ) PORT_DIPSETTING( 0x20, "800000" )
PORT_DIPSETTING( 0x00, DEF_STR( None ) ) PORT_DIPSETTING( 0x00, DEF_STR( None ) )
PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) // Listed as "Unused"
PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) // Listed as "Unused"
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( triothep ) static INPUT_PORTS_START( triothep )
@ -210,31 +300,31 @@ static INPUT_PORTS_START( triothep )
PORT_DIPNAME( 0x10, 0x10, "Bonus Lives" ) PORT_DIPLOCATION("SW2:5") PORT_DIPNAME( 0x10, 0x10, "Bonus Lives" ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x10, "3" ) PORT_DIPSETTING( 0x10, "3" )
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) // Listed as "Unused"
INPUT_PORTS_END INPUT_PORTS_END
/******************************************************************************/ /******************************************************************************/
static const gfx_layout layout_8x8x4 = static const gfx_layout layout_8x8x4 =
{ {
8,8, /* 8*8 chars */ 8,8, // 8*8 chars
RGN_FRAC(1,4), RGN_FRAC(1,4),
4, /* 4 bits per pixel */ 4, // 4 bits per pixel
{ RGN_FRAC(1,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(2,4) }, { RGN_FRAC(1,4), RGN_FRAC(3,4), RGN_FRAC(0,4), RGN_FRAC(2,4) },
{ STEP8(0,1) }, { STEP8(0,1) },
{ STEP8(0,8) }, { STEP8(0,8) },
8*8 /* every char takes 8 consecutive bytes */ 8*8 // every char takes 8 consecutive bytes
}; };
static const gfx_layout layout_16x16x4 = static const gfx_layout layout_16x16x4 =
{ {
16,16, /* 16*16 sprites */ 16,16, // 16*16 sprites
RGN_FRAC(1,4), RGN_FRAC(1,4),
4, 4,
{ 0, RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, /* plane offset */ { 0, RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, // plane offset
{ STEP8(16*8,1), STEP8(0,1) }, { STEP8(16*8,1), STEP8(0,1) },
{ STEP16(0,8) }, { STEP16(0,8) },
32*8 /* every sprite takes 32 consecutive bytes */ 32*8 // every sprite takes 32 consecutive bytes
}; };
static GFXDECODE_START( gfx_actfan ) static GFXDECODE_START( gfx_actfan )
@ -251,36 +341,36 @@ GFXDECODE_END
/******************************************************************************/ /******************************************************************************/
MACHINE_START_MEMBER(actfancr_state,triothep) void triothep_state::machine_start()
{ {
save_item(NAME(m_trio_control_select)); save_item(NAME(m_control_select));
} }
MACHINE_RESET_MEMBER(actfancr_state,triothep) void triothep_state::machine_reset()
{ {
m_trio_control_select = 0; m_control_select = 0;
} }
/******************************************************************************/ /******************************************************************************/
void actfancr_state::actfancr(machine_config &config) void actfancr_state::actfancr(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
H6280(config, m_maincpu, 21477200/3); /* Should be accurate */ H6280(config, m_maincpu, 21477200/3); // Should be accurate
m_maincpu->set_addrmap(AS_PROGRAM, &actfancr_state::actfan_map); m_maincpu->set_addrmap(AS_PROGRAM, &actfancr_state::prg_map);
m_maincpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused m_maincpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
M6502(config, m_audiocpu, 1500000); /* Should be accurate */ M6502(config, m_audiocpu, 1500000); // Should be accurate
m_audiocpu->set_addrmap(AS_PROGRAM, &actfancr_state::dec0_s_map); m_audiocpu->set_addrmap(AS_PROGRAM, &actfancr_state::dec0_s_map);
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60); screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
screen.set_size(32*8, 32*8); screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1); screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
screen.set_screen_update(FUNC(actfancr_state::screen_update)); screen.set_screen_update(FUNC(actfancr_state::screen_update));
screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); /* VBL */ screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); // VBL
screen.set_palette("palette"); screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_actfan); GFXDECODE(config, m_gfxdecode, "palette", gfx_actfan);
@ -296,11 +386,10 @@ void actfancr_state::actfancr(machine_config &config)
DECO_MXC06(config, m_spritegen, 0); DECO_MXC06(config, m_spritegen, 0);
/* sound hardware */ // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ym2203_device &ym1(YM2203(config, "ym1", 1500000)); ym2203_device &ym1(YM2203(config, "ym1", 1500000));
ym1.add_route(0, "mono", 0.90); ym1.add_route(0, "mono", 0.90);
@ -316,81 +405,48 @@ void actfancr_state::actfancr(machine_config &config)
oki.add_route(ALL_OUTPUTS, "mono", 0.85); oki.add_route(ALL_OUTPUTS, "mono", 0.85);
} }
void actfancr_state::triothep(machine_config &config) void triothep_state::triothep(machine_config &config)
{ {
/* basic machine hardware */ actfancr(config);
H6280(config, m_maincpu, XTAL(21'477'272)/3); /* XIN=21.4772Mhz, verified on pcb */
m_maincpu->set_addrmap(AS_PROGRAM, &actfancr_state::triothep_map);
m_maincpu->port_in_cb().set(FUNC(actfancr_state::triothep_control_r));
m_maincpu->port_out_cb().set(FUNC(actfancr_state::triothep_control_select_w));
m_maincpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
M6502(config, m_audiocpu, XTAL(12'000'000)/8); /* verified on pcb */ // basic machine hardware
m_audiocpu->set_addrmap(AS_PROGRAM, &actfancr_state::dec0_s_map); m_maincpu->set_clock(XTAL(21'477'272) / 3); /* XIN = 21.4772Mhz, verified on PCB */
m_maincpu->set_addrmap(AS_PROGRAM, &triothep_state::prg_map);
m_maincpu->port_in_cb().set(FUNC(triothep_state::control_r));
m_maincpu->port_out_cb().set(FUNC(triothep_state::control_select_w));
MCFG_MACHINE_START_OVERRIDE(actfancr_state,triothep) m_audiocpu->set_clock(XTAL(12'000'000) / 8); // verified on PCB
MCFG_MACHINE_RESET_OVERRIDE(actfancr_state,triothep)
/* video hardware */ // video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); m_gfxdecode->set_info(gfx_triothep);
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(529));
screen.set_size(32*8, 32*8);
screen.set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
screen.set_screen_update(FUNC(actfancr_state::screen_update));
screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE); /* VBL */
screen.set_palette("palette");
GFXDECODE(config, m_gfxdecode, "palette", gfx_triothep);
PALETTE(config, "palette").set_format(palette_device::xBGR_444, 768);
DECO_BAC06(config, m_tilegen[0], 0);
m_tilegen[0]->set_gfx_region_wide(2, 2, 0); m_tilegen[0]->set_gfx_region_wide(2, 2, 0);
m_tilegen[0]->set_gfxdecode_tag(m_gfxdecode);
DECO_BAC06(config, m_tilegen[1], 0); // sound hardware
m_tilegen[1]->set_gfx_region_wide(0, 0, 0); subdevice<ym2203_device>("ym1")->set_clock(XTAL(12'000'000) / 8); // verified on PCB
m_tilegen[1]->set_gfxdecode_tag(m_gfxdecode);
DECO_MXC06(config, m_spritegen, 0); subdevice<ym3812_device>("ym2")->set_clock(XTAL(12'000'000) / 4); // verified on PCB
/* sound hardware */ subdevice<okim6295_device>("oki")->set_clock(XTAL(1'056'000)); // verified on PCB
SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, INPUT_LINE_NMI);
ym2203_device &ym1(YM2203(config, "ym1", XTAL(12'000'000)/8)); /* verified on pcb */
ym1.add_route(0, "mono", 0.90);
ym1.add_route(1, "mono", 0.90);
ym1.add_route(2, "mono", 0.90);
ym1.add_route(3, "mono", 0.50);
ym3812_device &ym2(YM3812(config, "ym2", XTAL(12'000'000)/4)); /* verified on pcb */
ym2.irq_handler().set_inputline("audiocpu", M6502_IRQ_LINE);
ym2.add_route(ALL_OUTPUTS, "mono", 0.90);
okim6295_device &oki(OKIM6295(config, "oki", XTAL(1'056'000), okim6295_device::PIN7_HIGH)); /* verified on pcb */
oki.add_route(ALL_OUTPUTS, "mono", 0.85);
} }
/******************************************************************************/ /******************************************************************************/
ROM_START( actfancr ) ROM_START( actfancr )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x30000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "fe08-3.bin", 0x00000, 0x10000, CRC(35f1999d) SHA1(03b61b6544a21350dbb7a31591db163a00cf7a64) ) ROM_LOAD( "fe08-3.bin", 0x00000, 0x10000, CRC(35f1999d) SHA1(03b61b6544a21350dbb7a31591db163a00cf7a64) )
ROM_LOAD( "fe09-3.bin", 0x10000, 0x10000, CRC(d21416ca) SHA1(2c863042fe7cf5e4d8cf8a1138089b539406bec3) ) ROM_LOAD( "fe09-3.bin", 0x10000, 0x10000, CRC(d21416ca) SHA1(2c863042fe7cf5e4d8cf8a1138089b539406bec3) )
ROM_LOAD( "fe10-3.bin", 0x20000, 0x10000, CRC(85535fcc) SHA1(c764032463a40c9110ab35c38642de070d528a60) ) ROM_LOAD( "fe10-3.bin", 0x20000, 0x10000, CRC(85535fcc) SHA1(c764032463a40c9110ab35c38642de070d528a60) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) ) ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) ) /* Chars */ ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) )
ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) ) ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) ) /* Sprites */ ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) )
ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) ) ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) )
ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) ) ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) )
ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) ) ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) )
@ -400,30 +456,30 @@ ROM_START( actfancr )
ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) ) ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) ) /* Tiles */ ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) )
ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) ) ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) )
ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) ) ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) )
ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) ) ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM sounds */ ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) ) ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) )
ROM_END ROM_END
ROM_START( actfancr2 ) ROM_START( actfancr2 )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x30000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "fe08-2.bin", 0x00000, 0x10000, CRC(0d36fbfa) SHA1(cef5cfd053beac5ca2ac52421024c316bdbfba42) ) ROM_LOAD( "fe08-2.bin", 0x00000, 0x10000, CRC(0d36fbfa) SHA1(cef5cfd053beac5ca2ac52421024c316bdbfba42) )
ROM_LOAD( "fe09-2.bin", 0x10000, 0x10000, CRC(27ce2bb1) SHA1(52a423dfc2bba7b3330d1a10f4149ae6eeb9198c) ) ROM_LOAD( "fe09-2.bin", 0x10000, 0x10000, CRC(27ce2bb1) SHA1(52a423dfc2bba7b3330d1a10f4149ae6eeb9198c) )
ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) ) ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) ) ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) ) /* Chars */ ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) )
ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) ) ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) ) /* Sprites */ ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) )
ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) ) ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) )
ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) ) ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) )
ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) ) ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) )
@ -433,30 +489,30 @@ ROM_START( actfancr2 )
ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) ) ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) ) /* Tiles */ ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) )
ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) ) ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) )
ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) ) ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) )
ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) ) ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM sounds */ ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) ) ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) )
ROM_END ROM_END
ROM_START( actfancr1 ) ROM_START( actfancr1 )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x30000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "08-1", 0x00000, 0x10000, CRC(3bf214a4) SHA1(f7513672b2292d3acb4332b392695888bf6560a5) ) ROM_LOAD( "08-1", 0x00000, 0x10000, CRC(3bf214a4) SHA1(f7513672b2292d3acb4332b392695888bf6560a5) )
ROM_LOAD( "09-1", 0x10000, 0x10000, CRC(13ae78d5) SHA1(eba77d3dbfe273e18c7fa9c0ca305ac2468f9381) ) ROM_LOAD( "09-1", 0x10000, 0x10000, CRC(13ae78d5) SHA1(eba77d3dbfe273e18c7fa9c0ca305ac2468f9381) )
ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) ) ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) ) ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) ) /* Chars */ ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) )
ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) ) ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) ) /* Sprites */ ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) )
ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) ) ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) )
ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) ) ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) )
ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) ) ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) )
@ -466,30 +522,30 @@ ROM_START( actfancr1 )
ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) ) ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) ) /* Tiles */ ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) )
ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) ) ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) )
ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) ) ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) )
ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) ) ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM sounds */ ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) ) ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) )
ROM_END ROM_END
ROM_START( actfancrj ) ROM_START( actfancrj )
ROM_REGION( 0x30000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x30000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "fd08-1.bin", 0x00000, 0x10000, CRC(69004b60) SHA1(7c6b876ca04377d2aa2d3c3f19d8e6cc7345363d) ) ROM_LOAD( "fd08-1.bin", 0x00000, 0x10000, CRC(69004b60) SHA1(7c6b876ca04377d2aa2d3c3f19d8e6cc7345363d) )
ROM_LOAD( "fd09-1.bin", 0x10000, 0x10000, CRC(a455ae3e) SHA1(960798271c8370c1c4ffce2a453f59d7a301c9f9) ) ROM_LOAD( "fd09-1.bin", 0x10000, 0x10000, CRC(a455ae3e) SHA1(960798271c8370c1c4ffce2a453f59d7a301c9f9) )
ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) ) ROM_LOAD( "10", 0x20000, 0x10000, CRC(cabad137) SHA1(41ca833649671a29e9395968cde2be8137a9ff0a) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) ) ROM_LOAD( "17-1", 0x08000, 0x8000, CRC(289ad106) SHA1(cf1b32ac41d3d92860fab04d82a08efe57b6ecf3) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) ) /* Chars */ ROM_LOAD( "15", 0x00000, 0x10000, CRC(a1baf21e) SHA1(b85cf9180efae6c95cc0310064b52a78e591826a) )
ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) ) ROM_LOAD( "16", 0x10000, 0x10000, CRC(22e64730) SHA1(f1376c6e2c9d021eca7ccee3daab00593ba724b6) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) ) /* Sprites */ ROM_LOAD( "02", 0x00000, 0x10000, CRC(b1db0efc) SHA1(a7bd7748ea37f473499ba5bf8ab4995b9240ff48) )
ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) ) ROM_LOAD( "03", 0x10000, 0x08000, CRC(f313e04f) SHA1(fe69758910d38f742971c1027fc8f498c88262b1) )
ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) ) ROM_LOAD( "06", 0x18000, 0x10000, CRC(8cb6dd87) SHA1(fab4fe76d2426c906a9070cbf7ce81200ba27ff6) )
ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) ) ROM_LOAD( "07", 0x28000, 0x08000, CRC(dd345def) SHA1(44fbf9da636a4e18c421fdc0a1eadc3c7ba66068) )
@ -499,30 +555,30 @@ ROM_START( actfancrj )
ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) ) ROM_LOAD( "05", 0x58000, 0x08000, CRC(d38b94aa) SHA1(773d01427744fda9104f673d2b4183a0f7471a39) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) ) /* Tiles */ ROM_LOAD( "14", 0x00000, 0x10000, CRC(d6457420) SHA1(d03d2e944e768b297ec0c3389320c42bc0259d00) )
ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) ) ROM_LOAD( "12", 0x10000, 0x10000, CRC(08787b7a) SHA1(23b10b75c4cbff8effadf4c6ed15d90b87648ce9) )
ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) ) ROM_LOAD( "13", 0x20000, 0x10000, CRC(c30c37dc) SHA1(0f7a325738eafa85239497e2b97aa51a6f2ffc4d) )
ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) ) ROM_LOAD( "11", 0x30000, 0x10000, CRC(1f006d9f) SHA1(74bc2d4d022ad7c65be781f974919262cacb4b64) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM sounds */ ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) ) ROM_LOAD( "18", 0x00000, 0x10000, CRC(5c55b242) SHA1(62ba60b2f02483875da12aefe849f7e2fd137ef1) )
ROM_END ROM_END
ROM_START( triothep ) ROM_START( triothep )
ROM_REGION( 0x40000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x40000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "fg-16.bin", 0x00000, 0x20000, CRC(7238355a) SHA1(4ac6c3fd808e7c94025972fdb45956bd707ec89f) ) ROM_LOAD( "fg-16.bin", 0x00000, 0x20000, CRC(7238355a) SHA1(4ac6c3fd808e7c94025972fdb45956bd707ec89f) )
ROM_LOAD( "fg-15.bin", 0x20000, 0x10000, CRC(1c0551ab) SHA1(1f90f80db44d92af4b233bc16cb1023db2797e8a) ) ROM_LOAD( "fg-15.bin", 0x20000, 0x10000, CRC(1c0551ab) SHA1(1f90f80db44d92af4b233bc16cb1023db2797e8a) )
ROM_LOAD( "fg-14.bin", 0x30000, 0x10000, CRC(4ba7de4a) SHA1(bf552fa33746f3d27f9b193424a38fef58fe0765) ) ROM_LOAD( "fg-14.bin", 0x30000, 0x10000, CRC(4ba7de4a) SHA1(bf552fa33746f3d27f9b193424a38fef58fe0765) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "fg-18.bin", 0x00000, 0x10000, CRC(9de9ee63) SHA1(c91b824b9a791cb90365d45c8e1b69e67f7d065f) ) ROM_LOAD( "fg-18.bin", 0x00000, 0x10000, CRC(9de9ee63) SHA1(c91b824b9a791cb90365d45c8e1b69e67f7d065f) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "fg-12.bin", 0x00000, 0x10000, CRC(15fb49f2) SHA1(a81ff1dbc813ab9b37edb832e01aab9a9a3ed5a1) ) /* Chars */ ROM_LOAD( "fg-12.bin", 0x00000, 0x10000, CRC(15fb49f2) SHA1(a81ff1dbc813ab9b37edb832e01aab9a9a3ed5a1) )
ROM_LOAD( "fg-13.bin", 0x10000, 0x10000, CRC(e20c9623) SHA1(b5a58599a016378f34217396212f81ede9272598) ) ROM_LOAD( "fg-13.bin", 0x10000, 0x10000, CRC(e20c9623) SHA1(b5a58599a016378f34217396212f81ede9272598) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "fg-11.bin", 0x00000, 0x10000, CRC(1143ebd7) SHA1(0ef2cf40f852bf0842beeb9727508e28437ab54b) ) /* Sprites */ ROM_LOAD( "fg-11.bin", 0x00000, 0x10000, CRC(1143ebd7) SHA1(0ef2cf40f852bf0842beeb9727508e28437ab54b) )
ROM_LOAD( "fg-10.bin", 0x10000, 0x08000, CRC(4b6b477a) SHA1(77486e0ff957cbfdae16d2b5977e95b7a7ced948) ) ROM_LOAD( "fg-10.bin", 0x10000, 0x08000, CRC(4b6b477a) SHA1(77486e0ff957cbfdae16d2b5977e95b7a7ced948) )
ROM_LOAD( "fg-09.bin", 0x18000, 0x10000, CRC(6bf6c803) SHA1(c16fd4b7e1e86db48c6e78a4b5dcd42e8269b465) ) ROM_LOAD( "fg-09.bin", 0x18000, 0x10000, CRC(6bf6c803) SHA1(c16fd4b7e1e86db48c6e78a4b5dcd42e8269b465) )
ROM_LOAD( "fg-08.bin", 0x28000, 0x08000, CRC(1391e445) SHA1(bd53a969567bb5a46a35bd02e84bbb58c446a0a2) ) ROM_LOAD( "fg-08.bin", 0x28000, 0x08000, CRC(1391e445) SHA1(bd53a969567bb5a46a35bd02e84bbb58c446a0a2) )
@ -532,7 +588,7 @@ ROM_START( triothep )
ROM_LOAD( "fg-00.bin", 0x58000, 0x08000, CRC(41232442) SHA1(1c10a4f5607e41d6239cb478ed7355963ad6b2d0) ) ROM_LOAD( "fg-00.bin", 0x58000, 0x08000, CRC(41232442) SHA1(1c10a4f5607e41d6239cb478ed7355963ad6b2d0) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "fg-04.bin", 0x00000, 0x10000, CRC(7cea3c87) SHA1(b58156140a75f88ee6ec97ca7cdc02619ec51726) ) /* Tiles */ ROM_LOAD( "fg-04.bin", 0x00000, 0x10000, CRC(7cea3c87) SHA1(b58156140a75f88ee6ec97ca7cdc02619ec51726) )
ROM_LOAD( "fg-06.bin", 0x10000, 0x10000, CRC(5e7f3e8f) SHA1(c92ec281b3985b442957f7d9237eb38a6d621cd4) ) ROM_LOAD( "fg-06.bin", 0x10000, 0x10000, CRC(5e7f3e8f) SHA1(c92ec281b3985b442957f7d9237eb38a6d621cd4) )
ROM_LOAD( "fg-05.bin", 0x20000, 0x10000, CRC(8bb13f05) SHA1(f524cb0a38d0025c93124fc329d913e000155e9b) ) ROM_LOAD( "fg-05.bin", 0x20000, 0x10000, CRC(8bb13f05) SHA1(f524cb0a38d0025c93124fc329d913e000155e9b) )
ROM_LOAD( "fg-07.bin", 0x30000, 0x10000, CRC(0d7affc3) SHA1(59f9fbf13216aaf67c7d1ad3a11a1738c4afd9e5) ) ROM_LOAD( "fg-07.bin", 0x30000, 0x10000, CRC(0d7affc3) SHA1(59f9fbf13216aaf67c7d1ad3a11a1738c4afd9e5) )
@ -541,22 +597,22 @@ ROM_START( triothep )
ROM_LOAD( "fg-17.bin", 0x00000, 0x10000, CRC(f0ab0d05) SHA1(29d3ab513a8d46a1cb70f5333fa56bb787a58288) ) ROM_LOAD( "fg-17.bin", 0x00000, 0x10000, CRC(f0ab0d05) SHA1(29d3ab513a8d46a1cb70f5333fa56bb787a58288) )
ROM_END ROM_END
/* All roms are FF even the ones matching the parent FG roms */ // All ROMSs are FF even the ones matching the parent FG ROMs
ROM_START( triothepj ) ROM_START( triothepj )
ROM_REGION( 0x40000, "maincpu", 0 ) /* Need to allow full RAM allocation for now */ ROM_REGION( 0x40000, "maincpu", 0 ) // Need to allow full RAM allocation for now
ROM_LOAD( "ff-16.bin", 0x00000, 0x20000, CRC(84d7e1b6) SHA1(28381d2e1f6d22a959383eb2e8d73f2e03f4d39f) ) ROM_LOAD( "ff-16.bin", 0x00000, 0x20000, CRC(84d7e1b6) SHA1(28381d2e1f6d22a959383eb2e8d73f2e03f4d39f) )
ROM_LOAD( "ff-15.bin", 0x20000, 0x10000, CRC(6eada47c) SHA1(98fc4e93c47bc42ea7c20e8ac994b117cd7cb5a5) ) ROM_LOAD( "ff-15.bin", 0x20000, 0x10000, CRC(6eada47c) SHA1(98fc4e93c47bc42ea7c20e8ac994b117cd7cb5a5) )
ROM_LOAD( "ff-14.bin", 0x30000, 0x10000, CRC(4ba7de4a) SHA1(bf552fa33746f3d27f9b193424a38fef58fe0765) ) ROM_LOAD( "ff-14.bin", 0x30000, 0x10000, CRC(4ba7de4a) SHA1(bf552fa33746f3d27f9b193424a38fef58fe0765) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 ) // 6502 Sound CPU
ROM_LOAD( "ff-18.bin", 0x00000, 0x10000, CRC(9de9ee63) SHA1(c91b824b9a791cb90365d45c8e1b69e67f7d065f) ) ROM_LOAD( "ff-18.bin", 0x00000, 0x10000, CRC(9de9ee63) SHA1(c91b824b9a791cb90365d45c8e1b69e67f7d065f) )
ROM_REGION( 0x20000, "chars", 0 ) ROM_REGION( 0x20000, "chars", 0 )
ROM_LOAD( "ff-12.bin", 0x00000, 0x10000, CRC(15fb49f2) SHA1(a81ff1dbc813ab9b37edb832e01aab9a9a3ed5a1) ) /* Chars */ ROM_LOAD( "ff-12.bin", 0x00000, 0x10000, CRC(15fb49f2) SHA1(a81ff1dbc813ab9b37edb832e01aab9a9a3ed5a1) )
ROM_LOAD( "ff-13.bin", 0x10000, 0x10000, CRC(e20c9623) SHA1(b5a58599a016378f34217396212f81ede9272598) ) ROM_LOAD( "ff-13.bin", 0x10000, 0x10000, CRC(e20c9623) SHA1(b5a58599a016378f34217396212f81ede9272598) )
ROM_REGION( 0x60000, "sprites", 0 ) ROM_REGION( 0x60000, "sprites", 0 )
ROM_LOAD( "ff-11.bin", 0x00000, 0x10000, CRC(19e885c7) SHA1(694f0aa4c1c976320d985ee50bb59c1894b853ed) ) /* Sprites */ ROM_LOAD( "ff-11.bin", 0x00000, 0x10000, CRC(19e885c7) SHA1(694f0aa4c1c976320d985ee50bb59c1894b853ed) )
ROM_LOAD( "ff-10.bin", 0x10000, 0x08000, CRC(4b6b477a) SHA1(77486e0ff957cbfdae16d2b5977e95b7a7ced948) ) ROM_LOAD( "ff-10.bin", 0x10000, 0x08000, CRC(4b6b477a) SHA1(77486e0ff957cbfdae16d2b5977e95b7a7ced948) )
ROM_LOAD( "ff-09.bin", 0x18000, 0x10000, CRC(79c6bc0e) SHA1(d4bf195f6114103d2eb68f3aaf65d4044947f600) ) ROM_LOAD( "ff-09.bin", 0x18000, 0x10000, CRC(79c6bc0e) SHA1(d4bf195f6114103d2eb68f3aaf65d4044947f600) )
ROM_LOAD( "ff-08.bin", 0x28000, 0x08000, CRC(1391e445) SHA1(bd53a969567bb5a46a35bd02e84bbb58c446a0a2) ) ROM_LOAD( "ff-08.bin", 0x28000, 0x08000, CRC(1391e445) SHA1(bd53a969567bb5a46a35bd02e84bbb58c446a0a2) )
@ -566,20 +622,23 @@ ROM_START( triothepj )
ROM_LOAD( "ff-00.bin", 0x58000, 0x08000, CRC(41232442) SHA1(1c10a4f5607e41d6239cb478ed7355963ad6b2d0) ) ROM_LOAD( "ff-00.bin", 0x58000, 0x08000, CRC(41232442) SHA1(1c10a4f5607e41d6239cb478ed7355963ad6b2d0) )
ROM_REGION( 0x40000, "tiles", 0 ) ROM_REGION( 0x40000, "tiles", 0 )
ROM_LOAD( "ff-04.bin", 0x00000, 0x10000, CRC(7cea3c87) SHA1(b58156140a75f88ee6ec97ca7cdc02619ec51726) ) /* Tiles */ ROM_LOAD( "ff-04.bin", 0x00000, 0x10000, CRC(7cea3c87) SHA1(b58156140a75f88ee6ec97ca7cdc02619ec51726) )
ROM_LOAD( "ff-06.bin", 0x10000, 0x10000, CRC(5e7f3e8f) SHA1(c92ec281b3985b442957f7d9237eb38a6d621cd4) ) ROM_LOAD( "ff-06.bin", 0x10000, 0x10000, CRC(5e7f3e8f) SHA1(c92ec281b3985b442957f7d9237eb38a6d621cd4) )
ROM_LOAD( "ff-05.bin", 0x20000, 0x10000, CRC(8bb13f05) SHA1(f524cb0a38d0025c93124fc329d913e000155e9b) ) ROM_LOAD( "ff-05.bin", 0x20000, 0x10000, CRC(8bb13f05) SHA1(f524cb0a38d0025c93124fc329d913e000155e9b) )
ROM_LOAD( "ff-07.bin", 0x30000, 0x10000, CRC(0d7affc3) SHA1(59f9fbf13216aaf67c7d1ad3a11a1738c4afd9e5) ) ROM_LOAD( "ff-07.bin", 0x30000, 0x10000, CRC(0d7affc3) SHA1(59f9fbf13216aaf67c7d1ad3a11a1738c4afd9e5) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM sounds */ ROM_REGION( 0x40000, "oki", 0 )
ROM_LOAD( "ff-17.bin", 0x00000, 0x10000, CRC(f0ab0d05) SHA1(29d3ab513a8d46a1cb70f5333fa56bb787a58288) ) ROM_LOAD( "ff-17.bin", 0x00000, 0x10000, CRC(f0ab0d05) SHA1(29d3ab513a8d46a1cb70f5333fa56bb787a58288) )
ROM_END ROM_END
} // Anonymous namespace
/******************************************************************************/ /******************************************************************************/
GAME( 1989, actfancr, 0, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, actfancr, 0, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, actfancr2, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, actfancr2, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, actfancr1, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, actfancr1, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, actfancrj, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, actfancrj, actfancr, actfancr, actfancr, actfancr_state, empty_init, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, triothep, 0, triothep, triothep, actfancr_state, empty_init, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, triothep, 0, triothep, triothep, triothep_state, empty_init, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", MACHINE_SUPPORTS_SAVE )
GAME( 1989, triothepj, triothep, triothep, triothep, actfancr_state, empty_init, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1989, triothepj, triothep, triothep, triothep, triothep_state, empty_init, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", MACHINE_SUPPORTS_SAVE )

View File

@ -7,7 +7,7 @@
Emulation by Bryan McPhail, mish@tendril.co.uk Emulation by Bryan McPhail, mish@tendril.co.uk
This board is based on the Hudson HuC6280 and Huc6270 IC's used in This board is based on the Hudson HuC6280 and Huc6270 ICs used in
the NEC PC-Engine. the NEC PC-Engine.
Differences from PC-Engine console: Differences from PC-Engine console:
@ -79,7 +79,7 @@ Notes:
2063 - Toshiba TMM2063 8kx8 SRAM used for main work RAM 2063 - Toshiba TMM2063 8kx8 SRAM used for main work RAM
62256 - Hitachi HM62256 32kx8 SRAM used for video RAM 62256 - Hitachi HM62256 32kx8 SRAM used for video RAM
ET* - EPROMs/MaskROMs ET* - EPROMs/MaskROMs
YM2203C - Yahama YM2203C FM Operator Type-N(OPN) 3-Channel Sound Chip. Clock input 1.5MHz [12/8] YM2203C - Yamaha YM2203C FM Operator Type-N(OPN) 3-Channel Sound Chip. Clock input 1.5MHz [12/8]
YM3014B - Yamaha YM3014B Serial Input Floating D/A Converter YM3014B - Yamaha YM3014B Serial Input Floating D/A Converter
M5205 - Oki M5205 ADPCM Speech Synthesis LSI. Clock input is via a 384kHz resonator M5205 - Oki M5205 ADPCM Speech Synthesis LSI. Clock input is via a 384kHz resonator
MB3730 - Fujitsu MB3730 14W BTL Audio Power Amplifier. Audio output is mono via the JAMMA connector MB3730 - Fujitsu MB3730 14W BTL Audio Power Amplifier. Audio output is mono via the JAMMA connector
@ -93,15 +93,74 @@ Notes:
**********************************************************************/ **********************************************************************/
#include "emu.h" #include "emu.h"
#include "includes/battlera.h"
#include "cpu/h6280/h6280.h"
#include "machine/gen_latch.h"
#include "sound/msm5205.h"
#include "sound/ymopn.h" #include "sound/ymopn.h"
#include "video/huc6260.h"
#include "video/huc6270.h"
#include "screen.h"
#include "speaker.h" #include "speaker.h"
namespace {
class battlera_state : public driver_device
{
public:
battlera_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_msm(*this, "msm")
, m_screen(*this, "screen")
, m_huc6260(*this, "huc6260")
, m_soundlatch(*this, "soundlatch")
, m_in(*this, "IN%u", 0U)
, m_dsw(*this, "DSW%u", 1U)
{ }
void battlera(machine_config &config);
protected:
virtual void machine_start() override;
virtual void machine_reset() override;
private:
required_device<h6280_device> m_maincpu;
required_device<h6280_device> m_audiocpu;
required_device<msm5205_device> m_msm;
required_device<screen_device> m_screen;
required_device<huc6260_device> m_huc6260;
required_device<generic_latch_8_device> m_soundlatch;
required_ioport_array<3> m_in;
required_ioport_array<2> m_dsw;
uint8_t m_control_port_select;
int m_msm5205next;
uint8_t m_toggle;
void control_data_w(uint8_t data);
uint8_t control_data_r();
void adpcm_data_w(uint8_t data);
void adpcm_reset_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void main_prg_map(address_map &map);
void main_portmap(address_map &map);
void sound_map(address_map &map);
};
void battlera_state::machine_start() void battlera_state::machine_start()
{ {
save_item(NAME(m_control_port_select)); save_item(NAME(m_control_port_select));
save_item(NAME(m_msm5205next)); save_item(NAME(m_msm5205next));
save_item(NAME(m_toggle));
} }
void battlera_state::machine_reset() void battlera_state::machine_reset()
@ -115,18 +174,18 @@ void battlera_state::machine_reset()
void battlera_state::control_data_w(uint8_t data) void battlera_state::control_data_w(uint8_t data)
{ {
m_control_port_select=data; m_control_port_select = data;
} }
uint8_t battlera_state::control_data_r() uint8_t battlera_state::control_data_r()
{ {
switch (m_control_port_select) switch (m_control_port_select)
{ {
case 0xfe: return ioport("IN0")->read(); /* Player 1 */ case 0xfe: return m_in[0]->read(); // Player
case 0xfd: return ioport("IN1")->read(); /* Player 2 */ case 0xfd: return m_in[1]->read(); // Player
case 0xfb: return ioport("IN2")->read(); /* Coins */ case 0xfb: return m_in[2]->read(); // Coins
case 0xf7: return ioport("DSW2")->read(); /* Dip 2 */ case 0xf7: return m_dsw[1]->read(); // Dip 2
case 0xef: return ioport("DSW1")->read(); /* Dip 1 */ case 0xef: return m_dsw[0]->read(); // Dip 1
} }
return 0xff; return 0xff;
@ -134,17 +193,17 @@ uint8_t battlera_state::control_data_r()
/******************************************************************************/ /******************************************************************************/
void battlera_state::battlera_map(address_map &map) void battlera_state::main_prg_map(address_map &map)
{ {
map(0x000000, 0x0fffff).rom(); map(0x000000, 0x0fffff).rom();
map(0x1e0800, 0x1e0800).w(m_soundlatch, FUNC(generic_latch_8_device::write)); map(0x1e0800, 0x1e0800).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x1e1000, 0x1e13ff).rw(m_huc6260, FUNC(huc6260_device::palette_direct_read), FUNC(huc6260_device::palette_direct_write)).share("paletteram"); map(0x1e1000, 0x1e13ff).rw(m_huc6260, FUNC(huc6260_device::palette_direct_read), FUNC(huc6260_device::palette_direct_write)).share("paletteram");
map(0x1f0000, 0x1f1fff).ram(); /* Main ram */ map(0x1f0000, 0x1f1fff).ram(); // Main RAM
map(0x1fe000, 0x1fe3ff).rw("huc6270", FUNC(huc6270_device::read), FUNC(huc6270_device::write)); map(0x1fe000, 0x1fe3ff).rw("huc6270", FUNC(huc6270_device::read), FUNC(huc6270_device::write));
map(0x1fe400, 0x1fe7ff).rw(m_huc6260, FUNC(huc6260_device::read), FUNC(huc6260_device::write)); map(0x1fe400, 0x1fe7ff).rw(m_huc6260, FUNC(huc6260_device::read), FUNC(huc6260_device::write));
} }
void battlera_state::battlera_portmap(address_map &map) void battlera_state::main_portmap(address_map &map)
{ {
map(0x00, 0x03).rw("huc6270", FUNC(huc6270_device::read), FUNC(huc6270_device::write)); map(0x00, 0x03).rw("huc6270", FUNC(huc6270_device::read), FUNC(huc6270_device::write));
} }
@ -177,13 +236,13 @@ void battlera_state::sound_map(address_map &map)
map(0x000000, 0x00ffff).rom(); map(0x000000, 0x00ffff).rom();
map(0x040000, 0x040001).w("ymsnd", FUNC(ym2203_device::write)); map(0x040000, 0x040001).w("ymsnd", FUNC(ym2203_device::write));
map(0x080000, 0x080001).w(FUNC(battlera_state::adpcm_data_w)); map(0x080000, 0x080001).w(FUNC(battlera_state::adpcm_data_w));
map(0x1f0000, 0x1f1fff).ram(); /* Main ram */ map(0x1f0000, 0x1f1fff).ram(); // Main RAM
} }
/******************************************************************************/ /******************************************************************************/
static INPUT_PORTS_START( battlera ) static INPUT_PORTS_START( battlera )
PORT_START("IN0") /* Player 1 controls */ PORT_START("IN0") // Player 1 controls
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
@ -193,7 +252,7 @@ static INPUT_PORTS_START( battlera )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
PORT_START("IN1") /* Player 2 controls */ PORT_START("IN1") // Player 2 controls
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
@ -203,7 +262,7 @@ static INPUT_PORTS_START( battlera )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START2 )
PORT_START("IN2") /* Coins */ PORT_START("IN2") // Coins
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
@ -220,12 +279,12 @@ static INPUT_PORTS_START( battlera )
PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) ) PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) ) PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) ) PORT_DIPSETTING( 0x08, DEF_STR( 1C_2C ) )
PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW1:5" ) // Listed as "Unused"
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6") PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) ) PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW1:7" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW1:7" ) // Listed as "Unused"
PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:8" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW1:8" ) // Listed as "Unused"
PORT_START("DSW2") PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2") PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1,2")
@ -241,9 +300,9 @@ static INPUT_PORTS_START( battlera )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5") PORT_DIPNAME( 0x10, 0x10, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x00, DEF_STR( No ) ) PORT_DIPSETTING( 0x00, DEF_STR( No ) )
PORT_DIPSETTING( 0x10, DEF_STR( Yes ) ) PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW2:6" ) // Listed as "Unused"
PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW2:7" ) // Listed as "Unused"
PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) /* Listed as "Unused" */ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW2:8" ) // Listed as "Unused"
INPUT_PORTS_END INPUT_PORTS_END
@ -251,34 +310,34 @@ INPUT_PORTS_END
uint32_t battlera_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) uint32_t battlera_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
m_huc6260->video_update( bitmap, cliprect ); m_huc6260->video_update(bitmap, cliprect);
return 0; return 0;
} }
void battlera_state::battlera(machine_config &config) void battlera_state::battlera(machine_config &config)
{ {
/* basic machine hardware */ // basic machine hardware
H6280(config, m_maincpu, 21477200/3); H6280(config, m_maincpu, 21.477272_MHz_XTAL / 3);
m_maincpu->set_addrmap(AS_PROGRAM, &battlera_state::battlera_map); m_maincpu->set_addrmap(AS_PROGRAM, &battlera_state::main_prg_map);
m_maincpu->set_addrmap(AS_IO, &battlera_state::battlera_portmap); m_maincpu->set_addrmap(AS_IO, &battlera_state::main_portmap);
m_maincpu->port_in_cb().set(FUNC(battlera_state::control_data_r)); m_maincpu->port_in_cb().set(FUNC(battlera_state::control_data_r));
m_maincpu->port_out_cb().set(FUNC(battlera_state::control_data_w)); m_maincpu->port_out_cb().set(FUNC(battlera_state::control_data_w));
m_maincpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused m_maincpu->add_route(ALL_OUTPUTS, "mono", 0); // internal sound unused
H6280(config, m_audiocpu, 21477200/3); H6280(config, m_audiocpu, 21.477272_MHz_XTAL / 3);
m_audiocpu->set_addrmap(AS_PROGRAM, &battlera_state::sound_map); m_audiocpu->set_addrmap(AS_PROGRAM, &battlera_state::sound_map);
m_audiocpu->port_in_cb().set(m_soundlatch, FUNC(generic_latch_8_device::read)); m_audiocpu->port_in_cb().set(m_soundlatch, FUNC(generic_latch_8_device::read));
m_audiocpu->port_out_cb().set(FUNC(battlera_state::adpcm_reset_w)); m_audiocpu->port_out_cb().set(FUNC(battlera_state::adpcm_reset_w));
m_audiocpu->add_route(ALL_OUTPUTS, "mono", 0.60); // music data is stereo, but hardware isn't m_audiocpu->add_route(ALL_OUTPUTS, "mono", 0.60); // music data is stereo, but hardware isn't
/* video hardware */ // video hardware
SCREEN(config, m_screen, SCREEN_TYPE_RASTER); SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242); m_screen->set_raw(21.477272_MHz_XTAL, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242);
m_screen->set_screen_update(FUNC(battlera_state::screen_update)); m_screen->set_screen_update(FUNC(battlera_state::screen_update));
m_screen->set_palette(m_huc6260); m_screen->set_palette(m_huc6260);
HUC6260(config, m_huc6260, MAIN_CLOCK); HUC6260(config, m_huc6260, 21.477272_MHz_XTAL);
m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel)); m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel));
m_huc6260->time_til_next_event().set("huc6270", FUNC(huc6270_device::time_until_next_event)); m_huc6260->time_til_next_event().set("huc6270", FUNC(huc6270_device::time_until_next_event));
m_huc6260->vsync_changed().set("huc6270", FUNC(huc6270_device::vsync_changed)); m_huc6260->vsync_changed().set("huc6270", FUNC(huc6270_device::vsync_changed));
@ -288,76 +347,77 @@ void battlera_state::battlera(machine_config &config)
huc6270.set_vram_size(0x20000); huc6270.set_vram_size(0x20000);
huc6270.irq().set_inputline(m_maincpu, 0); huc6270.irq().set_inputline(m_maincpu, 0);
/* sound hardware */ // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
GENERIC_LATCH_8(config, m_soundlatch); GENERIC_LATCH_8(config, m_soundlatch);
m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0); m_soundlatch->data_pending_callback().set_inputline(m_audiocpu, 0);
YM2203(config, "ymsnd", 12000000 / 8).add_route(ALL_OUTPUTS, "mono", 0.40); YM2203(config, "ymsnd", 12_MHz_XTAL / 8).add_route(ALL_OUTPUTS, "mono", 0.40);
MSM5205(config, m_msm, 384000); MSM5205(config, m_msm, 384_kHz_XTAL);
m_msm->vck_legacy_callback().set(FUNC(battlera_state::adpcm_int)); m_msm->vck_legacy_callback().set(FUNC(battlera_state::adpcm_int));
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8KHz */ m_msm->set_prescaler_selector(msm5205_device::S48_4B); // 8KHz
m_msm->add_route(ALL_OUTPUTS, "mono", 0.85); m_msm->add_route(ALL_OUTPUTS, "mono", 0.85);
} }
/******************************************************************************/ /******************************************************************************/
ROM_START( battlera ) ROM_START( battlera )
ROM_REGION( 0x100000, "maincpu", 0 ) /* Main cpu code */ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "00_e1.bin", 0x00000, 0x10000, CRC(aa1cbe69) SHA1(982530f3202bc7b8d94d2b818873b71f02c0e8de) ) /* ET00 */ ROM_LOAD( "00_e1.bin", 0x00000, 0x10000, CRC(aa1cbe69) SHA1(982530f3202bc7b8d94d2b818873b71f02c0e8de) ) // ET00
ROM_LOAD( "es01.rom", 0x10000, 0x10000, CRC(9fea3189) SHA1(0692df6df533dfe55f61df8aa0c5c11944ba3ae3) ) /* ET01 */ ROM_LOAD( "es01.rom", 0x10000, 0x10000, CRC(9fea3189) SHA1(0692df6df533dfe55f61df8aa0c5c11944ba3ae3) ) // ET01
ROM_LOAD( "02_e4.bin", 0x20000, 0x10000, CRC(cd72f580) SHA1(43b476c8f554348b02aa9558c0773f47cdb47fe0) ) /* ET02, etc */ ROM_LOAD( "02_e4.bin", 0x20000, 0x10000, CRC(cd72f580) SHA1(43b476c8f554348b02aa9558c0773f47cdb47fe0) ) // ET02, etc
/* Rom sockets 0x30000 - 0x70000 are unused */ // Rom sockets 0x30000 - 0x70000 are unused
ROM_LOAD( "es05.rom", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) ) ROM_LOAD( "es05.rom", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) )
ROM_LOAD( "es06.rom", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) ) ROM_LOAD( "es06.rom", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) )
ROM_LOAD( "es07.rom", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) ) ROM_LOAD( "es07.rom", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) )
ROM_LOAD( "es08.rom", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) ) ROM_LOAD( "es08.rom", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) )
ROM_LOAD( "es09.rom", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) ) ROM_LOAD( "es09.rom", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) )
ROM_LOAD( "es10-1.rom",0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) ) ROM_LOAD( "es10-1.rom",0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) )
/* Rom sockets 0xe0000 - 0x100000 are unused */ // Rom sockets 0xe0000 - 0x100000 are unused
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "es11.rom", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) ) ROM_LOAD( "es11.rom", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) )
ROM_END ROM_END
ROM_START( bldwolf ) ROM_START( bldwolf )
ROM_REGION( 0x100000, "maincpu", 0 ) /* Main cpu code */ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "es00-1.rom", 0x00000, 0x10000, CRC(ff4aa252) SHA1(3c190e49020bb6923abb3f3c2632d3c86443c292) ) ROM_LOAD( "es00-1.rom", 0x00000, 0x10000, CRC(ff4aa252) SHA1(3c190e49020bb6923abb3f3c2632d3c86443c292) )
ROM_LOAD( "es01.rom", 0x10000, 0x10000, CRC(9fea3189) SHA1(0692df6df533dfe55f61df8aa0c5c11944ba3ae3) ) ROM_LOAD( "es01.rom", 0x10000, 0x10000, CRC(9fea3189) SHA1(0692df6df533dfe55f61df8aa0c5c11944ba3ae3) )
ROM_LOAD( "es02-1.rom", 0x20000, 0x10000, CRC(49792753) SHA1(4f3fb6912607d373fc0c1096ac0a8cc939e33617) ) ROM_LOAD( "es02-1.rom", 0x20000, 0x10000, CRC(49792753) SHA1(4f3fb6912607d373fc0c1096ac0a8cc939e33617) )
/* Rom sockets 0x30000 - 0x70000 are unused */ // Rom sockets 0x30000 - 0x70000 are unused
ROM_LOAD( "es05.rom", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) ) ROM_LOAD( "es05.rom", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) )
ROM_LOAD( "es06.rom", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) ) ROM_LOAD( "es06.rom", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) )
ROM_LOAD( "es07.rom", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) ) ROM_LOAD( "es07.rom", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) )
ROM_LOAD( "es08.rom", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) ) ROM_LOAD( "es08.rom", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) )
ROM_LOAD( "es09.rom", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) ) ROM_LOAD( "es09.rom", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) )
ROM_LOAD( "es10-1.rom", 0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) ) ROM_LOAD( "es10-1.rom", 0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) )
/* Rom sockets 0xe0000 - 0x100000 are unused */ // Rom sockets 0xe0000 - 0x100000 are unused
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "es11.rom", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) ) ROM_LOAD( "es11.rom", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) )
ROM_END ROM_END
ROM_START( bldwolfj ) /* note, rom codes are ER not ES even if the content of some roms is identical */ ROM_START( bldwolfj ) // note, ROM codes are ER not ES even if the content of some ROMs is identical
ROM_REGION( 0x100000, "maincpu", 0 ) /* Main cpu code */ ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD( "er00-.0-0", 0x00000, 0x10000, CRC(3819a14e) SHA1(0222051e0b5ec87a18f2e6e9155034f91898c14f) ) ROM_LOAD( "er00-.0-0", 0x00000, 0x10000, CRC(3819a14e) SHA1(0222051e0b5ec87a18f2e6e9155034f91898c14f) )
ROM_LOAD( "er01-.0-1", 0x10000, 0x10000, CRC(763cf206) SHA1(0f1c0f80a6aaad0c987c2ba3fdd01db1f5ceb7e6) ) ROM_LOAD( "er01-.0-1", 0x10000, 0x10000, CRC(763cf206) SHA1(0f1c0f80a6aaad0c987c2ba3fdd01db1f5ceb7e6) )
ROM_LOAD( "er02-.0-2", 0x20000, 0x10000, CRC(bcad8a0f) SHA1(e7c69d2c894eaedd10ce02f6bceaa43bb060afb9) ) ROM_LOAD( "er02-.0-2", 0x20000, 0x10000, CRC(bcad8a0f) SHA1(e7c69d2c894eaedd10ce02f6bceaa43bb060afb9) )
/* Rom sockets 0x30000 - 0x70000 are unused */ // Rom sockets 0x30000 - 0x70000 are unused
ROM_LOAD( "er05-.1-0", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) ) ROM_LOAD( "er05-.1-0", 0x80000, 0x10000, CRC(551fa331) SHA1(a70c627c572ba1b8029f61eae6eaad9825c56339) )
ROM_LOAD( "er06-.1-1", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) ) ROM_LOAD( "er06-.1-1", 0x90000, 0x10000, CRC(ab91aac8) SHA1(81d820c8b70281a4a52f7ec75a3c54377011d9d9) )
ROM_LOAD( "er07-.1-2", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) ) ROM_LOAD( "er07-.1-2", 0xa0000, 0x10000, CRC(8d15a3d0) SHA1(afae081ee5e0de359cae6a7ea8401237c5ab7095) )
ROM_LOAD( "er08-.1-3", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) ) ROM_LOAD( "er08-.1-3", 0xb0000, 0x10000, CRC(38f06039) SHA1(cc394f161b2c4423cd2da763701ceaad7d27f741) )
ROM_LOAD( "er09-.1-4", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) ) ROM_LOAD( "er09-.1-4", 0xc0000, 0x10000, CRC(b718c47d) SHA1(1d5b2ec819b0848e5b883373887445a63ebddb06) )
ROM_LOAD( "er10-.1-5", 0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) ) ROM_LOAD( "er10-.1-5", 0xd0000, 0x10000, CRC(d3cddc02) SHA1(d212127a9d7aff384171d79c563f1516c0bd46ae) )
/* Rom sockets 0xe0000 - 0x100000 are unused */ // Rom sockets 0xe0000 - 0x100000 are unused
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */ ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "er11-.tpg", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) ) ROM_LOAD( "er11-.tpg", 0x00000, 0x10000, CRC(f5b29c9c) SHA1(44dcdf96f8deb9a29aa9d94a8b9cf91a0ed808d4) )
ROM_END ROM_END
} // Anonymous namespace
/******************************************************************************/ /******************************************************************************/

View File

@ -3358,7 +3358,7 @@ GAME( 1998, sws98, 0, coh700, namcos12, namcos12_state, i
GAME( 1998, technodr, 0, technodr, technodr, namcos12_boothack_state, init_technodr, ROT0, "Namco", "Techno Drive (Japan, TH1/VER.B)", MACHINE_NODEVICE_PRINTER ) /* KC056 */ GAME( 1998, technodr, 0, technodr, technodr, namcos12_boothack_state, init_technodr, ROT0, "Namco", "Techno Drive (Japan, TH1/VER.B)", MACHINE_NODEVICE_PRINTER ) /* KC056 */
GAME( 1998, tenkomor, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (World, TKM2/VER.A1)", 0 ) /* KC036 */ GAME( 1998, tenkomor, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (World, TKM2/VER.A1)", 0 ) /* KC036 */
GAME( 1998, tenkomorja,tenkomor, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", 0 ) /* KC036 */ GAME( 1998, tenkomorja,tenkomor, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", 0 ) /* KC036 */
GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (US, FTL3/VER.A)", 0 ) /* KC037 */ GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (FTL3/VER.A)", 0 ) /* KC037 */ // supposedly US region but doesn't show the usual warning / WDUD screens
GAME( 1998, fgtlayerj, fgtlayer, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL0/VER.A)", 0 ) /* KC037 */ GAME( 1998, fgtlayerj, fgtlayer, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL0/VER.A)", 0 ) /* KC037 */
GAME( 1998, pacapp, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", 0 ) /* KC038 */ GAME( 1998, pacapp, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", 0 ) /* KC038 */
GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_boothack_state, init_ptblank2, ROT0, "Namco", "Point Blank 2 (GNB5/VER.A)", 0 ) /* KC042 */ GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_boothack_state, init_ptblank2, ROT0, "Namco", "Point Blank 2 (GNB5/VER.A)", 0 ) /* KC042 */

View File

@ -172,7 +172,7 @@ K1100457A AQUA JACK (sticker)
Notes: Notes:
68000 - Motorola MC68000P12 CPUs, running at 12.000MHz [24/2] 68000 - Motorola MC68000P12 CPUs, running at 12.000MHz [24/2]
Z80 - Zilog Z0840004PSC Z80 CPU, running at 4.000MHz [16/4] Z80 - Zilog Z0840004PSC Z80 CPU, running at 4.000MHz [16/4]
YM2610 - Yahama YM2610 sound chip, running at 8.000MHz [16/2] YM2610 - Yamaha YM2610 sound chip, running at 8.000MHz [16/2]
2063 - Toshiba TMM2063 8K x8 SRAM (DIP28) 2063 - Toshiba TMM2063 8K x8 SRAM (DIP28)
2018 - Toshiba TMM2018 2K x8 SRAM (DIP24) 2018 - Toshiba TMM2018 2K x8 SRAM (DIP24)
58257 - Sony CXK58257 32K x8 SRAM (DIP28) 58257 - Sony CXK58257 32K x8 SRAM (DIP28)

View File

@ -1,53 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
#include "machine/gen_latch.h"
#include "video/decbac06.h"
#include "video/decmxc06.h"
#include "cpu/h6280/h6280.h"
/*************************************************************************
Act Fancer
*************************************************************************/
class actfancr_state : public driver_device
{
public:
actfancr_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_gfxdecode(*this, "gfxdecode"),
m_tilegen(*this, "tilegen%u", 1U),
m_spritegen(*this, "spritegen"),
m_soundlatch(*this, "soundlatch") { }
/* memory pointers */
std::unique_ptr<uint16_t[]> m_spriteram16; // a 16-bit copy of spriteram for use with the MXC06 code
/* misc */
int m_trio_control_select;
/* devices */
required_device<h6280_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device_array<deco_bac06_device, 2> m_tilegen;
required_device<deco_mxc06_device> m_spritegen;
required_device<generic_latch_8_device> m_soundlatch;
void triothep_control_select_w(uint8_t data);
uint8_t triothep_control_r();
void buffer_spriteram_w(uint8_t data);
DECLARE_MACHINE_START(triothep);
DECLARE_MACHINE_RESET(triothep);
virtual void video_start() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void triothep(machine_config &config);
void actfancr(machine_config &config);
void actfan_map(address_map &map);
void dec0_s_map(address_map &map);
void triothep_map(address_map &map);
};

View File

@ -1,51 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
#include "machine/gen_latch.h"
#include "cpu/h6280/h6280.h"
#include "sound/msm5205.h"
#include "video/huc6260.h"
#include "video/huc6270.h"
#include "screen.h"
#define MAIN_CLOCK 21477270
class battlera_state : public driver_device
{
public:
battlera_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_audiocpu(*this, "audiocpu")
, m_msm(*this, "msm")
, m_screen(*this, "screen")
, m_huc6260(*this, "huc6260")
, m_soundlatch(*this, "soundlatch")
{ }
required_device<h6280_device> m_maincpu;
required_device<h6280_device> m_audiocpu;
required_device<msm5205_device> m_msm;
required_device<screen_device> m_screen;
required_device<huc6260_device> m_huc6260;
required_device<generic_latch_8_device> m_soundlatch;
int m_control_port_select;
int m_msm5205next;
int m_toggle;
void control_data_w(uint8_t data);
uint8_t control_data_r();
void adpcm_data_w(uint8_t data);
void adpcm_reset_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void battlera(machine_config &config);
void battlera_map(address_map &map);
void battlera_portmap(address_map &map);
void sound_map(address_map &map);
};

View File

@ -1,33 +0,0 @@
// license:BSD-3-Clause
// copyright-holders:Bryan McPhail
/*******************************************************************************
actfancr - Bryan McPhail, mish@tendril.co.uk
*******************************************************************************/
#include "emu.h"
#include "includes/actfancr.h"
/******************************************************************************/
void actfancr_state::video_start()
{
m_spriteram16 = make_unique_clear<uint16_t[]>(0x800/2);
save_pointer(NAME(m_spriteram16),0x800/2);
}
uint32_t actfancr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* Draw playfield */
bool flip = m_tilegen[1]->get_flip_state();
m_tilegen[0]->set_flip_screen(flip);
m_tilegen[1]->set_flip_screen(flip);
m_spritegen->set_flip_screen(flip);
m_tilegen[0]->deco_bac06_pf_draw(screen,bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0);
m_spritegen->draw_sprites(screen, bitmap, cliprect, m_gfxdecode->gfx(1), m_spriteram16.get(), 0x800/2);
m_tilegen[1]->deco_bac06_pf_draw(screen,bitmap,cliprect,0, 0);
return 0;
}