Changed my mind again, and decided to reactive the ROM Info stuff; it's

just too cool a feature not to include in the next release ;)

Checked in some updated UI font-aware code.  All of the UI's are not
converted yet, but for the next release the only one that really matters
is LauncherDialog.

Added '-launcherfont' commandline argument and associated UI config
to set the size of the font used in the ROM launcher (for now, small
or large).  This is useful if you activate the ROM Info and can't
zoom the entire UI by 2x.  Previously, this meant the ROM listing font
was very small, but now you can have the launcher in 1x mode with a
larger font *and* the ROM info stuff also visible.  More changes are
coming in a future release, so this will have to do for now.

Reworked UIDialog to contain tabs, since the options were starting to
become unwieldy.

This pretty much ties up the last remaining items for this release,
so after a little testing and updating the manual, it's time for 2.5.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1438 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2008-03-23 16:22:46 +00:00
parent adf9109b36
commit 848bef86f5
25 changed files with 431 additions and 405 deletions

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: FrameBufferGL.cxx,v 1.99 2008-03-13 22:58:05 stephena Exp $
// $Id: FrameBufferGL.cxx,v 1.100 2008-03-23 16:22:39 stephena Exp $
//============================================================================
#ifdef DISPLAY_OPENGL
@ -529,20 +529,21 @@ void FrameBufferGL::fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color)
void FrameBufferGL::drawChar(const GUI::Font* font, uInt8 chr,
uInt32 tx, uInt32 ty, int color)
{
const FontDesc& desc = font->desc();
// If this character is not included in the font, use the default char.
if(chr < font->desc().firstchar ||
chr >= font->desc().firstchar + font->desc().size)
if(chr < desc.firstchar || chr >= desc.firstchar + desc.size)
{
if (chr == ' ')
return;
chr = font->desc().defaultchar;
chr = desc.defaultchar;
}
const Int32 w = font->getCharWidth(chr);
const Int32 h = font->getFontHeight();
chr -= font->desc().firstchar;
const uInt16* tmp = font->desc().bits + (font->desc().offset ?
font->desc().offset[chr] : (chr * h));
chr -= desc.firstchar;
const uInt16* tmp = desc.bits + (desc.offset ?
desc.offset[chr] : (chr * h));
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myBuffer.pitch + tx;
for(int y = 0; y < h; ++y)

View File

@ -8,7 +8,7 @@
regenerated and the application recompiled.
*/
#define DEF_PROPS_SIZE 2992
#define DEF_PROPS_SIZE 2979
static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "000509d1ed2b8d30a9d94be1b3b5febb", "Greg Zumwalt", "", "Jungle Jane (2003) (Greg Zumwalt) (Hack)", "Hack of Pitfall!", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -86,6 +86,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "0685bd0bcb975ceef7041749a5454a48", "Piero Cavina", "", "11 Sprite Demo (Piero Cavina) (PD)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "06953ed762220dba63d63930d4ad0cc3", "", "", "Star Fire - Eckhard WIP (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "069c17beb1e8e0557adb8539fdcf6cba", "", "", "Phantom II & Pirate (PAL60)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "PAL60", "", "", "", "", "" },
{ "06b0194ce992584c365278e0d7323279", "Activision", "", "Unknown Activision Game #2 (Prototype) (PAL)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "06b6c5031b8353f3a424a5b86b8fe409", "Activision, Mike Lorenzen - Ariola", "EAX-023 - 711 023-720", "Oink! (1983) (Activision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "250", "", "", "" },
{ "06cfd57f0559f38b9293adae9128ff88", "Telegames", "4317 A009", "Adventures on GX-12 (1989) (Telegames) (PAL)", "AKA Adventures of Tron", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "06db908011065e5ebb37f4e253c2a0b0", "", "", "Goufer (Unknown) (PAL)", "AKA Gopher", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -119,7 +120,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "08bd4c1dcc843f6a0b563d9fd80b3b11", "Quelle", "343.273 9", "Phantompanzer II (1983) (Quelle) (PAL)", "AKA Thunderground", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "08d1b6d75206edb999252caf542a2c7f", "Larry Petit", "", "Super Home Run (2003) (Larry Petit) (Hack)", "Hack of Home Run", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "08d60a58a691c7f690162850302dc0e1", "", "", "Poker Squares (V0.27) (PAL) (2001) (B. Watson)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "08f4dc6f118f7c98e2406c180c08e78e", "Starpath", "", "Party Mix (2 of 3) (1982) (Starpath) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "08f853e8e01e711919e734d85349220d", "Atari, Jerome Domurat, Michael Sierchio", "CX2667", "RealSports Soccer (1983) (Atari) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "0906c6e0e4bda9c10cfa4c5fc64d2f4b", "Retroactive", "", "Qb (V0.12) (NTSC) (2001) (Retroactive)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "090f0a7ef8a3f885048d213faa59b2f8", "Carrere Video - Teldec", "USC1012", "M.A.D. (1983) (Carrere Video) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -187,7 +187,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "0e08cd2c5bcf11c6a7e5a009a7715b6a", "", "", "Boing! (PD) [a1]", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "0e224ea74310da4e7e2103400eb1b4bf", "Atari, Peter C. Niday, Howard Scott Warshaw", "", "Mind Maze (1984) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "0e7e73421606873b544e858c59dc283e", "Digivision", "", "Super Soccer (Digivision)", "AKA RealSports Soccer", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "0e86470791b26292abe1c64545c47985", "Starpath", "", "Party Mix (3 of 3) (1982) (Starpath) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "0eebfb60d437796d536039701ec43845", "Fabrizio Zavagli", "", "Cakewalk (Fabrizio Zavagli)", "NTSC Conversion", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "0eecb5f58f55de9db4eedb3a0f6b74a8", "Xonox - Beck-Tech", "6210, 06002, 06004, 99002", "Ghost Manor (1983) (Xonox) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "30", "", "", "", "" },
{ "0ef64cdbecccb7049752a3de0b7ade14", "Atari, Joe Decuir, Steve Mayer, Larry Wagner", "CX26163P", "Combat (32 in 1) (1988) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "39", "256", "", "", "" },
@ -355,7 +354,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "1d6ed6fe9dfbde32708e8353548cbb80", "Jone Yuan Telephonic Enterprise Co", "", "Super Challenge Baseball (Jone Yuan)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1da2da7974d2ca73a823523f82f517b3", "Spectravision, Spectravideo, David Lubar", "SA-206", "Challenge of.... Nexar, The (1982) (Spectravision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1db3bc4601f22cf43be7ce015d74f59a", "", "", "Ship Demo (V 10) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1e060a8025512ad2127e3da11e212ccc", "Starpath", "", "Sweat! - Decathalon Game (2 of 2) (1982) (Starpath) (Prototype)", "", "Prototype", "", "", "", "", "", "", "PADDLES", "", "", "", "", "", "", "", "" },
{ "1e0ef01e330e5b91387f75f700ccaf8f", "Quelle", "686.561 2 - 781627", "Mein Weg (1983) (Quelle) (PAL)", "AKA Challenge", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1e1290ea102e12d7ac52820961457e2b", "", "", "Star Wars - The Arcade Game (Parker Bros) (Prototype 121583)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "1e1817d9cbcc3ba75043b7db4e6c228f", "", "", "Star Fire (07-10-2002) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -369,7 +367,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "1ec5bef77b91e59313cba205f15b06d7", "", "", "Overhead Adventure Demo 1 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "64", "", "", "", "" },
{ "1ede4f365ce1386d58f121b15a775e24", "Parker Brothers, Dave Hampton, Tom Sloper", "931517", "Q-bert (1983) (Parker Bros) (PAL) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1edfbde1dba5498c14dcb80277cd9b99", "", "", "Death Derby (v0006) (2001) (Glenn Saunders) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1ee2cfc7d0333b96bd11f7f3ec8ce8bc", "Starpath", "AR-4200", "Escape from the Mindmaster (4 of 4) (1982) (Starpath) (PAL)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1ee9c1ba95cef2cf987d63f176c54ac3", "Atari - GCC, Mark Ackerman, Glenn Parker", "CX2675, CX2675P", "Ms. Pac-Man (1982) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1f21666b8f78b65051b7a609f1d48608", "Ultravision", "1043", "Condor Attack (1982) (Ultravision)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "1f2ae0c70a04c980c838c2cdc412cf45", "Atari - GCC", "CX2698", "Rubik's Cube (1984) (Atari)", "AKA Atari Video Cube", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -666,7 +663,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "36a701c60a9f9768d057bc2a83526a80", "", "", "Cube Conquest (Interlaced) (Billy Eno) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "36b20c427975760cb9cf4a47e41369e4", "Atari", "CX26143", "Donkey Kong (1987) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "36c29ceee2c151b23a1ad7aa04bd529d", "Atari - GCC, Ava-Robin Cohen", "CX26123", "Jr. Pac-Man (1984) (Atari)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "36c31bb5daeb103f488c66de67ac5075", "Starpath", "", "Party Mix (1 of 3) (1982) (Starpath)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "36c993dc328933e4dd6374a8ffe224f4", "Gameworld", "133-007", "Bermuda Triangle (1983) (Gameworld) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "48", "250", "", "", "" },
{ "36e47ed74968c365121eab60f48c6517", "Spectravideo - Quelle", "SA-210 - 413.582 8", "Master Builder (1983) (Spectravideo) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "36edef446ab4c2395666efc672b92ed0", "Atari - Axlon", "CX26168", "Off the Wall (1989) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1112,7 +1108,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "5e2495d43b981010304af55efed1e798", "Jone Yuan Telephonic Enterprise Co", "", "Math Gran Prix (Jone Yuan)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "5e2928f089490017e88e9f9e5a881a25", "", "", "Star Fire - Faster Skipping 1 (24-10-2002) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "5e99aa93d0acc741dcda8752c4e813ce", "", "", "2600 Digital Clock (V b2) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "5ec73ac7d2ac95ac9530c6d33e713d14", "Starpath", "", "Sweat! - Decathalon Game (1 of 2) (1982) (Starpath) (Prototype)", "", "Prototype", "", "", "", "", "", "", "PADDLES", "", "", "", "", "", "", "", "" },
{ "5eeb81292992e057b290a5cd196f155d", "Wizard Video Games, Ed Salvo", "008", "Texas Chainsaw Massacre (1983) (Wizard Video)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "5ef303b9f0aa8cf20720c560e5f9baa1", "Atari, Jim Huether", "CX2629, CX2629P", "Sky Diver (1979) (Atari) (PAL) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "5f17fef8a64d64d119f8e76c50238762", "", "", "Acid Drop (1992) (Salu) (PAL) [b1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1176,7 +1171,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "637efac676ff063f2fbb0abff77c4fa5", "", "", "Noize Maker Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "63811ed69bdbc35c69d8aa7806c3d6e9", "Atari", "CX26163P", "Homerun (32 in 1) (1988) (Atari) (PAL) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "638cc82ea96f67674595ba9ae05da6c6", "Rainbow Vision - Suntek", "SS-011", "Super Ferrari (Rainbow Vision) (PAL)", "AKA Enduro", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "639ded0c9e53bc3f91defb5dde930286", "Starpath", "", "SuperCharger - Escape from the Mindmaster (4 of 4) (1982) (Starpath) [a1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "63a6eda1da30446569ac76211d0f861c", "Activision, David Crane", "AG-001", "Dragster (1980) (Activision) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "27", "", "", "", "" },
{ "63a7445b1d3046d3cdcdbd488dca38d9", "Rob Kudla", "", "Better Space Invaders (1999) (Rob Kudla) (Hack)", "Hack of Space Invaders", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "63c5fef3208bb1424d26cf1ab984b40c", "", "", "Analog Clock (V0.1) (20-01-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1313,7 +1307,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "6e59dd52f88c00d5060eac56c1a0b0d3", "Atari, Bob Smith", "CX2648", "Video Pinball (1981) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "6e5d5ba193d2540aec2e847aafb2a5fb", "Retroactive", "", "Qb (2.14) (Retroactive) (NTSC)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "6e7ed74082f39ad4166c823765a59909", "", "", "Poker Squares (V0.14) (2001) (B. Watson)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "6ed5012793f5ddf4353a48c11ea9b8d3", "Starpath", "", "Party Mix (3 of 3) (1982) (Starpath)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "6efe876168e2d45d4719b6a61355e5fe", "Bit Corporation", "PG207", "Mission 3,000 A.D. (1983) (BitCorp) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "6f084daf265599f65422ef4173b69bc7", "", "", "Music Kit (V2.0) - Song Player (Paul Slocum)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "6f2aaffaaf53d23a28bf6677b86ac0e3", "U.S. Games Corporation, Garry Kitchen - Vidtec", "VC1001", "Space Jockey (1982) (U.S. Games)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1331,7 +1324,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "6fe67f525c39200a798985e419431805", "Atari - GCC, Kevin Osborn", "CX2689, CX2689P", "Kangaroo (1983) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "6ff4156d10b357f61f09820d03c0f852", "Atari, Larry Kaplan - Sears", "CX2612 - 99804, 49-75103", "Street Racer (1977) (Atari) (4K)", "Uses the Paddle Controllers (swapped)", "", "", "", "", "", "", "", "PADDLES", "PADDLES", "YES", "", "", "", "", "", "" },
{ "6ffc95108e5add6f9b8abcaf330be835", "Charles Morgan", "", "TP Bug (Charles Morgan) (Hack)", "Hack of Pac-Man", "Hack", "", "", "", "", "", "", "", "", "", "", "33", "", "", "", "" },
{ "700a786471c8a91ec09e2f8e47f14a04", "Activision", "", "Unknown Activision Game #2 (1983) (Activision) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "37", "", "", "", "" },
{ "700a786471c8a91ec09e2f8e47f14a04", "Activision", "", "Unknown Activision Game #2 (Activision) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "37", "", "", "", "" },
{ "703d32062436e4c20c48313dff30e257", "", "", "Moving Maze Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "703f0f7af350b0fa29dfe5fbf45d0d75", "Bit Corporation", "P460", "4 Game in One Dark Green (1983) (BitCorp) (PAL)", "Rodeo Champ, Open Sesame, Bobby is Going Home, Festival", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "705fe719179e65b0af328644f3a04900", "Atari, David Crane - Sears", "CX2653 - 6-99823, 49-75111", "Slot Machine (1979) (Atari) (4K) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1449,7 +1442,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "7a09299f473105ae1ef3ad6f9f2cd807", "Atari, Steve Wright", "CX2616P", "Championship Soccer (1980) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a2af383014f5d810ad26d322823549d", "", "", "FlickerSort Demo (20-04-2002) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a5463545dfb2dcfdafa6074b2f2c15e", "20th Century Fox Video Games, Mark Turmell", "11007", "Turmoil (1982) (20th Century Fox)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a63d7ea3f2851bcf04f0bb4ba1a3929", "Starpath", "AR-4200", "Escape from the Mindmaster (3 of 4) (1982) (Starpath)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a64a8b727c8215d945e37d565ca95a5", "Atari, Warren Robinett", "CX2606", "Slot Racers (1978) (Atari) (PAL) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a64b5a6e90619c6aacf244cdd7502f8", "Baroque Gaming (Brian Eno)", "", "Warring Worms (Beta 1) (2002) (Baroque Gaming)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "7a7f6ab9215a3a6b5940b8737f116359", "Starpath Corporation, Kevin Norman", "AR-4103", "Killer Satellites (Preview) (1983) (Starpath)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1528,6 +1520,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "7ffc2d80fd49a124808315306d19868e", "Ishido", "", "Domino (Ishido) (PD)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "801ba40f3290fc413e8c816c467c765c", "Hozer Video Games", "", "Gunfight 2600 - Westward Ho! (2001) (MP)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "804ed85eadf1ce3e93721547cbea7592", "CCE", "", "Fishing Derby (CCE) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "8055b9c2622136fd91edfea6df642daf", "Activision", "", "Unknown Activision Game #1 (1983) (Activision) (Prototype) (PAL)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "805f9a32ef97ac25f999a25014dc5c23", "SnailSoft", "", "Balthazar (SnailSoft)", "AKA Babylon 5", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "8068e07b484dfd661158b3771d6621ca", "Epyx, Steven A. Baker, Peter Engelbrite", "80561-00286", "California Games (1988) (Epyx) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "807a8ff6216b00d52aba2dfea5d8d860", "John Payson", "", "Strat-O-Gems Deluxe", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1817,7 +1810,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "9a25b3cfe2bbb847b66a97282200cca2", "Atari, Steve Jobs, Brad Stewart - Sears", "CX2622 - 6-99813, 49-75107", "Breakout (1978) (Atari) (4K)", "Uses the Paddle Controllers", "", "", "", "", "", "", "", "PADDLES", "", "", "", "", "", "", "", "" },
{ "9a4274409216ff09ecde799f2a56ac73", "CCE", "C-801", "Mr. Postman (1983) (CCE) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "9ab72d3fd2cc1a0c9adb504502579037", "Epyx, Steven A. Baker, Peter Engelbrite", "80561-00286", "California Games (1988) (Epyx)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "9ad362179c2eea4ea115c7640b4b003e", "", "", "Barnstorming (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "9ad362179c2eea4ea115c7640b4b003e", "", "", "Barnstorming (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "NTSC50", "", "", "", "", "" },
{ "9ad36e699ef6f45d9eb6c4cf90475c9f", "Imagic, Dennis Koble", "IA3203, IX-010-04", "Atlantis (1982) (Imagic)", "AKA Lost City of Atlantis", "Uncommon", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "9aeb5206c5bf974892a9cc59f1478db3", "Activision, Steve Cartwright", "AX-013", "Barnstorming (1982) (Activision) (8K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "9b150a42fc788960fbb4cbe250259ee2", "Kroko", "", "3E Bankswitch Test (TIA @ $40)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -1876,7 +1869,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "a0297c4788f9e91d43e522f4c561b4ad", "Atari, Gary Stark", "CX26102", "Cookie Monster Munch (1983) (Atari) (PAL)", "Uses Kids/Keypad Controllers", "", "", "", "", "", "", "", "KEYBOARD", "KEYBOARD", "", "", "", "", "", "", "" },
{ "a0563dd6d8215c38c488fbbd61435626", "", "", "Ship Demo (V 1501) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "a0675883f9b09a3595ddd66a6f5d3498", "Telegames", "6057 A227", "Quest for Quintana Roo (1989) (Telegames)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "a075ad332942740c386f4c3814925ece", "Starpath", "AR-4200", "Escape from the Mindmaster (2 of 4) (1982) (Starpath) (PAL)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "a0d502dc8b90b1d7daa5f6effb10d349", "", "", "Demo Image Series #5 - Sam (19-02-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "a0e2d310e3e98646268200c8f0f08f46", "Atari, Ed Logg, Carol Shaw", "CX2639, CX2639P", "Othello (1981) (Atari) (PAL) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "a100eff2d7ae61ca2b8e65baf7e2aae8", "David Marli", "", "Muncher (David Marli) (Hack)", "Hack of Pac-Man", "Hack", "", "", "", "", "", "", "", "", "", "", "33", "", "", "", "" },
@ -1989,7 +1981,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "aab840db22075aa0f6a6b83a597f8890", "Home Vision - Gem Int'l Corp. - R.J.P.G.", "VCS83124", "Racing Car (1983) (Home Vision) (PAL)", "", "", "", "", "", "", "", "YES", "", "", "", "", "", "250", "", "", "" },
{ "aacbf0dd6021bc5f4cee6c96ff37e84f", "", "", "Death Derby (v0001) (2001) (Glenn Saunders) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "aad91be0bf78d33d29758876d999848a", "Activision, David Crane", "AX-018, AX-018-04", "Pitfall! (1981) (Activision) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "aaea37b65db9e492798f0105a6915e96", "Starpath", "", "Party Mix (2 of 3) (1982) (Starpath)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "aafc79ffc32c4c9b2d73c8ada7602cfe", "", "", "Planet Patrol (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ab10f2974dee73dab4579f0cab35fca6", "Home Vision - Gem Int'l Corp.", "VCS83117", "Lilly Adventure (1983) (Home Vision) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ab2ea35dcc1098c87455bb8210b018cf", "", "", "Fu Kung! (V0.04 Single Line Resolution) (10-01-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -2343,7 +2334,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "cc03c68b8348b62331964d7a3dbec381", "Jone Yuan Telephonic Enterprise Co", "", "Marauder (Jone Yuan)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc12581e079cd18330a89902625b8347", "Dave Neuman", "", "Space Battle (PAL)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc1727dadf82e8fbf152e47d7e88d6c9", "", "", "Death Derby (v0004) (2001) (Glenn Saunders) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc1939e4769d0c157ace326efcfdcf80", "Starpath", "AR-4200", "Escape from the Mindmaster (3 of 4) (1982) (Starpath) (PAL)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc2973680c150886cce1ed8693c3aca2", "Quelle", "874.254 6", "Super-Cowboy beim Rodeo (1983) (Quelle) (PAL) (4K)", "AKA Stampede", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc3d942c6958bd16b1c602623f59e6e1", "Atari, Bill Aspromonte, John Russell, Michael Sierchio, Robert Zdybel", "CX26114", "Pigs in Space (1983) (Atari) (PAL) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "cc74ddb45d7bc4d04c2e6f1907416699", "", "", "Colour Display Programme (1997) (Chris Cracknell)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -2797,7 +2787,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "f032b2f2d8323404a6b4541f92dd1825", "", "", "Many Blue Bars and Text Demo 3 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f047df70d3d08e331122cd2de61d6af8", "Dave Neuman", "", "Space Battle (NTSC)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f04ee80011d95798006378643650aaa7", "Atari, Bill Aspromonte, John Russell, Michael Sierchio, Robert Zdybel", "CX26114", "Pigs in Space (1983) (Atari) (Prototype)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f0536303f49006806bac3aec15738336", "Starpath", "AR-4200", "Escape from the Mindmaster (4 of 4) (1982) (Starpath)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f0541d2f7cda5ec7bab6d62b6128b823", "Atari, Paul Donaldson", "", "Bionic Breakthrough (1984) (Atari) (Prototype)", "Uses Mindlink Controller (left only)", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f060826626aac9e0d8cda0282f4b7fc3", "Atari, David Crane - Sears", "CX2605 - 6-99822, 49-75109", "Outlaw (1978) (Atari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "f0631c6675033428238408885d7e4fde", "Paul Slocum", "", "Test Cart (2002) (Paul Slocum)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
@ -2966,7 +2955,7 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "fc6052438f339aea373bbc999433388a", "Atari, David Crane", "CX2653P", "Slot Machine (1979) (Atari) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fc668a2251dd79cbd903d4fa0e558f96", "", "", "Thrust (V1.1) (2000) (TJ) [a1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fc92d74f073a44bc6e46a3b3fa8256a2", "", "", "Megademo (19xx) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fc9c1652fe3a2cade6188f4d3692481f", "", "", "Andrew Davies early notBoulderDash demo (NTSC)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "fc9c1652fe3a2cade6188f4d3692481f", "", "", "Andrew Davies early notBoulderDash demo (NTSC)", "", "", "", "", "", "", "", "", "", "", "", "NTSC", "", "", "YES", "", "" },
{ "fca4a5be1251927027f2c24774a02160", "Activision, John Van Ryzin", "AZ-036-04", "H.E.R.O. (1984) (Activision)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fcea12625c071ddc49f4e409f4038c60", "Fabrizio Zavagli", "", "Balls! (16-09-2002) (Fabrizio Zavagli)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "" },
{ "fcf8e306f6615f74feba5cb25550038c", "", "", "Blue Dot Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -2978,7 +2967,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "fd8b4ee0d57605b35e236e814f706ff1", "Atari - GCC, Mike Feinstein, John Mracek", "CX2673, CX2673P", "Phoenix (1982) (Atari) (PAL) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fd9b321cee5fbb32c39ba3ca5d9ec7cf", "Jeffry Johnston", "", "Radial Pong - Version 5 (Jeffry Johnston) (PD)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fdd4995a50395db14f518f63c2d63438", "", "", "Oh No! (Version 3) (18-01-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fdf0de38517e0cf7f0885f98ccc95836", "Starpath", "AR-4200", "Escape from the Mindmaster (2 of 4) (1982) (Starpath)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fdf6680b2b1e8054293a39700a765692", "", "", "Alpha Demo - The Beta Demo 2 (2000) (MP)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fe0b7f27e3ad50bbf9ff468ee56d553d", "", "", "Lines Demo (Eckhard Stolberg) (PAL) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "fe0bc4bb92c1c4de7d5706aaa8d8c10d", "", "", "Sprite Demo 2 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
@ -2996,7 +2984,6 @@ static const char* DefProps[DEF_PROPS_SIZE][21] = {
{ "ff4ed162386c795b4fb434903295b571", "", "", "Death Derby (v0002) (2001) (Glenn Saunders) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ff5a9e340d96df6f5a5b6eb038e923bd", "", "", "Space Shuttle (1983) (Activision) [t1]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ff7627207e8aa03730c35c735a82c26c", "Atari, Bob Whitehead", "CX26163P", "Blackjack (32 in 1) (1988) (Atari) (PAL)", "Uses the Paddle Controllers", "", "", "", "", "", "", "", "PADDLES", "", "", "", "63", "", "", "", "" },
{ "ff86fc8ffa717bb095e8471638c1c31c", "Starpath", "", "Party Mix (1 of 3) (1982) (Starpath) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ff87d58125ae517eb7b09a0475a1ccdc", "", "", "SCSIcide (Score Hack 1) (24-02-2001) (Joe Grand) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ffb1cd548563158ce33f9d10268187e7", "Erik Eid", "", "Euchre (Beta) (NTSC) (12-09-2002) (Erik Eid)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
{ "ffc0ff4305dd46b4b459885bd1818e2e", "Barry Laws Jr.", "", "Star Wars - The Battle of Alderaan (Star Strike Hack)", "Hack of Star Strike (Mattel)", "New Release (Hack)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: OSystem.cxx,v 1.118 2008-03-14 19:34:56 stephena Exp $
// $Id: OSystem.cxx,v 1.119 2008-03-23 16:22:40 stephena Exp $
//============================================================================
#include <cassert>
@ -44,6 +44,7 @@
#include "Launcher.hxx"
#include "Font.hxx"
#include "StellaFont.hxx"
#include "StellaLargeFont.hxx"
#include "ConsoleFont.hxx"
#include "Widget.hxx"
#include "Console.hxx"
@ -166,9 +167,16 @@ bool OSystem::create()
queryVideoHardware();
// Create fonts to draw text
// TODO - this should be configurable, and also depend on the minimum
// size of the launcher and maximum size of the TIA window
// The logic must be taken care of here, so the GUI classes
// can just create the interface and not worry about checking
myFont = new GUI::Font(GUI::stellaDesc);
myLauncherFont = new GUI::Font(GUI::stellaDesc);
myConsoleFont = new GUI::Font(GUI::consoleDesc);
if(mySettings->getString("launcherfont") == "small")
myLauncherFont = new GUI::Font(GUI::stellaDesc);
else
myLauncherFont = new GUI::Font(GUI::stellaLargeDesc);
// Create the event handler for the system
myEventHandler = new EventHandler(this);

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Settings.cxx,v 1.136 2008-03-22 18:17:59 stephena Exp $
// $Id: Settings.cxx,v 1.137 2008-03-23 16:22:40 stephena Exp $
//============================================================================
#include <cassert>
@ -89,8 +89,9 @@ Settings::Settings(OSystem* osystem)
setInternal("romviewer", "false");
// UI-related options
setInternal("launcherres", "640x480");
setInternal("launcherfont", "small");
setInternal("debuggerres", "1030x690");
setInternal("launcherres", "400x300");
setInternal("uipalette", "0");
setInternal("mwheel", "4");
@ -253,6 +254,10 @@ void Settings::validate()
s = getString("palette");
if(s != "standard" && s != "z26" && s != "user")
setInternal("palette", "standard");
s = getString("launcherfont");
if(s != "small" && s != "large")
setInternal("launcherfont", "small");
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -309,7 +314,7 @@ void Settings::usage()
<< " -pspeed <number> Speed of digital emulated paddle movement (1-15)\n"
<< " -sa1 <left|right> Stelladaptor 1 emulates specified joystick port\n"
<< " -sa2 <left|right> Stelladaptor 2 emulates specified joystick port\n"
// << " -romviewer <1|0> Show ROM info viewer in ROM launcher\n"
<< " -romviewer <1|0> Show ROM info viewer in ROM launcher\n"
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
<< " -ssdir <path> The directory to save snapshot files to\n"
<< " -sssingle <1|0> Generate single snapshot instead of many\n"
@ -317,6 +322,7 @@ void Settings::usage()
<< " -listrominfo Display contents of stella.pro, one line per ROM entry\n"
<< " -rominfo <rom> Display detailed information for the given ROM\n"
<< " -launcherres <WxH> The resolution to use in ROM launcher mode\n"
<< " -launcherfont <small|large> Use small or large font in the ROM launcher\n"
<< " -uipalette <1|2> Used the specified palette for UI elements\n"
<< " -mwheel <lines> Number of lines the mouse wheel will scroll in UI\n"
<< " -statedir <dir> Directory in which to save state files\n"

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: TIA.cxx,v 1.86 2008-03-03 18:54:51 stephena Exp $
// $Id: TIA.cxx,v 1.87 2008-03-23 16:22:41 stephena Exp $
//============================================================================
#include <cassert>
@ -241,10 +241,10 @@ void TIA::frameReset()
// Make sure the height value is reasonable, because we need a certain
// minimum amount of space for the onscreen GUI
if(myFrameHeight < 200)
if(myFrameHeight < 210)
{
// Values are illegal so reset to default values
myFrameHeight = 200;
myFrameHeight = 210;
}
}

View File

@ -693,11 +693,6 @@
"Cartridge.Name" "RealSports Soccer (1983) (Atari) [a]"
""
"Cartridge.MD5" "08f4dc6f118f7c98e2406c180c08e78e"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (2 of 3) (1982) (Starpath) (PAL)"
""
"Cartridge.MD5" "0c7926d660f903a2d6910c254660c32c"
"Cartridge.Manufacturer" "Atari, Larry Kaplan"
"Cartridge.ModelNo" "CX2602, CX2602P"
@ -1118,11 +1113,6 @@
"Display.Phosphor" "YES"
""
"Cartridge.MD5" "0e86470791b26292abe1c64545c47985"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (3 of 3) (1982) (Starpath) (PAL)"
""
"Cartridge.MD5" "0ef64cdbecccb7049752a3de0b7ade14"
"Cartridge.Manufacturer" "Atari, Joe Decuir, Steve Mayer, Larry Wagner"
"Cartridge.ModelNo" "CX26163P"
@ -2111,13 +2101,6 @@
"Cartridge.Name" "Ship Demo (V 10) (PD)"
""
"Cartridge.MD5" "1e060a8025512ad2127e3da11e212ccc"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Sweat! - Decathalon Game (2 of 2) (1982) (Starpath) (Prototype)"
"Cartridge.Rarity" "Prototype"
"Controller.Left" "PADDLES"
""
"Cartridge.MD5" "1e1817d9cbcc3ba75043b7db4e6c228f"
"Cartridge.Name" "Star Fire (07-10-2002) (MP)"
""
@ -2177,13 +2160,6 @@
"Cartridge.Name" "Q-bert (1983) (Parker Bros) (PAL) [a]"
""
"Cartridge.MD5" "1ee2cfc7d0333b96bd11f7f3ec8ce8bc"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (4 of 4) (1982) (Starpath) (PAL)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "1ee9c1ba95cef2cf987d63f176c54ac3"
"Cartridge.Manufacturer" "Atari - GCC, Mark Ackerman, Glenn Parker"
"Cartridge.ModelNo" "CX2675, CX2675P"
@ -3990,11 +3966,6 @@
"Display.Height" "250"
""
"Cartridge.MD5" "36c31bb5daeb103f488c66de67ac5075"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (1 of 3) (1982) (Starpath)"
""
"Cartridge.MD5" "36edef446ab4c2395666efc672b92ed0"
"Cartridge.Manufacturer" "Atari - Axlon"
"Cartridge.ModelNo" "CX26168"
@ -6621,13 +6592,6 @@
"Cartridge.Name" "Texas Chainsaw Massacre (1983) (Wizard Video)"
""
"Cartridge.MD5" "5ec73ac7d2ac95ac9530c6d33e713d14"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Sweat! - Decathalon Game (1 of 2) (1982) (Starpath) (Prototype)"
"Cartridge.Rarity" "Prototype"
"Controller.Left" "PADDLES"
""
"Cartridge.MD5" "5ef303b9f0aa8cf20720c560e5f9baa1"
"Cartridge.Manufacturer" "Atari, Jim Huether"
"Cartridge.ModelNo" "CX2629, CX2629P"
@ -7002,11 +6966,6 @@
"Cartridge.Name" "Homerun (32 in 1) (1988) (Atari) (PAL) (4K)"
""
"Cartridge.MD5" "639ded0c9e53bc3f91defb5dde930286"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "SuperCharger - Escape from the Mindmaster (4 of 4) (1982) (Starpath) [a1]"
""
"Cartridge.MD5" "6c449db9bbbd90972ad1932d6af87330"
"Cartridge.Name" "20 Sprites at Once Demo 3 (PD)"
""
@ -7834,11 +7793,6 @@
"Cartridge.Name" "Video Pinball (1981) (Atari) (PAL)"
""
"Cartridge.MD5" "6ed5012793f5ddf4353a48c11ea9b8d3"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (3 of 3) (1982) (Starpath)"
""
"Cartridge.MD5" "6f084daf265599f65422ef4173b69bc7"
"Cartridge.Name" "Music Kit (V2.0) - Song Player (Paul Slocum)"
"Display.Phosphor" "YES"
@ -7928,7 +7882,7 @@
"Cartridge.MD5" "700a786471c8a91ec09e2f8e47f14a04"
"Cartridge.Manufacturer" "Activision"
"Cartridge.Name" "Unknown Activision Game #2 (1983) (Activision) (Prototype)"
"Cartridge.Name" "Unknown Activision Game #2 (Activision) (Prototype)"
"Cartridge.Rarity" "Prototype"
"Display.YStart" "37"
""
@ -8615,13 +8569,6 @@
"Cartridge.Name" "Tie-Fighters (MP)"
""
"Cartridge.MD5" "7a63d7ea3f2851bcf04f0bb4ba1a3929"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (3 of 4) (1982) (Starpath)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "7a2af383014f5d810ad26d322823549d"
"Cartridge.Name" "FlickerSort Demo (20-04-2002) (MP)"
""
@ -10712,6 +10659,7 @@
"Cartridge.MD5" "9ad362179c2eea4ea115c7640b4b003e"
"Cartridge.Name" "Barnstorming (Unknown) (PAL)"
"Display.Format" "NTSC50"
""
"Cartridge.MD5" "9a25b3cfe2bbb847b66a97282200cca2"
@ -11189,13 +11137,6 @@
"Cartridge.Name" "Demo Image Series #5 - Sam (19-02-2003) (AD)"
""
"Cartridge.MD5" "a075ad332942740c386f4c3814925ece"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (2 of 4) (1982) (Starpath) (PAL)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "a0675883f9b09a3595ddd66a6f5d3498"
"Cartridge.Manufacturer" "Telegames"
"Cartridge.ModelNo" "6057 A227"
@ -11870,11 +11811,6 @@
"Cartridge.Name" "Planet Patrol (Unknown) (PAL)"
""
"Cartridge.MD5" "aaea37b65db9e492798f0105a6915e96"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (2 of 3) (1982) (Starpath)"
""
"Cartridge.MD5" "ab301d3d7f2f4fe3fdd8a3540b7a74f5"
"Cartridge.Manufacturer" "Jone Yuan Telephonic Enterprise Co"
"Cartridge.Name" "IQ-180 (Jone Yuan)"
@ -14001,13 +13937,6 @@
"Cartridge.Name" "Marauder (Jone Yuan)"
""
"Cartridge.MD5" "cc1939e4769d0c157ace326efcfdcf80"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (3 of 4) (1982) (Starpath) (PAL)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "cc3d942c6958bd16b1c602623f59e6e1"
"Cartridge.Manufacturer" "Atari, Bill Aspromonte, John Russell, Michael Sierchio, Robert Zdybel"
"Cartridge.ModelNo" "CX26114"
@ -16647,13 +16576,6 @@
"Cartridge.Name" "Strategy X (1983) (Gakken) (PAL)"
""
"Cartridge.MD5" "f0536303f49006806bac3aec15738336"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (4 of 4) (1982) (Starpath)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "f032b2f2d8323404a6b4541f92dd1825"
"Cartridge.Name" "Many Blue Bars and Text Demo 3 (PD)"
""
@ -17685,6 +17607,7 @@
"Cartridge.MD5" "fc9c1652fe3a2cade6188f4d3692481f"
"Cartridge.Name" "Andrew Davies early notBoulderDash demo (NTSC)"
"Display.Format" "NTSC"
"Display.Phosphor" "YES"
""
@ -17720,13 +17643,6 @@
"Cartridge.Name" "Alpha Demo - The Beta Demo 2 (2000) (MP)"
""
"Cartridge.MD5" "fdf0de38517e0cf7f0885f98ccc95836"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.ModelNo" "AR-4200"
"Cartridge.Name" "Escape from the Mindmaster (2 of 4) (1982) (Starpath)"
"Cartridge.Rarity" "Extremely Rare"
""
"Cartridge.MD5" "fdd4995a50395db14f518f63c2d63438"
"Cartridge.Name" "Oh No! (Version 3) (18-01-2003) (AD)"
""
@ -17855,11 +17771,6 @@
"Cartridge.Name" "SCSIcide (Score Hack 1) (24-02-2001) (Joe Grand) (PD)"
""
"Cartridge.MD5" "ff86fc8ffa717bb095e8471638c1c31c"
"Cartridge.Manufacturer" "Starpath"
"Cartridge.Name" "Party Mix (1 of 3) (1982) (Starpath) (PAL)"
""
"Cartridge.MD5" "ffe51989ba6da2c6ae5a12d277862e16"
"Cartridge.Manufacturer" "Atari - Sears"
"Cartridge.ModelNo" "CX2627 - 6-99841"
@ -17885,3 +17796,14 @@
"Display.YStart" "28"
""
"Cartridge.MD5" "06b0194ce992584c365278e0d7323279"
"Cartridge.Manufacturer" "Activision"
"Cartridge.Name" "Unknown Activision Game #2 (Prototype) (PAL)"
"Cartridge.Rarity" "Prototype"
""
"Cartridge.MD5" "8055b9c2622136fd91edfea6df642daf"
"Cartridge.Manufacturer" "Activision"
"Cartridge.Name" "Unknown Activision Game #1 (1983) (Activision) (Prototype) (PAL)"
"Cartridge.Rarity" "Prototype"
""

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: AboutDialog.cxx,v 1.23 2008-02-06 13:45:23 stephena Exp $
// $Id: AboutDialog.cxx,v 1.24 2008-03-23 16:22:45 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -92,7 +92,7 @@ void AboutDialog::updateStrings(int page, int lines, string& title, string* &dsc
ADD_ATEXT("\\CA multi-platform Atari 2600 VCS emulator");
ADD_ATEXT(string("\\C\\c2") + instance()->features());
ADD_ALINE;
ADD_ATEXT("\\CCopyright (C) 1995-2007 The Stella team");
ADD_ATEXT("\\CCopyright (C) 1995-2008 The Stella team");
ADD_ATEXT("\\Chttp://stella.sourceforge.net");
ADD_ALINE;
ADD_ATEXT("Stella is free software released under the GNU GPL");

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: AudioDialog.cxx,v 1.26 2008-02-06 13:45:23 stephena Exp $
// $Id: AudioDialog.cxx,v 1.27 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -40,24 +40,31 @@ AudioDialog::AudioDialog(OSystem* osystem, DialogContainer* parent,
const GUI::Font& font, int x, int y, int w, int h)
: Dialog(osystem, parent, x, y, w, h)
{
const int lineHeight = font.getLineHeight(),
fontHeight = font.getFontHeight();
const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
int xpos, ypos;
int lwidth = font.getStringWidth("Fragment Size: "),
pwidth = font.getStringWidth("4096");
WidgetArray wid;
// Volume
xpos = (w - lwidth - pwidth - 40) / 2; ypos = 10;
// Set real dimensions
// _w = 35 * fontWidth + 10;
// _h = 8 * (lineHeight + 4) + 10;
myVolumeSlider = new SliderWidget(this, font, xpos, ypos, 30, lineHeight,
// Volume
xpos = 3 * fontWidth; ypos = 10;
myVolumeSlider = new SliderWidget(this, font, xpos, ypos, 6*fontWidth, lineHeight,
"Volume: ", lwidth, kVolumeChanged);
myVolumeSlider->setMinValue(1); myVolumeSlider->setMaxValue(100);
wid.push_back(myVolumeSlider);
myVolumeLabel = new StaticTextWidget(this, font,
xpos + myVolumeSlider->getWidth() + 4,
ypos + 1,
15, fontHeight, "", kTextAlignLeft);
3*fontWidth, fontHeight, "", kTextAlignLeft);
myVolumeLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
@ -113,23 +120,10 @@ AudioDialog::AudioDialog(OSystem* osystem, DialogContainer* parent,
// Add Defaults, OK and Cancel buttons
ButtonWidget* b;
b = addButton(font, 10, _h - 24, "Defaults", kDefaultsCmd);
b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Defaults", kDefaultsCmd);
wid.push_back(b);
#ifndef MAC_OSX
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
addOKCancelBGroup(wid, font);
addToFocusList(wid);
}

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: BrowserDialog.cxx,v 1.29 2008-02-06 13:45:23 stephena Exp $
// $Id: BrowserDialog.cxx,v 1.30 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -48,12 +48,17 @@ BrowserDialog::BrowserDialog(GuiObject* boss, const GUI::Font& font,
_nodeList(NULL),
_mode(AbstractFilesystemNode::kListDirectoriesOnly)
{
const int lineHeight = font.getLineHeight(),
bwidth = font.getStringWidth("Cancel") + 20,
bheight = font.getLineHeight() + 4;
const int lineHeight = font.getLineHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
int xpos, ypos;
ButtonWidget* b;
// Set real dimensions
// This is one dialog that can take as much space as is available
// _w = _DLG_MIN_SWIDTH - 30;
// _h = _DLG_MIN_SHEIGHT - 30;
xpos = 10; ypos = 4;
_title = new StaticTextWidget(this, font, xpos, ypos,
_w - 2 * xpos, lineHeight,
@ -68,35 +73,31 @@ BrowserDialog::BrowserDialog(GuiObject* boss, const GUI::Font& font,
// Add file list
ypos += lineHeight;
_fileList = new StringListWidget(this, font, xpos, ypos,
_w - 2 * xpos, _h - bheight - ypos - 15);
_w - 2 * xpos, _h - buttonHeight - ypos - 20);
_fileList->setNumberingMode(kListNumberingOff);
_fileList->setEditable(false);
// Buttons
xpos = 10; ypos = _h - bheight - 8;
b = _goUpButton = new ButtonWidget(this, font, xpos, ypos, bwidth, bheight,
"Go up", kGoUpCmd);
addFocusWidget(b);
_goUpButton = new ButtonWidget(this, font, 10, _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Go up", kGoUpCmd);
addFocusWidget(_goUpButton);
#ifndef MAC_OSX
xpos = _w - 2 *(bwidth + 10);
b = new ButtonWidget(this, font, xpos, ypos, bwidth, bheight, "Choose",
kChooseCmd);
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Choose", kChooseCmd);
addFocusWidget(b);
addOKWidget(b);
xpos += bwidth + 10;
b = new ButtonWidget(this, font, xpos, ypos, bwidth, bheight, "Cancel",
kCloseCmd);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd);
addFocusWidget(b);
addCancelWidget(b);
#else
xpos = _w - 2 *(bwidth + 10); ypos = _h - bheight - 8;
b = new ButtonWidget(this, font, xpos, ypos, bwidth, bheight, "Cancel",
kCloseCmd);
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd);
addFocusWidget(b);
addCancelWidget(b);
xpos += bwidth + 10;
b = new ButtonWidget(this, font, xpos, ypos, bwidth, bheight, "Choose",
kChooseCmd);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Choose", kChooseCmd);
addFocusWidget(b);
addOKWidget(b);
#endif

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: ConsoleFont.hxx,v 1.7 2008-02-06 13:45:23 stephena Exp $
// $Id: ConsoleFont.hxx,v 1.8 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -3116,7 +3116,7 @@ static const uInt16 _console_font_bits[] = {
};
/* Character->glyph mapping. */
static const uInt16 _console_sysfont_offset[] = {
static const uInt32 _console_sysfont_offset[] = {
13, /* (0x00) */
0, /* (0x01) */
0, /* (0x02) */
@ -3250,6 +3250,7 @@ static const FontDesc consoleDesc = {
"8x13",
8,
13,
8, 13, 0, -1,
11,
0,
127,
@ -3257,6 +3258,7 @@ static const FontDesc consoleDesc = {
_console_sysfont_offset, /* encode table */
0, /* fixed width*/
0,
0,
sizeof(_console_font_bits)/sizeof(uInt16)
};

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Dialog.cxx,v 1.58 2008-02-19 12:33:07 stephena Exp $
// $Id: Dialog.cxx,v 1.59 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -544,10 +544,39 @@ Widget* Dialog::findWidget(int x, int y)
return Widget::findWidgetInChain(_firstWidget, x, y);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Dialog::addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font)
{
int buttonWidth = font.getStringWidth("Cancel") + 15;
int buttonHeight = font.getLineHeight() + 4;
#ifndef MAC_OSX
ButtonWidget* b;
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ButtonWidget* Dialog::addButton(const GUI::Font& font, int x, int y,
const string& label, int cmd)
{
// FIXME - this is deprecated, and the UI code should be refactored
// to remove all references to it
#if 0
const int w = 6 * font.getMaxCharWidth(),
h = font.getFontHeight() + 6;

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Dialog.hxx,v 1.36 2008-02-06 13:45:23 stephena Exp $
// $Id: Dialog.hxx,v 1.37 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -32,11 +32,21 @@ class TabWidget;
#include "bspf.hxx"
/*
#ifdef SMALL_SCREEN
#define _DLG_MIN_SWIDTH 320
#define _DLG_MIN_SHEIGHT 210
#else
#define _DLG_MIN_SWIDTH 640
#define _DLG_MIN_SHEIGHT 420
#endif
*/
/**
This is the base class for all dialog boxes.
@author Stephen Anthony
@version $Id: Dialog.hxx,v 1.36 2008-02-06 13:45:23 stephena Exp $
@version $Id: Dialog.hxx,v 1.37 2008-03-23 16:22:46 stephena Exp $
*/
class Dialog : public GuiObject
{
@ -96,6 +106,8 @@ class Dialog : public GuiObject
ButtonWidget* addButton(const GUI::Font& font, int x, int y,
const string& label = "", int cmd = 0);
void addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font);
void setResult(int result) { _result = result; }
int getResult() const { return _result; }

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: EventMappingWidget.cxx,v 1.22 2008-02-06 13:45:23 stephena Exp $
// $Id: EventMappingWidget.cxx,v 1.23 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -42,12 +42,14 @@ EventMappingWidget::EventMappingWidget(GuiObject* boss, const GUI::Font& font,
myRemapStatus(false),
myFirstTime(true)
{
const int fontHeight = font.getFontHeight(),
lineHeight = font.getLineHeight();
const int fontHeight = font.getFontHeight(),
lineHeight = font.getLineHeight(),
buttonWidth = font.getStringWidth("Defaults") + 10,
buttonHeight = font.getLineHeight() + 4;
int xpos = 5, ypos = 5;
myActionsList = new StringListWidget(boss, font, xpos, ypos,
_w - 70, _h - 3*lineHeight);
_w - buttonWidth - 20, _h - 3*lineHeight);
myActionsList->setTarget(this);
myActionsList->setNumberingMode(kListNumberingOff);
myActionsList->setEditable(false);
@ -56,23 +58,27 @@ EventMappingWidget::EventMappingWidget(GuiObject* boss, const GUI::Font& font,
// Add remap, erase, cancel and default buttons
xpos += myActionsList->getWidth() + 15; ypos += 5;
myMapButton = new ButtonWidget(boss, font, xpos, ypos, 50, 16,
myMapButton = new ButtonWidget(boss, font, xpos, ypos,
buttonWidth, buttonHeight,
"Map", kStartMapCmd);
myMapButton->setTarget(this);
addFocusWidget(myMapButton);
ypos += 20;
myEraseButton = new ButtonWidget(boss, font, xpos, ypos, 50, 16,
ypos += lineHeight + 10;
myEraseButton = new ButtonWidget(boss, font, xpos, ypos,
buttonWidth, buttonHeight,
"Erase", kEraseCmd);
myEraseButton->setTarget(this);
addFocusWidget(myEraseButton);
ypos += 20;
myCancelMapButton = new ButtonWidget(boss, font, xpos, ypos, 50, 16,
ypos += lineHeight + 10;
myCancelMapButton = new ButtonWidget(boss, font, xpos, ypos,
buttonWidth, buttonHeight,
"Cancel", kStopMapCmd);
myCancelMapButton->setTarget(this);
myCancelMapButton->clearFlags(WIDGET_ENABLED);
addFocusWidget(myCancelMapButton);
ypos += 30;
myDefaultsButton = new ButtonWidget(boss, font, xpos, ypos, 50, 16,
ypos += lineHeight + 30;
myDefaultsButton = new ButtonWidget(boss, font, xpos, ypos,
buttonWidth, buttonHeight,
"Defaults", kDefaultsCmd);
myDefaultsButton->setTarget(this);
addFocusWidget(myDefaultsButton);

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: FileSnapDialog.cxx,v 1.15 2008-03-12 19:42:36 stephena Exp $
// $Id: FileSnapDialog.cxx,v 1.16 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -40,6 +40,10 @@ FileSnapDialog::FileSnapDialog(
myBrowser(NULL),
myIsGlobal(boss != 0)
{
const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
const int vBorder = 8;
int xpos, ypos, bwidth, bheight;
WidgetArray wid;
@ -48,6 +52,10 @@ FileSnapDialog::FileSnapDialog(
bwidth = font.getStringWidth("Properties file:") + 20;
bheight = font.getLineHeight() + 4;
// Set real dimensions
// _w = 50 * fontWidth + 10;
// _h = 11 * (lineHeight + 4) + 10;
xpos = vBorder; ypos = vBorder;
// ROM path
@ -116,24 +124,11 @@ FileSnapDialog::FileSnapDialog(
"Multiple snapshots");
wid.push_back(mySnapSingleCheckbox);
// Add OK & Cancel buttons
b = addButton(font, 10, _h - 24, "Defaults", kDefaultsCmd);
// Add Defaults, OK and Cancel buttons
b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Defaults", kDefaultsCmd);
wid.push_back(b);
#ifndef MAC_OSX
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
addOKCancelBGroup(wid, font);
addToFocusList(wid);

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: Font.hxx,v 1.9 2008-02-06 13:45:23 stephena Exp $
// $Id: Font.hxx,v 1.10 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -24,21 +24,31 @@
#include "bspf.hxx"
struct BBX
{
Int8 w;
Int8 h;
Int8 x;
Int8 y;
};
/* builtin C-based proportional/fixed font structure */
/* based on The Microwindows Project http://microwindows.org */
typedef struct
{
const char* name; /* font name */
int maxwidth; /* max width in pixels */
int height; /* height in pixels */
int ascent; /* ascent (baseline) height */
int firstchar; /* first character in bitmap */
int size; /* font size in glyphs */
const uInt16* bits; /* 16-bit right-padded bitmap data */
const uInt16* offset; /* offsets into bitmap data */
const uInt8* width; /* character widths or NULL if fixed */
int defaultchar; /* default char (not glyph index) */
long bits_size; /* # words of bitmap_t bits */
const char* name; /* font name */
int maxwidth; /* max width in pixels */
int height; /* height in pixels */
int fbbw, fbbh, fbbx, fbby; /* max bounding box */
int ascent; /* ascent (baseline) height */
int firstchar; /* first character in bitmap */
int size; /* font size in glyphs */
const uInt16* bits; /* 16-bit right-padded bitmap data */
const uInt32* offset; /* offsets into bitmap data*/
const uInt8* width; /* character widths or NULL if fixed */
const BBX* bbx; /* character bounding box or NULL if fixed */
int defaultchar; /* default char (not glyph index) */
long bits_size; /* # words of bitmap_t bits */
} FontDesc;
namespace GUI {

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: HelpDialog.cxx,v 1.24 2008-02-06 13:45:23 stephena Exp $
// $Id: HelpDialog.cxx,v 1.25 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -96,7 +96,7 @@ void HelpDialog::updateStrings(uInt8 page, uInt8 lines,
case 2:
title = "Special commands:";
ADD_BIND("Ctrl g", "Grab mouse (keep in window)");
ADD_BIND("Ctrl f", "Switch between NTSC/PAL/PAL60");
ADD_BIND("Ctrl f", "Switch between NTSC/PAL/SECAM");
ADD_BIND("Ctrl s", "Save game properties to new file");
ADD_LINE;
ADD_BIND("Ctrl 0", "Mouse emulates paddle 0");
@ -130,7 +130,7 @@ void HelpDialog::updateStrings(uInt8 page, uInt8 lines,
case 2:
title = "Special commands:";
ADD_BIND("Cmd g", "Grab mouse (keep in window)");
ADD_BIND("Cmd f", "Switch between NTSC/PAL/PAL60");
ADD_BIND("Cmd f", "Switch between NTSC/PAL/SECAM");
ADD_BIND("Cmd s", "Save game properties to new file");
ADD_LINE;
ADD_BIND("Cmd 0", "Mouse emulates paddle 0");

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: InputDialog.cxx,v 1.29 2008-03-22 17:35:03 stephena Exp $
// $Id: InputDialog.cxx,v 1.30 2008-03-23 16:22:46 stephena Exp $
//============================================================================
#include "bspf.hxx"
@ -35,13 +35,18 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent,
const GUI::Font& font, int x, int y, int w, int h)
: Dialog(osystem, parent, x, y, w, h)
{
const int buttonHeight = font.getLineHeight() + 4;
const int vBorder = 4;
int xpos, ypos, tabID;
WidgetArray wid;
// Set real dimensions
// _w = 42 * fontWidth + 10;
// _h = 12 * (lineHeight + 4) + 10;
// The tab widget
xpos = 2; ypos = vBorder;
myTab = new TabWidget(this, font, xpos, ypos, _w - 2*xpos, _h - 24 - 2*ypos);
myTab = new TabWidget(this, font, xpos, ypos, _w - 2*xpos, _h - buttonHeight - 20);
addTabWidget(myTab);
wid.push_back(myTab);
addToFocusList(wid);
@ -75,22 +80,7 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent,
// Add OK and Cancel buttons
wid.clear();
ButtonWidget* b;
#ifndef MAC_OSX
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
addOKCancelBGroup(wid, font);
addBGroupToFocusList(wid);
}

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: LauncherDialog.cxx,v 1.84 2008-03-22 18:17:59 stephena Exp $
// $Id: LauncherDialog.cxx,v 1.85 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -64,8 +64,6 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
int xpos = 0, ypos = 0, lwidth = 0;
WidgetArray wid;
#if 0
// FIXME - this isn't really useful until we get a resizable and font-aware UI
// Check if we want the ROM info viewer
// Make sure it will fit within the current bounds
myRomInfoFlag = instance()->settings().getBool("romviewer");
@ -74,7 +72,6 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
cerr << "Error: ROM launcher too small, deactivating ROM info viewer" << endl;
myRomInfoFlag = false;
}
#endif
// Show game name
lwidth = font.getStringWidth("Select an item from the list ...");
@ -101,7 +98,7 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
if(myRomInfoFlag)
{
xpos += myList->getWidth() + 15;
myRomInfoWidget = new RomInfoWidget(this, font, xpos, ypos,
myRomInfoWidget = new RomInfoWidget(this, instance()->font(), xpos, ypos,
326, myList->getHeight());
wid.push_back(myRomInfoWidget);
}

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: OptionsDialog.cxx,v 1.68 2008-03-22 18:17:59 stephena Exp $
// $Id: OptionsDialog.cxx,v 1.69 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -43,12 +43,12 @@
#include "bspf.hxx"
#define addBigButton(label, cmd) \
new ButtonWidget(this, font, xoffset, yoffset, kBigButtonWidth, 18, label, cmd); yoffset += kRowHeight
new ButtonWidget(this, font, xoffset, yoffset, buttonWidth, buttonHeight, label, cmd); yoffset += rowHeight
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent,
GuiObject* boss, bool global)
: Dialog(osystem, parent, 0, 0, kMainMenuWidth, kMainMenuHeight),
: Dialog(osystem, parent, 0, 0, 1, 1),
myVideoDialog(NULL),
myAudioDialog(NULL),
myInputDialog(NULL),
@ -61,6 +61,13 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent,
myIsGlobal(global)
{
const GUI::Font& font = instance()->font();
const int buttonWidth = font.getStringWidth("Game Properties") + 20,
buttonHeight = font.getLineHeight() + 6,
rowHeight = font.getLineHeight() + 10;
_w = 2 * buttonWidth + 30;
_h = 6 * rowHeight + 15;
int xoffset = 10, yoffset = 10;
WidgetArray wid;
ButtonWidget* b = NULL;
@ -87,7 +94,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent,
wid.push_back(myRomAuditButton);
// Move to second column
xoffset += kBigButtonWidth + 10; yoffset = 10;
xoffset += buttonWidth + 10; yoffset = 10;
myGameInfoButton = addBigButton("Game Properties", kInfoCmd);
wid.push_back(myGameInfoButton);
@ -112,7 +119,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent,
int x = 0, y = 0, w, h;
// Now create all the dialogs attached to each menu button
w = 230; h = 185;
w = 240; h = 185;
myVideoDialog = new VideoDialog(myOSystem, parent, font, x, y, w, h);
w = 200; h = 140;
@ -128,7 +135,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent,
#endif
myInputDialog = new InputDialog(myOSystem, parent, font, x, y, w, h);
w = 200; h = 145;
w = 200; h = 155;
myUIDialog = new UIDialog(myOSystem, parent, font, x, y, w, h);
w = 280; h = 180;

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: OptionsDialog.hxx,v 1.28 2008-03-14 15:23:24 stephena Exp $
// $Id: OptionsDialog.hxx,v 1.29 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -90,13 +90,6 @@ class OptionsDialog : public Dialog
kAboutCmd = 'ABOU',
kExitCmd = 'EXIM'
};
enum {
kRowHeight = 22,
kBigButtonWidth = 90,
kMainMenuWidth = (2*kBigButtonWidth + 30),
kMainMenuHeight = 6*kRowHeight + 15
};
};
#endif

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: StellaFont.hxx,v 1.8 2008-02-06 13:45:24 stephena Exp $
// $Id: StellaFont.hxx,v 1.9 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -2592,12 +2592,14 @@ static const FontDesc stellaDesc = {
"04b-16b-10", /* font name */
9, /* max width in pixels */
10, /* height in pixels */
9, 10, 0, -1, /* max bounding box */
8, /* ascent (baseline) height */
33, /* first character in bitmap */
94, /* font size in glyphs */
_stella_font_bits, /* 16-bit right-padded bitmap data */
0, /* no encode table*/ /* offsets into bitmap data */
0, /* offsets into bitmap data */
_stella_sysfont_width, /* character widths or NULL if fixed */
0, /* character bounding box or NULL if fixed */
33, /* default char (not glyph index) */
sizeof(_stella_font_bits)/sizeof(uInt16) /* # words of bitmap_t bits */
};

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: TabWidget.hxx,v 1.19 2008-02-06 13:45:24 stephena Exp $
// $Id: TabWidget.hxx,v 1.20 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -64,6 +64,7 @@ class TabWidget : public Widget, public CommandSender
int getTabWidth() { return _tabWidth; }
int getTabHeight() { return _tabHeight; }
int getActiveTab() { return _activeTab; }
virtual void handleMouseDown(int x, int y, int button, int clickCount);
virtual void handleCommand(CommandSender* sender, int cmd, int data, int id);

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: UIDialog.cxx,v 1.12 2008-03-22 18:17:59 stephena Exp $
// $Id: UIDialog.cxx,v 1.13 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -28,6 +28,7 @@
#include "PopUpWidget.hxx"
#include "ScrollBarWidget.hxx"
#include "Settings.hxx"
#include "TabWidget.hxx"
#include "Widget.hxx"
#include "UIDialog.hxx"
@ -37,75 +38,148 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
const GUI::Font& font, int x, int y, int w, int h)
: Dialog(osystem, parent, x, y, w, h)
{
const int lineHeight = font.getLineHeight(),
fontHeight = font.getFontHeight();
int xpos, ypos;
int lwidth = font.getStringWidth("Debugger Height (*): "),
pwidth = font.getStringWidth("Standard");
const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
const int vBorder = 5;
int xpos, ypos, tabID;
int lwidth, pwidth = font.getStringWidth("Standard");
WidgetArray wid;
xpos = 10; ypos = 10;
// Set real dimensions
// _w = 36 * fontWidth + 10;
// _h = 10 * (lineHeight + 4) + 10;
// The tab widget
xpos = ypos = vBorder;
myTab = new TabWidget(this, font, xpos, ypos, _w - 2*xpos, _h - buttonHeight - 20);
addTabWidget(myTab);
addFocusWidget(myTab);
//////////////////////////////////////////////////////////
// 1) Launcher options
wid.clear();
tabID = myTab->addTab(" Launcher ");
lwidth = font.getStringWidth("Launcher Height: ");
// Launcher width and height
myLauncherWidthSlider = new SliderWidget(this, font, xpos, ypos, pwidth,
lineHeight, "Launcher Width (*): ",
myLauncherWidthSlider = new SliderWidget(myTab, font, xpos, ypos, pwidth,
lineHeight, "Launcher Width: ",
lwidth, kLWidthChanged);
myLauncherWidthSlider->setMinValue(320);
myLauncherWidthSlider->setMaxValue(1920);
myLauncherWidthSlider->setStepValue(10);
wid.push_back(myLauncherWidthSlider);
myLauncherWidthLabel =
new StaticTextWidget(this, font,
new StaticTextWidget(myTab, font,
xpos + myLauncherWidthSlider->getWidth() + 4,
ypos + 1, 20, fontHeight, "", kTextAlignLeft);
ypos + 1, 4*fontWidth, fontHeight, "", kTextAlignLeft);
myLauncherWidthLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
myLauncherHeightSlider = new SliderWidget(this, font, xpos, ypos, pwidth,
lineHeight, "Launcher Height (*): ",
myLauncherHeightSlider = new SliderWidget(myTab, font, xpos, ypos, pwidth,
lineHeight, "Launcher Height: ",
lwidth, kLHeightChanged);
myLauncherHeightSlider->setMinValue(240);
myLauncherHeightSlider->setMaxValue(1200);
myLauncherHeightSlider->setStepValue(10);
wid.push_back(myLauncherHeightSlider);
myLauncherHeightLabel =
new StaticTextWidget(this, font,
new StaticTextWidget(myTab, font,
xpos + myLauncherHeightSlider->getWidth() + 4,
ypos + 1, 20, fontHeight, "", kTextAlignLeft);
ypos + 1, 4*fontWidth, fontHeight, "", kTextAlignLeft);
myLauncherHeightLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
// Launcher font
myLauncherFontPopup = new PopUpWidget(myTab, font, xpos, ypos+1, pwidth, lineHeight,
"Launcher Font: ", lwidth);
myLauncherFontPopup->appendEntry("Small", 1);
myLauncherFontPopup->appendEntry("Large", 2);
wid.push_back(myLauncherFontPopup);
ypos += lineHeight + 4;
// ROM launcher info/snapshot viewer
xpos += ((_w - 40 - font.getStringWidth("ROM Info viewer")) >> 1);
myRomViewerCheckbox = new CheckboxWidget(myTab, font, xpos, ypos,
"ROM Info viewer", 0);
wid.push_back(myRomViewerCheckbox);
// Add message concerning usage
xpos = vBorder; ypos += 2*(lineHeight + 4);
lwidth = font.getStringWidth("(*) Changes require application restart");
new StaticTextWidget(myTab, font, xpos, ypos, lwidth, fontHeight,
"(*) Changes require application restart",
kTextAlignLeft);
// Add items for tab 0
addToFocusList(wid, tabID);
//////////////////////////////////////////////////////////
// 2) Debugger options
wid.clear();
tabID = myTab->addTab(" Debugger ");
lwidth = font.getStringWidth("Debugger Height: ");
xpos = ypos = vBorder;
// Debugger width and height
myDebuggerWidthSlider = new SliderWidget(this, font, xpos, ypos, pwidth,
lineHeight, "Debugger Width (*): ",
myDebuggerWidthSlider = new SliderWidget(myTab, font, xpos, ypos, pwidth,
lineHeight, "Debugger Width: ",
lwidth, kDWidthChanged);
myDebuggerWidthSlider->setMinValue(1030);
myDebuggerWidthSlider->setMaxValue(1920);
myDebuggerWidthSlider->setStepValue(10);
wid.push_back(myDebuggerWidthSlider);
myDebuggerWidthLabel =
new StaticTextWidget(this, font,
new StaticTextWidget(myTab, font,
xpos + myDebuggerWidthSlider->getWidth() + 4,
ypos + 1, 20, fontHeight, "", kTextAlignLeft);
ypos + 1, 4*fontWidth, fontHeight, "", kTextAlignLeft);
myDebuggerWidthLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
myDebuggerHeightSlider = new SliderWidget(this, font, xpos, ypos, pwidth,
lineHeight, "Debugger Height (*): ",
myDebuggerHeightSlider = new SliderWidget(myTab, font, xpos, ypos, pwidth,
lineHeight, "Debugger Height: ",
lwidth, kDHeightChanged);
myDebuggerHeightSlider->setMinValue(690);
myDebuggerHeightSlider->setMaxValue(1200);
myDebuggerHeightSlider->setStepValue(10);
wid.push_back(myDebuggerHeightSlider);
myDebuggerHeightLabel =
new StaticTextWidget(this, font,
new StaticTextWidget(myTab, font,
xpos + myDebuggerHeightSlider->getWidth() + 4,
ypos + 1, 20, fontHeight, "", kTextAlignLeft);
ypos + 1, 4*fontWidth, fontHeight, "", kTextAlignLeft);
myDebuggerHeightLabel->setFlags(WIDGET_CLEARBG);
// Add message concerning usage
xpos = vBorder; ypos += 2*(lineHeight + 4);
lwidth = font.getStringWidth("(*) Changes require application restart");
new StaticTextWidget(myTab, font, xpos, ypos, lwidth, fontHeight,
"(*) Changes require application restart",
kTextAlignLeft);
// Add items for tab 1
addToFocusList(wid, tabID);
//////////////////////////////////////////////////////////
// 3) Misc. options
wid.clear();
tabID = myTab->addTab(" Misc. ");
lwidth = font.getStringWidth("Mouse wheel scroll: ");
xpos = ypos = vBorder;
// UI Palette
ypos += 1;
myPalettePopup = new PopUpWidget(myTab, font, xpos, ypos, pwidth, lineHeight,
"Interface Palette: ", lwidth);
myPalettePopup->appendEntry("Standard", 1);
myPalettePopup->appendEntry("Classic", 2);
wid.push_back(myPalettePopup);
ypos += lineHeight + 4;
// Number of lines a mouse wheel will scroll
myWheelLinesSlider = new SliderWidget(this, font, xpos, ypos, pwidth,
myWheelLinesSlider = new SliderWidget(myTab, font, xpos, ypos, pwidth,
lineHeight, "Mouse wheel scroll: ",
lwidth, kWLinesChanged);
myWheelLinesSlider->setMinValue(1);
@ -113,55 +187,26 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
myWheelLinesSlider->setStepValue(1);
wid.push_back(myWheelLinesSlider);
myWheelLinesLabel =
new StaticTextWidget(this, font,
new StaticTextWidget(myTab, font,
xpos + myWheelLinesSlider->getWidth() + 4,
ypos + 1, 20, fontHeight, "", kTextAlignLeft);
ypos + 1, 2*fontWidth, fontHeight, "", kTextAlignLeft);
myWheelLinesLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
// UI Palette
ypos += 1;
myPalettePopup = new PopUpWidget(this, font, xpos, ypos, pwidth, lineHeight,
"Interface Palette: ", lwidth);
myPalettePopup->appendEntry("Standard", 1);
myPalettePopup->appendEntry("Classic", 2);
wid.push_back(myPalettePopup);
ypos += lineHeight + 4;
// Add items for tab 2
addToFocusList(wid, tabID);
#if 0
// ROM info viewer
xpos += ((_w - 40 - font.getStringWidth("ROM Info viewer (*)")) >> 1);
myRomViewerCheckbox = new CheckboxWidget(this, font, xpos, ypos,
"ROM Info viewer (*)", 0);
// Add message concerning usage
lwidth = font.getStringWidth("(*) Requires application restart");
new StaticTextWidget(this, font, 10, _h - 38, lwidth, fontHeight,
"(*) Requires application restart",
kTextAlignLeft);
#endif
// Activate the first tab
myTab->setActiveTab(0);
// Add Defaults, OK and Cancel buttons
wid.clear();
ButtonWidget* b;
b = addButton(font, 10, _h - 24, "Defaults", kDefaultsCmd);
b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Defaults", kDefaultsCmd);
wid.push_back(b);
#ifndef MAC_OSX
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
addToFocusList(wid);
addOKCancelBGroup(wid, font);
addBGroupToFocusList(wid);
#ifndef DEBUGGER_SUPPORT
myDebuggerWidthSlider->clearFlags(WIDGET_ENABLED);
@ -187,44 +232,48 @@ void UIDialog::loadConfig()
// Launcher size
instance()->settings().getSize("launcherres", w, h);
if(w < 320) w = 320;
if(w > 800) w = 800;
if(h < 240) h = 240;
if(h > 600) h = 600;
w = BSPF_max(w, 320);
h = BSPF_max(h, 240);
w = BSPF_min(w, 1920);
h = BSPF_min(h, 1200);
myLauncherWidthSlider->setValue(w);
myLauncherWidthLabel->setValue(w);
myLauncherHeightSlider->setValue(h);
myLauncherHeightLabel->setValue(h);
// Launcher font
const string& s = instance()->settings().getString("launcherfont");
myLauncherFontPopup->setSelectedTag(s == "large" ? 2 : 1);
// ROM launcher info viewer
bool b = instance()->settings().getBool("romviewer");
myRomViewerCheckbox->setState(b);
// Debugger size
instance()->settings().getSize("debuggerres", w, h);
if(w < 1030) w = 1030;
if(w > 1600) w = 1600;
if(h < 690) h = 690;
if(h > 1200) h = 1200;
w = BSPF_max(w, 1030);
h = BSPF_max(h, 690);
w = BSPF_min(w, 1920);
h = BSPF_min(h, 1200);
myDebuggerWidthSlider->setValue(w);
myDebuggerWidthLabel->setValue(w);
myDebuggerHeightSlider->setValue(h);
myDebuggerHeightLabel->setValue(h);
// UI palette
int i = instance()->settings().getInt("uipalette");
if(i < 1 || i > 2) i = 1;
myPalettePopup->setSelectedTag(i);
// Mouse wheel lines
int mw = instance()->settings().getInt("mwheel");
if(mw < 1 || mw > 10) mw = 1;
myWheelLinesSlider->setValue(mw);
myWheelLinesLabel->setValue(mw);
// UI palette
int i = instance()->settings().getInt("uipalette");
if(i < 1 || i > 2) i = 1;
myPalettePopup->setSelectedTag(i);
#if 0
// ROM info viewer
bool b = instance()->settings().getBool("romviewer");
myRomViewerCheckbox->setState(b);
#endif
myTab->loadConfig();
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -234,44 +283,60 @@ void UIDialog::saveConfig()
instance()->settings().setSize("launcherres",
myLauncherWidthSlider->getValue(), myLauncherHeightSlider->getValue());
// Launcher font
instance()->settings().setString("launcherfont",
myLauncherFontPopup->getSelectedTag() == 1 ? "small" : "large");
// ROM launcher info viewer
instance()->settings().setBool("romviewer", myRomViewerCheckbox->getState());
// Debugger size
instance()->settings().setSize("debuggerres",
myDebuggerWidthSlider->getValue(), myDebuggerHeightSlider->getValue());
// Mouse wheel lines
int mw = myWheelLinesSlider->getValue();
instance()->settings().setInt("mwheel", mw);
ScrollBarWidget::setWheelLines(mw);
// UI palette
instance()->settings().setInt("uipalette",
myPalettePopup->getSelectedTag());
#if 0
// ROM info viewer
instance()->settings().setBool("romviewer", myRomViewerCheckbox->getState());
#endif
// Mouse wheel lines
int mw = myWheelLinesSlider->getValue();
instance()->settings().setInt("mwheel", mw);
ScrollBarWidget::setWheelLines(mw);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void UIDialog::setDefaults()
{
int w = BSPF_min(instance()->desktopWidth(), 400u);
int h = BSPF_min(instance()->desktopHeight(), 300u);
myLauncherWidthSlider->setValue(w);
myLauncherWidthLabel->setValue(w);
myLauncherHeightSlider->setValue(h);
myLauncherHeightLabel->setValue(h);
switch(myTab->getActiveTab())
{
case 0: // Launcher options
{
int w = BSPF_min(instance()->desktopWidth(), 640u);
int h = BSPF_min(instance()->desktopHeight(), 480u);
myLauncherWidthSlider->setValue(w);
myLauncherWidthLabel->setValue(w);
myLauncherHeightSlider->setValue(h);
myLauncherHeightLabel->setValue(h);
myRomViewerCheckbox->setState(false);
break;
}
myDebuggerWidthSlider->setValue(1030);
myDebuggerWidthLabel->setValue(1030);
myDebuggerHeightSlider->setValue(690);
myDebuggerHeightLabel->setValue(690);
case 1: // Debugger options
myDebuggerWidthSlider->setValue(1030);
myDebuggerWidthLabel->setValue(1030);
myDebuggerHeightSlider->setValue(690);
myDebuggerHeightLabel->setValue(690);
break;
myWheelLinesSlider->setValue(4);
myWheelLinesLabel->setValue(4);
case 2: // Misc. options
myPalettePopup->setSelectedTag(1);
myWheelLinesSlider->setValue(4);
myWheelLinesLabel->setValue(4);
break;
myPalettePopup->setSelectedTag(1);
default:
break;
}
_dirty = true;
}

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: UIDialog.hxx,v 1.7 2008-03-13 22:58:07 stephena Exp $
// $Id: UIDialog.hxx,v 1.8 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -29,6 +29,7 @@ class CheckboxWidget;
class PopUpWidget;
class SliderWidget;
class StaticTextWidget;
class TabWidget;
#include "OSystem.hxx"
#include "bspf.hxx"
@ -41,22 +42,26 @@ class UIDialog : public Dialog
~UIDialog();
protected:
TabWidget* myTab;
// Launcher options
SliderWidget* myLauncherWidthSlider;
StaticTextWidget* myLauncherWidthLabel;
SliderWidget* myLauncherHeightSlider;
StaticTextWidget* myLauncherHeightLabel;
PopUpWidget* myLauncherFontPopup;
CheckboxWidget* myRomViewerCheckbox;
// Debugger options
SliderWidget* myDebuggerWidthSlider;
StaticTextWidget* myDebuggerWidthLabel;
SliderWidget* myDebuggerHeightSlider;
StaticTextWidget* myDebuggerHeightLabel;
// Misc options
PopUpWidget* myPalettePopup;
SliderWidget* myWheelLinesSlider;
StaticTextWidget* myWheelLinesLabel;
PopUpWidget* myPalettePopup;
CheckboxWidget* myRomViewerCheckbox;
private:
void loadConfig();

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//
// $Id: VideoDialog.cxx,v 1.48 2008-02-06 13:45:24 stephena Exp $
// $Id: VideoDialog.cxx,v 1.49 2008-03-23 16:22:46 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -38,13 +38,20 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
const GUI::Font& font, int x, int y, int w, int h)
: Dialog(osystem, parent, x, y, w, h)
{
const int lineHeight = font.getLineHeight(),
fontHeight = font.getFontHeight();
const int lineHeight = font.getLineHeight(),
fontWidth = font.getMaxCharWidth(),
fontHeight = font.getFontHeight(),
buttonWidth = font.getStringWidth("Defaults") + 20,
buttonHeight = font.getLineHeight() + 4;
int xpos, ypos;
int lwidth = font.getStringWidth("Dirty Rects: "),
pwidth = font.getStringWidth("Software");
pwidth = font.getStringWidth("1920x1200");
WidgetArray wid;
// Set real dimensions
// _w = 46 * fontWidth + 10;
// _h = 11 * (lineHeight + 4) + 10;
xpos = 5; ypos = 10;
// Video renderer
@ -98,10 +105,9 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
"UI Zoom: ", lwidth, kUIZoomChanged);
myUIZoomSlider->setMinValue(1); myUIZoomSlider->setMaxValue(10);
wid.push_back(myUIZoomSlider);
myUIZoomLabel = new StaticTextWidget(this, font,
xpos + myUIZoomSlider->getWidth() + 4,
ypos + 1,
15, fontHeight, "", kTextAlignLeft);
myUIZoomLabel =
new StaticTextWidget(this, font, xpos + myUIZoomSlider->getWidth() + 4,
ypos + 1, fontWidth * 2, fontHeight, "", kTextAlignLeft);
myUIZoomLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
@ -110,10 +116,9 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
"TIA Zoom: ", lwidth, kTIAZoomChanged);
myTIAZoomSlider->setMinValue(1); myTIAZoomSlider->setMaxValue(10);
wid.push_back(myTIAZoomSlider);
myTIAZoomLabel = new StaticTextWidget(this, font,
xpos + myTIAZoomSlider->getWidth() + 4,
ypos + 1,
15, fontHeight, "", kTextAlignLeft);
myTIAZoomLabel =
new StaticTextWidget(this, font, xpos + myTIAZoomSlider->getWidth() + 4,
ypos + 1, fontWidth * 2, fontHeight, "", kTextAlignLeft);
myTIAZoomLabel->setFlags(WIDGET_CLEARBG);
ypos += lineHeight + 4;
@ -125,11 +130,12 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
wid.push_back(myAspectRatioSlider);
myAspectRatioLabel =
new StaticTextWidget(this, font, xpos + myAspectRatioSlider->getWidth() + 4,
ypos + 1, 15, fontHeight, "", kTextAlignLeft);
ypos + 1, fontWidth * 3, fontHeight, "", kTextAlignLeft);
myAspectRatioLabel->setFlags(WIDGET_CLEARBG);
// Move over to the next column
xpos += 115; ypos = 10;
xpos += myAspectRatioSlider->getWidth() + myAspectRatioLabel->getWidth();
ypos = 10;
// Framerate
myFrameRateSlider = new SliderWidget(this, font, xpos, ypos, 30, lineHeight,
@ -144,54 +150,41 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
ypos += lineHeight + 4;
// Fullscreen
myFullscreenCheckbox = new CheckboxWidget(this, font, xpos + 5, ypos,
myFullscreenCheckbox = new CheckboxWidget(this, font, xpos, ypos,
"Fullscreen mode", kFullScrChanged);
wid.push_back(myFullscreenCheckbox);
ypos += lineHeight + 4;
// PAL color-loss effect
myColorLossCheckbox = new CheckboxWidget(this, font, xpos + 5, ypos,
myColorLossCheckbox = new CheckboxWidget(this, font, xpos, ypos,
"PAL color-loss");
wid.push_back(myColorLossCheckbox);
ypos += lineHeight + 4;
// Use sync to vblank in OpenGL
myUseVSyncCheckbox = new CheckboxWidget(this, font, xpos + 5, ypos,
myUseVSyncCheckbox = new CheckboxWidget(this, font, xpos, ypos,
"GL VSync");
wid.push_back(myUseVSyncCheckbox);
ypos += lineHeight + 4;
// Center window (in windowed mode)
myCenterCheckbox = new CheckboxWidget(this, font, xpos + 5, ypos,
myCenterCheckbox = new CheckboxWidget(this, font, xpos, ypos,
"Center window (*)");
wid.push_back(myCenterCheckbox);
ypos += lineHeight + 4;
// Add message concerning usage
lwidth = font.getStringWidth("(*) Requires application restart");
new StaticTextWidget(this, font, 10, _h - 38, lwidth, fontHeight,
new StaticTextWidget(this, font, 10, _h - 2*buttonHeight - 10, lwidth, fontHeight,
"(*) Requires application restart",
kTextAlignLeft);
// Add Defaults, OK and Cancel buttons
ButtonWidget* b;
b = addButton(font, 10, _h - 24, "Defaults", kDefaultsCmd);
b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Defaults", kDefaultsCmd);
wid.push_back(b);
#ifndef MAC_OSX
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
#else
b = addButton(font, _w - 2 * (kButtonWidth + 7), _h - 24, "Cancel", kCloseCmd);
wid.push_back(b);
addCancelWidget(b);
b = addButton(font, _w - (kButtonWidth + 10), _h - 24, "OK", kOKCmd);
wid.push_back(b);
addOKWidget(b);
#endif
addOKCancelBGroup(wid, font);
addToFocusList(wid);