SNES Doom Source Released! Now What?

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
Nikku4211
Posts: 66
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: SNES Doom Source Released! Now What?

Post by Nikku4211 » Thu Jul 16, 2020 10:34 am

aa-dav wrote:
Thu Jul 16, 2020 7:42 am
Phase two adds a lot of new files: https://github.com/RandalLinden/DOOM-FX
Ooh yeah, thanks for posting about that.

I've recently e-mailed Randy Linden about the possibility of having Freedoom assets in the DoomFX source code.

He said that replacing the assets with those from Freedoom should be easy.

He also gave an outline of what the phases are:
Randy Linden wrote: Hi,. Nikku!

Phase 2 was just posted now -- it's some tools, scripts and revision information files.

Phase 3 will probably be the last bits and pieces

Phase 4 will be data files, graphics, sounds, music, etc.

Then I'll have similar phases for the ToolChain "ACCESS" -- it's the cross-assembler, linker, source level debugger, etc.
So yeah, I might be looking forward to seeing a SNES version of Freedoom sometime in 2021 or something.
tokumaru wrote:
Wed Jul 15, 2020 11:08 pm
At the time Doom was released, turning was the primary form of side-to-side movement, as established by Wolfenstein 3D and earlier games that didn't even have strafing. If I'm not mistaken, strafing only became the norm when aiming with the mouse became the norm. For people who never got into modern FPSs, such as myself, turning with the D-pad feels very natural.
I understand that, but I still think someone should make a patch to swap the roles of the trigger buttons with that of the left and right D-pad directions for those spoiled by source ports and modern 3D PC games like me.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

User avatar
Nikku4211
Posts: 66
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: SNES Doom Source Released! Now What?

Post by Nikku4211 » Thu Jul 16, 2020 3:10 pm

THIS JUST IN: I e-mailed Randy Linden about what he was originally going to upload for Phase 4 and he said this.

Image

Yes, he really asked about my music.

I guess we should be glad he no longer has to go through that long legal progress to licence the Doom assets from Bethesda, thanks for Freedoom.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

User avatar
Señor Ventura
Posts: 113
Joined: Sat Aug 20, 2016 3:58 am

Re: SNES Doom Source Released! Now What?

Post by Señor Ventura » Thu Jul 16, 2020 5:41 pm

Nikku4211 wrote:
Thu Jul 16, 2020 10:34 am
So yeah, I might be looking forward to seeing a SNES version of Freedoom sometime in 2021 or something.
Sorry, What means that?. The most urgent things that needs the game is to improve the perfomance, and increase the resolution.

User avatar
aa-dav
Posts: 91
Joined: Tue Apr 14, 2020 9:45 pm
Location: Russia

Re: SNES Doom Source Released! Now What?

Post by aa-dav » Thu Jul 16, 2020 6:34 pm

Nikku4211 wrote:
Thu Jul 16, 2020 3:10 pm
...I e-mailed Randy Linden...
Cool!
Could you please ask him about 'mode' directive in 65C816 assembler? Google in my hands knows nothing about it (I discovered that he used assembler named 'xa' in Amiga OS, and there is assembler with this name in github with support of Amiga, but it doesn't contain such directive at all).
Main question is: what do exclamation sign ! and @ in this assembler.
Examples of code:

Code: Select all

;
;	* * * * * * *       XBAND INITIALIZE COMMUNICATIONS       * * * * * * *
;
	dbr	$FF
	dpr	0
	mode	'AX'
_XBInitComm
	lda	gSessionIsMaster	; Master/Slave

Code: Select all

	mode	'a'
	mode	'X!'
	ldx	#<XBICsText

Code: Select all

	dbr	?
	dpr	?
	mode	'@X'
ScreenOn
	mode	'a!'
Could he provide some details about it, please?

User avatar
Nikku4211
Posts: 66
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: SNES Doom Source Released! Now What?

Post by Nikku4211 » Thu Jul 16, 2020 8:18 pm

Señor Ventura wrote:
Thu Jul 16, 2020 5:41 pm
Nikku4211 wrote:
Thu Jul 16, 2020 10:34 am
So yeah, I might be looking forward to seeing a SNES version of Freedoom sometime in 2021 or something.
Sorry, What means that?. The most urgent things that needs the game is to improve the perfomance, and increase the resolution.
I know improving the performance and resolution is important, but I don't know if that will be done. I don't even know if people will try or if people will just forget about it and move on once all of the phases are done.

I feel like it's necessary to use Freedoom because it takes much less time since it's meant to be free and under a BSD licence, and you don't need to spend months licencing its assets like you would need to for the actual Doom.
aa-dav wrote:
Thu Jul 16, 2020 6:34 pm
Nikku4211 wrote:
Thu Jul 16, 2020 3:10 pm
...I e-mailed Randy Linden...
Cool!
Could you please ask him about 'mode' directive in 65C816 assembler? Google in my hands knows nothing about it (I discovered that he used assembler named 'xa' in Amiga OS, and there is assembler with this name in github with support of Amiga, but it doesn't contain such directive at all).
Main question is: what do exclamation sign ! and @ in this assembler.
Have you tried e-mailing him yourself? I don't know if I should provide his e-mail address, but I'm sure you can find it if you look hard enough in Google.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

User avatar
aa-dav
Posts: 91
Joined: Tue Apr 14, 2020 9:45 pm
Location: Russia

Re: SNES Doom Source Released! Now What?

Post by aa-dav » Thu Jul 16, 2020 8:56 pm

Nikku4211 wrote:
Thu Jul 16, 2020 8:18 pm
...
Have you tried e-mailing him yourself? I don't know if I should provide his e-mail address, but I'm sure you can find it if you look hard enough in Google.
Well, ok, I didn't want to overburden his mailbox with unknown strangers. But ok, I'll do search.

93143
Posts: 1192
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES Doom Source Released! Now What?

Post by 93143 » Thu Jul 16, 2020 9:45 pm

It doesn't seem like this game supports combined controller+mouse. IMO that would be ideal, except for the minor detail that you need to choose which button you don't have easy access to (unless you bind mouse Y-axis to movement speed or something like that, which could feel weird). If you like autorun, that could help...

As for performance, that won't be a quick hack like the circle-strafing issue. I have a number of ideas, mostly pertaining to increasing the efficiency of the rendering and offloading as much of the game as possible onto the S-CPU. This last will require CPU-ROM, and might benefit from fast SRAM mapped to the system area; you can't do much with just WRAM...

The lack of circle-strafing wasn't the only annoying bug. Getting stuck on geometry is more common in this game than I imagine it is in the PC version. Again, this probably won't be a quick hack; ideally it would require an analysis to determine why it happens and an optimal fix that doesn't tank performance.

I outlined some of my main ideas in the other thread. (Note that I may have been wrong about my compression schemes not hurting performance much - they may both actually speed things up slightly.) I also maintain a private list of fixes and enhancements I'd like to see/implement. As an example, I believe I know how to do fullscreen pseudorandom column wipes between two 8bpp images, like the PC version does...

Sadly I'm too busy (still) to seriously engage this project. This may not always be true, but right now I'm just daydreaming...

Oziphantom
Posts: 859
Joined: Tue Feb 07, 2017 2:03 am

Re: SNES Doom Source Released! Now What?

Post by Oziphantom » Fri Jul 17, 2020 1:09 am

There is nothing on Aminet named ACESS and is a 65816 assembler. I had a look at the ones that were there to see if they matched syntax. They don't. The > and < look to be WDC standard formatting, but looking up their standard shows LONGA ON etc not mode. So this is something custom to this tool chain.

User avatar
aa-dav
Posts: 91
Joined: Tue Apr 14, 2020 9:45 pm
Location: Russia

Re: SNES Doom Source Released! Now What?

Post by aa-dav » Fri Jul 17, 2020 3:11 am

smakefile https://github.com/RandalLinden/DOOM-FX ... /smakefile shows that command to compile 65c816/SuperFX code is:

Code: Select all

xa -a$*.a -o$*.o -s -c65816
That is: single assembler 'xa' is used to compile 65c816 and SuperFX code in *.a files with default CPU mode set to 65816.
If we look at the SuperFX (GSU) sources we see directives to change compile mode to GSU:

Code: Select all

	SECTION	ENGINE_GSUCODE
	cpu	sfx
moreover in rlgsu.a file we can see switching back and forth: https://github.com/RandalLinden/DOOM-FX ... ce/rlgsu.a

Code: Select all

	SECTION	ENGINE_GSUCODE
	cpu	sfx
...
	SECTION	ENGINE_RAMCODE
	cpu	65816	
So, it's definitely custom assembler Randy Linden upgraded for GSU functions (ACCESS component obviously).
There are some other assemblers names 'xa', like https://linux.die.net/man/1/xa , but they didn't fit.

Oziphantom
Posts: 859
Joined: Tue Feb 07, 2017 2:03 am

Re: SNES Doom Source Released! Now What?

Post by Oziphantom » Fri Jul 17, 2020 4:34 am

Oh its just XA. No that does make sense, just you are looking at XA modern 2.X while back then it was 1.0. XA was more Atari than Amiga though, still 68K..

So in XA
! means for 16bit
so if you have
lda $ff
you get
ad ff 00

@ means 24bit
so if you have
lda $ff
you get
af ff 00 00

I guess either the old versions had a mode or they added a mode to theirs to toggle this as default rather than do it per line as you do now.

LucianoTheWindowsFan
Posts: 25
Joined: Mon Jun 22, 2020 9:39 am

Re: SNES Doom Source Released! Now What?

Post by LucianoTheWindowsFan » Fri Jul 17, 2020 9:34 am

Would be useful for porting Minecraft to SNES via the Super FX chip.

93143
Posts: 1192
Joined: Fri Jul 04, 2014 9:31 pm

Re: SNES Doom Source Released! Now What?

Post by 93143 » Fri Jul 17, 2020 11:24 am

Minecraft would take a lot of cheating. Voxel worlds are feasible on Super FX (see Comanche), but a freely destructible voxel world would require some serious shortcuts. Another poster once suggested that even the Gamecube would have trouble with Minecraft simply due to the sheer amount of memory required.

I suppose if you made the bulk of the CPU-ROM area battery-backed SRAM, you could fit a 256x256x64 area with one byte per block. That's 4 MB, but it's not a very large world... and then you have to process it to figure out what to show, and the result has to fit in the Super FX's RAM... It might be possible to rig the Super FX with a sort of MMIO bankswitcher so it could do the processing itself, but it would still be horribly slow unless you could avoid needing the full level data for anything between saves, and it would still be possible to hit pathological cases...

Graphically, I'm thinking a colourmap approach like Doom would work well for distance fading of texture contrast - sort of a poor man's mipmap interpolation. Beyond a certain distance, a cube would essentially be a solid colour, and could then be plotted as a simple voxel instead of a set of textured quads. That's not the hard part, of course...

User avatar
Nikku4211
Posts: 66
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: SNES Doom Source Released! Now What?

Post by Nikku4211 » Fri Jul 17, 2020 2:11 pm

93143 wrote:
Fri Jul 17, 2020 11:24 am
Another poster once suggested that even the Gamecube would have trouble with Minecraft simply due to the sheer amount of memory required.
I guess unless it's DSCraft.

93143 wrote:
Fri Jul 17, 2020 11:24 am
Graphically, I'm thinking a colourmap approach like Doom would work well for distance fading of texture contrast - sort of a poor man's mipmap interpolation. Beyond a certain distance, a cube would essentially be a solid colour, and could then be plotted as a simple voxel instead of a set of textured quads. That's not the hard part, of course...
Yeah, that's a good idea.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

User avatar
aa-dav
Posts: 91
Joined: Tue Apr 14, 2020 9:45 pm
Location: Russia

Re: SNES Doom Source Released! Now What?

Post by aa-dav » Sun Jul 19, 2020 8:17 am

Wow!
Lowercase means 8bit and uppercase means 16bit.

The "!" flag means "generate SEP/REP" instructions

The "@" flag means "Unknown" or "Don't Care" -- it's mostly just for commenting and there shouldn't be a lot of places where you see it used.
This is answer of Randy Linden (!).
Last edited by aa-dav on Mon Jul 20, 2020 12:14 am, edited 1 time in total.

User avatar
Nikku4211
Posts: 66
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: SNES Doom Source Released! Now What?

Post by Nikku4211 » Sun Jul 19, 2020 8:59 pm

aa-dav wrote:
Sun Jul 19, 2020 8:17 am
Wow!
This is answer of Randy [Linden] (!).
Glad you got your answer in time.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

Post Reply