SSS - Screen Saving System release 1.0 ©1988 Roundabout Software ---------------------------------------------------------------------------- Thought you had seen the end of screen save utilities on Amiga? Not by a long shot. Introducing three programs designed to help you get an IFF picture out of almost anything that can be on your screen. This archive contains the following : GrabViews 16552 (one shot screen save program ) GrabViews.info 779 (icon for the above ) TimeSave 21284 (timed screen save program ) TimeSave.info 1227 (icon for the above ) Memview2 33208 (scan memory for bitmaps ) Memview2.info 1283 (icon for the above ) Registration 2330 (the part you dont want to read ) SSS.doc 20711 (what you're gazing at now ) Accept NO substitutions. Preface ------- SSS was written to try to address some of the inadequacies of the many screen grab and snapshot programs currently available. For the technically oriented, all three programs work by starting in GfxBase and working their way through the list of active ViewPorts. A display does NOT need to be on an Intuition screen for the SSS programs to find it. Other screenshot programs that look for screens instead of ViewPorts are likely to not work properly if a program is directly manipulating the display as described in the RKM 'Graphics Primitives' chapter. Format of these documents ------------------------- The documents that follow are for the three programs that make up SSS, GrabViews, TimeSave, and Memview2. The programs are designed to each be in ascending order as to how hard it might possibly be to get at a screen. For example, if you have control of your computer while a program is running that you need a screenshot of, GrabViews will do the trick. If you can't do anything while the program is running, not even a hotkey, then TimeSave will save screens without your having to press a single key. If TimeSave will not work with the program you are trying to get a snapshot with (a desperate case indeed) then Memview2 is your last resort. Enough of the preface, onward to the instructions for each of these programs... GrabViews 1.0 ---------------------------------------------------------------------------- GrabViews is the most basic form of these utilities. When run, the program will save all currently active displays with incremental file names. Operation is fairly simple, but the interface is different depending on whether you start from Workbench or CLI. Performance notes - CLI ----------------------- GrabViews runs from CLI with a single argument, the prefix for the filename(s) that the IFF's will be saved with. Since there can be many displays active at any given time, files are numbered incrementally in the following fashion : .VPXX The prefix is what you supply on the command line. The VP stands for ViewPort, and the XX will be a number, starting at 0. GrabViews does not check for files of the same name already existing, so use with care if you already have any similarly-named files in the same directory. If GrabViews cannot open a file with the name you requested, it will abort gracefully. Example usage would be: 1> GrabViews Picture Assuming you have two displays active (say the Workbench screen and a terminal program) you would have the following files written: Picture.VP00 Picture.VP01 These would go to the current directory. If you wanted to send them to another directory, just add the path to the prefix on the command line, for example: 1> GrabViews dh0:graphics/pictures/hello Would result in hello.VP00 and hello.VP01 being written to the directory 'dh0:graphics/pictures'. Starting GrabViews from the CLI with no arguments will result in usage information being displayed just to remind you what is going on. Performance notes - Workbench ----------------------------- Running from WorkBench is easy, just click on the icon. A small window will open up and present some information and a prompt for you to enter the prefix to be used on the filenames. After you have done this, if your information is valid, GrabViews will start saving the displays one at a time, displaying each filename as it is written. After everything is finished, you will be asked to press a key to terminate GrabViews. To write to a particular directory, just tack on the directory name in front of the prefix as described in the CLI usage section. Please note that display of filenames as they are saved ONLY occurs if you run the program from Workbench. Mis-Features ------------ Currently there is NO support for funny video modes such as HAM or ExtraHalfBright. If you do happen to have screens of this nature up when you run GrabViews, it won't crash; rather, it will just output an IFF file that probably can't be shown by any type of picture viewer. On the upside, non-standard screen sizes should be saved perfectly. If you happen to have more than 100 ViewPorts active when you run GrabViews, the numbers will 'wrap around' and start saving again when it gets to 100, writing over the VP00 files and so on. I seriously doubt that anyone will have a problem with this, but I thought I would add it in. If YOU can figure out how to get over 100 ViewPorts active at once, then I will gladly modify the code to go up to 999. TimeSave 1.0 --------------------------------------------------------------------------- TimeSave was written to handle those times when the program you are trying to get a screen from won't let your hotkeys get through, or does something strange when you switch back to CLI (if it will even LET you get back to CLI). It was also written to allow unoprompted and scheduled saves of the active displays. The basic operation of the program is similar to that of GrabViews, but with a few more options. Read onward. Performance notes - CLI ----------------------- TimeSave expects two arguments on the command line, the start delay and the save delay. Start delay refers to the amount of time in seconds that TimeSave is to wait before beginning incremental saving of displays. The save delay is the amount of time in seconds to wait between saving all the available displays on the system. For example, if you were to start TimeSave in this manner: 1> TimeSave 180 60 Then TimeSave would wait three minutes (180 seconds) before going to work. Then it would save all the displays once a minute. Starting TimeSave with no arguments, an improper number of arguments, or the wrong type of arguments (ie. TimeSave hello world) will result in the usage information being repeated to make sure, again, that you know what you are doing. Usage after this point is described in the "general usage" section following Workbench startup. Performance notes - Workbench ----------------------------- To start TimeSave from Workbench, just click on the icon. A small window will open up prompting you for the start delay time and the save delay time, as detailed above. If you enter the wrong usage information, then TimeSave will abort, assuming that you really didn't want to run it. If your options have been entered correctly, the small window will close up and operations go on to what is described below. Performance notes - General Usage --------------------------------- After you have started TimeSave in your preferred manner, a small window with a close gadget will pop up letting you know that TimeSave is working. If you want to quit TimeSave, just click on the close gadget. After the initial delay that was entered, TimeSave will save all the current ViewPorts (displays) on the system to the logical device GRAB:. I used this name so that Grabbit users won't have to reassign anything to use this program. The filename is in the following format: TimeSave.VPXX.YYY The XXX refers to the the ViewPort number (starting at zero) and the YYY number refers to the number of the save procedure that the pictures came from. After the picture has been saved the WorkBench screen will flash, letting you know that the picture has been written. Here is a typical sequence of events in using TimeSave: 1> Assign GRAB: DF1: ( this assigns the logical device GRAB: which is where TimeSave will try to save its files to ) 1> run TimeSave 30 120 ( This starts TimeSave with an initial delay of 30 seconds and a 2 minute delay between saving sets of screens. ) Now, assuming you have two active displays, after 30 seconds the following files will be written: DF1:TimeSave.VP00.000 DF1:TimeSave.VP01.000 The Workbench screen will flash, letting you know that the files have been written. Then two minutes will pass. Suppose during that time you open up ANOTHER screen. Here is what will be written: DF1:TimeSave.VP00.001 DF1:TimeSave.VP01.001 DF1:TimeSave.VP02.001 Again, the Workbench screen will flash. Then you click on the close gadget and TimeSave goes away. After this TimeSave session you have the following files: DF1:TimeSave.VP00.000 DF1:TimeSave.VP01.000 DF1:TimeSave.VP00.001 DF1:TimeSave.VP01.001 DF1:TimeSave.VP02.001 During the time that TimeSave is running, if anything goes wrong (TimeSave can't save the files, for instance) it will abort gracefully. One other thing you should know about is that TimeSave sets itself to a VERY high priority to try to keep things from moving while it is saving the files. Don't worry, while it is waiting for the time intervals, it won't slow anything down at all, just when it is saving the screens. If there is too much movement going on when the screen is being saved, there is a good chance that you will get a little bit of blur, but this doesn't happen very often. Mis-Features ------------ As with GrabViews, TimeSave won't handle funny video modes such as HAM and ExtraHalfBright. Also, certain game screens do not come out quite right. The pixels will all be in the right places, but the colors come out funny every now and then. In such a case, just be glad that you at least have the meat of the picture (the bitmap) and boot up a paint program and play with the palette until it looks right. MemView 2.0 -------------------------------------------------------------------------- MemView 2.0 is based on a program written a couple of years ago by Leo Schwab. It is designed as your last resort -- for those games that don't start from Workbench conditions (Psygnosis products come to mind) and for times when the displays may be hidden in memory but not actually showing on the screen (see the hints and tips section for examples of this). Basically what it lets you do is scan through chip memory looking for bitmaps and then (if you choose) saves the image as an IFF file when you exit the program. Performance notes - Workbench & CLI ----------------------------------- To start from Workbench, just click on the icon. To start from CLI, just run the program. Execution after this is identical in either case. Performance notes - General Usage --------------------------------- After you have started Memview2, a window will pop up with many gadgets in it. Nine of these are switches, and when you click on one of them, it will slide to the right, and the previously selected one will turn off. The four gadgets on the top row are the screen resolution at which you wish to work. The five gadgets underneath those are the depth settings, 1 = 2 colors, 2 = 4 colors, 3 = 8 colors, 4 = 16 colors, and 5 = 32 colors. Note that you cannot have a depth of more than 4 with 640x400 and 640x200 modes. Even though you cannot select things like this, I thought I would mention it. Below the five depth gadgets is a string gadget. The name in here is the filename to save the resulting picture to. If you just want to look through memory and don't want to save a filename, then delete the default string contained in the box by pressing Right-Amiga-X (or lots of backspaces if you are more comfortable with that). The last two gadgets are 'GO' and 'Cancel'. 'GO' will proceed with program operation, and 'Cancel' will take you back to wherever you started from (Workbench or CLI). After you click on 'GO' then a display matching the resolution and depth that you specified will be created. Control from this point is joystick oriented (just like in the original Memview program), and kind of fun if I might say so. You have five options available to you: Joystick left : Select slow scroll mode Joystick right: Select fast (zooom) scroll mode Joystick up : Scroll upward through memory Joystick down : Scroll downward through memory Joy Button : Exit the program Your task now is to find the bitmaps that you are looking for, which hopefully match your specifications when you started the program. You want to start by scrolling DOWNWARD until you find what you are looking for. Chances are that you will find four or five different 'versions' of the screen you are looking for, all but one with a good bit of miscellaneous garbage on them. I like to check things out in high speed zooom mode and then when I find it, I use the slow scroll mode to get the picture lined up correctly. There is also a good chance that your picture will be split across the border, as if somebody shifted the entire thing over and it wrapped around to the other side. In this case, save it anyway and use a paint program to move things around correctly. You will have to use a paint program anyway to get the palette right -- Memview 2.0 uses a fixed palette and searching through memory for a palette could take hours, although I might do something like this for a future release. A typical session with Memview 2.0 might go something like this: Boot up that Psygnosis game that you want a screen from. When the screen shows what you want a picture of, RESET your computer. Yes, thats right, control-A-A (or the chickenhead if you don't have a 1000) Boot up with your workbench, or perhaps even a blank disk with nothing but Memview 2.0 on it, and run Memview 2.0. Select 320x200 resolution and a depth of 5, a filename of PSYG.PIC. Scroll DOWNWARD through memory using zooom mode until you find the screen that was displayed when you reset the computer. Yup, its still in there, and if you don't use much memory, it can hang around for DAYS. Since this is a five bitplane screen, usually the picture will be the fifth one once you start seeing versions of it with a little bit of garbage on 'em. Use the fine scroll mode to center the picture, and press the joystick button. Your picture will be written out. Load up your favorite paint program (Graphicraft! hahahaha) and adjust the palette until you are happy with it. The end. Thats all there is to it. There are also some other neat things that Memview 2.0 can accomplish that are detailed in the 'Hints & Tips' section. Mis-Features ------------ You've probably already guessed -- at the current time, Memview 2.0 only works in the above stated resolutions. No weird screen modes, and no overscan or strange screen sizes. Maybe in a future release if I can figure out how to implement it in my original requester. If you are using either 320x400 or 640x400 resolution with more than three bitplanes, the scroll is not exactly smooth, but jumpy. Don't worry, though, everything straightens out when you let go of the stick, and everything will be saved properly. Not my fault, just that the ScrollVPort routine isn't quite perfect. I've done what I can to keep things looking reasonably pretty. You should NOT scroll UPWARDS through memory if you intend on saving the picture, or else your IFF won't match what was on the screen when you save it. Always start your journey into memory by scrolling DOWNWARD. I'll be fixing this soon, but I wanted to go ahead and get this entire package out and in 'distribution' fairly quick. No, you won't crash or anything, its just that the result is not correct. SSS Hints and Tips --------------------------------------------------------------------------- Okay, here are some fun things you can do with SSS that you might not have been able to think of while wading through these monotonous instructions. 1) Cheat at Centerfold Squares. Apparently CFS keeps a duplicate of your opponent in memory as she is seen when you win. The sequence of events to get the picture is: a) boot CFS and get a screen with the partially obscured opponent b) run Memview 2.0 at 320x200 resolution and a depth of 5. Scroll through until you find the right picture, with the weird colors and all. Save the result. c) Get a copy of the REAL CFS screen with GrabVeiws. Put these in the same directory. d) Quit CFS unless you have lots of memory. Boot up a paint program and load in the Memview 2.0 picture. Then swap screens and load in the GrabViews picture. Now your palette should be correct. Swap back and view your handiwork and feel kind of guilty. 2) You can get pictures from all those neat Psygnosis games that have custom bootblocks and don't let you do diddley while they are running. 3) You can save a picture of a running program WITH THE MENU DOWN. Yes, I know it sounds hard to believe, but it works. First, run TimeSave. Then get yourself situated for the save by pulling down the menu. Wait for the flash (if you are on Workbench doing this, if not just kind of time yourself or wait for the disk to stop spinning) and then check your work to see if it came out okay. I've done this several times with no problem, and is going to be a big help when doing A.X. reviews in the future. 4) What else? I'm not sure. If you find anything else fun to do with SSS then please get in touch with me and let me know. Distribution ------------ And now for the part that you probably didn't want to read. This package may be distributed via BBS's anywhere, or included on any software collection provided that the charge for said software collection or PD disk does not exceed that of the media and/or shipping charges. Posting to major networks is allowed (and encouraged) except for Compuserve. I have no desire to belong to their libraries, and if you find this there, please ask the sysops to delete it by request of the author. If you do choose to distribute this in ANY manner, you MUST include every program that is in the original distribution. A list of all the files occurs at the beginning of these documents. Please note that this program and the entire SSS system is released as freely distributable Shareware, which means that you can test drive it and see how you like it, after which time you make the decision to buy or die (grin). If you can't afford the contribution, don't worry yourself to sleep, I've been in the same shape myself before. Future additions and upgrades (for example, a hotkey activated utility like the ones above) to SSS depend on the support from the users, however. See the Registration file for your shareware registration info. On the other hand, if you are using this package in any kind of commercial environment (one idea that comes to mind is screenshots for magazines) then the contribution is MANDATORY. The price I am asking is not unreasonable for people in those situations. For your registration form and registration information, please consult the Registration file that is contained in this distribution. Finding the author ------------------ If you enjoy this program, then why not give my BBS a call? I may be located at the following locations: Chris Bailey (VOICE) (803) 796-8058 or (VOICE) (803) 794-4933 My BBS (803) 791-9448 bix : csbailey U.S. Snail 2405 Feather Run Trail W. Columbia, SC 29169 And at various other BBS's across the country (thank you, PC-Pursuit). ---------------------------------------------------------------------- This product was written and developed with: Benchmark Modula-2 by Avant Garde Software ---------------------------------------------------------------------- Revision History ---------------- Version 1.0 : Initial release consisting of: Memview 2.0 GrabViews 1.0 TimeSave 1.0