Skip to content

Commit

Permalink
Merge branch 'wip'
Browse files Browse the repository at this point in the history
  • Loading branch information
codeflorist committed May 12, 2024
2 parents 7a254e3 + 319d94b commit 37b1e0f
Show file tree
Hide file tree
Showing 30 changed files with 772 additions and 111 deletions.
23 changes: 23 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
Dune Dynasty
============

Version 1.6.3, 2024-05-12
-------------------------
- Add new enhancement option for instant wall construction.
The config-key is "instant_walls".
This enhancement is disabled by default.
- Add new enhancement option to increase light vehicle sight range (from 2 to 4 tiles).
The config-key is "extend_sight_range".
This enhancement is disabled by default.
- Add support for new soundtracks:
o Dune II Amiga Soundtrack.
o Dune II 5-device mix (PC Speaker, Tandy 3-voice, AdLib, Roland MT-32 and SC-55) by the Sound Card database.
o Emperor: Battle for Dune Soundtrack.
o Dune: Part Two (2024) Original Motion Picture Soundtrack
- Add in-game option "Aspect Ratio Correction". Also changes the config option to not include the ratio anymore (it is now hardcoded to 1.2).
- Add config option "midi_device_id" to select the MIDI device to be used on Windows (default=0).
- Add Midi Format option to Music Options to allow type of midi files to be played (config key is `midi_format`):
o pcs: PC Speaker
o tan: Tandy 3 voices
o gm: General Midi (SC-55) (=default)
o mt32: Roland MT-32
- Fix hanging notes after song-change with MIDI-playback on macOS.
- Fix aspect ratio of menus/cutscenes/mentat-screens for modern monitors by using a default ratio of 1.2 instead of 1.1.

Version 1.6.2, 2024-02-24
-------------------------
- Make enhancement "Raise unit cap" more effective.
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR})

project(dunedynasty)
set(DUNE_DYNASTY_VERSION 1.6.2)
set(DUNE_DYNASTY_VERSION 1.6.3)

set(DUNE_DATA_DIR "." CACHE PATH "Directory containing game data")
option(WITH_ACODEC "FLAC and Ogg Vorbis music" ON)
Expand Down
53 changes: 46 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ _Dune Dynasty_ features these modern enhancements for _Dune II_:
- __Graphics Enhancements:__
- High-resolution widescreen graphics
- Separate customizable scaling of menubar, sidebar and map/viewport for HiDPI displays
- [Aspect-ratio correction](#aspect-ratio-correction)
- Smoother unit animation (optional)
- High-res overlay (optional)
- __Control Enhancements (Command & Conquer style):__
Expand All @@ -47,14 +48,18 @@ _Dune Dynasty_ features these modern enhancements for _Dune II_:
- Settings for starting credits, amount of spice fields, worm count and lose condition (structures/units)
- __Sound and Music Enhancements:__
- Emulated AdLib sound and music playback
- [General MIDI playback via FluidSynth](#fluidsynth) (supporting SoundFonts)
- MIDI playback via the system's MIDI output or via [FluidSynth](#fluidsynth) (supporting SoundFonts)
- [Support for external music sets](#external-music-sets):
- Recorded AdLib, MT-32 and SC-55 packs
- Recorded AdLib, MT-32, SC-55 and PC speaker versions of the original soundtrack
- [SCDB's excellent 5-Device Mix](https://www.youtube.com/watch?v=k_Mlozm6fZY)
- Sega Mega Drive soundtrack (mostly different songs, but also ___very___ good!)
- Amiga soundtrack
- _Dune 2000_ game soundtrack
- _Emperor: Battle for Dune_ game soundtrack
- _Dune_ (1992) game by Cryo (an excellent, award winning, much more chill soundtrack of _Dune II_'s predecessor in three different flavours)
- _Dune_ (1984) Original Motion Picture Soundtrack
- _Dune: Part One_ (2021) Original Motion Picture Soundtrack and "_The Dune Sketchbook_" soundtrack
- _Dune: Part Two_ (2024) Original Motion Picture Soundtrack
- ...with many options for randomly combining them during gameplay
- ...all playable in in-game jukebox
- Multiple sound channels
Expand All @@ -68,7 +73,7 @@ _Dune Dynasty_ features these modern enhancements for _Dune II_:
- Consistent directional damage
- __[Support for Custom campaigns](#custom-campaigns):__
- [Dune 2 eXtended](http://forum.dune2k.com/topic/18360-dune-2-extended-project/)
- [MrFlibble's Alternate Scenarios](https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file)
- [MrFlibble's Alternate Scenarios](https://mega.nz/file/gGUUSZbI#DwUrH3AL6sABUX2Y2wlXfblTNM_h41jq0HQnC2sLjnA)
- [Stefan Henriks' Atreides campaign](http://arrakis.dune2k.com/downloads.html)
- [Super Dune II](http://forum.dune2k.com/topic/20065-super-dune-ii-classic/)
- __Various bug fixes__
Expand Down Expand Up @@ -180,6 +185,20 @@ Display mode and resolution can be changed in the game's "Options and Extras" me

You might want to increase or decrease the scaling factors of the menubar, sidebar and viewport. You can do this in-game in the __Game Control__ menu.

### Aspect ratio correction

In contrast to modern displays, old CRT-monitors had rectangular non-square pixels. All non-in-game graphics (menus, cutscenes, mentat screens, etc.) were designed with rectangular pixels in mind. The game/map/command-screen itself however seems to have been designed for square pixels (presumably due to targetting multiple platforms), meaning it always had a rather stretched look in the original DOS version - with a tile or the construction yard not being a perfect square.

Dune Dynasty allows various options to deal with aspect ratio via the "Aspect Ratio Correction" option in the Video Options (`correct_aspect_ratio` in the config-file). It's value can be:

- __None__ (`none`): No aspect ratio correction is applied, meaning all pixels will be displayed as square pixels. This means, the game will appear squashed on modern monitors. Use this setting, if you are playing on an old CRT-monitor.
- __Menu Only__ (`menu`): Non-square pixels are used for non-in-game graphics (menu, cutscenes, mentat screens, etc.) and square pixels for the game itself. This will display all graphics in the (presumably) intended aspect ratio on modern displays.
- __Full__ (`full`): This will apply the aspect ratio correction on all graphics - essentially displaying everything as in the original DOS version on a CRT-monitor. It will retain the stretched look of the in-game graphics.
- __Auto__ (`auto`): Same as option `menu`, except when the screen height is less than 800 pixels, option `none` will be used for better readability.
This is the default setting.

The applied correction ratio is 1.2.

## Controls

The controls should be similar to most real-time strategy games.
Expand Down Expand Up @@ -279,6 +298,12 @@ Here is an explanation of all optional enhancements, that can be enabled in-game

This will always be enabled in multiplayer/skirmish.

- __Instant wall construction:__
Reduces build time of walls to 0.

- __Extend light vehicle sight range:__
Increases fog uncover radius of trikes and quads from 2 to 4 tiles.

- __True game speed adjustment:__
_Dune II_'s game speed implementation doesn't affect scripts and other things. This enhancement takes care of that. It also fixes a bug with the range of the sonic tank.
(Enabled by default.)
Expand Down Expand Up @@ -341,7 +366,15 @@ There you will also find a __Jukebox__ to listen to all available songs from all

### Midi

_Dune Dynasty_ can play music via the system MIDI output on Windows and Linux (ALSA). If you use [Timidity++] as an ALSA sequencer client on Linux you should start it with smaller buffer sizes to avoid the "drunk drummer" problem:
_Dune Dynasty_ can play music via the system MIDI output on Windows, macOS (Core Audio) and Linux (ALSA).

#### Windows

You can specify the MIDI device ID to use via the `midi_device_id` config parameter (default is `0`). To find out the correct device ID, you can use the tool [ListMIDI32.exe](https://www.vcode.no/VCFiles.nsf/viewByKey/ListMIDI32).

#### Linux

If you use [Timidity++] as an ALSA sequencer client on Linux you should start it with smaller buffer sizes to avoid the "drunk drummer" problem:

```txt
timidity -iA -B 4,8
Expand Down Expand Up @@ -372,23 +405,29 @@ Each of these have their own subdirectory in the `music` directory. Instructions
Here is a list of supported Music packs:

- Original _Dune II_ (PC) music:
- [SCDB's 5-Device Mix](https://www.moddb.com/downloads/dune-ii-soundtrack-5-device-scdb-mix)
A highly recommended mix of the PC Speaker, Tandy, AdLib, MT-32 and SC-55 tracks by _the Sound Card database_
(listen to it on [YouTube](https://www.youtube.com/watch?v=k_Mlozm6fZY) with additional details, information and visuals!)
- [rcblanke's SC-55 recording](https://www.vogons.org/viewtopic.php?t=33823&start=42)
- [ShaiWa's (FED2k) MT-32 recording](https://forum.dune2k.com/files/file/116-dune2_mt32zip/)
- [Dune II - The Maker AdLib recording](https://dune2themaker.fundynamic.com/downloads/mp3adlib.zip)
- [Dune II - The Maker SC-55 recording](https://dune2themaker.fundynamic.com/downloads/mp3sc55.zip)
- [PC speaker recording](https://forum.dune2k.com/files/file/1517-pc-speaker-recording-all-tracks/)
- [___Dune II___ Sega Mega Drive music](http://nyerguds.arsaneus-design.com/dune/dunesega/)
Mostly different songs from PC version, but also ___very___ good!
- [___Dune II___ Amiga music](https://downloads.khinsider.com/game-soundtracks/album/dune-2-amiga)
- ___Dune 2000___ game music
Unfortunately, this game cannot be purchased anymore at the moment.
- ___Emperor: Battle for Dune___ game music
Unfortunately, this game cannot be purchased anymore at the moment.
- ___Dune___ (1992) game (by Cryo) music by Stéphane Picq and Philippe Ulrich:
The excellent award-winning soundtrack for _Dune II_'s predecessor - the 1992 _Dune_ game by _Cryo_. It is very atmospheric, and makes _Dune II_ a much more relaxing and chill experience. Three versions are supported:

- [AdLib Gold recording by DOS Nostalgia](https://www.dosnostalgia.com/?p=542)
- [___Spice Opera___ by Exxos](https://stphanepicq.bandcamp.com/album/dune-spice-opera-2024-remaster)
A remastered CD release of the soundtrack (re-released in 2024).
- [SCDB Mix (AdLib + MT-32 + AdLib Gold)](https://forum.dune2k.com/files/file/1518-3-card-mix-of-cryos-dune-soundtrack/)
An amazing 3-card mix by _the Sound Card database_ (see [https://www.youtube.com/watch?v=o-Q_UO6Hp7U](https://www.youtube.com/watch?v=o-Q_UO6Hp7U))
- [SCDB Mix (AdLib + MT-32 + AdLib Gold)](https://www.moddb.com/downloads/dune-soundtrack-3-card-scdb-mix) ([mirror](https://forum.dune2k.com/files/file/1518-3-card-mix-of-cryos-dune-soundtrack/))
An amazing 3-card mix by _the Sound Card database_ (listen to it on [YouTube](https://www.youtube.com/watch?v=o-Q_UO6Hp7U) with additional details, information and visuals!)

- ___Dune (1984)___ Original Motion Picture Soundtrack by Toto and Brian Eno
Seems to be only available on CD. Purchase e.g. from [amazon.com](https://www.amazon.com/-/de/dp/B000006YDD/) or [amazon.de](https://www.amazon.de/Dune-Toto/dp/B000006YDD/) and rip files to MP3.
Expand All @@ -413,7 +452,7 @@ ROBOTIX=0
_Dune Dynasty_ supports various fan-made campaigns:

- [Dune 2 eXtended](http://forum.dune2k.com/topic/18360-dune-2-extended-project/)
- [MrFlibble's Alternate Scenarios](https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file)
- [MrFlibble's Alternate Scenarios](https://mega.nz/file/gGUUSZbI#DwUrH3AL6sABUX2Y2wlXfblTNM_h41jq0HQnC2sLjnA)
- [Stefan Henriks' Atreides campaign](http://arrakis.dune2k.com/downloads.html)
- [Super Dune II](http://forum.dune2k.com/topic/20065-super-dune-ii-classic/)

Expand Down
72 changes: 72 additions & 0 deletions dist/CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,78 @@
Dune Dynasty
============

Version 1.6.3, 2024-05-12
-------------------------
- Add new enhancement option for instant wall construction.
The config-key is "instant_walls".
This enhancement is disabled by default.
- Add new enhancement option to increase light vehicle sight range (from 2 to 4 tiles).
The config-key is "extend_sight_range".
This enhancement is disabled by default.
- Add support for new soundtracks:
o Dune II Amiga Soundtrack.
o Dune II 5-device mix (PC Speaker, Tandy 3-voice, AdLib, Roland MT-32 and SC-55) by the Sound Card database.
o Emperor: Battle for Dune Soundtrack.
o Dune: Part Two (2024) Original Motion Picture Soundtrack
- Add in-game option "Aspect Ratio Correction". Also changes the config option to not include the ratio anymore (it is now hardcoded to 1.2).
- Add config option "midi_device_id" to select the MIDI device to be used on Windows (default=0).
- Add Midi Format option to Music Options to allow type of midi files to be played (config key is `midi_format`):
o pcs: PC Speaker
o tan: Tandy 3 voices
o gm: General Midi (SC-55) (=default)
o mt32: Roland MT-32
- Fix hanging notes after song-change with MIDI-playback on macOS.
- Fix aspect ratio of menus/cutscenes/mentat-screens for modern monitors by using a default ratio of 1.2 instead of 1.1.

Version 1.6.2, 2024-02-24
-------------------------
- Make enhancement "Raise unit cap" more effective.
Dune II has 3 types of unit caps:
o A unit cap defined per house by the scenario (usually 25 for the player, and 20 for the CPU)
o A hard-coded overall cap of 102
o And a hard-coded cap per unit/group of units (caryalls and ornithopters: 11, saboteurs: 3, all others/ground units: 80)
This enhancement sets the scenario unit cap for all houses to 50, raises the overall cap to 322 and allows a total of 300 ground units (incl. saboteurs).
This enhancement is disabled by default and always enabled in multiplayer/skirmish.
- Add enhancement option to raise structure cap. (thanks WillSo!):
Dune II limits total structures on a map to about 70. This enhancement raises that limit by 100.
This enhancement is disabled by default and always enabled in multiplayer/skirmish.
NOTE: Games saved with this option enabled will not be able to load, when the option is disabled! An error will be shown in this case.
- Add teams and AI to multiplayer and skirmish.
You can now setup matches with up to 6 teams with completely custom human/AI player configurations.
- Enable worms in multiplayer and add worm-count option (0-3) to multiplayer/skirmish options.
- Add option to choose starting army in skirmish/multiplayer options:
o Small option is: 1 trooper, 1 quad
o Large option is: 1 trooper, 2 quads, 1 tank, 2 siege tanks
- Add enhancement to show additional info in Outpost text.
Shows active, standby and max units.
Standby units are e.g. in production, ordered in factory, outstanding reinforcements, usually 1 backup-harvester.
This enhancement is always enabled in multiplayer/skirmish, to provide the actual owned unit count in addition to the default allied count.
- Provide macOS ARM64 (Apple Silicon M1) package.
- Add `setup` script to macOS packages to remove the executable and included libraries from Gatekeeper quarantine.
- Add support for new soundtracks:
o Dune II PC speaker recording.
o 3-card mix (AdLib + MT-32 + AdLib Gold) of Cryo's Dune (1992) by the Sound Card database.
o 2024 re-release of the Spice Opera soundtrack of Cryo's Dune (1992) by EXXOS.
(Replacing support for old version.)
- Remove support for Dune II - The Maker MT-32 soundtrack, since it is a subset of _Shaiwa's_ (FED2k) MT-32 recordings.
- Further fixes and improvements:
o Fix units occasionally not blinking on attack command with true game speed enhancement enabled.
This particularily happened after loading a savegame more than once per game session.
o Move name-input-field in lobby to a more prominent location and instead display errors on the top.
o Display error on invalid house setup in multiplayer/skirmish lobby.
o Fix lose-condition (structures/units) setting not working in in skirmish mode.
o Fix multiplayer/skirmish game continuing, if player is dead but ally is still alive.
o Fix fremen and saboteur superweapons spawning for the wrong house in skirmish.
o Fix "Dune Variation" from Dune (1992) Adlib soundtrack not playing.
o Lower "Dune II - The Maker" AdLib recording volume.
o Fix detection of available music sets in extras menu.
o Fix some voice samples being played with wrong volume.
o Fix map generation efficiency with 5 and 6 players/teams.
o Fix units spawning in structures in multiplayer/skirmish.
o Change behaviour of initial AI units in multiplayer/skirmish to area guard.
o Fix several compile warnings.
o Add minimal distance to allies for human players in multiplayer/skirmish.

Version 1.6.1, 2023-11-17
-------------------------
- Provide macOS package.
Expand Down
Loading

0 comments on commit 37b1e0f

Please sign in to comment.