PiXEL DREAMS v1.1 Documentation CoDE: DSSS ANSi Screens: trUst, Posyden MUSiC: Ripped. :( PiXEL DREAMS is a full-featured DemoPack viewer. Why is this viewer THE one for you? Supports: NDOS/4DOS style file descriptions ACiD's SAUCE ADLiB/SB FM MUSiC VESA SVGA Drivers Features: GiF Viewing RiP Viewing INI File Runs EXE/COM Files True smooth scrolling ANSis are loaded, then viewed - you can scroll through them Continuos smooth ANSi scrolling - use it as a screen saver? ANSis up to 400 (409.59375, to be exact) lines can be viewed Totally free - unless you want to pay for it Well, those are most of the features I can think of right now. This viewer requires about 200k of free memory to run. If you want to run EXE/COM files under the viewer, you will need more memory. The viewer itself will only try to run executables if it has 128k or more free memory after it's loaded. Also, background music requires some memory, depending on the size of the music file. To view GiFs, you need a SVGA video card compatible with the VESA standard. If you have a SVGA video card, but GiFs are not displayed, try loading your VESA driver. See your video card manual for more details. I cannot be held responsible for any damages done by this program. You were warned. I don't think there are any serious bugs in this viewer, but there should be some minor ones. Anyhow, if you find any bugs in this program, try Raid Max, and then if that doesn't work, contact me. This is an official tDD SiXPACK Viewer, with many, many features, like: NDOS/4DOS style descriptions. NDOS uses a DESCRIPT.ION file to store the file descriptions. This is a simple text file, which can be edited with any text editor. Each line of this file specifies the file name, and it's descriptions in the following manner: An example of a line describing this file would be: pd.doc PiXEL DREAMS documentation The number of spaces between filename and description doesn't really matter. The case of the filename doesn't matter. This viewer only shows first 57 characters of the description, so keep that in mind when writing them. The viewer also doesn't display filenames whose description start with ` - a reverse quote, right next to ESC and 1. So if you want to stop a file from being displayed, enter ` for it's description. For example, the description of PD.EXE is set to `, so that it's not displayed with the loaders. 4DOS uses a similar description scheme, only I am not sure about the description filename. Actually, I am not sure if 4DOS has descriptions at all, but I think it does. Oh well, what do I know, anyway. ACiD's SAUCE. ACiDView, ACiD's ANSi/RiP viewer has introduced SAUCE - their format for file descriptions. They were all so happy about it in their info file, but in my opinion it's not that good. SAUCE info blocks are appended to the end of file, supposedly after it's end, so that it will not be seen normally. But that all depends on the way the file is being processed. Most viewers do show the description block at the end, and it's not a very pretty picture. Anyway, I had to add some code to ignore the SAUCE description. So how does PiXEL DREAMS support it? Well, it doesn't show it in the file itself... Just kidding. A special program, SAUCE2ND, is included to convert SAUCE descriptions to NDOS/4DOS style descriptions. Just run it, and it will look through all the files in the current directory, search for SAUCE info blocks, and append descriptions to DESCRIPT.ION file. The program doesn't check if the description is already there, it just keeps appending, so I advise you to back up your DESCRIPT.ION file before running it. When the viewer is run, it first searches for the DESCRIPT.ION file, and load in all the descriptions. If a filename has no description listed, then it is checked for SAUCE info block. But the description in the DESCRIPT.ION file has a priority over the SAUCE description. Even more, the file will not even be checked if the description exists in the DESCRIPT.ION. For that reason, when viewing a tDD pack, the viewer will load very quickly, because all the descriptions are in DESCRIPT.ION. But when viewing an ACiD or iCE pack, or any other pack which doesn't include DESCRIPT.ION with their packs, the loading time will take a lot more. Note that you can change the name of the description file in the PD.INI file. ADLiB/SB FM MUSiC I added this just for the hell of it. PiXEL DREAMS will play .ADR (ADLiB RAW) music files in the background. ADLiB RAW is my own invention (sort of), which is a file containing raw data to be outputted to ADLiB. The format of the file is in the end of this document. A few .ADR files are included with the viewer so that you can see that it really works, but I don't think that you can get those files anywhere else, unless you can make them yourself. When the file is being played, you can press F2 to shut it up. GiF VIEWING Besides viewing ANSi files, PiXEL DREAMS will also view Compuserve's GiF files. The only GiFs currently supported are the ones with resolution 640x480, and with 256 colors. Other GiFs will not be viewed. Note that you need a VESA compatible SVGA card or a VESA driver to use this feature of the viewer. INI FILE At startup, PiXEL DREAMS searches for PD.INI file in the current directory. See PD.INI included with this viewer for info on how to use the INI file. If the file is not found, everything is set to default. EXE/COMS EXE and COM files are only run if you have 128k or more free memory after the viewer is started. After the file is run, the viewer's music will be restarted for technical reasons. RiP ViEWiNG PiXEL DREAMS has the most complete RiP viewing capabilities I've ever seen. The only viewer that is better than this one is FreeView by Wayne Thomas. FreeView supports more commands, but it's interface needs improving. So I guess I can say that PiXEL DREAMS is the best RiP viewer to date. It is fully compatible with RipScript 1.54 standard, but some commands, such as text regions and variables are not supported, simply because I don't think that any RiP screens would use them. PiXEL DREAMS should view any RiP screen out there. Borland's drivers and fonts are not needed for RiP viewing. There might be some bugs in RiP code, so if you find any, please contact me. Version 1.1 of the viewer shows RiPs much faster than v1.0. OK, now that we're done with the main features, here's how to use this viewer. In the file selection screen: CurUp/CurDown - move the file pointer (Duh!) PgUp/PgDown - quickly move the file pointer Esc, Alt-X, Alt-Q, F10 - quit (you knew that, right?) Enter - Load ANSi/ADR/GiF file Alt-S - Toggle smooth scrolling ON/OFF F2 - Stop music from playing In the ANSi viewer: CurUp/CurDown - Scroll Up/Down 1 line PgUp/PgDown - Scroll Up/Down 24 lines Home, End - Move to the beginning/end of the ANSi. Esc, Enter - Exit to file selection screen Alt-X, Alt-Q, F10 - Exit to DOS Spacebar - Scroll ANSi continuosly. Any key to stop. Doesn't work with smooth scrolling on. In Smooth Scrolling mode, CurUp/CurDown and PgUp/PgDown do the same thing. Home and End will only work after the ANSi stopped moving. Plans for the future: ANSi viewing in all video modes MOD Support (highly doubt it) Modem Simulation Maybe a VGA/SVGA graphical interface, who knows? ADLiB RAW (.ADR) specs, as promised: An .ADR file contains raw ADLiB tune data. The advantage of this format is that it can be played in a few lines of code in basically any programming language. The disadvantage is that the tune is not flexible at all, can't have any special effects, and the quality of the tune depends on the program that generated the file. Now, the actual format: The file consists of two-byte records, which contain the PortID and the Value to be outputted to the ADLiB sound card. Since ADLiB only uses about 240 ports, port values above that are special commands. Right now, there are 3 commands, and those 3 commands are enough to make the tune complete. Command 0FFh means that the row of notes is done, and that it is time to pause. Command 0F6h sets the NPB (notes per bit) of the song, and the Value contains the new NPB. Command 0F7h sets the BPM (bits per minute) of the song, and the Value contains the new BPM. Here's some pseudo code to play an .ADR file: Begin If (PortID==0FFh) Then Do_Pause Else If (PortID==0F6h) Then SetNPB(Value) Else If (PortID==0F7h) Then SetBPM(Value) Else WriteAdlib(PortID, Value); // A routine to output data to Adlib End; Well, there you go. Like I said, a few lines of code. The only thing you need is a routine to output data to ADLiB, and a routine to pause the tune for needed time - reprogramming the timer works for me. CREDITS: ANSi Screens by Trust / tDD, Iodine / tDD / ACiD CoDE: Odysseus (yours truly.) Special thanks to Mind Bender, for giving me his code for bezier curve drawing. Without that code, the RiP capabilities of the viewer would not work. This viewer uses ADLiB Musics Interface Kit pre-beta C Version, coded by me. The kit might be released to the general public later on. ADMiK features: Plays : Scream Tracker 3's S3Y (Simplex) files HSC Tracker's .HSC files Features: C/ASM Versions Highly compressible music files Very compact code Exports HSC/S3Y files to ST3 Import format for editing. The GiF viewer was also coded by me about 2 years ago, when I still had an authentic IBM 8088 Turbo XT 4.77/8Mhz with 640k of RAM and an EGA monitor. That PC was only good for lifting weights. Anyway, the viewer is coded in C, and it's a little slow, because the LZW decompression was done in C. VESA info was taken from Interrupt list version 43. Greetz: trUst, Posyden, Cyber Angel, Crisis, Comanche, Netman, The Abbreviated Assassin, PSi, Trug, Wildfire, Draeden, Chicken, JCH, Friar Tuck, MindBender, Onyx, Verminator (You are the best musician I ever knew. Of course, you are also the only musician I ever knew.. But that's another story. :) ) Groups: Future Crew, ECR, VLA, Vibrants, S!P, Triton, Acme, EMF, ACiD, iCE. It looks like this doc file has come to an end. Bug reports, comments, suggestions, curses or a simple hello - send it all to me. Contacting info is right down there. Internet Email: sergeyi@dorsai.org Odysseus_ or Odysseus on IRC (mostly in the evening). Oh well, until next time - DSSS / tDD '95 KNOWN BUGS: On some monitors, GiFs are not displayed correctly. This is because of incompatibility with some SVGA cards. If your card doesn't work with with the viewer, run the viewer with a /vesainfo parameter, and then email me with the results. Your help is always appreciated. Scrolling is sometimes jumpy. This is due to the fact that the ADLiB player isn't synchronized with the video card's retrace register. If the screen jumps too much, turn the music off (F2). After running an EXE/COM file, the music restarts. This isn't really a bug, it's just that if the file run uses ADLiB card, the music gets screwed up unless it's restarted. I can fix it, I'm just too lazy. :) REVISION History: 1/19/1995 - Original 1.0 version was finished (or somewhat around that time). 3/01/1995 - Version 1.02 finished, added GiF support, INI files, File Sorting. 3/29/1995 - Version 1.0 finished, added RiP support, many internal changes. 5/14/1995 - Version 1.1 finished. Added true smooth scroling (a.k.a iCEViEW). RiPS are viewed 3 times faster. Bugs removed: If the startup viewer directory contained less than 16 files, it would eventually hang. ANSi's bigger than 409 lines are now viewed correctly. Before, everything above 409 was displayed in the beginning of the ANSi. Not a pretty sight.