Fixed bug with the last commit; the M0 and M1 graphics were completely

screwed up by my placement of the 'mmr' logic.

Added StayFrosty ROM info to properties database.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1863 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2009-08-27 23:30:30 +00:00
parent 67fec652b0
commit 933ecd6cd7
3 changed files with 39 additions and 48 deletions

View File

@ -26,7 +26,7 @@
regenerated and the application recompiled.
*/
#define DEF_PROPS_SIZE 3246
#define DEF_PROPS_SIZE 3247
static const char* DefProps[DEF_PROPS_SIZE][20] = {
{ "000509d1ed2b8d30a9d94be1b3b5febb", "Greg Zumwalt", "", "Jungle Jane (2003) (Greg Zumwalt) (Hack)", "Hack of Pitfall!", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -2478,6 +2478,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
{ "c5930d0e8cdae3e037349bfa08e871be", "Atari, Howard Scott Warshaw - Sears", "CX2655 - 49-75167", "Yars' Revenge (1982) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
{ "c59633dbebd926c150fb6d30b0576405", "Telegames", "5861 A030", "Bogey Blaster (1989) (Telegames)", "AKA Air Raiders", "Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "c5a76bafc4676edb76e0126fb9f0fb2d", "Charles Morgan", "", "Zero Patrol (Charles Morgan) (Hack)", "Hack of Moon Patrol", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "c5bab953ac13dbb2cba03cd0684fb125", "SpiceWare - Darrell Spice Jr.", "", "Stay Frosty (SpiceWare)", "Part of Stella's Stocking 2007 Xmas compilation", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
{ "c5c7cc66febf2d4e743b4459de7ed868", "Atari, Jerome Domurat, Steve Woita", "CX2696", "Asterix (1983) (Atari) (PAL) [a]", "AKA Taz", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "c5d2834bf98e90245e545573eb7e6bbc", "CCE", "", "Snoopy and the Red Baron (CCE)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "c5dd8399257d8862f3952be75c23e0eb", "Atari - GCC", "CX2680", "RealSports Tennis (1982) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },

View File

@ -821,6 +821,33 @@ inline void TIA::updateFrameScanline(uInt32 clocksToUpdate, uInt32 hpos)
myCurrentP1Mask = &TIATables::PxMask[myPOSP1 & 0x03]
[mySuppressP1][myNUSIZ1 & 0x07][160 - (myPOSP1 & 0xFC)];
// TODO - 08-27-2009: Simulate the weird effects of Cosmic Ark and
// Stay Frosty. The movement itself is well understood, but there
// also seems to be some widening and blanking occurring as well.
// This doesn't properly emulate the effect, but it does give a
// fair approximation. More testing is required to figure out
// what's really going on here.
if(myHMM0mmr && myPOSM0 % 4 == 3)
{
// Stretch this missle so it's at least 2 pixels wide
myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03]
[myNUSIZ0 & 0x07][((myNUSIZ0 & 0x30) >> 4) | 0x01]
[160 - (myPOSM0 & 0xFC)];
}
else
myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03]
[myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)];
if(myHMM1mmr && myPOSM1 % 4 == 3)
{
// Stretch this missle so it's at least 2 pixels wide
myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03]
[myNUSIZ1 & 0x07][((myNUSIZ1 & 0x30) >> 4) | 0x01]
[160 - (myPOSM1 & 0xFC)];
}
else
myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03]
[myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)];
switch(myEnabledObjects | myPlayfieldPriorityAndScore)
{
// Background
@ -1445,54 +1472,9 @@ void TIA::updateFrame(Int32 clock)
// Apply extra clocks for 'more motion required/mmr'
if(myHMP0mmr) { myPOSP0 -= 17; posChanged = true; }
if(myHMP1mmr) { myPOSP1 -= 17; posChanged = true; }
if(myHMM0mmr) { myPOSM0 -= 17; posChanged = true; }
if(myHMM1mmr) { myPOSM1 -= 17; posChanged = true; }
if(myHMBLmmr) { myPOSBL -= 17; posChanged = true; }
// TODO - 08-27-2009: Simulate the weird effects of Cosmic Ark and
// Stay Frosty. The movement itself is well understood, but there
// also seems to be some widening and blanking occurring as well.
// This doesn't properly emulate the effect, but it does give a
// fair approximation. More testing is required to figure out
// what's really going on here.
if(myHMM0mmr)
{
myPOSM0 -= 17; if(myPOSM0 < 0) { myPOSM0 += 160; } myPOSM0 %= 160;
if(myPOSM0 % 4 == 3)
{
// Stretch this missle so it's at least 2 pixels wide
myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03]
[myNUSIZ0 & 0x07][((myNUSIZ0 & 0x30) >> 4) | 0x01]
[160 - (myPOSM0 & 0xFC)];
}
else
myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03]
[myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)];
}
else
{
if(myPOSM0 < 0) { myPOSM0 += 160; } myPOSM0 %= 160;
myCurrentM0Mask = &TIATables::MxMask[myPOSM0 & 0x03]
[myNUSIZ0 & 0x07][(myNUSIZ0 & 0x30) >> 4][160 - (myPOSM0 & 0xFC)];
}
if(myHMM1mmr)
{
myPOSM1 -= 17; if(myPOSM1 < 0) { myPOSM1 += 160; } myPOSM1 %= 160;
if(myPOSM1 % 4 == 3)
{
// Stretch this missle so it's at least 2 pixels wide
myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03]
[myNUSIZ1 & 0x07][((myNUSIZ1 & 0x30) >> 4) | 0x01]
[160 - (myPOSM1 & 0xFC)];
}
else
myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03]
[myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)];
}
else
{
if(myPOSM1 < 0) { myPOSM1 += 160; } myPOSM1 %= 160;
myCurrentM1Mask = &TIATables::MxMask[myPOSM1 & 0x03]
[myNUSIZ1 & 0x07][(myNUSIZ1 & 0x30) >> 4][160 - (myPOSM1 & 0xFC)];
}
#endif
// Make sure positions are in range
if(posChanged)

View File

@ -19648,3 +19648,11 @@
"Cartridge.Name" "Challenge of.... Nexar, The (Jone Yuan) (Hack)"
"Cartridge.Note" "Hack"
""
"Cartridge.MD5" "c5bab953ac13dbb2cba03cd0684fb125"
"Cartridge.Manufacturer" "SpiceWare - Darrell Spice Jr."
"Cartridge.Name" "Stay Frosty (SpiceWare)"
"Cartridge.Note" "Part of Stella's Stocking 2007 Xmas compilation"
"Cartridge.Rarity" "Homebrew"
"Display.Phosphor" "YES"
""