Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02919 Graphics Minor Have not tried Feb 16, 2009, 03:32 Apr 19, 2016, 13:21
Tester suutaroka View Status Public Platform
Assigned To Haze Resolution Fixed OS
Status [?] Resolved Driver segas16b.cpp
Version 0.129u3 Fixed in Version 0.167 Build
Summary 02919: sdi: Broken background in 2nd stage.
Description Background graphics in the second stage are broken, the moon is torn apart.
Steps To Reproduce
Additional Information
Regression Version 0.113u2
Affected Sets / Systems sdi
Attached Files
png file icon 0000.png (6,369 bytes) Feb 16, 2009, 03:32
png file icon 0001.png (12,979 bytes) Feb 16, 2009, 04:02
png file icon 0002.png (5,660 bytes) Feb 16, 2009, 04:02
There are no relationsihp linked to this issue.
User avatar
Feb 16, 2009, 04:04
Added a couple more snaps. Your first snap is offset too far to the left to be an accurate shot for analysis.
User avatar
Senior Tester
Feb 16, 2009, 12:41
does this occur during normal play now?

It used to occur on several system16 games, but only if you attempted to view the tilemaps in the tilemap viewer, then returned to the game (Cotton comes to mind)

Could be an unrelated issue mind..
User avatar
Senior Tester
Mar 24, 2010, 02:41
Found the regression version (MAME 0.113u2).
For the gfx problem in SDI, i found out that when you do the following
the bug dissapear.

Remove the new scrolldx/y functions in video\segaic16.c lines 1282, 1297 and 1298:

// tilemap_set_scrolldy(info->textmap, 0, 38);
// tilemap_set_scrolldx(info->tilemaps[pagenum], 0, 22);
// tilemap_set_scrolldy(info->tilemaps[pagenum], 0, 38);

Set the screen size to the old values in drivers\segas16a.c line 1983 from

MDRV_SCREEN_SIZE(342,262) /* to be verified */
MDRV_SCREEN_SIZE(40*8, 28*8)

Use mame sdi -cheat and set in the Cheat menu Invincibility PL1 to ON.
Press fast forward (Insert) key to go to the moon in the 2nd level and
check it out!
User avatar
Senior Tester
Mar 24, 2010, 14:57
edited on: Mar 24, 2010, 14:59
and what were those changes made to fix in the first place?

they don't look like changes somebody would make just for the sake of making changes.

I'll admit I'm not a fan of this using the tilemap system, as it's pushing what it can do to breaking point (and trying to support flipscreen properly is nasty) but I guess somebody made those changes to fix something else.
User avatar
Mar 24, 2010, 15:41

In general, the whole 'revert code to a prior implementation' is a hack. If you are determined to fix bugs, you must find out the REASONS for the change.. not simply figuring out what to change to make it play right. On the outside, changing code to what worked before might be an acceptable fix. In general, if code gets changed back, it potentially breaks what was attempted to be fixed in the first place. In such revert examples - you'll need to test all games in the driver or using the effected files to assure that no breakage has taken place. Only if you can assure that such changes do not effect other games in MAME or the driver would reverting be considered.

Leaving your ideas in notes is fine. Expect to get critiqued, though, if you simply revert code to that in older versions. Just know that if you post 'revert' fixes for bugs, you'll likely get resistance from Developers.

I, myself, appreciate your effort to find and identify bug regressions regardless of your posted solutions.
User avatar
Senior Tester
Mar 24, 2010, 20:03
edited on: Mar 25, 2010, 14:37
Sorry, didn't mean to sound like I was trolling MASH here.

It's just important to know the reasons why the code changed in the first place, in order to establish a test case for any potential fix. Reverting the changes might fix SDI, but will probably break whatever the original change was designed to fix.

What this means is that the original fix was probably faulty, or incomplete, but without knowing the reason it exists means that I can't possibly even attempt to fix both issues with good code.

It is interesting to know what broke it, but it's also equally important to state why those changes were made in the first place.
User avatar
Senior Tester
Oct 2, 2015, 12:57
edited on: Oct 2, 2015, 12:58
fwiw, looking into this now..

it's because the 2nd level uses flipscreen, they render the entire thing upside down and use flipscreen to present it normally.

the game is actually completely unplayable, I'm surprised this isn't considered more serious.

flipscreen hasn't been working in the system16 driver properly since Aaron's rewrite, same reason I think Excite League / Super League should be marked as NOT WORKING (they're cocktail only and rely on flip in many places)
User avatar
Senior Tester
Oct 2, 2015, 13:31
edited on: Oct 2, 2015, 14:01
ok, seems to be a double deep regression on this one, it WAS playable with broken backgrounds up to a point but has since regressed further with the sprites
User avatar
Senior Tester
Oct 2, 2015, 21:12
this should be fixed, hopefully I haven't broken anything else in the process.