mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
segas32.cpp: update todo (nw)
This commit is contained in:
parent
19862746e3
commit
17e0358bb8
@ -3,31 +3,48 @@
|
||||
/*
|
||||
Open questions:
|
||||
|
||||
- In f1en, the scrolling text in attract mode is very jumpy. Whatever
|
||||
double buffering they are using seems to be out of sync with the sprite
|
||||
rendering.
|
||||
- In f1en, the scrolling text in attract mode is very jumpy. Whatever
|
||||
double buffering they are using seems to be out of sync with the sprite
|
||||
rendering.
|
||||
|
||||
- In radr, NBG1 should be opaque on select screen, and NBG3 should be
|
||||
opaque while driving. This is controlled by register $31ff8e
|
||||
(respectively $200 and $800), likewise darkedge sets $800 on the first
|
||||
attract fight (which has ugly black pens which should be white according
|
||||
to the ref)
|
||||
- In radr, NBG1 should be opaque on select screen, and NBG3 should be
|
||||
opaque while driving.
|
||||
This is controlled by register $31ff8e (respectively $200 and $800),
|
||||
likewise darkedge sets $800 on the first attract fight
|
||||
(which has ugly black pens which should be white according to the ref).
|
||||
harddunk sets $0f00 which completely breaks text display if current
|
||||
hookup is enabled.
|
||||
The theory is that opaque pens should go above background layer and
|
||||
behind everything else like System 24.
|
||||
|
||||
- titlef NBG0 and NBG2 layers are currently hidden during gameplay, it
|
||||
sets $31ff02 with either $7be0 and $2960 (and $31ff8e is $c00).
|
||||
Is it possible that somewhere in the registers there may be a
|
||||
Saturn-esque sprite window effect enable to draw the boxing ring
|
||||
over NBG0;
|
||||
- radr uses $1A0 as the X center for zooming; however, this
|
||||
contradicts the theory that bit 9 is a sign bit. For now, the code
|
||||
assumes that the X center has 10 bits of resolution.
|
||||
|
||||
- In radr, they use $1A0 as the X center for zooming; however, this
|
||||
contradicts the theory that bit 9 is a sign bit. For now, the code
|
||||
assumes that the X center has 10 bits of resolution.
|
||||
- In svf (the field) and radr (on the field), they use tilemap-specific
|
||||
flip in conjunction with rowscroll AND rowselect. According to Charles,
|
||||
in this case, the rowselect lookups should be done in reverse order,
|
||||
but this results in an incorrect display. For now, we assume there is
|
||||
a bug in the procedure and implement it so that it looks correct.
|
||||
|
||||
- In svf (the field) and radr (on the field), they use tilemap-specific
|
||||
flip in conjunction with rowscroll AND rowselect. According to Charles,
|
||||
in this case, the rowselect lookups should be done in reverse order,
|
||||
but this results in an incorrect display. For now, we assume there is
|
||||
a bug in the procedure and implement it so that it looks correct.
|
||||
- titlef NBG0 and NBG2 layers are currently hidden during gameplay.
|
||||
It sets $31ff02 with either $7be0 and $2960 (and $31ff8e is $c00).
|
||||
Game actually uses the "rowscroll/rowselect" tables for a line window
|
||||
effect to draw the boxing ring over NBG0.
|
||||
Same deal for ga2 when in stage 2 cave a wall torch is lit.
|
||||
|
||||
- harddunk draws solid white in attract mode when the players are presented.
|
||||
NBG0 is set with $200 on center X/Y, same as above or perhaps missing
|
||||
tilemap wraparound?
|
||||
|
||||
- Wrong priority cases (parenthesis for the level setup):
|
||||
dbzvrvs: draws text layer ($e) behind sprite-based gauges ($f).
|
||||
dbzvrvs: Sheng-Long speech balloon during Piccoro ending (fixme: check levels).
|
||||
f1lap: attract mode ranking sprite-based text ($a) vs. road ($d)
|
||||
f1lap: attract mode map display (after aforementioned), sprite-based turn names
|
||||
($a) are hidden by map ($d) again;
|
||||
(Note: Theory about these being CPU core bug(s) is debunked by the fact that latter
|
||||
sets up via immediate opcodes)
|
||||
|
||||
Information extracted from below, and from Modeler:
|
||||
|
||||
@ -56,15 +73,15 @@
|
||||
---- ---- ---- --1- : 1= X+Y flip for NBG1
|
||||
---- ---- ---- ---0 : 1= X+Y flip for NBG0
|
||||
$31FF02 : x--- ---- --x- ---- : Bitmap layer enable (?)
|
||||
-x-- ---- ---- ---- : 1= NBG3 page wrapping disable (clipping enable according to code?)
|
||||
--x- ---- ---- ---- : 1= NBG2 page wrapping disable
|
||||
-x-- ---- ---- ---- : 1= NBG3 page wrapping disable (clipping enable according to code?)
|
||||
--x- ---- ---- ---- : 1= NBG2 page wrapping disable
|
||||
---1 ---- ---- ---- : 1= NBG1 page wrapping disable
|
||||
---- 0--- ---- ---- : 1= NBG0 page wrapping disable
|
||||
---- -x-- ---- ---- : 1= bitmap layer clipping mode (1=outside)
|
||||
---- --x- ---- ---- : 1= NBG3 clipping mode (1=outside)
|
||||
---- ---x ---- ---- : 1= NBG2 clipping mode (1=outside)
|
||||
---- ---- x--- ---- : 1= NBG1 clipping mode (1=outside)
|
||||
---- ---- -x-- ---- : 1= NBG0 clipping mode (1=outside)
|
||||
---- -x-- ---- ---- : 1= bitmap layer clipping mode (1=outside)
|
||||
---- --x- ---- ---- : 1= NBG3 clipping mode (1=outside)
|
||||
---- ---x ---- ---- : 1= NBG2 clipping mode (1=outside)
|
||||
---- ---- x--- ---- : 1= NBG1 clipping mode (1=outside)
|
||||
---- ---- -x-- ---- : 1= NBG0 clipping mode (1=outside)
|
||||
---- ---- --b- ---- : 1= Bitmap layer disable
|
||||
---- ---- ---t ---- : 1= Text layer disable
|
||||
---- ---- ---- 3--- : 1= NBG3 layer disable
|
||||
@ -161,37 +178,6 @@
|
||||
reference
|
||||
- arabfgt : https://www.youtube.com/watch?v=98QivDAGz3I
|
||||
- darkedge : https://www.youtube.com/watch?v=riO1yb95z7s
|
||||
|
||||
====
|
||||
back layer setups (register $31ff5e):
|
||||
alien3: $0200
|
||||
arabfgt: $8000-$81ff -- depending on the scene
|
||||
arescue: $0200
|
||||
as1: (untested)
|
||||
brival: $8000
|
||||
darkedge: $0200
|
||||
dbzvrvs: $0200
|
||||
f1en: $0000
|
||||
f1lap: $0000
|
||||
ga2: $0200
|
||||
harddunk: $8200
|
||||
holo: $0200
|
||||
jpark: $0200
|
||||
kokoroj: (untested)
|
||||
kokoroj2: $8000 --
|
||||
$8000-$81fc (in steps of 4) -- on introduction/initials scenes
|
||||
orunners: $0200
|
||||
radm: $0200
|
||||
radr: $8200 -- gameplay
|
||||
$0200 -- title screen
|
||||
scross: $0200
|
||||
slipstrm: $0000
|
||||
sonic: $0000 -- on sega logo/title screen
|
||||
$0200 -- everything else
|
||||
spidman: $0200
|
||||
svf: $0201 -- on attract
|
||||
$0200 -- on gameplay
|
||||
titlef: $8200
|
||||
|
||||
*/
|
||||
|
||||
@ -1917,7 +1903,7 @@ void segas32_state::mix_all_layers(int which, int xoffs, bitmap_rgb32 &bitmap, c
|
||||
layerorder[groupnum][sprindex].sprblendmask = 0;
|
||||
layerorder[groupnum][sprindex].coloroffs = compute_color_offsets(which, (m_mixer_control[which][0x3e/2] >> 6) & 1, (m_mixer_control[which][0x4c/2] >> 15) & 1);
|
||||
}
|
||||
/*
|
||||
/*\
|
||||
{
|
||||
static const char *const layname[] = { "TEXT", "NBG0", "NBG1", "NBG2", "NBG3", "BITM", "SPRI", "LINE" };
|
||||
for (groupnum = 0; groupnum <= sprgroup_mask; groupnum++)
|
||||
@ -2595,4 +2581,34 @@ SC: 0003 0000 0000 0000 - 0001 0001 0000 0000
|
||||
20: 007F 0366 0000 0364 - 0000 0070 0071 0070 - 0000 4000 4000 4000 - 4000 0000 0000 4000
|
||||
40: 0000 0000 0000 0000 - 0000 0000 9E05 0000 - 0000 0000 0000 0000 - 0000 0000 0000 0000
|
||||
|
||||
back layer setups (register $31ff5e):
|
||||
alien3: $0200
|
||||
arabfgt: $8000-$81ff -- depending on the scene
|
||||
arescue: $0200
|
||||
as1: $0000
|
||||
brival: $8000
|
||||
darkedge: $0200
|
||||
dbzvrvs: $0200
|
||||
f1en: $0000
|
||||
f1lap: $0000
|
||||
ga2: $0200
|
||||
harddunk: $8200
|
||||
holo: $0200
|
||||
jpark: $0200
|
||||
kokoroj: $8000
|
||||
kokoroj2: $8000 --
|
||||
$8000-$81fc (in steps of 4) -- on introduction/initials scenes
|
||||
orunners: $0200
|
||||
radm: $0200
|
||||
radr: $8200 -- gameplay
|
||||
$0200 -- title screen
|
||||
scross: $0200
|
||||
slipstrm: $0000
|
||||
sonic: $0000 -- on sega logo/title screen
|
||||
$0200 -- everything else
|
||||
spidman: $0200
|
||||
svf: $0201 -- on attract
|
||||
$0200 -- on gameplay
|
||||
titlef: $8200
|
||||
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user