New machines marked as NOT_WORKING
---------------------------------- Inter Stellar Zangus (Laser Fantasy vol. 2) [Hiroharu Shiba, Matt Ownby]
This commit is contained in:
parent
08352d933d
commit
53e4b1e802
@ -17549,6 +17549,7 @@ isld_vortex //
|
||||
|
||||
@source:misc/istellar.cpp
|
||||
istellar // (c) 1983 Funai / Gakken
|
||||
istellar2 // (c) 1984 Funai / Gakken
|
||||
|
||||
@source:terminal/istrebiteli.cpp
|
||||
istreb //
|
||||
|
@ -1,7 +1,7 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Andrew Gardner
|
||||
/*
|
||||
Funai / Gakken Interstellar Laser Fantasy laserdisc hardware
|
||||
Funai / Gakken Inter Stellar Laser Fantasy laserdisc hardware
|
||||
Driver by Andrew Gardner with help from Daphne Source
|
||||
|
||||
Notes:
|
||||
@ -19,47 +19,67 @@ Todo:
|
||||
Add sprite drawing.
|
||||
Convert to tilemaps.
|
||||
Make it work - this one should be close right now :/.
|
||||
istellar2 fails test for all the main CPU ROMs. Maybe because it's a prototype?
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/gen_latch.h"
|
||||
#include "machine/ldv1000.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
// configurable logging
|
||||
#define LOG_CPU2 (1U << 1)
|
||||
|
||||
//#define VERBOSE (LOG_GENERAL | LOG_CPU2)
|
||||
|
||||
#include "logmacro.h"
|
||||
|
||||
#define LOGCPU2(...) LOGMASKED(LOG_CPU2, __VA_ARGS__)
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class istellar_state : public driver_device
|
||||
{
|
||||
public:
|
||||
istellar_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_laserdisc(*this, "laserdisc") ,
|
||||
m_tile_ram(*this, "tile_ram"),
|
||||
m_tile_control_ram(*this, "tile_ctrl_ram"),
|
||||
m_sprite_ram(*this, "sprite_ram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_subcpu(*this, "sub"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
m_palette(*this, "palette"),
|
||||
m_laserdisc(*this, "laserdisc") ,
|
||||
m_tile_ram(*this, "tile_ram"),
|
||||
m_tile_control_ram(*this, "tile_ctrl_ram"),
|
||||
m_sprite_ram(*this, "sprite_ram") { }
|
||||
|
||||
void init_istellar();
|
||||
void istellar(machine_config &config);
|
||||
private:
|
||||
required_device<pioneer_ldv1000_device> m_laserdisc;
|
||||
required_shared_ptr<uint8_t> m_tile_ram;
|
||||
required_shared_ptr<uint8_t> m_tile_control_ram;
|
||||
required_shared_ptr<uint8_t> m_sprite_ram;
|
||||
uint8_t z80_2_ldp_read();
|
||||
uint8_t z80_2_unknown_read();
|
||||
void z80_2_ldp_write(uint8_t data);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
uint32_t screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<cpu_device> m_subcpu;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<pioneer_ldv1000_device> m_laserdisc;
|
||||
|
||||
required_shared_ptr<uint8_t> m_tile_ram;
|
||||
required_shared_ptr<uint8_t> m_tile_control_ram;
|
||||
required_shared_ptr<uint8_t> m_sprite_ram;
|
||||
|
||||
uint8_t z80_2_ldp_read();
|
||||
uint8_t z80_2_unknown_read();
|
||||
void z80_2_ldp_write(uint8_t data);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(vblank_irq);
|
||||
void z80_0_io(address_map &map);
|
||||
void z80_0_mem(address_map &map);
|
||||
void z80_1_io(address_map &map);
|
||||
@ -69,17 +89,13 @@ private:
|
||||
};
|
||||
|
||||
|
||||
/* There is only 1 crystal on the stack of 3 boards - speed is unknown, the following is Daphne's guess */
|
||||
#define GUESSED_CLOCK (3072000)
|
||||
|
||||
|
||||
/* VIDEO GOODS */
|
||||
uint32_t istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
// VIDEO GOODS
|
||||
uint32_t istellar_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
/* clear */
|
||||
// clear
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
/* Draw tiles */
|
||||
// Draw tiles
|
||||
for (int y = 0; y < 32; y++)
|
||||
{
|
||||
for (int x = 0; x < 32; x++)
|
||||
@ -91,7 +107,7 @@ uint32_t istellar_state::screen_update_istellar(screen_device &screen, bitmap_rg
|
||||
}
|
||||
}
|
||||
|
||||
/* Draw sprites */
|
||||
// TODO: Draw sprites
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -103,42 +119,42 @@ void istellar_state::machine_start()
|
||||
|
||||
|
||||
|
||||
/* MEMORY HANDLERS */
|
||||
// MEMORY HANDLERS
|
||||
|
||||
|
||||
/* Z80 1 R/W */
|
||||
// Z80 1 R/W
|
||||
|
||||
|
||||
/* Z80 2 R/W */
|
||||
// Z80 2 R/W
|
||||
uint8_t istellar_state::z80_2_ldp_read()
|
||||
{
|
||||
uint8_t readResult = m_laserdisc->status_r();
|
||||
logerror("CPU2 : reading LDP : %x\n", readResult);
|
||||
LOGCPU2("CPU2 : reading LDP : %x\n", readResult);
|
||||
return readResult;
|
||||
}
|
||||
|
||||
uint8_t istellar_state::z80_2_unknown_read()
|
||||
{
|
||||
logerror("CPU2 : c000!\n");
|
||||
LOGCPU2("CPU2 : c000!\n");
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void istellar_state::z80_2_ldp_write(uint8_t data)
|
||||
{
|
||||
logerror("CPU2 : writing LDP : 0x%x\n", data);
|
||||
LOGCPU2("CPU2 : writing LDP : 0x%x\n", data);
|
||||
m_laserdisc->data_w(data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* PROGRAM MAPS */
|
||||
// PROGRAM MAPS
|
||||
void istellar_state::z80_0_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x9fff).rom();
|
||||
map(0xa000, 0xa7ff).ram();
|
||||
map(0xa800, 0xabff).ram().share("tile_ram");
|
||||
map(0xac00, 0xafff).ram().share("tile_ctrl_ram");
|
||||
map(0xb000, 0xb3ff).ram().share("sprite_ram");
|
||||
map(0xa800, 0xabff).ram().share(m_tile_ram);
|
||||
map(0xac00, 0xafff).ram().share(m_tile_control_ram);
|
||||
map(0xb000, 0xb3ff).ram().share(m_sprite_ram);
|
||||
}
|
||||
|
||||
void istellar_state::z80_1_mem(address_map &map)
|
||||
@ -151,27 +167,27 @@ void istellar_state::z80_2_mem(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x17ff).rom();
|
||||
map(0x1800, 0x1fff).ram();
|
||||
map(0xc000, 0xc000).r(FUNC(istellar_state::z80_2_unknown_read)); /* Seems to be thrown away every time it's read - maybe interrupt related? */
|
||||
map(0xc000, 0xc000).r(FUNC(istellar_state::z80_2_unknown_read)); // Seems to be thrown away every time it's read - maybe interrupt related?
|
||||
}
|
||||
|
||||
|
||||
/* IO MAPS */
|
||||
// IO MAPS
|
||||
void istellar_state::z80_0_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).portr("IN0");
|
||||
map(0x02, 0x02).portr("DSW1");
|
||||
map(0x03, 0x03).portr("DSW2");
|
||||
/* map(0x04, 0x04).w(FUNC(istellar_state::volatile_palette_write));*/
|
||||
// map(0x04, 0x04).w(FUNC(istellar_state::volatile_palette_write));
|
||||
map(0x05, 0x05).r("latch1", FUNC(generic_latch_8_device::read)).w("latch2", FUNC(generic_latch_8_device::write));
|
||||
}
|
||||
|
||||
void istellar_state::z80_1_io(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).noprw(); /*.rw(FUNC(istellar_state::z80_1_slatch_read), FUNC(istellar_state::z80_1_slatch_write));*/
|
||||
map(0x01, 0x01).noprw(); /*.rw(FUNC(istellar_state::z80_1_nmienable), FUNC(istellar_state::z80_1_soundwrite_front));*/
|
||||
map(0x02, 0x02).noprw(); /*.w(FUNC(istellar_state::z80_1_soundwrite_rear));*/
|
||||
map(0x00, 0x00).noprw(); //.rw(FUNC(istellar_state::z80_1_slatch_read), FUNC(istellar_state::z80_1_slatch_write));
|
||||
map(0x01, 0x01).noprw(); //.rw(FUNC(istellar_state::z80_1_nmienable), FUNC(istellar_state::z80_1_soundwrite_front));
|
||||
map(0x02, 0x02).noprw(); //.w(FUNC(istellar_state::z80_1_soundwrite_rear));
|
||||
}
|
||||
|
||||
void istellar_state::z80_2_io(address_map &map)
|
||||
@ -180,13 +196,13 @@ void istellar_state::z80_2_io(address_map &map)
|
||||
map(0x00, 0x00).rw(FUNC(istellar_state::z80_2_ldp_read), FUNC(istellar_state::z80_2_ldp_write));
|
||||
map(0x01, 0x01).r("latch2", FUNC(generic_latch_8_device::read)).w("latch1", FUNC(generic_latch_8_device::write));
|
||||
map(0x02, 0x02).r("latch2", FUNC(generic_latch_8_device::acknowledge_r));
|
||||
/* map(0x03, 0x03).w(FUNC(istellar_state::z80_2_ldtrans_write));*/
|
||||
// map(0x03, 0x03).w(FUNC(istellar_state::z80_2_ldtrans_write));
|
||||
}
|
||||
|
||||
|
||||
/* PORTS */
|
||||
// PORTS
|
||||
static INPUT_PORTS_START( istellar )
|
||||
/* TEST MODE might display a 0 for a short and a 1 for an open circuit? If so, everything below is inverted. */
|
||||
// TEST MODE might display a 0 for a short and a 1 for an open circuit? If so, everything below is inverted.
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:!1")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
@ -213,7 +229,7 @@ static INPUT_PORTS_START( istellar )
|
||||
/* NOTE - bit 0x80 in the above read is combined with bits 0x03 in the below read to form the Coin_B
|
||||
settings. I'm unaware of what mechanism MAME will use to make this work right? */
|
||||
|
||||
/* "In case of inter-stellar upright type the coin switch 2 is not used." Quoth the manual. */
|
||||
// "In case of inter-stellar upright type the coin switch 2 is not used." Quoth the manual.
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:!3")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
@ -221,7 +237,7 @@ static INPUT_PORTS_START( istellar )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:!4")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:!5") /* Maybe SERVICE? */
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:!5") // Maybe SERVICE?
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_HIGH )
|
||||
@ -237,7 +253,7 @@ static INPUT_PORTS_START( istellar )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
/* SERVICE might be hanging out back here */
|
||||
// SERVICE might be hanging out back here
|
||||
INPUT_PORTS_END
|
||||
|
||||
static const gfx_layout istellar_gfx_layout =
|
||||
@ -252,36 +268,37 @@ static const gfx_layout istellar_gfx_layout =
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_istellar )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, istellar_gfx_layout, 0x0, 0x20 )
|
||||
GFXDECODE_ENTRY( "tiles", 0, istellar_gfx_layout, 0x0, 0x20 )
|
||||
GFXDECODE_END
|
||||
|
||||
WRITE_LINE_MEMBER(istellar_state::vblank_irq)
|
||||
{
|
||||
if (state)
|
||||
{
|
||||
/* Interrupt presumably comes from VBlank */
|
||||
// Interrupt presumably comes from VBlank
|
||||
m_maincpu->set_input_line(0, HOLD_LINE);
|
||||
|
||||
/* Interrupt presumably comes from the LDP's status strobe */
|
||||
// Interrupt presumably comes from the LDP's status strobe
|
||||
m_subcpu->set_input_line(0, ASSERT_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* DRIVER */
|
||||
// DRIVER
|
||||
void istellar_state::istellar(machine_config &config)
|
||||
{
|
||||
/* main cpu */
|
||||
// There is only 1 crystal on the stack of 3 boards - speed is unknown, the following is Daphne's guess
|
||||
constexpr int GUESSED_CLOCK = 3'072'000;
|
||||
|
||||
Z80(config, m_maincpu, GUESSED_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &istellar_state::z80_0_mem);
|
||||
m_maincpu->set_addrmap(AS_IO, &istellar_state::z80_0_io);
|
||||
|
||||
/* sound cpu */
|
||||
z80_device &audiocpu(Z80(config, "audiocpu", GUESSED_CLOCK));
|
||||
audiocpu.set_addrmap(AS_PROGRAM, &istellar_state::z80_1_mem);
|
||||
audiocpu.set_addrmap(AS_IO, &istellar_state::z80_1_io);
|
||||
|
||||
/* ldp comm cpu */
|
||||
// ldp comm cpu
|
||||
Z80(config, m_subcpu, GUESSED_CLOCK);
|
||||
m_subcpu->set_addrmap(AS_PROGRAM, &istellar_state::z80_2_mem);
|
||||
m_subcpu->set_addrmap(AS_IO, &istellar_state::z80_2_io);
|
||||
@ -293,11 +310,11 @@ void istellar_state::istellar(machine_config &config)
|
||||
latch2.set_separate_acknowledge(true);
|
||||
|
||||
PIONEER_LDV1000(config, m_laserdisc, 0);
|
||||
m_laserdisc->set_overlay(256, 256, FUNC(istellar_state::screen_update_istellar));
|
||||
m_laserdisc->set_overlay(256, 256, FUNC(istellar_state::screen_update));
|
||||
m_laserdisc->add_route(0, "lspeaker", 1.0);
|
||||
m_laserdisc->add_route(1, "rspeaker", 1.0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
m_laserdisc->add_ntsc_screen(config, "screen");
|
||||
subdevice<screen_device>("screen")->screen_vblank().set(FUNC(istellar_state::vblank_irq));
|
||||
|
||||
@ -306,47 +323,96 @@ void istellar_state::istellar(machine_config &config)
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_istellar);
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
}
|
||||
|
||||
|
||||
/* There is a photo of the PCB with blurry IC locations and labels. Comments reflect what I can (barely) see. */
|
||||
// There is a photo of the PCB with blurry IC locations and labels. Comments reflect what I can (barely) see.
|
||||
ROM_START( istellar )
|
||||
/* Main program CPU */
|
||||
ROM_REGION( 0xa000, "maincpu", 0 )
|
||||
ROM_LOAD( "rom2.top", 0x0000, 0x2000, CRC(5d643381) SHA1(75ca52c28a52f534eda00c18b0db97e9923ff670) ) /* At IC location C63 (top board) - label ? */
|
||||
ROM_LOAD( "rom3.top", 0x2000, 0x2000, CRC(ce5a2b09) SHA1(2de6a6e993c3411577ac0c834db8aaf16fb007ed) ) /* At IC location C64 (top board) - label ? */
|
||||
ROM_LOAD( "rom4.top", 0x4000, 0x2000, CRC(7c2cb1f1) SHA1(ffd92510c03c2d35a59d233883c2b9f57394a51c) ) /* At IC location C65 (top board) - label ? */
|
||||
ROM_LOAD( "rom5.top", 0x6000, 0x2000, CRC(354377f6) SHA1(bcf95b7ee1b47854e10baf24b0d8af3d56738b99) ) /* At IC location C66 (top board) - label ? */
|
||||
ROM_LOAD( "rom6.top", 0x8000, 0x2000, CRC(0319bf40) SHA1(f324626e457c3eb7d6b74bc6afbfcc3aab2b3c72) ) /* At IC location C67 (top board) - label ? */
|
||||
ROM_LOAD( "rom2.top", 0x0000, 0x2000, CRC(5d643381) SHA1(75ca52c28a52f534eda00c18b0db97e9923ff670) ) // At IC location C63 (top board) - label ?
|
||||
ROM_LOAD( "rom3.top", 0x2000, 0x2000, CRC(ce5a2b09) SHA1(2de6a6e993c3411577ac0c834db8aaf16fb007ed) ) // At IC location C64 (top board) - label ?
|
||||
ROM_LOAD( "rom4.top", 0x4000, 0x2000, CRC(7c2cb1f1) SHA1(ffd92510c03c2d35a59d233883c2b9f57394a51c) ) // At IC location C65 (top board) - label ?
|
||||
ROM_LOAD( "rom5.top", 0x6000, 0x2000, CRC(354377f6) SHA1(bcf95b7ee1b47854e10baf24b0d8af3d56738b99) ) // At IC location C66 (top board) - label ?
|
||||
ROM_LOAD( "rom6.top", 0x8000, 0x2000, CRC(0319bf40) SHA1(f324626e457c3eb7d6b74bc6afbfcc3aab2b3c72) ) // At IC location C67 (top board) - label ?
|
||||
|
||||
/* Sound CPU */
|
||||
ROM_REGION( 0x2000, "audiocpu", 0 )
|
||||
ROM_LOAD( "rom1.top", 0x0000, 0x2000, CRC(4f34fb1d) SHA1(56ca19344c84c5989d0be797e2759f84760310be) ) /* At IC location C62 (top board) - label ? */
|
||||
ROM_LOAD( "rom1.top", 0x0000, 0x2000, CRC(4f34fb1d) SHA1(56ca19344c84c5989d0be797e2759f84760310be) ) // At IC location C62 (top board) - label ?
|
||||
|
||||
/* LDP Communications CPU */
|
||||
// LDP Communications CPU
|
||||
ROM_REGION( 0x2000, "sub", 0 )
|
||||
ROM_LOAD( "rom11.bot", 0x0000, 0x2000, CRC(165cbc57) SHA1(39463888f22ec3125f0686066d923a9aae79a8f7) ) /* At IC location C12 (bottom board) - label IS11 */
|
||||
ROM_LOAD( "rom11.bot", 0x0000, 0x2000, CRC(165cbc57) SHA1(39463888f22ec3125f0686066d923a9aae79a8f7) ) // At IC location C12 (bottom board) - label IS11
|
||||
|
||||
/* Tiles */
|
||||
ROM_REGION( 0x6000, "gfx1", 0 )
|
||||
ROM_LOAD( "rom9.bot", 0x0000, 0x2000, CRC(9d79acb6) SHA1(72af972695face0016afce8a26c629d963e86d48) ) /* At IC location C47? (bottom board) - label ? */
|
||||
ROM_LOAD( "rom8.bot", 0x2000, 0x2000, CRC(e9c9e490) SHA1(79aa35552b984018bc723adece5c40a0833a313c) ) /* At IC location C48? (bottom board) - label ? */
|
||||
ROM_LOAD( "rom7.bot", 0x4000, 0x2000, CRC(1447ce3a) SHA1(8545cec108df6adab303802b1407c89b2dceba21) ) /* At IC location C49? (bottom board) - label ? */
|
||||
ROM_REGION( 0x6000, "tiles", 0 )
|
||||
ROM_LOAD( "rom9.bot", 0x0000, 0x2000, CRC(9d79acb6) SHA1(72af972695face0016afce8a26c629d963e86d48) ) // At IC location C47? (bottom board) - label ?
|
||||
ROM_LOAD( "rom8.bot", 0x2000, 0x2000, CRC(e9c9e490) SHA1(79aa35552b984018bc723adece5c40a0833a313c) ) // At IC location C48? (bottom board) - label ?
|
||||
ROM_LOAD( "rom7.bot", 0x4000, 0x2000, CRC(1447ce3a) SHA1(8545cec108df6adab303802b1407c89b2dceba21) ) // At IC location C49? (bottom board) - label ?
|
||||
|
||||
/* Color PROMs */
|
||||
// Color PROMs
|
||||
ROM_REGION( 0x300, "proms", 0 )
|
||||
ROM_LOAD( "red6b.bot", 0x000, 0x100, CRC(5c52f844) SHA1(a8a3d91f3247ad13c805d8d8288b07f3cdaf1189) ) /* At IC location C63? (bottom board) - label ? */
|
||||
ROM_LOAD( "green6c.bot", 0x100, 0x100, CRC(7d8c845c) SHA1(04ae2ca0cc6679e21346ce34e9e01aa5bf4e2067) ) /* At IC location C62? (bottom board) - label ? */
|
||||
ROM_LOAD( "blue6d.bot", 0x200, 0x100, CRC(5ebb81f9) SHA1(285d60f2894c524ca80fc68ad7c2dfd9093a67ea) ) /* At IC location C61? (bottom board) - label ? */
|
||||
ROM_LOAD( "red6b.bot", 0x000, 0x100, CRC(5c52f844) SHA1(a8a3d91f3247ad13c805d8d8288b07f3cdaf1189) ) // At IC location C63? (bottom board) - label ?
|
||||
ROM_LOAD( "green6c.bot", 0x100, 0x100, CRC(7d8c845c) SHA1(04ae2ca0cc6679e21346ce34e9e01aa5bf4e2067) ) // At IC location C62? (bottom board) - label ?
|
||||
ROM_LOAD( "blue6d.bot", 0x200, 0x100, CRC(5ebb81f9) SHA1(285d60f2894c524ca80fc68ad7c2dfd9093a67ea) ) // At IC location C61? (bottom board) - label ?
|
||||
|
||||
DISK_REGION( "laserdisc" )
|
||||
DISK_IMAGE_READONLY( "istellar", 0, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
Interstellar 2 - Zangus
|
||||
|
||||
ROM dump taken from untested prototype board.
|
||||
Accuracy of these ROMs is unknown.
|
||||
|
||||
3 boards, Approx 11 x 12.5 Inches
|
||||
|
||||
All EPROMs are 2764
|
||||
Color PROMs are all MB7052
|
||||
|
||||
Top board has 2 RCA phono jacks. The board is marked 1613208.
|
||||
Board set is exactly the same (visually) as Interstellar LF, except
|
||||
for 3 new ROM sockets for ROMs 11, 12, & 13.
|
||||
*/
|
||||
|
||||
ROM_START( istellar2 )
|
||||
ROM_REGION( 0xa000, "maincpu", 0 ) // on top board
|
||||
ROM_LOAD( "rom2.g1", 0x0000, 0x2000, CRC(4dbe81aa) SHA1(cea50ed4d3bff51158d8cbefccb5be3e47103fd0) )
|
||||
ROM_LOAD( "rom3.f1", 0x2000, 0x2000, CRC(9ce08198) SHA1(2f815e1fbace0a864dfcd839e96346dd25d55bc9) )
|
||||
ROM_LOAD( "rom4.e1", 0x4000, 0x2000, CRC(a294bf7f) SHA1(cf34f7d1b4c2b9a272f777f89d78773903a3701e) ) // 1xxxxxxxxxxxx = 0xFF. Strange, but 2 different dumpers got the same result
|
||||
ROM_LOAD( "rom5.d1", 0x6000, 0x2000, CRC(0803a4ba) SHA1(e3e45d28fc95ec91133379f0c3e4937115d711be) )
|
||||
ROM_LOAD( "rom6.b1", 0x8000, 0x2000, CRC(16abbf32) SHA1(11662fa32d3aed274a2b87beabf4d5f5d7f24dd6) )
|
||||
|
||||
ROM_REGION( 0x2000, "audiocpu", 0 ) // on top board
|
||||
ROM_LOAD( "rom1.j1", 0x0000, 0x2000, CRC(0c25a2ba) SHA1(b4546c35ce6e04750bc055835188c9c32b1e02f3) )
|
||||
|
||||
// LDP Communications CPU
|
||||
ROM_REGION( 0x2000, "sub", 0 ) // on bottom board
|
||||
ROM_LOAD( "rom10.f1", 0x0000, 0x2000, CRC(ff97c588) SHA1(016769b6f38f40438800bd02c45f1bb5ba385c16) )
|
||||
|
||||
ROM_REGION( 0x6000, "tiles", 0 ) // on bottom board
|
||||
ROM_LOAD( "rom9.g5", 0x0000, 0x2000, CRC(9d91f15e) SHA1(4d9b98e4c764367562c64aee356e826537a2666e) )
|
||||
ROM_LOAD( "rom8.h5", 0x2000, 0x2000, CRC(addec265) SHA1(041f20ffaedc337cdf4677e00c557d2d77a33147) )
|
||||
ROM_LOAD( "rom7.j5", 0x4000, 0x2000, CRC(bef6e10f) SHA1(18d15e858afffd8b5c4747e2b6357f18b845a69b) )
|
||||
|
||||
ROM_REGION( 0x6000, "unsorted_roms", 0 ) // given they're on the bottom board, probably GFX related too
|
||||
ROM_LOAD( "rom11.o1", 0x0000, 0x2000, CRC(2396bc70) SHA1(7827f11b6a1d9a70e26e72d28b6eb513d3acacbc) )
|
||||
ROM_LOAD( "rom12.o2", 0x2000, 0x2000, CRC(9f2b0fc0) SHA1(d75cc1c2b0cd6083e4a7b949e27277a13b92405f) )
|
||||
ROM_LOAD( "rom13.m1", 0x4000, 0x2000, CRC(2db6188b) SHA1(72a2e421859bd039649c0af097836ef4468fa635) )
|
||||
|
||||
// Color PROMs
|
||||
ROM_REGION( 0x300, "proms", 0 ) // on bottom board
|
||||
ROM_LOAD( "red.b6", 0x000, 0x100, CRC(560fbcc1) SHA1(9165167478372c796ba33a4d6ed525d941117ad3) )
|
||||
ROM_LOAD( "green.c6", 0x100, 0x100, CRC(9c1326c9) SHA1(4d707335bb3be28c9cc14f36b63516e2145c73bf) )
|
||||
ROM_LOAD( "blue.d6", 0x200, 0x100, CRC(fd8b98d8) SHA1(a64fd145262a9f1d10945551358c79a5d2733e05) )
|
||||
|
||||
DISK_REGION( "laserdisc" )
|
||||
DISK_IMAGE_READONLY( "istellar2", 0, NO_DUMP )
|
||||
ROM_END
|
||||
|
||||
|
||||
void istellar_state::init_istellar()
|
||||
{
|
||||
//m_z80_2_nmi_enable = 0;
|
||||
@ -368,5 +434,9 @@ void istellar_state::init_istellar()
|
||||
#endif
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS)
|
||||
GAME( 1983, istellar, 0, istellar, istellar, istellar_state, init_istellar, ROT0, "Funai/Gakken", "Interstellar Laser Fantasy", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
GAME( 1983, istellar, 0, istellar, istellar, istellar_state, init_istellar, ROT0, "Funai/Gakken", "Inter Stellar (Laser Fantasy)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
GAME( 1984, istellar2, 0, istellar, istellar, istellar_state, init_istellar, ROT0, "Funai/Gakken", "Inter Stellar Zangus (Laser Fantasy vol. 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
|
||||
|
Loading…
Reference in New Issue
Block a user