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

Doom64 EX 2.0a (Feedback Build) - Updated 3-12-11

Recommended Posts

InsanityBringer said:

no, it seems fine in windowed at the same resolution


Does it still list the resolution as 1680x1050 in windowed mode?

Share this post


Link to post

Downloaded the latest build, and did a quick run through some levels on the "Bring It On!" skill, with the N64 compatibility collision switched on. Not sure if these have been reported already, but here's some issues I noticed.

Map Bugs (I'm not sure if any of these occurred in the original game or not. It's been a while since I've played it):

-In Level 29: Outpost Omega, in the room with the laser key in it, there's a little pathway covered with health bonuses, leading away from the alcoves up above that hold a backpack and MegaArmor. If you drop off of the end of this pathway, there'll be a locked-off Soul Sphere to your left, and a teleporter to the right that leads back to the blue door. However, across from that health bonus pathway is another alcove. If you do a straferun leap into it, the alcove's ceiling will lower and clamp down on you (without doing crushing damage), potentially trapping you inside it and requiring you to NOCLIP out.

-The Pain Elemental in Level 6: Alpha Quadrant that hovers over the Spectre pit seems unable to fire any Lost Souls (the Lost Souls it generates are immediately destroyed) until it moves closer to you and clears the "trampoline" platforms.

-It's possible to straferun-jump to the blue key in Level 7: Research Lab without raising the bridge.

-There's a Nightmare Imp trapped partially inside a lamp sprite just to the left of the yellow door in the final room of Level 8: Final Outpost.


Sound Bugs:

-In Level 2: The Terraformer, when you unlock the red door and hit the switch that activates the device that pounds the big hole in the floor, each impact makes the correct "rocket/barrel explosion" sound, but the "Revenant rocket launch" sound effect doesn't play like it does in the original game.

-If plasma gun is equipped when player starts a level (e.g., it was the weapon they were holding when they exited the previous level), its idle electric buzz sound cuts out and does not play until you switch to a different weapon and switch back.

-If the player switches to the plasma gun while in an area with echoing sound effects, its buzz sound will fail to loop, and it will go silent after playing it briefly. THIS ONLY OCCURS IF THEY EQUIP THE PLASMA GUN IN ECHOING AREAS; if they equip the plasma gun in an area without echoes, then move into an echoing area, the buzz sound will continue to loop like normal.


Misc:

-If not using automap overlay, automap uses classic PC DOOM behavior, only updating itself after switching it off and back on again.

-Vertically scrolling the automap (by holding down the Use button and moving the mouse) seems to be impossible if Mouse Sensitivity Y is set to 0.

-Mouse sensitivity seems less responsive in general compared to the 1.4 release. (X sensitivity 32 turns notably slower than X sensitivity 32 in D64EX 1.4. I'm not sure what's different.)

-Collision detection is a bit odd. The walls seem a bit sticky, and rubbing against them while the player is angled certain ways can severely slow or even halt a moving player, even if the wall is a straight, 90-degree angle. Furthermore, if you open a door, stand slightly underneath it, and allow it to close, in many cases, it will close on you and seal you inside it; you will be unable to free yourself unless you manually open the door again. (Switching the N64 compatiblity collision off did not fix the door issue, though I didn't test the wall-rubbing issue.)

Share this post


Link to post
Kaiser said:

Does it still list the resolution as 1680x1050 in windowed mode?

No, it properly lists my native resolution of 1920x1080

(In case it wasn't clear, I was talking about the info section in the pop-up menu most monitors have)

Share this post


Link to post

A few more things:

-In the opening area (water under bridges, blue door) of Level 11: Terror Core. There's a 3D bridge, in the corner of the area opposite where the blue key spawns. If you kill an enemy as it's passing under that bridge, it will be crushed when you walk over the bridge later; you'll hear the squishing sound and see a pool of blood and bones inexplicably laying on the bridge next to the box of bullets. (Again, this may be standard DOOM 64 behavior.)

-When using MP3's for music playback, Level 13's music refuses to play. Instead, the last MP3 played will simply continue playing in Level 13 (e.g., if you were on the main menu and loaded up a Level 13 savegame, the main menu music would play in Level 13). USF playback works correctly, however. I'm uncertain what happens if OGG's are used instead (since I don't know how to convert MP3's to OGG's).

Share this post


Link to post

Minor bug I've noticed, when Sky Pitch is turned on the sky graphic appears to scroll in the wrong direction!

When you look up, the sky graphic moves up as well, when it should really look down.

Also, I have a suggestion: Could you include a menu option to disable the gamepad, or be able to change keyboard controls even though a gamepad is present?

For example, I have a gamepad plugged in but I don't want to use it for this game. I would have to reach behind my computer and unplug it if I wanted to change keyboard controls.

Another small bug I noticed (This is in the original N64 version as well) it seems that the pickup sprites for the SSG and the regular shotgun are swapped.

Share this post


Link to post

Another small bug I noticed (This is in the original N64 version as well) it seems that the pickup sprites for the SSG and the regular shotgun are swapped.


Well, let's not worry about that. The goal of this program is to replicate the original DOOM 64 experience. This includes flaws apparent in the original game. Frankly, I prefer it that way. I don't want this to end up like the Absolution TC with all this weird extra stuff added to it.

Share this post


Link to post
MG_Man said:

Also, I have a suggestion: Could you include a menu option to disable the gamepad, or be able to change keyboard controls even though a gamepad is present?

For example, I have a gamepad plugged in but I don't want to use it for this game. I would have to reach behind my computer and unplug it if I wanted to change keyboard controls.


Use the "-noxinput" parameter to disable the gamepad (can be set in the other parameter text box in the launcher.

Share this post


Link to post
Megamur said:

-In Level 29: Outpost Omega, in the room with the laser key in it, there's a little pathway covered with health bonuses, leading away from the alcoves up above that hold a backpack and MegaArmor. If you drop off of the end of this pathway, there'll be a locked-off Soul Sphere to your left, and a teleporter to the right that leads back to the blue door. However, across from that health bonus pathway is another alcove. If you do a straferun leap into it, the alcove's ceiling will lower and clamp down on you (without doing crushing damage), potentially trapping you inside it and requiring you to NOCLIP out.


While you don't receive damage on the N64 version, you don't get stuck along the edge. Seems to be a behavior that I've missed with the collision. I'll look at that.

Megamur said:

-The Pain Elemental in Level 6: Alpha Quadrant that hovers over the Spectre pit seems unable to fire any Lost Souls (the Lost Souls it generates are immediately destroyed) until it moves closer to you and clears the "trampoline" platforms.


Normal behavior and already mentioned on this thread

Megamur said:

-It's possible to straferun-jump to the blue key in Level 7: Research Lab without raising the bridge.


You can do it as well on the n64 version

Megamur said:

-There's a Nightmare Imp trapped partially inside a lamp sprite just to the left of the yellow door in the final room of Level 8: Final Outpost.


Another n64 feature that I missed. Apparently that lamp sprite doesn't even show up on the n64 version. Seems like they are doing some collision checks when the objects are initially spawned. Kinda nice

Megamur said:

Sound Bugs:

-In Level 2: The Terraformer, when you unlock the red door and hit the switch that activates the device that pounds the big hole in the floor, each impact makes the correct "rocket/barrel explosion" sound, but the "Revenant rocket launch" sound effect doesn't play like it does in the original game.


Thats actually a bug on the N64's part. Though I could add this to the 'N64 Compatibility' option list.

Megamur said:

Misc:

-If not using automap overlay, automap uses classic PC DOOM behavior, only updating itself after switching it off and back on again.


Normal behavior. Play more Chocolate Doom

Megamur said:

-Mouse sensitivity seems less responsive in general compared to the 1.4 release. (X sensitivity 32 turns notably slower than X sensitivity 32 in D64EX 1.4. I'm not sure what's different.)


Problem is that in 1.4, you must have the sensitivity set very low to even get decent sensitivity. Current version changes that so its not that sensitive. Increase the sensitivity if the input is not responding!

Megamur said:

-Collision detection is a bit odd. The walls seem a bit sticky, and rubbing against them while the player is angled certain ways can severely slow or even halt a moving player, even if the wall is a straight, 90-degree angle. Furthermore, if you open a door, stand slightly underneath it, and allow it to close, in many cases, it will close on you and seal you inside it; you will be unable to free yourself unless you manually open the door again. (Switching the N64 compatiblity collision off did not fix the door issue, though I didn't test the wall-rubbing issue.)


Issue is related to the one mentioned in Outpost Omega. Looking at that too. Though in the n64 version, you are no longer able to wall-run to increase speed.

Share this post


Link to post
Kaiser said:

Normal behavior. Play more Chocolate Doom


Actually, I play vanilla DOOM regularly. I'm well aware of how the automap functions in classic DOOM. However, I knew some console ports auto-updated the map as it was active, so I thought DOOM 64 did the same. Having taken the N64 out of mothballs and trying it myself, indeed, it does not update without turning it off and back on again. It's peculiar, but that's how it works. My apologies for not knowing.

Problem is that in 1.4, you must have the sensitivity set very low to even get decent sensitivity. Current version changes that so its not that sensitive. Increase the sensitivity if the input is not responding!


I actually have to max out the sensitivity, and then use this sensitivity booster button built in on my mouse to get it to an acceptable speed now. But it's my own problem, really. I usually have to crank up mouse speed in most of my games to ridiculous levels in order for it to feel right (in Source engine games, I have to use console commands to crank it above the maximum you can set it on the options screen).

Share this post


Link to post
Megamur said:

I actually have to max out the sensitivity, and then use this sensitivity booster button built in on my mouse to get it to an acceptable speed now. But it's my own problem, really. I usually have to crank up mouse speed in most of my games to ridiculous levels in order for it to feel right (in Source engine games, I have to use console commands to crank it above the maximum you can set it on the options screen).


Noted. Though, thats really weird. Never heard of a mouse that has a sensitivity boost button.

Share this post


Link to post

Well, specifically the button boosts the DPI of the mouse's laser, but in turn, that generally hikes up the overall sensitivity quite a bit. You know, maybe I should just turn the DPI up all the way, all the time, and just turn down the sensitivity aettings in my games.

Oh, and the Level 11 bug I mentioned wasn't a bug and happens in the original game, too. Now that I actually have my N64 hooked up again, I'll try to verify whether things are glitches or not instead of wasting your time.

Thank you very much for working on this project, by the way. It made me realize that I actually really do love DOOM 64. I just don't like playing the system it's on. :)

Share this post


Link to post

Hehe, no worries. Though by the way, I am trying to get the 'void' sky to look right. Since you have the original, would it be possible to see just how accurate the void sky in D64ex is compared to the N64 version? Sounds like a silly favor since its just a flat colored background but I need to make absolutely sure that the behavior is done right. Also every n64 emulator out there fails to render this properly which makes no sense.

Share this post


Link to post

Oh sure. I just got to that level in D64EX, funny enough. I'll take a look between the two the next time I boot up my N64.

Share this post


Link to post
footman said:


Nice. For a better comparison of the fog, warp to 'Playground' and after killing the cyberdemon, head to the far corner of the level and face directly north and then take another screenshot comparison. The level is very dark and should make the fog easier to see in terms of far/near distance.

Share this post


Link to post
Megamur said:

Well, looks like Footman's got this one.


Actually you made a good point about where the fog ends and been using your images for reference.

Share this post


Link to post
Kaiser said:

Actually you made a good point about where the fog ends and been using your images for reference.


Oh crap. Well, I still have them if you need them again.

Share this post


Link to post
Kaiser said:

[...] one of the things that I really need to get right is the fog distances which are ALL wrong on ALL emulators. I need to look at the N64 version and do a very close side-by-side comparison.

Yah, fog effects should start closer to the player.
Warp to map 17 (Watch Your Step) and, without pivoting, walk backwards until you're stuck in a corner. You'll be looking at a pillar in front of you, and more pillars stretching off forward-left and forward-right. On my N64 I can already see fog effects starting just behind, or maybe even at, the closest pillar; and each pillar further back is a little foggier than the last. (Maybe someone can do an N64 screenshot?)
When I do the same in EX, the effect isn't nearly as pronounced.

On a totally separate note... There's a fade-out/fade-in sequence when loading saved games. In the spirit of quickness, could that be left off for quick-load games?
Also re quicksave/load, something I've always wanted in Doom games: If you haven't done a quicksave in the current game session, would it be possible when quickloading to have the last-saved game (by timestamp) chosen by default, instead of getting the error message "You haven't picked a quicksave slot yet"?

Share this post


Link to post

Been playing around some more now with N64 and EX games side-by-side, and noticed a few more things... apologies if these have been covered already.

- F10 to quit EX seems to be disabled now(?)... works in last official build but not now.

- On map 27, Playground, you can pick up any Partial Invisibility any time in EX; In the N64 version, you can't pick up the ones sharing space with Stimpacks unless you also pick up the Stimpack. Not really sure this needs to be "fixed" ;) but just FYI.

- N64 game allows you choose fist as weapon any time; EX won't allow fist if you have chainsaw but no Berserk.

- Some weapons react faster to the Fire button in EX (I use Ctrl key), where by comparison in the N64 game there's a half-beat between button press and the projectile leaving the weapon, frex Unmaker. Again prolly doesn't need a fix; but this might mean tiny variations in timing for some combat situations and/or shootable-switch puzzles, etc. ::Shrug::

Share this post


Link to post

Really having trouble trying to get this right so what I've done is uploaded a 'test' build to easily adjust the max/min distance of the fog through the console:

http://www.speedyshare.com/files/27179408/Doom64_FogTest.zip


Just replace the exe with this one. Load up either Map17 (Watch Your Step) or Map31 (Into The Void) and tweak the fog using the following console commands:

r_fognear
r_fogfar

r_fognear defines the distance in which the fog starts and r_fogfar defines the distance where the fog is at its thickest

Since you folks have easy access to the N64, I'd figured its quicker to do it this way...

Share this post


Link to post

I hope you don't mind me saying but that isn't exactly a very reliable way to tune the fog settings in Doom64EX. However I appreciate the difficulty of the problem.

Did Nintendo/SGI ever publish the exact math calculations for the ramps used for fog et al on the N64? I would have expected to find this info in their SDK at the time. The best I've been able to find for you is this patent filed by Nintendo in 2000 for Achromatic lighting. It is jam packed with technical details about the technique, however I doubt it has anything at all to do with the N64 being as it was filed much later than the N64's release date. I expect this was instead for the GameCube or something completely unrelated.

Edit: Hang on a sec, I seem to recall you said you were able to patch a rom image of the original game? If it is possible to load an altered version and run it on real hardware; it would theoretically be possible to recreate the actual lighting equation by sampling the results at regular intervals (it's derived primarily from object position in the zbuffer). This could be done using a specially constructed map and texture set. A lot of work undoubtedly but it would be pretty accurate.

Share this post


Link to post
DaniJ said:

I hope you don't mind me saying but that isn't exactly a very reliable way to tune the fog settings in Doom64EX. However I appreciate the difficulty of the problem.


haha, yeah I do have a habit of getting sloppy sometimes. But that isn't really going to be final anyways but just more of a half-ass way to tune it until a desirable setting is met.

According to the N64 development SDK, their fog system is based on fog coordinates rather than using the depth buffer. So the fog is calculated per vertex.

Now here's what I am really trying to figure out, the N64 max far plane is always 1000, but the near plane values are treated differently. For example, a near plane value of 950 isn't exactly what you expect. Instead it seems to have an effect on both the near plane AND the overall thickness of the fog.

The macro in the N64 SDK thats used to make the fog is something like this:

#define gsGuSetFogPosition(min, max) \
((128000 / (max - min)) << 16) | ((500 - min) * 256 / (max - min))
In the disassembly, the following near/far settings are used in the following maps:
// Normal fog (black)
gsGuSetFogPosition(985, 1000);

// Watch Your Step & Playground
gsGuSetFogPosition(975, 1000);

// Into The Void, Cat and Mouse, & Hardcore
gsGuSetFogPosition(975, 1000);

// Title map
gsGuSetFogPosition(995, 1000);
I've hacked and tweaked the near settings in the rom and it seems like 500 results in complete fog as in near plane of 0 and full thickness. 995 seems to be little to no fog. Anything below 500 seems to inverse the fog.

Share this post


Link to post

Sadly that doesn't tell us much. That macro is clearly combining the results of two relationally dependent functions into the high/low bytes of a 32bit word which is presumably handed off to another function that splits the two values out again. However we don't know how those values are being treated. Although this suggests that the fog is indeed linear on the N64 hardware (as opposed to exponential) and that by utilizing a per-vertex fog extension in OpenGL you should be able to match the results by putting your fog values through the same functions and simply tweaking the global near/far values.

I've taken the liberty of plotting those for you:

Produced with the Online graph plotter

Share this post


Link to post

Sadly, the SDK has little to no documentation on how these functions work, and there's hardly any comments in the source to explain how to use these macros. The combined values from the fog macro are parsed by the RSP which is in the hardware.

Share this post


Link to post

I know you said that all existing emulators don't handle the fog correctly however I found the following in the RSP microcode interpreter for mupen64:

/* danij: clearly this is reading the values output by the SDK's gsGuSetFogPosition macro, high and low respectively */
fm = *(currentCommand+1) >> 16;
fo = (short)(*(currentCommand+1) & 0xFFFF);
[...]
float alpha0 = ((z0 / 32.0f - viewport.vtrans[2]) / viewport.vscale[2]) * fm + fo;
float alpha1 = ((z1 / 32.0f - viewport.vtrans[2]) / viewport.vscale[2]) * fm + fo;
float alpha2 = ((z2 / 32.0f - viewport.vtrans[2]) / viewport.vscale[2]) * fm + fo;
if(alpha0 < 0) alpha0 = 0;
if(alpha1 < 0) alpha1 = 0;
if(alpha2 < 0) alpha2 = 0;
if(alpha0 > 255) alpha0 = 255;
if(alpha1 > 255) alpha1 = 255;
if(alpha2 > 255) alpha2 = 255;
cache[a].c.setAlpha(alpha0);
cache[b].c.setAlpha(alpha1);
cache[i].c.setAlpha(alpha2);
I seem to recall you saying you had a tooled up version of mupen64 that you were using as a development aid? Now, it seems to me that this is simply interpreting the fog values as alpha which doesn't seem right at all. Exchange the setAlpha calls for setColor and it might be a different story.

Share this post


Link to post

I don't even think its possible to set alpha for fog. Though I think somewhere in the N64 docs mentioned about alpha but never explained what the formula was.

Also I am using a hacked Project64 emulator which only emulates the code as the rendering stuff is handled through a plugin. Unfortunately, the source code for that was never available. I have the source for Rice's video plugin but the logic for the fog is very incorrect.

Share this post


Link to post

Did some research and found that the N64 is in fact using exponential fog. Also found some information on how the fog is computed:

*
 * FOG macros
 * fm = z multiplier
 * fo = z offset
 * FOG FORMULA:    alpha(fog) = (eyespace z) * fm  + fo  CLAMPED 0 to 255
 *   note: (eyespace z) ranges -1 to 1
 *
 * Alternate method of setting fog:
 * min, max: range 0 to 1000: 0=nearplane, 1000=farplane
 * min is where fog begins (usually less than max and often 0)
 * max is where fog is thickest (usually 1000)
 * 
 */
So the min/max settings is just another way to compute the fog but its still using the exponential formula.

Here's what I have so far:
http://img38.imageshack.us/i/72580101.jpg/

Btw, the Mupen64 emulator doesn't even render the fog in Doom64. So much for that :P

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
×