This file tries to organize and describe the changes between releases. Changes are broadly classified into the following categories: - New Features: These are either elements of the original games that were first implemented in this release, or actually new capabilities that are visible to the user. - Bugfixes: The removal of visible Bad Things from the code. - Internal Changes: The removal of invisible Bad Things from the code, or changes in the way the program itself is structured. These are unlikely to be of interest to you unless you plan on coding extensions. Version 0.4 ------------- NEW FEATURES - Savegame slot defaults to the last one used during this play - PC intro and ending sequence are now present - 3DO intro and ending movies are supported for those who have these movies from the 3DO CD of Star Control II - Improved slave shield graphics - Added a new -l option to produce logfiles - Added a new 'triscan' scaler derived from scale2x - Made the fact that self-destructing ships grant resources more obvious - Added a "config dir" option for holding saves and melee information - Cocoa hooks - Setup menu now permits configuration of some options. They do not yet persist past program quit, though. - Added a "--version" option - Melee images are now based on the (richer) DOS content - 3-step melee zooming as per the PC version is now implemented - It is now possible to complete the game without ever allying with the Starbase (if one is insane; this is known on the forum as "Beating The Game Differently" - but bugs and plot elements preventing this have been fixed or evaded under this circumstance). BUGFIXES - Fixes to the Quit Confirmation dialog - Collisions/encounters with "invisible" fleeing ships gone - Other ships insystem remain in proper locations after planet landing - Fixed some keyboard "focus" problems where flight controls were being cleared at inappropriate times, or interfering with menus - Graphics fixes - Subtitle timings work in the absence of oggs - Conversation summaries with Melnorme no longer crash - --contentdir argument may now have spaces - $HOME isn't required for Unix systems anymore - Fuel estimates fixed (original bug) - Fuel usage on planet landing now correcly reported on all versions - MOD music will play on big-endian machines under high-quality now - Space marines die in a self-destructing Scout - ZFP speech is properly vertically aligned now - Various odd behaviors when loading in HyperSpace now fixed - Quitting from the Roster screen no longer crashes - Many dialog fixes - The "Blue Comm Screen" problem no longer occurs - Combat Energy computation in Outfit Flagship screen corrected - A game crash that manifested when pausing after 85 minutes has been corrected - Main menu version number drawn more consistently - Transparency bugfixes - 3DO ending credits, planets in battle - Content packs may also be named ".uqm" - these are really still zip files, but you can't expand them by accident. - One may now configure a joystick without crashing the game if the joystick is not present - Music volume normalized throughout the game INTERNAL CHANGES - Thread system completely reworked to provide more detailed thread information, and to prevent resource leaks - Sound code is now virtualized and separate from game logic - Fine-grained control of menu sounds - Input system fully unified - all parts of the game use the same basic structure now - Build scripts made more robust - Window-drawing code was lifted out of confirm.c and made more general - Lots of debugging functions - Unicode support for game dialogs and fonts - Lots of code cleanups - Documentation of more internals Version 0.3 ------------- NEW FEATURES - PC-style shipyard graphics, complete with animated power lines - Selling ships in the shipyards has slightly different controls that make it harder to sell ships accidentally - Main menu displays version number - Added a '-g' option to control gamma correction - Planet spin has been improved - Trilinear (mipmap-based) scaling in melee - PC-style conversation summaries have been implemented - Ship location display in status bar matches original more closely - Game flags (such as AWARE_OF_SAMATRA) that were ignored by half the game (even in the original) now are more universally available - Oscilloscope and Mini-Map have borders now - Commander Hayes won't let you rescue him until he's explained his predicament - Confirmation dialogs are now menu-based - Positional sound effects are available for OpenAL - Delete key works on Super-Melee team editing - Exit key from the Main Menu will quit the game - Quit option available in GAME menu - New Main Menu graphics: Setup (not yet implemented) and Quit are options at the Main Menu now - Cubic resampling in high quality audio mode - PC-style alien outtakes when game is completed - 2 more ship slots in melee, as the PC Star Control 2 had. - All the standard melee teams from the Star Control 2 PC version. - Support for 50 savegames, instead of just 10 - 'CREW'/'BATT' instead of icons in melee when using PC menus BUGFIXES - Text entry doesn't freeze up lander reports anymore - VUX warps in at proper range - Distance-based ship effects (Syreen, Slylandro, Kohr-Ah) were screen size dependent - Line clipping fixed - Various communication animation glitches solved - Various melee crashes solved - Various race conditions eliminated - Scaling of graphics is handled by the rendering thread now, solving issues where the background and object scales would drift out of sync - Subtitle text is clipped more carefully - Objects can no longer be scaled to total invisibility - Various dialogue fixes - Crossfade glitches eliminated - Pause and Exit keys function properly everywhere - Visit Count overflow with Yehat and Chmmr patched - Wav loader and color transforms are now endian safe - Menu glitches when leaving the "GAME" menu are gone - Druuge transactions no longer baselessly increase crew cost - Lander speed has been retimed to match 3DO - Audio resampling works now correctly (less cracklings) - MixSDL buffer underrun handling fixed - Some memory leaks have been eliminated - Fixes and speed improvements on bilinear, biadapt, biadv scalers - Various minor graphics glitch fixes - Crew death on planet is now counted properly in all cases - Mouse cursor is now hidden in fullscreen mode - Guardian in Blazer mode being drained by DOGI will no longer result in a non-blazer Guardian with Blazer effects. INTERNAL CHANGES - Legacy graphics code stripped down tremendously, a lot of "poor man's object orientation" has fallen away too. Many uses of function pointers with only one possible value replaced with simple direct calls. - Crossfades require you to explicitly cache the screen before drawing the transition target - User Input code has been completely rewritten - File I/O code has been completely rewritten - Subtitle drawing is now cached as its own sprite; communication screens are much less graphics intensive now - DRAWABLE_DESC uses separately allocated arrays for its frames Version 0.2 ------------- NEW FEATURES - Planet info "coarse scan" information available and properly rendered, either in 3DO way (symbols) or PC (text) - 3D spinning planet in orbit window is present, with antialiasing and phong lighting and an animated approach - Pixel-perfect collision detection; Spathi/Mycon are thus playable, and the game is now beatable - Build system enhanced and generalized to handle OpenBSD and FreeBSD cleanly. - Oscilloscope display works in communication now - Color-shading in planet scans - Earth with its slave shield now functions properly - Outfit Starship and Shipyard graphics re-extracted - Save data and temp files are put in a separate directory now - Star sizes and colors are properly differentiated. - Planet surface is smoothed, blurred, and randomized slightly when it's magnified - SIS Status window fully implemented (including gradiated fonts from PC version) - Dialogue "slider" shows how far along the speech is; rewind/forward works - 'ESC' alone lets you emergency-warp-escape - Optional PC version menus - Preliminary support for MacOS X (needs more work) BUGFIXES - Melee screens cleaned up, SuperMelee menus work. - Subtitles now render for all alien races - Major editing of subtitles to match more closely the speeches - Speech and subtitles are now synchronized properly - Autopilot indicator doesn't take over the top of the screen anymore. - Entering star systems on autopilot doesn't crash the system. - Planet scan is properly erased when cancelling/landing - Initial display of planet surface on landing is at correct position - Spheres of influence now move correctly on the starmap - Melnorme correctly compute the required additional credits - Team names switching when selecting the next ship to fight in melee fixed - Commas left dots behind on planetary reports; this is fixed - Screen resets properly after loading/saving - Dialog choices wrap properly - Precursor ship crew count now placed correctly in melee - 'Cued' color transforms in conversations occur at the right time now - SIS correctly predicts its own fuel usage now - Melnorme no longer give away fuel - Flagship modules are properly aligned - The PC soundtrack now loops correctly - Lander upgrades were drawn incorrectly - Autopilot now works in QuasiSpace without fuel - Captain portraits in melee are updated properly now - If you have over 1000 units of a resource, those numbers are properly cleared INTERNAL CHANGES - SDL_mixer has been abandoned in favor of either OpenAL or the new "MixSDL" library built on the basic SDL_audio routines - Color transforms in communications are merged into the core animation thread now, improving speed and stability - Much more flexible handling of commandline options - All allocated memory is allocated through 'safe' routines that abort if the allocation fails. - Thread library now includes condition variables - Threads can tell the rendering thread to sleep until everything they've requested is done - The rendering thread has been recoded to use no heap space and to have a far smaller memory footprint. - Added a special #define, DCQ_OF_DOOM, which simulates severe overload stresses. - SAI and related scalers removed due to GPL incompatibilities; similar algorithms reimplemented under GPL. - Files for the intro and ending sequence have been successfully extracted - Rendering thread routines are somewhat more modular than before - Created a new set of graphics primitives that's much easier to use - Only parts of the screen that actually changed are updated - Input code rewritten entirely - Various functions have their names changed to avoid conflicts with core library routines on OS X Version 0.1 ------------- Initial release.