(WIP) Small Supermodel WIP - 模擬器

By Joe
at 2011-03-02T19:25
at 2011-03-02T19:25
Table of Contents
2011.03.02
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.
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_0.png
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_5.png
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_2.png
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_3.png
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_4.png
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
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_1.png
______________________________________________________________________________
來源:http://www.mameworld.info/ubbthreads/showflat.php?Number=247743
--
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.
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_0.png





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
http://i20.photobucket.com/albums/b244/trzy/WIP_03012011_1.png

來源:http://www.mameworld.info/ubbthreads/showflat.php?Number=247743
--
Tags:
模擬器
All Comments

By Skylar DavisLinda
at 2011-03-06T00:08
at 2011-03-06T00:08
Related Posts
(Rom Management) ClrMamePro v3.137d

By Liam
at 2011-03-02T19:17
at 2011-03-02T19:17
吞食天地Ⅱ亂世英雄傳 簡易流程攻略(八)

By Agatha
at 2011-03-02T19:13
at 2011-03-02T19:13
wxMupen64Plus v0.1

By Noah
at 2011-03-02T12:51
at 2011-03-02T12:51
DSP Emulator v0.11b1 WIP (2011/03/01)

By Kama
at 2011-03-02T12:49
at 2011-03-02T12:49
M1.XML 20110228

By Isla
at 2011-03-01T23:24
at 2011-03-01T23:24