Page 7 of 10

Re: Doom64 DS

Posted: Wed May 09, 2012 1:25 pm
by elhobbs
Kaiser wrote:Been thinking though, it would be nice to be able to leverage all VRAM banks. There has to be a way to use them and at the same time, wait for the frame to finish drawing before using the banks again.
another option would be to use the hardware display capture. you would need to use one vram bank for the display capture then switch the display mode to 2d. this would allow the use of 3 vram banks for textures, but it would drop the max frame rate to 30 fps.

Re: Doom64 DS

Posted: Wed May 09, 2012 4:17 pm
by Kaiser
If I were to use all four banks, would it help if I waited for REG_VCOUNT being >= 192 or <= 215 in between DMA'ing each bank?

Re: Doom64 DS

Posted: Wed May 09, 2012 4:52 pm
by elhobbs
Kaiser wrote:If I were to use all four banks, would it help if I waited for REG_VCOUNT being >= 192 or <= 215 in between DMA'ing each bank?
yes, you can load during this window without issue. but you can only move so much data during that time. if you tried to wait for vblank multiple times then you would need to be careful not to remove something that is in use as it would get used during the next render. I want to say that you can load about 64k of data during 3d vblank.

there is this. it says that you can write to VCOUNT. it might be possible to copy a little and set VCOUNT repeatedly until everything is moved... maybe... no idea if it is worth trying.

Re: Doom64 DS

Posted: Thu May 10, 2012 8:10 pm
by Kaiser
Tried both waiting for the right VCOUNT value as well as setting REG_VCOUNT to 192 for each 64k of data I dma to the VRAM. Still got flickering unfortunately but at this point now, I can live with just 256kb of data to work with. The only real issue I am getting now is the final level due to the large amounts of sprites present on the screen though I am still going to add some sort of sprite tiling/breakup to minimize the padding just to see how much it'll help.

For the most part, it's playing out pretty well now (except for the last level that is...).

Re: Doom64 DS

Posted: Fri May 11, 2012 8:42 pm
by mtheall
With some modifications, I was able to build wadgen on my Linux box. I was able (apparently) successfully to create the iwad. I was able to compile the Doom64.nds, however, it doesn't appear to be working.

This is the output I get:

Code: Select all

Z_Init
W_Init
R_Init
P_Init
ST_Init
S_Init
And then nothing happens (the top screen is black). If I press any of the following buttons, I get this output:

Code: Select all

Start: W_GetNumForName: MAP00 not found!
A: nomonsters on/off
B: lockmonsters on/off
Up/Down: Map: #
Start after Up/Down: Loading level... (resets console) P_GroupLines: miscounted
Maybe I set up something wrong. Any ideas?

Re: Doom64 DS

Posted: Fri May 11, 2012 10:10 pm
by Kaiser
You're getting the P_Grouplines error each time you select a map? Sounds like wadgen isn't properly generating the game data. Are you using the Wadgen version from the DS branch?

Re: Doom64 DS

Posted: Fri May 11, 2012 10:11 pm
by mtheall
Yes it is the wadgen from the DS branch. I had to modify it to compile on Linux though.

Re: Doom64 DS

Posted: Sat May 12, 2012 12:49 am
by Kaiser
Very odd. I'll need to add some sort of checksum comparison then. Not sure what went wrong with the IWAD output.

Re: Doom64 DS

Posted: Sat May 12, 2012 12:57 am
by elhobbs
Does map00 even exist? I think yOu have to press up(or down) to change it to 1 then press start.

Re: Doom64 DS

Posted: Sat May 12, 2012 1:57 am
by mtheall
I don't think there's a map 0, because pressing up/down stops at 1 for minimum. But the other maps I get that other error about miscount. I'll grab the md5sum of the iwad and post it later.