Jump to content
Jaxxoon R

64Doom: Classic Doom on N64

Recommended Posts

I'm curious. How is the arch-vile handled in this port? Does its very presence lag the game?

Also, it would be nice if you could implement boom features (so that we could play freedoom on the n64 for no reason :P)

Split screen would be nice too (or at the very least, system link ala psx doom and jag doom).

Share this post


Link to post
Quasar said:

Have you thought about coming up with a distinct name for your port? Might make it more memorable and easier to find. I wanted to ask before we create a wiki article on doomwiki.org ;)


I'm going with 64doom. I'm not the creative type when it comes to naming projects. I can usually leave that to other people at the office.

I know I put up something on one of the wikis, I don't remember which one at this point though.

Share this post


Link to post

I have officially settled on 64Doom.

Released a new version of the ROM creator toolkit just now.

Download from Mediafire: http://www.mediafire.com/download/tm5kt9getiremgg/MAKE_YOUR_OWN_64DOOM_20140916_2355.zip

Direct video/audio capture of previous build:



HD cell phone video of the newest build:


This has a few changes from the last release.

New features:
1) SAVE GAMES! Save and load full game state using Controller Memory Pak.
2) Analog stick movement (D-PAD still works for movement as well, all other buttons still mapped to the same functions as before).
3) Better instrument samples for music playback.

Differences from last release:
1) WAD files now go under "wadfiles" sub-directory.
2) Identifier files now live under "identifiers" sub-directory.
3) "make_doom.sh" now produces a Z64 file as output instead of a V64 file.

For info and updates, see thread at Krikzz/Everdrive forums:
http://krikzz.com/forum/index.php?topic=1886.new#new

Project soon to go live on GitHub:
https://github.com/jnmartin84/64doom

Thanks.

- Jason

Share this post


Link to post
Mike.Reiner said:

Sweet, I had just tried the previous build on my 64 drive. I'll check this one out tomorrow.


Cool. If you plan on saving your game, make sure you have a fully empty Memory Pak (fully empty meaning 123 blocks free) to devote to Doom alone (one per each game version). I know with the 64Drive you can copy the mempak contents to one of three Virtual Paks. I personally have one Virtual Pak for Ultimate Doom and one for Doom 2.

Share this post


Link to post

Okay, I have two controller paks so I'll empty one of them.

Any plans to implement 'sram' saving, like what many of the higher profile n64 games had?

Share this post


Link to post
Mike.Reiner said:

Okay, I have two controller paks so I'll empty one of them.

Any plans to implement 'sram' saving, like what many of the higher profile n64 games had?


It is something that might happen in the future. The next thing I am working on is to get "Chocolate Doom" modified to run on the Nintendo 64. Once I get through that task and have it meet feature parity with my current port, I will probably add multiple saving "drivers" with a menu choice to select which one is used (Controller Pak, Flash, Password).

No promises though, even the "Chocolate Doom" porting task is tentative.

Share this post


Link to post

I guess if they released Doom like this on the N64 instead of Doom 64 in the past it would not have as much popularity.

Share this post


Link to post
Avoozl said:

I guess if they released Doom like this on the N64 instead of Doom 64 in the past it would not have as much popularity.


Don't get me wrong, I loved (still love) Doom 64, but I always felt a little off about the authenticity factor of it (which makes sense when reading that it was an original property with Doom branding grafted on later).

That, and I made a promise to myself in the late 1990s while lurking around on the Dextrose N64 forums while I was screwing around with little N64 demo programs that I would get the original Doom running on it someday. Just took me 15 years and finishing a CS degree to get there.

Share this post


Link to post

Music sounds kind of odd. Like the samples aren't looping properly. It's also kind of left. Can't get it to work in PJ64 either.

Share this post


Link to post
Jaxxoon R said:

Music sounds kind of odd. Like the samples aren't looping properly. It's also kind of left. Can't get it to work in PJ64 either.


The music does sound weird sometimes, I will give you that. They are 8-bit, 11025Hz samples and the player was originally written to give fast performance on a 68K Amiga system, so I don't think the re-sampling is the most faithful around.

What does "kind of left" mean? It is louder in left channel than right? I think I noticed that a while ago, if so.

It won't run in any emulators except for MESS, because none of them emulate the N64 at a low-enough level accurately enough to support libdragon, which is the library I am coding against. This is not an issue with the port, but the emulators.

Share this post


Link to post
Mike.Reiner said:

Gave it a try:
https://www.youtube.com/watch?v=B9CN6mh6h08

It's pretty functional. Hope to see more soon.

Heh just noticed pressing L and R at the same time brings up that technical information, further still also turns on god mode. Combining Z with that is also level advance too.


Thanks. I tried. ;)

Yeah, L+R brings up debugging info and toggles god mode on and off, L+Z (x5) for skipping levels (for testing purposes).

The video is great, thanks for sharing!

Share this post


Link to post

Thanks, and thank you for working on this.

Side note: You may have noticed I got Ultimate Doom, TNT, and Plutonia in there too.

For some reason it just freezes when I try to play Ultimate Doom or TNT. Doom 2 and Plutonia work just fine though. Not really sure what the deal is with that.

Share this post


Link to post

Not sure. Usually everything except Doom 1 full version seems to work for everyone.
I personally have it built with Ultimate and 2 and they work fine.

I bought Doom 2 on CD at a store in the mid 90s, and got Ultimate Doom from the phone order feature on a Quake shareware CD.

Where does it freeze, and what are the file sizes / MD5 hashes of the WAD files you are using?

update: I tested with Doom shareware, Ultimate Doom, Doom 2 and Plutonia and they all work.

I don't have TNT.WAD or DOOM.WAD (full retail) available to test with.

Share this post


Link to post
Danfun64 said:

I'm curious. How is the arch-vile handled in this port? Does its very presence lag the game?


There is no special handling of anything. This is a straight-up port of the original PC Doom source code. Everything that was in the original is in this, un-cut. The biggest issue in other console ports was the lack of RAM (most of the systems had at most 2MB of RAM; N64 has 8MB available). With the largest WAD file and a "high-quality" instrument sample set, the whole thing fits in a 256Mbit ROM, smaller than the maximum possible 512Mbit. All in all, there really aren't any resource constraints that would dictate cutting out anything. If a commercial developer/publisher were to have worked on this back in the 90s, they would not have had the Expansion Pak to work with, and a 256Mbit cart may have been cost-prohibitive, but I am not bound by any of those limitations.

Danfun64 said:

Also, it would be nice if you could implement boom features (so that we could play freedoom on the n64 for no reason :P)


The source code will be available soon. If someone wants to submit a patch for this, I will be glad to apply it.

Danfun64 said:

Split screen would be nice too (or at the very least, system link ala psx doom and jag doom).


It is my dream to add split-screen mutliplayer, I just don't really know how yet. System link is not going to happen.

Share this post


Link to post
jnmartin84 said:

For Ultimate Doom, I have:

Name: DOOMU.WAD
Size: 12408292 bytes
MD5 hash: c4fe9fd920207691a9f493668e0a2083


The only difference here is mine was just named DOOM.WAD, identical size. Would that affect anything? I'll rename and try later.

Also with regards to controls, have you thought of modeling the controls and options for them around Doom 64? Those were very adequate and would keep things consistent if you were to go between the two.

Share this post


Link to post
Mike.Reiner said:

The only difference here is mine was just named DOOM.WAD, identical size. Would that affect anything? I'll rename and try later.


It makes all of the difference. The wad files have to be named very specifically for each version being built. The proper filenames can be found in the README file. I suspect this may be why people are having problems.

Mike.Reiner said:

Also with regards to controls, have you thought of modeling the controls and options for them around Doom 64? Those were very adequate and would keep things consistent if you were to go between the two.


I am working on getting the code cleaned up for release on Google Code, and making sure I have the rights to release some of the code I have used in my port that I did not write myself. That is my current priority.

After that, I have another control scheme I'm working on. Someone at the Everdrive 64 forum isn't happy with it because it doesn't match his personal reality on what it should be, but that is kinda tough for them because it was never supposed to be this big thing, you know? Some time soon I will release a version that is based around playing with the analog stick / Z button to shoot. Other than that, its not going to change again due to any work on my end because I don't want to write a bunch of new code for this project now that it is coming to a close.

Share this post


Link to post


$ cat README
BUILD YOUR OWN 64DOOM --- Updated 2014/09/16
--------------------------------------------------


In order to build a working 64DOOM Z64 file, you
will need at least one WAD file from the various
versions of Doom. Make sure the WAD file is named
as described in the following section, and located
under the "wadfiles" sub-directory under the directory
that you unpacked "MAKE_YOUR_OWN_64DOOM_YYYYMMDD_HHMM.ZIP"
into.


The supported game types (and their associated,
required WAD filenames) are as follows:
--------------------------------------------------
Doom Shareware -- DOOM1.WAD
Doom Registered -- DOOM.WAD
Ultimate Doom -- DOOMU.WAD
Doom 2 -- DOOM2.WAD
Plutonia -- PLUTONIA.WAD
TNT -- TNT.WAD

... text cut for brevity ...

Enjoy.

- Jason (jnmartin84)

Share this post


Link to post
jnmartin84 said:

It won't run in any emulators except for MESS, because none of them emulate the N64 at a low-enough level accurately enough to support libdragon... This is not an issue with the port, but the emulators.


Figured just as much. Ehg, N64 emulation is such a pain most of the time. I remember Ramyan 2 running at double speed in PJ64 2.1 for no discernible reason. I really hate that emulator, especially the sketchy "donate money to download 1.7" noise.

Share this post


Link to post
jnmartin84 said:

It makes all of the difference. The wad files have to be named very specifically for each version being built. The proper filenames can be found in the README file. I suspect this may be why people are having problems.


heh heh, my fault for not reading the readme, I apologize.

jnmartin84 said:

After that, I have another control scheme I'm working on. Someone at the Everdrive 64 forum isn't happy with it because it doesn't match his personal reality on what it should be, but that is kinda tough for them because it was never supposed to be this big thing, you know? Some time soon I will release a version that is based around playing with the analog stick / Z button to shoot. Other than that, its not going to change again due to any work on my end because I don't want to write a bunch of new code for this project now that it is coming to a close.


Fair enough. This is a copy-paste of one you mentioned on the everdrive forums:


Z -- shoot
A -- weapon backward
B -- weapon forward
C left -- strafe left
C right -- strafe right
C up -- map toggle
C down -- use (spacebar key)
R trigger -- enter key (to select menu options)
Start - escape key (bring up menu / "pause")

That is pretty damn close to my preferred Doom 64 controls, so I'm happy with that. I do want to ask something else on that matter however:
I'm gathering that since you are going for an analog-centric control scheme you will be relying on the stick for control over whether the player walks or runs. This is a good way to go, but what of strafe left and right? Will those move the player at normal walk or run speed? I have to hold R constantly in Doom 64 to keep those at run speed.

In Playstation Doom and Doom 64 you can press either weapon up or down multiple times in quick succession to skip over weapons you don't want to switch to (ie go from Shotgun to Rocket Launcher, skipping over SSG and Chaingun). It's very useful. Any thoughts on that?

Thanks again for working on this.

Share this post


Link to post
Mike.Reiner said:

heh heh, my fault for not reading the readme, I apologize.



Fair enough. This is a copy-paste of one you mentioned on the everdrive forums:


Z -- shoot
A -- weapon backward
B -- weapon forward
C left -- strafe left
C right -- strafe right
C up -- map toggle
C down -- use (spacebar key)
R trigger -- enter key (to select menu options)
Start - escape key (bring up menu / "pause")

That is pretty damn close to my preferred Doom 64 controls, so I'm happy with that. I do want to ask something else on that matter however:
I'm gathering that since you are going for an analog-centric control scheme you will be relying on the stick for control over whether the player walks or runs. This is a good way to go, but what of strafe left and right? Will those move the player at normal walk or run speed? I have to hold R constantly in Doom 64 to keep those at run speed.

That issue had crossed my mind. I'm not sure what to do yet. Maybe I will make the L trigger a run toggle or something. I'll figure something out eventually.

Mike.Reiner said:

In Playstation Doom and Doom 64 you can press either weapon up or down multiple times in quick succession to skip over weapons you don't want to switch to (ie go from Shotgun to Rocket Launcher, skipping over SSG and Chaingun). It's very useful. Any thoughts on that?

Thanks again for working on this.


No problem. As far as the weapon thing goes, I want to say you can just press the weapon forward/back buttons really fast and it should basically do the same thing as you described, it won't really "skip" over them but it will keep moving forward/backward in order through the weapons though. It will stop when you get to the chainsaw if you go backward, or BFG if forward. I can change the code so that it wraps to the next thing (from BFG to chainsaw and vice versa).

P.S. If you have any more suggestions or any bug reports or anything like that, if you have an account over on the Krikzz/Everdrive forums, please post them in the Doom thread over there. Just helps me keep track of things better. There are currently 3 multi-page threads on different forums I'm tracking and it can be a bit much. Thanks!

Share this post


Link to post

Cool.

FYI I am 'ReFracture' pretty much everywhere else on the internet, I have made a post earlier in your thread on the topic of frame rates.

Share this post


Link to post
Mike.Reiner said:

Cool.

FYI I am 'ReFracture' pretty much everywhere else on the internet, I have made a post earlier in your thread on the topic of frame rates.


Got it.

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

×