mirror of
https://github.com/holub/mame
synced 2025-04-29 03:20:50 +03:00
document 'blits' where the first sent parameter is '1' not '0' as non-sprites, probably clipping windows.
This commit is contained in:
parent
103494349b
commit
1ef9da1b98
@ -692,7 +692,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
|| m_blitterMode == 0x90 || m_blitterMode == 0xa0 || m_blitterMode == 0xb0 || m_blitterMode == 0xc0)
|
|| m_blitterMode == 0x90 || m_blitterMode == 0xa0 || m_blitterMode == 0xb0 || m_blitterMode == 0xc0)
|
||||||
{
|
{
|
||||||
// Serialized 32-bit words in order of appearance:
|
// Serialized 32-bit words in order of appearance:
|
||||||
// 0: 00000000 - totally unknown : always seems to be zero
|
// 0: 00000000 - unknown, 0x00000000 or 0x00000001, 0 seems to be regular sprite, 1 seems to change meaning of below, possible clip area?
|
||||||
// 1: xxxxxxxx - "Color Number" (all bits or just lower 16/8?)
|
// 1: xxxxxxxx - "Color Number" (all bits or just lower 16/8?)
|
||||||
// 2: 00000000 - unknown : OT flag? (transparency)
|
// 2: 00000000 - unknown : OT flag? (transparency)
|
||||||
// 3: 00000000 - unknown : RF flag? (90 degree rotation)
|
// 3: 00000000 - unknown : RF flag? (90 degree rotation)
|
||||||
@ -717,7 +717,16 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
{
|
{
|
||||||
// set to 0x00000001 on some objects during the 'film strip' part of attract, otherwise 0
|
// set to 0x00000001 on some objects during the 'film strip' part of attract, otherwise 0
|
||||||
// those objects don't seem visible anyway so might have some special meaning
|
// those objects don't seem visible anyway so might have some special meaning
|
||||||
|
// this is also set at times during the game
|
||||||
|
//
|
||||||
|
// the sprites with 1 set appear to have 0x00000000 in everything after the 4th write (m_blit4 and above)
|
||||||
|
// so likely have some other meaning and are NOT regular sprite data
|
||||||
m_blit0 = data;
|
m_blit0 = data;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if (data!=0) printf("blit %08x\n", data);
|
// if (data!=0) printf("blit %08x\n", data);
|
||||||
}
|
}
|
||||||
else if (m_blitterSerialCount == 1)
|
else if (m_blitterSerialCount == 1)
|
||||||
@ -807,6 +816,19 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
}
|
}
|
||||||
else if (m_blitterSerialCount == 11)
|
else if (m_blitterSerialCount == 11)
|
||||||
{
|
{
|
||||||
|
if (m_blit0 & 1)
|
||||||
|
{
|
||||||
|
// NOT A SPRITE
|
||||||
|
|
||||||
|
// these are something else, not sprites? It still writes 11 dwords I think they have a different meaning
|
||||||
|
// it might be a clipping area set? looks potentially like co-ordinates at least
|
||||||
|
//printf("NON-SPRITE blit %08x %08x %08x %08x %08x(%08x) %08x %04x %04x %04x %04x %08x %08x %d %d\n", m_blit0, m_blit1, m_blit2, m_blit3, m_blit4_unused, m_blit4, m_blit5_unused, m_vCellCount, m_hCellCount, m_vZoom, m_hZoom, m_blit10, data, m_vPosition, m_hPosition);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// SPRITES / BLITS
|
||||||
|
|
||||||
// for text objects this is an address containing the 8-bit tile numbers to use for ASCII text
|
// for text objects this is an address containing the 8-bit tile numbers to use for ASCII text
|
||||||
// I guess the tiles are decoded by a DMA operation earlier, from the compressed ROM?
|
// I guess the tiles are decoded by a DMA operation earlier, from the compressed ROM?
|
||||||
|
|
||||||
@ -837,9 +859,10 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
random = 0;
|
random = 0;
|
||||||
|
|
||||||
// not used much..
|
// not used much..
|
||||||
|
/*
|
||||||
if (m_blit4 &0x00010000)
|
if (m_blit4 &0x00010000)
|
||||||
{
|
{
|
||||||
// printf("type blit %08x %08x %08x %08x %08x(%08x) %08x %04x %04x %04x %04x %08x %08x %d %d\n", m_blit0, m_blit1, m_blit2, m_blit3, m_blit4_unused, m_blit4, m_blit5_unused, m_vCellCount, m_hCellCount, m_vZoom, m_hZoom, m_blit10, data, m_vPosition, m_hPosition);
|
printf("type blit %08x %08x %08x %08x %08x(%08x) %08x %04x %04x %04x %04x %08x %08x %d %d\n", m_blit0, m_blit1, m_blit2, m_blit3, m_blit4_unused, m_blit4, m_blit5_unused, m_vCellCount, m_hCellCount, m_vZoom, m_hZoom, m_blit10, data, m_vPosition, m_hPosition);
|
||||||
m_colorNumber = machine().rand() | 0xff000000;
|
m_colorNumber = machine().rand() | 0xff000000;
|
||||||
random = 1;
|
random = 1;
|
||||||
}
|
}
|
||||||
@ -847,6 +870,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
bitmap_rgb32* drawbitmap;
|
bitmap_rgb32* drawbitmap;
|
||||||
|
|
||||||
@ -979,6 +1003,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("more than 11 dwords (%d) in blit?\n", m_blitterSerialCount);
|
printf("more than 11 dwords (%d) in blit?\n", m_blitterSerialCount);
|
||||||
|
Loading…
Reference in New Issue
Block a user