David Haywood's Homepage
MAME work and other stuff
December 14, 2015 Haze Categories: General News. 9 Comments on No longer utter Pollux

The Dooyong developed shooters are some of the more original Korean efforts of the 1990s, while other companies were simply bootlegging hardware ideas and code and hacking them into new looking games, Dooyong actually created their own games and used their own hardware designs.

The quality in general was fairly average, but they’re not terrible to play.

The emulation of them still had some bugs too, each game uses a slightly different mapping (same basic ideas, but all the ports moved around, slight changes etc.) which means sometimes bad assumptions get made, or things get missed. One game in the driver that had always had issues was Pollux with visible problems even on the title screen, and a number of MameTesters bugs relating to it.

We knew from earlier work on Flying Tiger that the hardware had some palette banking, it just hadn’t been hooked up on Pollux.

I spent a bit of time hooking it up, but was initially a little confused, we knew that Pollux was missing a palette cycle effect on the title, but none of the colours in any of the palette banks were cycling. That actually turned out to be a simple case of a missing vblank flag. The 2nd palette bank uploaded by the game is for the most part a darker copy of the first, although it was quickly obvious that the title screen was meant to be using that darker copy and not the one that it was using before, the darker copy is where the palette colours were cycling, and also where the correct colours were for several other title screen elements rather than entirely just darker versions like the rest of the time the game is running.

Now, when the palette ‘banking’ was hooked up to Flying Tiger we didn’t actually treat it as banking, we treated it as some ‘ram write protecetion’ meaning the bank bit was being used more like a RAM write protect flag than actual palette banking. This struck me as wrong, and a little more studying of a reference video for Pollux gave further weight to my theory that the hardware really did want to do real palette banking instead.

What I’d noticed is that in Pollux, when a bomb was released, the screen was meant to show periodic brighter pulses for the duration of the bomb. What I found out is that we’d actually been rendering the whole of Pollux with the wrong palette, the brighter version, since it was first emulated. That brighter palette was actually only meant to be used when you used a bomb, that was the entire point in there being two palette banks, a simple and quick way to turn the whole screen brighter / darker without having to write a new palette during gameplay. This simple bankswitch on the palette actually fits well with Dooyong’s general design of this hardware – leaving the CPU as free as possible to just run the game logic, not be updating palette data and tilemap data)

I implemented this, it turned out the selected palette bank for writing is also always the visible one. As a result the game looks much darker now, which greatly improves the contrast between backgrounds and sprites.

There was a MameTesters bug concerning the character portraits in the ending, after fixing the above issues I checked and that was fixed too, not too surprising.

Title screen – Left = Bad palettes, Right = Good palettes
Pollux - Bad Pollux - Good

Here’s a video from MAME with the fixes, it’s got cheats enabled, but allows you to see all scenes in the game for reference.

Content not available.
Please allow cookies by clicking Accept on the banner

The Flying Tiger code was also updated with this new knowledge, although I don’t know if anything has changed in it as a result. It’s possible some of the other games in the driver should have this hooked up too, I plan on checking that soon.


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

And ANOTHER great post on fixing older entries – Love reading them – thank you for not just fixing these classics, but also giving us a glimpse in the story behind the fixes!

Thank you for fixing this! I was watching the video and I noticed something strange: the music in the ending sequence seems to slow down when the “typewriter” sound fx is played (just pay attention to the tempo in the “Congratulate you!” bit and when the staff credits start to roll shortly after). Does this happen in the original PCB too?

Slight correction. Those first red baddies are ripped from Hyperdyne:Sidearms.

Haze, I saw your post on the MAMEWorld forums about MAME improvements. I noticed that no one mentioned Atari Jaguar and Sega Saturn emulation.

It’s really unfortunate that neither one of those platforms has a decent emulator. Tempest 2000, for example, basically isn’t playable in a good form on a modern setup today, which is sad. It’s a true classic, and it isn’t preserved at all. Dedicated Jaguar emulators are trash (Virtual Jaguar just randomly flickers with garbage as the screen updates). SSF and Yaubuse are still the only options for Saturn emulation, and they’re basically both crap as programs (high input lag, unreliable frame pacing). They’re just not as solid as MAME.

I hope that Tempest 2000 is preserved well some day.

This is was epic amazing thank you for fixing the not working games, ahem i should give you an achievement.. it is

Fixed Corrupted game
Score: 100.000


Mame release date?

MAME is released the last wednesday of every month.

Why don’t you learn how to compile your own UME, Mom, instead of crying like a bitch? I hope Dad beats your ass when he gets home.

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.