mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
tms9928a: Configuration modernization (nw)
- Replace callback configuration macros with devcb3 (slightly shortening function names in the process)
- Change configured clock to be twice the dot clock (as on hardware), rather than equal to it
- Allow the VDP to configure the screen in device_config_complete (taking into account 60 Hz/50 Hz variations), making MCFG_TMS9928A_SCREEN_ADD_NTSC/_PAL macros obsolete
- Add notes on clock outputs
msx.cpp: Use a template to simplify configuration of all the MSX1 VDP variants (nw)
bbcbc: Increase clock speed to a more plausible rate
WARNING: Withheld for now due to Vas's quibbles with the similar approach used in 577f198564
.
This commit is contained in:
parent
b3e306b985
commit
71da8e2ae2
@ -36,17 +36,16 @@ DEFINE_DEVICE_TYPE(A2BUS_ARCADEBOARD, a2bus_arcboard_device, "a2arcbd", "Third M
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(a2bus_arcboard_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD( TMS_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) // 16k of VRAM
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, a2bus_arcboard_device, tms_irq_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS_TAG, tms9918a_device, screen_update )
|
||||
void a2bus_arcboard_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
TMS9918A(config, m_tms, XTAL(10'738'635)).set_screen(SCREEN_TAG);
|
||||
m_tms->set_vram_size(0x4000); // 16k of VRAM
|
||||
m_tms->int_callback().set(FUNC(a2bus_arcboard_device::tms_irq_w));
|
||||
SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD(AY_TAG, AY8910, 1022727)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
AY8910(config, m_ay, 1022727).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
|
@ -40,13 +40,13 @@ DEFINE_DEVICE_TYPE(A2BUS_EZCGI_9958, a2bus_ezcgi_9958_device, "a2ezcgi5", "E-Z C
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(a2bus_ezcgi_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD( TMS_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) // 16k of VRAM
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, a2bus_ezcgi_device, tms_irq_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS_TAG, tms9918a_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
void a2bus_ezcgi_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
TMS9918A(config, m_tms, XTAL(10'738'635)).set_screen(SCREEN_TAG);
|
||||
m_tms->set_vram_size(0x4000); // 16k of VRAM
|
||||
m_tms->int_callback().set(FUNC(a2bus_ezcgi_device::tms_irq_w));
|
||||
SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(a2bus_ezcgi_9938_device::device_add_mconfig)
|
||||
MCFG_V9938_ADD(TMS_TAG, SCREEN_TAG, 0x30000, XTAL(21'477'272)) // 192K of VRAM / typical 9938 clock, not verified
|
||||
|
@ -33,19 +33,17 @@ DEFINE_DEVICE_TYPE(A2BUS_SSPRITE, a2bus_ssprite_device, "a2ssprite", "Synetix Su
|
||||
// device_add_mconfig - add device configuration
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(a2bus_ssprite_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD( TMS_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) // 16k of VRAM
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, a2bus_ssprite_device, tms_irq_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS_TAG, tms9918a_device, screen_update )
|
||||
void a2bus_ssprite_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
TMS9918A(config, m_tms, XTAL(10'738'635)).set_screen(SCREEN_TAG);
|
||||
m_tms->set_vram_size(0x4000); // 16k of VRAM
|
||||
m_tms->int_callback().set(FUNC(a2bus_ssprite_device::tms_irq_w));
|
||||
SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD(AY_TAG, AY8912, 1022727)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADD(TMS5220_TAG, TMS5220, 640000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
AY8912(config, m_ay, 1022727).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
TMS5220(config, m_tms5220, 640000).add_route(ALL_OUTPUTS, "mono", 1.0);
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
// LIVE DEVICE
|
||||
|
@ -23,14 +23,14 @@ WRITE_LINE_MEMBER(spc1000_vdp_exp_device::vdp_interrupt)
|
||||
// device_add_mconfig
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(spc1000_vdp_exp_device::device_add_mconfig)
|
||||
|
||||
MCFG_DEVICE_ADD("tms", TMS9928A, XTAL(10'738'635) / 2) // TODO: which clock?
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, spc1000_vdp_exp_device, vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC("tms_screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("tms", tms9928a_device, screen_update)
|
||||
MACHINE_CONFIG_END
|
||||
void spc1000_vdp_exp_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
TMS9928A(config, m_vdp, XTAL(10'738'635)); // TODO: which clock?
|
||||
m_vdp->set_vram_size(0x4000);
|
||||
m_vdp->int_callback().set(FUNC(spc1000_vdp_exp_device::vdp_interrupt));
|
||||
m_vdp->set_screen("tms_screen");
|
||||
SCREEN(config, "tms_screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -70,8 +70,27 @@ tms9928a_device::tms9928a_device(const machine_config &mconfig, device_type type
|
||||
{
|
||||
}
|
||||
|
||||
void tms9928a_device::device_config_complete()
|
||||
{
|
||||
if (!has_screen())
|
||||
return;
|
||||
|
||||
tms9928a_device::tms9928a_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock )
|
||||
if (!screen().have_screen_update())
|
||||
screen().set_screen_update(screen_update_rgb32_delegate(FUNC(tms9928a_device::screen_update), this));
|
||||
|
||||
if (!screen().refresh_attoseconds())
|
||||
{
|
||||
if (m_50hz)
|
||||
screen().set_raw(clock() / 2, TOTAL_HORZ, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
|
||||
TOTAL_VERT_PAL, VERT_DISPLAY_START_PAL - 12, VERT_DISPLAY_START_PAL + 192 + 12);
|
||||
else
|
||||
screen().set_raw(clock() / 2, TOTAL_HORZ, HORZ_DISPLAY_START - 12, HORZ_DISPLAY_START + 256 + 12,
|
||||
TOTAL_VERT_PAL, VERT_DISPLAY_START_NTSC - 12, VERT_DISPLAY_START_NTSC + 192 + 12);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
tms9928a_device::tms9928a_device( const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: tms9928a_device(mconfig, TMS9928A, tag, owner, clock, false, true, true)
|
||||
{
|
||||
}
|
||||
@ -111,6 +130,12 @@ tms9929a_device::tms9929a_device(const machine_config &mconfig, const char *tag,
|
||||
{
|
||||
}
|
||||
|
||||
void tms9928a_device::device_validity_check(validity_checker &valid) const
|
||||
{
|
||||
if (clock() < 6'000'000)
|
||||
osd_printf_error("%d Hz clock is too slow!\n", clock());
|
||||
}
|
||||
|
||||
device_memory_interface::space_config_vector tms9928a_device::memory_space_config() const
|
||||
{
|
||||
return space_config_vector {
|
||||
@ -765,5 +790,6 @@ void tms9928a_device::device_reset()
|
||||
m_line_timer->adjust( screen().time_until_pos( 0, HORZ_DISPLAY_START ) );
|
||||
|
||||
// TODO: Check clock freq settings in all drivers
|
||||
if (!m_out_gromclk_cb.isnull() && m_99) m_gromclk_timer->adjust(attotime::zero, 0, attotime::from_hz(clock()/12));
|
||||
if (!m_out_gromclk_cb.isnull() && m_99)
|
||||
m_gromclk_timer->adjust(attotime::zero, 0, clocks_to_attotime(24));
|
||||
}
|
||||
|
@ -21,6 +21,13 @@
|
||||
TMS9128 YPbPr 60
|
||||
TMS9129 YPbPr 50
|
||||
|
||||
EFO90501 ? 50? (uses 10.816 MHz XTAL; TI logo sometimes present)
|
||||
|
||||
XTAL inputs 10.738098 to 10.739172 MHz (10.738635 MHz typical)
|
||||
Pixel clock (internal) XTAL ÷ 2
|
||||
CPUCLK (N/A with TMS992x) XTAL ÷ 3 (3.58 MHz typical)
|
||||
GROMCLK XTAL ÷ 24 (447.5 kHz typical)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef MAME_VIDEO_TMS9928A_H
|
||||
@ -31,34 +38,6 @@
|
||||
#include "screen.h"
|
||||
|
||||
|
||||
// MCFG_DEVICE_ADD(_tag, _variant, XTAL(10'738'635) / 2 )
|
||||
|
||||
#define MCFG_TMS9928A_VRAM_SIZE(_size) \
|
||||
downcast<tms9928a_device &>(*device).set_vram_size(_size);
|
||||
|
||||
#define MCFG_TMS9928A_OUT_INT_LINE_CB(_devcb) \
|
||||
downcast<tms9928a_device &>(*device).set_out_int_line_callback(DEVCB_##_devcb);
|
||||
|
||||
#define MCFG_TMS9928A_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
||||
|
||||
#define MCFG_TMS9928A_OUT_GROMCLK_CB(_devcb) \
|
||||
downcast<tms9928a_device &>(*device).set_out_gromclk_callback(DEVCB_##_devcb);
|
||||
|
||||
|
||||
#define MCFG_TMS9928A_SCREEN_ADD_NTSC(_screen_tag) \
|
||||
MCFG_VIDEO_SET_SCREEN(_screen_tag) \
|
||||
MCFG_SCREEN_ADD( _screen_tag, RASTER ) \
|
||||
MCFG_SCREEN_RAW_PARAMS( XTAL(10'738'635) / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 )
|
||||
|
||||
|
||||
#define MCFG_TMS9928A_SCREEN_ADD_PAL(_screen_tag) \
|
||||
MCFG_VIDEO_SET_SCREEN(_screen_tag) \
|
||||
MCFG_SCREEN_ADD(_screen_tag, RASTER ) \
|
||||
MCFG_SCREEN_RAW_PARAMS( XTAL(10'738'635) / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_PAL, tms9928a_device::VERT_DISPLAY_START_PAL - 12, tms9928a_device::VERT_DISPLAY_START_PAL + 192 + 12 )
|
||||
|
||||
|
||||
DECLARE_DEVICE_TYPE(TMS9918, tms9918_device)
|
||||
DECLARE_DEVICE_TYPE(TMS9918A, tms9918a_device)
|
||||
DECLARE_DEVICE_TYPE(TMS9118, tms9118_device)
|
||||
@ -90,10 +69,8 @@ public:
|
||||
tms9928a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
void set_vram_size(int vram_size) { m_vram_size = vram_size; }
|
||||
template <class Object> devcb_base &set_out_int_line_callback(Object &&cb) { return m_out_int_line_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_gromclk_callback(Object &&cb) { return m_out_gromclk_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto out_int_line_callback() { return m_out_int_line_cb.bind(); }
|
||||
auto out_gromclk_callback() { return m_out_gromclk_cb.bind(); }
|
||||
auto int_callback() { return m_out_int_line_cb.bind(); }
|
||||
auto gromclk_callback() { return m_out_gromclk_cb.bind(); }
|
||||
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
@ -119,6 +96,8 @@ protected:
|
||||
tms9928a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, bool is_50hz, bool is_reva, bool is_99);
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_config_complete() override;
|
||||
virtual void device_validity_check(validity_checker &valid) const override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
|
@ -1052,11 +1052,10 @@ MACHINE_CONFIG_START(adam_state::adam)
|
||||
MCFG_QUANTUM_PERFECT_CPU(M6801_TAG)
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD(TMS9928A_TAG, TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, adam_state, vdc_int_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC(SCREEN_TAG)
|
||||
MCFG_SCREEN_UPDATE_DEVICE(TMS9928A_TAG, tms9928a_device, screen_update)
|
||||
TMS9928A(config, m_vdc, XTAL(10'738'635)).set_screen("screen");
|
||||
m_vdc->set_vram_size(0x4000);
|
||||
m_vdc->int_callback().set(FUNC(adam_state::vdc_int_w));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -448,11 +448,11 @@ MACHINE_CONFIG_START(arachnid_state::arachnid)
|
||||
m_pia_u17->cb2_handler().set(FUNC(arachnid_state::pia_u17_pcb_w));
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD(TMS9118_TAG, TMS9118, 10.738635_MHz_XTAL / 2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(M6809_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9118_TAG, tms9118_device, screen_update )
|
||||
tms9118_device &vdp(TMS9118(config, TMS9118_TAG, 10.738635_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -119,22 +119,22 @@ static const z80_daisy_config bbcbc_daisy_chain[] =
|
||||
|
||||
|
||||
MACHINE_CONFIG_START(bbcbc_state::bbcbc)
|
||||
MCFG_DEVICE_ADD( "maincpu", Z80, MAIN_CLOCK / 8 )
|
||||
MCFG_DEVICE_ADD("maincpu", Z80, 10.6875_MHz_XTAL / 3)
|
||||
MCFG_DEVICE_PROGRAM_MAP(mem_map)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
MCFG_Z80_DAISY_CHAIN(bbcbc_daisy_chain)
|
||||
|
||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, MAIN_CLOCK/8)
|
||||
MCFG_DEVICE_ADD("z80pio", Z80PIO, 10.6875_MHz_XTAL / 3)
|
||||
//MCFG_Z80PIO_OUT_PA_CB(???)
|
||||
//MCFG_Z80PIO_IN_STROBE_CB(???)
|
||||
MCFG_Z80PIO_IN_PB_CB(READ8(*this, bbcbc_state, input_r))
|
||||
MCFG_Z80PIO_OUT_PB_CB(WRITE8(*this, bbcbc_state, input_select_w))
|
||||
|
||||
MCFG_DEVICE_ADD( "tms9129", TMS9129, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", 0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9129", tms9928a_device, screen_update )
|
||||
tms9129_device &vdp(TMS9129(config, "tms9129", 10.6875_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline("maincpu", 0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// Software on ROM cartridges
|
||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "bbcbc_cart")
|
||||
|
@ -800,11 +800,10 @@ MACHINE_CONFIG_START(by133_state::babypac)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("babypac2", by133_state, u11_timer, attotime::from_hz(634)) // 555 timer*2
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "crtc", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("videocpu", M6809_IRQ_LINE))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "crtc", tms9928a_device, screen_update )
|
||||
TMS9928A(config, m_crtc, XTAL(10'738'635)).set_screen("screen");
|
||||
m_crtc->set_vram_size(0x4000);
|
||||
m_crtc->int_callback().set_inputline(m_videocpu, M6809_IRQ_LINE);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
@ -823,16 +822,11 @@ MACHINE_CONFIG_START(by133_state::granny)
|
||||
MCFG_DEVICE_ADD("videocpu", MC6809, XTAL(8'000'000)) // MC68B09P (XTAL value hard to read)
|
||||
MCFG_DEVICE_PROGRAM_MAP(granny_map)
|
||||
|
||||
MCFG_DEVICE_REMOVE("screen")
|
||||
TMS9928A(config, m_crtc2, XTAL(10'738'635)).set_screen("screen");
|
||||
m_crtc2->set_vram_size(0x4000);
|
||||
m_crtc2->int_callback().set_inputline(m_videocpu, M6809_IRQ_LINE);
|
||||
|
||||
MCFG_DEVICE_ADD( "crtc2", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("videocpu", M6809_IRQ_LINE))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
|
||||
MCFG_SCREEN_ADD( "screen", RASTER )
|
||||
MCFG_SCREEN_RAW_PARAMS( XTAL(10'738'635) / 2, tms9928a_device::TOTAL_HORZ, tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 )
|
||||
MCFG_DEVICE_MODIFY("screen")
|
||||
MCFG_SCREEN_UPDATE_DRIVER(by133_state, screen_update_granny)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -702,9 +702,9 @@ MACHINE_CONFIG_START(cliffhgr_state::cliffhgr)
|
||||
MCFG_LASERDISC_OVERLAY_CLIP(tms9928a_device::HORZ_DISPLAY_START-12, tms9928a_device::HORZ_DISPLAY_START+32*8+12-1, tms9928a_device::VERT_DISPLAY_START_NTSC - 12, tms9928a_device::VERT_DISPLAY_START_NTSC+24*8+12-1)
|
||||
|
||||
/* start with the TMS9928a video configuration */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9128, XTAL(10'738'635) / 2 ) /* TMS9128NL on the board */
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||
tms9128_device &vdp(TMS9128(config, "tms9928a", XTAL(10'738'635))); /* TMS9128NL on the board */
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||
|
||||
/* override video rendering and raw screen info */
|
||||
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
|
||||
|
@ -382,11 +382,11 @@ MACHINE_CONFIG_START(coleco_state::coleco)
|
||||
MCFG_DEVICE_IO_MAP(coleco_io_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, coleco_state, coleco_vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(coleco_state::coleco_vdp_interrupt));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -404,19 +404,16 @@ MACHINE_CONFIG_START(coleco_state::coleco)
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("paddle_timer", coleco_state, paddle_update_callback, attotime::from_msec(20))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(coleco_state::colecop)
|
||||
void coleco_state::colecop(machine_config &config)
|
||||
{
|
||||
coleco(config);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_REMOVE("tms9928a")
|
||||
MCFG_DEVICE_REMOVE("screen")
|
||||
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9929A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, coleco_state, coleco_vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9929a_device &vdp(TMS9929A(config.replace(), "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(coleco_state::coleco_vdp_interrupt));
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(coleco_state::czz50)
|
||||
coleco(config);
|
||||
@ -426,19 +423,16 @@ MACHINE_CONFIG_START(coleco_state::czz50)
|
||||
MCFG_DEVICE_PROGRAM_MAP(czz50_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(coleco_state::dina)
|
||||
void coleco_state::dina(machine_config &config)
|
||||
{
|
||||
czz50(config);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_REMOVE("tms9928a")
|
||||
MCFG_DEVICE_REMOVE("screen")
|
||||
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9929A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, coleco_state, coleco_vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9929a_device &vdp(TMS9929A(config.replace(), "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(coleco_state::coleco_vdp_interrupt));
|
||||
}
|
||||
|
||||
|
||||
/* ROMs */
|
||||
|
@ -198,13 +198,12 @@ MACHINE_CONFIG_START(cortex_state::cortex)
|
||||
control.q_out_cb<6>().set("beeper", FUNC(beep_device::set_state));
|
||||
|
||||
/* video hardware */
|
||||
tms9929a_device &crtc(TMS9929A(config, "crtc", XTAL(10'738'635) / 2));
|
||||
crtc.out_int_line_callback().set_inputline(m_maincpu, INT_9995_INT1);
|
||||
crtc.out_int_line_callback().append(FUNC(cortex_state::vdp_int_w));
|
||||
tms9929a_device &crtc(TMS9929A(config, "crtc", XTAL(10'738'635)));
|
||||
crtc.set_screen("screen");
|
||||
crtc.int_callback().set_inputline(m_maincpu, INT_9995_INT1);
|
||||
crtc.int_callback().append(FUNC(cortex_state::vdp_int_w));
|
||||
crtc.set_vram_size(0x4000);
|
||||
device = &crtc; // FIXME: this line is needed because the following macro is nasty
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "crtc", tms9928a_device, screen_update )
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||
MCFG_GENERIC_KEYBOARD_CB(PUT(cortex_state, kbd_put))
|
||||
|
@ -187,7 +187,7 @@ void laser2001_state::lasr2001_map(address_map &map)
|
||||
|
||||
INPUT_CHANGED_MEMBER( crvision_state::trigger_nmi )
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
|
||||
m_maincpu->set_input_line(m6502_device::NMI_LINE, newval ? CLEAR_LINE : ASSERT_LINE);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -786,29 +786,31 @@ MACHINE_CONFIG_END
|
||||
MACHINE_CONFIG_START( ntsc )
|
||||
-------------------------------------------------*/
|
||||
|
||||
MACHINE_CONFIG_START(crvision_state::ntsc)
|
||||
void crvision_state::ntsc(machine_config &config)
|
||||
{
|
||||
creativision(config);
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( TMS9929_TAG, TMS9918, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9929_TAG, tms9918_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9918_device &vdp(TMS9918(config, TMS9929_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
MACHINE_CONFIG_START( pal )
|
||||
-------------------------------------------------*/
|
||||
|
||||
MACHINE_CONFIG_START(crvision_pal_state::pal)
|
||||
void crvision_pal_state::pal(machine_config &config)
|
||||
{
|
||||
creativision(config);
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( TMS9929_TAG, TMS9929, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9929_TAG, tms9929_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9929_device &vdp(TMS9929(config, TMS9929_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
MACHINE_CONFIG_START( lasr2001 )
|
||||
@ -838,11 +840,11 @@ MACHINE_CONFIG_START(laser2001_state::lasr2001)
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( TMS9929_TAG, TMS9929A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(M6502_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9929_TAG, tms9929a_device, screen_update )
|
||||
tms9929a_device &vdp(TMS9929A(config, TMS9929_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(M6502_TAG, m6502_device::IRQ_LINE);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -616,11 +616,10 @@ MACHINE_CONFIG_START(einstein_state::einstein)
|
||||
MCFG_Z80DAISY_GENERIC_INT_CB(WRITELINE(*this, einstein_state, int_w<4>))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("vdp", TMS9129, 10.738635_MHz_XTAL / 2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) // 16k RAM, provided by IC i040 and i041
|
||||
MCFG_TMS9928A_SET_SCREEN("screen")
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("vdp", tms9129_device, screen_update)
|
||||
tms9129_device &vdp(TMS9129(config, "vdp", 10.738635_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000); // 16k RAM, provided by IC i040 and i041
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -133,11 +133,11 @@ MACHINE_CONFIG_START(forte2_state::pesadelo)
|
||||
MCFG_DEVICE_IO_MAP(io_mem)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("tms9928a", TMS9928A, XTAL(10'738'635)/2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("tms9928a", tms9928a_device, screen_update)
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -169,12 +169,11 @@ MACHINE_CONFIG_START(kingpin_state::kingpin)
|
||||
MCFG_DEVICE_PERIODIC_INT_DRIVER(kingpin_state, irq0_line_hold, 1000) // unknown freq
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", 0))
|
||||
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline("maincpu", 0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -1467,30 +1467,32 @@ MACHINE_CONFIG_END
|
||||
// MACHINE_CONFIG_START( ntsc )
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(m5_state::ntsc)
|
||||
void m5_state::ntsc(machine_config &config)
|
||||
{
|
||||
m5(config);
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, 10.738635_MHz_XTAL / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", 10.738635_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_START( pal )
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(m5_state::pal)
|
||||
void m5_state::pal(machine_config &config)
|
||||
{
|
||||
m5(config);
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9929A, 10.738635_MHz_XTAL / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
MACHINE_CONFIG_END
|
||||
tms9929a_device &vdp(TMS9929A(config, "tms9928a", 10.738635_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG( m5p_brno )
|
||||
@ -1513,12 +1515,11 @@ MACHINE_CONFIG_START(brno_state::brno)
|
||||
MCFG_DEVICE_REMOVE(UPD765_TAG)
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD("tms9928a", TMS9929A, 10.738635_MHz_XTAL / 2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, m5_state, sordm5_video_interrupt_callback))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
|
||||
tms9929a_device &vdp(TMS9929A(config, "tms9928a", 10.738635_MHz_XTAL));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(m5_state::sordm5_video_interrupt_callback));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// floppy
|
||||
MCFG_DEVICE_ADD(WD2797_TAG, WD2797, 1_MHz_XTAL)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -295,11 +295,11 @@ MACHINE_CONFIG_START(mtx_state::mtx512)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(mtx_state,mtx512)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9929a", TMS9929A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, mtx_state, mtx_tms9929a_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9929a", tms9929a_device, screen_update )
|
||||
tms9929a_device &vdp(TMS9929A(config, "tms9929a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(mtx_state::mtx_tms9929a_interrupt));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -221,11 +221,11 @@ MACHINE_CONFIG_START(myvision_state::myvision)
|
||||
MCFG_DEVICE_IO_MAP(myvision_io)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9918", TMS9918A, XTAL(10'738'635) / 2 ) /* Exact model not verified */
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000) /* Not verified */
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9918", tms9918a_device, screen_update )
|
||||
tms9918a_device &vdp(TMS9918A(config, "tms9918", XTAL(10'738'635))); /* Exact model not verified */
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000); /* Not verified */
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -358,11 +358,12 @@ MACHINE_CONFIG_START(pachifev_state::pachifev)
|
||||
m_maincpu->set_addrmap(AS_IO, &pachifev_state::pachifev_cru);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pachifev_state, vblank_w))
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.screen_vblank().set(FUNC(pachifev_state::vblank_w));
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -318,10 +318,10 @@ MACHINE_CONFIG_START(pencil2_state::pencil2)
|
||||
MCFG_DEVICE_IO_MAP(io_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9929A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9929a_device &vdp(TMS9929A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -234,11 +234,11 @@ MACHINE_CONFIG_START(pengadvb_state::pengadvb)
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, pengadvb_state, pengadvb_ppi_port_c_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD("tms9128", TMS9128, XTAL(10'738'635)/2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE("tms9128", tms9128_device, screen_update)
|
||||
tms9128_device &vdp(TMS9128(config, "tms9128", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -394,11 +394,11 @@ MACHINE_CONFIG_START(pv2000_state::pv2000)
|
||||
MCFG_DEVICE_IO_MAP(pv2000_io_map)
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, pv2000_state, pv2000_vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set(FUNC(pv2000_state::pv2000_vdp_interrupt));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -397,11 +397,11 @@ MACHINE_CONFIG_START(re900_state::re900)
|
||||
MCFG_MCS51_PORT_P0_OUT_CB(WRITE8(*this, re900_state, cpu_port_0_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9128", TMS9128, XTAL(10'738'635) / 2 ) /* TMS9128NL on the board */
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9128", tms9128_device, screen_update )
|
||||
tms9128_device &vdp(TMS9128(config, "tms9128", VDP_CLOCK)); /* TMS9128NL on the board */
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
//vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
|
||||
|
@ -534,11 +534,11 @@ MACHINE_CONFIG_START(sg1000_state::sg1000)
|
||||
MCFG_DEVICE_IO_MAP(sg1000_io_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( TMS9918A_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9918A_TAG, tms9918a_device, screen_update )
|
||||
tms9918a_device &vdp(TMS9918A(config, TMS9918A_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -586,11 +586,11 @@ MACHINE_CONFIG_START(sc3000_state::sc3000)
|
||||
MCFG_DEVICE_IO_MAP(sc3000_io_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( TMS9918A_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9918A_TAG, tms9918a_device, screen_update )
|
||||
tms9918a_device &vdp(TMS9918A(config, TMS9918A_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
@ -623,11 +623,11 @@ MACHINE_CONFIG_START(sf7000_state::sf7000)
|
||||
MCFG_DEVICE_IO_MAP(sf7000_io_map)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( TMS9918A_TAG, TMS9918A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( SCREEN_TAG )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( TMS9918A_TAG, tms9918a_device, screen_update )
|
||||
tms9918a_device &vdp(TMS9918A(config, TMS9918A_TAG, XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -481,12 +481,11 @@ MACHINE_CONFIG_START(sg1000a_state::sg1000a)
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, sg1000a_state, sg1000a_coin_counter_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
vdp.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -71,10 +71,11 @@ public:
|
||||
m_keyboard_row(0)
|
||||
{}
|
||||
|
||||
void svi328n(machine_config &config);
|
||||
void svi318(machine_config &config);
|
||||
void svi328n(machine_config &config);
|
||||
void svi318p(machine_config &config);
|
||||
void svi318n(machine_config &config);
|
||||
void svi328(machine_config &config);
|
||||
void svi328p(machine_config &config);
|
||||
|
||||
private:
|
||||
DECLARE_READ8_MEMBER( ppi_port_a_r );
|
||||
@ -544,13 +545,6 @@ MACHINE_CONFIG_START(svi3x8_state::svi318)
|
||||
MCFG_I8255_IN_PORTB_CB(READ8(*this, svi3x8_state, ppi_port_b_r))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, svi3x8_state, ppi_port_c_w))
|
||||
|
||||
// video hardware
|
||||
MCFG_DEVICE_ADD("vdp", TMS9929A, XTAL(10'738'635) / 2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, svi3x8_state, intvdp_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_PAL("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("vdp", tms9929a_device, screen_update)
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
|
||||
@ -583,20 +577,29 @@ MACHINE_CONFIG_START(svi3x8_state::svi318)
|
||||
MCFG_SVI_EXPANDER_EXCSW_HANDLER(WRITE8(*this, svi3x8_state, excs_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(svi3x8_state::svi318n)
|
||||
svi318(config);
|
||||
MCFG_DEVICE_REMOVE("vdp")
|
||||
MCFG_DEVICE_REMOVE("screen")
|
||||
MCFG_DEVICE_ADD("vdp", TMS9928A, XTAL(10'738'635) / 2)
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(*this, svi3x8_state, intvdp_w))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC("screen")
|
||||
MCFG_SCREEN_UPDATE_DEVICE("vdp", tms9928a_device, screen_update)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
void svi3x8_state::svi328(machine_config &config)
|
||||
void svi3x8_state::svi318p(machine_config &config)
|
||||
{
|
||||
svi318(config);
|
||||
|
||||
// video hardware
|
||||
TMS9929A(config, m_vdp, XTAL(10'738'635)).set_screen("screen");
|
||||
m_vdp->set_vram_size(0x4000);
|
||||
m_vdp->int_callback().set(FUNC(svi3x8_state::intvdp_w));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
void svi3x8_state::svi318n(machine_config &config)
|
||||
{
|
||||
svi318(config);
|
||||
TMS9928A(config, m_vdp, XTAL(10'738'635)).set_screen("screen");
|
||||
m_vdp->set_vram_size(0x4000);
|
||||
m_vdp->int_callback().set(FUNC(svi3x8_state::intvdp_w));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
void svi3x8_state::svi328p(machine_config &config)
|
||||
{
|
||||
svi318p(config);
|
||||
m_ram->set_default_size("64K");
|
||||
}
|
||||
|
||||
@ -632,7 +635,7 @@ ROM_END
|
||||
//**************************************************************************
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1983, svi318, 0, 0, svi318, svi318, svi3x8_state, empty_init, "Spectravideo", "SVI-318 (PAL)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, svi318, 0, 0, svi318p, svi318, svi3x8_state, empty_init, "Spectravideo", "SVI-318 (PAL)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, svi318n, svi318, 0, svi318n, svi318, svi3x8_state, empty_init, "Spectravideo", "SVI-318 (NTSC)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, svi328, 0, 0, svi328, svi328, svi3x8_state, empty_init, "Spectravideo", "SVI-328 (PAL)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, svi328, 0, 0, svi328p, svi328, svi3x8_state, empty_init, "Spectravideo", "SVI-328 (PAL)", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, svi328n, svi328, 0, svi328n, svi328, svi3x8_state, empty_init, "Spectravideo", "SVI-328 (NTSC)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -940,47 +940,31 @@ void ti99_4x_state::ti99_4(machine_config& config)
|
||||
/*
|
||||
US version: 60 Hz, NTSC
|
||||
*/
|
||||
void ti99_4x_state::ti99_4_60hz(machine_config& config)
|
||||
void ti99_4x_state::ti99_4_60hz(machine_config &config)
|
||||
{
|
||||
ti99_4(config);
|
||||
TMS9918(config, m_video, XTAL(10'738'635) / 2);
|
||||
m_video->out_int_line_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->out_gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
TMS9918(config, m_video, XTAL(10'738'635));
|
||||
m_video->set_vram_size(0x4000);
|
||||
m_video->int_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
m_video->set_screen(TI_SCREEN_TAG);
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*
|
||||
European version: 50 Hz, PAL
|
||||
*/
|
||||
void ti99_4x_state::ti99_4_50hz(machine_config& config)
|
||||
void ti99_4x_state::ti99_4_50hz(machine_config &config)
|
||||
{
|
||||
ti99_4(config);
|
||||
TMS9929(config, m_video, XTAL(10'738'635) / 2);
|
||||
m_video->out_int_line_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->out_gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
TMS9929(config, m_video, XTAL(10'738'635));
|
||||
m_video->set_vram_size(0x4000);
|
||||
m_video->int_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
m_video->set_screen(TI_SCREEN_TAG);
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_PAL, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
@ -1015,47 +999,31 @@ void ti99_4x_state::ti99_4a(machine_config& config)
|
||||
/*
|
||||
US version: 60 Hz, NTSC
|
||||
*/
|
||||
void ti99_4x_state::ti99_4a_60hz(machine_config& config)
|
||||
void ti99_4x_state::ti99_4a_60hz(machine_config &config)
|
||||
{
|
||||
ti99_4a(config);
|
||||
TMS9918A(config, m_video, XTAL(10'738'635) / 2);
|
||||
m_video->out_int_line_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->out_gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
TMS9918A(config, m_video, XTAL(10'738'635));
|
||||
m_video->set_vram_size(0x4000);
|
||||
m_video->int_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
m_video->set_screen(TI_SCREEN_TAG);
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*
|
||||
European version: 50 Hz, PAL
|
||||
*/
|
||||
void ti99_4x_state::ti99_4a_50hz(machine_config& config)
|
||||
void ti99_4x_state::ti99_4a_50hz(machine_config &config)
|
||||
{
|
||||
ti99_4a(config);
|
||||
TMS9929A(config, m_video, XTAL(10'738'635) / 2);
|
||||
m_video->out_int_line_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->out_gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
TMS9929A(config, m_video, XTAL(10'738'635));
|
||||
m_video->set_vram_size(0x4000);
|
||||
m_video->int_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
m_video->set_screen(TI_SCREEN_TAG);
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_PAL, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
@ -1071,26 +1039,18 @@ void ti99_4x_state::ti99_4a_50hz(machine_config& config)
|
||||
US version: 60 Hz, NTSC
|
||||
There were no European versions.
|
||||
*/
|
||||
void ti99_4x_state::ti99_4qi_60hz(machine_config& config)
|
||||
void ti99_4x_state::ti99_4qi_60hz(machine_config &config)
|
||||
{
|
||||
ti99_4a(config);
|
||||
m_model = MODEL_4QI;
|
||||
|
||||
TMS9918A(config, m_video, XTAL(10'738'635) / 2);
|
||||
m_video->out_int_line_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->out_gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
TMS9918A(config, m_video, XTAL(10'738'635));
|
||||
m_video->set_vram_size(0x4000);
|
||||
m_video->int_callback().set(FUNC(ti99_4x_state::video_interrupt_in));
|
||||
m_video->gromclk_callback().set(FUNC(ti99_4x_state::gromclk_in));
|
||||
m_video->set_screen(TI_SCREEN_TAG);
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
|
@ -842,47 +842,31 @@ void ti99_8_state::ti99_8(machine_config& config)
|
||||
/*
|
||||
TI-99/8 US version (NTSC, 60 Hz)
|
||||
*/
|
||||
void ti99_8_state::ti99_8_60hz(machine_config& config)
|
||||
void ti99_8_state::ti99_8_60hz(machine_config &config)
|
||||
{
|
||||
ti99_8(config);
|
||||
// Video hardware
|
||||
tms9928a_device& video(TMS9118(config, TI_VDP_TAG, XTAL(10'738'635) / 2));
|
||||
video.out_int_line_callback().set(FUNC(ti99_8_state::video_interrupt));
|
||||
tms9118_device &video(TMS9118(config, TI_VDP_TAG, XTAL(10'738'635)));
|
||||
video.set_vram_size(0x4000);
|
||||
video.set_screen(TI_SCREEN_TAG);
|
||||
video.int_callback().set(FUNC(ti99_8_state::video_interrupt));
|
||||
video.set_screen("screen");
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_NTSC, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_NTSC + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*
|
||||
TI-99/8 European version (PAL, 50 Hz)
|
||||
*/
|
||||
void ti99_8_state::ti99_8_50hz(machine_config& config)
|
||||
void ti99_8_state::ti99_8_50hz(machine_config &config)
|
||||
{
|
||||
ti99_8(config);
|
||||
// Video hardware
|
||||
tms9928a_device& video(TMS9129(config, TI_VDP_TAG, XTAL(10'738'635) / 2));
|
||||
video.out_int_line_callback().set(FUNC(ti99_8_state::video_interrupt));
|
||||
tms9129_device &video(TMS9129(config, TI_VDP_TAG, XTAL(10'738'635)));
|
||||
video.set_vram_size(0x4000);
|
||||
video.set_screen(TI_SCREEN_TAG);
|
||||
video.int_callback().set(FUNC(ti99_8_state::video_interrupt));
|
||||
video.set_screen("screen");
|
||||
|
||||
screen_device& screen(SCREEN(config, TI_SCREEN_TAG, SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(XTAL(10'738'635) / 2, \
|
||||
tms9928a_device::TOTAL_HORZ, \
|
||||
tms9928a_device::HORZ_DISPLAY_START-12, \
|
||||
tms9928a_device::HORZ_DISPLAY_START + 256 + 12, \
|
||||
tms9928a_device::TOTAL_VERT_PAL, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL - 12, \
|
||||
tms9928a_device::VERT_DISPLAY_START_PAL + 192 + 12 );
|
||||
screen.set_screen_update(TI_VDP_TAG, FUNC(tms9928a_device::screen_update));
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -891,10 +891,11 @@ MACHINE_CONFIG_START(tm990189_state::tm990_189_v)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(tm990189_state, tm990_189_v )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9918", TMS9918, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9918", tms9918_device, screen_update )
|
||||
tms9918_device &vdp(TMS9918(config, "tms9918", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
config.set_default_layout(layout_tm990189v);
|
||||
|
||||
/* sound hardware */
|
||||
|
@ -753,10 +753,10 @@ MACHINE_CONFIG_START(tutor_state::tutor)
|
||||
m_maincpu->set_addrmap(AS_IO, &tutor_state::tutor_io);
|
||||
|
||||
/* video hardware */
|
||||
MCFG_DEVICE_ADD( "tms9928a", TMS9928A, XTAL(10'738'635) / 2 )
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC( "screen" )
|
||||
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
|
||||
tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635)));
|
||||
vdp.set_screen("screen");
|
||||
vdp.set_vram_size(0x4000);
|
||||
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||
|
||||
/* sound */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -404,15 +404,7 @@ public:
|
||||
void hbf700p(machine_config &config);
|
||||
|
||||
void msx(machine_config &config);
|
||||
void msx_ntsc(machine_config &config);
|
||||
void msx_tms9118(machine_config &config);
|
||||
void msx_tms9128(machine_config &config);
|
||||
void msx_tms9918(machine_config &config);
|
||||
void msx_tms9918a(machine_config &config);
|
||||
void msx_tms9928(machine_config &config);
|
||||
void msx_pal(machine_config &config);
|
||||
void msx_tms9129(machine_config &config);
|
||||
void msx_tms9929(machine_config &config);
|
||||
template<typename VDPType> void msx1(VDPType &vdp_type, machine_config &config);
|
||||
void msx2(machine_config &config);
|
||||
void msx2p(machine_config &config);
|
||||
void msx2_pal(machine_config &config);
|
||||
|
Loading…
Reference in New Issue
Block a user