Nostalgia, an Intellivision Emulator Version 3.9 beta19 by Joe Fisher joe@shinytechnologies.com To see what's new with Nostalgia, scroll down to the bottom to see the change log. Hello, and thanks for trying my emulator! It's my first stab at an emulator of any sort. I chose the Inty because when I think of childhood video game fun, the one thing that pops into my head is playing Tron and the Deadly Discs with my dad, competing for the highest score, taking out the Recognizer, striving for 1,000,000 points so I could see the orange guys with the sticks they showed in the instruction manual. *sigh* I have to send out an *ENORMOUS* thank you to Joe Zbiciak, Inty genius and creator of "jzIntv", and Kyle Davis, all around nice guy and creator of "Bliss". These two emulators were a big part of my inspiration, and the guys themselves were critical to the development of Nostalgia. Kyle was extremely helpful in lending advice and sample code, and Joe used his superhuman powers of perception to detect bugs in my code before I could even type it. I couldn't have done it without you guys (or it would've taken me 6 years), so I just wanted to let you know you're appreciated :) Thank you to Steve Orth and all who have made suggestions to improve Nostalgia. And while I'm thanking people, thank you to my wonderful wife Lizzie, who tolerated me staying up until 2am more than a few nights working on this (and I'm sure there'll be more), and for coming up with the name and great title screen for "Nostalgia". -------------------------------------- *--- Running the program Put the Exec and Grom files in the same directory you installed Nostalgia into, run Nostalgia, and select "Load Cartridge" from the main menu. You can point Nostalgia to your existing ROM directory by using the Game Options, or dump all of your ROMS in the existing "roms" directory. *--- Command line options You may specify the screen resolution, whether or not to use ECS and the game to run on the command line. If you specify a game on the command line, Nostalgia will skip the menu system and immediately run the game. Valid Options: -WxH or /WxH : Run in WxH resolution eg. -320x240, /640x480, etc. -ECS or /ECS : Use the ECS if available -NOECS or /NOECS : Do not use the ECS even if available -p:pal.bmp or /p:"some pal.bmp" : Specify a new palette to use. See palettes below. The game file you specify MUST be the LAST thing on the command line. It may be inside double quotes, "", but does not need to be, even if it has spaces in it. These are all valid command lines: Nostalgia -800x600 Nostalgia -320x200 -ecs c:\my games\inty\world series baseball.bin Nostalgia /NOecs /1024x768 "C:\emus\roms\snafu.rom" Nostalgia c:\program files\games\my roms\atlantis.bin Nostalgia "c:\program files\games\my roms\atlantis.bin" Nostalgia c:\progra~1\games\my~1\atlantis.bin These are NOT VALID: Nostalgia c:\games\snafu.bin -640x480 Nostalgia "c:\my games\atlantis.bin" -noecs *--- Palettes Palettes are now customizable. You can take a screenshot to get an 8 bit palettized bitmap of your favorite game. Then load up your photo editor, and tweak the palette until it's what you want. Now, use the -p: command line option to load it back in. It'll be saved for future use in the registry. Alternately, you can manually edit the palette in the GUI. You can also export an existing palette to a bmp file. *--- Running the program in Network mode Select "Network Play" form the main menu, and you will enter into the network game setup. You will get a list of network service providers. The only one I have tested currently is TCP/IP. Once the game is setup, you will be able to chat and discuss what game you would like to play. The host player will be the one who creates the game. He will have control over which game is played. If you will be the client player, ie the one who joins he game, make sure your game settings are all setup in single player mode first, as you won't be able to change them during the game. The host, or creating, player will be the Left controller, and the client player will be the Right controller. *--- Controls -Joysticks: Nostalgia will take the first two joysticks available in the system and make them the Left and Right hand controllers in that order. The stick emulates the disc on the Inty's hand controller, and buttons 1, 2, and 3 are the Top, Left and Right buttons respectively. -Keyboard: Default key mapping is as below, and it can be changed: Left: Right: (Numeric Keypad) -Inty Keypad 123 789 123 456 456 QWE 789 123 ASD C0E .0 ZXC -Inty Buttons Top: Home Leftshift Left: Delete Leftcontrol Right: PageDown Leftalt -Inty Disc Up: Uparrow I Left: Leftarrow J Right: Rightarrow L Down: Downarrow K -Miscellaneous Toggle Sound On/Off Save game state Toggle Frame Rate / Frame Skip info Restore game state Begin / end AVI movie recording. Pause game Begin / end WAV sound recording. Reset Save screenshot Quit current game <+> Increase frame skip rate - if game is choppy <-> Decrease frame skip rate - for better video quality Go back a menu/cancel changes Accept changes Leave Nostalgia from menus *--- Box and Overlay images Nostalgia comes with 10 box and overlay images thanks to Steve Orth of the IntvFunhouse (http://intvfunhouse.com). You can add your own by putting your image in the images folder (you can change the location of this folder in the options) and making it the same name as the game. Check in the games.cfg if you're not sure of the name to use for the game in question. An overlay image has the same name with "_overlay" at the end. The files can be in BMP, GIF or JPG format. Some examples: Tron Deadly Discs.jpg Tron Deadly Discs_overlay.jpg Lock 'n' Chase.gif Lock 'n' Chase_overlay.bmp Have fun, and please let me know what you think. Joe -------------------------------------- Updates since version 3.6b: The game folder is no longer rescanned every time Nostalgia is run. It is only rescanned if the folder contents have changed. There is now a database management tool for maintaining and updating the database. The MiniExec and MiniGrom have been renamed so they don't overwrite any existing Exec and Grom files. Better handling of .cfg files. Now supporting Write Only Memory. Keyboard Navigation in the menus. Thanks, James! Added Hardware Stretch. Now you can use a high rez video mode and stretch the image full screen for that fuzzy, retro bad TV feeling! Does not work well on some video cards. Added the ability to edit the game palette. Think my color choices need some tweaking? Head into Game Options and edit until your little heart's content. BIG thanks to David Trammell for this idea. Added visual feedback to button presses. You can now specify a combination of two keys to map to a single input. For example, you can map UPARROW and LEFTARROW to together send the NORTHWEST command to the Intellivision. Thanks to Rick Reynolds for this one! Palettes can be exported to a bmp file. They can be imported via the command line. -p:mypal.bmp The new palette will be saved to the registry. Screenshots are now saved in 8 bit palettized format. Why? This allows you to take a screenshot of your favorite game and load it into your favorite photo editor. You can now mess with the palette and see exactly what your changes will do. Now just load that palette into Nostalgia, and you're set to go! Screenshots are now saved with a new naming convention: cartname_mmddHHMMSS.bmp mmonth, dday, HHour, MMinute, SSecond. New hand controller file. Made easier to use for those working with a frontend or game cab. New command line switch -c:file.ext. This allows you to specify a controller file to use. Now you can have separate files for different games. You can now export your hand controller file. It will generate a text file in the captures directory. Fixed a bug that prevented the ECS options screen from working. Made mouse movement a lot smoother in Menus. The keyboard is now enabled when using the CGC. Refinements to the input system to make it more reliable and maintainable. Changed ECS and IVoice options to be checkboxes instead of popping up a new window. More video changes to speed things up. Changes to sound routines to fix a slight bug. Changes to sound handling to drop sound frames if game is running too slowly. Fixed another bug with video capture. Fixed some problems with the menuing system and gfx display. Network play has been disabled pending updates. Fixed some problems in the input routines that caused crashes under certain circumstances. SPACEBAR now goes to the next game in the Load Cart screen. Debugger updates: Now sound stops playing when you pause. General updates to robustness. -------------------------------------- Updates since version 3.6a: More video optimization. You can now ESCAPE out of Nostalgia from the main menu. Fixed massive problems with AVI capture. Made AVI captures smoother. Debugger updates: Many changes to keyboard navigation for better ease of use. -------------------------------------- Updates since version 3.5: Optimized the display and input routines to more than double the frame rate! This will allow Nostalgia to run more smoothly on more PCs. Thanks to Joe Zbiciak for his contributions. Games that use the ECS now turn it on automatically when played. Added a frame rate counter. Press to enable / disable. Nostalgia now supports any display mode your video card does! Look in the Game Options screen to try them out. Configuration now stored in the Regsitry. The command line now allows you to set the resolution in -WxH format. (eg. -640x480) The format will be verified against the list of available modes, and error.log will tell you if it was invalid. Nostalgia now comes with Joe Zbiciak's MiniExec and MiniGrom so you can play games "right out of the box." There are now many homebrew games packaged with Nostalgia. Thanks to Arnauld Chevallier, Joe Zbiciak and Ryan Kinnen for providing them. See README.HTML to find out more about them. Added a Windows Installer. Added throttling for play with no sound. Added option and hotkey to turn sound on/off. Added notification of MiniExec support. Games can be marked supported in "Add to Database" button on the Load Cartridge screen. Made the display more accurate to a real Intellivision. Thanks to Steve Orth, Arnauld Chevallier, and Joe Zbiciak. Fixed usability issues with the menuing system like: Notification of delays when loading the cartridge list. Pageup/Pagedown support in the scrollbars for choosing Rom/Image folders. Display of Rom/Image files while browsing for Rom/Image folders. Fixed a bug that caused a crash when opening up large numbers of roms. Fixed a bug in Nostalgia's database preventing Super Soccer from running. Fixed a bug that caused the sound to disappear after loading many games. Fixed 2 bugs that caused crashes under certain conditions. Fixed a bug that kept Tron Solar Sailer from working. Thanks Steve Orth and Joe Z. Fixed a bug that caused games like Mission X to seem to wrap around the screen. Thanks to Marco Turconi for finding this one. Fixed gross inaccuracies in the sound and video emulation. Thanks, Joe Z. Debugger-specific updates: Improvements to the speed of the debugger. Debugger can now run in 16, 24 or 32 bit display modes, not just 16. The debugger now remembers the last game you chose so you don't have to reselect the game to re-run it every time. Games are now properly loaded from the command line in the debugger. The trace window now follows along when stepping rather than reloading every time. Added optional throttling when sound is off. Added a help dialog to the debugger, . Debugger now keeps track of the last folder you opened a rom from. Fixed a debugger bug preventing from working as expected. Fixed a debugger bug causing a crash on exit. Fixed a bug preventing the debugger from finding the EXEC and GROM files. -------------------------------------- Updates since version 3.3: Added the ability to run with nonstandard EXEC and GROM files, such as the miniexec and minigrom provided with Joe Zbiciak's SDK-1600. Just name the files "exec.bin" and "grom.bin" and drop them in the folder with Nostalgia. Added the ability to use either joystick to move the mouse cursor. Thanks to Steve Hoogerhyde for suggesting this one. Greatly enhanced keyboard navigation in the menus. now goes back a menu or selects "Cancel". selects "Save". Fixed a bug in the colorstack display routine. Thanks to Joe Zbiciak for discovering this and mysteriously knowing exactly where the problem was. Fixed a bug Chuck Whitby was kind enough to find for me. What a guy! Fixed a bug that was preventing Chess in Triple Action from working. -------------------------------------- Updates since version 3.2: AVI format movies can now be recorded while playing a game! By pressing , all screen activity and sound is recorded to an AVI file at a maximum of 15 frames per second. Screen captures are now saved in Windows Bitmap format. Screenshots and other captures now reside in their own directory. \nostalgia\captures\ Captures are now named based on the game you're playing. For example, a sound caputre while playing Atlantis might look like: Atlantis00001.wav Multiple captures are now possible, up to 99999 separate captures of a type per game. For example, if you took 3 screenshots while playing Snafu, they would be saved as: Snafu00001.bmp Snafu00002.bmp Snafu00003.bmp Old capture files will never be overwritten by Nostalgia. A new filename is chosen each time. Command line options have been redone for flexibility. See "Command Line Options" below for more information. -------------------------------------- Updates since version 3.1: Added Sound Capture capability! Now, by pressing , whatever sounds and music are playing in the game get recorded to a wave file. Capture those cool Snafu snake noises, or use some Astrosmash sounds on your desktop! A big "Thank You" to Jorg Schafer for this feature. Ein grosses "danken Ihnen" zu Jorg Schafer für diese Eigenschaft. Added 2 command line options: A rom may now be specified on the command line in quotes (nostalgia "c:\roms\digdug.bin") to allow the use of frontends for Nostalgia. Thanks to Remi Juneau for this one. The screen resolution may be specified on the command line. 320, 640, 800, 1024. -------------------------------------- Updates since version 3.0: Fixed a bug in the Networking that was preventing Network play. Fixed type ahead to work with numeric game names (4-Tris, etc) Added "Home" and "End" capability to Load Cartridge screen. Changed the way video memory is used to fix a problem that was causing Nostalgia to stop working unexpectedly on some video cards. Generally reworked code for more efficiency, especially the core chip code. -------------------------------------- Updates since version 2.5: Added ECS support! Keyboard and music keyboard are supported. Added a real Windows help file. Made more improvemnts to the menuing system. Added "Type Ahead" to the Load Cartridge screen. You may now press the first letter of the game you want to play to jump to it in the list. Made improvements to the way joysticks are handled to allow multiple joysticks with the same name to function properly. Fixed a big, ugly bug in the joystick routine that was causing a dump from the game under certain circumstances. Thanks to Michael Mellor for catching this one. Changed the quick save and restore to properly save and restore ECS and ROM format games. Debugger-specific updates: Added the ability to look at the main memory map, the cartridge map or ECS ROM. Added selections for ECS support and Intellivoice support (Intellivoice not actually supported, yet) -------------------------------------- Updates since version 2.2: Added the ability to open games that aren't in Nostalgia's database. Any game that is in ROM format or has a config (.cfg) file with it can be opened. Complete support for Intellicart ROM format. Complete support for Intellicart ROM bankswitching. Removed a lot of annoyances in Nostalgia. Having to press a key at the splash screen, the initial dialog box, and other nitpicky things. -------------------------------------- Updates since version 2.0: Added the "Add File to Database" button. This allows a new game to be added to Nostalgia's database. Added preliminary support for Intellicart ROM file format. Overhauled the sound system. Added support for the Classic Game Controller interface (more on this later). -------------------------------------- Updates since version 1.0: Added support for playing Nostalgia over the Internet! Needs *much* more testing. There still may be sync problems, and the client player can't do much other than play the game. --------------------------------------