Archive for the ‘Mame Wip’ Category

Happiness at the glimpse of a Red Flag

Friday, April 29th, 2011

While doing deprecat.h clean-ups (basically conversion of irq systems in old drivers) I’ve stumbled across one of my oldest nemesis … Chequered Flag by Konami. After some grinding of my teeth and a LOT AND HALF of DASM code studying, I’ve finally nailed it down, it was mostly a rather silly bug with the protection device, checking that a check was true on a port by checking that all the bits were high instead of just one like one could imagine …

Note: I’m not entirely sure that the protection is COMPLETELY emulated, if you know the original game and notice something wrong just let me know via the public channels, thanks in advance.

Cyclic Redundancy Check

Saturday, April 23rd, 2011

Discovered and implemented sprite color cycling effects in Armed F driver. That’s a RAM-based clut table that look-ups via a byte in the sprite defs. As you can see from the YT vids, it’s used for doing neat effects such as explosions / bonus colors etc. in Terra Force …

… it’s even more useful in Kozure Ookami, since it’s used to differentiate the explosive red ninjas from the normal ones …

… and in Armed F, that is used to make the sprites to be a lot less static.

Way of the Lone Force

Thursday, April 21st, 2011

Currently working at the Nichibutsu 1414M4 emulation, that is a fancy MCU / blitter device used for copying text strings in various 1987/1988 games. Here’s Terra Force and Kodure Ookami with this hooked up:

Next up I’ll need to implement this for the other games, in particular for Ninja Emaki, that never worked properly due of this.

EDIT (23-apr-2011):

After some consolidation we got this (note that these two are WIP screens, they aren’t yet in official MAME build):

Also fixed the NB1414M4 priority bit, it mostly helps with Terra Force intro and title screen:

2 Days Drill

Wednesday, April 6th, 2011

I’ve passed last few days into converting the Taito F3 video chip (TC0630FDP) from 32-bit to 16-bit parallelism. Why a masochistic task like that, you might ask? Because I’ve realized that by simply converting 2 Minutes Drill to tilemaps, and the HW really looked a bit too complex to my tastes … 2 days of coding later and this game shows huge improvements, mainly because it uses lots of zooming / rowscroll effects.
Game is still not playable mainly because it’s an half mechanical / half videogame, but oh well …

As for the other news – the rumors are true. Starting from this dev cycle I’m the new MAME lead coordinator, taking over duties for Aaron Giles. Some generic guidelines of regarding what I expect to do for the project will follow soon, but for now I’ll take the chance to thank Aaron for all the work he has done for the MAME project as a contributor and coordinator for so many years.

The Phantom of the Opera

Sunday, January 2nd, 2011

Ok, guess that at this point people is interested in knowing what’s the current state of the Legionnaire / Raiden 2 driver. I’ll do a recap now for every single game for both drivers.

Denjin Makai

The only fully working game so far, mainly because it doesn’t call any macro command. It has minor gfx glitches (wrong backplane color in later levels, shown in pic) plus uses an unemulated DMA brightness mode so no fade in/out effects for this at the moment. You can try it in MAME 0.141 if you didn’t already.

Heated Barrel

Almost there, minus the collision detection, random 68k crashes and shot speeds needs tweaking. The collision is the major blocker of almost all of these games, the macro command used are more or less worked out but the extra hit-box parameters have basically no sense. For a quick example, player-1 and player-2 have DIFFERENT hit-box parameters (+0x40 for p2). That doesn’t make any sense bit-wise so it seems related to a table, but this table is nowhere to be found in ROM/RAM …
Right now the game is somehow playable until stage 4 boss, then the boss is blocked by something non-macro related that I haven’t yet checked so far.

SD Gundam Rainbow Tairiku No Senki

Recently reimplemented the sprite DMA and improved it, and while at it, I’ve also fixed various implementation bugs in there (stage 2 boss correctly shoots in the right direction now). Also I’ve implemented a preliminary 0x6200 macro command, it’s used for homing missiles weapon there and (unsurprisingly) for the purple ray weapon in Raiden 2 (pic 1).

It has the same collision problems as Heated Barrel, plus various sprite gfx glitches here and there due of the imperfect sprite DMA emulation (check pic 2).

Amusingly, this is the only game that the DMA brightness gives problems, there should be a per-layer dim effects but palette table almost surely contains invalid data.

Legionnaire

Collision detections are a pain even more there, it seems that we are missing a Z-value in addition to all the other flaws described in Heated Barrel, so right now you can flying kick in the air and hit 99% of the times. Also, first stage boss is really weird, it starts with a damaged energy bar AND nothing actually hurts him … and NO macro command is called … unless this is just a design choice, if anybody knows let me know.

Godzilla

Guru redumped the sprite roms, so the game looks a lot nicer now. It has collision detection (the only macro command used there, shrug) DMA timing problems (game flickers a lot) and a weird one-shot kill possible bug or design choice that happens from time to time.

Seibu Cup Soccer

This looks like the more protected game of all, it uses lots of macro commands unused by anything else. It’s the first game of the system so they abused the hell out of the system protection capabilities (including a fancy sort-DMA for the sprites and an annoying macro command for the radar positions!). Right now it shows the two captains, scrolls down, shows players that runs on the place and gets stuck there.

X Se Dae Quiz

Fixed the sprite DMA src address and implemented macro command 0x904, so it’s finally playable on a public tree. Bad news is that I’ve realized that it uses some unemulated macros, so I don’t really feel into marking it as working as per now.

Zero Team

Like X Se Dae, it uses 0x904. Implementing it allowed this game to be somehow input controllable but then it uses collision detection in the same fashion as Legionnaire. Also, gfx are still encrypted, so blobs of random garbage are shown for now.

Raiden 2

OG recently fixed the ROM banking in it, and I’ve recently fixed the ROM program bank read-back and a tilemap banking. It’s finally showing some signs of life but it’s not really playable (bullets are completely missing for instance, it uses a completely unhandled feature of the system). Also sprites flickers like no tomorrow, but it’s the first time I could actually be mildly positive about this.

Raiden DX

OG fixed the initial ROM bank in this too, but it dies as soon as you try to check some gameplay because it needs ROM banking (it has a bigger ROM than anything else in this HW, so presumably it uses a different hook-up too). There are also gfx issues not yet checked out.