Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
00433 Graphics Minor Have not tried Jan 29, 2008, 14:08 Nov 24, 2016, 19:33
Tester Fujix View Status Public Platform
Assigned To Resolution Open OS
Status [?] Confirmed Driver galaga.cpp
Version 0.37b2 Fixed in Version Build
Summary 00433: xevious: Explosion animation of Giddo Spario (enemy flyer like ribbons) is different from the real one.
Description Explosion animation graphics of Giddo Spario (the enemy flyer like ribbons) are different from the real one.
Garbled sequence is correct.
Steps To Reproduce
Additional Information
Flags
Regression Version
Affected Sets / Systems xevious
Attached Files
gif file icon MAME.gif (5,758 bytes) Nov 23, 2016, 14:09 Uploaded by Fujix
MAME
Fujix
gif file icon How it should look like.gif (4,428 bytes) Nov 23, 2016, 14:10 Uploaded by Fujix
Fujix
Relationships
There are no relationsihp linked to this issue.
Notes
3
User avatar
No.13415
Fujix
Administrator
Nov 23, 2016, 14:14
edited on: Nov 23, 2016, 14:16
Here's an original PCB video. You can check this at 3:00, 4:28 and more.


User avatar
No.13416
Fujix
Administrator
Nov 23, 2016, 14:49
edited on: Nov 24, 2016, 02:29
This page makes a detailed analysis on this issue: http://togetter.com/li/886447

This guy says:
When this animation is processed, the system displays 4-color characters from #4 to #7, every pattern is shown for 2 frames.
And where the object number is calculated, it divides the counter by 2 and adds 4. But because it uses the rrca opcode to divide it, when the counter is an odd number, the highest bit becomes 1 which results $84 - $87 values.
This code is located at $345d - of the main program and the problematic rrca is at $3464 of CPU1.

Sprite Controller:
The 4-color objects (4N) are 32Kbit ROM, it doesn't have the 6th bit char A12.
The 7th bit is used for ROM selection of the OBJ data. When the 7th bit of the char number is HIGH and the bit to assign the type of object is HIGH, ~CE of the 4-color OBJ ROM is set HIGH, which means no ROM is selected.
In this case, the sprite controller receives data with two HIGH planes and one LOW plane, means 011 (= 3) is the color of the pixel.
The color table of this flying enemy is at $26 - $29. The color 011 (=3) at $26-28 is transparent and $29 is red, this shows the red block.

I guess the programmer could have forgotten to add "and 07h" after rrca at $3464 of CPU1.

User avatar
No.13421
Haze
Senior Tester
Nov 24, 2016, 19:33
sounds like it would be fixed by making the region where that rom is loaded larger and using a FF fill on it so that a blank solid tile gets pulled.

makes me wonder if there could be a hardware fix for this tho, to discard that line, or that line was meant to be disconnected and some pcbs have it connected...