Spectrum Games Database v1.19 (Release 03-09-1996) Written by M. van der Heide - Copyright 1995-1996 ThunderWare Research Center This program may be used for maintenance purposes of your ZX-Spectrum programs. It can be used in conjunction with the four leading PC Spectrum emulator programs: `Z80', `JPP', `Warajevo' and `X128' and knows all about .Z80, .TAP, .MDR, .VOC, .SNA, .SCR and the brandnew .SLT files. This program is neither public domain nor shareware: it's freeware. This means that anyone is allowed to distribute and use the program, but all copyrights are still owned by ThunderWare Research Center. You can therefor not request any money from anyone for copying this program, apart from the expenses made for the media onto which it has been copied. Remember you can always freely obtain the latest version from my internet home page at: http://pampus.gns.getronics.nl/~mheide/spectrum.html Or you can try ftp.nvg.unit.no (probably in /pub/games/utils/pc) 0. INDEX -------- 1. Disclaimer 2. Requirements 3. Important Notes 4. Sytax 5. The Screen 6. The Buttons 7. The Fill-In Fields 8. Selecting a Game 9. The Selection Criterion 10.1. The Configuration 12.2. The Configuration File 11. The Menu Strip 12. .TAP Catalogs 13. .MDR Catalogs 14. The Game Information File 15. The Game Screenshot File 16. Database Validation 17. Game Compression 18. Supported file types 19.1. Notes on using the `Z80' Spectrum Emulator 19.2. Notes on using the `Warajevo' Spectrum Emulator 19.3. Notes on using the `X128' Spectrum Emulator 20. Converting Your Databases 21. Troubleshooting 22. The Credits 23. How to Contact Me 1. DISCLAIMER ------------- S.G.D. has been tested on a lot of systems, including '286, '386, '486, '486DLC and Pentium machines (even emulators), with ISA, VLB and PCI causing no problems. If you want to use this program, though, you do so at your own risk. This means that it is extremely unlikely to damage your system, but if the unthoughtful event DOES happen, you will be on your own. ThunderWare Research Center can and will accept no claims whatsoever. 2. REQUIREMENTS --------------- In order to be able to use this program you will need the following hardware: - A 80286 or better processor, - A (Super)VGA card with at least 256Kb, - A mouse with a fully Microsoft compatible driver (Microsoft compatibility version 6.26 or up), - At least 2Mb of memory, - At least 460Kb of free conventional memory, or 410Kb if (enough) upper memory is available. And the following software: - (MS)DOS 5.0 or better, - An XMS driver (e.g. HIMEM or QEMM) with XMS version 2.0 or higher, - Loads of Spectrum games :) - One of the supported emulators if you want to play the games. See HISTORY.DOC for the latest changes. There are quite a lot of them! Also note the change of database format! 3. IMPORTANT NOTES ------------------ 1. The database format has been changed again since version 1.18. You will have to convert it to the new format. This can be done with the `-c' command line option (see below). 2. Free up as much conventional memory as possible to be able to show all your spectrum games (needed is 48 bytes of conventional memory and 128 bytes of XMS per game entry). 3. If a fatal error occurs due to low memory, you will be asked if an attempt should be made to rescue the database (if it had been changed). If a successful attempt was made, the database will be in the file GAMES.SAV. You must rename this file to GAMES.DAT yourself before restarting. 4. If the following fatal error occurs after writing back a changed database: `Could not install new database', or `Could not remove old database', the version just written will have an extension `.TMP' (in the same directory as the old database). You must rename this file yourself before restarting. 5. Although this program runs fine in a DOS-box from Windows, this is not the recommended setup, as the spectrum emulator doesn't like Windows that much (and neither should you)! Also see the Troubleshooting section on Windows. Make sure you allow use of the upper memory area, as this frees a large amount of precious conventional memory. 6. When you choose to validate the database, remember that using a diskcaching program (such as SMARTDRV) will do miracles. 7. The maximum filesize for a game is currently 7 digits. Please let me know if you have larger (.VOC) files and you want to include them too. 8. Unlike a certain well-known Microsoft product, this GUI allows dragging and resizing while the window is being updated at the same time (try dragging the percentage requester). And no, it wasn't hard to implement... 9. If upper memory is available, the max number of games is around 5000 per database. If no upper memory is available (or you used switch -u), around 4000 games is the max. 4. SYNTAX --------- To see what syntax is available, use SGD -? To start the Spectrum Games Database, use the syntax SGD [-cX] [-p] [-q] [-w] [-d] [-u] [databasename] Option `-cX' (or `/cX', `-CX' or `/CX') is used if you are upgrading your database. Use -c1 to convert from version 1.07 or below Use -c2 to convert from version 1.09 or below Use -c3 to convert from version 1.17 or below (if you don't use it, you will be presented a corrupt database). Option `-p' is used to disable the load/save percentage bar, which is useful if you have a slower computer or a really slow video card. Option `-q' is used to disable all sounds from SGD. Be careful: this does NOT turn off the sounds from the emulators (unless `X128' is used)! Option `-w' is used to disable MS Windows `multitasking' if it is detected. It will be enabled again once you leave SGD. This should be used with caution. This option works on Windows 3.x in enhanced mode and on Windows95. Of course, programs run from the shell (such as a ZX-Spectrum emulator) will still detect that Windows is running and act accordingly, but emulation will be a lot faster. Option `-d' is used to enforce Direct Video Register Control. It will prevent SGD from using the RIL if one has been found. Option '-u' is used to disable use of upper memory. The [databasename] may be omitted, which is defaulted to GAMES.DAT. If you want to use a different database, remember that any rescued database is ALWAYS named GAMES.SAV in the SGD directory! Any database printed to a file will get extension `.OUT' and will be in same directory as the database itself. 5. THE SCREEN ------------- The screen is set up in a 640x480x16 resolution and contains two windows. The left window holds the spectrum games stored in the current database file, the right window is the description window that contains information on the game that is currently being selected. The lower part of the right window is used for the List and Screen button output. At the bottom of the right window the name of the current database is printed, together with a checkmark if the database has been changed. You can make a snapshot (GIF image) of the full screen at any time by pressing [CTRL][Print Screen]. In each session, the first screen dump will be called SDUMP001.GIF, the next SDUMP002.GIF etc. When a Spectrum screen is being displayed, you can press [ALT][G] to convert this image to a GIF file, which will be created in the directory you assign in the configuration file (`GIFPath' value). The name of the image will have the same PC-name as the game, with extension `.GIF' 6. THE BUTTONS -------------- Add - Add an entry to the database. After filling in the name of the game, the new entry will be sorted into the database. Del - Delete the game that is currently selected. Note that the game will only be removed from the database, the game file itself will be left alone. Confirmation is asked if this is set in the configuration. Write - Write the database back to disk. This is also done if you leave the application. Reload - Re-read the database from disk. Print - Print the database to the printer. Play - Play the selected game in the selected emulator. - If the game is not in a snapshot file, you will have to type LOAD "" first to load the game. - .MDR files are put into microdrive 1. - 128K games use the 128K spectrum. Config - Configure the application. Shell - Shell out to DOS. Notice that the application consumes only 2Kb of conventional memory :) WARNING: you must not start TSR programs from within the shell, or the application will not be able to swap back in! If MS Windows multitasking has been disabled, it is still disabled while you're in a shell. Quit - Stop. Screen - Find and display the spectrum screen contained in the game. If the game is in a tape file, the first screen in the tape is taken. List - TAP files: creates a catalog of the tape (see below for format); MDR files: creates a catalog of the microdrive cartridge, very much like you type `CAT 1' on the spectrum (see below); If the cartridge is write protected, this is reported in blue after the cartridge name (first line). Z80 files: gives some information as found in the header. SNA files: gives nothing, as nothing interesting can be found in the header! SLT files: as Z80 files, but also reports some information about the extension blocks. ScrShot - View a saved screenshot (.SCR) file. See `Game Screenshot Files' for more information. SLT files only show a screenshot if it is included in the snapshot (as extension). Info - View the game information file (see below). EdInfo - Edit the game information file in a seperate task. About - Shows an about box. SysInfo - Shows some system information; The buttons can be selected in two ways: 1. By clicking on them, 2. By pressing [ALT] + the underlined character. The fields in the right window can also be selected with the [TAB]/[ENTER] keys. [TAB] cycles clockwise, [SHIFT] + [TAB] cycles counter-clockwise. 7. THE FILL-IN FIELDS --------------------- The fields `Name', `Publisher', `Year', `Players', `PC-Name' and `Type' can be edited. Click on it to get a cursor. The keys are: [CURSOR LEFT] - One char left; [CURSOR RIGHT] - One char right; [HOME] - Go to the start of the box; [END] - Go to the end of the box; [BACKSPACE] - Delete the character before the cursor; [DEL] - Delete the character under the cursor; [INS] - Toggle insert/overstrike mode (the startup mode is set in the configuration window); [ENTER] - Accept the input and elect next button; [TAB] - Accept the input and elect next button; [SHIFT][TAB] - Accept the input and elect previous button; [ESC] - Restore and stop editing; [CTRL] and one of: [CURSOR LEFT] - One word left; [CURSOR RIGHT] - One word right; [HOME] - Go to the start of the input field; [END] - Go to the end of the input field; [DEL] - Clear the entire input field. B - Clear start of input field up to the cursor; E - Clear from the cursor to the end of the input field; W - Clear from the cursor to the start of the next word; Any ASCII character inserts the character. The fields `Year' and `Players' only accept numerical characters. If you start editing, overstrike or insert mode is selected depending on the configuration. I usually use the `Type' field as follows: Arc for arcade games; Adv for text adventure games; Arc/Adv for arcade adventure games; Sim for simulation games; Str for strategy games; Spo for sports games; Brd for board/card games; Lrn for learning 'games'; Dem for games demos; Bld for `building' software for games (e.g. The Quill); 8. SELECTING A GAME ------------------- Games are selected from the left window. The current game's name is inverted. To select another game, either move the slider and click on it with the mouse or use the keys: [CURSOR UP] - Move one game up; [CURSOR DOWN] - Move one game down; [PAGE UP] - Move a page up; [PAGE DOWN] - Move a page down; [INS] - Choose the game; [CTRL][INS] - Toggle the 'selected' status of the game. If you have set up a selection criterion, you can use the key [CTRL] with [CURSOR UP] - Move one selected game up; [CURSOR DOWN] - Move one selected game down; To toggle the `selected' status of a game with the mouse, hold down [CTRL] or the middle mouse button (if you have a 3-button mouse) while clicking on the game name. You can toggle the `selected' status of an entire range of games at once (with the mouse only!) by selecting the entry at the beginning of the range and then selecting the last entry in the range while pressing [SHIFT]. `Selected' games are printed with a cyan background. The slider can be used as follows: - Pick up the slider and drag it to the position you want; - Hold down [CTRL] or the middle mouse button and click somewhere on the slider bar to set the slider to that position directly; - Click above the slider to go up a page (repeated while pressed); - Click below the slider to go down a page (repeated while pressed); - or use the arrow gadgets to go up/down a line (repeated while pressed); You may also use the Typed-Name feature: Start typing the name of the game. Each time you add or delete a character, the database will be searched for the closest match to a game name. The selection bar will be on that entry. Pressing [ESC] or selecting the entry will clear the typed-name box. Note that you do not have to insert spaces or other typographical characters; these are ignored when matching. Games that can not be played in the currently used emulator (games with unknown filename extension for `Z80', all except `.SNA' for `JPP' and all except `.Z80', `.TAP' or `.MDR' for `Warajevo') are printed in red. When you double-click a game name, the game is automatically started. 9. THE SELECTION CRITERION -------------------------- At the bottom of the left window is a box with an `S' before it. This is the box where you can enter your selection criterion. Eight different criteria are included, which use the following names: Name Is Type NM Name (AlphaNum) PU Publisher (AlphaNum) YR Year (Num) ME Memory (Num) PL Players (Num) TO Together (Bool) PC PC-Name (FileName) TP Type (AlphaNum) PB PlayBit (Bool) OS OrigScr (Bool) IM Improve (Bool) FD FloppyDisk (Num) The syntax is simple: AlphaNum types are followed by a `=' character and a string, in which the wildcard characters `*' and `?' may be used; If you want to use characters `*' or `?' or `,' but not with their special meaning, insert a `\' before it. (For example `\?' is no wildcard, but a `real' question mark) FileName types are handled almost the same as AlphaNum types, but follow the (extended) DOS convention for wildcard handling. Num types are followed by `>', `<', `=', `>=', `<=' or `!=' and a number; Bool types are followed by a `=' and a `Y' or `N'. The PlayBit value is not really a database field. It checks the `playable' bit in the select window (which makes the entry red if not set). The FloppyDisk value can be used to find out which games are located on a particular floppy disk. Used 'fd=0' to find all games NOT on a floppy. Lettercase is not important. Multiple criteria are joined with a `,' character (no spaces!). For example: yr>=1985,pl=2,to=y,pc=*.tap,os=y will select all games since 1985 that can be played by two players together, that are in tape files and contain the original loading screen. - Games that cannot be played with the selected emulator are printed in red. - Games that match the criterion are printed with a cyan background. Apart from using the criterion, you can (de)select entries by hand: press [CTRL] or the middle mouse button (if your mouse has 3 buttons) while clicking on a game. You can toggle the `selected' status of an entire range of games at once (with the mouse only!) by selecting the entry at the beginning of the range and then selecting the last entry in the range while pressing [SHIFT]. If you pass an empty selection criterion, all files will be deselected. 10.1. THE CONFIGURATION ----------------------- The configuration window holds the following items: Remap Bright Black : Should the ULA bug be matched and should bright black be displayed as dark black? Confirm Quit : User must confirm quit? Confirm Delete : User must confirm delete? Follow Slider : If turned on, the games combo window will be updated while you move the slider bar. If turned off, only the slider bar will be updated while moving; the result will be printed when you release the mouse button. This option should be turned off for slower computers only. Snap Mouse Default : Turn it on if you want the mouse to move to the default button if a window/requester is drawn or if an edit button is finished with the [ENTER] key (Default is off). Edit Insert : Sets the initial edit mode for startup of edit buttons. Checked means insert mode, cleared means overstrike mode. Always Backup : If this option is turned on (the default), SGD will make a backup of the database the first time that a new version is to be written. This file will have extension '.BAK' This option can be temporarily overridden from the menu. Blanker Installed : Use the blanker? Blanker Time-Out : Number of seconds of non-keyboard/mouse activity before the blanker activates. Printer : 1 for LPT1, 2 for LPT2, 3 for LPT3. 0 is used to print to a file instead. The name of the file will have the same name as the database, but with an extension `.OUT' Lines Per Page : The number of lines per page that the printer uses. Emulator Type : Type of emulator: `Z80', `JPP' or `WAR'. Emulator Path : Full path to the emulator of the chosen type. If you use a .BAT file, which will start the emulator in turn, make sure you pass all the parameters "%1" etc too! Additional Switches : Additional command line switches to be passed to the emulator of the chosen type. `Z80' seems to have problems with some of them this way. Game Info Editor : The file name of the editor to be used when the `EdInfo' button is pressed. The extension (.COM/.EXE/.BAT) must be given too! If this is a batch file, "%1" holds the information file name. If the editor is not in the current directory nor in the search path, the full path must be supplied. Button `Save' will save the current configuration, `Reload' will load the configuration back from disk. You must explicitely press the `Use' button (or the close gadget or the [ESC] key) to leave the configuration window. 10.2. THE CONFIGURATION FILE ---------------------------- The file SGD.INI holds the above configuration. Other values are: NextFloppyDiskId : This is the next floppy number to be used. You should NOT edit this field by hand! UseGeniusMouseHiding : If turned on, will use the old-style Genius mouse hiding function. Turn it on only when you have a Genius mouse driver with version 7.02 or below. NoLocalMouseHiding : If turned on, will always fully hide the mouse when a request is made to hide in a specific range. This should only be used when you have a really weird mouse driver (e.g. in Windows NT) that messes up the screen. SwapMouseButtons : If turned on, will swap the left and right mouse buttons. DragOutlineOnly : If turned on, will update only the window's outline while a window is being dragged. This should only be turned off if you have an extremely fast processor and video card (as most windows reside in XMS) ResizeOutlineOnly : If turned on, will update only the window's outline while a window is being resized. This should only be turned off if you have an extremely fast processor and video card (as most windows reside in XMS) ValidateAfterLoad : If turned on, will auto-validate the paths of all games in the database after a (re)load or import. The default is `off'. This option can be temporarily changed from the menu. Be careful: it can take quite some time to validate if you have a large database. GIFPath : The directory where the GIF files of the spectrum screen images (created with [ALT][G]) will be stored; You can put GIF files in a directory relative to your games by inserting a `$' character before the path name. For example, if you use only `$', the GIF files will be put in the same directory as the game. If you use `$GIF', the files will be put in a subdirectory `GIF' from your game location. Z80SnapNeedsTape : This string is searched for at the end of the game name if this game is in a .Z80 or .SNA file and the chosen emulator is Z80. If it is found, the PC-file with the same name but extension .TAP is inserted as a tape file as well. This is used for programs of which the first part is in a snapshot while the rest is in a tape. E.g.: `Professional Adventure Writer' is in a .Z80 file while the character sets are in a .TAP file on most internet sites. When this option is used, it will play PAW128K.Z80 and also insert the tape file PAW128K.TAP Make sure the name of the accompanying tape is the same! I use the string "+TAP)" myself. Z80SnapNeedsVOC : Does the same as Z80SnapNeedsTape, but when the rest of the program is in a VOC file. Make sure the name of the accompanying VOC is the same! I use the string "+VOC)" myself. Z80TapesOnly : Turn this option off if you have both .TAP files created with Z80 and .TAP files created with Warajevo. The default is on (only Z80). (see below) Compressor : The compression program to be used when using the `Compress games' option from the menu strip. (see below) CompressOptions : Any options needed by the above compression program. If more than one option is needed, the argument must be quoted. StableFloppies : Assume that Spectrum software on floppies stays there. When turned on (default), SGD will not ask to insert a floppy when you select a game. It will ask for it when you press a button (Play, Screen, List, ScrShot, Info and EdInfo). When turned off, SGD will ALWAYS want the correct floppy in the drive. The above parameters must be filled in by hand. GameDir : All the directories where games from the database are found. GameDir entries are automatically inserted if you select files from the file requester. This file can be edited with any ASCII editor, but is also rewritten if you change the configuration. 11. THE MENU STRIP ------------------ SGD has a menu strip a la Amiga. For users unfamiliar with the Amiga, I'll explain how it works: - To use the menu strip, press the right mouse button. You'll see the strip at the top line of the screen; - While keeping the right button pressed, move it to one of the words in it. A roll-down menu will appear; - While still keeping the right mouse button pressed, move the mouse over the menu entry you wish to activate. Entries with an `>>' at the end have a submenu attached; - When the mouse highlights the entry you want, release the right mouse button; - If you don't want one of the options, move the mouse somewhere in the void and release the right mouse button there. - Some menu entries has key shortcuts. These are shown at the end of a line. The menu strip has the following entries: 1. Database - New : Remove the current database from memory and start with an empty one. You will be asked to save first if you changed anything; Notice that the database name will be 'NONAME.DAT'. When saving a new database, you should use the menu option 'Save As...' to give it a proper name. - Open ... : Remove the current database from memory and open a new one. You will be asked to save first if you changed anything; - Save As ... : This menu has a submenu: - All : Save the entire database to a new file; - Selected : Save only the selected entries to a new file; - Print : This menu has a submenu: - All : Prints the entire database (the same as the button); - Selected : Prints only the selected entries; - Import database : Join another database in memory. The new database will be simply added, so the result will be unsorted. Afterward, the selection bar will be on the first imported line. - Resort database : Resort the database. All entries will be sorted by game name. This option is generally needed when you import a database. - Validate database : This menu has a submenu: - All : Validate the entire database; - Selected : Validate only the selected entries of the database; - Compress games : This menu has a submenu (see below): - All : Compress all games in the database; - Selected : Compress only the selected games of the database; - Find new games : Search all GameDir directories for game files that are not yet in the database. All found games can be added to the database. Be careful: it can take quite some time to search if you have a lot of new games and/or a large database. - View screenshot : This allows you to view a .SCR file. A seperate window will be opened with a `Make GIF' button attached. Created GIF files will be put in the same directory as the .SCR file, no matter what value you used in the `GIFPath' configuration! - Backup database : If checked, will create a backup of the `old' database before writing a new one (to temporarily override the `Always Backup' option from the configuration window). - Auto-validate : If turned on, will auto-validate the paths of all games in the database after a (re)load or import. The default is `off'. Be careful: it can take quite some time to validate if you have a large database. - Quit : Guess... 2. Edit - Delete selected : Remove all selected entries at once. - Invert selected : Invert the selected games - selected games are now deselected and vice versa; - Duplicate Entry : Duplicate the currently selected entry; - Create GIF-file : Convert the currently displayed Spectrum screen image to a GIF file, which will be created in the directory you assigned in the configuration file (the "GIFPath" value). The name of the image will have the same PC-name as the game, with extension `.GIF' - Create SCR-file : Convert the currently displayed Spectrum screen image to a screenshot file, which will be created in a subdirectory `SCRSHOT'. See `Game Screenshot Files' for more information. This option is disabled when the ScrShot button on the screen is active, unless an SLT file is being handled. An SLT file creates a SCR file which will not be viewable from the ScrShot button (as this button takes the screenshot as found in the SLT file itself). 3. System - Disable sounds : Turn all sounds from SGD on/off. Has the same purpose as the command line option `-q'. For those people who might wonder why you could possibly need more than one database, I use five databases: TEXTADV.DAT - For all text adventures; GAMES.DAT - For all other games and demos of games; DEMOS.DAT - For all other demos; UTILS.DAT - For all utilities; MISC.DAT - For all cheats, spoilers and tapezines; 12. .TAP CATALOGS ----------------- A tape file reports the following information per file: 1. (Expanded) Spectrum file name; 2. Type of file: PROG, CODE, A-AR, N-AR, HEAD, ????; 3. Depending on the type: PROG (Program) : Auto-start line or ----- if none; CODE (Code) : Startaddress of the code; A-AR (Alphanumerical Array) : - N-AR (Numerical Array) : - HEAD (Headerless block) : The Flag byte; ???? (Unknown block) : The Type byte; 4. Length of the block. Tape catalogs are of course printed in the original spectrum font. Blocks with zero length are reported as being noise (multiple blocks are reported only once). When a tape index is on the screen, you can double-click on a block if it is of type CODE or HEAD. This opens a window where the selected block is displayed as though it was a screen. This window also contains a `Make GIF' and `Make SCR' button. To close it, you must either press [ESC] or use the close gadget. This is useful for tape files that contain multiple screens. A lot of tapes also have a screen with some bytes following it (remember that a Spectrum screen is 6912 bytes), so it cannot be found when you press the `Screen' button from the main screen. This option allows you to still watch that screen! The 'Make SCR' button is used to make the shown screen a screenshot file, which can be shown from the main window with the `ScrShot' button. Notice that you cannot handle the tape combo window from the keyboard, as this would conflict with the Game Select Window. Sometimes, the startaddress of the block is not exactly the startaddress of the Spectrum display area. I have some TAP files where some bytes before this address have been saved as well. This results in a 'shifted' picture. You will find a fine-adjust thingy in the window where you can adjust this offset. 13. .MDR CATALOGS ----------------- A microdrive file reports the following information: - Name of the cartridge, followed by an empty line. If the cartridge is write protected, reports `(Write protected)' in blue after it; - Per file on the cartridge: 1. (Expanded) Spectrum file name; 2. Type of file: PROG, CODE, A-AR, N-AR, ????; 3. Depending on the type: PROG (Program) : Auto-start line or ----- if none; CODE (Code) : Startaddress of the code; A-AR (Alphanumerical Array) : - N-AR (Numerical Array) : - ???? (Unknown block) : The Type byte; 4. Length of the block (Unless type ????). The files are sorted alphabetically (like the original); Hidden files are reported in red. - An empty line, followed by the empty space in K, rounded down. Microdrive catalogs are of course printed in the original spectrum font. 14. THE GAME INFORMATION FILE ----------------------------- You can add information files to your game files. It has the same name as the game file, but with extension `.TXT' and is to be found in a subdirectory `INFO'. For example: A game with full path: c:\spectrum\game.z80 will have an info file: c:\spectrum\INFO\game.TXT ---- --- This file can contain any information you like, such as: - Goal of the game; - Playing keys; - Special POKEs; - Ratings, etc. The file is shown if you press the `Info' button and can be edited/created if you press the `EdInfo' button. The editor to be used must be supplied in the configuration window. Before the editor is started, a test is done if the `INFO' subdirectory exists. If it does not exist yet, you will be asked if it should be created. Lots of spectrum game files from the internet have an information file added. Just check the extension and you can view this file! An information file uses the following format: - The length of each displayed line is 80 characters (special codes are not counted). If a line is longer, it wraps (at word boundaries) to the next line. - Special codes can be inserted to control color and attributes of the characters in the file: {B Start bold printing; {I Start inverted printing; {U Start underlined printing; {T Start italics printing; {+n Change the foreground color to color n (see below); {++ Restore the foreground color; {+- Change the foreground color to the background color; {+* Change the foreground color to the bright color; {+/ Change the foreground color to the non-bright color; {-n Change the background color to color n (see below); {-- Restore the background color; {-+ Change the background color to the foreground color; {-* Change the background color to the bright color; {-/ Change the background color to the non-bright color; }B End bold printing; }I End inverted printing; }U End underlined printing; }T End italics printing; }N Restore all variables, this is the same as }B}I}U}T{++{-- All other `{' and `}' sequences loose their sequence character, so you should use: {{ To get a single `{' character (`}{' will also do), or }} To get a single `}' character (`{}' will also do). If you select both bold and italics, the result will be bold only. Color values may take the values (* def. fore-, # def. background): COLOR VALUE COLOR VALUE * Black 0 Dark grey 8 Blue 1 Light blue 9 Green 2 Light green A Cyan 3 Light cyan B Red 4 Light red C Magenta 5 Light magenta D Brown 6 Yellow E # Ligt grey 7 White F The following key-equivalents are available while viewing this file: [CURSOR UP] - Go one line up; [CURSOR DOWN] - Go one line down; [PAGE UP] - Go one page up; [PAGE DOWN] - Go one page down; [ESC] - Stop viewing. If the file is too long to fit into memory (which means: you really have a lot of games!), it will be truncated in the viewer. SLT files use an extension to store this information within the snapshot file itself. It is currently NOT possible to edit this, as the format is still undecided. I used the format proposed by Damien Burke: 1. A line is max 64 characters in length; 2. End-of-line is done with a single CR (as with e.g. Tasword) 3. Bold is done by surrounding a string with '' and '' sequences; Underline is done by surrounding a string with '' and '' sequences; As soon as the format to be used is decided on, I'll adjust to this. 14. THE GAME SCREENSHOT FILE ---------------------------- You can add a screenshot file to your game files. It has the same name as the game file, but with extension `.SCR' and is to be found in a subdirectory `SCRSHOT'. For example: A game with full path: c:\spectrum\game.z80 will have a screenshot file: c:\spectrum\SCRSHOT\game.SCR ------- --- Screenshot files can be created in different ways: 1. From within Z80. Press F10, choose `X - Extra options' and `Save screen or memory block'. Be sure to use the same name as the snapshot. You will have to move the created file into the screenshot directory yourself. 2. While viewing a game screen (the `Screen' button pressed): select menu entry `Make SCR-file' ([ALT][K]); 3. While viewing a TAP block image: select button `Make SCR'. Before a screenshot a created, a test is done if the `SCRSHOT' subdirectory exists. If it does not exist yet, you will be asked if it should be created. As a lot of snapshots miss their loading screen, the `Screen' button will not display it for you. This option allows you to still maintain these screens. I found a lot of games on the internet have a screenshot file in the archive, which can be viewed in this manner. SLT files use an extension to store this information within the snapshot file itself. 16. DATABASE VALIDATION ----------------------- Each time you select a game or change the path to a game, the entry is re-validated. Validation includes finding the length of the file, finding and testing the consistency of the filetype and adjusting the `playbit' of the game. You can force SGD to automatically re-validate each database as it is loaded or imported by turning on the `Auto-validate' menu entry (temporarily) or the `ValidateAfterLoad' option in the configuration file (permanent). You can also validate the current database by hand from the menu strip. (see above) My guess is that you will not have to validate very often (probably never), and you should avoid it as much as you can, as it is a very timeconsuming operation. The only reason to use it is when you reorganize the locations of your game files. 17. GAME COMPRESSION -------------------- If you're a bit like me and want to maintain an internet Spectrum archive, you will need to have your games compressed. This is done from the menu strip. First you must define the compressor program to be used, in your configuration file (`Compressor'). If the compressor needs extra options, these can be defined as well (`CompressOptions'). The usual compressor will be PKZIP (copyright by PkWare Inc.), which is normally used on the internet. A compressed game contains all material related to that game, i.e. if you had a screenshot or a game information file, or the next levels are in a .VOC or .TAP file or (level-loader) .DAT files, these are all included in the archive. When you select the compress option from the menu strip, you will see a requester where you must confirm the action. Be sure that you want to do it, as there is no way to back out once it has been started! Each game is written to its own archive file, where the filename will be the game PC-name, with an extension depending on the used compressor. The usual location for compressed games is in a subdirectory `ZIPPED' from your games (like the `INFO' and `SCRSHOT' subdirectories). In the confirmation requester, you can choose a custom directory if this is not where you want them. 18. SUPPORTED FILE TYPES ------------------------ Z80 : .Z80 .TAP .MDR .VOC .SNA .SLT (.SCR) JPP : .SNA Warajevo: .Z80 .MDR (.TAP) X128 : .Z80 .TAP .VOC .SNA .SLT (.SCR) Notes: Z80 supports .SLT from version 3.04 (not available yet) Warajevo supports .MDR from version 1.50 Warajevo has its own .TAP format, incompatible with Z80 (see below) X128 cannot save .TAP files X128 can read .Z80 files through V3.00, but writes V2.01 files 19.1. NOTES ON USING THE `Z80' SPECTRUM EMULATOR ------------------------------------------------ Z80 is the only shareware emulator, but the emulation is so good that it's well worth registering. 1. EMS should be installed as well, as Z80 needs it for better 128K emulation. 2. Be careful with the `-n' switch (no Interface I). If you have this switch in your Z80.INI, you will not be able to play .MDR files! 19.2. NOTES ON USING THE `WARAJEVO' SPECTRUM EMULATOR ----------------------------------------------------- The Warajevo ZX Spectrum Emulator is one of the new emulators. There are some important things to consider when you use this emulator though: 1. This emulator has 2 seperate emulator executables: SPEC48.EXE and SPEC128.EXE. When you setup the path to this emulator (From the configuration window or in the configuration file after `EmulatorPathWAR'), you MUST choose either one of these executables. Depending on your choise, SGD does the following: SPEC128.EXE : SGD will ALWAYS start the 128K spectrum; SPEC48.EXE : SGD will start the 48/128 spectrum depending on the memory type field of the game. 2. This emulator has a lot of (command line) options to improve emulation. Like the authors say in their documentation, each game will probably run best with a dedicated set of options passed. SGD supports only 1 set of options (Extra options). You should choose the best overall combination. You can also setup a configuration file (see the Warajevo documentation) which is used in the same way. A lot of great features are lost when using SGD in stead of the database program supplied with Warajevo, but a lot of other features are returned. It's up to you which one you decide to use. 3. I would like to stress that .TAP files from Warajevo are NOT compatible with the .TAP files from Z80 (as you usually find them on the internet)! SGD supports only the Z80 version, so don't try to `List' a .TAP file created with Warajevo (and don't try to `Play' one created with Z80). To reduce possible confusion, I created the configuration option `Z80TapesOnly'. If turned on (default), all .TAP files on the database are considered created with Z80. You can not handle TAP files when you choose the Warajevo emulator. If turned off (must be set by hand), you are responsible for remembering which .TAP files belong to which emulator. You must turn the option off to be able to play .TAP files with Warajevo. 4. You need version 1.5 to be able to play microdrive (.MDR) files. 19.3. NOTES ON USING THE `X128' SPECTRUM EMULATOR ------------------------------------------------- This emulator runs in 128K mode only. It's the first emulator that accepts the .SLT file format, which SGD supports since v1.14 This emulator is also the only one with a '/quiet' switch, which is also supported by SGD. 20. CONVERTING YOUR DATABASES ----------------------------- The database format has changed during 3 version updates, v1.18 being the last one at the moment (to support floppy numbering). You must convert your `old' databases with a command line switch: Use '-c1' to convert from version 1.07 or below Use '-c2' to convert from version 1.09 or below Use '-c3' to convert from version 1.17 or below Converting should be done one database at a time. The converted database will be written back immediately. The old, nonconverted version, is backed up first with extension .BAK Notice that this extension is the normal backup extension. Be sure NOT to use the `Load Database' menu option within SGD to load the next database to be converted, as this doesn't work! 21. TROUBLESHOOTING ------------------- Q: When I return from SGD to DOS, or when I start a shell from within SGD, the screen does not have a cursor, but I see a cursor-like line somewhere in the void. The font seems to have changed too. What happened? A: I encountered this problem so far only when using MouseWare from Logitech. If you use Logitech's MouseWare, ensure that the VCI module LVESA.OVL is loaded and cursor enhancements are off. To do this, edit your MOUSEDRV.INI file. Look for the section `[Display]' and ensure that a line `VideoModule=C:\MOUSE\LVESA.OVL' is present (or whereever the LVESA.OVL file resides). Now, if you load your mouse driver (possibly from your AUTOEXEC.BAT file), load it with parameter `NOCENHANCE'. Q: The mouse makes a mess of the screen! I don't like this at all! A1:You have a Genius mouse with a driver version 7.02 or below. Genius mouse drivers v7.02 and below have a different approach for mouse hiding. If you use one, weird things can happen. Yet, no harm is done by this to the application nor your computer. Two solutions are available: 1. Get yourself a newer mouse driver, or 2. Turn the option `UseGeniusMouseHiding' on in the configuration file. A2:You have a combination of an older (ISA) video card and an older mouse driver, which does not provide the RIL (Register Interface Library). Be sure not to use the command line option '-d', as this disables the RIL. You can see if the RIL is present when pressing the 'SysInfo' button. If a RIL is present, you will see a line 'RIL version : xxxx' in the video section. If it is absent (or not used), you get 'Control : Direct' instead. You can solve this problem in the following ways: 1. If you are running SGD in a DOS-box from OS/2, update the box's parameters, so that compatibility mode is on. 2. Use a newer, fully Microsoft compatible mouse driver, or 3. Add the following line in your CONFIG.SYS: DEVICE = EGA.SYS This device driver also provides the RIL. Q: When I start SGD, the screen is cleared, I see a cursor sitting in the upper left corner, but all activity has stopped. What did I do wrong? A: You started SGD while you were in a non-supported video mode (for example 132x44). This causes the graphics library to crash completely. You need a full reset of the computer to restart. Next time, use the command 'MODE 80' before starting SGD. Q: I print to a print queue (for example a Novell Netware captured LPT port). When I choose to print the database, it doesn't work! A: SGD prints to the parallel port hardware directly. Queueing programs are unable to trap those operations. For this reason, I built LPT0: in the configuration. This will print to a file instead. Use this feature and print the file from DOS (or the shell) instead. Q: I run SGD from Windows NT. The mouse cursor looks very weird. The mouse cursor also messes up the screen. What's this? A: As I said earlier, you shouldn't run SGD from (any version of) Windows. Windows NT is the funniest of all. Although it's from Microsoft, the emulated mouse cursor in a DOS box is absolutely NOT Microsoft compatible! Talk about weirdos, eh! You should turn on the 'NoLocalMouseHiding' in the configuration file. This will solve the screem problems, although the mouse will still look weird (and flickers). Q: When I run SGD from DOS, I get XMS version 3.0. But when I run SGD from a DOS-box in Windows 3.x, I get XMS version 2.0, although I didn't change my XMS driver. How's that possible? A: Windows uses an internal, enhanced (yeah, right) XMS driver, which overrides the driver you installed already. This driver is actually A LOT slower (that's why they invented version 3.0!!!), but should work fine with SGD. Q: When I load a database, it says I'm out of memory. It asks me to truncate the view on the screen to about 5000 entries. What should I do? A: Wow! You REALLY have a lot of games! Immediately get in touch with me, as you might have games that I don't :) Ok...the best thing to do would be to split up your database. As you can no longer read it entirely into memory, you will have to do this by hand with an ASCII editor. The standard DOS editors, such as EDIT, won't be able to do the job, as the database file doesn't fit in memory. You could try a Windows editor. This is why I keep the database in an ASCII file! (By the way: how did you manage to insert those entries???) Q: When I load a database, I get the fatal error 'Percentage is [>100%]'! Q: When I load a database, I get the fatal error 'Database found corrupt while reading entry [XXX]' A: You have to convert your database to the new format of v1.18 Please read the section 'Converting Your Databases'. 22. THE CREDITS --------------- I would like to thank the following people: - Sir Clive Sinclair for creating such a terrific machine; - Gerton A. Lunter for writing the remarkable Spectrum emulator `Z80'; (also for documenting everything so well, thanks!) - Arnt Gulbrandsen for writing the Spectrum emulator `JPP' and maintaining this huge spectrum games archive at www/ftp.nvg.unit.no - Zeljko Juric and Samir Ribic for writing the excellent `Warajevo ZX Spectrum Emulator'; - James McKay for writing the Spectrum emulator `X128'; - Marty Del Vecchio for generously releasing his swap() routine to the (free) public domain; - Damien Burke for including SGD in the official `Spectrum FAQ'; - Jeroen J. Kwast of ThunderWare Research Center for writing one of the Spectrum emulators on the Amiga and for being such a critical beta-tester; - Gerard Mulder for his enthusiasm and being my second beta-tester; - Frank Vierstra for being my third beta-tester; - My external beta-testers Harvey Lodder, Greg King, Peter Hope and Andrew Julian; - Lex Klaassen for his idea of a marked floppy system; - Camille van der Heide for mentioning his ideas for improvement; - All those people who maintain WWW pages and archive sites for the spectrum; - All those people who made snapshots of games and gave them away! 23. HOW TO CONTACT ME --------------------- Contacting me can be done in only two ways at the moment, by mail and e-mail. If you have suggestions for improvement (bug reports are also welcome... ;) write an e-mail to the following address: mheide@gns.getronics.nl Or a `normal', oldfashioned snail-mail letter to: ThunderWare Research Center t.a.v. Martijn van der Heide Daguerrestraat 120 2561 TX Den Haag The Netherlands Enjoy! Martijn van der Heide Software Development Engineer ThunderWare Research Center