trunk/src/mame/drivers/uapce.c
| r29271 | r29272 | |
| 311 | 311 | } |
| 312 | 312 | |
| 313 | 313 | |
| 314 | | static const huc6260_interface pce_huc6260_config = |
| 315 | | { |
| 316 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ), |
| 317 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ), |
| 318 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ), |
| 319 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed ) |
| 320 | | }; |
| 321 | 314 | static MACHINE_CONFIG_START( uapce, uapce_state ) |
| 322 | 315 | /* basic machine hardware */ |
| 323 | 316 | MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) |
| r29271 | r29272 | |
| 335 | 328 | MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) |
| 336 | 329 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 337 | 330 | |
| 338 | | MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config ) |
| 331 | MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK ) |
| 332 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel)) |
| 333 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event)) |
| 334 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed)) |
| 335 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed)) |
| 339 | 336 | MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 ) |
| 340 | 337 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 341 | 338 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(uapce_state, pce_irq_changed)) |
trunk/src/mame/drivers/ggconnie.c
| r29271 | r29272 | |
| 197 | 197 | }; |
| 198 | 198 | |
| 199 | 199 | |
| 200 | | static const huc6260_interface sgx_huc6260_config = |
| 201 | | { |
| 202 | | DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, next_pixel ), |
| 203 | | DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, time_until_next_event ), |
| 204 | | DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, vsync_changed ), |
| 205 | | DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, hsync_changed ) |
| 206 | | }; |
| 207 | | |
| 208 | 200 | static MACHINE_CONFIG_START( ggconnie, ggconnie_state ) |
| 209 | 201 | /* basic machine hardware */ |
| 210 | 202 | MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) |
| r29271 | r29272 | |
| 217 | 209 | MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update ) |
| 218 | 210 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 219 | 211 | |
| 220 | | MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK/3, sgx_huc6260_config ) |
| 212 | MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK/3 ) |
| 213 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6202", huc6202_device, next_pixel)) |
| 214 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6202", huc6202_device, time_until_next_event)) |
| 215 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, vsync_changed)) |
| 216 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, hsync_changed)) |
| 221 | 217 | MCFG_DEVICE_ADD( "huc6270_0", HUC6270, 0 ) |
| 222 | 218 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 223 | 219 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed)) |
trunk/src/mame/drivers/paranoia.c
| r29271 | r29272 | |
| 174 | 174 | "maincpu" |
| 175 | 175 | }; |
| 176 | 176 | |
| 177 | | static const huc6260_interface pce_huc6260_config = |
| 178 | | { |
| 179 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ), |
| 180 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ), |
| 181 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ), |
| 182 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed ) |
| 183 | | }; |
| 184 | | |
| 185 | 177 | static MACHINE_CONFIG_START( paranoia, paranoia_state ) |
| 186 | 178 | /* basic machine hardware */ |
| 187 | 179 | MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) |
| r29271 | r29272 | |
| 205 | 197 | MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) |
| 206 | 198 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 207 | 199 | |
| 208 | | MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config ) |
| 200 | MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK ) |
| 201 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel)) |
| 202 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event)) |
| 203 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed)) |
| 204 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed)) |
| 209 | 205 | MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 ) |
| 210 | 206 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 211 | 207 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed)) |
trunk/src/mame/drivers/tourvis.c
| r29271 | r29272 | |
| 368 | 368 | m_maincpu->set_input_line(0, state); |
| 369 | 369 | } |
| 370 | 370 | |
| 371 | | |
| 372 | | static const huc6260_interface pce_huc6260_config = |
| 373 | | { |
| 374 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ), |
| 375 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ), |
| 376 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ), |
| 377 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed ) |
| 378 | | }; |
| 379 | | |
| 380 | 371 | static MACHINE_CONFIG_START( tourvision, tourvision_state ) |
| 381 | 372 | /* basic machine hardware */ |
| 382 | 373 | MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3) |
| r29271 | r29272 | |
| 393 | 384 | MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) |
| 394 | 385 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 395 | 386 | |
| 396 | | MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config ) |
| 387 | MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK ) |
| 388 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel)) |
| 389 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event)) |
| 390 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed)) |
| 391 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed)) |
| 397 | 392 | MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 ) |
| 398 | 393 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 399 | 394 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(tourvision_state, pce_irq_changed)) |
trunk/src/emu/video/huc6260.c
| r29271 | r29272 | |
| 43 | 43 | const device_type HUC6260 = &device_creator<huc6260_device>; |
| 44 | 44 | |
| 45 | 45 | |
| 46 | | void huc6260_device::device_config_complete() |
| 47 | | { |
| 48 | | const huc6260_interface *intf = reinterpret_cast<const huc6260_interface *>(static_config()); |
| 49 | | |
| 50 | | if ( intf != NULL ) |
| 51 | | { |
| 52 | | *static_cast<huc6260_interface *>(this) = *intf; |
| 53 | | } |
| 54 | | else |
| 55 | | { |
| 56 | | memset(&m_get_next_pixel_data, 0, sizeof(m_get_next_pixel_data)); |
| 57 | | memset(&m_get_time_til_next_event, 0, sizeof(m_get_time_til_next_event)); |
| 58 | | memset(&m_hsync_changed, 0, sizeof(m_hsync_changed)); |
| 59 | | memset(&m_vsync_changed, 0, sizeof(m_vsync_changed)); |
| 60 | | } |
| 61 | | } |
| 62 | | |
| 63 | | |
| 64 | 46 | huc6260_device::huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 65 | 47 | : device_t(mconfig, HUC6260, "HuC6260 VCE", tag, owner, clock, "huc6260", __FILE__), |
| 66 | | device_video_interface(mconfig, *this) |
| 48 | device_video_interface(mconfig, *this), |
| 49 | m_next_pixel_data_cb(*this), |
| 50 | m_time_til_next_event_cb(*this), |
| 51 | m_vsync_changed_cb(*this), |
| 52 | m_hsync_changed_cb(*this) |
| 67 | 53 | { |
| 68 | 54 | } |
| 69 | 55 | |
| r29271 | r29272 | |
| 82 | 68 | { |
| 83 | 69 | g_profiler.start( PROFILER_VIDEO ); |
| 84 | 70 | /* Get next pixel information */ |
| 85 | | m_pixel_data = m_get_next_pixel_data( 0, 0xffff ); |
| 71 | m_pixel_data = m_next_pixel_data_cb( 0, 0xffff ); |
| 86 | 72 | g_profiler.stop(); |
| 87 | 73 | if ( m_greyscales ) |
| 88 | 74 | { |
| r29271 | r29272 | |
| 97 | 83 | switch( h ) |
| 98 | 84 | { |
| 99 | 85 | case HUC6260_HSYNC_START: /* Start of HSync */ |
| 100 | | m_hsync_changed( 0 ); |
| 86 | m_hsync_changed_cb( 0 ); |
| 101 | 87 | // if ( v == 0 ) |
| 102 | 88 | // { |
| 103 | 89 | // /* Check if the screen should be resized */ |
| r29271 | r29272 | |
| 118 | 104 | break; |
| 119 | 105 | |
| 120 | 106 | case 0: /* End of HSync */ |
| 121 | | m_hsync_changed( 1 ); |
| 107 | m_hsync_changed_cb( 1 ); |
| 122 | 108 | m_pixel_clock = 0; |
| 123 | 109 | v = ( v + 1 ) % m_height; |
| 124 | 110 | bitmap_line = &m_bmp->pix16(v); |
| r29271 | r29272 | |
| 127 | 113 | case HUC6260_HSYNC_START + 30: /* End/Start of VSync */ |
| 128 | 114 | if ( v>= m_height - 4 ) |
| 129 | 115 | { |
| 130 | | m_vsync_changed( ( v >= m_height - 4 && v < m_height - 1 ) ? 0 : 1 ); |
| 116 | m_vsync_changed_cb( ( v >= m_height - 4 && v < m_height - 1 ) ? 0 : 1 ); |
| 131 | 117 | } |
| 132 | 118 | break; |
| 133 | 119 | } |
| r29271 | r29272 | |
| 158 | 144 | |
| 159 | 145 | /* Ask our slave device for time until next possible event */ |
| 160 | 146 | { |
| 161 | | UINT16 next_event_clocks = m_get_time_til_next_event( 0, 0xffff ); |
| 147 | UINT16 next_event_clocks = m_time_til_next_event_cb( 0, 0xffff ); |
| 162 | 148 | int event_hpos, event_vpos; |
| 163 | 149 | |
| 164 | 150 | /* Adjust for pixel clocks per pixel */ |
| r29271 | r29272 | |
| 255 | 241 | m_bmp = auto_bitmap_ind16_alloc( machine(), HUC6260_WPF, HUC6260_LPF ); |
| 256 | 242 | |
| 257 | 243 | /* Resolve callbacks */ |
| 258 | | m_hsync_changed.resolve( hsync_changed, *this ); |
| 259 | | m_vsync_changed.resolve( vsync_changed, *this ); |
| 260 | | m_get_next_pixel_data.resolve( get_next_pixel_data, *this ); |
| 261 | | m_get_time_til_next_event.resolve( get_time_til_next_event, *this ); |
| 244 | m_hsync_changed_cb.resolve(); |
| 245 | m_vsync_changed_cb.resolve(); |
| 246 | m_next_pixel_data_cb.resolve(); |
| 247 | m_time_til_next_event_cb.resolve(); |
| 262 | 248 | |
| 263 | 249 | /* We want to have a valid screen and valid callbacks */ |
| 264 | | assert( ! m_hsync_changed.isnull() ); |
| 265 | | assert( ! m_vsync_changed.isnull() ); |
| 266 | | assert( ! m_get_next_pixel_data.isnull() ); |
| 267 | | assert( ! m_get_time_til_next_event.isnull() ); |
| 250 | assert( ! m_hsync_changed_cb.isnull() ); |
| 251 | assert( ! m_vsync_changed_cb.isnull() ); |
| 252 | assert( ! m_next_pixel_data_cb.isnull() ); |
| 253 | assert( ! m_time_til_next_event_cb.isnull() ); |
| 268 | 254 | |
| 269 | 255 | save_item(NAME(m_last_h)); |
| 270 | 256 | save_item(NAME(m_last_v)); |
trunk/src/emu/video/huc6260.h
| r29271 | r29272 | |
| 18 | 18 | #define HUC6260_LPF 263 /* max number of lines in a single frame */ |
| 19 | 19 | |
| 20 | 20 | |
| 21 | | #define MCFG_HUC6260_ADD( _tag, clock, _intrf ) \ |
| 22 | | MCFG_DEVICE_ADD( _tag, HUC6260, clock ) \ |
| 23 | | MCFG_DEVICE_CONFIG( _intrf ) |
| 21 | #define MCFG_HUC6260_NEXT_PIXEL_DATA_CB(_devcb) \ |
| 22 | devcb = &huc6260_device::set_next_pixel_data_callback(*device, DEVCB2_##_devcb); |
| 23 | |
| 24 | #define MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(_devcb) \ |
| 25 | devcb = &huc6260_device::set_time_til_next_event_callback(*device, DEVCB2_##_devcb); |
| 26 | |
| 27 | #define MCFG_HUC6260_VSYNC_CHANGED_CB(_devcb) \ |
| 28 | devcb = &huc6260_device::set_vsync_changed_callback(*device, DEVCB2_##_devcb); |
| 29 | |
| 30 | #define MCFG_HUC6260_HSYNC_CHANGED_CB(_devcb) \ |
| 31 | devcb = &huc6260_device::set_hsync_changed_callback(*device, DEVCB2_##_devcb); |
| 32 | |
| 24 | 33 | |
| 25 | | |
| 26 | | struct huc6260_interface |
| 27 | | { |
| 28 | | /* Callback function to retrieve pixel data */ |
| 29 | | devcb_read16 get_next_pixel_data; |
| 30 | | |
| 31 | | /* TODO: Choose proper types */ |
| 32 | | /* Callback function to get time until next event */ |
| 33 | | devcb_read16 get_time_til_next_event; |
| 34 | | |
| 35 | | /* Callback function which gets called when vsync changes */ |
| 36 | | devcb_write_line vsync_changed; |
| 37 | | |
| 38 | | /* Callback function which gets called when hsync changes */ |
| 39 | | devcb_write_line hsync_changed; |
| 40 | | }; |
| 41 | | |
| 42 | | |
| 43 | 34 | class huc6260_device : public device_t, |
| 44 | | public device_video_interface, |
| 45 | | public huc6260_interface |
| 35 | public device_video_interface |
| 46 | 36 | { |
| 47 | 37 | public: |
| 48 | 38 | // construction/destruction |
| 49 | 39 | huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 50 | 40 | |
| 41 | template<class _Object> static devcb2_base &set_next_pixel_data_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_next_pixel_data_cb.set_callback(object); } |
| 42 | template<class _Object> static devcb2_base &set_time_til_next_event_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_time_til_next_event_cb.set_callback(object); } |
| 43 | template<class _Object> static devcb2_base &set_vsync_changed_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_vsync_changed_cb.set_callback(object); } |
| 44 | template<class _Object> static devcb2_base &set_hsync_changed_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_hsync_changed_cb.set_callback(object); } |
| 45 | |
| 51 | 46 | void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 52 | 47 | DECLARE_READ8_MEMBER( read ); |
| 53 | 48 | DECLARE_WRITE8_MEMBER( write ); |
| r29271 | r29272 | |
| 55 | 50 | |
| 56 | 51 | protected: |
| 57 | 52 | // device-level overrides |
| 58 | | virtual void device_config_complete(); |
| 59 | 53 | virtual void device_start(); |
| 60 | 54 | virtual void device_reset(); |
| 61 | 55 | virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); |
| r29271 | r29272 | |
| 67 | 61 | int m_height; |
| 68 | 62 | |
| 69 | 63 | /* callbacks */ |
| 70 | | devcb_resolved_read16 m_get_next_pixel_data; |
| 71 | | devcb_resolved_read16 m_get_time_til_next_event; |
| 72 | | devcb_resolved_write_line m_hsync_changed; |
| 73 | | devcb_resolved_write_line m_vsync_changed; |
| 64 | /* Callback function to retrieve pixel data */ |
| 65 | devcb2_read16 m_next_pixel_data_cb; |
| 74 | 66 | |
| 67 | /* TODO: Choose proper types */ |
| 68 | /* Callback function to get time until next event */ |
| 69 | devcb2_read16 m_time_til_next_event_cb; |
| 70 | |
| 71 | /* Callback function which gets called when vsync changes */ |
| 72 | devcb2_write_line m_vsync_changed_cb; |
| 73 | |
| 74 | /* Callback function which gets called when hsync changes */ |
| 75 | devcb2_write_line m_hsync_changed_cb; |
| 76 | |
| 75 | 77 | UINT16 m_palette[512]; |
| 76 | 78 | UINT16 m_address; |
| 77 | 79 | UINT8 m_greyscales; /* Should the HuC6260 output grey or color graphics */ |
trunk/src/mess/drivers/pce.c
| r29271 | r29272 | |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | 304 | |
| 305 | | static const huc6260_interface pce_huc6260_config = |
| 306 | | { |
| 307 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ), |
| 308 | | DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ), |
| 309 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ), |
| 310 | | DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed ) |
| 311 | | }; |
| 312 | | |
| 313 | | |
| 314 | 305 | static const huc6202_interface sgx_huc6202_config = |
| 315 | 306 | { |
| 316 | 307 | DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, next_pixel ), |
| r29271 | r29272 | |
| 328 | 319 | }; |
| 329 | 320 | |
| 330 | 321 | |
| 331 | | static const huc6260_interface sgx_huc6260_config = |
| 332 | | { |
| 333 | | DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, next_pixel ), |
| 334 | | DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, time_until_next_event ), |
| 335 | | DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, vsync_changed ), |
| 336 | | DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, hsync_changed ) |
| 337 | | }; |
| 338 | | |
| 339 | | |
| 340 | 322 | static SLOT_INTERFACE_START(pce_cart) |
| 341 | 323 | SLOT_INTERFACE_INTERNAL("rom", PCE_ROM_STD) |
| 342 | 324 | SLOT_INTERFACE_INTERNAL("cdsys3u", PCE_ROM_CDSYS3) |
| r29271 | r29272 | |
| 361 | 343 | MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update ) |
| 362 | 344 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 363 | 345 | |
| 364 | | MCFG_HUC6260_ADD( "huc6260", MAIN_CLOCK, pce_huc6260_config ) |
| 346 | MCFG_DEVICE_ADD( "huc6260", HUC6260, MAIN_CLOCK ) |
| 347 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel)) |
| 348 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event)) |
| 349 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed)) |
| 350 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed)) |
| 365 | 351 | MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 ) |
| 366 | 352 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 367 | 353 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_state, pce_irq_changed)) |
| r29271 | r29272 | |
| 406 | 392 | MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update ) |
| 407 | 393 | MCFG_SCREEN_PALETTE("huc6260:palette") |
| 408 | 394 | |
| 409 | | MCFG_HUC6260_ADD( "huc6260", MAIN_CLOCK, sgx_huc6260_config ) |
| 395 | MCFG_DEVICE_ADD( "huc6260", HUC6260, MAIN_CLOCK ) |
| 396 | MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6202", huc6202_device, next_pixel)) |
| 397 | MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6202", huc6202_device, time_until_next_event)) |
| 398 | MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, vsync_changed)) |
| 399 | MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, hsync_changed)) |
| 410 | 400 | MCFG_DEVICE_ADD( "huc6270_0", HUC6270, 0 ) |
| 411 | 401 | MCFG_HUC6270_VRAM_SIZE(0x10000) |
| 412 | 402 | MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_state, pce_irq_changed)) |