Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
ludicrous_peridot

Tartar (EE-fork, DOS) - Christmas jukebox special

Recommended Posts

Cool, let me try those. 

 

WRT the intermission screen, Tartar has full length next location section of the intermission maps for Doom 2 coded in that use @oliacym 's excellent WAD. There's no UMAPINFO support, Doom-related code is simply extended for Doom 2.

 

I will keep the Pos sound thing in mind - did not notice that myself. As for DMX, I don't have any plans at the moment; Gerwin did an excellent job of improving sound handling via Allegro in MBF 2.0.4, including Doom II OPL timbres, so even if it's not on par with DMX, I expect Doom sound in Tartar to be decent enough.

 

EDIT: I've uploaded a video of intermission screen from a more recent (ahem, today's) build, with much better graphics lumps that @olyacim have themselves converted:

 

 

Also, with the recent build (in BETA directory now) I am at least able to start Avactor in DOSBox with 63M of memory at 640x400. The MIDI error in Ancient Aliens I will have a look at.

 

avactor.PNG.fbb401dfea2936b69bf55de89b68e59e.PNG

 

 

Edited by ludicrous_peridot

Share this post


Link to post

A build is available now that is hopefully stable enough to start the Beta (you can grab it from BETA directory in the distro) and I will be updating the op to reflect that. It deals with the above issues and fixes a few sporadic segfaults.

 

Apologies, you can't play Ancient Aliens with Tartar, but you can listen to the title tune now. :)

Share this post


Link to post

One other "thing that that carried over from Ye Olde Eternity" - well, in fact from SMMU, - is overriding level information (title, music, progression etc) with that provided in PWAD, which is what Eternity Wiki is referring to as a deprecated form of EMAPINO. Even before starting with Tartar I have been experimenting with that and original COD engine build to provide entries for No Rest for the Living, so that it played in DOS exactly how it did on XBOX or in modern Unity port, but without any coding in the source port, and have actually provided the map marker lumps in Tartar distro's GOODIES directory (used to be called EXTRAS before earlier this week).

 

Now I have just figured out the lumps I have uploaded before were all mixed up and were not the ones I was using in my patched version of NERVE.WAD! So I have uploaded lumps with proper contents this time. One would have to "patch" NERVE.WAD manually to have them integrated; Slade offers map marker lump editing - one has to use the Edit level script button when the lump is selected (as normally these contain Fraggle-script, not EMAPINFO ;) ); or alternatively one could drag the lumps into the original markers place, and then remove the original ones. 

 

As a bonus I've added in INTMAPS directory version of lumps that reference intermission backdrops from this mod; one would have to also add the graphics lumps, converted from the original PNG-s and having a horizontal offset of 120, as these are not provided with Tartar.

 

Spoiler

etrn12_pcx.png.2ca03cad467f887b18c730f7db7954a0.png

ETRN122_bmp.png.5d2d85e872a384f446cde18fc2a84aec.png

 

 

Share this post


Link to post
1 hour ago, Woolie Wool said:

Why not make those map lumps autoload, along with nerve.wad itself if Tartar sees it?

 

Oh, it would not be just autoloading the lumps, as that would screw up lump numbers completely. See, the port expects THINGS to follow map marker, and with autoloading this will simply not be the case, breaking level loading.

 

While it is a reasonable thing, in principle, that port has some special handling of a pwad, I'd need to come up with some way of getting done... what could be achieved with a one-off edit. 

 

So there I go again: "boy, this is sooo complex...", probably meaning I will have this done later, when I have an idea on how to pull this off... and not in this Spring release :).  Thanks for bringing this up: this was bugging me for some time, so appreciate outside input.

Share this post


Link to post

Well, one possible precedent is to look at what other people have done previously for the same issue of "how to add extra lumps of data to maps without changing the maps".

 

Exhibit A: GL nodes

Quote

The GL-Nodes are stored in a series of lumps which begin with a special GL level marker. This level marker is the same as a normal level marker (e.g. "MAP01") but with the prefix "GL_" added (e.g. "GL_MAP01"). This allows the GL information to be stored in a separate file.

When the normal level name is longer than 5 letters, then the marker name must be "GL_LEVEL" and the name is stored inside the marker lump (as described below).

Exhibit B: Conversations

Quote

Conversations are stored in binary form in lumps named SCRIPTxy, where xy corresponds to that of the MAPxy map slot. In addition, the conversations stored in SCRIPT00 are valid on every map.

 

 

So basically you could imagine a a similar setup. Like FS_MAP01 would contain the FraggleScript/primitive EMAPINFO code for MAP01. This would allow to create MAPINFO packs for stuff without having to modify the original mapset.

 

Alternatively you could implement UMAPINFO support but that'd be a more bigger endeavour; while an alternate lump reading scheme would be more like a quick hack. (Is there content in the level header? If not, is there a lump that matches this naming scheme and does contain content?)

Share this post


Link to post

I went with a lump reading hack in the new build: rather than attempting to patch, say, NERVE.WAD with a PWAD, I am providing a way to "fix" a set of lumps, so that no matter which PWAD (or even IWAD) they get overridden in subsequently, they are always read from an explicitly provided special WAD, specified with a new -tape command line argument (tape? google engineering flowchart to see what I mean). This seems to be sufficient for providing SMMU-style mapinfos for WADs and shipping extra assets like backdrops or text lumps. Only a single -tape WAD is supported at the moment, as making this any more complex (or coding in autoloading) may lead to brain melting results. Then again, as with any hacks this may explode in one's face one day even in this simple state...

 

I'm providing NRFTL.BAT with BETA build as an example of how to invoke Tartar for this and TAPENERV.WAD as a sample tape WAD. The latter contains 2 images converted from No Rest for the Living Intermission Maps mod by @oliacym that I take absolutely no credit for, but have not asked for permission to include. @oliacym please shout if you would want me to redact them from the sample WAD.

 

EDIT: ..oh gosh, let 'em melt - I've put the auto-loading in (still only a single "tape" WAD is ever loaded) and uploaded the new version; just TARTAR -file NERVE should be sufficient, as long as there's NERVE.WAD in TAPE directory (that's the "tape" WAD, not your PWAD and a sample TAPE is available in BETA directory).  

 

And just as a reminder, in case of bitter taste -noload and -safe can help :)

 

Edited by ludicrous_peridot

Share this post


Link to post
13 hours ago, ludicrous_peridot said:

The latter contains 2 images converted from No Rest for the Living Intermission Maps mod by @oliacym that I take absolutely no credit for, but have not asked for permission to include. @oliacym please shout if you would want me to redact them from the sample WAD.

 

I appreciate the heads up! But yeah, no worries, go for it :)

Share this post


Link to post
5 hours ago, ludicrous_peridot said:

...intermission-related changes (e.g. TNT).

 

3/4 done I'd say :)

Share this post


Link to post
On 5/31/2022 at 7:58 AM, ludicrous_peridot said:

This is in Beta now - not expecting any more new stuff any time soon, except fixing issues and intermission-related changes (e.g. TNT).

I think re-adding quicksaves is necessary for this to be a truly useful port.

Share this post


Link to post
On 6/1/2022 at 4:14 PM, Woolie Wool said:

I think re-adding quicksaves is necessary for this to be a truly useful port.

Luckily Quasar thought as much and did this back in 02.

 

Now seriously, had absolutely no issues with quick save with COD.EXE and MBF 2.0.4, and did not play enough SMMU to even notice it was gone. Have I screwed it up? 

 

EDIT: Looking at this (and COD on idgames) made me realize this spring is... what? 20 years anniversary of the original port Tartar is based on?

 

Spoiler

=====================================================================

02/16/02 - 03/01/02

 

SoM and I have made various changes all over for portability, most of them very small, but a few larger issues have arisen, particularily use of unistd.h IO functions that are poorly supported under Visual C++.

 

Reintroduced another lost DOOM/BOOM/MBF feature, quicksave and quickload. Fixed a bug in the menu system with respect to popup messages and the way they close or open the menus when dismissed. Their behavior was inconsistent because they didn't save the state of the menuactive variable.

 

Tweaked a little code for the console.

 

=====================================================================

03/02/02 - 05/18/02

...

 

Edited by ludicrous_peridot : XX

Share this post


Link to post

EDIT:

On 6/1/2022 at 7:30 PM, ludicrous_peridot said:

Have I screwed it up? 

I have :) This has been fixed now both for released and Beta versions. 

You actually only need to re-download KEYS.CSC.

 

EDIT2:

... and I've also updated the binary to have quicksave and quickload in key binding menu. There's also a change in how fuzz effect is rendered in higher resolutions, to make it a bit more "chunky" in line with the scaled sprites and reduce the "moire" slightly, and finally, fuzz will no longer be replaced with "checkered" translucency effect when that's enabled with r_fauxtrans CVAR.

 

Another small update - reading the old changelogs I got an idea of a small fix for the MBF mushroom explosion effect, that did not work correctly in this port when its codepointer was referenced in an MBF-compatible Dehacked patch. So I fixed that.

 

EDIT 3: Been toying with yet another option to load wads - automatically loading wads from a directory after the iwad but before all of the pwads, with the intention for players to drop into that directory "fix" wads, like Sprite Fixing Project or Sound Bulb. Seems to be convenient, even if brings the number of ways wads could be specified to Tartar beyond reasonable. Also couldn't resist trying out Sunlust, and to my surprise new game could be started and all maps except 28 and 30 could be loaded; -nodemo command line argument strongly recommended.
 
I just wonder what JUMPWAD does to Tartar...

 

Edited by ludicrous_peridot : fuzz

Share this post


Link to post

"Beta business" aside, my ears have started to hurt from stock Doom sounds I am hearing all the time during testing and after looking around and spotting this mod:

I put together a simple change to support loading of WAV lumps. Luckily Allegro has support for 16-bit samples and cards, so all seems to go smooth.

I don't have an SB16 or similar, so could only test with SBPro emulation on my Yamaha just to see that it works on real metal, and obviously with DOSBox SB16 emulation, of which I have a video recorded

 

Spoiler

 

 

I may be able to test on SB Audigy next weekend.

Share this post


Link to post

I've found with the tartar beta using dosbox that the IDDT cheat rarely works in the automap.

When it does, I notice this in the DosBox Status Window ...

Illegal write to  ( insert various memory addresses here )

Share this post


Link to post

Thanks, @hawkwind . I've taken a look and update the binary, so please tell me if the error is still there.

Please remember to get KEYS.CSC as well, as this did not have quicksave/quickload bindings before some time last week.

 

I am using a single branch, so the WAV-related changes described below will also be in.

 

For the illegal write error - I am curious if this still happens if you run Tartar with -safe command line argument?

If so, please PM me the command line you are using that produces those errors.

 

EDIT: I think I've broken other some cheats in the process (e.g. idclip with L bound to a command); will be looking at - probably during the weekend.

 

And also making progress with something else. Is a bit of a mess at the moment, tbh:

image.png.3e621ac47999590be34e92aa2d1c470d.png

 

EDIT2:

A bit how I feel at the moment. The music is great though... :)

image.png.b077a82765703dfc75e075bd462fd6e6.png

image.png.05d98a1188a6a4ca439cbb0a2752dcb1.png

 

Edited by ludicrous_peridot : fuck++

Share this post


Link to post

An update on what I've been up to here:

  • Support for loading extended nodes in ZDBSP format has been added
  • A handful of problems immediately surfaced with maps that have huge vertical or horizontal extents and I've fixed some of them but...
  • ... supporting more complex maps seems to lead to more problems than opportunities
  • However as Ancient Aliens felt like it should now be playable I spent some time to deal with the problems from it having non 8 pixel font 
  • I've also tweaked keyboard keyboard again to make it feel more natural and cheats work where expected

The status now is that Ancient Aliens may actually be playable, and some of Jumpwad maps get loaded (but map 3 for example causes a crash). Also MAP32 of Eviternity, while loading, is absolute mess. Some more vistas in the spoiler.

Spoiler

ETRN242_bmp.png.89d1330a1eef4487581feb5bf01c9a97.png

ETRN243_bmp.png.0687114162e2b303780272fb53b6b94d.png

ETRN239_bmp.png.f973b6e2d560741d4ebef00c102d5ee4.png

ETRN246_bmp.png.d647f358a1eb56611b4bdb2e4efbcc9f.png

Animation2.gif.43b059abba38088cc2d8d0607e33c962.gif

I've also recorded a boring video of menu and keypress handling changes testing.

 

I am still to go through a few more issues that have been reported and chase up what's been happening lately with intermission maps (TNT and other things), and after a bit more testing will share the new build.

Share this post


Link to post

STRAIN.wad map07

 

Exiting map07 of STRAIN.wad is impossible, due to line 1021 being flagged impassible.

Share this post


Link to post
On 6/10/2022 at 9:40 PM, maxmanium said:

I'm curious, what issues does ancient aliens have running with these DOS ports exactly?

 

With this exact DOS port, I had at least the following issues:

  • Bigger than 8 pixel high font was causing console prompt to be hidden and most recent message to be hidden
  • Also menus were not showing fully as they were laid out for 8 pixel high fonts
  • What was worse buffer overflows were occurring on menu screens that were causing crashes later on during the game 
  • MUS lump converter was choking on unknown Controller number and occurrences of End of measure and Unused events, so there was no music
  • All of the maps were using extended node format so did not load at all to start with
  • There was a bug in how automap scale was selected leading to math overflows and spaghetti on automap

To add to that it's only yesterday that Tartar started to render:

  • textures that had width that was not exactly a power-of-2 number
  • textures with missing columns in their definition - Tartar was recording an error before, but now replaces such column with fully transparent ones

...which probably would have eventually gotten in the way of playing Ancient Aliens.

 

On 6/11/2022 at 4:07 AM, hawkwind said:

STRAIN.wad map07

 

Exiting map07 of STRAIN.wad is impossible, due to line 1021 being flagged impassible.

 

Thanks for pointing this out. I checked the level in MBF and behavior was the same (which I guess makes it canonical ;), so while I went on to resolve this rather "aggressively", the behavior is controlled by an on-by-default compatibility option:

 

Spoiler

ETRN129_bmp.png.45311ae887abb8ff9c026f27bb43714d.png

 

The changes above are included in a fresh build, which I am no longer able to designate Beta, and hence have now included a DEV directory in the distribution. In addition to what I've just mentioned, the dev build has:

  • Less confusing key bindings handling, so that cheats should work where expected
  • Console showing over the menus and game and other widgets not messing with console input handling
  • Menus rearranged to behave better (and safer) with wads that have fonts bigger than 8 pixel in height
  • Auto-loading of "fixes" wads after IWAD (intended for Minor Sprite Fixing Project, Doom Sound Bulb and the like). Drop them into FIXES directory - or into FIXES\<IWAD> to be loaded for a specific IWAD (e.g. FIXES\DOOM or FIXES\TNT).

While extended nodes loading is in as well, the math-related changes I've made are mostly way off, and some issues can be observed even in levels with conventional nodes (e.g. e1m1 sky is rendered ba-a-a-dly), so I suggest to treat it as a "novelty" at this point.

 

I have not updated OP with these details, and the readmes are no longer keeping up with the builds - will address this at a later point.

 

EDIT: so there's horizontal shearing in Doom and MBF renderers and I only noticed that yesterday... quite a blow :(

Edited by ludicrous_peridot

Share this post


Link to post

New DEV build has been uploaded that attempts to deal with some of the issues maps with huge vertical extents pose (especially the maps with nodes in extended format) hopefully reducing crash occurrences in such circumstances. Maps 1, 2 and 3 of jumpwad can be loaded and navigated and show automap fine; map 27 of Eviternity technically loads as well. Now, my latest discovery are the "tall" patches which need to be supported to correctly render modern WAD graphics. Tartar does not have this support yet.

 

The build also fixes several small bugs introduced in the previous one (e.g. crash from Eternity Options menu for the recently introduced compatibility flags, or crash on Doom 2 tally screen when launched with -noload).

 

Also for the intermission map WADs file names shared by @oliacym (intmapd2.wad and intmapnr.wad namely) have been coded in. I'll update the guides with this information, but for now the gist is: simply copying "official version" into TARTAR.EXE directory will not work with the BETAs published before. Plutonia and TNT are not supported yet.

 

Next thing on my list is actually taking a break. I have started finding it harder and harder to keep up with my other commitments and progress with Doom modding and coding "stuff", so will be putting the stuff on hold. I am keeping the ideas I have for Tartar (stability, unfinished business like tall patches or intermission maps in Final Doom, but also some others as well) for a later time this year. Fingers crossed a fresh Beta may see the light this fall, and by Christmas I may actually have a tested release candidate for TARTAR23.

 

While coding is on hold, I will be documenting the changes and updating readme-s and guides, will put up-to-date information into OP (including known issues), and make sure that git tags reflect builds state - all of this I normally do on the go anyway.

 

EDIT: I actually had a chance to try Doom Sound Bulb with Tartar DEV build on a real card with SB16 emulation - SB Audigy in Windows 98 - and it actually worked.

 

Edited by ludicrous_peridot

Share this post


Link to post
On 6/1/2022 at 11:30 AM, ludicrous_peridot said:

EDIT: Looking at this (and COD on idgames) made me realize this spring is... what? 20 years anniversary of the original port Tartar is based on?

Only of the start of my changelogging ;) The first version of Eternity was a slightly modified Boom executable actually, back in 1998, so I would consider development to have started at that point. There's virtually nothing left of that in the SMMU lineage though because I rewrote most of it as I was bringing features over from MBF.

Share this post


Link to post

Are there plans to add Heretic and Hexen support? Unfortunately, there is no Hexen port for DOS with high-resolution screen support. For a Heretic, there is only Legacy and Hexetic.

Share this post


Link to post
On 7/6/2022 at 8:43 PM, Angel Of Nemesis said:

Are there plans to add Heretic and Hexen support? Unfortunately, there is no Hexen port for DOS with high-resolution screen support. For a Heretic, there is only Legacy and Hexetic.

No plans for that. 

 

However I am tempted to do a hires Hexen port, as this comes up all the time on various boards, and seems like I have everything I need in the toolbox. Now, this is not happening until 2023 and definitely not as part of Tartar. Maybe "Sir." @Gibbon can beat me to it though? :)

Share this post


Link to post
5 hours ago, ludicrous_peridot said:

However I am tempted to do a hires Hexen port, as this comes up all the time on various boards, and seems like I have everything I need in the toolbox. Now, this is not happening until 2023 and definitely not as part of Tartar. Maybe "Sir." @Gibbon can beat me to it though? :)

I am glad to hear that there is hope for the port after all.
I also want to thank you for Tartar. To my surprise, it launched Plutonia Revisited 2 without crashes, I checked all the levels using the IDCLEV code. The game works very well on Pentium 3 500 MHz, 128 mb RAM.

Share this post


Link to post

Some progress with Tartar:

- docs and readme-s have been updated to be up to date with the code

- op reworked

- distro rearranged

- tall patches for mids and sprites are in the development build (the simple part)

- for other textures with tall patches a flimsy workaround (because I'm not doing the hard part) is also in the development build is still being worked on and has an off-by-default guard in the Eternity Options menu that needs to be flipped on by the player. The flip is in the development build but the workaround is not.

 

Vistas incoming

ETRN133_bmp.png.fe3dfd99bcb4bffa43d9ef60dafed1ac.png

 

ETRN132_bmp.png.1a86253a370b9e4d7632fc56b47c5e35.png

 

ETRN134_bmp.png.84c42c81934c5095a15099b6aebbc750.png

 

 

While Heliopolis looks habitable after a long while, all above show some artifacts when up close. It may, however, already be just as much as I can devote to this for Stage 3 in the works. That said some work also remains for custom intermission screens.

Edited by ludicrous_peridot

Share this post


Link to post
On 1/2/2022 at 12:02 PM, ludicrous_peridot said:

Can't remember the specifics, but on VOGONS boards there's a long thread where a person was producing experimental builds of more recent EE for DOS. There was some rationale for that - like getting some code from EE work in DOS, so that it could be back-ported, and the the builds were mostly crashing, at least for me. Maybe something that could be of use for you though.

Sorry to barge in, but I think this might be the thread you were talking about, specifically pages 4 to 5.

 

Share this post


Link to post

Recent brilliant Knee Deep in Knee Deep in ZDoom has inspired me to blow off the dust from Tartar code and prepare a maintenance release of Stage 3 that mostly addresses issues with the new mod (all that while Stage 4 has been put on hiatus somewhat and none of Stage 4 commits have made it through into the trunk yet).

 

The release in the works now will contain

Spoiler

New Tartat build that:

 

1. No longer detects Freedoom Phase II as being TNT Evilution, outputs Feedoom Phase I or Freedoom Phase II as the name of the game at the start and treats Freedoom as a game mission pack internally

2. Inverts the logic for SMMU coloured lightning and tall textures support compatibility flags to bring them in line with how compatibility flags work, all this for better demo compatibility (flag on means feature off)

3. Does not corrupt recoloring tables after blood recoloring is switched off - at least KDiKDiZD was sensitive to this resulting in sprite artifacts

4. Supports new option in SMMU-style map information to signal that blood recoloring is not recommended in a map. Loading such map will suppress blood recoloring for the duration of the map, but not change any of the game options, allowing the player to switch between, say KDiKDiZD and some less palette-hacks-intense other mod, without the hassle of going into game options each time.

The way it is achieved is by treating the option in mapinfo as a "soft" option in the sense that after the level is started and blood recoloring is suppressed, player may switch it back on any time via Options / Enemies menu and that choice will persist throughout the playthrough, including respawning and subsequent next level. Starting new game resets the engine to again respect recommendations from the maps.

5. Makes dehacked patches imported from JUMPWAD.WAD and INSTADOOM.WAD work with PWAD-s that themselves have complex PWAD patches, thus enabling selfies and Archie-infused jumping with them.

6. Fixes buffer overflow errors when running commands from SCS script files including from KEYS.SCS, and improves controls over buffer length handling here (sound samples) and there (game sprite list).

 

New compatibility WAD for KDiKDiZD that:

 

1. Shows longer names for the maps and tall skies (as modern Eternity Engine does) and marks maps to not have monster blood recoloring on them

2. Changes selfie sprites from INSTADOOM to be displayed with correct colors

3. Addresses menu items and message drawing issue with Tartar that results in some of the colors being wrong for them

 

Look for the WAD named KDiKDi_A.WAD in GOODIES\TAPE and put it into TAPE directory to be loaded by Tartar automatically with KDiKDiZD.

 

New kind of distribution package for Tartar

 

For the maintenance release I am introducing an experimental package that includes Tartar preconfigured and bundled with DosBOX for Windows and all the goodies and extras, all as a single ZIP file. Freedoom Phase II is included as IWAD and Community Chest 2 as a sample PWAD - drag it onto DOOM2.CMD to start playing immediately. This package includes works by other authors that are provided unmodified with readme and license files available in COPYRGHT directory (provided these were part of the said works). Look for Tartar-portable.zip in the binary distribution directory to try it out.

 

Note that:

I. None of the commerically available IWAD-s or PWAD-s are included.

II. An alternative build of Tartar is included in the portable package that does not support 640x400 resolution and switches to 640x480 resolution instead.


 

Finally, as a small bonus an alternative take on MAP01 of KDiKDiZD is included which allows the player to select difficulty level and jump to the ZM1 via a teleporter in the room. Load it after the mod itself this way:


   TARTAR -file KDiKDi_A KDiKDi_B KDiKDiM1 -warp 1

Be mindful of playing too much with that UAC terminal found in the map - you have been warned.

 

 

 

A flick of what t expect

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×