mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
why complicate when proper devices are there and do work properly (nw)
This commit is contained in:
parent
14756cfa21
commit
5e8e5629e3
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -7218,8 +7218,6 @@ src/mame/video/usgames.c svneol=native#text/plain
|
||||
src/mame/video/vaportra.c svneol=native#text/plain
|
||||
src/mame/video/vastar.c svneol=native#text/plain
|
||||
src/mame/video/vball.c svneol=native#text/plain
|
||||
src/mame/video/vdc.c svneol=native#text/plain
|
||||
src/mame/video/vdc.h svneol=native#text/plain
|
||||
src/mame/video/vectrex.c svneol=native#text/plain
|
||||
src/mame/video/vendetta.c svneol=native#text/plain
|
||||
src/mame/video/vertigo.c svneol=native#text/plain
|
||||
|
@ -31,13 +31,11 @@ class ggconnie_state : public pce_common_state
|
||||
{
|
||||
public:
|
||||
ggconnie_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: pce_common_state(mconfig, type, tag),
|
||||
m_huc6260(*this, "huc6260"),
|
||||
: pce_common_state(mconfig, type, tag),
|
||||
m_rtc(*this, "rtc"),
|
||||
m_oki(*this, "oki")
|
||||
{ }
|
||||
|
||||
required_device <huc6260_device> m_huc6260;
|
||||
required_device <msm6242_device> m_rtc;
|
||||
required_device <okim6295_device> m_oki;
|
||||
DECLARE_WRITE8_MEMBER(lamp_w);
|
||||
@ -45,17 +43,8 @@ public:
|
||||
DECLARE_READ8_MEMBER(rtc_r);
|
||||
DECLARE_WRITE8_MEMBER(rtc_w);
|
||||
DECLARE_WRITE8_MEMBER(oki_bank_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
|
||||
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
UINT32 ggconnie_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_huc6260->video_update( bitmap, cliprect );
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(ggconnie_state::lamp_w)
|
||||
{
|
||||
output_set_value("lamp", !BIT(data,0));
|
||||
@ -191,41 +180,17 @@ static const c6280_interface c6280_config =
|
||||
"maincpu"
|
||||
};
|
||||
|
||||
WRITE_LINE_MEMBER(ggconnie_state::pce_irq_changed)
|
||||
{
|
||||
m_maincpu->set_input_line(0, state);
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
static const huc6270_interface pce_huc6270_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(ggconnie_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
static const huc6270_interface sgx_huc6270_0_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(ggconnie_state,pce_irq_changed)
|
||||
DEVCB_DRIVER_LINE_MEMBER(pce_common_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
static const huc6270_interface sgx_huc6270_1_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(ggconnie_state,pce_irq_changed)
|
||||
DEVCB_DRIVER_LINE_MEMBER(pce_common_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
|
@ -38,12 +38,10 @@ HuC6280A (Hudson)
|
||||
#include "cpu/i8085/i8085.h"
|
||||
#include "machine/i8155.h"
|
||||
#include "machine/pcecommn.h"
|
||||
#include "video/vdc.h"
|
||||
#include "video/huc6260.h"
|
||||
#include "video/huc6270.h"
|
||||
#include "cpu/h6280/h6280.h"
|
||||
#include "sound/c6280.h"
|
||||
#include "drivlgcy.h"
|
||||
#include "scrlegcy.h"
|
||||
|
||||
|
||||
class paranoia_state : public pce_common_state
|
||||
{
|
||||
@ -78,8 +76,8 @@ INPUT_PORTS_END
|
||||
static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, paranoia_state )
|
||||
AM_RANGE( 0x000000, 0x03FFFF) AM_ROM
|
||||
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000)
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE_LEGACY(vce_r, vce_w )
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_DEVREADWRITE( "huc6260", huc6260_device, read, write )
|
||||
AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE("c6280", c6280_device, c6280_r, c6280_w )
|
||||
AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_DEVREADWRITE("maincpu", h6280_device, timer_r, timer_w )
|
||||
AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE(pce_joystick_r, pce_joystick_w )
|
||||
@ -87,7 +85,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, paranoia_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pce_io , AS_IO, 8, paranoia_state )
|
||||
AM_RANGE( 0x00, 0x03) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x00, 0x03) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(paranoia_state::paranoia_8085_d000_w)
|
||||
@ -176,13 +174,27 @@ static const c6280_interface c6280_config =
|
||||
"maincpu"
|
||||
};
|
||||
|
||||
|
||||
static const huc6270_interface pce_huc6270_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(pce_common_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( paranoia, paranoia_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
MCFG_CPU_PROGRAM_MAP(pce_mem)
|
||||
MCFG_CPU_IO_MAP(pce_io)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_CPU_ADD("sub", I8085A, 18000000/3)
|
||||
@ -196,17 +208,13 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state )
|
||||
MCFG_I8155_ADD("i8155", 1000000 /*?*/, i8155_intf)
|
||||
|
||||
/* video hardware */
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
|
||||
MCFG_SCREEN_UPDATE_STATIC( pce )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242)
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
/* MCFG_GFXDECODE_ADD("gfxdecode", "palette", pce_gfxdecodeinfo ) */
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_INIT_LEGACY( vce )
|
||||
|
||||
MCFG_VIDEO_START( pce )
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_HUC6270_ADD( "huc6270", pce_huc6270_config )
|
||||
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
|
||||
MCFG_SOUND_ADD("c6280", C6280, PCE_MAIN_CLOCK/6)
|
||||
|
@ -193,13 +193,11 @@ I can't tell ATM if units are seconds (even if values in tables seem very relate
|
||||
#include "emu.h"
|
||||
#include "cpu/i8085/i8085.h"
|
||||
#include "machine/pcecommn.h"
|
||||
#include "video/vdc.h"
|
||||
#include "video/huc6260.h"
|
||||
#include "video/huc6270.h"
|
||||
#include "cpu/h6280/h6280.h"
|
||||
#include "sound/c6280.h"
|
||||
#include "machine/i8155.h"
|
||||
#include "drivlgcy.h"
|
||||
#include "scrlegcy.h"
|
||||
|
||||
|
||||
class tourvision_state : public pce_common_state
|
||||
{
|
||||
@ -213,6 +211,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(tourvision_i8155_b_w);
|
||||
DECLARE_WRITE8_MEMBER(tourvision_i8155_c_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(tourvision_timer_out);
|
||||
DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
|
||||
required_device<cpu_device> m_subcpu;
|
||||
};
|
||||
|
||||
@ -296,8 +295,8 @@ INPUT_PORTS_END
|
||||
static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, tourvision_state )
|
||||
AM_RANGE( 0x000000, 0x0FFFFF) AM_ROM
|
||||
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000)
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE_LEGACY(vce_r, vce_w )
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_DEVREADWRITE( "huc6260", huc6260_device, read, write )
|
||||
AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE("c6280", c6280_device, c6280_r, c6280_w )
|
||||
AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_DEVREADWRITE("maincpu", h6280_device, timer_r, timer_w )
|
||||
AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE(pce_joystick_r, pce_joystick_w )
|
||||
@ -305,7 +304,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, tourvision_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pce_io , AS_IO, 8, tourvision_state )
|
||||
AM_RANGE( 0x00, 0x03) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x00, 0x03) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(tourvision_state::tourvision_8085_d000_w)
|
||||
@ -364,30 +363,46 @@ static const c6280_interface c6280_config =
|
||||
"maincpu"
|
||||
};
|
||||
|
||||
WRITE_LINE_MEMBER(tourvision_state::pce_irq_changed)
|
||||
{
|
||||
m_maincpu->set_input_line(0, state);
|
||||
}
|
||||
|
||||
|
||||
static const huc6270_interface pce_huc6270_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(tourvision_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( tourvision, tourvision_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
MCFG_CPU_PROGRAM_MAP(pce_mem)
|
||||
MCFG_CPU_IO_MAP(pce_io)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
MCFG_CPU_ADD("subcpu", I8085A, 18000000/3 /*?*/)
|
||||
MCFG_CPU_PROGRAM_MAP(tourvision_8085_map)
|
||||
|
||||
/* video hardware */
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
|
||||
MCFG_SCREEN_UPDATE_STATIC( pce )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242)
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
/* MCFG_GFXDECODE_ADD("gfxdecode", "palette", pce_gfxdecodeinfo ) */
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_INIT_LEGACY( vce )
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_HUC6270_ADD( "huc6270", pce_huc6270_config )
|
||||
|
||||
MCFG_VIDEO_START( pce )
|
||||
|
||||
MCFG_I8155_ADD("i8155", 1000000 /*?*/, i8155_intf)
|
||||
|
||||
|
@ -93,12 +93,11 @@ Alien Crush & Pac_Land: dumps made from PC-Engine dumps of JP versions
|
||||
#include "emu.h"
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/h6280/h6280.h"
|
||||
#include "video/huc6260.h"
|
||||
#include "video/huc6270.h"
|
||||
#include "sound/c6280.h"
|
||||
#include "machine/pcecommn.h"
|
||||
#include "video/vdc.h"
|
||||
#include "sound/discrete.h"
|
||||
#include "drivlgcy.h"
|
||||
#include "scrlegcy.h"
|
||||
|
||||
|
||||
class uapce_state : public pce_common_state
|
||||
@ -115,6 +114,7 @@ public:
|
||||
virtual UINT8 joy_read();
|
||||
virtual void machine_reset();
|
||||
required_device<discrete_device> m_discrete;
|
||||
DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
|
||||
};
|
||||
|
||||
#define UAPCE_SOUND_EN NODE_10
|
||||
@ -288,8 +288,8 @@ INPUT_PORTS_END
|
||||
static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, uapce_state )
|
||||
AM_RANGE( 0x000000, 0x09FFFF) AM_ROM
|
||||
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000)
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE_LEGACY(vce_r, vce_w )
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_DEVREADWRITE( "huc6260", huc6260_device, read, write )
|
||||
AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE("c6280", c6280_device, c6280_r, c6280_w )
|
||||
AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_DEVREADWRITE("maincpu", h6280_device, timer_r, timer_w )
|
||||
AM_RANGE( 0x1FF000, 0x1FF3FF) AM_READWRITE(pce_joystick_r, pce_joystick_w )
|
||||
@ -297,7 +297,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, uapce_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pce_io , AS_IO, 8, uapce_state )
|
||||
AM_RANGE( 0x00, 0x03) AM_READWRITE_LEGACY(vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x00, 0x03) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static const c6280_interface c6280_config =
|
||||
@ -305,31 +305,45 @@ static const c6280_interface c6280_config =
|
||||
"maincpu"
|
||||
};
|
||||
|
||||
WRITE_LINE_MEMBER(uapce_state::pce_irq_changed)
|
||||
{
|
||||
m_maincpu->set_input_line(0, state);
|
||||
}
|
||||
|
||||
|
||||
static const huc6270_interface pce_huc6270_config =
|
||||
{
|
||||
0x10000,
|
||||
DEVCB_DRIVER_LINE_MEMBER(uapce_state,pce_irq_changed)
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
static MACHINE_CONFIG_START( uapce, uapce_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
MCFG_CPU_PROGRAM_MAP(pce_mem)
|
||||
MCFG_CPU_IO_MAP(pce_io)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", pce_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("sub", Z80, 1400000)
|
||||
MCFG_CPU_PROGRAM_MAP(z80_map)
|
||||
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(60))
|
||||
|
||||
|
||||
|
||||
/* video hardware */
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
|
||||
MCFG_SCREEN_UPDATE_STATIC( pce )
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, HUC6260_WPF, 64, 64 + 1024 + 64, HUC6260_LPF, 18, 18 + 242)
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
/* MCFG_GFXDECODE_ADD("gfxdecode", "palette", pce_gfxdecodeinfo ) */
|
||||
MCFG_PALETTE_ADD("palette", 1024)
|
||||
MCFG_PALETTE_INIT_LEGACY( vce )
|
||||
|
||||
MCFG_VIDEO_START( pce )
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_HUC6270_ADD( "huc6270", pce_huc6270_config )
|
||||
|
||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
|
||||
MCFG_SOUND_ADD("c6280", C6280, PCE_MAIN_CLOCK/6)
|
||||
|
@ -57,3 +57,15 @@ DRIVER_INIT_MEMBER(pce_common_state,pce_common)
|
||||
{
|
||||
m_io_port_options = PCE_JOY_SIG | CONST_SIG;
|
||||
}
|
||||
|
||||
UINT32 pce_common_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_huc6260->video_update( bitmap, cliprect );
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(pce_common_state::pce_irq_changed)
|
||||
{
|
||||
m_maincpu->set_input_line(0, state);
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,8 @@
|
||||
#ifndef PCECOMMON_H
|
||||
#define PCECOMMON_H
|
||||
|
||||
#include "video/huc6260.h"
|
||||
#include "video/huc6270.h"
|
||||
#define PCE_MAIN_CLOCK 21477270
|
||||
|
||||
class pce_common_state : public driver_device
|
||||
@ -16,7 +18,8 @@ class pce_common_state : public driver_device
|
||||
public:
|
||||
pce_common_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu") { }
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_huc6260(*this, "huc6260") { }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(pce_joystick_w);
|
||||
DECLARE_READ8_MEMBER(pce_joystick_r);
|
||||
@ -26,6 +29,9 @@ public:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
virtual UINT8 joy_read();
|
||||
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_device<huc6260_device> m_huc6260;
|
||||
DECLARE_WRITE_LINE_MEMBER(pce_irq_changed);
|
||||
private:
|
||||
UINT8 m_io_port_options; /*driver-specific options for the PCE*/
|
||||
int m_joystick_port_select; /* internal index of joystick ports */
|
||||
|
@ -1490,7 +1490,7 @@ $(MAMEOBJ)/pce.a: \
|
||||
$(DRIVERS)/paranoia.o \
|
||||
$(DRIVERS)/tourvis.o \
|
||||
$(DRIVERS)/uapce.o \
|
||||
$(MACHINE)/pcecommn.o $(VIDEO)/vdc.o \
|
||||
$(MACHINE)/pcecommn.o \
|
||||
|
||||
$(MAMEOBJ)/phoenix.a: \
|
||||
$(DRIVERS)/naughtyb.o $(VIDEO)/naughtyb.o \
|
||||
|
1199
src/mame/video/vdc.c
1199
src/mame/video/vdc.c
File diff suppressed because it is too large
Load Diff
@ -1,51 +0,0 @@
|
||||
|
||||
VIDEO_START( pce );
|
||||
SCREEN_UPDATE_IND16( pce );
|
||||
DECLARE_WRITE8_HANDLER ( vdc_0_w );
|
||||
DECLARE_WRITE8_HANDLER ( vdc_1_w );
|
||||
DECLARE_READ8_HANDLER ( vdc_0_r );
|
||||
DECLARE_READ8_HANDLER ( vdc_1_r );
|
||||
PALETTE_INIT( vce );
|
||||
DECLARE_READ8_HANDLER ( vce_r );
|
||||
DECLARE_WRITE8_HANDLER ( vce_w );
|
||||
DECLARE_WRITE8_HANDLER( vpc_w );
|
||||
DECLARE_READ8_HANDLER( vpc_r );
|
||||
DECLARE_WRITE8_HANDLER( sgx_vdc_w );
|
||||
DECLARE_READ8_HANDLER( sgx_vdc_r );
|
||||
TIMER_DEVICE_CALLBACK( pce_interrupt );
|
||||
TIMER_DEVICE_CALLBACK( sgx_interrupt );
|
||||
|
||||
/* Screen timing stuff */
|
||||
|
||||
#define VDC_WPF 684 /* width of a line in frame including blanking areas */
|
||||
#define VDC_LPF 262 /* number of lines in a single frame */
|
||||
|
||||
/* Bits in the VDC status register */
|
||||
|
||||
#define VDC_BSY 0x40 /* Set when the VDC accesses VRAM */
|
||||
#define VDC_VD 0x20 /* Set when in the vertical blanking period */
|
||||
#define VDC_DV 0x10 /* Set when a VRAM > VRAM DMA transfer is done */
|
||||
#define VDC_DS 0x08 /* Set when a VRAM > SATB DMA transfer is done */
|
||||
#define VDC_RR 0x04 /* Set when the current scanline equals the RCR register */
|
||||
#define VDC_OR 0x02 /* Set when there are more than 16 sprites on a line */
|
||||
#define VDC_CR 0x01 /* Set when sprite #0 overlaps with another sprite */
|
||||
|
||||
/* Bits in the CR register */
|
||||
|
||||
#define CR_BB 0x80 /* Background blanking */
|
||||
#define CR_SB 0x40 /* Object blanking */
|
||||
#define CR_VR 0x08 /* Interrupt on vertical blank enable */
|
||||
#define CR_RC 0x04 /* Interrupt on line compare enable */
|
||||
#define CR_OV 0x02 /* Interrupt on sprite overflow enable */
|
||||
#define CR_CC 0x01 /* Interrupt on sprite #0 collision enable */
|
||||
|
||||
/* Bits in the DCR regsiter */
|
||||
|
||||
#define DCR_DSR 0x10 /* VRAM > SATB auto-transfer enable */
|
||||
#define DCR_DID 0x08 /* Destination diretion */
|
||||
#define DCR_SID 0x04 /* Source direction */
|
||||
#define DCR_DVC 0x02 /* VRAM > VRAM EOT interrupt enable */
|
||||
#define DCR_DSC 0x01 /* VRAM > SATB EOT interrupt enable */
|
||||
|
||||
/* just to keep things simple... */
|
||||
enum vdc_regs {MAWR = 0, MARR, VxR, reg3, reg4, CR, RCR, BXR, BYR, MWR, HSR, HDR, VPR, VDW, VCR, DCR, SOUR, DESR, LENR, DVSSR };
|
@ -17,7 +17,6 @@
|
||||
#include "includes/x1.h"
|
||||
|
||||
#include "includes/pce.h"
|
||||
#include "video/vdc.h"
|
||||
//#include "cpu/h6280/h6280.h"
|
||||
//#include "sound/c6280.h"
|
||||
|
||||
@ -59,7 +58,7 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, x1twin_state )
|
||||
AM_RANGE( 0x000000, 0x09FFFF) AM_ROM
|
||||
AM_RANGE( 0x1F0000, 0x1F1FFF) AM_RAM AM_MIRROR(0x6000)
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x1FE000, 0x1FE3FF) AM_READWRITE( vdc_r, vdc_w )
|
||||
AM_RANGE( 0x1FE400, 0x1FE7FF) AM_READWRITE( vce_r, vce_w )
|
||||
AM_RANGE( 0x1FE800, 0x1FEBFF) AM_DEVREADWRITE( "c6280", c6280_device, c6280_r, c6280_w )
|
||||
AM_RANGE( 0x1FEC00, 0x1FEFFF) AM_READWRITE( h6280_timer_r, h6280_timer_w )
|
||||
@ -68,7 +67,7 @@ static ADDRESS_MAP_START( pce_mem , AS_PROGRAM, 8, x1twin_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( pce_io, AS_IO, 8, x1twin_state )
|
||||
AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_0_r, vdc_0_w )
|
||||
AM_RANGE( 0x00, 0x03) AM_READWRITE( vdc_r, vdc_w )
|
||||
ADDRESS_MAP_END
|
||||
#endif
|
||||
|
||||
@ -557,7 +556,7 @@ static MACHINE_CONFIG_START( x1twin, x1twin_state )
|
||||
MCFG_SCREEN_ADD("pce_screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
|
||||
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, HUC6260_WPF, 70, 70 + 512 + 32, HUC6260_LPF, 14, 14+242)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", H46505, "x1_screen", (VDP_CLOCK/48), mc6845_intf) //unknown divider
|
||||
|
Loading…
Reference in New Issue
Block a user