refkeen: update to refkeen-20201016
authorYorick Hardy <yorickhardy@gmail.com>
Sun, 29 Nov 2020 20:01:27 +0000 (22:01 +0200)
committerYorick Hardy <yorickhardy@gmail.com>
Sun, 29 Nov 2020 20:04:52 +0000 (22:04 +0200)
Notes: the Catacomb 3D engines are now all available in the single
executable "reflection-catacomb" and support for Wolfenstein 3D
has been added with the executable "reflection-wolf3d".

---------
Changelog
---------

Oct 16, 2020 (v0.31.0):

* Support more than one possible filename for game data and EXE names.
Following this, a file named "NOAH3D.EXE" can now be identified as
a part of Super 3-D Noah's Ark, in addition to "NOAH3DOS.EXE".
This refers just to the matching DOS executable.
File integrity check is done using the size and crc32.
* Additionally, again thanks to the above, support for the
Spear of Destiny Mission Packs is now in. Reason it's related
is that the file extension of the mission-specific game data can vary,
depending on the game installation being in use and its current state.
For all missions (including the original), .SOD and .SD4 are valid
file extensions. Other allowed extensions: .SD1 for the base game,
.SD2 for mission 2 and .SD3 for mission 3.
* Note that as a side-effect, data integrity checks are now done for all
game data (graphics, maps, sounds) read from the Wolfenstein 3D codebase.
In addition to earlier uses of it, the hidden "manualgamevergame" setting
can now be used to disable this, albeit this might make it impossible
to properly start Super 3-D Noah's Ark or any of the Spear of Destiny
missions, depending on the filenames.
* Add support for more versions of Wolfenstein 3D, again by using code from
gamesrc-ver-recreation. This covers Apogee 6-episodes versions 1.1, 1.2 and
1.4, two GT Interactive releases, an id Software release, Apogee 3-episodes
versions 1.2 and 1.4, an Imagineer version and the March '92 prototype.
(Thanks to the wolf3denginepatches repository and Chris for assistance.)
* Add detection of Wolfenstein 3D as it used to be offered via the
last incarnation of 3drealms.com, either on its own or as a part
of the 3D Realms Anthology. (Thanks Lunick.)
* Add detection of Wolfenstein 3D, Spear of Destiny and Super 3-D Noah's Ark
as currently available from GOG.com. (Thanks WayneCa and chungy.)
* Improve detection of game installations which is done by inspecting
the Windows Registry. Basically, this is now done by attempting to
inspect data for 32-bit and 64-bit applications altogether, while
additionally still trying to get data with SHGetValue as usual.
* Wolf3D: The UPLOAD macro was replaced with an UPLOAD variable.
* Internally rename the wl1ap12 namespace to wl6ap11, and do the same with
other mentions of such strings. Most noticeable impact is probably
that when separate Wolf3D EXEs are build, reflection-wl6ap11 is
created instead of reflection-wl6ap12.
* Typo fix: Do show "Wolfenstein 3D Shareware v1.4 (Local)" when referring
to shareware v1.4, instead of mistakenly mentioning v1.2 in the string.
* Use a bit shorter descriptions for certain Wolfenstein 3D and
Spear of Destiny versions, so they can fit as launcher titles
(BE_Launcher_Handler_SupportedGameVersionSelection).
* Add high level XMS and EMS implementations, use them in Wolf3D's
Page Manager, and also remove the REFKEEN_SIMPLIFIED/NOEMS/NOXMS
implementations from Wolf3D. (Thanks Blzut3.)
* Wolf3D: Following the removal of the REFKEEN_SIMPLIFIED-specific code
from id_pm.c, pointers can now be appropriately converted in ShapeTest.
* A small fix for using page up/down in the launcher while
none of the menu items can be selected.
* A couple of fixes for bugs introduced after the audio mixer refactoring,
specific to runs without the audio subsystem.
* Separate more audio and timing related code into more files, while reducing
direct references to SDL (albeit it's still used in the same manner).
* Generally, continue splitting the contents of be_cross_fs.c and
making other restructurings and differing changes related to this code.
* Wolf3D: Fix a possible buffer overflow in US_CheckParm, reproduced by
passing an argument with no alphabetical character. A good example is
the second argument in the following arguments string: "-tedlevel 1".
* Make the codebase more usable with Visual Studio.
* Launcher: Add a missing comment about the impact of the
scale type setting on the border porches.
* Bug fix: Conditionally hide or show the mouse cursor after
toggling fullscreen, depending on game-specific setups.
* Fix an instance in which the in-game contents don't get
appropriately resized after toggling fullscreen.
* Wolf3D: Make the mouse cursor usable while the game
is paused, if a fullscreen isn't used.
* Other misc. fixes/changes.

Sep 28, 2020 (v0.30.1):

* Don't show controller settings specific to the Catacombs for Wolf3D.
* When letting the user choose a root drive on Windows for locating
game data, append a backslash. For instance, use "C:\" instead of "C:".
Otherwise, the wrong locations may get accessed with _topendir.
* Fix dir resource leak in BEL_Cross_DirSelection_PrepareDirsAndGetNames.
* Wolf3D: Fix the occurrence of a stale menu item in the
main menu for the GOODTIMES and SPEAR versions.
* Improve the scrolling in the launcher a little bit,
mostly while pressing on up/down.

Sep 26, 2020 (v0.30.0):

* 6-years anniversary release.
* Initial support for Wolfenstein 3D, Spear of Destiny
(minus the mission packs) and Super 3-D Noah's Ark (DOS version).
For Wolfenstein 3D, this covers all known shareware Apogee versions
which allow cheating, as well as 6-episodes Activision version 1.4.
For Spear of Destiny, this covers FormGen demo version 1.0 and
Activision version 1.4. For Super 3-D Noah's Ark, this covers
the one known version.
* Note that for technical reasons, the Spear of Destiny mission packs
cannot be loaded as-is.
* Additionally, Super 3-D Noah's Ark can only be loaded if the original
EXE for DOS is found and named "noah3dos.exe". That's because this is
the way it's currently offered from Steam, and right now, there's no
good way of supporting detection of the same data with another file name.
* Currently unsupported in all games from the modified Wolfenstein 3D codebase:
Game saving/loading, modern game controller scheme, probably more.
* The rate of palette updates in Wolfenstein 3D is at least somewhat imprecise.
* VSync was changed to be disabled by default for now. There are other
potential problems with timing in Wolfenstein 3D, which might partially
be related to instances in which the game tries to render more often
than the host display's refresh rate.
* It is now possible to make a single exe that can be used for starting any
of the supported Catacomb titles. It is identified as "Reflection Catacomb".
This requires building the code as C++, since it makes use of namespacing.
* The exact same method can be used for building a single exe covering
all currently supported versions of Wolfenstein 3D, Spear of Destiny
and Super 3-D Noah's Ark. This exe is identified
as "Reflection Wolfenstein 3D".
* Template instantiations of reads and writes are now done
from the game-specific code, so be_cross_fs.c doesn't need
to include kd_def.h/c3_def.h/def.h.
* Game definition structs were moved to separate headers.
* 256-colors VGA graphics can now be drawn for Wolfenstein 3D.
This was done with a subset of the existing EGA drawing routines as a base.
* The overscan border is now shown only if aspect correction is toggled on.
An original goal of the aspect correction toggle was to make the source ports
more usable with displays that have a greater risk of screen burn-in.
* Refactor the audio mixing code, so PC Speaker, AdLib / OPL and
digitized sounds can be concurrently played back in Wolfenstein 3D.
There's now a single audio mixer callback which can obtain data
from multiple sound sources, resample the inputs to the output
sampling rate and then mix them after resampling.
* Use a pre-calculated sintable array for the Catacombs, as well as
Wolfenstein 3D. It is present in a newly added fixed_sintable.c file.
This fixes possible rendering errors, as well as errors related to gameplay.
The source of the problem (as checked with one of the Catacombs)
was that sintable[90] could be set to 0x10000, while it was
rather set to 0xFFFF with the original executables.
* Switch to Nuked OPL3 for OPL emulation.
* Make it possible to toggle fullscreen via a key combo. This combo should
generally be Alt+Enter. While untested, Command+Enter should be used on macOS.
* Revert to updating ticks (e.g., the games' TimeCount variables) from the
main thread instead of the SDL audio callback thread, albeit with the
code in general still being closer to the later revisions.
* Migrate to CMake for building the executables.
* Other varying fixes and modifications.

refkeen/Makefile
refkeen/PLIST
refkeen/distinfo

index 2482201e8c60d67d3add7f3075e38b71d88f0953..c1481083c30d1c8fab308911b9e4306a4eb039cb 100644 (file)
@@ -1,7 +1,6 @@
 # $NetBSD: Makefile,v 1.1 2015/08/19 19:21:33 yhardy Exp $
-https://github.com/NY00123/refkeen/archive/release-20170401.tar.gz
 
-DISTNAME=      refkeen-20190125
+DISTNAME=      refkeen-20201016
 GITHUB_PROJECT=        refkeen
 CATEGORIES=    games
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=NY00123/}
@@ -12,20 +11,18 @@ HOMEPAGE=   https://github.com/NY00123/refkeen/
 COMMENT=       Port of Keen Dreams, Catacomb 3-D and The Catacomb Adventure Series
 LICENSE=       gnu-gpl-v2
 
-MAKE_FILE=     GNUmakefile
-USE_TOOLS+=    gmake
+USE_CMAKE=     yes
+USE_LANGUAGES= c c++
 
-REFKEEN_PROGS+=        reflection-cat3d
-REFKEEN_PROGS+=        reflection-catabyss
-REFKEEN_PROGS+=        reflection-catapoc
-REFKEEN_PROGS+=        reflection-catarm
+REFKEEN_PROGS+=        reflection-catacomb
 REFKEEN_PROGS+=        reflection-kdreams
+REFKEEN_PROGS+=        reflection-wolf3d
 
 INSTALLATION_DIRS=     bin share/doc/${PKGNAME}
 
 do-install:
        for prog in ${REFKEEN_PROGS}; do \
-               ${INSTALL_PROGRAM} ${WRKSRC}/src/$$prog ${DESTDIR}${PREFIX}/bin/; \
+               ${INSTALL_PROGRAM} ${WRKSRC}/$$prog ${DESTDIR}${PREFIX}/bin/; \
        done
        ${INSTALL_DATA} ${WRKSRC}/README.md ${DESTDIR}${PREFIX}/share/doc/${PKGNAME}/
 
index f19eb466c28676157c24379e8dc78f41dcf8bda8..9e094adf372bbe051db0bf18cec121a9306e7aff 100644 (file)
@@ -1,7 +1,5 @@
 @comment $NetBSD: PLIST,v 1.1 2015/08/19 19:21:33 yhardy Exp $
-bin/reflection-cat3d
-bin/reflection-catabyss
-bin/reflection-catapoc
-bin/reflection-catarm
+bin/reflection-catacomb
 bin/reflection-kdreams
+bin/reflection-wolf3d
 share/doc/${PKGNAME}/README.md
index ddd9010380182cc0a6c7c9ac518328016445bca6..fddecaf7a9b79d2b07302ed7056714de8f6c3ee7 100644 (file)
@@ -1,6 +1,6 @@
 $NetBSD: distinfo,v 1.1 2015/08/19 19:21:33 yhardy Exp $
 
-SHA1 (refkeen-20190125.tar.gz) = 080ec587ec91e9b1452f44e0f09d35905d4eed60
-RMD160 (refkeen-20190125.tar.gz) = 9ec0b892d8c7056d2f9d68cd636a80f7a760c9f4
-SHA512 (refkeen-20190125.tar.gz) = ab9a5097e994621c338b93d109ff28951a63edac2b91b78e45686a906e03c37d74f0341ee5367f13f5924ddf02878514b0559834b35f31d4b10edaf7059d8694
-Size (refkeen-20190125.tar.gz) = 3868047 bytes
+SHA1 (refkeen-20201016.tar.gz) = 45eff0f606cc864981b7b00eb308b5f33aeaafee
+RMD160 (refkeen-20201016.tar.gz) = 7ef6f40d3656a2ae163dc4bc99fff19510bd9fe7
+SHA512 (refkeen-20201016.tar.gz) = a37b6b761dfc99d2e855fef8a076aa507b0a79e5294129f331d735a015855b3d68c5caf6dcec5fb45daea47b8d64741855b04f887f29c67355c60f94ec30ecfa
+Size (refkeen-20201016.tar.gz) = 4154662 bytes