diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2014-03-17 10:02:08 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2014-03-17 10:02:08 +0000 |
commit | 5e8e5629e3f8cbf7b6aa39e6bb886d02e0c2bcb9 (patch) | |
tree | ac30a15dd82e03fb45c22787f5b57f08d9711242 /src/mame/drivers/tourvis.c | |
parent | 14756cfa21c4c41f9dc75a58ebfde745cff97e1e (diff) |
why complicate when proper devices are there and do work properly (nw)
Diffstat (limited to 'src/mame/drivers/tourvis.c')
-rw-r--r-- | src/mame/drivers/tourvis.c | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c index 7f39363746c..1d42c409e9d 100644 --- a/src/mame/drivers/tourvis.c +++ b/src/mame/drivers/tourvis.c @@ -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) |