trunk/src/mame/drivers/m107.c
| r245354 | r245355 | |
| 43 | 43 | |
| 44 | 44 | void m107_state::machine_start() |
| 45 | 45 | { |
| 46 | | // TODO: state save registrations |
| 46 | save_item(NAME(m_sound_status)); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | /*****************************************************************************/ |
| 50 | 50 | |
| 51 | | TIMER_DEVICE_CALLBACK_MEMBER(m107_state::m107_scanline_interrupt) |
| 51 | TIMER_DEVICE_CALLBACK_MEMBER(m107_state::scanline_interrupt) |
| 52 | 52 | { |
| 53 | 53 | int scanline = param; |
| 54 | 54 | |
| r245354 | r245355 | |
| 69 | 69 | |
| 70 | 70 | /*****************************************************************************/ |
| 71 | 71 | |
| 72 | | WRITE16_MEMBER(m107_state::m107_coincounter_w) |
| 72 | WRITE16_MEMBER(m107_state::coincounter_w) |
| 73 | 73 | { |
| 74 | 74 | if (ACCESSING_BITS_0_7) |
| 75 | 75 | { |
| r245354 | r245355 | |
| 78 | 78 | } |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | | WRITE16_MEMBER(m107_state::m107_bankswitch_w) |
| 81 | WRITE16_MEMBER(m107_state::bankswitch_w) |
| 82 | 82 | { |
| 83 | 83 | if (ACCESSING_BITS_0_7) |
| 84 | 84 | { |
| r245354 | r245355 | |
| 88 | 88 | } |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | | WRITE16_MEMBER(m107_state::m107_soundlatch_w) |
| 91 | WRITE16_MEMBER(m107_state::soundlatch_w) |
| 92 | 92 | { |
| 93 | 93 | m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, ASSERT_LINE); |
| 94 | 94 | soundlatch_byte_w(space, 0, data & 0xff); |
| 95 | 95 | // logerror("soundlatch_byte_w %02x\n",data); |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | | READ16_MEMBER(m107_state::m107_sound_status_r) |
| 98 | READ16_MEMBER(m107_state::sound_status_r) |
| 99 | 99 | { |
| 100 | 100 | return m_sound_status; |
| 101 | 101 | } |
| 102 | 102 | |
| 103 | | READ16_MEMBER(m107_state::m107_soundlatch_r) |
| 103 | READ16_MEMBER(m107_state::soundlatch_r) |
| 104 | 104 | { |
| 105 | 105 | m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, CLEAR_LINE); |
| 106 | 106 | return soundlatch_byte_r(space, offset) | 0xff00; |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | | WRITE16_MEMBER(m107_state::m107_sound_irq_ack_w) |
| 109 | WRITE16_MEMBER(m107_state::sound_irq_ack_w) |
| 110 | 110 | { |
| 111 | 111 | m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, CLEAR_LINE); |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | | WRITE16_MEMBER(m107_state::m107_sound_status_w) |
| 114 | WRITE16_MEMBER(m107_state::sound_status_w) |
| 115 | 115 | { |
| 116 | 116 | COMBINE_DATA(&m_sound_status); |
| 117 | 117 | m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_3); |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | | WRITE16_MEMBER(m107_state::m107_sound_reset_w) |
| 120 | WRITE16_MEMBER(m107_state::sound_reset_w) |
| 121 | 121 | { |
| 122 | 122 | m_soundcpu->set_input_line(INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE); |
| 123 | 123 | } |
| r245354 | r245355 | |
| 127 | 127 | static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, m107_state ) |
| 128 | 128 | AM_RANGE(0x00000, 0x9ffff) AM_ROM |
| 129 | 129 | AM_RANGE(0xa0000, 0xbffff) AM_ROMBANK("bank1") |
| 130 | | AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(m107_vram_w) AM_SHARE("vram_data") |
| 130 | AM_RANGE(0xd0000, 0xdffff) AM_RAM_WRITE(vram_w) AM_SHARE("vram_data") |
| 131 | 131 | AM_RANGE(0xe0000, 0xeffff) AM_RAM /* System ram */ |
| 132 | 132 | AM_RANGE(0xf8000, 0xf8fff) AM_RAM AM_SHARE("spriteram") |
| 133 | 133 | AM_RANGE(0xf9000, 0xf9fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| r245354 | r245355 | |
| 139 | 139 | AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3") |
| 140 | 140 | AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW") |
| 141 | 141 | AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4") |
| 142 | | AM_RANGE(0x08, 0x09) AM_READ(m107_sound_status_r) /* answer from sound CPU */ |
| 143 | | AM_RANGE(0x00, 0x01) AM_WRITE(m107_soundlatch_w) |
| 144 | | AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w) |
| 142 | AM_RANGE(0x08, 0x09) AM_READ(sound_status_r) /* answer from sound CPU */ |
| 143 | AM_RANGE(0x00, 0x01) AM_WRITE(soundlatch_w) |
| 144 | AM_RANGE(0x02, 0x03) AM_WRITE(coincounter_w) |
| 145 | 145 | AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */ |
| 146 | | AM_RANGE(0x80, 0x9f) AM_WRITE(m107_control_w) |
| 146 | AM_RANGE(0x80, 0x9f) AM_WRITE(control_w) |
| 147 | 147 | AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */ |
| 148 | | AM_RANGE(0xb0, 0xb1) AM_WRITE(m107_spritebuffer_w) |
| 148 | AM_RANGE(0xb0, 0xb1) AM_WRITE(spritebuffer_w) |
| 149 | 149 | AM_RANGE(0xc0, 0xc3) AM_READNOP /* Only wpksoc: ticket related? */ |
| 150 | | AM_RANGE(0xc0, 0xc1) AM_WRITE(m107_sound_reset_w) |
| 150 | AM_RANGE(0xc0, 0xc1) AM_WRITE(sound_reset_w) |
| 151 | 151 | ADDRESS_MAP_END |
| 152 | 152 | |
| 153 | 153 | /* same as M107 but with an extra i/o board */ |
| r245354 | r245355 | |
| 182 | 182 | AM_RANGE(0xa0000, 0xa3fff) AM_RAM |
| 183 | 183 | AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8("irem", iremga20_device, irem_ga20_r, irem_ga20_w, 0x00ff) |
| 184 | 184 | AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff) |
| 185 | | AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(m107_soundlatch_r, m107_sound_irq_ack_w) |
| 186 | | AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m107_sound_status_w) |
| 185 | AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(soundlatch_r, sound_irq_ack_w) |
| 186 | AM_RANGE(0xa8046, 0xa8047) AM_WRITE(sound_status_w) |
| 187 | 187 | AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("soundcpu", 0x1fff0) |
| 188 | 188 | ADDRESS_MAP_END |
| 189 | 189 | |
| r245354 | r245355 | |
| 765 | 765 | MCFG_V25_CONFIG(rtypeleo_decryption_table) |
| 766 | 766 | |
| 767 | 767 | |
| 768 | | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m107_state, m107_scanline_interrupt, "screen", 0, 1) |
| 768 | MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m107_state, scanline_interrupt, "screen", 0, 1) |
| 769 | 769 | |
| 770 | 770 | /* video hardware */ |
| 771 | 771 | MCFG_SCREEN_ADD("screen", RASTER) |
| r245354 | r245355 | |
| 773 | 773 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
| 774 | 774 | MCFG_SCREEN_SIZE(512, 256) |
| 775 | 775 | MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ |
| 776 | | MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107) |
| 776 | MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update) |
| 777 | 777 | MCFG_SCREEN_PALETTE("palette") |
| 778 | 778 | |
| 779 | 779 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", firebarr) |
| r245354 | r245355 | |
| 996 | 996 | UINT8 *ROM = memregion("maincpu")->base(); |
| 997 | 997 | |
| 998 | 998 | membank("bank1")->configure_entries(0, 4, &ROM[0x80000], 0x20000); |
| 999 | | m_maincpu->space(AS_IO).install_write_handler(0x06, 0x07, write16_delegate(FUNC(m107_state::m107_bankswitch_w),this)); |
| 999 | m_maincpu->space(AS_IO).install_write_handler(0x06, 0x07, write16_delegate(FUNC(m107_state::bankswitch_w),this)); |
| 1000 | 1000 | |
| 1001 | 1001 | m_irq_vectorbase = 0x80; |
| 1002 | 1002 | m_spritesystem = 0; |
| r245354 | r245355 | |
| 1010 | 1010 | |
| 1011 | 1011 | /***************************************************************************/ |
| 1012 | 1012 | |
| 1013 | | GAME( 1993, airass, 0, airass, firebarr, m107_state, firebarr, ROT270, "Irem", "Air Assault (World)", GAME_NO_COCKTAIL ) // possible location test, but sound code is newer than Japan version |
| 1014 | | GAME( 1993, firebarr, airass, firebarr, firebarr, m107_state, firebarr, ROT270, "Irem", "Fire Barrel (Japan)", GAME_NO_COCKTAIL ) |
| 1013 | GAME( 1993, airass, 0, airass, firebarr, m107_state, firebarr, ROT270, "Irem", "Air Assault (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // possible location test, but sound code is newer than Japan version |
| 1014 | GAME( 1993, firebarr, airass, firebarr, firebarr, m107_state, firebarr, ROT270, "Irem", "Fire Barrel (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 1015 | 1015 | |
| 1016 | | GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (World, M107 hardware)", GAME_NO_COCKTAIL ) |
| 1016 | GAME( 1994, dsoccr94, 0, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (World, M107 hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| 1017 | 1017 | |
| 1018 | | GAME( 1995, wpksoc, 0, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "World PK Soccer", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL ) |
| 1019 | | GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL ) |
| 1018 | GAME( 1995, wpksoc, 0, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "World PK Soccer", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL | GAME_SUPPORTS_SAVE ) |
| 1019 | GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL | GAME_SUPPORTS_SAVE ) |
trunk/src/mame/includes/m107.h
| r245354 | r245355 | |
| 9 | 9 | { |
| 10 | 10 | tilemap_t * tmap; |
| 11 | 11 | UINT16 vram_base; |
| 12 | | UINT16 control[4]; |
| 13 | 12 | }; |
| 14 | 13 | |
| 15 | 14 | class m107_state : public driver_device |
| r245354 | r245355 | |
| 17 | 16 | public: |
| 18 | 17 | m107_state(const machine_config &mconfig, device_type type, const char *tag) |
| 19 | 18 | : driver_device(mconfig, type, tag), |
| 20 | | m_spriteram(*this, "spriteram"), |
| 21 | | m_vram_data(*this, "vram_data"), |
| 22 | 19 | m_maincpu(*this, "maincpu"), |
| 23 | 20 | m_soundcpu(*this, "soundcpu"), |
| 24 | 21 | m_gfxdecode(*this, "gfxdecode"), |
| 25 | 22 | m_screen(*this, "screen"), |
| 26 | | m_palette(*this, "palette") { } |
| 23 | m_palette(*this, "palette"), |
| 24 | m_spriteram(*this, "spriteram"), |
| 25 | m_vram_data(*this, "vram_data") { } |
| 27 | 26 | |
| 28 | | required_shared_ptr<UINT16> m_spriteram; |
| 29 | | required_shared_ptr<UINT16> m_vram_data; |
| 30 | 27 | required_device<cpu_device> m_maincpu; |
| 31 | 28 | required_device<cpu_device> m_soundcpu; |
| 32 | 29 | required_device<gfxdecode_device> m_gfxdecode; |
| 33 | 30 | required_device<screen_device> m_screen; |
| 34 | 31 | required_device<palette_device> m_palette; |
| 35 | 32 | |
| 33 | required_shared_ptr<UINT16> m_spriteram; |
| 34 | required_shared_ptr<UINT16> m_vram_data; |
| 35 | |
| 36 | // driver init |
| 36 | 37 | UINT8 m_irq_vectorbase; |
| 38 | UINT8 m_spritesystem; |
| 39 | |
| 37 | 40 | int m_sound_status; |
| 38 | | UINT8 m_spritesystem; |
| 39 | 41 | UINT8 m_sprite_display; |
| 40 | 42 | UINT16 m_raster_irq_position; |
| 41 | 43 | pf_layer_info m_pf_layer[4]; |
| 42 | 44 | UINT16 m_control[0x10]; |
| 43 | 45 | UINT16 *m_buffered_spriteram; |
| 44 | | DECLARE_WRITE16_MEMBER(m107_coincounter_w); |
| 45 | | DECLARE_WRITE16_MEMBER(m107_bankswitch_w); |
| 46 | | DECLARE_WRITE16_MEMBER(m107_soundlatch_w); |
| 47 | | DECLARE_READ16_MEMBER(m107_sound_status_r); |
| 48 | | DECLARE_READ16_MEMBER(m107_soundlatch_r); |
| 49 | | DECLARE_WRITE16_MEMBER(m107_sound_irq_ack_w); |
| 50 | | DECLARE_WRITE16_MEMBER(m107_sound_status_w); |
| 51 | | DECLARE_WRITE16_MEMBER(m107_sound_reset_w); |
| 46 | |
| 47 | DECLARE_WRITE16_MEMBER(coincounter_w); |
| 48 | DECLARE_WRITE16_MEMBER(bankswitch_w); |
| 49 | DECLARE_WRITE16_MEMBER(soundlatch_w); |
| 50 | DECLARE_READ16_MEMBER(sound_status_r); |
| 51 | DECLARE_READ16_MEMBER(soundlatch_r); |
| 52 | DECLARE_WRITE16_MEMBER(sound_irq_ack_w); |
| 53 | DECLARE_WRITE16_MEMBER(sound_status_w); |
| 54 | DECLARE_WRITE16_MEMBER(sound_reset_w); |
| 52 | 55 | DECLARE_WRITE16_MEMBER(wpksoc_output_w); |
| 53 | | DECLARE_WRITE16_MEMBER(m107_vram_w); |
| 54 | | DECLARE_WRITE16_MEMBER(m107_control_w); |
| 55 | | DECLARE_WRITE16_MEMBER(m107_spritebuffer_w); |
| 56 | DECLARE_WRITE16_MEMBER(vram_w); |
| 57 | DECLARE_WRITE16_MEMBER(control_w); |
| 58 | DECLARE_WRITE16_MEMBER(spritebuffer_w); |
| 59 | |
| 60 | TILE_GET_INFO_MEMBER(get_pf_tile_info); |
| 61 | |
| 62 | TIMER_DEVICE_CALLBACK_MEMBER(scanline_interrupt); |
| 63 | |
| 56 | 64 | DECLARE_DRIVER_INIT(firebarr); |
| 57 | 65 | DECLARE_DRIVER_INIT(dsoccr94); |
| 58 | 66 | DECLARE_DRIVER_INIT(wpksoc); |
| 59 | | TILE_GET_INFO_MEMBER(get_pf_tile_info); |
| 60 | 67 | virtual void machine_start(); |
| 61 | 68 | virtual void video_start(); |
| 62 | | UINT32 screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 63 | | TIMER_DEVICE_CALLBACK_MEMBER(m107_scanline_interrupt); |
| 69 | |
| 70 | UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 64 | 71 | void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 65 | | void m107_update_scroll_positions(); |
| 66 | | void m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque); |
| 67 | | void m107_screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 72 | void update_scroll_positions(); |
| 73 | void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque); |
| 74 | void screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 68 | 75 | }; |
trunk/src/mame/video/m107.c
| r245354 | r245355 | |
| 62 | 62 | |
| 63 | 63 | /*****************************************************************************/ |
| 64 | 64 | |
| 65 | | WRITE16_MEMBER(m107_state::m107_vram_w) |
| 65 | WRITE16_MEMBER(m107_state::vram_w) |
| 66 | 66 | { |
| 67 | 67 | int laynum; |
| 68 | 68 | |
| r245354 | r245355 | |
| 74 | 74 | |
| 75 | 75 | /*****************************************************************************/ |
| 76 | 76 | |
| 77 | | WRITE16_MEMBER(m107_state::m107_control_w) |
| 77 | WRITE16_MEMBER(m107_state::control_w) |
| 78 | 78 | { |
| 79 | 79 | UINT16 old = m_control[offset]; |
| 80 | 80 | pf_layer_info *layer; |
| r245354 | r245355 | |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | 143 | m_buffered_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2); |
| 144 | |
| 145 | save_item(NAME(m_sprite_display)); |
| 146 | save_item(NAME(m_raster_irq_position)); |
| 147 | save_item(NAME(m_control)); |
| 148 | save_pointer(NAME(m_buffered_spriteram), 0x1000/2); |
| 149 | |
| 150 | for (int i = 0; i < 4; i++) |
| 151 | { |
| 152 | save_item(NAME(m_pf_layer[i].vram_base), i); |
| 153 | } |
| 144 | 154 | } |
| 145 | 155 | |
| 146 | 156 | /*****************************************************************************/ |
| r245354 | r245355 | |
| 267 | 277 | |
| 268 | 278 | /*****************************************************************************/ |
| 269 | 279 | |
| 270 | | void m107_state::m107_update_scroll_positions() |
| 280 | void m107_state::update_scroll_positions() |
| 271 | 281 | { |
| 272 | 282 | int laynum; |
| 273 | 283 | int i; |
| r245354 | r245355 | |
| 306 | 316 | |
| 307 | 317 | /*****************************************************************************/ |
| 308 | 318 | |
| 309 | | void m107_state::m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque) |
| 319 | void m107_state::tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int laynum, int category,int opaque) |
| 310 | 320 | { |
| 311 | 321 | int line; |
| 312 | 322 | rectangle clip; |
| r245354 | r245355 | |
| 331 | 341 | } |
| 332 | 342 | |
| 333 | 343 | |
| 334 | | void m107_state::m107_screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 344 | void m107_state::screenrefresh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 335 | 345 | { |
| 336 | 346 | screen.priority().fill(0, cliprect); |
| 337 | 347 | |
| 338 | 348 | if ((~m_control[0x0b] >> 7) & 1) |
| 339 | 349 | { |
| 340 | | m107_tilemap_draw(screen, bitmap, cliprect, 3, 0,0); |
| 341 | | m107_tilemap_draw(screen, bitmap, cliprect, 3, 1,0); |
| 350 | tilemap_draw(screen, bitmap, cliprect, 3, 0,0); |
| 351 | tilemap_draw(screen, bitmap, cliprect, 3, 1,0); |
| 342 | 352 | } |
| 343 | 353 | else |
| 344 | 354 | bitmap.fill(0, cliprect); |
| 345 | 355 | |
| 346 | 356 | /* note: the opaque flag is used if layer 3 is disabled, noticeable in World PK Soccer title and gameplay screens */ |
| 347 | | m107_tilemap_draw(screen, bitmap, cliprect, 2, 0,(((m_control[0x0b] >> 7) & 1) ? TILEMAP_DRAW_OPAQUE : 0)); |
| 348 | | m107_tilemap_draw(screen, bitmap, cliprect, 1, 0,0); |
| 349 | | m107_tilemap_draw(screen, bitmap, cliprect, 0, 0,0); |
| 350 | | m107_tilemap_draw(screen, bitmap, cliprect, 2, 1,0); |
| 351 | | m107_tilemap_draw(screen, bitmap, cliprect, 1, 1,0); |
| 352 | | m107_tilemap_draw(screen, bitmap, cliprect, 0, 1,0); |
| 357 | tilemap_draw(screen, bitmap, cliprect, 2, 0,(((m_control[0x0b] >> 7) & 1) ? TILEMAP_DRAW_OPAQUE : 0)); |
| 358 | tilemap_draw(screen, bitmap, cliprect, 1, 0,0); |
| 359 | tilemap_draw(screen, bitmap, cliprect, 0, 0,0); |
| 360 | tilemap_draw(screen, bitmap, cliprect, 2, 1,0); |
| 361 | tilemap_draw(screen, bitmap, cliprect, 1, 1,0); |
| 362 | tilemap_draw(screen, bitmap, cliprect, 0, 1,0); |
| 353 | 363 | |
| 354 | 364 | if(m_sprite_display) |
| 355 | 365 | draw_sprites(screen, bitmap, cliprect); |
| r245354 | r245355 | |
| 360 | 370 | |
| 361 | 371 | /*****************************************************************************/ |
| 362 | 372 | |
| 363 | | WRITE16_MEMBER(m107_state::m107_spritebuffer_w) |
| 373 | WRITE16_MEMBER(m107_state::spritebuffer_w) |
| 364 | 374 | { |
| 365 | 375 | if (ACCESSING_BITS_0_7) { |
| 366 | 376 | /* |
| r245354 | r245355 | |
| 375 | 385 | |
| 376 | 386 | /*****************************************************************************/ |
| 377 | 387 | |
| 378 | | UINT32 m107_state::screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 388 | UINT32 m107_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 379 | 389 | { |
| 380 | | m107_update_scroll_positions(); |
| 381 | | m107_screenrefresh(screen, bitmap, cliprect); |
| 390 | update_scroll_positions(); |
| 391 | screenrefresh(screen, bitmap, cliprect); |
| 382 | 392 | return 0; |
| 383 | 393 | } |