---------------------------------------------------------------------------- SMS Plus ---------------------------------------------------------------------------- Version 0.9.2 by Charles Mac Donald What's New ---------- [Version 0.9.2] - Digital YM2413 FM sound emulation. Drums sound real good, too. - System territory switch, default is overseas (Europe / USA) - Made some internal changes and clean-ups to the source code. - Revised document on porting to be actually useful. - Adjusted version number to stay in sync with the Macintosh port. - Support for ZIPped game images and games with 512-byte headers. - Screen expansion now works for 16-bit displays. - Fixed some centering problems with screen expansion on GG games. - Sound output using SEAL should be a bit clearer. - Configuration file support. [Version 0.9] Everything has been rewritten from scratch. The emulation is much more accurate, as a result compatability has improved greatly. The DOS port has a lot of nice features added, including 16-bit color, display blurring, digital sound emulation, and scanlines, which were the most requested items. Also new is a Sony Playstation port, though it's highly experimental and has some serious performance issues. SMS Plus is now free software; the source code is available for anyone to use as they see fit, and is distributed under the terms of the GNU General Public License. Usage ----- (DOS) You'll need at least a Pentium 133, a VGA compatible display card, and optionally a joystick and sound card. Type 'sp -help' on the command line for a list of useful options. You *must* use the '-fm' switch to enable YM2413 FM sound. Battery back-up RAM is saved to the same directory as the game you loaded. This means running games off write-only media will not work. Here is a list of all the joystick drivers you can pass as a parameter to the '-joy' option: auto, none, standard, 2pads, 4button, 6button, 8button, fspro, wingex, sidewinder, gamepadpro, grip, grip4, sneslpt1, sneslpt2, sneslpt3, psxlpt1, psxlpt2, psxlpt3, n64lpt1, n64lpt2, n64lpt3, db9lpt1, db9lpt2, db9lpt3, tglpt1, tglpt2, tglpt3, wingwar, segaisa, segapci, segapci2 Controls are as follows: Arrow Keys - Directional pad Control - Button II Alt - Button I Enter - Start (GG) / PAUSE (SMS) Esc/End - Quit emulator F1-F4 - Set frameskip level (F1 = no skip ... F4 = skip 3 frames) You can only support a second player if you are using a joystick driver that supports more than one joystick. (e.g. Sidewinder, dual pads, etc.) If you use the expand option without scanlines, and the display looks squashed vertically, then also use the '-novga' switch. You can disable MMX use with the '-nommx' switch. You can put any commandline option into a plain text file which should be called "sp.cfg". Put one option per line, please. Command line options will override anything in the configuration file. Most of us will have something like this: -sound -sndcard 1 -sndrate 22050 -joy 6button -expand -scanlines -throttle -vsync Currently the zip loading code can manage a zipfile where the game image is the first thing in it. If you try to open a huge archive of games, only the first will be played. (PSX) You'll need an Action Replay with the caetla software installed, a comms link cable, and 'psexe.com' somewhere in your path. Use the batch file called 'psrun.bat' to upload a game file to your PSX and start the emulation. Please don't use games with weird filenames; the filename parsing code is intelligent enough to handle mixed case, numbers, and some special characters like forward and back slashes, periods, and colons. The maximum game size is 512k. Larger games will not work. Battery back-up RAM is not saved. Some games will crash the emulator - this is normal. Controls are as follows: Cross key : Directional pad Square : Button II X : Button I Start : Start (GG) / PAUSE (SMS) Select : Quit emulator The same keys work for player 2, except for the quit button. Changes ------- There are a few differences from this version, compared to previous releases of SMS Plus. I'm hoping to implement these features in due time. - No stereo PSG sound. While this was very easy to implement with the old OPL-3 sound chip emulation, it's a different story altogether with the current sound chip emulation code. - No options can be controlled via the keyboard during gameplay. Coding a nice user interface is one of those time consuming things... - Slightly slower performance. All the video code in in "C". It's very optimized, but rendering is the biggest bottleneck in terms of performance, (from my experience) and some assembly code would provide a nice speed increase. Miscellaneous ------------- I wouldn't mind getting some help on implementing auto frameskipping and triple buffering for the DOS port. There are no Amiga or BeOS ports as of this writing. Any takers? Thanks ------ All Allegro contributors, Bero, Carlos Hasan, Dave, Eric Quinn, Frank Hughes, Flavio Morsoletto, Gilles Volant, Hiromitsu Shioya, Jon, Jean-loup Gailly, James McKay, Mark Adler, Micheal Cunanan, Marcel de Kogel, Marat Fayzullin, Nyef, Nick Jacobson, Omar Cornut, Paul Leaman, Ricardo Bittencourt, Richard Mitton, Richard Talbot-Watkins, Sean Young, Tatsuyuki Satoh, the MAME team, and the S8-DEV forum members. Richard Bannister for the Macintosh port. (www.bannister.org) Richard Teather for the Win32 port. (smsplus.vintagegaming.com) I'd also like to thank everybody who contributed information, bug reports, and gave their comments and ideas. Contact ------- Charles Mac Donald E-mail: cgfm2@hooked.net WWW: http://cgfm2.emuviews.com Legal ----- The source code is distributed under the terms of the GNU General Public License. The Z80 CPU emulator, SN76489 and YM3812 sound chip emulation, and SEAL interface code are taken from the MAME project, and terms of their use are covered under the MAME license. (http://www.mame.net) The YM2413 instrument parameter table is also taken from MAME. The blur code is based on the 'CTV' sources from Dave's DGen emulator. (http://www.dtmnt.com)