Doom for Nintendo 64

Discussion in 'Nintendo Game Development' started by jnmartin84, Jul 3, 2014.

  1. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
  2. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
  3. Narann

    Narann Member

    Joined:
    Jun 17, 2014
    Messages:
    10
    Likes Received:
    0
    No CRT with a N64 images? Q_Q

    Good job! :)
     
  4. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    0144.png

    This screenshot shows a bug that might be related to music not working in later levels of Doom 2.
     
    Last edited: Aug 12, 2014
  5. olivieryuyu

    olivieryuyu Robust Member

    Joined:
    Apr 9, 2005
    Messages:
    234
    Likes Received:
    2
  6. shmuk

    shmuk Newly Registered

    Joined:
    Mar 31, 2014
    Messages:
    1
    Likes Received:
    0
    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:

    fkz2Atg.jpg

    And this is what I get when I play it on the Everdrive 64:

    yUtkpY9.jpg
     
  7. olivieryuyu

    olivieryuyu Robust Member

    Joined:
    Apr 9, 2005
    Messages:
    234
    Likes Received:
    2
    i don't have this error. weird
     
  8. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    It doesn't work on any emulator except for MESS.
     
  9. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    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
     
  10. UnrealNStuff

    UnrealNStuff Robust Member

    Joined:
    May 20, 2013
    Messages:
    273
    Likes Received:
    81
    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?
     
  11. lovebrown

    lovebrown Newly Registered

    Joined:
    Aug 22, 2014
    Messages:
    1
    Likes Received:
    0
    I would really like to play it.
     
  12. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    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
     
    Last edited: Aug 22, 2014
  13. sanni

    sanni Intrepid Member

    Joined:
    May 30, 2008
    Messages:
    653
    Likes Received:
    77
  14. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    Thanks. I will work on making this work cleanly cross-platform.
     
  15. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    @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. :p

    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.
     
  16. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    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. :eek:

    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));

     
    Last edited: Aug 22, 2014
  17. OzOnE

    OzOnE Site Supporter 2013

    Joined:
    Nov 10, 2011
    Messages:
    538
    Likes Received:
    173
    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.
     
  18. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    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. :eek:

    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.
     
    Last edited: Aug 22, 2014
  19. 47iscool

    47iscool Rapidly Rising Member

    Joined:
    Nov 19, 2013
    Messages:
    90
    Likes Received:
    2
    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.
     
  20. jnmartin84

    jnmartin84 Robust Member

    Joined:
    Nov 11, 2013
    Messages:
    236
    Likes Received:
    31
    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:
     
    Last edited: Aug 25, 2014
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page