A source code for koolnESS musicdisk for DOS/ESFM by The Furnace Posse, first released at Multimatograf 2024 Wild compo
quite a messy stuff, isn't it? :)
you'll need the following stuff:
- Open Watcom C++ 1.9 (may probably work with 2.0 but 1.9 is what I've used)
- Netwide Assembler
- Flat Assembler
- Rocket for synching stuff
- UPX for optional compression (done manually after building)
and a little bit of patience :)
switch to project directory, wmake
and look for koolness.exe
in !polygon
directory. wmake
may fail on non-DOS/Win32 platforms due to copy
commands in makefile - you can easily fix that for Unix/etc targets
the need of two different assemblers is because I have some older sources made in FASM (like grid texture mapper) whose were used in this production, and I had no time to translate them to NASM. Don't worry much - next time i'll use two different C compilers :D
if you want to know how did I made these furnace tunes play in musicdisk, take a look on !converter
directory
if you're looking for a simple DOS player for ESFM .opm tunes, head to !esfmplay
directory.
As you may have noticed, there are two makefiles for both DOS and Win32 versions - the main difference is that Win32 version was used during intro and GUI development for easier debugging and ability to use Rocket for intro synchronization, but it can't actually play tunes due to ESFM emulation core missing.
Build Win32 .exe by running wmake -f makewin.mak
. you'll need BASS.DLL to run it, tho :)
-
"tapekeep" was misspelled as "tapekeeper"
-
3dfx Banshee/Voodoo 3+ cards can't handle custom 320x200 60hz letterbox tweak in VESA modes, resulting in black screen or "out of range" message, yet reporting themselves as VGA compatible.
- workaround - use VESA 320x240 mode or VGA 320x200 60hz
- fast_obj by thisistherk
- polygon filler is based on fatmap2.zip by MRI\Doomsday
- FLEXPTC is my OpenPTC-like library to handle software rendering by providing common set of screen buffer handling stuff for DOS (VGA/VESA) and Win32 (DirectDraw/DirectX 9/OpenGL)
- precompiled libraries are available in
lib
folder, and I will opensource them after cleaning all the mess the source code is :)
- precompiled libraries are available in
rocket.lib
is based on standard Rocket client libraries, with few modifications for DOS target (like 8.3 filenames for tracks)
--wbcbz7 25.06.2024
p.s. happy birthday Natt!