371 lines (328 with data), 16.0 kB
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
- Netplay! You can now engage in Super Melee over the Internet.
- Key configuration is now entirely in-game.
- UQM now compiles and runs on 64-bit systems.
- The Quit button (F10) now works properly when used during the
- Various small fixes to text and conversation logic.
- The setup menu now reads all its text from the content, easing
- The MOD player for PC-style music can now be linked against an
external version of libmikmod.
- Various code cleanups and memory optimizations.
- The Starmap is searchable! Type / then the beginning of the
constellation name, and you can tab through all possible
- New 'hq' scaler, based on Maxim Stepin's "HQ2X" scaler. See
www.hiend3d.com/hq2x.html for more details.
- Scalers can use MMX/SSE/3DNow! instructions for significant speed
improvements. The "Processor pack" is necessary for compilation of
same on VC6.
- Imported DOS versions of many graphics; these have richer palettes
and so generally look better
- There's a proper credit roll at the end of the game now.
- Superior Planet handling: topographical maps scaled far more
precisely; optional 3DO-style throbbing slave shield; planets are
finally rotating spheres instead of spotlit cylinders or rectangles.
The old PC-style "Entering Planetary Orbit..." screen is back.
- Setup Menu far more complete and easy to use, and selections made in
the Setup Menu will actually persist when you restart the program
- Added support for the Tremor Ogg Vorbis decoder (avoids floating point
- Home, End and BackSpace keys work as you'd expect in text input.
- Most of the game works with Unicode properly now, and so, with proper
font characters installed, will work with non-Latin alphabets. (On
Windows, Unicode input requires a very recent version of SDL.)
- Text may be input with the joystick again, as on the 3DO. The
available characters are stored in content/lbm/joyalpha.txt.
- The intro now plays only when a new game is started.
- Color depth is now determined entirely automatically.
- Only SELECT and CANCEL trigger the fade-to-black at the end of a
Super Melee, solving the issue of invisible "Really Quit?" menus for
Super Melee. The "quit during fades" problem in general is still
- Many dialog, and comm animation, and general graphical fixes
- Keypress status is not reset when entering battle mode, so (for
instance) Melnorme ships can continue to charge a shot across
- The Melnorme would occasionally strip off Plot Points as part of a
fuel deal. No longer.
- Bugs in the original code prevented certain ships from properly
spawning in "uncontrolled" space. The "wilds" are now a bit wilder,
as apparently originally intended.
- Venus's atmospheric density was incorrectly corrected in the 3DO
version. It's been correctly corrected now.
- Scheduled plot events work properly, even when the game suddenly
skips ahead in time.
- Fixed version checking in unix build scripts. SDL 1.2.10 is now
recognised as newer than 1.2.9.
- Spliced communications can be safely skipped past now.
- Fixed fast escape weirdness (bug #619)
- Threading system no longer assumes that there is no thread 0; this
permits compilation on AmigaOS.
- Relative paths and fallback paths work properly now.
- Scalers now use surface pitch instead of image width - this is
reported to solve many strange display problems in non-OpenGL mode
- Ending sequences may now be safely paused.
- Added the rest of devel/ and users/ documentation into MSVC .dsp
- Control scheme upgraded. Old versions of keys.cfg will no longer
- PNG transparency info (tRNS chunk) is now set properly, based on
info in the .ani files.
- Paletted images should render much faster now, and collisions
between mods are less likely.
- New font engine: fonts are loaded and treated as alpha-channel-only
images, with font effects handled as backing images.
- Melee works properly with alpha-channel graphics new, even when
- Lander report drawing handled more sensibly now
- Binary resource indexes have been replaced with textual ones.
- All spritework is done internally in 32BPP.
- Removed MikMod i/o hacks.
- The temp files for representing star and group data are now kept in
- Separate config_win.h file for build.sh builds on Windows
- Lowered some animation rates to reasonable levels, lowering CPU
- Changed comm subtitle caching scheme. Should kill the "blue comm
screen" problem forever.
- Refactored setup menu code to use generic widgets.
- Cleaner build output. Set '$MAKE_VERBOSE' to 1 for old output.
- Improved dependency tracking for unix build system. "./build.sh uqm
depend" is now only needed for checking for new source files.
- 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).
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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
- 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
- SIS Status window fully implemented (including gradiated fonts from PC
- 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)
- 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
- 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
- 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