mirror of
https://github.com/holub/mame
synced 2025-05-25 15:25:33 +03:00
Fixed a priority bug, updated notes
This commit is contained in:
parent
03f6344901
commit
41d74b4493
@ -30,7 +30,8 @@
|
|||||||
Playfield control:
|
Playfield control:
|
||||||
Bit 0x0f00: Playfield location in VRAM (in steps of 0x1000)
|
Bit 0x0f00: Playfield location in VRAM (in steps of 0x1000)
|
||||||
Bit 0x0080: 0 = Playfield enable, 1 = disable
|
Bit 0x0080: 0 = Playfield enable, 1 = disable
|
||||||
Bit 0x0002: 1 = Rowscroll enable, 0 = disable
|
Bit 0x0002: 1 = Rowselect enable, 0 = disable
|
||||||
|
Bit 0x0001: 1 = Rowscroll enable, 0 = disable
|
||||||
|
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
@ -115,7 +116,8 @@ WRITE16_HANDLER( m107_control_w )
|
|||||||
if ((old ^ m107_control[offset]) & 0x0f00)
|
if ((old ^ m107_control[offset]) & 0x0f00)
|
||||||
tilemap_mark_all_tiles_dirty(layer->tmap);
|
tilemap_mark_all_tiles_dirty(layer->tmap);
|
||||||
|
|
||||||
printf("%04x %02x\n",m107_control[offset],offset*2);
|
if(m107_control[offset] & 0xf07c)
|
||||||
|
printf("%04x %02x\n",m107_control[offset],offset*2);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -248,17 +250,10 @@ static void m107_update_scroll_positions(void)
|
|||||||
int laynum;
|
int laynum;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Playfield 4 rowscroll data is 0xde800 - 0xdebff???
|
/*
|
||||||
Playfield 3 rowscroll data is 0xdf800 - 0xdfbff
|
rowscroll is at 0xde000 - 0xde7ff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 0 of the layer video register
|
||||||
Playfield 2 rowscroll data is 0xdf400 - 0xdf7ff
|
rowselect is at 0xde800 - 0xdefff, every layer has dedicated 0x200 bytes inside this area, enabled with bit 1 of the layer video register
|
||||||
Playfield 1 rowscroll data is 0xde800 - 0xdebff ??
|
Perhaps 0xdf000 - 0xdffff and bit 2-3 are respectively colscroll and colselect?
|
||||||
|
|
||||||
alt rowscrolling is at 0xde000 - 0xde7ff, every layer uses 0x200 bytes out of this, so it should be:
|
|
||||||
0xde000 - 0xde1ff layer 0
|
|
||||||
0xde200 - 0xde3ff layer 1
|
|
||||||
0xde400 - 0xde5ff layer 2
|
|
||||||
0xde600 - 0xde7ff layer 3
|
|
||||||
The question is: why it uses 256 values for 512 rows? Is my hook-up correct?
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (laynum = 0; laynum < 4; laynum++)
|
for (laynum = 0; laynum < 4; laynum++)
|
||||||
@ -335,12 +330,12 @@ static void m107_screenrefresh(running_machine *machine, bitmap_t *bitmap, const
|
|||||||
bitmap_fill(bitmap, cliprect, 0);
|
bitmap_fill(bitmap, cliprect, 0);
|
||||||
|
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 2, 0);
|
m107_tilemap_draw(machine, bitmap, cliprect, 2, 0);
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 2, 1);
|
|
||||||
|
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 1, 0);
|
m107_tilemap_draw(machine, bitmap, cliprect, 1, 0);
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 0, 0);
|
m107_tilemap_draw(machine, bitmap, cliprect, 0, 0);
|
||||||
|
|
||||||
draw_sprites(machine, bitmap, cliprect, 0);
|
draw_sprites(machine, bitmap, cliprect, 0);
|
||||||
|
|
||||||
|
m107_tilemap_draw(machine, bitmap, cliprect, 2, 1);
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 1, 1);
|
m107_tilemap_draw(machine, bitmap, cliprect, 1, 1);
|
||||||
m107_tilemap_draw(machine, bitmap, cliprect, 0, 1);
|
m107_tilemap_draw(machine, bitmap, cliprect, 0, 1);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user