This is a bootleg of Seta's 1997 game "Jockey Club II", a horse racing double monitor thing with betting.
The original game isn't dumped, but by looking at the bootleg code it's clear the original hardware must be
close to that of Mobil Suit Gundam Final Shooting.
The modified code, designed to run on inferior hardware, parses sprite ram
and converts the zooming sprites list to plain sprites, and Seta's complex "floating tilemap" sprites
to two plain tilemaps.
They probably also sampled a few loops from the original music, at around 4kHz, in order to replace the
sound section with a cheap OKIM6295.
A funny note: this game uses 72 input keys!
Added Virtua Bowling (1996) to the the igs_blit.cpp driver:
Many thanks to the Mame Italian Forum guys (Corrado Tomaselli, Mameremember, etc.).
Some more progress on the IGS blitter led to better graphics and two more games added.
They are Long Hu Bang (199?):
and Xing Yen Man Guan (1996) (this one still has protection issues and locks up. The clone of it that works has bad graphics, due to an undumped rom):
Graphics have improved in Chuugokuryuu (1995) (not China Dragon / Dragon World, as reported last time, but their Japanese version):
and in Champion List II (1996) (again the Japanese version of it I guess):
I've submitted the driver, so it should make it into the next release.
Credits also go to Olivier Galibert for decrypting the games in the first place.
Guru's back in business.
Here's one more game running on ddenlovr.cpp hardware,
straight from the package he received from Japan:
It's The First Funky Fighter (1993, Taito), gameplay similar to Monkey Mole Panic and Animalandia Jr.
Here are some very preliminary shots from three mid nineties games by IGS, a Taiwanese company.
They are Champion List II (1996):
... China Dragon / Dragon World (1995):
and The Great Wall (1994?):
A skeleton driver for each of these already exists in mame, but "only" the decryption of the 68000 code was done.
They needed everything else, most notably the graphics decryption and blitter emulation.
As expected all of them are protected as well, but in a way that is easy to circumvent (i.e. not affecting the gameplay, so I patched it out for now)
I'll finish the driver (mostly graphical bugs) after I return from my holidays.
This is the first game dumped from the box that bnathan sent to Guru.
A 1998 Mahjong game by Dynax, running on ddenlovr.cpp hardware:
The CPU is a Z80. Most games from that box use a currently unemulated Toshiba processor (TMP91P640N) instead.
Pierpaolo suggested I'd take a look at this game running on
fantland.cpp hardware. This is one of the few arcade games ever programmed in Italy,
so I was glad to work on it.
It's a lightgun game but can optionally be controlled via trackball or joystick.
The release date is unknown, but post 1987 (probably early nineties). A few screenshots:
The driver had to be improved, as this game uses the video hardware in a different way from the other two games there, uncovering some unemulated features.
The audio hardware is different too, with an 8088 controlling a sample player attached to four MSM5205 chips.
Another kids game dumped by Guru.
It's electro-mechanical (by Takumi, 1999) and runs on cave.cpp hardware:
I sent a fix for the V60 CPU that stopped Eagle Shot Golf from crashing later in game, and got Mobil Suit Gundam Final Shooting (1995) to boot.
The latter is a light gun game, that uses two unemulated chips (ST-0009 & ST-0020) in addition to the standard ssv.cpp hardware,
to generate a tilemap and zooming sprites. Zoom is a feature SSV lacks, but this game definetely needs it!
Getting these to work was not difficult, but the tiles for the zooming sprites were all messed up.
After some head scratching I found out that this game too decodes tiles from ram.
But the latter is not written to by the cpu, but by a DMA device that copies the needed tiles in place.
Here's the result:
This game has been in the ssv.cpp driver for quite some time now, hanging at the boot and just showing a black screen.
After much investigation of its stack handling during the boot process, I was able to nail down the problem: the emulation of the TRAP and STTASK instructions of the V60 CPU.
A change there got the game past the boot, but that was not the end of the story, as most of the sprites had wrong tiles or were misaligned.
It turns out that this is the only game on this platform, through its sub board, that decodes the tiles from some banked ram.
It reads the original data from the graphics roms and rearranges the tiles in ram (goes to explain the odd graphics layout in the roms, to begin with).
The reason they did this was to simulate a pixel layer for the cpu to draw in, in order to render the course in "3D":
The misaligned graphics were due to a feature no other game uses (sprites auto centering), that is turned on by a bit in the video registers.
That led to the pleasant dicovery of some more sprite control bits, and with the new insight gained I was able to clean up the video emulation, by replacing many game specific hacks with a single general mechanism.
There is still a lot of work to do though, both on the V60 (the game crashes after playing some holes, srmp7 doesn't boot) and on the video side of this driver (mainly misaligned layers in a handful of games).
In an unexpected move, Guru dumped this kids game (it's in spanish AFAICT):
It runs on the same double blitter, 8 layer hardware as Monkey Mole Panic (ddenlovr.cpp). Pretty hefty considering how simple these games are (whack-a-mole). Unfortunately the sound rom seems damaged, it reads differently every time, so we get a lot of hisses on the speech.
More post 1996 Dynax games. The following screen shots are from Hana Kagerou (1997), another hanafuda (i.e. cards) game:
These are from Mahjong Reach Ippatsu (1998):
There are no more dumped Dynax games, so I'll tackle the remaining graphics bugs next.
I'm working on the post 1996 Dynax games. The following screen shots are from Hana Kanzashi (1996):
This hardware is based on a new revision of the blitter chip emulated in ddenlovr.cpp.
The driver is still preliminary, as there are several graphical glitches that need to be ironed out before sumission.
For example the background color is wrong in the title screens (those odd white pixels).
There are other dumped games running on this platform. I'll add them in the following days, and hopefully they'll give me some hints in the right direction.
Many thanks to Yasuhiro Ogawa for providing pictures from the original game!
I finally got around to implementing proper shadows in ssv.cpp, replacing the hack that was there instead. The difference is most noticeable in Storm Blade:
The way shadows work is this:
the frame buffer is filled with 16 bit pens, that are indexes into the palette (i.e. the actual rgb colors), from the previously drawn, "normal" tiles. When a "shadowing" tile is drawn,
it does not overwrite the contents of the frame buffer, but instead replaces the top bits of the pens
there with the low bits of its pens.
This results in a shift of the affected pixels from one section to another of the game's palette.
The game has to just divide the palette into increasingly dark chunks of the same base colors.
Some games do highlights this way, while Storm Blade again exploits the mechanism to cross-fade between graphics, which now works:
|