Added "PAL60" support, which AFAIK is simply a PAL screenmode with a 60Hz

refresh rate.

Updated properties for AStar and Ladybug ROMs which have PAL60 versions.
Still TODO (now that the infrastructure is in place) is update all other
ROMs that might be PAL60.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1152 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2006-11-19 20:59:30 +00:00
parent 8ce5a7cdab
commit e1076ea369
5 changed files with 1458 additions and 1427 deletions

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: Console.cxx,v 1.99 2006-11-19 00:48:55 stephena Exp $ // $Id: Console.cxx,v 1.100 2006-11-19 20:59:29 stephena Exp $
//============================================================================ //============================================================================
#include <assert.h> #include <assert.h>
@ -84,7 +84,7 @@ Console::Console(const uInt8* image, uInt32 size, const string& md5,
setDeveloperProperties(); setDeveloperProperties();
// Make sure height is set properly for PAL ROM // Make sure height is set properly for PAL ROM
if(myProperties.get(Display_Format) == "PAL") if(myProperties.get(Display_Format).compare(0, 3, "PAL") == 0)
if(myProperties.get(Display_Height) == "210") if(myProperties.get(Display_Height) == "210")
myProperties.set(Display_Height, "250"); myProperties.set(Display_Height, "250");
@ -277,6 +277,13 @@ void Console::toggleFormat()
framerate = 50; framerate = 50;
} }
else if(format == "PAL") else if(format == "PAL")
{
myProperties.set(Display_Format, "PAL60");
mySystem->reset();
myOSystem->frameBuffer().showMessage("PAL60 Mode");
framerate = 60;
}
else if(format == "PAL60")
{ {
myProperties.set(Display_Format, "NTSC"); myProperties.set(Display_Format, "NTSC");
mySystem->reset(); mySystem->reset();
@ -396,13 +403,13 @@ void Console::initialize()
// This can be overridden by changing the framerate in the // This can be overridden by changing the framerate in the
// VideoDialog box or on the commandline, but it can't be saved // VideoDialog box or on the commandline, but it can't be saved
// (ie, framerate is now solely determined based on ROM format). // (ie, framerate is now solely determined based on ROM format).
uInt32 framerate = myOSystem->settings().getInt("framerate"); const string& format = myProperties.get(Display_Format);
int framerate = myOSystem->settings().getInt("framerate");
if(framerate == -1) if(framerate == -1)
{ {
const string& s = myProperties.get(Display_Format); if(format == "NTSC" || format == "PAL60")
if(s == "NTSC")
framerate = 60; framerate = 60;
else if(s == "PAL") else if(format == "PAL")
framerate = 50; framerate = 50;
else else
framerate = 60; framerate = 60;
@ -413,10 +420,10 @@ void Console::initialize()
// The # of channels can be overridden in the AudioDialog box or on // The # of channels can be overridden in the AudioDialog box or on
// the commandline, but it can't be saved. // the commandline, but it can't be saved.
uInt32 channels; uInt32 channels;
const string& s = myProperties.get(Cartridge_Sound); const string& sound = myProperties.get(Cartridge_Sound);
if(s == "STEREO") if(sound == "STEREO")
channels = 2; channels = 2;
else if(s == "MONO") else if(sound == "MONO")
channels = 1; channels = 1;
else else
channels = 1; channels = 1;

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: TIA.cxx,v 1.69 2006-08-31 02:31:28 bwmott Exp $ // $Id: TIA.cxx,v 1.70 2006-11-19 20:59:30 stephena Exp $
//============================================================================ //============================================================================
#include <cassert> #include <cassert>
@ -237,12 +237,12 @@ void TIA::reset()
myFrameWidth = 160; myFrameWidth = 160;
} }
if(myConsole.properties().get(Display_Format) == "PAL") if(myConsole.properties().get(Display_Format).compare(0, 3, "PAL") == 0)
{ {
myColorLossEnabled = true; myColorLossEnabled = true;
myMaximumNumberOfScanlines = 342; myMaximumNumberOfScanlines = 342;
} }
else else // NTSC
{ {
myColorLossEnabled = false; myColorLossEnabled = false;
myMaximumNumberOfScanlines = 290; myMaximumNumberOfScanlines = 290;
@ -692,13 +692,13 @@ const uInt32* TIA::palette() const
const string& format = myConsole.properties().get(Display_Format); const string& format = myConsole.properties().get(Display_Format);
if(type == "standard") if(type == "standard")
return (format == "PAL") ? ourPALPalette : ourNTSCPalette; return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
else if(type == "original") else if(type == "original")
return (format == "PAL") ? ourPALPalette11 : ourNTSCPalette11; return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette11 : ourNTSCPalette11;
else if(type == "z26") else if(type == "z26")
return (format == "PAL") ? ourPALPaletteZ26 : ourNTSCPaletteZ26; return (format.compare(0, 3, "PAL") == 0) ? ourPALPaletteZ26 : ourNTSCPaletteZ26;
else // return normal palette by default else // return normal palette by default
return (format == "PAL") ? ourPALPalette : ourNTSCPalette; return (format.compare(0, 3, "PAL") == 0) ? ourPALPalette : ourNTSCPalette;
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -1,3 +1,17 @@
"Cartridge.MD5" "00f7985c20b8bdf3c557fac4d3f26775"
"Cartridge.Manufacturer" "Aaron Curtis"
"Cartridge.Name" "AStar (NTSC)"
"Cartridge.Rarity" "Homebrew"
""
"Cartridge.MD5" "a3fee8ce15525ea00d45a06f04c215d1"
"Cartridge.Manufacturer" "Aaron Curtis"
"Cartridge.Name" "AStar (PAL60)"
"Cartridge.Rarity" "Homebrew"
"Display.Format" "PAL60"
"Display.Height" "250"
""
"Cartridge.MD5" "9b150a42fc788960fbb4cbe250259ee2" "Cartridge.MD5" "9b150a42fc788960fbb4cbe250259ee2"
"Cartridge.Name" "3E Bankswitch Test (TIA @ $40)" "Cartridge.Name" "3E Bankswitch Test (TIA @ $40)"
"Cartridge.Manufacturer" "Kroko" "Cartridge.Manufacturer" "Kroko"
@ -20913,7 +20927,7 @@
"Cartridge.Name" "Lady Bug (PAL60)" "Cartridge.Name" "Lady Bug (PAL60)"
"Cartridge.Rarity" "Homebrew" "Cartridge.Rarity" "Homebrew"
"Console.RightDifficulty" "A" "Console.RightDifficulty" "A"
"Display.Format" "PAL" "Display.Format" "PAL60"
"Display.Phosphor" "YES" "Display.Phosphor" "YES"
"" ""
@ -20928,3 +20942,10 @@
"Cartridge.Name" "Andrew Davies early notBoulderDash demo (NTSC)" "Cartridge.Name" "Andrew Davies early notBoulderDash demo (NTSC)"
"Display.Phosphor" "YES" "Display.Phosphor" "YES"
"" ""
"Cartridge.MD5" "3fd1f9d66a418c9f787fc5799174ddb7"
"Cartridge.Manufacturer" "Aaron Curtis"
"Cartridge.Name" "AStar (PAL)"
"Cartridge.Rarity" "Homebrew"
"Display.Format" "PAL"
""

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: GameInfoDialog.cxx,v 1.26 2006-11-04 19:38:25 stephena Exp $ // $Id: GameInfoDialog.cxx,v 1.27 2006-11-19 20:59:30 stephena Exp $
// //
// Based on code from ScummVM - Scumm Interpreter // Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project // Copyright (C) 2002-2004 The ScummVM project
@ -201,13 +201,14 @@ GameInfoDialog::GameInfoDialog(
xpos = 10; ypos = vBorder; xpos = 10; ypos = vBorder;
lwidth = font.getStringWidth("Use Phosphor: "); lwidth = font.getStringWidth("Use Phosphor: ");
pwidth = font.getStringWidth("NTSC"); pwidth = font.getStringWidth("PAL60");
new StaticTextWidget(myTab, font, xpos, ypos+1, lwidth, fontHeight, new StaticTextWidget(myTab, font, xpos, ypos+1, lwidth, fontHeight,
"Format:", kTextAlignLeft); "Format:", kTextAlignLeft);
myFormat = new PopUpWidget(myTab, font, xpos+lwidth, ypos, myFormat = new PopUpWidget(myTab, font, xpos+lwidth, ypos,
pwidth, lineHeight, "", 0, 0); pwidth, lineHeight, "", 0, 0);
myFormat->appendEntry("NTSC", 1); myFormat->appendEntry("NTSC", 1);
myFormat->appendEntry("PAL", 2); myFormat->appendEntry("PAL", 2);
myFormat->appendEntry("PAL60", 3);
wid.push_back(myFormat); wid.push_back(myFormat);
ypos += lineHeight + 3; ypos += lineHeight + 3;
@ -403,6 +404,8 @@ void GameInfoDialog::loadConfig()
myFormat->setSelectedTag(1); myFormat->setSelectedTag(1);
else if(s == "PAL") else if(s == "PAL")
myFormat->setSelectedTag(2); myFormat->setSelectedTag(2);
else if(s == "PAL60")
myFormat->setSelectedTag(3);
else else
myFormat->setSelectedTag(0); myFormat->setSelectedTag(0);
@ -523,7 +526,7 @@ void GameInfoDialog::saveConfig()
// Display properties // Display properties
tag = myFormat->getSelectedTag(); tag = myFormat->getSelectedTag();
s = (tag == 1) ? "NTSC" : "PAL"; s = (tag == 3) ? "PAL60" : (tag == 2) ? "PAL" : "NTSC";
myGameProperties->set(Display_Format, s); myGameProperties->set(Display_Format, s);
s = myXStart->getEditString(); s = myXStart->getEditString();