trunk/src/emu/video/315_5124.c
| r241993 | r241994 | |
| 160 | 160 | , m_int_cb(*this) |
| 161 | 161 | , m_pause_cb(*this) |
| 162 | 162 | , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124)) |
| 163 | | , m_draws_bitmap(1) |
| 164 | 163 | , m_palette(*this, "palette") |
| 165 | 164 | , m_xscroll_hpos(X_SCROLL_HPOS_5124) |
| 166 | 165 | { |
| r241993 | r241994 | |
| 178 | 177 | , m_int_cb(*this) |
| 179 | 178 | , m_pause_cb(*this) |
| 180 | 179 | , m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124)) |
| 181 | | , m_draws_bitmap(1) |
| 182 | 180 | , m_palette(*this, "palette") |
| 183 | 181 | , m_xscroll_hpos(xscroll_hpos) |
| 184 | 182 | { |
| r241993 | r241994 | |
| 1755 | 1753 | |
| 1756 | 1754 | UINT32 sega315_5124_device::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect ) |
| 1757 | 1755 | { |
| 1758 | | if (m_draws_bitmap) copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect); |
| 1756 | copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect); |
| 1759 | 1757 | return 0; |
| 1760 | 1758 | } |
| 1761 | 1759 | |
trunk/src/emu/video/315_5124.h
| r241993 | r241994 | |
| 42 | 42 | |
| 43 | 43 | #define VRAM_SIZE 0x4000 |
| 44 | 44 | |
| 45 | | #define MCFG_SEGA315_5124_SET_MANUAL_MIX \ |
| 46 | | sega315_5124_device::set_draws_bitmap(*device, 0); |
| 47 | 45 | |
| 48 | | |
| 49 | 46 | /*************************************************************************** |
| 50 | 47 | TYPE DEFINITIONS |
| 51 | 48 | ***************************************************************************/ |
| r241993 | r241994 | |
| 66 | 63 | |
| 67 | 64 | static void set_signal_type(device_t &device, bool is_pal) { downcast<sega315_5124_device &>(device).m_is_pal = is_pal; } |
| 68 | 65 | |
| 69 | | // allow manual mixing |
| 70 | | static void set_draws_bitmap(device_t &device, int draws_bitmap) |
| 71 | | { |
| 72 | | sega315_5124_device &dev = downcast<sega315_5124_device &>(device); |
| 73 | | dev.m_draws_bitmap = draws_bitmap; |
| 74 | | } |
| 75 | 66 | |
| 67 | |
| 76 | 68 | template<class _Object> static devcb_base &set_int_callback(device_t &device, _Object object) { return downcast<sega315_5124_device &>(device).m_int_cb.set_callback(object); } |
| 77 | 69 | template<class _Object> static devcb_base &set_pause_callback(device_t &device, _Object object) { return downcast<sega315_5124_device &>(device).m_pause_cb.set_callback(object); } |
| 78 | 70 | |
| r241993 | r241994 | |
| 190 | 182 | static const device_timer_id TIMER_NMI = 6; |
| 191 | 183 | static const device_timer_id TIMER_FLAGS = 7; |
| 192 | 184 | |
| 193 | | int m_draws_bitmap; |
| 194 | | |
| 195 | 185 | required_device<palette_device> m_palette; |
| 196 | 186 | const int m_xscroll_hpos; |
| 197 | 187 | }; |
trunk/src/mame/drivers/megaplay.c
| r241993 | r241994 | |
| 617 | 617 | { |
| 618 | 618 | //printf("megplay vu\n"); |
| 619 | 619 | screen_update_megadriv(screen, bitmap, cliprect); |
| 620 | | m_vdp1->screen_update(screen, bitmap, cliprect); |
| 620 | //m_vdp1->screen_update(screen, bitmap, cliprect); |
| 621 | 621 | |
| 622 | 622 | // i'm not sure if the overlay (256 pixels wide) is meant to be stretched over the 320 resolution genesis output, or centered. |
| 623 | 623 | // if it's meant to be stretched we'll have to multiply the entire outut x4 for the Genesis VDP and x5 for the SMS VDP to get a common 1280 pixel wide image |
| r241993 | r241994 | |
| 685 | 685 | MCFG_SEGA315_5246_SET_SCREEN("megadriv") |
| 686 | 686 | MCFG_SEGA315_5246_IS_PAL(false) |
| 687 | 687 | MCFG_SEGA315_5246_INT_CB(WRITELINE(mplay_state, bios_int_callback)) |
| 688 | | MCFG_SEGA315_5124_SET_MANUAL_MIX |
| 689 | | |
| 690 | 688 | MACHINE_CONFIG_END |
| 691 | 689 | |
| 692 | 690 | |