mirror of
https://github.com/holub/mame
synced 2025-07-03 17:08:39 +03:00
hng64.cpp: enabled preliminary ROZ floor for Fatal Fury Wild Ambition / Buriki One [Angelo Salese]
This commit is contained in:
parent
2ec2d5a65b
commit
95c2fab37d
@ -600,7 +600,7 @@ void hng64_state::hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap,
|
|||||||
// life would be easier if the roz we're talking about for complex zoom wasn't setting this as well
|
// life would be easier if the roz we're talking about for complex zoom wasn't setting this as well
|
||||||
|
|
||||||
// fprintf(stderr, "Tilemap %d is a floor using :\n", tm);
|
// fprintf(stderr, "Tilemap %d is a floor using :\n", tm);
|
||||||
const uint32_t floorAddress = 0x40000 + (scrollbase << 4);
|
// const uint32_t floorAddress = 0x40000 + (scrollbase << 4);
|
||||||
|
|
||||||
// TODO: The row count is correct, but how is this layer clipped? m_tcram?
|
// TODO: The row count is correct, but how is this layer clipped? m_tcram?
|
||||||
|
|
||||||
@ -635,19 +635,20 @@ void hng64_state::hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap,
|
|||||||
// HACK : Clear RAM - this is "needed" in fatfurwa since it doesn't clear its own ram (buriki does)
|
// HACK : Clear RAM - this is "needed" in fatfurwa since it doesn't clear its own ram (buriki does)
|
||||||
// Figure out what the difference between the two programs is. It's possible writing to
|
// Figure out what the difference between the two programs is. It's possible writing to
|
||||||
// the linescroll ram fills a buffer and it's cleared automatically between frames?
|
// the linescroll ram fills a buffer and it's cleared automatically between frames?
|
||||||
for (int ii = 0; ii < 0x2000/4; ii++)
|
// for (int ii = 0; ii < 0x2000/4; ii++)
|
||||||
{
|
//{
|
||||||
const int realAddress = floorAddress/4;
|
// const int realAddress = floorAddress/4;
|
||||||
m_videoram[realAddress+ii] = 0x00000000;
|
// m_videoram[realAddress+ii] = 0x00000000;
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
// Floor mode - per pixel simple / complex modes? -- every other line?
|
// Floor mode - per pixel simple / complex modes? -- every other line?
|
||||||
// (there doesn't seem to be enough data in Buriki for every line at least)
|
// (there doesn't seem to be enough data in Buriki for every line at least)
|
||||||
rectangle clip = visarea;
|
rectangle clip = visarea;
|
||||||
|
|
||||||
if (global_alt_scroll_register_format) // globally selects alt scroll register layout???
|
// this was wrong, see below
|
||||||
{
|
// if (global_alt_scroll_register_format) // globally selects alt scroll register layout???
|
||||||
|
// {
|
||||||
// Logic would dictate that this should be the 'complex' scroll register layout,
|
// Logic would dictate that this should be the 'complex' scroll register layout,
|
||||||
// but per-line. That doesn't work however.
|
// but per-line. That doesn't work however.
|
||||||
//
|
//
|
||||||
@ -662,11 +663,11 @@ void hng64_state::hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap,
|
|||||||
//
|
//
|
||||||
// buriki line data is at 20146000 (physical)
|
// buriki line data is at 20146000 (physical)
|
||||||
|
|
||||||
#if HNG64_VIDEO_DEBUG
|
//#if HNG64_VIDEO_DEBUG
|
||||||
popmessage("Unhandled rowscroll %02x", tileregs>>12);
|
// popmessage("Unhandled rowscroll %02x", tileregs>>12);
|
||||||
#endif
|
//#endif
|
||||||
}
|
// }
|
||||||
else // 'simple' mode with linescroll, used in some ss64_2 levels (assumed to be correct, but doesn't do much with it.. so could be wrong)
|
// else // 'simple' mode with linescroll, used in some ss64_2 levels (assumed to be correct, but doesn't do much with it.. so could be wrong)
|
||||||
{
|
{
|
||||||
int32_t xtopleft, xmiddle;
|
int32_t xtopleft, xmiddle;
|
||||||
int32_t ytopleft, ymiddle;
|
int32_t ytopleft, ymiddle;
|
||||||
@ -697,7 +698,8 @@ void hng64_state::hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap,
|
|||||||
|
|
||||||
const int xinc = (xmiddle - xtopleft) / 512;
|
const int xinc = (xmiddle - xtopleft) / 512;
|
||||||
const int yinc = (ymiddle - ytopleft) / 512;
|
const int yinc = (ymiddle - ytopleft) / 512;
|
||||||
|
// TODO: if global_alt_scroll_register_format is enabled uses incxy / incyx into calculation somehow ...
|
||||||
|
|
||||||
hng64_tilemap_draw_roz(screen, bitmap,clip,tilemap,xtopleft,ytopleft,
|
hng64_tilemap_draw_roz(screen, bitmap,clip,tilemap,xtopleft,ytopleft,
|
||||||
xinc<<1,0,0,yinc<<1,
|
xinc<<1,0,0,yinc<<1,
|
||||||
1,
|
1,
|
||||||
|
Loading…
Reference in New Issue
Block a user