First post, by Benedikt
Hi there!
In short: The refactored and expanded source code of Planet X3 is now available under GPL!
See https://github.com/planet-x3/px3_ose
Changelog since the last update release:
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