I modified the code to switch which buffer was shown when the interrupt was generated, and after clicking to the correct scanline, sprites were disabled. I disabled Final Fight's double buffering, hooked up my hsync generator, and manually clicked through the hsync lines with microswitches. I spent some time looking at schematics and planning my attack, soldered some lines to the hsync and vsync connections of my C board and set out to try some hardware. After modifying MAME further I was finally able to generate a real hsync based effect, disabling the sprites on the second half of the screen.Ĭlearly this is just a prototype, and alas may not work on the real hardware. Since MAME does not assume any hsync based raster effects could occur in CPS1 its draw handling does not support it. Hijacking the hsync and vsync handling of MAME I was able to trigger this interrupt on a specific scanline and switch buffers. Some games use it for input related reasons, but according to the MAME source it is not entirely known why. However, it turns out there is an additional interrupt available on the CPS1's 68k. Looking at MAME's source code it is clear that the only raster techniques it supports is the rowscroll table that Street Fighter II uses to render a perspective effect on the ground. The information about the CPS1 is scarce, and only one-liners like "Simultaneously displayable: 256 (per scanline)" on Wikipedia gave any hope this might work. By a rough estimate the overflow is only a few dozen extra sprites, so if the CPS1 can in fact draw 256 sprites per scanline, perhaps it would be possible to double buffer sprites and reduce or outright eliminate flickering. Having too many enemies on screen will result in the enemies towards the end of RAM overflowing, leaving only enough room for a few items which only take up a few sprites. Due to the aforementioned sprite drawing priority system, first items and other inanimate objects will flicker, but eventually enemies will be affected too. In some of Final Fight's more action intensive scenes, some sprites will flicker or simply fail to draw. If the game detects that a sprite that should be drawn would overflow the 256 sprite limit, it will simply not draw the object. The outcome is random if sprite RAM is being updated at the same time it is being drawn.įinal Fight's sprite drawing system works on a priority system with players coming first, then bosses, enemies, and so on. It does this because updating a single buffer results in artifacts on the real hardware. Final Fight uses this extra RAM to double buffer the sprite data, alternating between buffers at $900000 and $904000. However, between the object and first scroll layer there is $8000 bytes available, or 16 times the amount of space for a single buffer. Since a sprite uses 4 words to designate its position, tile id, and attributes, a full sprite buffer is $800 bytes, or 2k. The CPS1 can show a maximum of 256 sprites per frame and per scanline, normally. The CPS1 controls where sprite ram is located via the "OBJ RAM base" pointer at $800100. But we have verified the technique on real hardware. You need the lastest build of Jotego's cps2 core with decryption support.įor Darksoft CPS2 Multi simply copy the FFAE directory to a freshly formatted SD Cards games directory.Not sure how many of you saw my previous post talking about doubling the sprites. If the process is successful you will have a "results" folder in the installers directory with folders for each of the different targets, mame, mister and darksoft containing each romįor mister please copy the zips to your games\mame folder and the mra to your normal mra location for cps2 games.Rezip your Final Fight or street fighter alpha rom using the built in windows "send to compressed (zipped) folder" option of the file browser and try again.If there is an issue with the roms you selected you should be alerted by the tool, if it reports ALL of the crcs being missing for a rom set it is because the zip file is not compatible with the java zip handling library.Install jdk 17, copy the installer to a directory in your user folder for example ~/ffaeinstaller, double click FinalFightAE-CPS2-Installer.jarĬhoose a Final Fight rom and Street Fighter Alpha 3 rom zip, merged or split roms should work, and click patch
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |