Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08799 Color/Palette Minor Always Dec 1, 2023, 17:00 5 days ago
Tester yoshi200213 View Status Public Platform MAME (Official Binary)
Assigned To AJR Resolution Fixed OS
Status [?] Resolved Driver
Version 0.261 Fixed in Version 0.280GIT Build 64-bit
Fixed in Git Commit f123770 Github Pull Request #
Summary 08799: revx, revxp5: Steven Tyler cutscene static colors corrupted
Description hello in the cutscene of Steven Tyler talking to you in the first level he static effect when the transmission is interrupted has corrupted colors
compared to old mame versions.
It's supposed to be a regression.
Steps To Reproduce 1. start the level.
2. play the entire level until the Steven Tyler cutscene.
3. see the static.
Additional Information
Github Commit
Flags 64-bit specific
Regression Version 0.224
Affected Sets / Systems revx, revxp5
Attached Files
png file icon graphic bug.png (393,186 bytes) Dec 1, 2023, 17:00 Uploaded by yoshi200213
yoshi200213
zip file icon i.zip (875,245 bytes) Mar 2, 2024, 16:26 Uploaded by yoshi200213
zip file icon 1.zip (1,108,248 bytes) 5 days ago Uploaded by Osso
save state for MAME 0.279
Relationships
There are no relationship linked to this issue.
Notes
16
User avatar
No.21985
yoshi200213
Tester
Feb 25, 2024, 15:08
but the problem really happens, the cutscene at the end of the first level is glitched and this happen in recent versions of mame
User avatar
No.21990
Osso
Moderator
Feb 28, 2024, 06:19
Could you provide a save state right before the issue appears?
User avatar
No.21992
yoshi200213
Tester
Mar 2, 2024, 16:15
here I have the Save state
User avatar
No.21993
yoshi200213
Tester
Mar 2, 2024, 16:26
here I have a save file
User avatar
No.22824
yoshi200213
Tester
Jan 10, 2025, 18:41
I tested the game on mame 0.273 and the bug still occurred
Please fix this issues one for more
Here's a video of the game on insert coin channel
?si=JKWfuHphbUG9VM7z
User avatar
No.22825
yoshi200213
Tester
Jan 10, 2025, 18:41
edited on: Jan 10, 2025, 18:42
It's about the Steven tiler glitched static
User avatar
No.22827
PL1
Tester
Jan 10, 2025, 21:19
edited on: Jan 10, 2025, 23:01
To be clear:
There should be black and white static at the beginning and end of the video. This part _looks_ good. (It may be inverted.)
The correct video glitch looks like a VCR tracking error/horizontal wavyness. (happens 3x during this 20 second video)
The incorrect video glitch looks like it has (inverted?) color static added on top of the VCR tracking error/horizontal wavyness and the broken glass at the bottom/front of the screen is the wrong color.
https://raw.githubusercontent.com/PL1-Arcade/Misc/refs/heads/main/Revx_Video_Glitch.png

This recording shows it working correctly at 4:05 - 4:26, right? (Glitch in video above is at 5:00 - 5:20.)



Scott
User avatar
No.23551
yoshi200213
Tester
6 days ago
i tested the game on version 0.279 and the bug is still not fix.
I notice that the regression start on version 0.224 5 years ago
User avatar
No.23552
hap
Developer
6 days ago
Don't do a topic-bump like that.
User avatar
No.23553
yoshi200213
Tester
6 days ago
ops sorry
User avatar
No.23554
Osso
Moderator
5 days ago
edited on: 5 days ago
FWIW this patch seems to avoid the issue, but causes other problems. Maybe it can point to the bug:

diff --git a/src/mame/midway/midxunit_m.cpp b/src/mame/midway/midxunit_m.cpp
index 6b2507592d2..fe7664bdddb 100644
--- a/src/mame/midway/midxunit_m.cpp
+++ b/src/mame/midway/midxunit_m.cpp
@@ -309,9 +309,9 @@ uint32_t midxunit_state::dma_r(offs_t offset, uint32_t mem_mask)
  uint32_t result = 0;
 
  if (ACCESSING_BITS_16_31)
- result |= m_video->dma_r(offset * 2);
- if (ACCESSING_BITS_0_15)
  result |= uint32_t(m_video->dma_r(offset * 2 + 1)) << 16;
+ if (ACCESSING_BITS_0_15)
+ result |= m_video->dma_r(offset * 2);
 
  return result;
 }
@@ -320,7 +320,7 @@ uint32_t midxunit_state::dma_r(offs_t offset, uint32_t mem_mask)
 void midxunit_state::dma_w(offs_t offset, uint32_t data, uint32_t mem_mask)
 {
  if (ACCESSING_BITS_16_31)
- m_video->dma_w(offset * 2, data & 0xffff);
- if (ACCESSING_BITS_0_15)
  m_video->dma_w(offset * 2 + 1, data >> 16);
+ if (ACCESSING_BITS_0_15)
+ m_video->dma_w(offset * 2, data & 0xffff);
 }
User avatar
No.23555
hap
Developer
5 days ago
Try this?:

void midxunit_state::dma_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
// word smearing
if (mem_mask != 0xffffffff)
data |= (data & mem_mask) << 16 | (data & mem_mask) >> 16;

m_video->dma_w(offset * 2, data & 0xffff);
m_video->dma_w(offset * 2 + 1, data >> 16);
}
User avatar
No.23557
Osso
Moderator
5 days ago
edited on: 5 days ago
Yes, it seems good to me with hap's patch.
User avatar
No.23558
hap
Developer
5 days ago
FWIW regression is probably from: https://github.com/mamedev/mame/commit/efed2ea2c21c9ac4dec8b3682efce8d731623abb
I'll give AJR a poke, see if he thinks it's caused by a bug in his commit, or that 'word smearing' makes sense here.
User avatar
No.23559
AJR
Developer
5 days ago
edited on: 5 days ago
I took a look at the TMS34020 manual, and I don't see any reference to word smearing.

f1237705805a051f140fbd31330cad621f955e54 should fix this, at least for now.
User avatar
No.23560
hap
Developer
5 days ago
edited on: 5 days ago
I was thinking a quirk in the DMA controller.

Doesn't that commit reintroduce the 'U76 bad' error?
edit: yes, it does

And Osso mentions "other problems", or is it only this error?