refkeen: update to refkeen-20201016

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.
This commit is contained in:
Yorick Hardy 2020-11-29 22:01:27 +02:00
parent 131e9a4dae
commit 3fbe592707
3 changed files with 12 additions and 17 deletions

View 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}/

View 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

View 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