mirror of
https://github.com/holub/mame
synced 2025-06-23 04:48:37 +03:00
Fixed ROZ centering in namcona1 driver [Phil Stroffolino]
This commit is contained in:
parent
6afeb5015a
commit
e6b2a18ba7
@ -4,7 +4,6 @@
|
|||||||
TODO:
|
TODO:
|
||||||
- dynamic screen resolution
|
- dynamic screen resolution
|
||||||
- bg pen (or the pen of the lower tilemap?)
|
- bg pen (or the pen of the lower tilemap?)
|
||||||
- roz centering
|
|
||||||
- sprites, that have the shadow bit set but aren't shadows, have bad colors
|
- sprites, that have the shadow bit set but aren't shadows, have bad colors
|
||||||
- check if the data&0x8000 condition in tilemaps is valid even when 4bpp mode it's used
|
- check if the data&0x8000 condition in tilemaps is valid even when 4bpp mode it's used
|
||||||
- namco logo in emeralda demo is missing (it's used with a roz effect)
|
- namco logo in emeralda demo is missing (it's used with a roz effect)
|
||||||
@ -596,23 +595,20 @@ static void draw_background(running_machine *machine, bitmap_t *bitmap, const re
|
|||||||
// used in emeraldia
|
// used in emeraldia
|
||||||
if(which == 1 && namcona1_vreg[0x8a/2] == 0xfd /* maybe reg & 0x4 */)
|
if(which == 1 && namcona1_vreg[0x8a/2] == 0xfd /* maybe reg & 0x4 */)
|
||||||
{
|
{
|
||||||
INT32 incxx = ((INT16)namcona1_vreg[0xc0/2])<<8; //or incyy ?
|
int incxx = ((INT16)namcona1_vreg[0xc0/2])<<8; // or incyy ?
|
||||||
INT32 incxy = ((INT16)namcona1_vreg[0xc2/2])<<8;
|
int incxy = ((INT16)namcona1_vreg[0xc2/2])<<8;
|
||||||
INT32 incyx = ((INT16)namcona1_vreg[0xc4/2])<<8;
|
int incyx = ((INT16)namcona1_vreg[0xc4/2])<<8;
|
||||||
INT32 incyy = ((INT16)namcona1_vreg[0xc6/2])<<8; //or incxx ?
|
int incyy = ((INT16)namcona1_vreg[0xc6/2])<<8; // or incxx ?
|
||||||
UINT32 startx = (INT32)(INT16)namcona1_vreg[0xc8/2]<<12;
|
INT16 xoffset = namcona1_vreg[0xc8/2];
|
||||||
UINT32 starty = (INT32)(INT16)namcona1_vreg[0xca/2]<<12;
|
INT16 yoffset = namcona1_vreg[0xca/2];
|
||||||
//namcona1_vreg[0xcc/2]; // changes dx/dy ?
|
int dx = 46;
|
||||||
|
int dy = -8;
|
||||||
// all ROZ parameters now in 16.16 format
|
|
||||||
|
|
||||||
// now, apply adjustments to startx, starty to translate the
|
// now, apply adjustments to startx, starty to translate the
|
||||||
// ROZ plane. Note that these are corrected by the inc parameters
|
// ROZ plane. Note that these are corrected by the inc parameters
|
||||||
// to account for scale/rotate state.
|
// to account for scale/rotate state.
|
||||||
int dx = 46; // horizontal adjust in pixels
|
UINT32 startx = (xoffset<<12)+incxx*dx+incyx*dy;
|
||||||
int dy = -8; // vertical adjust in pixels
|
UINT32 starty = (yoffset<<12)+incxy*dx+incyy*dy;
|
||||||
startx += dx*incxx + dy*incyx;
|
|
||||||
starty += dx*incyx + dy*incyy;
|
|
||||||
|
|
||||||
tilemap_draw_roz_primask(bitmap, &clip, bg_tilemap[which],
|
tilemap_draw_roz_primask(bitmap, &clip, bg_tilemap[which],
|
||||||
startx, starty, incxx, incxy, incyx, incyy,
|
startx, starty, incxx, incxy, incyx, incyy,
|
||||||
|
Loading…
Reference in New Issue
Block a user