Are you sure Doom uses raycasting, I've never played around with the Doom source code so maybe I'm wrong, But this review of the doom source doesn't say anything about raycasting http://fabiensanglard.net/doomIphone/doomClassicRenderer.php
Thanks for the info, friend. I had a feeling the fs code was the load time culprit, but hadn't had time to do a deep-dive of the DFS code yet. On a side note, we have something in common, we both worked on Doom ports to the Dreamcast.
Incidentally, the officially-released WAD games (Doom, Quake, etc.) all do that. They copy the filetable into rdram, byteswapping some data for the N64's sake. When a file is needed they look it up, compute the address, work out the size, load it directly to destination if uncompressed or to a dedicated address for decompression. Some versions load compressed files in one chunk, but a few (and in fact many N64 titles) read them in blocks (0x1000, 0x2000 or 0x4000 bytes are common) at a time and stream in more on-demand.
Impressive! Do you think some of your low level works could be pushed to libdragon? This lib is important for the N64 community but lack of many implementations (specially on the 3D side).
I changed my build to just append the WAD directly to the end of the ROM. I use my memcpy routine to move data back and forth. Everything works. Also it only takes about 1 second to get to the title screen when running in MESS now, instead of 2 minutes. See first post for link to build. Note that I have a new bug now, game freezes when you finish the first level, right when the second level would start loading.
It isn't necessarily the wad file. It worked with dfs. It is an artifact introduced when I changed how I read the wad file from the ROM.
Thanks to ChillyWilly and the help he has provided over on the krikzz forums, I was able to get a version built using raw DMA and no filesystem. It starts up basically instantly and does not hiccup during gameplay anymore. Try it out by downloading from the link in the first post.
New build coming later tonight. No more debug stuff on screen. Supports shift/running. More optimized overall. Possibly performs better?
Digital sound effects are in, they just sound bad/choppy. No music yet, haven't figured out how I am going to do it yet.
Thanks for the work again! One question, how can you upgrade textures from 240p to 480p ? Is it difficult to do? Will it slowdown the game? Thanks.
https://www.dropbox.com/s/3j92ephwldp7j9a/PIC_0695.AVI that is the newest build running on real hardware. game speed is just about there now, sound is still bad on real system but better http://www.mediafire.com/download/9blk3779kh4v34l/doom_sound.7z