It looks like there's a lot of renewed interest in Model 3 emulation Excellent news for all of us Sega fans!
My contribution for the last two weeks has been rather small. I've been very busy with real life but I did manage to figure out a few small things since the last update. I got a few new games up and running: Daytona 2, Virtua Fighter 3, and LA Machineguns.
Based on my understanding of the Model 3's SCSI controller (a well-documented part), VF3 (and Scud Race, it turns out) is either using it incorrectly, in which case it only works on the real hardware by fortuitous coincidence, or simply abusing it. It appears the programmers may have implemented single-stepping incorrectly and accidentally trigger automatic execution the very first time the SCSI controller is used. This would explain why they include an explicit interrupt (equivalent to a 'halt') command at the end of their SCSI command sequences despite single stepping. My theory is that on the actual hardware, the SCSI controller frequently hits invalid instructions, but the programmers may have never realized it. We may never know for sure but I submit that it is plausible, especially given that the SCSI controller easily recovers from such errors. If I'm correct, these findings should be directly transferable to MAME's 53C810 emulation.
VF3 is still pretty buggy. I think it largely has to do with the rather large (in magnitude) coordinates it passes to the GPU, which may be causing a loss of precision in the Z-buffer, particularly if reciprocal values are used. This is probably fixable in the shaders.
LA Machineguns is a mess right now and it uses the much-hated 2D tile encryption, rendering the HUD as a series of solid black tiles. The game is still playable, however. I have not looked at it in much detail yet, although it is one of my favorite Model 3 games, but it suffers from some unusual graphics problems, namely missing road textures (appearing magenta in the screen shots) and a lack of lighting.
I'm pretty frustrated with LA Machineguns for sending me on a wild goose chase, hence the relative lack of progress this time. The game had me convinced that Model 3's tile generator supports extended layer sizes (128x64, for example, instead of just 64x64). After a few days of banging my head against the desk, I realized it was because I was returning all 1's for an un-emulated register.
Everything works great now. On the plus side, this minor fiasco forced me to sit down and figure out the remaining mysteries of the tile generator once and for all. I now understand how scrolling works and, thanks to Charles MacDonald's fantastic work on System 24, understand that there are only two tile layers, not four as previously thought. It turns out that Model 3's tile generator is not the same as the System 24 IC (also used in Model 1 and 2) but is clearly derived from it.
Next, I plan on rewriting the 2D code and returning to figuring out remaining problems with the 3D graphics. Sadly, my fast "dirty rectangles" implementation will have to be chucked out the window in situations where hardware scrolling is used.
Lastly, I think I've got the spotlight finally working. It has intrigued me for a while and it was nice to finally sit down and work it out. I have to thank our Spanish friend Abelardo for taking the time to record videos of Scud Race for me, which were instrumental in getting this to work properly. This Youtube video also proved to be very helpful. Just goes to show you how one person's completely pointless Youtube clip can be another's most valuable
News Source: Here
2011-03-02
one you fix that star wars arcade is closer that ever
ReplyDeletegod speed my friend...
once you fix that star wars arcade is closer that ever
ReplyDeletegod speed my friend...
Great Job everybody keep up the good work
ReplyDeleteLooking forward for more exiting news
release something that we can test , man
ReplyDeletewe are tired of seeing these sht all the time