Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07655 Graphics Minor Always May 12, 2020, 16:31 May 28, 2020, 13:17
Tester sasuke View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10 (64-bit)
Status [?] Confirmed Driver
Version 0.220 Fixed in Version Build
Fixed in Git Commit Github Pull Request #
Summary 07655: legionj: The attract demo is displayed incorrectly.
Description What is not on the PCB will be displayed.
Please see the attached video for details.
Steps To Reproduce
Additional Information
Github Commit
Regression Version
Affected Sets / Systems legionj
Attached Files
mp4 file icon legion.mp4 (215,440 bytes) May 13, 2020, 08:16 Uploaded by sasuke
There are no relationship linked to this issue.
User avatar
May 12, 2020, 18:04
I'm not sure what version of MAME you are using, but 0.220 does not have the graphic leftover in the intro you are detailing in the video.
You fail to list your platform or your version though you claim 0.220 as a version in your report. I let the demonstration go 3 complete cycles and no graphics leftover - I even played a small game and left the demonstration cycle start after my Game Over and still, no problems seen.

Any more info?
User avatar
May 13, 2020, 07:01
edited on: May 13, 2020, 07:35
Sorry, There was a mistake in bug information, it only occurred in legionj, not legion. My video has recorded legionj.
I checked with the Windows 64bit official binary 0.220.
User avatar
May 14, 2020, 02:42
I can confirm with 'legionj'. Since it was added in 0.160 is has shown this graphic extra on the demonstration screen.
User avatar
May 14, 2020, 02:58
legionj: there is a secondary text layer enable bit which only applies to legion & legionj (not legionjb)
it's written by the 68k here:
map(0x07c00e, 0x07c00f).w(FUNC(armedf_state::irq_lv2_ack_legion_w));
add this function & variable which will be accessable by both drivers/armedf and video/armedf.cpp:
u16 reg_7c00e;

void armedf_state::irq_lv2_ack_legion_w(u16 data)
if (m_nb1414m4 != nullptr)
m_maincpu->set_input_line(2, CLEAR_LINE);
    reg_7c00e = data;

in video/armedf.cpp / a screen_update will need to be made for legion/legionj with these changes:

if ((reg_7c00e & 0x30) == 0x30) m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 1);
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 1);
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 2);
if ((reg_7c00e & 0x30) == 0x00) m_tx_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 4);

best regards,
- dink
User avatar
May 28, 2020, 08:41
reg_7c00e is not a text layer enable register, this change would cause the final boss to not show up.

possibly related:
- skyrobo yellow lines at edges (maybe BTANB if cabinet monitor hides edges)
- mini map on cclimbr2 sometimes not erased
User avatar
May 28, 2020, 13:17
Thanks for that info, hap. After a bit of debugging, I wonder about:
Maybe the video enable registers function differently when its 0xfxx, (aka all layers enabled?)
otherwise the 1 bit sets just the top text layer (category 0)
-- this works for legion/legionj, at least (tested @ boss screen)

It's also possible that the nb1414m4 chip covers it up somehow...
I'd really love to see a decap/dump this chip. Maybe someone would be willing to set up a fund for it?

Later I'll do some deeper debugging and see why the 68k why sends up the boss image to txt in attract mode in the first place.