NEWEST 64DOOM ROM BUILDER TOOLKIT RELEASE DATE: 2016 NOVEMBER 23 "Newer, much faster Doom engine binary with mostly-fixed save game handling. There is a known bug where if you save a game, start a New Game from the Doom menu, then try to load your saved game, the game crashes. Loading games from the initial Doom main menu works fine however (reset the console after starting a new game if you wish to re-load your last saved game instead)." ----- I have released all source code and build artifacts for 64Doom through a GitHub project that can be found at: https://github.com/jnmartin84/64doom as required by the GPL. Please find linked below the latest release of the 64Doom ROM creator toolkit. https://github.com/jnmartin84/64doom/blob/master/64DOOM_BUILDER.zip?raw=true PLEASE READ THE INCLUDED "README" FILE CAREFULLY BEFORE ASKING WHY YOUR BUILDS DON'T WORK. PAY SPECIAL ATTENTION TO THE LIST OF WAD FILENAMES. ----- New features: 0) Gamma correction is now user adjustable 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. 4) Draws in 16-bit color mode instead of the 32-bit color mode used previously. ----- 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. ----- Notes: 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. ----- N64 controller mapping: =============== D-PAD UP / ANALOG STICK UP :: move forward -- D-PAD DOWN / ANALOG STICK DOWN :: move backward -- D-PAD LEFT / ANALOG STICK LEFT :: turn left -- D-PAD RIGHT / ANALOG STICK RIGHT :: turn right -- L TRIGGER :: strafe left -- R TRIGGER :: strafe right -- C LEFT :: switch to previous weapon -- C RIGHT :: switch to next weapon -- C UP :: toggle auto-map -- C DOWN :: ENTER key -- Z :: toggle run on/off -- A :: shoot -- B :: use (open doors, flip switches) -- START :: ESCAPE key -- L + R :: enable/disable debug output and GOD MODE -- L + Z :: press 5 times in a row to skip to next level -- R + Z :: increases gamma correction Doom 2, newest 64Doom release, direct audio/video capture thanks to Mike.Reiner at Doomworld forums: =============================================================== Doom 2 Ending Sequence, newest unreleased 64Doom build, on my personal N64/64drive: ======================================================= Ultimate Doom, newest 64Doom release, on my personal N64/64drive: ========================================== Doom 2, newest build, on real Nintendo 64 hardware (thanks Borman!): =========================================== Doom shareware with MUSIC, newest build, on real Nintendo 64 hardware (thanks to Borman): ========================================================= Doom shareware, recent build, on real Nintendo 64 hardware (thanks Borman): =============================================== https://www.youtube.com/watch?v=Z3UNtghoYLc Doom 2, older unreleased build, running emulated under MESS: ====================================== http://youtu.be/JnbjASpSscM Some game-play video from a newer build (thanks to Borman for the caputure): ================================================ https://www.youtube.com/watch?v=wUYV56L3I_s Another video capture by Borman (an older build): ============================== https://www.youtube.com/watch?v=MkI4elW730Q HD video of Doom 2 running under N64 emulation in MESS (cell-phone capture): ================================================ http://youtu.be/CkJ8tIjxNPU All videos in one playlist, for comparison purposes: ============================== http://www.youtube.com/playlist?list=PL3y63jnDbX2-z6KNqK7_q49yN7Kzov1J3
I used libdragon, mostly so I didn't have to roll my own ROM filesystem. I have written pixel buffer graphics, sound and input drivers for my own N64 projects in the distant past so I am sure I could get back to that point. The filesystem part always eluded me. -- begin old first post -- I have been seriously working on porting Doom to Nintendo 64 for a few months now. I made my first attempt at it almost 15 years ago and made little headway. I've made a large amount of progress in the last 3 days. It boots and runs up through the main menu (first background transition is where it locks up). It works with the commercial version of the first Doom (DOOM.WAD) -- I think this is "The Ultimate Doom?" Some issues with trying to port this: lack of real debugger with symbol support (the debugger in MESS is not too useful in this regard) -- took forever to figure out why textures/patches weren't being found (memcpy wasn't working correctly in many cases, implemented my own) it runs really slow (about 4 minutes from first text on screen to rendering the game graphics -- the slowness seems to be in resource processing at startup) Will post updates as they come. Working from the old "linuxxdoom" code base as I have experience porting it to several platforms over the years. -- end old first post --
I just un-commented out a bunch of code I commented out as part of my laborious print-debugging process (comment out code til it runs as far as I left the code in). Waiting to see if I get game graphics now.
I messed with a bunch of game variables before so I need to do a diff and see what I need to change back, but I think I should have something that is playable in a month's time.
Consider this the product of a few nights work starting on Tuesday and I would say not too shabby. Hope I can get it playable asap.
I got past the hanging at title screen (had the wrong game version set in the code; had to switch to retail for Ultimate Doom instead of registered as I had it set to before). I am implementing controls now to see if I can get to gameplay!
Locks up when I select 'NEW GAME.' I saw the episode selection menu one time. Not sure where the lock up is now.
I will take a look at it, but I am not too sure that any of those changes will impact my work in a significantly meaningful way. The most important thing I could get would be better debugging capabilities but that is more a limitation of my testing environment (running and debugging built ROMs in MESS) than the libraries I am using.
My next step is probably going to be trying to hack up the debugging code in MESS so that I can load symbol information into it (at the very least function labels).
Awesome job, man! Keep up with the work (if you release a homebrew cart of your ports, maybe I could get one) dude!
Demos don't run in attract mode because they report as being for a different game version. Another step closer but no gameplay yet.
Menus make it crash. If I force it to 'autostart' it starts the first map and it is playable! Next step is figuring out why controls are unstable and seeing if it works with the shareware WAD. When I get a shareware build running I will post a v64 file for people to test with.
It runs pretty smoothly even though it is under emulation. I took a video with my phone I am trying to figure out how to post. Mostly to demonstrate the Playstation 1-era loading times haha.