I don't mean to sound like a noob, but I'm having trouble getting the thing to load at all. This is what I get when I load the rom on Project 64: And this is what I get when I play it on the Everdrive 64:
Notes on newest posted build (2014-08-18 00:22 EST): 0) Using Z to trigger run mode on and off actually works correctly, finally. 1) Press L+Z triggers simultaneously 5 times to skip to next level. 2) Press L+R triggers simultaenously once to bring up debug info and turn on IDDQD + IDKFA, twice to keep cheats and turn off debug info, three times for debug info and no cheats, four times to clear both 3) Sound code has been tweaked to allocate more channels to music, should prevent some weirdness that happened in earlier builds (although music still has some glitches like random repeated sections) 4) Fixed-point, nearest-neighbor scaling in software to 320x240 (for correct aspect ratio) -- will make this switchable later -- note that the scaling is done on the original 8-bit pixel buffer
This is freaking awesome. Better than doom 64 and a 100 times better than doom PS1. If you had a time machine, you should travel back in time, send this to idsoftware and you would make millions. How can i play doom 2 with this? i own all the wads and Iwads but how do i put doom 2 in there?
Here is a toolkit that can help you make your own ROM for any of the official supported versions of Doom (which are: shareware Doom 1, Ultimate Doom, Doom 2, Plutonia, TNT). http://www.mediafire.com/download/dk3vkws8ugc81sj/build_your_own_doomn64.tgz Replace the "doom.bin" file from the above archive with the following to get the absolute latest build that I am running: http://www.mediafire.com/download/fc6n36rjqqf31jk/doom.bin It is for Windows only (unless you know where to find linux versions of n64tool and chksum64?), and assumes you have a Cygwin installation with Bash ready to go. Some text file editing is required to switch versions. I know someone has had success with this at least once: http://krikzz.com/forum/index.php?topic=1886.msg20174#msg20174
@shmuk - I can't think of much that would stop this working on a real N64 with the Everdrive tbh? Do you definitely have the 4MB Expansion Pak fitted, and does this ROM work with the usual NTSC / PAL CIC chip? @jnmartin84 - thanks for the toolkit. This will give people many hours of fun. I wonder if it can handle multi-player on a split-screen though. Does the code check specifically to see if the Exp Pak is installed, or does it assume it can alloc that amount of RAM? OzOnE.
No problem, I'm just glad I can use my skill set to bring joy to others. I have no clue yet. I know that just as far as blasting graphics to the screen goes, I can render the 320x200 game screen twice (in top left and bottom right corners) in 640x480 mode with no noticeable slow-down. I don't know how that will hold up when running the game logic for two players though. I check for the presence of the Expansion Pak, printing out an error message if it is missing. Otherwise, things proceed as normal. The method I use I derived from this source: http://www.emutalk.net/threads/53938-N64-tech-documentation/page2. int available_memory_size = *(int *)(0x80000318); if(available_memory_size != 0x800000) { printf("You do not have an Expansion Pak installed.\n"); printf("DOOM needs the extra memory to run.\n"); printf("Please turn off your Nintendo 64, install Expansion Pak, and try again.\n"); //exit(-1); return -1; } printf("Available memory: %d bytes\n", *(int *)(0x80000318));
Cool, thanks for the reply. Not sure what happened with smuk's console then? Has to be something to do with the SD card? I wish I had more time / motivation to get into N64 coding - I really want to see how fast the RSP / RDP can be pushed. My coding is quite limited though - I usually just do projects with FPGAs / AVRs / PICs, or classic 8-bit / 16-bit machines. If only they'd added external texture RAM to the RCP, I think it would have been SO much faster. OzOnE.
No clue what happened when he ran it, bad copy or something? So many things could have happened... cosmic ray bit flip data corruption for all I know. I'm trying to work on some RSP microcode right now but the resources out there are scarce and hard to correlate together... but I'm doing my damnedest to make it happen.
If I may ask, why v64 byte-swapped? Why not use z64 big endian? I always use Hex Editor Neo to swap them out to big endian if they're not already that way.
Because that's what comes out of n64tool when I run my Makefile (which is based off of a Makefile that came with libdragon, which passes -b to n64tool, which byte-swaps the resulting output file)? :shrug: