mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
tceptor: get rid of hacky 3d glasses simulation (nw)
This commit is contained in:
parent
0853bb469b
commit
a237076eb8
@ -22,12 +22,9 @@
|
||||
#include "rendlay.h"
|
||||
#include "speaker.h"
|
||||
|
||||
#include "tceptor2.lh"
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
|
||||
|
||||
READ8_MEMBER(tceptor_state::m68k_shared_r)
|
||||
{
|
||||
return m_m68k_shared_ram[offset];
|
||||
@ -293,7 +290,7 @@ static INPUT_PORTS_START( tceptor2 )
|
||||
PORT_INCLUDE( tceptor )
|
||||
|
||||
PORT_MODIFY("DSW2")
|
||||
PORT_DIPNAME( 0x04, 0x04, "MODE" )
|
||||
PORT_DIPNAME( 0x04, 0x00, "Mode" ) // NOTE: factory default is actually 3D
|
||||
PORT_DIPSETTING( 0x00, "2D" )
|
||||
PORT_DIPSETTING( 0x04, "3D" )
|
||||
PORT_BIT( 0xf8, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
@ -347,76 +344,55 @@ void tceptor_state::machine_reset()
|
||||
static MACHINE_CONFIG_START( tceptor )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M6809, 49152000/32)
|
||||
MCFG_CPU_ADD("maincpu", M6809, XTAL_49_152MHz/32)
|
||||
MCFG_CPU_PROGRAM_MAP(m6809_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("2dscreen", tceptor_state, m6809_vb_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, m6809_vb_interrupt)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", M65C02, 49152000/24)
|
||||
MCFG_CPU_ADD("audiocpu", M65C02, XTAL_49_152MHz/24)
|
||||
MCFG_CPU_PROGRAM_MAP(m6502_a_map)
|
||||
|
||||
MCFG_CPU_ADD("audio2", M65C02, 49152000/24)
|
||||
MCFG_CPU_ADD("audio2", M65C02, XTAL_49_152MHz/24)
|
||||
MCFG_CPU_PROGRAM_MAP(m6502_b_map)
|
||||
|
||||
MCFG_CPU_ADD("sub", M68000, 49152000/4)
|
||||
MCFG_CPU_ADD("sub", M68000, XTAL_49_152MHz/4)
|
||||
MCFG_CPU_PROGRAM_MAP(m68k_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("2dscreen", tceptor_state, m68k_vb_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, m68k_vb_interrupt)
|
||||
|
||||
MCFG_CPU_ADD("mcu", HD63701, 49152000/8) /* or compatible 6808 with extra instructions */
|
||||
MCFG_CPU_ADD("mcu", HD63701, XTAL_49_152MHz/8) // or compatible 6808 with extra instructions
|
||||
MCFG_CPU_PROGRAM_MAP(mcu_map)
|
||||
MCFG_CPU_IO_MAP(mcu_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("2dscreen", tceptor_state, mcu_vb_interrupt)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", tceptor_state, mcu_vb_interrupt)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
|
||||
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
|
||||
/* video hardware */
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", tceptor)
|
||||
MCFG_PALETTE_ADD("palette", 4096)
|
||||
MCFG_PALETTE_INDIRECT_ENTRIES(1024)
|
||||
MCFG_PALETTE_INIT_OWNER(tceptor_state, tceptor)
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_horizont)
|
||||
|
||||
MCFG_NAMCO_C45_ROAD_ADD("c45_road")
|
||||
MCFG_GFX_PALETTE("palette")
|
||||
|
||||
MCFG_SCREEN_ADD("2dscreen", RASTER)
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(38*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_2d)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_SCREEN_ADD("3dleft", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(38*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_left)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_SCREEN_ADD("3dright", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60.606060)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(38*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_right)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(tceptor_state, screen_vblank_tceptor))
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
|
||||
|
||||
MCFG_YM2151_ADD("ymsnd", 14318180/4)
|
||||
MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
|
||||
|
||||
MCFG_SOUND_ADD("namco", NAMCO_CUS30, 49152000/2048)
|
||||
MCFG_SOUND_ADD("namco", NAMCO_CUS30, XTAL_49_152MHz/2048)
|
||||
MCFG_NAMCO_AUDIO_VOICES(8)
|
||||
MCFG_NAMCO_AUDIO_STEREO(1)
|
||||
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
|
||||
@ -542,6 +518,6 @@ ROM_START( tceptor2 )
|
||||
ROM_END
|
||||
|
||||
|
||||
// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS )
|
||||
GAME ( 1986, tceptor, 0, tceptor, tceptor, tceptor_state, 0, ROT0, "Namco", "Thunder Ceptor", 0)
|
||||
GAMEL( 1986, tceptor2, tceptor, tceptor, tceptor2, tceptor_state, 0, ROT0, "Namco", "Thunder Ceptor II", 0, layout_tceptor2)
|
||||
// ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME FLAGS )
|
||||
GAME ( 1986, tceptor, 0, tceptor, tceptor, tceptor_state, 0, ROT0, "Namco", "Thunder Ceptor", 0)
|
||||
GAME ( 1986, tceptor2, tceptor, tceptor, tceptor2, tceptor_state, 0, ROT0, "Namco", "3-D Thunder Ceptor II", 0)
|
||||
|
@ -17,7 +17,7 @@ public:
|
||||
m_m68k_shared_ram(*this, "m68k_shared_ram"),
|
||||
m_sprite_ram(*this, "sprite_ram"),
|
||||
m_c45_road(*this, "c45_road"),
|
||||
m_2dscreen(*this, "2dscreen"),
|
||||
m_screen(*this, "screen"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_palette(*this, "palette") { }
|
||||
|
||||
@ -65,7 +65,7 @@ public:
|
||||
void tile_mark_dirty(int offset);
|
||||
|
||||
required_device<namco_c45_road_device> m_c45_road;
|
||||
required_device<screen_device> m_2dscreen;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
@ -76,9 +76,7 @@ public:
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
DECLARE_PALETTE_INIT(tceptor);
|
||||
uint32_t screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_tceptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(screen_vblank_tceptor);
|
||||
INTERRUPT_GEN_MEMBER(m6809_vb_interrupt);
|
||||
INTERRUPT_GEN_MEMBER(m68k_vb_interrupt);
|
||||
|
@ -1,21 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
<view name="3D Glasses Side-by-Side">
|
||||
<screen index="1">
|
||||
<bounds x="0" y="0" width="4" height="3" />
|
||||
</screen>
|
||||
<screen index="2">
|
||||
<bounds x="4.03" y="0" width="4" height="3" />
|
||||
</screen>
|
||||
</view>
|
||||
<view name="3D Glasses Left">
|
||||
<screen index="1">
|
||||
<bounds x="0" y="0" width="4" height="3" />
|
||||
</screen>
|
||||
</view>
|
||||
<view name="3D Glasses Right">
|
||||
<screen index="2">
|
||||
<bounds x="0" y="0" width="4" height="3" />
|
||||
</screen>
|
||||
</view>
|
||||
</mamelayout>
|
@ -375,7 +375,7 @@ void tceptor_state::video_start()
|
||||
decode_sprite32("gfx4");
|
||||
|
||||
/* allocate temp bitmaps */
|
||||
m_2dscreen->register_screen_bitmap(m_temp_bitmap);
|
||||
m_screen->register_screen_bitmap(m_temp_bitmap);
|
||||
|
||||
m_c45_road->set_transparent_color(m_palette->pen_indirect(0xfff));
|
||||
|
||||
@ -498,7 +498,7 @@ void tceptor_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
|
||||
}
|
||||
|
||||
|
||||
uint32_t tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t tceptor_state::screen_update_tceptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
rectangle rect;
|
||||
int pri;
|
||||
@ -529,20 +529,6 @@ uint32_t tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_i
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t tceptor_state::screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if ((screen.frame_number() & 1) == 1)
|
||||
return UPDATE_HAS_NOT_CHANGED;
|
||||
return screen_update_tceptor_2d(screen, bitmap, cliprect);
|
||||
}
|
||||
|
||||
uint32_t tceptor_state::screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
if ((screen.frame_number() & 1) == 0)
|
||||
return UPDATE_HAS_NOT_CHANGED;
|
||||
return screen_update_tceptor_2d(screen, bitmap, cliprect);
|
||||
}
|
||||
|
||||
|
||||
WRITE_LINE_MEMBER(tceptor_state::screen_vblank_tceptor)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user