Skip to content

Changelog

Benedikt Freisen edited this page Jan 31, 2024 · 2 revisions

The following changelog summarizes the changes that happened since the original commercial release of Planet X3.

Previous free-as-in-free-beer update releases

These releases came after the initial commercial release but predate the Open Source Edition.

Active programmer(s): Benedikt Freisen

Updates published in May 2019

  • New engine variant: PX3_EGA.COM
  • New video mode: EGA 640x200 16-color (in the new PX3_EGA.COM, down-converted VGA artwork)
  • New video mode: Tandy Video II / ETGA 640x200 16-color (in PX3_VGA.COM)
  • New video mode: Plantronics ColorPlus 320x200 16-color (in PX3_CGA.COM, upscaled TDY artwork)
  • New video mode: Hercules 640x200 2-color (in PX3_CGA.COM)
  • New video mode variant: grayscale CGA 320x200 4-color (in PX3_CGA.COM)

Updates published in August 2020

  • New engine variant: PX3_MTDY
  • New video mode: Med.-res. Tandy 320x200 16-color (in the new PX3_MTDY.COM, down-converted from VGA with sub-optimal LUT)
  • New video mode: ATI Graphics Solution 640x200 16-color (in the new PX3_MTDY.COM, down-converted from VGA artwork)
  • New audio device: TNDLPT (must be un-muted)
  • Bugfix: Use correct background color for all text in the VGA version (bug introduced by the previous release)
  • Bugfix: Do not show white as yellow in CGA 4-gray mode on IBM EGAs
  • Bugfix: Restore a proper text mode when leaving high-res Tandy mode
  • Bugfix: Work around buggy int 29h versions for "Have a nice DOS!" message

Updates published in April 2021

  • Optimization: hand-pick one LUT entry for 320x200 256-color to 640x200 16-color translation (prettier water in snowy tileset)
  • Optimization: hand-pick 35 LUT entries for 320x200 256-color to 320x200 16-color translation (usable med.-res. Tandy mode)

Planet X3 Open Source Edition

This is what you are currently looking at: The heavily refactored, expanded and partly rewritten Planet X3 engine code base pubished under GPL.

Active programmer(s): Benedikt Freisen, Michal Procházka (MIDI)

Changes under the hood

  • Port of the entire code base from A86 to YASM syntax
  • New build system mostly based on GNU tools
  • Introduction of a "logical screen coordinate" concept and conversion functions
  • Replacement of all hard-coded on-screen addresses with either logical coordinates or variables for pre-converted coordinates
  • Introduction of mode-specific function pointer and data variable blocks
  • Reintegration of the various engine forks, resulting in only one engine: px3_ose.com
  • Full rewrite of most text plotting routines and addition of new ones (lower overhead: string-based rather than character-based)
  • Full rewrite of most low-level tile plotting routines and addition of new ones
  • Full rewrite of rectangle clearing and scrolling routines as somewhat generic functions
  • Partial rewrite of most cursor plotting routines, addition of new ones
  • Partial rewrite of the radar code: Single LUT-based radar screen function, routines that plot horizontal groups of pixels
  • Partial rewrite of the menu code: Now based on data structures for menus and menu entries
  • Refactoring of the AI dispatcher: Now based on jump tables
  • Refactoring of the screen redraw routine and addition of a "lazy update" mechanism
  • More graceful handling of missing files: First search elsewhere, then ask for disk
  • Re-formatting of the entire code base
  • Additional documentation for certain parts of the code base (calling conventions etc.)

New features & Bugfixes

  • Various new video modes
  • Hardware sanity checks that usually catch incompatible video mode choices
  • New audio device: MPU-401 (two modes: MT-32 and General MIDI)
  • New audio device: CMS/GameBlaster (also CMSLPT)
  • Map flipping and multi-climate maps (via 2nd menu level)
  • Enhanced jukebox: Additional tracks for MT-32 (via shift key), in-game tracks keep playing when a game is started
  • Command line options (documented in new "Engine Manual")
  • Map lists stored in a user-editable maplist.bin rather than the engine itself
  • Transparent and/or smooth multi-disk support
  • Masking of transparent areas in modes without transparency support
  • Scout cars (included as useless preview because the artwork is there)
  • Check the actual +-key and not just = (Software assuming an American kezboard lazout is annozing!)
  • Better bridge construction
  • Further minor improvements and fixes

Additional changes in version 1.1.0

  • Implementation of the two previously reserved EGA modes (i.e. 640x350 3-color and 320x200 16-color)
  • Fix bug in LUT patching for tile set overrides
  • Fix bug in radar LUT (existed since PX3 OSE 1.0.0)
  • Let the (improved) MIDI converter translate missing General MIDI tracks from MT-32 during the artwork import step