============================================================================= MVP Backgammon 1.3 [unregistered] Release Notes README.TXT NOTICE ----------------------------------------------- MVP Backgammon 1.3 Copyright (c) 1995, 1996, 1997 by Cane Garden Software INTERNATIONAL COPYRIGHTS SECURED ALL RIGHTS RESERVED ----------------------------------------------- THANKS FOR DOWNLOADING MVP BACKGAMMON!!! This unregistered version of MVP Backgammon is provided free of charge for your enjoyment, and hopefully as a means of enticing you to purchase the registered version. This free version is fully operational: you can start, play, save, and load games. The registered version adds multiple board and stone graphics, multiple board sizes, multi-game matches, and the power of the "Fiona" monolithic back-propagation neural network for harder computer opponent play. Fiona has been trained on more than three million games on a Sun Sparc 10, and provides some of the best computer backgammon play available. See the program's Windows help file for information on purchasing the registered version of the game. This version of the program is shareware. It is not public domain or "copyleft" software. Cane Garden and MVP retain all rights to the program, source code, resulting binary modules, and distributable files. UNFORTUNATE LEGAL STUFF MVP Software and Cane Garden Software make NO WARRANTIES of any kind, express or implied, regarding the quality of this software or its fitness to any particular task. The user agrees to indemnify MVP Software and Cane Garden Software against all liability for the consequences of using this software for any purpose whatsoever. Any risks associated with the use of this software are assumed by the user. WHAT IT REALLY MEANS We've done our best to produce a quality product. It is carefully designed and constructed and has been rigorously tested. However, it would be irresponsible of us to suggest that based on that record this software will never screw up. It will. Windows configurations are exceedingly complex, and factors outside of the binaries for this program can affect its operation. Always practice safe computing! Back up important files, and scan incoming files for viruses. To rephrase the legal stuff above more directly: if our program crashes and you lose data we are not going to be responsible. Period. If you can't accept these terms then you should not use this, or probably any other, software product. ============================================================================= HACKER'S CORNER First of all we respect and admire those of you with the talent for opcode spelunking. We've performed numerous traversals of the dampest corners ourselves, in search of a nugget or two. It is because we respect and admire you so much that we are offering to save those of you whose talents tend toward cracking shareware programs some time and effort: the shareware version of MVP Backgammon cannot be cracked into a registered version, because the requisite code simply isn't in the build. With that knowledge, of course, dive away. Everything is pretty straightforward. ============================================================================= SYSTEM REQUIREMENTS: 386 or better with 4 megabytes of ram (recommended) Mouse (required) Sound Blaster or equivalent (recommended) Wavetable MIDI or equivalent (recommended) 8-bit VGA Graphics Driver (damn near mandatory) Windows 3.1 or 3.11 Windows NT 3.51 (through sp3) Windows NT 4.0 Windows 95 Not tested on: OS/2 for Windows PowerMac PowerPC - The program does nothing that should imperil your system if you run under any of these OS's, but we have done no testing for them. ============================================================================= GENERAL: Thankyou for bothering to download MVP Backgammon! We know it's large for a backgammon game, but we think you'll find the extra graphics and sound to be well-worth the time. Installation is simple. If you received the game on two floppies then put #1 in a floppy drive, then run x:setup from File or Program Manager, where x is the letter of your drive. Follow the instructions in the setup program help. If you received an archive file from a BBS unpack it into a temporary (and empty!) directory. Run setup in this directory and install the game to another (empty!) directory. When you're finished you may delete the original files, or archive them for later use. MVP Backgammon makes absolutely no changes to your Windows installation, and maintains all of its files in the install directory, with the sole exception of the BACKG.INI file, which is placed in your \WINDOWS directory. The program may be freely deleted from disk at any time (though we hope you won't want to!). The program was designed with 256-color graphics in mind, and uses the palette to display a richly-textured board and playing implements. If you do not have an 8-bit driver installed for Windows we highly recommend it, for this program and many others. If you cannot install an 8-bit driver the program will run in 4-bit mode, but the quality of the graphics is a lot lower. Beginning with MVP Backgammon 2.0. scheduled for release in late 1996, the game will no longer support 4-bit graphics. In addition to the graphics MVP Backgammon uses over a megabyte of sampled sound effects to punctuate game events. These effects are available if you have sound output capability installed in Windows. If your sound output is limited to the PC speaker you may still hear the effects by installing the speaker .wav driver, but we cannot say much for the results. ============================================================================= RELEASE HISTORY: ============================================================================= release: 1.0b, no-debug executable, debug dlls (inadvertent), stack chk on date: 9-12-1994 - Match play was redesigned to allign it with traditional notions of tournament play. - The program is now tolerant of missing sound resources: the sound DLL can now be included as a separate download. If the sound DLL is not present the sound options are disabled. - added doubling cube placement to indicate control of the cube - updated the help file to reflect changes - removed the old-style wagering mechanism - Computer players play at the Expert/Balanced level. Other play levels are currently disabled pending final engineering of the AI. - Computer Player doubling strategy is not at all good at this point. - corrected several problems with bad parameters that slipped through from very early versions of the code - Set error mode to avoid system file errors on DLL searches. - Added support for the Crawford Rule. ============================================================================= release: 1.1b, no-debug executable, no-debug dlls, stack chk on date: April 14, 1995 * Thanks to all who participated in the version 1.0b beta cycle. The changes and additions listed below are largely the result of your input. The program has been substantially improved, with much redesign and recoding, and the addition of numerous features which make it the most complete Backgammon implementation we know of. This version includes the Fiona neural network backgammon evaluator, so it may also be one of the smartest! - Made certain that WEP segments are preloaded and locked in the DTIMER and MCICTRL dynamic link libraries. Not sure if this is related to the stack fault error reported by Steve M., but it may have been. Update: these don't really need to be preload or locked, according to several books. - Caught a nasty bug which left a timer active after the Music Preference dialog had been closed. No telling what sort of problems this caused, but it could have been a source of the stack fault error. In any case, code was being called that acted on a dialog which was no longer there, so it wasn't a _good_ thing. - Added an explicit shutdown routine for the MCI subsystem. Had been relying on destruction of static objects, but couldn't assert that the static shutdown method of MCIDevice was being executed while the application HINSTANCE was still valid. - Removed code from options handling that was left over from an earlier version of the music module. - Added computer move speed adjustment, new control in Preferences dialog, and code to save the setting to the INI file. - Added a Next Game button to the Match Statistics dialog that is enabled when a game has ended. This makes it easier to start the next game in the series. If the player clicks OK instead then the Next Game option on the main menu is still available. - Separated the move generation and evaluation functions of the AI class into separate classes. Developed evaluation class into abstract inter- face which will hide the differences between the three evaluators which are now included. Beginner logic is implemented by the original logic, intermediate skill is implemented by the EVAL-G evaluator by Marc Ringuette, and expert skill is supplied by the Fiona neural network evaluator by Justin Boyan and Marc Ringuette. - removed the style attributed from computer players, since this cannot be implemented across all three evaluators - changed the Pass Turn interface * when a player is blocked on the bar the turn automatically passes to the opponent * the pass menu option has been removed - a player now passes by clicking on the dice tray with rolls remaining - Replaced the double offer message box with a dialog that shows the offering player's image (currently computer players only). Also allows access to the match stats dialog so that the score can be checked. This was a compromise against putting the score display on the status bar. - added a line to the preferences dialog to note that the auto roll option has no effect in match play. This is due to the fact that auto-rolling dice during a match would prevent doubling, which can only be done after the opponent's turn ends, but before the player's dice are rolled. - in a match the game now correctly scores 3x points for a backgammon and 2x points for a gammon. - the double on gammon option has been removed and replaced by an option for the Jacoby rule, which the game now supports. - implemented the Jacoby Rule, and added indicators for the Jacoby and Crawford rules to the Match Statistics dialog - added a pipcount display to the status bar, displays the player pipcounts continuously during a game, displayed in the form pl1/pl2 - implemented storage of human player profiles. The game now begins with a default human player named Anonymous. - added cumulative point won/lost totals to player profiles - redesigned and recoded the new game dialog - added a human player edit dialog, and enabled viewing of human and computer player profiles in the player list dialog - hopefully corrected a problem with sizing of the About and Credits dialogs in 1024 x 768 screen resolution. The dialogs now size themselves based on the bitmap dimensions. - Removed the system menu from the About and Credits dialogs and added code to close them on a mouse click in the client area. - expanded the selectable range of computer move speed on the slow side to allow more realistic performance on very fast Pentium machines - updated the help file to reflect the new changes - added sound settings category buttons - prohibited deletion of the last computer or human player - recompiled the MCIDevice class hierarchy to use a _huge class declaration which forces the vtbl pointers to 32 bits. This allowed the program to use near (16 bit) vtbl pointers everywhere else. Previously I had simply compiled the whole program with far vtbl pointers to solve a problem with a single call to a single DLL. This is a much smarter solution. - caught a bug which allowed computer players to offer a double when the wagering option was disabled. This has implications for the crawford and jacoby rules, so should be tested. - added an animated mouse cursor which displays while the computer is running the AI. Had to change the SetGameCursor function in BACKG.CPP to set the cursor logically, but set it physically only if the mouse is in the client area. - hopefully cured the small font problem by changing the font mapping precision to use TrueType fonts only. Also lowered the weight to make the text more legible. Need to look at going to a larger font in hi- res screen modes. This will involve resizing the status bar. - reworked the cursor state handling in the player module. It had been a pretty bad hack. Now it is a slightly bad hack. - added a setup program and changed the release build structure from a custom pkzip-based resource to a standard Win31 setup format. - fixed a bug which could cause a bitmap resource creation to fail if a stone was dragged quickly off the bottom of the screen - thanks to Jack Nunemaker for finding this one. - changed the cursor handling for computer players so that the "thinking" cursor, frame 0, was not displayed until after the dice had been rolled. - added the DS_3DLOOK style to dialog boxes so that they will appear using the Win95 beveled look when running under that version of Windows. Had to disable it for the moment because it changes the scaling of the dialogs. - fixed a bug in the doubling logic: the computer players were doubling when they were losing rather than vice versa. - fixed a cursor problem caused by receipt of a WM_MOUSEMOVE message when the left button is pressed. I'm not sure why we're getting the message, but suppressing it seems to have cured the problem. - added a flag to keep the "put-away" cursor from being set immediately after the player rolls. Suppresses display of the cursor until the player has moved the pointer off of the die cup. - fixed a bug in the computer player move speed adjustment which caused the counter to wrap and the machine to appear to hang. - Split the shareware and registered builds. ============================================================================= release: 1.1, no-debug executable, no-debug dlls, stack chk on date: August 22, 1995 First shipping release * Thanks again to all those participants in the MVP Software forum who helped out with the version 1.1 testing. Your comments and suggestions made the program even better and more robust. - Disabled the player name fields in the new game dialog. Historically editable, these were made semantically read-only in version 1.1, but the enable bit was left set in the resource. - Fixed various minor problems in the help file and setup program. - Realligned the text fields in the win dialog to accomodate longer strings under certain circumstances. - Shortened the delay for the dice animation in the first roll dialog - Redesigned the handling of the status bar font. Despite adhering to the API specifications for requesting fonts we found that on some machines the fonts produced were wildly off. To work around this the Preferences Dialog now contains a fonts button, where the user can select a font for the status bar. This font info is saved in the ini file. - In order to accomodate different font sizes, redesigned the drawing of the status bar to dynamically adjust to the size of the displayed strings. - fixed a bug which was introduced during the rewrite of the move probing functions for the human player - the bug caused a GPF when a move suggestion was requested for a partial roll - Added resign game and claim game options to the Games Menu. These allow a player to end a match game early when either player has an obscene advantage in position. - Fixed a bug in the setup program which caused it to suggest a floppy drive as the install target. - Added nicer dialogs showing the opponent face image for double replies, claims, and resigns. - Implemented Wes Gray's excellent new board sizes. - Fixed a bug which left the Show Last option in the moves menu enabled even when the last player to move had to pass. - Relocated the status bar down 1 pixel to correct an early mistake. - Added centering code to the dialogs that still didn't have it. - Fixed a bug which printed 0/0 in the status bar for pipcount between games. - Added large dice and doubling cube to the VGACMN graphics library and standardized their use in the ROLLFDLG. - Updated the help file. ============================================================================= release: 1.2, no-debug executable, no-debug dlls, stack chk off date: April 31, 1996 Second shipping release * Many thanks to our customers who have downloaded and purchased MVP Backgammon 1.1. We hope you find version 1.2 even more fun to play. - Fixed several problems that caused the game to GPF when trying to double, claim, or resign during a human-to-human game. The problem was that the face image database index wasn't properly initialized for human players. - Added a feature which allows the MIDI track play lists to be customized. The Options | Preferences | Music | Select Tracks now contains a 'New...' button which will let the user browse for an existing .MID file. It also contains a 'Delete' button which removes the currently selected track from either list. - Removed the 'Allow Undo' option from the preferences settings. Basically the undo as implemented is always legal in Backgammon... and we needed the dialog space for... - Added an 'Auto Pass' option to the preferences settings. The new behavior is as follows: when a match is not running, the state of the Auto Pass option determines whether the opposing player continues to roll as long as you cannot, i.e. when you are on the bar facing a closed board. This is the behavior when the option is set. If the option is not set you must roll and pass explicitly. During match play this option is not available. You must always roll and pass explicitly in order to have the capability to double. Thanks to Michael McMillin for pointing this out. - Fixed a bug which diabled the warning prompt when a game previously loaded by disk was about to be thrown away as a result of the user selecting Game | New or Game | Load from the main menu. - Fixed a bug which prevented the player match history from accumulating points won. - Added cumulative games won to the player histories. - Fixed a bug which truncated the saved value of the computer player move speed setting to 10 or less. - Added new splash graphics at game startup, and redesigned the credits dialog. - Added file drag target support so that saved games and matches can be loaded by dragging the file onto the game window. Also supports launching backgammon by dragging a save file onto the program icon. - Fixed a problem with Show Last Move. In the rare event that the action is taken before a computer opponent has finished its move, the computer would continue to move while the displayed move was drawn on the board, with messy results. The game now pauses the computer player until the move display is cleared. ============================================================================= release: 1.3, no-debug executable, no-debug dlls, stack chk off date: November 30, 1996 Third shipping release * Many thanks to our customers who have downloaded and purchased MVP Backgammon 1.2. Version 1.3 corrects some remaining problems, and implements several enhancements and user suggestions. - Corrected potential bug with an uninitialized sound code. - Corrected a bug which caused the computer player to roll the dice even though a double had been declined and the game was forfeit. - Enabled wagering and doubling in single games, as well as matches. - As a consequence of this Auto Pass behaves differently. Auto Pass is now absolute, overriding wagering settings. So if you have wagering turned on, and are on the bar facing a closed bar, whether or not you have an opportunity to double your well-situated opponent is dependent on the setting of this option: if Auto Pass is off you will be able to double, if Auto Pass is on you will not. - Added a workaround so that, should the creation of timers for the dice engine fail, as has happened on some machines, a static random algorithm will provide rolls. - Changed the cursor behavior so that the "pass turn/put away dice" cursor would appear immediately after rolling (since the cursor is in the die cup at that point). This is more natural, and avoids the situation where you have to pass immediately, but must move the cursor out of the die cup first. - Made the doubling cube into a hotspot when it is active for the human player. When a player has the option to double, and the mouse pointer is moved over the doubling cube, it will change to a dollar sign. Clicking at that point will offer a double. The menubar doubling control works as before. - Added a graphics check to set the best board size choice on startup. This check occurs once when the game is first run, and also if the game is run and the screen resolution has changed. The algorithm chooses the small board if xres < 800, the medium board if xres < 1024, otherwise it chooses the large board. - The status bar font choice is now tagged to the board size. When the font is changed it is applied to the current board size. If the board size is changed the program loads the font for that size. This allows the player to choose fonts that work best in each size. - Got the 3D look working for all dialogs. Dialogs will now appear with the Win95 bevelled look when the program is run under Win95 or Win NT 4.0. - Implemented the evaluator open architecture extensions. Encapsulated current evaluator code into standard runtime bindable DLL. Added management dialog, and made necessary changes to the player file structure. Also amended the game start and player edit dialogs as appropriate. - Fixed the missing help link in the Player Add/Edit dialog. - Changed the sequence when the game detects that Windows is shutting down. The user will now have a chance to save a game or match in progress. - The game and match startup dialogs now save their context to the game init file, and restore it next time they are opened. This makes it easy to repeat a favorite setup. - Added a help button to the player list dialog. General dialog cleanup related to the move to 3d dialogs, which threw all the image allignment off. - Fixed a bug that allowed an illegal move to be made when moving one of two stones off the bar. Thanks to Kevin Grady for discovering this, and Ziad Ahmadi for providing a recipe for reproducing the problem. - Fixed the hole in the game logic that allowed the player to move the smaller of two rolls in such a way as to prevent moving the larger, or to take a partial move in such a way as to prevent taking the full roll. Thanks again to Ziad for this one. - Changed the program caption to show the version during game play, and when no game is running, and to show the players in a match when a match is running. - Sped up the dice roll in the Roll for First Turn dialog. - Changed the default filespec in the load file dialog to show both game and match files when it first opens. - Fixed a bug that played the "roll for first turn" sound when auto first turn was enabled. - Worked on the computer move speed adjustment. Changed the way the piece speed is calculated. Still have some trouble here with speeds being inconsistent from one program session to another. - Fixed a hole in the computer player pre-move logic which allowed the computer player to double the stakes on the opening move of a game. Thanks to Art Buell for finding this one. - Made the operation of the Crawford and Jacoby rules consistent across games and matches. - As a consequence the Match Definition and Wagering Settings dialogs have changed. See the help file for more information. The settings for these two rules are now made in the wagering settings dialog, rather than on a per-game basis, and are stored in the program configuration file. - Expanded the range of the random sequence used by the die roll generator by a factor of five. Also added a simple check to make sure that the timers have fired since the last request for a roll. I don't think this condition will ever trigger, but I want to make sure that every base is covered with the dice rolls. - Changed the effect of the Crawford Rule to align it with what seems to be the favored interpretation: that the doubling cube is inactive during the Crawford game. Previously the cube was active, but only the player whose point total had triggered the rule could offer a double. Marc Ringuette correctly pointed out that this player wouldn't offer a double anyway. - Found and corrected a condition in the MIDI control subsystem which was causing the message "A device ID has been used which is out of range for your system." to appear. This was a valid use of the MCI which caused problems with some drivers. An alternative method was implemented which solved the problem on our test installations. - Redesigned the Wagering Settings dialog to make it more compact and efficient. - Added options to disable the Jacoby and Crawford rule warning messages that appear when either rule is triggered. These settings are found in the Wagering Settings dialog. - Added a manual dice roll input dialog, triggered when the menu choice Options | Manual Dice is checked. Affects the operation of the Roll for First Turn dialog. See the Help File. ============================================================================= KNOWN PROBLEMS: ============================================================================= - The computer player move speed adjustment works, but the effect seems to be variable from one program session to another. Still working on this one. ============================================================================= PENDING CHANGES: ============================================================================= - Version 2.0 is scheduled to include internet and dial-up play, 3-D and 2-D rendered boards, plug-in AI with a published API specification, revamped dialogs and graphics, professionally-recorded sound, and many other additions and improvements.