mirror of
https://github.com/holub/mame
synced 2025-07-06 18:39:28 +03:00
video/psx.cpp: Eliminate register_postload; separate out screen device (nw)
This commit is contained in:
parent
a24d2275d3
commit
1f7ff8fd9a
@ -37,6 +37,8 @@ void psxgpu_device::device_start()
|
|||||||
{
|
{
|
||||||
m_vblank_handler.resolve_safe();
|
m_vblank_handler.resolve_safe();
|
||||||
|
|
||||||
|
screen().register_vblank_callback(vblank_state_delegate(&psxgpu_device::vblank, this));
|
||||||
|
|
||||||
for( int n_colour = 0; n_colour < 0x10000; n_colour++ )
|
for( int n_colour = 0; n_colour < 0x10000; n_colour++ )
|
||||||
{
|
{
|
||||||
set_pen_color( n_colour, pal555(n_colour,0, 5, 10) );
|
set_pen_color( n_colour, pal555(n_colour,0, 5, 10) );
|
||||||
@ -608,8 +610,11 @@ void psxgpu_device::psx_gpu_init( int n_gputype )
|
|||||||
save_item(NAME(n_ix));
|
save_item(NAME(n_ix));
|
||||||
save_item(NAME(n_iy));
|
save_item(NAME(n_iy));
|
||||||
save_item(NAME(n_ti));
|
save_item(NAME(n_ti));
|
||||||
|
}
|
||||||
|
|
||||||
machine().save().register_postload( save_prepost_delegate( FUNC( psxgpu_device::updatevisiblearea ), this ) );
|
void psxgpu_device::device_post_load()
|
||||||
|
{
|
||||||
|
updatevisiblearea();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t psxgpu_device::update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
uint32_t psxgpu_device::update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||||
@ -3884,15 +3889,24 @@ void psxgpu_device::lightgun_set( int n_x, int n_y )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// device_add_mconfig - add device configuration
|
// device_config_complete - perform any
|
||||||
|
// operations now that the configuration is
|
||||||
|
// complete
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
MACHINE_CONFIG_START(psxgpu_device::device_add_mconfig)
|
void psxgpu_device::device_config_complete()
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
{
|
||||||
MCFG_SCREEN_REFRESH_RATE( 60 )
|
if (!has_screen())
|
||||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
|
return;
|
||||||
MCFG_SCREEN_SIZE( 1024, 1024 )
|
|
||||||
MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
|
if (!screen().refresh_attoseconds())
|
||||||
MCFG_SCREEN_UPDATE_DEVICE( DEVICE_SELF, psxgpu_device, update_screen )
|
{
|
||||||
((screen_device *)device)->register_vblank_callback(vblank_state_delegate(&psxgpu_device::vblank, this));
|
screen().set_refresh_hz(60);
|
||||||
MACHINE_CONFIG_END
|
screen().set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
|
||||||
|
screen().set_size(1024, 1024);
|
||||||
|
screen().set_visarea(0, 639, 0, 479);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!screen().has_screen_update())
|
||||||
|
screen().set_screen_update(screen_update_rgb32_delegate(FUNC(psxgpu_device::update_screen), this));
|
||||||
|
}
|
||||||
|
@ -38,9 +38,6 @@
|
|||||||
MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \
|
MCFG_PSX_DMA_CHANNEL_READ( cputag, 2, psxdma_device::write_delegate(&psxgpu_device::dma_read, (psxgpu_device *) device ) ) \
|
||||||
MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) )
|
MCFG_PSX_DMA_CHANNEL_WRITE( cputag, 2, psxdma_device::read_delegate(&psxgpu_device::dma_write, (psxgpu_device *) device ) )
|
||||||
|
|
||||||
#define MCFG_PSXGPU_VBLANK_CALLBACK( _delegate ) \
|
|
||||||
((screen_device *) config.device_find( device, "screen" ))->register_vblank_callback( _delegate );
|
|
||||||
|
|
||||||
DECLARE_DEVICE_TYPE(CXD8514Q, cxd8514q_device)
|
DECLARE_DEVICE_TYPE(CXD8514Q, cxd8514q_device)
|
||||||
DECLARE_DEVICE_TYPE(CXD8538Q, cxd8538q_device)
|
DECLARE_DEVICE_TYPE(CXD8538Q, cxd8538q_device)
|
||||||
DECLARE_DEVICE_TYPE(CXD8561Q, cxd8561q_device)
|
DECLARE_DEVICE_TYPE(CXD8561Q, cxd8561q_device)
|
||||||
@ -53,6 +50,7 @@ class psxgpu_device : public device_t, public device_video_interface, public dev
|
|||||||
public:
|
public:
|
||||||
// configuration helpers
|
// configuration helpers
|
||||||
template <class Object> devcb_base &set_vblank_handler(Object &&cb) { return m_vblank_handler.set_callback(std::forward<Object>(cb)); }
|
template <class Object> devcb_base &set_vblank_handler(Object &&cb) { return m_vblank_handler.set_callback(std::forward<Object>(cb)); }
|
||||||
|
auto vblank_callback() { return m_vblank_handler.bind(); }
|
||||||
void set_vram_size(int size) { vramSize = size; }
|
void set_vram_size(int size) { vramSize = size; }
|
||||||
|
|
||||||
DECLARE_WRITE32_MEMBER( write );
|
DECLARE_WRITE32_MEMBER( write );
|
||||||
@ -73,8 +71,9 @@ protected:
|
|||||||
psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
psxgpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
virtual void device_start() override;
|
virtual void device_start() override;
|
||||||
|
virtual void device_post_load() override;
|
||||||
virtual void device_reset() override;
|
virtual void device_reset() override;
|
||||||
virtual void device_add_mconfig(machine_config &config) override;
|
virtual void device_config_complete() override;
|
||||||
|
|
||||||
// device_palette_interface overrides
|
// device_palette_interface overrides
|
||||||
virtual uint32_t palette_entries() const override { return 32*32*32*2; }
|
virtual uint32_t palette_entries() const override { return 32*32*32*2; }
|
||||||
|
@ -81,6 +81,7 @@
|
|||||||
#include "sound/k054539.h"
|
#include "sound/k054539.h"
|
||||||
#include "sound/k056800.h"
|
#include "sound/k056800.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
|
|
||||||
@ -362,6 +363,9 @@ MACHINE_CONFIG_START(konamigq_state::konamigq)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD("maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175))
|
MCFG_PSXGPU_ADD("maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175))
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -135,6 +135,7 @@ Notes:
|
|||||||
#include "sound/cdda.h"
|
#include "sound/cdda.h"
|
||||||
#include "sound/spu.h"
|
#include "sound/spu.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
#include "cdrom.h"
|
#include "cdrom.h"
|
||||||
|
|
||||||
@ -376,6 +377,9 @@ MACHINE_CONFIG_START(konamigv_state::konamigv)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8514Q, 0x100000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8514Q, 0x100000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -523,7 +523,7 @@ private:
|
|||||||
|
|
||||||
void cdrom_dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
void cdrom_dma_read( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
||||||
void cdrom_dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
void cdrom_dma_write( uint32_t *ram, uint32_t n_address, int32_t n_size );
|
||||||
void sys573_vblank( screen_device &screen, bool vblank_state );
|
DECLARE_WRITE_LINE_MEMBER( sys573_vblank );
|
||||||
|
|
||||||
void punchmania_cassette_install(device_t *device);
|
void punchmania_cassette_install(device_t *device);
|
||||||
void salarymc_cassette_install(device_t *device);
|
void salarymc_cassette_install(device_t *device);
|
||||||
@ -823,7 +823,7 @@ MACHINE_RESET_MEMBER( ksys573_state,konami573 )
|
|||||||
m_h8_clk = 0;
|
m_h8_clk = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ksys573_state::sys573_vblank( screen_device &screen, bool vblank_state )
|
WRITE_LINE_MEMBER(ksys573_state::sys573_vblank)
|
||||||
{
|
{
|
||||||
update_disc();
|
update_disc();
|
||||||
|
|
||||||
@ -2128,7 +2128,9 @@ MACHINE_CONFIG_START(ksys573_state::konami573)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||||
MCFG_PSXGPU_VBLANK_CALLBACK(vblank_state_delegate(&ksys573_state::sys573_vblank, this ))
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(ksys573_state::sys573_vblank));
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -398,6 +398,7 @@ earlier TK games, so it appears to be optional or is only used by the later TK51
|
|||||||
#include "cpu/psx/psx.h"
|
#include "cpu/psx/psx.h"
|
||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
|
|
||||||
@ -938,6 +939,9 @@ MACHINE_CONFIG_START(namcos10_state::namcos10_memm)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
@ -962,6 +966,9 @@ MACHINE_CONFIG_START(namcos10_state::namcos10_memn)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -304,6 +304,7 @@ Pin 22 Solder Side - Gun 2 Trigger
|
|||||||
#include "machine/timer.h"
|
#include "machine/timer.h"
|
||||||
#include "sound/c352.h"
|
#include "sound/c352.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
#define C76_SPEEDUP ( 1 ) /* sound cpu idle skipping */
|
#define C76_SPEEDUP ( 1 ) /* sound cpu idle skipping */
|
||||||
@ -623,6 +624,9 @@ MACHINE_CONFIG_START(namcos11_state::coh110)
|
|||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_adc", namcos11_state, mcu_adc_cb, attotime::from_hz(60))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("mcu_adc", namcos11_state, mcu_adc_cb, attotime::from_hz(60))
|
||||||
|
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
SPEAKER(config, "rspeaker").front_right();
|
SPEAKER(config, "rspeaker").front_right();
|
||||||
@ -644,6 +648,7 @@ MACHINE_CONFIG_START(namcos11_state::coh100)
|
|||||||
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
subdevice<ram_device>("maincpu:ram")->set_default_size("4M");
|
||||||
|
|
||||||
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8538Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
MACHINE_CONFIG_START(namcos11_state::tekken)
|
MACHINE_CONFIG_START(namcos11_state::tekken)
|
||||||
|
@ -1207,7 +1207,7 @@ private:
|
|||||||
|
|
||||||
inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... );
|
inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... );
|
||||||
void namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
void namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
||||||
void namcos12_sub_irq( screen_device &screen, bool vblank_state );
|
DECLARE_WRITE_LINE_MEMBER(namcos12_sub_irq);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1347,11 +1347,11 @@ void namcos12_state::namcos12_rom_read( uint32_t *p_n_psxram, uint32_t n_address
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void namcos12_state::namcos12_sub_irq( screen_device &screen, bool vblank_state )
|
WRITE_LINE_MEMBER(namcos12_state::namcos12_sub_irq)
|
||||||
{
|
{
|
||||||
m_sub->set_input_line(1, vblank_state ? ASSERT_LINE : CLEAR_LINE);
|
m_sub->set_input_line(1, state ? ASSERT_LINE : CLEAR_LINE);
|
||||||
m_adc->adtrg_w(vblank_state);
|
m_adc->adtrg_w(state);
|
||||||
m_sub_portb = (m_sub_portb & 0x7f) | (vblank_state << 7);
|
m_sub_portb = (m_sub_portb & 0x7f) | (state << 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
void namcos12_state::namcos12_map(address_map &map)
|
void namcos12_state::namcos12_map(address_map &map)
|
||||||
@ -1768,7 +1768,9 @@ MACHINE_CONFIG_START(namcos12_state::coh700)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||||
MCFG_PSXGPU_VBLANK_CALLBACK(vblank_state_delegate(&namcos12_state::namcos12_sub_irq, this ) )
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(namcos12_state::namcos12_sub_irq));
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
// CPU PCB COH716
|
// CPU PCB COH716
|
||||||
@ -1784,7 +1786,9 @@ MACHINE_CONFIG_START(namcos12_state::coh716)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x400000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x400000, XTAL(53'693'175) )
|
||||||
MCFG_PSXGPU_VBLANK_CALLBACK(vblank_state_delegate(&namcos12_state::namcos12_sub_irq, this ) )
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER).screen_vblank().set(FUNC(namcos12_state::namcos12_sub_irq));
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
MACHINE_CONFIG_START(namcos12_boothack_state::ptblank2)
|
MACHINE_CONFIG_START(namcos12_boothack_state::ptblank2)
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
|
||||||
#include "debugger.h"
|
#include "debugger.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "softlist.h"
|
#include "softlist.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
@ -536,6 +537,9 @@ MACHINE_CONFIG_START(psx1_state::psj)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
@ -587,6 +591,9 @@ MACHINE_CONFIG_START(psx1_state::pse)
|
|||||||
/* video hardware */
|
/* video hardware */
|
||||||
/* TODO: visible area and refresh rate */
|
/* TODO: visible area and refresh rate */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -344,6 +344,7 @@ Type 3 (PCMCIA Compact Flash Adaptor + Compact Flash card, sealed together with
|
|||||||
#include "machine/znmcu.h"
|
#include "machine/znmcu.h"
|
||||||
#include "sound/spu.h"
|
#include "sound/spu.h"
|
||||||
#include "video/psx.h"
|
#include "video/psx.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@ -735,6 +736,9 @@ MACHINE_CONFIG_START(taitogn_state::coh3002t)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
|
@ -245,6 +245,7 @@ Notes:
|
|||||||
#include "sound/spu.h"
|
#include "sound/spu.h"
|
||||||
#include "sound/cdda.h"
|
#include "sound/cdda.h"
|
||||||
#include "sound/rf5c400.h"
|
#include "sound/rf5c400.h"
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
#include "bmiidx.lh"
|
#include "bmiidx.lh"
|
||||||
@ -1122,6 +1123,9 @@ MACHINE_CONFIG_START(twinkle_state::twinkle)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN("screen")
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "speakerleft").front_left();
|
SPEAKER(config, "speakerleft").front_left();
|
||||||
|
@ -52,7 +52,7 @@ public:
|
|||||||
zn_state(const machine_config &mconfig, device_type type, const char *tag) :
|
zn_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||||
driver_device(mconfig, type, tag),
|
driver_device(mconfig, type, tag),
|
||||||
m_gpu(*this, "gpu"),
|
m_gpu(*this, "gpu"),
|
||||||
m_gpu_screen(*this, "gpu:screen"),
|
m_gpu_screen(*this, "screen"),
|
||||||
m_sio0(*this, "maincpu:sio0"),
|
m_sio0(*this, "maincpu:sio0"),
|
||||||
m_cat702(*this, "cat702_%u", 1),
|
m_cat702(*this, "cat702_%u", 1),
|
||||||
m_znmcu(*this, "znmcu"),
|
m_znmcu(*this, "znmcu"),
|
||||||
@ -172,7 +172,7 @@ private:
|
|||||||
INTERRUPT_GEN_MEMBER(qsound_interrupt);
|
INTERRUPT_GEN_MEMBER(qsound_interrupt);
|
||||||
void atpsx_dma_read(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
void atpsx_dma_read(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
||||||
void atpsx_dma_write(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
void atpsx_dma_write(uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
|
||||||
void jdredd_vblank(screen_device &screen, bool vblank_state);
|
DECLARE_WRITE_LINE_MEMBER(jdredd_vblank);
|
||||||
|
|
||||||
void atlus_snd_map(address_map &map);
|
void atlus_snd_map(address_map &map);
|
||||||
void bam2_map(address_map &map);
|
void bam2_map(address_map &map);
|
||||||
@ -407,6 +407,9 @@ MACHINE_CONFIG_START(zn_state::zn1_1mb_vram)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||||
|
|
||||||
|
SCREEN(config, m_gpu_screen, SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
@ -424,6 +427,7 @@ MACHINE_CONFIG_END
|
|||||||
MACHINE_CONFIG_START(zn_state::zn1_2mb_vram)
|
MACHINE_CONFIG_START(zn_state::zn1_2mb_vram)
|
||||||
zn1_1mb_vram(config);
|
zn1_1mb_vram(config);
|
||||||
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_REPLACE( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
MACHINE_CONFIG_START(zn_state::zn2)
|
MACHINE_CONFIG_START(zn_state::zn2)
|
||||||
@ -453,6 +457,9 @@ MACHINE_CONFIG_START(zn_state::zn2)
|
|||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL(53'693'175) )
|
||||||
|
MCFG_VIDEO_SET_SCREEN(m_gpu_screen)
|
||||||
|
|
||||||
|
SCREEN(config, m_gpu_screen, SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
@ -2023,12 +2030,12 @@ CUSTOM_INPUT_MEMBER(zn_state::jdredd_gun_mux_read)
|
|||||||
return m_jdredd_gun_mux;
|
return m_jdredd_gun_mux;
|
||||||
}
|
}
|
||||||
|
|
||||||
void zn_state::jdredd_vblank(screen_device &screen, bool vblank_state)
|
WRITE_LINE_MEMBER(zn_state::jdredd_vblank)
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
|
|
||||||
if( vblank_state )
|
if (state)
|
||||||
{
|
{
|
||||||
m_jdredd_gun_mux = !m_jdredd_gun_mux;
|
m_jdredd_gun_mux = !m_jdredd_gun_mux;
|
||||||
|
|
||||||
@ -2214,8 +2221,7 @@ MACHINE_CONFIG_START(zn_state::jdredd)
|
|||||||
MCFG_DEVICE_MODIFY("maincpu")
|
MCFG_DEVICE_MODIFY("maincpu")
|
||||||
MCFG_DEVICE_PROGRAM_MAP(jdredd_map)
|
MCFG_DEVICE_PROGRAM_MAP(jdredd_map)
|
||||||
|
|
||||||
MCFG_DEVICE_MODIFY("gpu")
|
m_gpu_screen->screen_vblank().set(FUNC(zn_state::jdredd_vblank));
|
||||||
MCFG_PSXGPU_VBLANK_CALLBACK(vblank_state_delegate(&zn_state::jdredd_vblank, this))
|
|
||||||
|
|
||||||
ata_interface_device &ata(ATA_INTERFACE(config, "ata").options(ata_devices, "hdd", nullptr, true));
|
ata_interface_device &ata(ATA_INTERFACE(config, "ata").options(ata_devices, "hdd", nullptr, true));
|
||||||
ata.irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
ata.irq_handler().set("maincpu:irq", FUNC(psxirq_device::intin10));
|
||||||
|
Loading…
Reference in New Issue
Block a user