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) |