trunk/src/mame/drivers/ms32.c
| r26841 | r26842 | |
| 254 | 254 | |
| 255 | 255 | READ8_MEMBER(ms32_state::ms32_priram_r8) |
| 256 | 256 | { |
| 257 | | return m_priram_8[offset]; |
| 257 | return m_priram[offset]; |
| 258 | 258 | } |
| 259 | 259 | |
| 260 | 260 | WRITE8_MEMBER(ms32_state::ms32_priram_w8) |
| 261 | 261 | { |
| 262 | | m_priram_8[offset] = data; |
| 262 | m_priram[offset] = data; |
| 263 | 263 | } |
| 264 | 264 | |
| 265 | 265 | READ16_MEMBER(ms32_state::ms32_palram_r16) |
| 266 | 266 | { |
| 267 | | return m_palram_16[offset]; |
| 267 | return m_palram[offset]; |
| 268 | 268 | } |
| 269 | 269 | |
| 270 | 270 | WRITE16_MEMBER(ms32_state::ms32_palram_w16) |
| 271 | 271 | { |
| 272 | | COMBINE_DATA(&m_palram_16[offset]); |
| 272 | COMBINE_DATA(&m_palram[offset]); |
| 273 | 273 | } |
| 274 | 274 | |
| 275 | 275 | READ16_MEMBER(ms32_state::ms32_rozram_r16) |
| 276 | 276 | { |
| 277 | | return m_rozram_16[offset]; |
| 277 | return m_rozram[offset]; |
| 278 | 278 | } |
| 279 | 279 | |
| 280 | 280 | WRITE16_MEMBER(ms32_state::ms32_rozram_w16) |
| 281 | 281 | { |
| 282 | | COMBINE_DATA(&m_rozram_16[offset]); |
| 282 | COMBINE_DATA(&m_rozram[offset]); |
| 283 | 283 | m_roz_tilemap->mark_tile_dirty(offset/2); |
| 284 | 284 | } |
| 285 | 285 | |
| 286 | 286 | READ16_MEMBER(ms32_state::ms32_lineram_r16) |
| 287 | 287 | { |
| 288 | | return m_lineram_16[offset]; |
| 288 | return m_lineram[offset]; |
| 289 | 289 | } |
| 290 | 290 | |
| 291 | 291 | WRITE16_MEMBER(ms32_state::ms32_lineram_w16) |
| 292 | 292 | { |
| 293 | | COMBINE_DATA(&m_lineram_16[offset]); |
| 293 | COMBINE_DATA(&m_lineram[offset]); |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | 296 | READ16_MEMBER(ms32_state::ms32_sprram_r16) |
| 297 | 297 | { |
| 298 | | return m_sprram_16[offset]; |
| 298 | return m_sprram[offset]; |
| 299 | 299 | } |
| 300 | 300 | |
| 301 | 301 | WRITE16_MEMBER(ms32_state::ms32_sprram_w16) |
| 302 | 302 | { |
| 303 | | COMBINE_DATA(&m_sprram_16[offset]); |
| 303 | COMBINE_DATA(&m_sprram[offset]); |
| 304 | 304 | } |
| 305 | 305 | |
| 306 | 306 | READ16_MEMBER(ms32_state::ms32_txram_r16) |
| 307 | 307 | { |
| 308 | | return m_txram_16[offset]; |
| 308 | return m_txram[offset]; |
| 309 | 309 | } |
| 310 | 310 | |
| 311 | 311 | WRITE16_MEMBER(ms32_state::ms32_txram_w16) |
| 312 | 312 | { |
| 313 | | COMBINE_DATA(&m_txram_16[offset]); |
| 313 | COMBINE_DATA(&m_txram[offset]); |
| 314 | 314 | m_tx_tilemap->mark_tile_dirty(offset/2); |
| 315 | 315 | } |
| 316 | 316 | |
| 317 | 317 | READ16_MEMBER(ms32_state::ms32_bgram_r16) |
| 318 | 318 | { |
| 319 | | return m_bgram_16[offset]; |
| 319 | return m_bgram[offset]; |
| 320 | 320 | } |
| 321 | 321 | |
| 322 | 322 | WRITE16_MEMBER(ms32_state::ms32_bgram_w16) |
| 323 | 323 | { |
| 324 | | COMBINE_DATA(&m_bgram_16[offset]); |
| 324 | COMBINE_DATA(&m_bgram[offset]); |
| 325 | 325 | m_bg_tilemap->mark_tile_dirty(offset/2); |
| 326 | 326 | m_bg_tilemap_alt->mark_tile_dirty(offset/2); |
| 327 | 327 | } |
| r26841 | r26842 | |
| 339 | 339 | /* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */ |
| 340 | 340 | AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8(ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */ |
| 341 | 341 | /* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */ |
| 342 | | AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8(ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) /* priram is 8-bit wide, 0x2000 in size */ |
| 342 | AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8(ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) AM_SHARE("priram") /* priram is 8-bit wide, 0x2000 in size */ |
| 343 | 343 | /* AM_RANGE(0xc1188000, 0xc11bffff) // mirrors of priram, handled above */ |
| 344 | | AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* palram is 16-bit wide, 0x20000 in size */ |
| 344 | AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) AM_SHARE("palram") /* palram is 16-bit wide, 0x20000 in size */ |
| 345 | 345 | /* AM_RANGE(0xc1440000, 0xc145ffff) // mirrors of palram, handled above */ |
| 346 | | AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) /* rozram is 16-bit wide, 0x10000 in size */ |
| 346 | AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) AM_SHARE("rozram") /* rozram is 16-bit wide, 0x10000 in size */ |
| 347 | 347 | /* AM_RANGE(0xc2020000, 0xc21fffff) // mirrors of rozram, handled above */ |
| 348 | | AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) /* lineram is 16-bit wide, 0x1000 in size */ |
| 348 | AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) AM_SHARE("lineram") /* lineram is 16-bit wide, 0x1000 in size */ |
| 349 | 349 | /* AM_RANGE(0xc2202000, 0xc23fffff) // mirrors of lineram, handled above */ |
| 350 | | AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* spriteram is 16-bit wide, 0x20000 in size */ |
| 350 | AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) AM_SHARE("sprram") /* spriteram is 16-bit wide, 0x20000 in size */ |
| 351 | 351 | /* AM_RANGE(0xc2840000, 0xc29fffff) // mirrors of sprram, handled above */ |
| 352 | | AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* txram is 16-bit wide, 0x4000 in size */ |
| 353 | | AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* bgram is 16-bit wide, 0x4000 in size */ |
| 352 | AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) AM_SHARE("txram") /* txram is 16-bit wide, 0x4000 in size */ |
| 353 | AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) AM_SHARE("bgram") /* bgram is 16-bit wide, 0x4000 in size */ |
| 354 | 354 | /* AM_RANGE(0xc2c10000, 0xc2dfffff) // mirrors of txram / bg, handled above */ |
| 355 | 355 | AM_RANGE(0xc2e00000, 0xc2e1ffff) AM_RAM AM_SHARE("mainram") AM_MIRROR(0x3c0e0000) /* mainram is 32-bit wide, 0x20000 in size */ |
| 356 | 356 | AM_RANGE(0xc3e00000, 0xc3ffffff) AM_ROMBANK("bank1") AM_MIRROR(0x3c000000) // ROM is 32-bit wide, 0x200000 in size */ |
| r26841 | r26842 | |
| 381 | 381 | |
| 382 | 382 | WRITE16_MEMBER(ms32_state::ms32_extra_w16) |
| 383 | 383 | { |
| 384 | | COMBINE_DATA(&m_f1superb_extraram_16[offset]); |
| 384 | COMBINE_DATA(&m_f1superb_extraram[offset]); |
| 385 | 385 | m_extra_tilemap->mark_tile_dirty(offset/2); |
| 386 | 386 | } |
| 387 | 387 | READ16_MEMBER(ms32_state::ms32_extra_r16) |
| 388 | 388 | { |
| 389 | | return m_f1superb_extraram_16[offset]; |
| 389 | return m_f1superb_extraram[offset]; |
| 390 | 390 | } |
| 391 | 391 | |
| 392 | 392 | WRITE32_MEMBER(ms32_state::ms32_irq2_guess_w) |
| r26841 | r26842 | |
| 417 | 417 | AM_RANGE(0xfd140000, 0xfd143fff) AM_RAM // used when you start enabling fpu ints |
| 418 | 418 | AM_RANGE(0xfd144000, 0xfd145fff) AM_RAM // same data here |
| 419 | 419 | |
| 420 | | AM_RANGE(0xfdc00000, 0xfdc007ff) AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) // definitely line ram |
| 420 | AM_RANGE(0xfdc00000, 0xfdc007ff) AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) AM_SHARE("f1sb_extraram") // definitely line ram |
| 421 | 421 | AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM // scroll info for lineram? |
| 422 | 422 | |
| 423 | 423 | AM_IMPORT_FROM(ms32_map) |
trunk/src/mame/includes/ms32.h
| r26841 | r26842 | |
| 8 | 8 | m_tx_scroll(*this, "tx_scroll"), |
| 9 | 9 | m_bg_scroll(*this, "bg_scroll"), |
| 10 | 10 | m_mahjong_input_select(*this, "mahjong_select"), |
| 11 | m_priram(*this, "priram", 32), |
| 12 | m_palram(*this, "palram", 32), |
| 13 | m_rozram(*this, "rozram", 32), |
| 14 | m_lineram(*this, "lineram", 32), |
| 15 | m_sprram(*this, "sprram", 32), |
| 16 | m_txram(*this, "txram", 32), |
| 17 | m_bgram(*this, "bgram", 32), |
| 18 | m_f1superb_extraram(*this, "f1sb_extraram", 32), |
| 11 | 19 | m_maincpu(*this, "maincpu"), |
| 12 | 20 | m_audiocpu(*this, "audiocpu") { } |
| 13 | 21 | |
| r26841 | r26842 | |
| 16 | 24 | required_shared_ptr<UINT32> m_tx_scroll; |
| 17 | 25 | required_shared_ptr<UINT32> m_bg_scroll; |
| 18 | 26 | required_shared_ptr<UINT32> m_mahjong_input_select; |
| 27 | required_shared_ptr<UINT8> m_priram; |
| 28 | required_shared_ptr<UINT16> m_palram; |
| 29 | required_shared_ptr<UINT16> m_rozram; |
| 30 | required_shared_ptr<UINT16> m_lineram; |
| 31 | required_shared_ptr<UINT16> m_sprram; |
| 32 | required_shared_ptr<UINT16> m_txram; |
| 33 | required_shared_ptr<UINT16> m_bgram; |
| 34 | optional_shared_ptr<UINT16> m_f1superb_extraram; |
| 19 | 35 | UINT8 *m_nvram_8; |
| 20 | 36 | UINT32 m_to_main; |
| 21 | 37 | UINT16 m_irqreq; |
| r26841 | r26842 | |
| 23 | 39 | tilemap_t *m_roz_tilemap; |
| 24 | 40 | tilemap_t *m_bg_tilemap; |
| 25 | 41 | tilemap_t *m_bg_tilemap_alt; |
| 26 | | UINT8* m_priram_8; |
| 27 | | UINT16* m_palram_16; |
| 28 | | UINT16* m_rozram_16; |
| 29 | | UINT16* m_lineram_16; |
| 30 | | UINT16* m_sprram_16; |
| 31 | | UINT16* m_txram_16; |
| 32 | | UINT16* m_bgram_16; |
| 33 | 42 | UINT32 m_tilemaplayoutcontrol; |
| 34 | | UINT16* m_f1superb_extraram_16; |
| 35 | 43 | tilemap_t* m_extra_tilemap; |
| 36 | 44 | bitmap_ind16 m_temp_bitmap_tilemaps; |
| 37 | 45 | bitmap_ind16 m_temp_bitmap_sprites; |
trunk/src/mame/video/ms32.c
| r26841 | r26842 | |
| 24 | 24 | { |
| 25 | 25 | int tileno, colour; |
| 26 | 26 | |
| 27 | | tileno = m_txram_16[tile_index *2] & 0xffff; |
| 28 | | colour = m_txram_16[tile_index *2+1] & 0x000f; |
| 27 | tileno = m_txram[tile_index *2] & 0xffff; |
| 28 | colour = m_txram[tile_index *2+1] & 0x000f; |
| 29 | 29 | |
| 30 | 30 | SET_TILE_INFO_MEMBER(3,tileno,colour,0); |
| 31 | 31 | } |
| r26841 | r26842 | |
| 34 | 34 | { |
| 35 | 35 | int tileno,colour; |
| 36 | 36 | |
| 37 | | tileno = m_rozram_16[tile_index *2] & 0xffff; |
| 38 | | colour = m_rozram_16[tile_index *2+1] & 0x000f; |
| 37 | tileno = m_rozram[tile_index *2] & 0xffff; |
| 38 | colour = m_rozram[tile_index *2+1] & 0x000f; |
| 39 | 39 | |
| 40 | 40 | SET_TILE_INFO_MEMBER(1,tileno,colour,0); |
| 41 | 41 | } |
| r26841 | r26842 | |
| 44 | 44 | { |
| 45 | 45 | int tileno,colour; |
| 46 | 46 | |
| 47 | | tileno = m_bgram_16[tile_index *2] & 0xffff; |
| 48 | | colour = m_bgram_16[tile_index *2+1] & 0x000f; |
| 47 | tileno = m_bgram[tile_index *2] & 0xffff; |
| 48 | colour = m_bgram[tile_index *2+1] & 0x000f; |
| 49 | 49 | |
| 50 | 50 | SET_TILE_INFO_MEMBER(2,tileno,colour,0); |
| 51 | 51 | } |
| r26841 | r26842 | |
| 54 | 54 | { |
| 55 | 55 | int tileno,colour; |
| 56 | 56 | |
| 57 | | tileno = m_f1superb_extraram_16[tile_index *2] & 0xffff; |
| 58 | | colour = m_f1superb_extraram_16[tile_index *2+1] & 0x000f; |
| 57 | tileno = m_f1superb_extraram[tile_index *2] & 0xffff; |
| 58 | colour = m_f1superb_extraram[tile_index *2+1] & 0x000f; |
| 59 | 59 | |
| 60 | 60 | SET_TILE_INFO_MEMBER(4,tileno,colour+0x50,0); |
| 61 | 61 | } |
| r26841 | r26842 | |
| 64 | 64 | |
| 65 | 65 | void ms32_state::video_start() |
| 66 | 66 | { |
| 67 | | m_priram_8 = auto_alloc_array_clear(machine(), UINT8, 0x2000); |
| 68 | | m_palram_16 = auto_alloc_array_clear(machine(), UINT16, 0x20000); |
| 69 | | m_rozram_16 = auto_alloc_array_clear(machine(), UINT16, 0x10000); |
| 70 | | m_lineram_16 = auto_alloc_array_clear(machine(), UINT16, 0x1000); |
| 71 | | m_sprram_16 = auto_alloc_array_clear(machine(), UINT16, 0x20000); |
| 72 | | m_bgram_16 = auto_alloc_array_clear(machine(), UINT16, 0x4000); |
| 73 | | m_txram_16 = auto_alloc_array_clear(machine(), UINT16, 0x4000); |
| 74 | | |
| 75 | 67 | m_tx_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_tx_tile_info),this),TILEMAP_SCAN_ROWS,8, 8,64,64); |
| 76 | 68 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,64); |
| 77 | 69 | m_bg_tilemap_alt = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),this),TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register? |
| r26841 | r26842 | |
| 105 | 97 | |
| 106 | 98 | // tp2m32 doesn't set the brightness registers so we need sensible defaults |
| 107 | 99 | m_brt[0] = m_brt[1] = 0xffff; |
| 100 | |
| 101 | save_item(NAME(m_irqreq)); |
| 102 | save_item(NAME(m_temp_bitmap_tilemaps)); |
| 103 | save_item(NAME(m_temp_bitmap_sprites)); |
| 104 | save_item(NAME(m_temp_bitmap_sprites_pri)); |
| 105 | save_item(NAME(m_tilemaplayoutcontrol)); |
| 106 | save_item(NAME(m_reverse_sprite_order)); |
| 107 | save_item(NAME(m_flipscreen)); |
| 108 | save_item(NAME(m_brt)); |
| 109 | save_item(NAME(m_brt_r)); |
| 110 | save_item(NAME(m_brt_g)); |
| 111 | save_item(NAME(m_brt_b)); |
| 108 | 112 | } |
| 109 | 113 | |
| 110 | 114 | VIDEO_START_MEMBER(ms32_state,f1superb) |
| 111 | 115 | { |
| 112 | 116 | ms32_state::video_start(); |
| 113 | 117 | |
| 114 | | m_f1superb_extraram_16 = auto_alloc_array_clear(machine(), UINT16, 0x10000); |
| 115 | 118 | m_extra_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_extra_tile_info),this),TILEMAP_SCAN_ROWS,2048,1,1,0x400); |
| 116 | | |
| 117 | 119 | } |
| 118 | 120 | |
| 119 | 121 | /********** PALETTE WRITES **********/ |
| r26841 | r26842 | |
| 129 | 131 | */ |
| 130 | 132 | if (~color & 0x4000) |
| 131 | 133 | { |
| 132 | | r = ((m_palram_16[color*2] & 0xff00) >>8 ) * m_brt_r / 0x100; |
| 133 | | g = ((m_palram_16[color*2] & 0x00ff) >>0 ) * m_brt_g / 0x100; |
| 134 | | b = ((m_palram_16[color*2+1] & 0x00ff) >>0 ) * m_brt_b / 0x100; |
| 134 | r = ((m_palram[color*2] & 0xff00) >>8 ) * m_brt_r / 0x100; |
| 135 | g = ((m_palram[color*2] & 0x00ff) >>0 ) * m_brt_g / 0x100; |
| 136 | b = ((m_palram[color*2+1] & 0x00ff) >>0 ) * m_brt_b / 0x100; |
| 135 | 137 | } |
| 136 | 138 | else |
| 137 | 139 | { |
| 138 | | r = ((m_palram_16[color*2] & 0xff00) >>8 ); |
| 139 | | g = ((m_palram_16[color*2] & 0x00ff) >>0 ); |
| 140 | | b = ((m_palram_16[color*2+1] & 0x00ff) >>0 ); |
| 140 | r = ((m_palram[color*2] & 0xff00) >>8 ); |
| 141 | g = ((m_palram[color*2] & 0x00ff) >>0 ); |
| 142 | b = ((m_palram[color*2+1] & 0x00ff) >>0 ); |
| 141 | 143 | } |
| 142 | 144 | |
| 143 | 145 | palette_set_color(machine(),color,MAKE_RGB(r,g,b)); |
| r26841 | r26842 | |
| 280 | 282 | |
| 281 | 283 | while (y <= maxy) |
| 282 | 284 | { |
| 283 | | UINT16 *lineaddr = m_lineram_16 + 8 * (y & 0xff); |
| 285 | UINT16 *lineaddr = m_lineram + 8 * (y & 0xff); |
| 284 | 286 | |
| 285 | 287 | int start2x = (lineaddr[0x00/4] & 0xffff) | ((lineaddr[0x04/4] & 3) << 16); |
| 286 | 288 | int start2y = (lineaddr[0x08/4] & 0xffff) | ((lineaddr[0x0c/4] & 3) << 16); |
| r26841 | r26842 | |
| 390 | 392 | m_temp_bitmap_sprites.fill(0, cliprect); |
| 391 | 393 | m_temp_bitmap_sprites_pri.fill(0, cliprect); |
| 392 | 394 | |
| 393 | | draw_sprites(m_temp_bitmap_sprites, m_temp_bitmap_sprites_pri, cliprect, m_sprram_16, 0x20000, 0, m_reverse_sprite_order); |
| 395 | draw_sprites(m_temp_bitmap_sprites, m_temp_bitmap_sprites_pri, cliprect, m_sprram, 0x20000, 0, m_reverse_sprite_order); |
| 394 | 396 | |
| 395 | 397 | |
| 396 | 398 | |
| 397 | 399 | |
| 398 | 400 | asc_pri = scr_pri = rot_pri = 0; |
| 399 | 401 | |
| 400 | | if((m_priram_8[0x2b00 / 2] & 0x00ff) == 0x0034) |
| 402 | if((m_priram[0x2b00 / 2] & 0x00ff) == 0x0034) |
| 401 | 403 | asc_pri++; |
| 402 | 404 | else |
| 403 | 405 | rot_pri++; |
| 404 | 406 | |
| 405 | | if((m_priram_8[0x2e00 / 2] & 0x00ff) == 0x0034) |
| 407 | if((m_priram[0x2e00 / 2] & 0x00ff) == 0x0034) |
| 406 | 408 | asc_pri++; |
| 407 | 409 | else |
| 408 | 410 | scr_pri++; |
| 409 | 411 | |
| 410 | | if((m_priram_8[0x3a00 / 2] & 0x00ff) == 0x000c) |
| 412 | if((m_priram[0x3a00 / 2] & 0x00ff) == 0x000c) |
| 411 | 413 | scr_pri++; |
| 412 | 414 | else |
| 413 | 415 | rot_pri++; |
| r26841 | r26842 | |
| 491 | 493 | int primask = 0; |
| 492 | 494 | |
| 493 | 495 | // get sprite priority value back out of bitmap/colour data (this is done in draw_sprite for standalone hw) |
| 494 | | if (m_priram_8[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0; |
| 495 | | if (m_priram_8[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1; |
| 496 | | if (m_priram_8[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2; |
| 497 | | if (m_priram_8[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3; |
| 498 | | if (m_priram_8[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4; |
| 499 | | if (m_priram_8[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5; |
| 500 | | if (m_priram_8[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6; |
| 501 | | if (m_priram_8[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7; |
| 496 | if (m_priram[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0; |
| 497 | if (m_priram[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1; |
| 498 | if (m_priram[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2; |
| 499 | if (m_priram[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3; |
| 500 | if (m_priram[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4; |
| 501 | if (m_priram[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5; |
| 502 | if (m_priram[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6; |
| 503 | if (m_priram[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7; |
| 502 | 504 | |
| 503 | 505 | |
| 504 | 506 | if (primask == 0x00) |