(this post is a bit lenghty, so skip to the numbers for instant fun)
So, for shmup fans that love last gen Cave shmups, i want to share my 2 years long endeavour of making cv1000 emulation as close to pcb speeds, in terms of slowdown, as possible.
These games are fantastic and they also have more slowdown than one might probably think
(especially when played for score).
We are talking single digit framerates and hud/ship/bullets completely vanishing when things get out of hand!
The games/modes that were possible to work on through observation and reproduction, are those with more or less fixed rank, or with a more linear approach to rank management (thankfully most of them).
Some modes, like Futari original, are so wildly different at low and high rank, that they're nearly impossible to tackle, without owning the pcb.
Another issue, regarding current state of emulation vs how accurate it can be tweaked (via only CPU speed and Blitter Delay), is that a certain ship's shot/laser blending mode (Palm Abnormal in Futari) will simply mess with the overall blitter settings, so that particular ship's numbers can not be improved,
unless:
The dev Trap15, suggested some 10 years ago that different blitter sliders for different blending modes would be an improvement, and that would certainly fix a few issues, like Palm Abnormal and a couple of others (like the, atm, unavoidable slowdown in the menus in some games, too much slowdown in certain areas ex. the first pattern of boss No3 in Futari BL God mode).All in all however, the current state of the emulation is actually pretty good and with the CPU and Blitter combo, the slowdown accuracy that can be achieved is
very good, and in many instances better than the 360 ports (which are great ports).
In emulation, some elements are CPU related (mainly bullets) and their speed responds first to CPU underclock, while others (effects, explosions, lasers, overlaping effects) are Blitter affected first.
Concrete example:
Mushihimesama's lvl1 boss 1st pattern in Ultra is CPU bound, and once you fine-tune it for just that pattern, you have your CPU value for the rest of the game, for a pretty good accuracy. However, satisfactory Blitter value was only decided at the stage 5's boss in Ultra, as those patterns are Blitter dependant.
Similar story in Futari BL God mode.
The main logic was to find a few elements for each scenario in pcb, recreate that scenarios in emulation and fine-tune them to be as close as possible. Once a few key moments (ex. boss patterns, stationary enemy bullet swarms) were reproduced, most of the rest of the game would fall into place nicely, though some moments would slow down a tad more in emulation, it's usually in the single digits %.
Some games/modes like Futari Ultra or Pink Sweets (damn that game) are stil wip. Maybe thanks to dink's incredible work on the driver, i'll make faster progress in those.
A quick note:All these tests were made using ume2014, based on mame 0.155. The FBNeo driver is also based on mame 0.155 so everything should be identical in terms of CPU and Blitter (from the little i tested since the driver was released last week, all is good).
Some games need different values for different modes/ships. What works in Ultra, is not good for Maniac. Also Deathsmiles characters have so different shot/laser effects, all needing slightly different values.
Ok, so the values (CPU/Blitter):
(Edit: added actual % value for CPU. The math is:
game mhz x 100 /102.4)
Daifukkatsu:
43.62 (42.6%) / 59
Espgaluda 2:
49.76 (48.6%) / 62
Daifukkatsu Black Label:
42.4% / 57 (All ships Strong)
41.4% / 57 (All ships Bomb/Power)
Mushihimesama:
42.3 (41.6%) / 57 (ultra)
48.02 (46.8 %) / 57 (maniac)
Mushihimesama Futari:
47.7 (46.6%) / 57 (Reco N maniac)
48.5 (47.3%) / 56 (Palm N maniac)
42.5 (41.6%) / 55 (Palm Ab maniac)
40.6% / 56 (RecoN Ultra)
40.6% / 55 (Palm Ab Ultra)
Futari Black Label:
45.26 (44.2%) / 54 (Reco maniac)
46.08 (45.0%) / 56 (Palm maniac)
44.54 (43.5%) / 56 (Reco god)
44.54 (43.5%) / 56 (Palm god)
Deathsmiles:
52.53 (51.3%) / 59 (Windia, Casper)
53.04 (51.8%) / 58 (Follet)
53.35 (52.1%) / 57 (Rosa)
Deathsmiles MBL:
53.35 (52.1%) / 54 (Windia)
53.04 (51.8%) / 56 (Follet)
52.53 (51.3%) / 58 (Casper)
52.53 (51.3%) / 58 (Sakura)
53.35 (52.1%) / 55 (Rosa)
Ibara:
49.04 (47.9%) / 53
Ibara Black Label:
49.04 (47.9%) / 53
Akai Katana:
48.32 (47.2%) / 63 (C ship)
47.00 (45.9%) / 68 (B ship)
46.08 (45%) / 72 (A ship)
Muchi Muchi Pork:
53.55 (52.3%) / 53
Sdoj:
43.0 (42.0%) / 59 (Expert all)
44.3 (43.2%) / 57 (Shot/Laser all)
In games that have power-ups i sometimes use infinite lives, as losing a power-up or continuing with full power earlier than normal, messes with the slowdown. Never used God mode...not fair
Here are quite a few vids i made (some are good quality, some potato quality as i made so many of them i kept running out of memory):
https://youtu.be/qf75S_iG7aYhttps://vimeo.com/476652165/descriptionThanks so much dink, barbu and everyone involved in bringing these woderfully addictive games to FBNeo! Important: when using the old blitter method (manual blitter), be sure to set Clip Margin (test) - off.edit: as i further analyse and test the accuracy, i will post slight modification to some values.