why complicate when proper devices are there and do work properly (nw)

This commit is contained in:
Miodrag Milanovic 2014-03-17 10:02:08 +00:00
parent 14756cfa21
commit 5e8e5629e3
11 changed files with 116 additions and 1349 deletions

2
.gitattributes vendored
View File

@ -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

View File

@ -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)
};

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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);
}

View File

@ -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 */

View File

@ -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 \

File diff suppressed because it is too large Load Diff

View File

@ -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 };

View File

@ -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