mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
Various changes to Inter Stellar, nw
This commit is contained in:
parent
b21820f687
commit
f3688c1e86
@ -3,8 +3,8 @@ Funai / Gakken Interstellar Laser Fantasy laserdisc hardware
|
|||||||
Driver by Andrew Gardner with help from Daphne Source
|
Driver by Andrew Gardner with help from Daphne Source
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
Holding down the TEST switch (T) while hitting reset will bring up the Self Test.
|
Holding down the TEST switch while hitting reset will bring up the Self Test.
|
||||||
Hit T twice more for color and monitor calibration.
|
Hit TEST switch again for color and monitor calibration.
|
||||||
This is somewhat strange hardware : More z80's than necessary
|
This is somewhat strange hardware : More z80's than necessary
|
||||||
3 bpp sprites
|
3 bpp sprites
|
||||||
6-pin dip switches with odd handling
|
6-pin dip switches with odd handling
|
||||||
@ -58,34 +58,23 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
/* VIDEO GOODS */
|
/* VIDEO GOODS */
|
||||||
static SCREEN_UPDATE_IND16( istellar )
|
static SCREEN_UPDATE_RGB32( istellar )
|
||||||
{
|
{
|
||||||
istellar_state *state = screen.machine().driver_data<istellar_state>();
|
istellar_state *state = screen.machine().driver_data<istellar_state>();
|
||||||
int charx, chary;
|
int x, y;
|
||||||
|
|
||||||
/* clear */
|
/* clear */
|
||||||
bitmap.fill(0, cliprect);
|
bitmap.fill(0, cliprect);
|
||||||
|
|
||||||
/* DEBUG */
|
|
||||||
/*
|
|
||||||
for (charx = 0; charx < 0x400; charx ++)
|
|
||||||
{
|
|
||||||
printf ("%x ", state->m_sprite_ram[charx]) ;
|
|
||||||
}
|
|
||||||
printf("\n\n\n");
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Draw tiles */
|
/* Draw tiles */
|
||||||
for (charx = 0; charx < 32; charx++)
|
for (y = 0; y < 32; y++)
|
||||||
{
|
{
|
||||||
for (chary = 0; chary < 32; chary++)
|
for (x = 0; x < 32; x++)
|
||||||
{
|
{
|
||||||
int current_screen_character = (chary*32) + charx;
|
int tile = state->m_tile_ram[x+y*32];
|
||||||
|
int attr = state->m_tile_control_ram[x+y*32];
|
||||||
|
|
||||||
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
|
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],tile,attr & 0x0f,0, 0, x*8, y*8, 0);
|
||||||
state->m_tile_ram[current_screen_character],
|
|
||||||
(state->m_tile_control_ram[current_screen_character] & 0x0f),
|
|
||||||
0, 0, charx*8, chary*8, 0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,7 +245,7 @@ static INPUT_PORTS_START( istellar )
|
|||||||
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( 0x04, DEF_STR( Off ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME( "TEST" ) PORT_CODE( KEYCODE_T )
|
PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_HIGH )
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
|
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
|
||||||
@ -277,7 +266,6 @@ static PALETTE_INIT( istellar )
|
|||||||
const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
|
const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Oddly enough, the top 4 bits of each byte is 0 */
|
|
||||||
for (i = 0; i < machine.total_colors(); i++)
|
for (i = 0; i < machine.total_colors(); i++)
|
||||||
{
|
{
|
||||||
int r,g,b;
|
int r,g,b;
|
||||||
@ -308,30 +296,27 @@ static PALETTE_INIT( istellar )
|
|||||||
|
|
||||||
palette_set_color(machine,i,MAKE_RGB(r,g,b));
|
palette_set_color(machine,i,MAKE_RGB(r,g,b));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* make color 0 transparent */
|
|
||||||
palette_set_color(machine, 0, MAKE_ARGB(0,0,0,0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const gfx_layout istellar_gfx_layout =
|
static const gfx_layout istellar_gfx_layout =
|
||||||
{
|
{
|
||||||
8,8,
|
8,8,
|
||||||
0x2000/8,
|
RGN_FRAC(1,3),
|
||||||
3,
|
3,
|
||||||
{ 0, 0x2000*8, 0x4000*8 },
|
{ RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) },
|
||||||
{ 0,1,2,3,4,5,6,7 },
|
{ 0,1,2,3,4,5,6,7 },
|
||||||
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
|
||||||
8*8
|
8*8
|
||||||
};
|
};
|
||||||
|
|
||||||
static GFXDECODE_START( istellar )
|
static GFXDECODE_START( istellar )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, istellar_gfx_layout, 0x0, 0x100 )
|
GFXDECODE_ENTRY( "gfx1", 0, istellar_gfx_layout, 0x0, 0x20 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
static INTERRUPT_GEN( vblank_callback_istellar )
|
static INTERRUPT_GEN( vblank_callback_istellar )
|
||||||
{
|
{
|
||||||
/* Interrupt presumably comes from VBlank */
|
/* Interrupt presumably comes from VBlank */
|
||||||
device_set_input_line(device, 0, ASSERT_LINE);
|
device_set_input_line(device, 0, HOLD_LINE);
|
||||||
|
|
||||||
/* Interrupt presumably comes from the LDP's status strobe */
|
/* Interrupt presumably comes from the LDP's status strobe */
|
||||||
cputag_set_input_line(device->machine(), "sub", 0, ASSERT_LINE);
|
cputag_set_input_line(device->machine(), "sub", 0, ASSERT_LINE);
|
||||||
@ -417,6 +402,22 @@ static DRIVER_INIT( istellar )
|
|||||||
{
|
{
|
||||||
istellar_state *state = machine.driver_data<istellar_state>();
|
istellar_state *state = machine.driver_data<istellar_state>();
|
||||||
state->m_z80_2_nmi_enable = 0;
|
state->m_z80_2_nmi_enable = 0;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
{
|
||||||
|
UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
|
||||||
|
|
||||||
|
ROM[0x4465] = 0x00;
|
||||||
|
ROM[0x4466] = 0x00;
|
||||||
|
ROM[0x4478] = 0x00;
|
||||||
|
ROM[0x4479] = 0x00;
|
||||||
|
ROM[0x43b4] = 0x00;
|
||||||
|
ROM[0x43b5] = 0x00;
|
||||||
|
ROM[0x4409] = 0x20;
|
||||||
|
ROM[0x46de] = 0x00;
|
||||||
|
ROM[0x46df] = 0x00;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */
|
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */
|
||||||
|
Loading…
Reference in New Issue
Block a user