FB Alpha

WIP Blog



Posted by barry on 26 April 2012 at 19:51:49

The site has had a bit of downtime recently. The MySQL database became corrupted, and sadly so did the database backups on the server. The host looked at it, and unsurprisingly, said there was nothing they could do.

My last local backup was from July last year. I have restored that backup and then retrieved the 35 or so articles posted since from Google cache. I have tidied these up a bit, and reposted them.

Sadly though I have lost user and comment data since the last local backup. This means that any comment posted since July last year is gone (I'm not overly concerned by this!). It also means that if you registered on the site since July last year, and you want to remain a member then you will need to reregister.

Suffice to say, once I had done all this, I took a backup and stored it locally!


More CPS-1 WIP

Posted by barry on 17 April 2012 at 20:06:00

Made a lot of progress recently. Final Crash now has sound (not quite 100%), and I have also added the same sound emulation to the Carrier Air Wing bootleg.

The only games left giving me an issue are currently the Carrier Air Wing bootleg (still not found any scroll writes), and a new Warriors of Fate bootleg that looks like it has a little protection on it. Otherwise, all of the bootlegs are working pretty well, and without patches. The writes to 0x98000c to control layers and priorities seems to be used by quite a few of the bootlegs.

I have also emulated the YM2151 and two MSM5205 chip sound emulation used by Street Fighter 2: Magic Delta Turbo. This is also used by a Captain Commando bootleg, and a Knights of the Round bootleg. I have uploaded some videos so you can hear the sound emulation in these.

Click more to see the videos.


More CPS-1 WIP

Posted by barry on 12 April 2012 at 20:09:00

Cadillacs and Dinosaurs (PIC bootlegs)

Following my work from 2008, where I identified the sprite RAM at 0x991000 in these sets, I hooked this sprite RAM up to the fcrash rendering and with some small amendments, the sprites now work correctly in these sets. The Turbo version works, as do the standard versions. The two standard versions (dinopic and dinopic2) have the same 68K program roms, but different PIC rom (both of which are likely bad?). dinopic2 has the same graphics roms, expect for 27c4000-m12481-3.bin which looks like a bad dump, and should use 8.bin from dinopic (all other graphics roms are identical). These sets now work fine, except for sound obviously.

Knights of the Round (bootleg sets)

I looked at the knightsb and knightsb4 sets which were are similar. They appear to be very similar to the daimakb set, in that they write the layer scroll values in the 0x980000 range. They also appear to use 0x98000c as a priority mode again as well. They also use the sprite RAM at 0x991000 as well with the fcrash sprite rendering. I haven't looked at sound yet, but otherwise they are working fine.

Carrier Air Wing (bootleg)

I've decoded the graphics roms for this set, and I had the inputs hooked up at 0x880000 a long time ago. The 68K just doesn't appear to write the layers scroll values anywhere. I'm beginning to wonder if the Z80 writes these? Guess I'll find out when I get around to looking at sound in these sets.

Final Crash

JacKc pointed out some sprite masking/priority issues in this bootleg which I have now resolved.


CPS-1 WIP 4/4 (Dai Makai-Mura bootleg)

Posted by barry on 11 April 2012 at 10:52:00

I looked at the Dai Makai-Mura bootleg which we currently have (daimakb). Previously, the sound worked only (the sound command moved to port 6). The first thing I noticed was that we didn't seem to have a palette. I logged the reads and writes and noticed a write of 0x3f to 0x880000. Immediately, that jumped out at me, as looking very much the Palette Control register. Passing the value wrote here to the Palette ontrol register got me a palette and the sprites appeared, no scroll layers though.

I looked at the writes some more, eventually I figured out that the scroll layers scroll values are written between 0x980000 and 0x98000a. This still didn't get me any scroll layers though.

The game doesn't appear to ever write any value that looks like a Layer Enable register at any time. I forced the layers to draw at all times, and they were on-screen. Eventually, I noticed that any time the layer order or enable should change, the game wrote a value to 0x98000c. The value wrote is either a 0, 1, 2 or 6 (observed so far). This looks it sets the harware into a layer enable "mode", that changes priority and/or enable depending on the value wrote. I understand this value enough for the game to be fully playable, and the demo's to play correctly. I can't claim it to be 100% accurate, but it's definitely close.

Dai Makai-Mura bootleg title screenDai Makai-Mura bootleg in-game


CPS-1 WIP 3/4 (Final Crash)

Posted by barry on 11 April 2012 at 10:49:00

I added support for Final Crash (Final Fight bootleg). I have added support for the alternative format graphics roms, the offset layers, the input reading, and the alternative sprite rendering used. Currently sound isn't supported, but I will look at it eventually.

Final Crash title screenFinal Crash in-game


CPS-1 WIP 2/4 (SF2: Magic Delta Turbo)

Posted by barry on 11 April 2012 at 10:46:00

I added support for the current sets missing from FB Alpha that are in MAME's cps1.c. Street Fighter 2 Magic Delta Turbo works quite well, with some glitches in the scroll layers (initial thought is that it looks like scroll2 only, and only when row-scroll is used). The sound hardware is different and currently not working.

I also added support for knightsb, which works about as far as it does in MAME, and I've not had a better look at it yet.

Street Fighter 2: Magic Delta Turbo title screenStreet Fighter 2: Magic Delta Turbo in-game


CPS-1 WIP 1/4

Posted by barry on 11 April 2012 at 10:43:00

JacKc and I have been looking at CPS-1 recently. With the support of Bonky0013 providing some dumps (now, as well as in the past) and some dumps from f205v, we have made some good head-way. As well as a general tidy-up of some of the driver variables, we have a few note-worthy things to report;

  • sf2m8 has been redumped and is working properly
  • alternative sf2m sets have been added and all work ok (sf2m9-sf2m15)
  • changed sf2koryu graphics roms to roms dumped by f205v (same data, different format)

Additionally, JacKc analysed the current sf2th dump, and using reasonable assumptions we have what we believe to be a good dump (using a rom from a different set). I added support for the extra graphics roms which map over the current roms at 0x400000, it looks they provide Hyper Edition graphics to the Champion Edition bootlegs. This also fixes some glitches in places, eg, the bike in the background of Chun-Li's stage. This shows the importance of dumping all roms on a board where possible, it looks like a lot of the current bootlegs need similar extra graphics roms mapped over the current roms, but we don't know if they use the same roms or not.

Jackc also added support for some new Street Fighter 2: Champion Edition bootlegs, sf2tha and sf2koryu2.

I also looked at the Captain Commando bootleg, which suffers from sprite problems. The sprite list end detection seemed to be off. I made a change, that makes the FB Alpha method the same as MAME (it was subtly different before), and things looked slightly better, but still broken (like MAME). Looking at the sprite data, I noticed another possible end of sprite-list detection, strangely adding support for this method, makes this set use exactly the same end of sprite list detection method as CPS-2. The game now works fine too, and this fix also works for the knightsb2 set.

JacKc also added a new Captain Command bootleg set (captcommb2), which appears very similar to the non-bootleg sets, and a new Knights of the Round bootleg (knightsb4), which suffers the same problems as the knightsb set.


logiqx Tools Update for MAME 0.145u1

Posted by barry on 22 February 2012 at 20:00:00

This archive contains modified source and recompiled binaries of the very useful dat file tools written by logiqx.

These tools are assumed dormant, since the author's site hasn't been updated since 2010.

In MAME 0.145u1 the listxml format changed slightly, causing the tools to no longer work. The issue is that now all sets using external samples, set the sampleof flag, including the "parent sample" set, which is different behaviour than previous versions and the datlib (which all the tools are based on) couldn't handle the change.

I use MAMEDiff myself to sync the FB Alpha sets to the latest MAME release and since logiqx released the source I decided to investigate the issue. Having identified and fixed the issue, I decided to repackage the tools and release for others to use if they wish. My changes are small and I take no credit for these excellent tools whatsoever, all credit stays with logiqx for these.

This repackaged archive contains the complete source, including a fix for the above described, issue, and recompiled windows binaries for all the tools.

As well as fixing the above issue this repackage has the benefit of being compiled against a newer zlib (1.2.6, which is current at the time of update). The tools are no longer packed with UPX, and I have updated the dates and appended "bh" to the versions to identify these versions. I didn't increment the version numbers, as these are not my tools.

You can download the updated tools here.


Some new drivers...

Posted by barry on 11 January 2012 at 20:29:00

I got a bit bored with cleanups and win32 programming for a bit so I wrote some new drivers, all of these are complete.

Click more for some images.


Gamelist Localisation

Posted by barry on 1 January 2012 at 21:03:00

A while back I removed the gamelist localisation feature from FB Alpha, the old version was nasty and didn't work very well at all.

I am currently rewriting it, and after a bit of experimentation things are working quite well. The localisation takes place once, and changes the title's internally, resulting in all instances of the title being localised.

I have posted a couple of screenshots of FB Alpha localising the gamelist to Korean on my UK Windows 7 Home Premium machine.

Gamelist localisationGamelist localisation