Cyberdemon
User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > 64Doom: Classic Doom on N64
Pages (3): [1] 2 3 »  
Author
All times are GMT. The time now is 09:30. Post New Thread    Post A Reply
Jaxxoon R
Senior Member


Posts: 1824
Registered: 03-14


Well, I had no idea this even existed...



Weird. Very weird.

But I can dig it. More info in the video description, I guess. Or here: http://www.assemblergames.com/forum...for-Nintendo-64

64Doom on GitHub can be found at:
https://github.com/jnmartin84/64doom

Last edited by Jaxxoon R on Mar 18 2015 at 07:06

Old Post Jul 27 2014 17:47 #
Jaxxoon R is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 8160
Registered: 07-00


It's just a homebrew port of the original source code release. What's so surprising about this?

Old Post Jul 27 2014 18:59 #
fraggle is offline Twitter account Youtube Twitch Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Doomkid
Senior Member


Posts: 2358
Registered: 06-08


I always thought it would have been a good idea to have Ultimate Doom on the N64, back in the day I mean. From a practical point of view, this doesn't serve much purpose, but just as a fun project, this is awesome. Hope he gets further with it, and customizable controls like in Doom64 are a must!

Old Post Jul 27 2014 19:03 #
Doomkid is offline Youtube || Blog || PM || Post History || Add Buddy IP || Edit || Quote
axdoom1
Member


Posts: 309
Registered: 05-11


The other day, I was playing Doom with a N64 controller hooked up to my computer. This port gives me another reason to buy an Everdrive64 to play games. (the first reason being GoldenEye X)

Old Post Jul 27 2014 20:01 #
axdoom1 is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6491
Registered: 08-00


I wonder if it's going to be open source. So far it is not.

Old Post Jul 27 2014 20:18 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
axdoom1
Member


Posts: 309
Registered: 05-11



Quasar said:
I wonder if it's going to be open source. So far it is not.

The author said: I will be releasing source code as soon as I get it more feature complete.

I hope he won't lose it.

Old Post Jul 27 2014 20:27 #
axdoom1 is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Ed
Senior Member


Posts: 1372
Registered: 07-01


How is this possible with the N64's minuscule texture cache?

Old Post Jul 27 2014 21:48 #
Ed is offline Youtube || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6491
Registered: 08-00



axdoom1 said:
The author said: I will be releasing source code as soon as I get it more feature complete.

I hope he won't lose it.

Every time I've heard that from a project, that's precisely what happens. If it's not completely lost, then the author loses interest and disappears.

Old Post Jul 27 2014 22:16 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Crasger
Member


Posts: 539
Registered: 10-13


So people have only started work on this recently?
That is weird.

I thought this had been done already.

Old Post Jul 27 2014 23:39 #
Crasger is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
axdoom1
Member


Posts: 309
Registered: 05-11



Ed said:
How is this possible with the N64's minuscule texture cache?

The cache is not used. The software renderer has to get every pixels from the textures that are stored in the RAM to draw them to the screen, which is very slow.

Old Post Jul 27 2014 23:44 #
axdoom1 is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Marnetmar
Forum Staple


Posts: 3089
Registered: 09-10


Have the sounds been modified somehow? For some reason everything sounds more beefy and satisfying yet I can't notice any changes in the sounds.

Am I going nuts?

Old Post Jul 28 2014 21:39 #
Marnetmar is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
WildWeasel
Resident Castlevania Super-Fanboy


Posts: 2846
Registered: 07-03



Marnetmar said:
Have the sounds been modified somehow? For some reason everything sounds more beefy and satisfying yet I can't notice any changes in the sounds.

Am I going nuts?

I think, by virtue of them being played back at a lower rate, this is what's making things sound "beefier." Explosions and gunfire will sound bassier, since their "pitch" is shifting down towards the lower ends of the audio spectrum.

Old Post Jul 28 2014 22:41 #
WildWeasel is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14


I'm the developer of this port.

Just want to clarify that I don't keep the only copy of the code on my desktop.

It is version-ed in a revision control system, and regular backups of that are stored off-site ("the cloud" I guess?).

I am actively working on it.

That video posted is a few weeks out of date.

It runs just about full speed, with the original data files (either Ultimate Doom, Doom 2 or shareware Doom).

The only reason the publicly available builds and videos are all shareware is because it is against the law for me to provide ROM files with the commercial game data files built in.

I am still working out an easy system for end-users to package their own ROM with the game data.

Any more questions, let me know. Now that my account was approved, I will check in from time to time.

I usually post at the following two locations:
http://krikzz.com/forum/index.php?topic=1886.new#new
www.assemblergames.com/forums/showt...or-Nintendo-64/

Last edited by jnmartin84 on Aug 8 2014 at 01:18

Old Post Aug 8 2014 01:09 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14




Doom 2 running on Nintendo 64, with full sound, music.

Any of the games supported by the original source code release will work with this port.

Old Post Aug 8 2014 06:27 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Average
Member


Posts: 535
Registered: 05-11


Another system, another Doom port. Good stuff. :)

I know there are probably some obvious things stopping it but is there a way that the commercial WADs could be 'injected' in a similar way that hackers use for Wii virtual console titles?

Regardless, good luck with future development. :)

Old Post Aug 8 2014 07:29 #
Average is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14


I have a rudimentary toolkit that can take the binary executable file, which is game-agnostic but not in a form that will run on the console yet, and appends the WAD file along with a game identifier tag, producing a V64 file for use with a backup unit/flash cart like the Everdrive64. The only issue with it currently is that it requires a lot of dependencies to be already installed that the average end-user probably wouldn't have. That is one of the issues I am ironing out for when I do an official release. I am still looking for somewhere to host the project at the moment.

Old Post Aug 8 2014 07:35 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14



Ed said:
How is this possible with the N64's minuscule texture cache?

I am bypassing the dedicated rendering hardware entirely. I use the CPU to lookup the original 8-bit pixels from memory, do a look-up into a color table, then write the pixel directly into the area of memory set in the video registers as the current frame buffer.

It is quick enough that the act of rendering the display to screen doesn't cause the game to run any slower than it does with the display turned off (that is, just running the game logic with no video output).

Old Post Aug 8 2014 18:38 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6491
Registered: 08-00


Hey, I was waiting for your account request to get approved. I wanted to suggest taking a look at the Jaguar Doom source if you've not, as it contains a few console optimizations that you might could adapt if you're still looking to squeeze out more speed.

A simple obvious example is to avoid multiplies where possible (shift by nearest lesser power of two and add in a remainder, for example):
code:
x*5 == (x << 2 + x)
If your compiler is good (better than the one that came with the consoles' SDKs >_>) it may be doing that for you already, of course.

A more advanced example is having a pre-baked lookup table of sprites and their rotations to lump numbers, instead of scanning the wad directory for them at startup, which makes R_Init take less time. This might be a bit harder to do when supporting multiple IWADs though, as you'd need one such table for each supported IWAD. It'd also screw with mod support if you have any plans for the ability to merge those into image builds.

Still might be some stuff in there though. You might also talk to Kaiser, who reverse engineered Doom 64. While it works completely differently, it might also have a few nice tricks hiding in it that could be applicable.

Old Post Aug 8 2014 19:05 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Maes
Why don't I have a custom title by now?!


Posts: 13737
Registered: 07-06



jnmartin84 said:
The only reason the publicly available builds and videos are all shareware is because it is against the law for me to provide ROM files with the commercial game data files built in.

Actually, to be on the safe side, not even the shareware IWAD should be distributed outside its original installation form (aka two floppies, DOS installer and all, or the Doom95 installer). At least I ceased distributing it with my port quite early, due to concerns.

Old Post Aug 8 2014 20:18 #
Maes is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 8160
Registered: 07-00



Quasar said:
If your compiler is good (better than the one that came with the consoles' SDKs >_>) it may be doing that for you already, of course.

It would be best to explicitly check if it already is doing this before resorting to such microoptimisations that obscure the code.

Old Post Aug 8 2014 20:43 #
fraggle is offline Twitter account Youtube Twitch Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14



Maes said:
Actually, to be on the safe side, not even the shareware IWAD should be distributed outside its original installation form (aka two floppies, DOS installer and all, or the Doom95 installer). At least I ceased distributing it with my port quite early, due to concerns.

Good to know... I had a sneaking suspicion that was probably true.

I will have to accelerate the timeline on that "doom builder" toolkit I mentioned in a previous post.

Old Post Aug 8 2014 21:07 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14



fraggle said:
It would be best to explicitly check if it already is doing this before resorting to such microoptimisations that obscure the code.

For one specific example, GCC is already changing power-of-2 mults and divs into bit-shifts for MIPS (d = t*128 becomes sll $d, $t, 7). I've looked at the assembly output.

Old Post Aug 8 2014 21:08 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14



Quasar said:
A more advanced example is having a pre-baked lookup table of sprites and their rotations to lump numbers, instead of scanning the wad directory for them at startup, which makes R_Init take less time. This might be a bit harder to do when supporting multiple IWADs though, as you'd need one such table for each supported IWAD. It'd also screw with mod support if you have any plans for the ability to merge those into image builds.

Honestly, processing time at startup is negligible to nonexistent. R_init is basically instantaneous. You can see in the video how long it takes from the entry point of the code on the cart until the game starts drawing, its under a few seconds.

Old Post Aug 9 2014 03:08 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6491
Registered: 08-00



jnmartin84 said:
Honestly, processing time at startup is negligible to nonexistent. R_init is basically instantaneous. You can see in the video how long it takes from the entry point of the code on the cart until the game starts drawing, its under a few seconds.

Cool. No need for gross hacks then.

Old Post Aug 10 2014 22:52 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Kaiser
Doom64 Guru


Posts: 2899
Registered: 08-00


Interesting. Though I am curious to see how the resources where managed on the N64 hardware...

Old Post Aug 11 2014 00:31 #
Kaiser is offline Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14



Kaiser said:
Interesting. Though I am curious to see how the resources where managed on the N64 hardware...

If you have a more specific question/questions, let me know and I will be happy to provide details.

See: http://krikzz.com/forum/index.php?t...g20328#msg20328
and: http://krikzz.com/forum/index.php?t...g20329#msg20329

Last edited by jnmartin84 on Aug 12 2014 at 06:19

Old Post Aug 11 2014 00:39 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
jnmartin84
Green Marine


Posts: 32
Registered: 08-14


I have been busy at work on this over the last few weeks.

Game speed is better than before, sound and music work well, no save game support yet though.

http://www.mediafire.com/download/5..._OWN_64DOOM.zip

This has a shell script and dependencies for running on Windows. All you have to do is run the script/bat file, enter the number of the game you want to build a ROM for, and it does all of the work. No editing files manually.

Old Post Sep 5 2014 05:40 #
jnmartin84 is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6491
Registered: 08-00


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

Old Post Sep 5 2014 19:09 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Jaxxoon R
Senior Member


Posts: 1824
Registered: 03-14


Ultra Doom Engine? Nintendoom 64?

Old Post Sep 6 2014 00:05 #
Jaxxoon R is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Linguica


Posts: 4999
Registered: 05-00


This is awesome, great work!

Old Post Sep 6 2014 00:46 #
Linguica is online now Twitter account Youtube || Blog || PM || Post History || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 09:30. Post New Thread    Post A Reply
Pages (3): [1] 2 3 »  
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > 64Doom: Classic Doom on N64

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.