Couldn't let it go without finishing the job.
I went back and found out how to remove the HUD for the last of them: the sf2 games, sfa, dstlk, nwarr and cybots. They all require ROM writes that dummy out the drawing that occurs at the beginning of the match, and the updating that occurs throughout the match. It's similar to the procedure for most of the NeoGeo games.
Took awhile, but it eventually dawned on me that the key to finding the right routines to patch out is to put watchpoints on the time, life and super parameters. The game has no reason to be reading them before the match start except to get the data to populate the HUD with. Then it's a matter of taking a look at the stack and NOPping out the function one or two steps up the chain. Or when that breaks something important, make the function return early, or unconditionally branch past the offending parts.
I also noticed that the codes for all those games, plus sfa2 and sfz2al, were removing some desirable sprites like hitsparks, Anakaris's curse ghosts in nwarr, and the Blodia gunpod in cybots. But the same patch that was removing those was also removing some genuine BG sprites because they are handled by the same parent routine.
It's possible to go in and specifically patch out all the sub-routines for BG objects while leaving the important stuff alone. But a single conditionally-applied, reversible poke takes a whole lot of testing and typing, and doing this would require over a dozen extra codes per game. (With XML, you get the burden of redundancy without the boon of fault tolerance. Still beats the hell out of the old format.) It would also be pointless considering you only need one clean stage to do whatever you need. So I just removed the minimum amount to clean one stage and left a comment to the user saying which one.
In other news, shu, the Darkstalkers frame data maintainer, has moved the page and added hitbox pics. Sweet!
Uhm, I am probably just retarded, but how do I use the background removal codes
Posted by: CWheezy | 05/07/2011 at 04:36 AM
I put instructions here. (It'll get easier once the official pack gets updated.)
If you want them in FBA form, try these. (If your game isn't there I can try to convert the MAME codes for you.) You need to copy the code into a ini named after the rom and put it in support\cheats. (like support\cheats\sfa2u.ini)
Posted by: dammit | 05/07/2011 at 06:39 PM
Ok thanks a lot
Posted by: CWheezy | 05/07/2011 at 07:12 PM
Pastey.net seems to be down. Is there some other way I can get these? I'm trying to rip some unused sprites I came across in the first Darkstalkers game.
Posted by: felineki | 05/31/2011 at 12:44 PM
pastebin.info?
Posted by: jedpossum | 05/31/2011 at 04:29 PM
I already threw away the file that had all of them. Pugsy secured the codes, but until the next release here's the dstlk code:
<cheat desc="Hide background">
<comment>Activate before match start; set to Demitri stage for no BG sprites</comment>
<script state="on">
<action>
temp0=maincpu.rb@FF8053 band 0F,
temp1=maincpu.ow@02E34A, temp2=maincpu.od@02E34C,
temp3=maincpu.od@031FD2, temp4=maincpu.od@0321E8, temp5=maincpu.ow@0D3140
</action>
</script>
<script state="run">
<action>
maincpu.pb@FF8053=maincpu.rb@FF8053 bor temp0,
maincpu.ow@02E34A=4E71, maincpu.od@02E34C=4E714E71, <!--HUD-->
maincpu.od@031FD2=temp3, maincpu.od@0321E8=temp4, maincpu.ow@0D3140=temp5
</action>
<action condition="(maincpu.rw@FF8008 == A)"> <!--activate only during match-->
maincpu.pb@FF8053=maincpu.rb@FF8053 band F0, <!--BG layers-->
maincpu.od@031FD2=4E714E71, maincpu.od@0321E8=4E714E71, <!--flashing text-->
maincpu.ow@0D3140=4E71 <!--BG sprites-->
</action>
</script>
<script state="off">
<action>
maincpu.pb@FF8053=maincpu.rb@FF8053 bor temp0,
maincpu.ow@02E34A=temp1, maincpu.od@02E34C=temp2,
maincpu.od@031FD2=temp3, maincpu.od@0321E8=temp4, maincpu.ow@0D3140=temp5
</action>
</script>
</cheat>
Posted by: dammit | 05/31/2011 at 05:53 PM
Thanks a lot. I think I'll post the results at Sonic Hurricane in the obscure findings thread.
Posted by: felineki | 05/31/2011 at 06:07 PM