barryharris.me.uk
Sunday, 20 May 2012, 17:24
cps1frog

FB Alpha 0.2.97.26 Release

Posted on 14 May 2012 at 19:08

Posted by barry

Filed under FB Alpha

A new FB Alpha release. Get it over on the FB Alpha page.

Click more for the what's new.

More...

Comments (5)




IRQ 4

Posted on 12 May 2012 at 16:08

Posted by barry

Filed under FB Alpha

I looked at Street Fighter II: Magic Delta Turbo again. It had sprite glitches, and the scroll 2 layer was in the wrong place when row scroll was used. The game writes different row-scroll values than normal, and it wasn't just a case of applying an offset to line-up the layer.

Initially, I gave the game a different VBLANK IRQ, I found that using an IRQ of 4 the game started reading and writing in the 7xxxxx area. I hooked up inputs and dips for the reads at 708xxx. I then recognised the layer enable write and scroll register writes in the same 708xxx range. Hooking all these had the game working pretty well, albeit with sprite glitches and incorrect row scroll.

At times when sprites were on-screen, there were plenty of writes in the 0x7xxxxx area, with the tell-tale 0x8000 end of sprite list marker being written too. Sure enough, this is sprite RAM, in the same format as many of the other CPS-1 bootlegs. Hooking this up, the sprites work perfectly, the aforementioned glitches are gone.

For the row scroll, I noticed that the game wasn't writing the row scroll start register. This is usually the same as the y scroll value, so hooking up the scroll2 y write to this register seemed plausible (the game isn't writing it anywhere else). Doing this, aligned the scroll layers, but ended up with slightly "juddery" scrolling.

I also noticed, that the game wasn't alternating the row scroll table register. Usually, the game would alternate between four row scroll tables to achieve smooth scrolling. I found the alternating value in the game's work RAM, and hooking this up, gives the normal row scroll effect. I am not 100% sure if this is accurate or not, but it seems strange that the bootleggers would leave the game with the "juddery" scrolling. If anyone has access to a PCB, it would be nice to get confirmation about the scrolling. The Guile stage is particuarly good for checking, and helpfully, is first in the demo loop. A video would be perfect, if anyone has the capability.

More...




FB Alpha 0.2.97.25 Release

Posted on 27 April 2012 at 19:11

Posted by barry

Filed under FB Alpha

A new release of FB Alpha is available on the FB Alpha page.

Click more for the whats new.

More...

Comments (11)




Downtime

Posted on 26 April 2012 at 19:51

Posted by barry

Filed under FB Alpha

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...




More CPS-1 WIP

Posted on 17 April 2012 at 20:06

Posted by barry

Filed under FB Alpha

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...




More CPS-1 WIP

Posted on 12 April 2012 at 20:09

Posted by barry

Filed under FB Alpha

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.

More...




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

Posted on 11 April 2012 at 10:52

Posted by barry

Filed under FB Alpha

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 Control 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.



More...




CPS-1 WIP 3/4 (Final Crash)

Posted on 11 April 2012 at 10:49

Posted by barry

Filed under FB Alpha

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.



More...




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

Posted on 11 April 2012 at 10:46

Posted by barry

Filed under FB Alpha

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.



More...




CPS-1 WIP 1/4

Posted on 11 April 2012 at 10:43

Posted by barry

Filed under FB Alpha

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.

More...





Next...