David Haywood's Homepage
MAME work and other stuff
October 2, 2018 Haze Categories: General News. 19 Comments on Little Changes (part 2)

The Steel Force changes mentioned in the previous update didn’t make 0.202, but should be in for 0.203, but I wanted to take this opporunitiy to highlight some more small changes that will be also be in 0.203.

I said before it’s not always ‘low profile’ titles that get fixes, and the last week or two has seen some bug fixes to better known titles that are just as important.

First I’ll start with CPS3, and a long-standing bug with the combo meters in JoJo’s Venture / JoJo’s Bizarre Adventure. This is one that back in the day I didn’t really put any research into due to unwanted attention and misuse of MAME for commercial bootlegs, but given that its been 10 years, the hype has died down and people still wanted to see it fixed, I decided to give it a look.

Actually a fairly simple problem. The game is only capable of displaying one Combo counter at a time, draws them off screen and uses ‘rowscroll’ to ‘bounce’ them into the display, so not only was the 2nd combo meter missing (because it never got scrolled on) but the ‘bounce’ on the Player 1 side was missing too, which was a dead giveaway for what the problem was. I was actually looking at CPS3 already with a view to fixing some of the palette manipulation effects in the later (P2 side) stages of Red Earth so fixing this was just sidetracking a bit. I might do an update about the palette stuff in Red Earth if I figure that out too.


JoJo's Venture
JoJo's Venture JoJo's Venture
JoJo's Bizarre Adventure
JoJo's Bizarre Adventure JoJo's Venture

The next piece of work isn’t mine, but that of Mooglyguy (Ryan Holtz) and happppp. This concerns the ‘Mirror Mode’ in Rave Racer (as well as the rear view mirror and a number of elements in other System 22 games)

To active mirror mode you should enter a code during the 3-2-1 countdown at the start of a race. Once this countdown appears, quickly turn the steering wheel RIGHT then RIGHT again, then press the BRAKE and GAS pedals together. If done correctly the display will instantly flip. To do it in MAME without analog controls you’ll want to set the digial speeds, sensitivity and auto-center speed on all the controls up high (100 did the trick for me)

Previously the mirror view did not properly flip the screen, but instead acted like the screen was flipped without showing the effect, meaning it basically just played with reversed controls and the speedometer needle in the incorrect position. Mooglyguy researched the issue, and happppp worked out how to implement it in the driver. Some optimizations were made at the same time meaning the driver also performs a bit better than it did before.


Rave Racer
Rave Racer Rave Racer
Rave Racer Rave Racer

So there you go, two fixes to the emulation of some better known platforms that will be in MAME 0.203 and higher.

Not covered here in pictures, but equally important are some changes smf has made to the Playstation GPU emulation, fixing bugs in Silent Hill (non-arcade) as well as Psyvariar, the latter which was rendering the game near unplayable on later levels due to intense flickering of the background graphics (that fix is in 0.202) Again this is a ‘higher profile’ change due to the popularity of the home system and because many popular arcade titles made use of Playstation based hardware. The Psyvariar fix is timely too because of the massive improvements in the sound emulation the driver received recently (far surpass anything that could be classed as ‘Little Changes’)

19 Comments

You can follow any responses to this entry through the RSS 2.0 feed.

Very beautiful post! Thank you for these insights. So grateful you’re doing this kind of work.

Since you mention Silent Hill, can this be run via mame? I always thought mame is arcade only. If perhaps not in a full post, is there any chance you could show me the improvements made? I’d be very curious.

Thanks in advance!

MAME has directly covered non-arcade (and even non-gaming) stuff since 0.162 (released 27 May 2015) although admittedly, yes, it usually takes a few years for any major changes in the project to be noticed by the majority, so it’s understandable you weren’t aware of that yet; It even took a while for the official site to remove the references to it being an arcade emulator above all. I guess it doesn’t help that some news outlets stubbornly refuse to acknowledge it but overall the reception has been good and highly beneficial to the development of the project, including the arcade emulation side of things.

I can’t personally say how well Silent Hill runs / doesn’t run, I was going off the commit information provided by the dev who fixed it, although I might look into it for a future writeup as it is an important driver for MAME to have accurate emulation of.

What I have continuously found amazing is how tolerant some software is to these sorts of bugs. Some of the software I have wrote would not tolerate even the slightest thing out of line. Yet loads of software ‘works’ with a decent amount of usability. These sorts of fixes remove oddball bugs and the like. For example my wife is decent at Super Pac Man. But unfortunately only on a *very* old version of MAME. So none of the patterns she learned work! I try to give her newer versions and she refuses and goes back to the old version. Those little fixes and timing changes make a huge difference. I remember the huge battles on the alt groups about how everything would have to be timing perfect for things to work. Yet in some ways it is unfortunate and other ways fortunate that was not true.

Thank you, all your hard work is greatly appreciated, please keepup the great work on CPS3, you guys are awesome.

btw Apache 3 from tatsumi, I thought that was fixed?

Hi Haze,
I ask this just for curiosity: many games have proms dumped but not used in MAME. If I understand correctly, at least some of them are used in the real hardware for graphics priority. Is there a particoular reason for not using them (for example because they are useless as the priority is hardcoded in the driver)? Very old and “simple” games like Ghosts’n’Goblins have prom dumps not used. Thanks!

A lot of unused PROMs are screen timing or access timing and the like, and without extensively tracing the PCBs etc. it’s unclear how they translate into real world use. Same goes for priorities, what is simple to implement in code can often be non-obvious from the PROM, and there are very few people actually doing hardware tests with arcade hardware etc. compared to the extensive research done for home systems.

Apache 3 I think is in Phil’s long backlog of things.

and re: Super Pacman, yeah, timing fixes can change how things work, although it’s the first time I’d heard anything about that. I know older versions had some incorrect priorities which might have made the game easier however, but yeah, if they’re memorized patterns it’s probably timing (or a different default dipswitch setting) It might surprise people to know, but even Ms Pacman is not correctly emulated at this point, the ghost tunnel timing is off as it reads from an unmapped address on hardware which gives a psuedo random ‘open bus’ value which depends on various factors that haven’t yet been determined.

The Ms. Pacman issue surprises me. I thought all old ‘classics’ would be emulted correctly by now, especially if they’re common and famous. What needs to be done for Ms Pacman to work? Maybe people would donate towards it; I would.

Two games I’d always donate to if there are bugs on them are: Golden axe, or Alien vs Predator

the psyvariar / psx improvements are sweet . nice
i wonder if they also fixed all the wrong colours / effects in tenkomori shooting somehow (cool game,btw)
https://pasteboard.co/HGW8rFM.png
i will definitely give it a try when 203 drops
there is still a pretty serious problem with the psx stuff and it’s not graphics-related but let’s save that conversation for another day

MsPacman I’m not sure, I mean people have done some fairly extensive analysis of the hardware / software and are still not sure, since it relies on ‘undefined’ pseudo-random behavior it’s very annoying. Throwing money at it probably won’t help.

The classics aren’t perfect, Moon Cresta has problems with the demo sync in attract mode, some people will claim older versions of MAME were better there, but in reality they were just broken in a different way which caused different parts of the sequence to fail, and in old versions it’s known to be running at an incorrect speed. Quite why it doesn’t sync is not understood as it’s very simple hardware.

Misisng waitstates caused by DMA etc. means things like SF2 Turbo don’t run at the right speed either and require you to either hack the CPU speed for a closer approximation (a hack, and still wrong) or accept that they’re running too quickly.

The day the classics *are* perfect MAME will likely have steeper hardware requirements still. This weird idea that just because you’ve been able to play the games for almost 20 years means they’re correctly emulated is something that needs to be addressed because it means people aren’t acknowledging progress when it is made.

Crusin exotica? Plz

Crusin exotica? Im happy to make arcade racing with crusin series lol

Great work, one game i’d like to see get improved though is gradius 4, i wonder if you could provide some insight into the state of the driver and what/how much work would be required to make it a playable speed?

Gradius 4 does run at a playable speed already if you have a semi-recent (3-4 years) high end CPU.

Unfortunately one of the reasons it runs at a playable speed is the SHARC recompiler, which introduced a few visual bugs at the same time that I don’t think have been fixed yet.

both gti club and gradius IV (different hardware,i know) run slightly above the 100% threshold (mame 201) with my i7-870 from 2009 :D
hopefully i’ll figure out what to do to configure the steering wheel / controls in gti club at some point

Regarding the SF3 fixes, the behaviour in the recent Street Fighter Collection published by Capcom is correct? If so, it could be a first for a commercial emulator (generally, commercial emulators obtain info from open source emulators and don’t do autonomous research).

Leo: Many PlayStation games are completable in MAME, including big names like Resident Evil, Final Fantasy VII, and Symphony of the Night. We support multiple controller types, memory cards, and everything else you need. Before Raiden II arcade was playable in MAME it worked perfectly in Raiden Project form on MAME’s PlayStation driver.

the “behaviour” might be right but the speed will never be the same or accurate compared to the real cps II or III
the real capcom couldn’t get it right on dreamcast or playstation 2,what do you expect nowadays when these “ports” are handed to western clueless studios ?
and,yes,even in mame / fba etc the speed will never be right
i think it’s impossible to perfectly replicate a certain frequency (59.7xxx in the case of cps III) ? but yea
anyway,haze,speaking of cps III – what about this issue in dud’s background ? i know it’s been like that since the day you emulated the cps III back in 2006 (7?) or so
don’t have access to a cps III new gen / second impact right now and when i do,i always forget to check
https://pasteboard.co/HHPjdYZ.png
https://pasteboard.co/HHPlCEt.png

@sf3fan: there are some ways, you need a setup that allows you to run the games at their native refresh rate, like a crt emu setup or flat panel that supports variable refresh. Then you can tweak the cpu (downclock) via the slider available from cheats, or better since it doesn’t save and isn’t very precise; edit and modify the driver with custom values and recompile MAME with it.
At the moment it is possible to attend to everything; clock, rate, resolution, input lag, audio lag etc. to achieve nearly identical-to-real-thing to the point you’d effectively have a hard time telling the difference. It’s just a long quest to learn and complete by yourself, your personal investment into the solutions that are available today, if this what you seek from emulation.
Because it doesn’t seem like globally working viable and acceptable solutions to all of these things will pop up from MAME development and feature in near-future official builds just like that. As we’re re often told, ‘perfect’ by default from MAME means tons more development work and therefore tons more time, and we’ll all probably be older (maybe significantly-so) when that becomes a reality for the entire games list. Remember their development effort priority is to preserve accurately, making the games playable accurately is in lower position since it also does not entirely depend on MAME, which can’t be helped, unless MAME buys Microsoft, Intel, nVidia, AMD, and most displays manufacturers among many other things to entirely reshape consumer technology worldwide so it would fit MAME 100%.
Enough time for most to save for buying a supergun, a crt, and a handful of pcb’s of their very favourite arcade games (be glad; oldies fighting games pcb’s in general aren’t nearly as expensive as other categories like shmups and original rarities, afaik)

@Arbee yup, mame’s multiple psx controller types is an awesome feature and great to be able to play e.g. ape escape with a dualshock. Just really wishing rumble could be there for closer-to-real experience (plus iirc games like MG solid and RE 2+3 kinda needed it to play properly). That would really go far. All else tho – totally thumbs up..

Leave a Reply

Your email address will not be published. Required fields are marked *

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close