Design guidance for 3D Engine on SuperFX

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
Ryoga
Posts: 55
Joined: Wed Mar 16, 2016 2:08 pm
Location: World 9 - Warp Zone

Re: Design guidance for 3D Engine on SuperFX

Post by Ryoga » Sat Sep 26, 2020 7:15 am

I see.

If the tandem SuperFX + MSU-1 works simultaneously in both the old and modern FPGA versions, it is feasible that the same development applies to both versions.

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

Re: Design guidance for 3D Engine on SuperFX

Post by 93143 » Mon Sep 28, 2020 8:37 pm

One thing that worries me about RedGuy's Super FX is that he apparently had to fiddle with it a lot to get it running at about the correct speed. He remarks on the difficulty of getting the parallel processing timing correct here. In principle it should be possible to build an exact functional replica of the chip on the FPGA, but it's not trivial to do and apparently that's not what happened.

I wonder if the accuracy is high enough for homebrew testing... For instance, I'm trying to avoid slowdown as much as possible with my shmup port. It's not a case of hovering at a slightly different average between 12 and 10 fps; it's a matter of being able to hold a reasonably solid 30 (or 60 in some parts), using code that behaves differently from most commercial Super FX games and thus could react differently to the tuning. I may have to use a real Super FX devcart sooner than I hoped ("sooner" relative to the development state of the game, not to any real-world timeline...). Also, I'm wondering if the unusual rendering method I've proposed for an improved SNES port of Doom would perform the same on SD2SNES as on a real chip - it spends a lot of time pulling data from RAM and then running it through the PLOT circuitry back into RAM, and the loop is tight enough to depend pretty heavily on how the access interleaving is done...

The same concern may apply to the SA-1, but since the only SA-1 game in my development pipeline is an F-Zero interquel that I'm never going to get around to making, I'm not as worried about that...

It's probably fine unless you're pushing it right to the edge or doing something really weird.

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

Re: Design guidance for 3D Engine on SuperFX

Post by Nikku4211 » Mon Sep 28, 2020 9:31 pm

93143 wrote:
Mon Sep 28, 2020 8:37 pm
One thing that worries me about RedGuy's Super FX is that he apparently had to fiddle with it a lot to get it running at about the correct speed. He remarks on the difficulty of getting the parallel processing timing correct here. In principle it should be possible to build an exact functional replica of the chip on the FPGA, but it's not trivial to do and apparently that's not what happened.

I wonder if the accuracy is high enough for homebrew testing... For instance, I'm trying to avoid slowdown as much as possible with my shmup port. It's not a case of hovering at a slightly different average between 12 and 10 fps; it's a matter of being able to hold a reasonably solid 30 (or 60 in some parts), using code that behaves differently from most commercial Super FX games and thus could react differently to the tuning. I may have to use a real Super FX devcart sooner than I hoped ("sooner" relative to the development state of the game, not to any real-world timeline...). Also, I'm wondering if the unusual rendering method I've proposed for an improved SNES port of Doom would perform the same on SD2SNES as on a real chip - it spends a lot of time pulling data from RAM and then running it through the PLOT circuitry back into RAM, and the loop is tight enough to depend pretty heavily on how the access interleaving is done...

The same concern may apply to the SA-1, but since the only SA-1 game in my development pipeline is an F-Zero interquel that I'm never going to get around to making, I'm not as worried about that...

It's probably fine unless you're pushing it right to the edge or doing something really weird.
Yeah, FPGA flashcarts are a double-edged sword(that's my new catchphrase now). If the enhancement chips aren't accurate, you might as well just use a hacked SNES Classic or something.

I wonder what's more accurate when it comes to Super FX: BSNES or FXPak?

How would you even get a real Super FX devcart? Don't those things cost thou$and$ on eBay? Or are you going to go Randy Linden and gut a Super FX cartridge?

What even counts as pushing the Super FX chip itself right to the edge anyway?
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

calima
Posts: 1276
Joined: Tue Oct 06, 2015 10:16 am

Re: Design guidance for 3D Engine on SuperFX

Post by calima » Tue Sep 29, 2020 12:20 am

Usually such carts are made by sacrificing an existing game in a satanic ritual. That's how you got to play with a real SA-1, MMC5, MMC3 or MMC1 before anybody had repro chips.

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

Re: Design guidance for 3D Engine on SuperFX

Post by 93143 » Tue Sep 29, 2020 12:32 am

Nikku4211 wrote:
Mon Sep 28, 2020 9:31 pm
How would you even get a real Super FX devcart? Don't those things cost thou$and$ on eBay? Or are you going to go Randy Linden and gut a Super FX cartridge?
By "devcart", I mean something built new around a real Super FX pulled from a real game. Something I can program repeatedly, but not something that will put somebody else's software in between me and the answers I seek. I do not mean an official rare collector's item.

But what game should I kill? I can't use Star Fox; I need a GSU2, and there weren't very many games that used it. Yoshi's Island is probably the best-selling GSU2 game (over 4 million sales according to one source), but I'd feel bad destroying one of those. Winter Gold isn't very highly regarded, but it might be too rare. The only other option is Doom. Does anybody have sales figures for Doom and Winter Gold?
What even counts as pushing the Super FX chip itself right to the edge anyway?
You know how F-Zero X ran at 60 fps? Well, I heard (don't quote me) that it was originally going to use sequenced music. The catch was that the N64 had no sound chip, so it had to render music on either the CPU or the GPU, and for F-Zero X Nintendo found that the music playback consumed 3% of the available compute time. So they decided to prerender the music and stream it from the cartridge to save resources.

My first non-trivial Super FX program was a bullet hell test pattern. There's a famous shmup that has a bullet cap of 640, so I picked that number. I had to get tricky, but I nailed a solid 60 fps (in higan - I can't test on real hardware). Increasing the bullet cap by just 2.5% caused drops.

That is what "pushing right to the edge" looks like.

If you're using 60% of the system's power, like Nintendo claimed Super Mario 64 did, you can mess around a bit with the chip timing and still lock at 30 fps (or whatever your target is). If you're using ~200% of the system's power, like Star Fox, small differences don't matter much because you're pretty much always dropping frames anyway, so if the inaccuracies more or less balance out you'll be fine. But if you're using 98% of the system's power, and the approximations used by the emulation don't happen to balance as well with your code as they do with the games it was tested on, you could end up with a lot more slowdown - or a lot less - than on a real system, and neither of those cases is good when you're trying to test your game's performance.

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

Re: Design guidance for 3D Engine on SuperFX

Post by Señor Ventura » Tue Sep 29, 2020 4:05 am

93143 wrote:
Mon Sep 28, 2020 8:37 pm
The same concern may apply to the SA-1, but since the only SA-1 game in my development pipeline is an F-Zero interquel that I'm never going to get around to making, I'm not as worried about that...
¿¿F-zero with hills and objects aside?? :beer:

Without any doubt we missed an official, canonical, and real second part of the game with enhancement chips instead of an slightly tweaked version of the current f-zero for satellaview.


P.D: How is the doom project going?, Are they having in mind your ideas? :D

User avatar
Ryoga
Posts: 55
Joined: Wed Mar 16, 2016 2:08 pm
Location: World 9 - Warp Zone

Re: Design guidance for 3D Engine on SuperFX

Post by Ryoga » Tue Sep 29, 2020 6:20 am

calima wrote:
Tue Sep 29, 2020 12:20 am
Usually such carts are made by sacrificing an existing game in a satanic ritual. That's how you got to play with a real SA-1, MMC5, MMC3 or MMC1 before anybody had repro chips.
Yes, for example doing this. More details here.

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

Re: Design guidance for 3D Engine on SuperFX

Post by Nikku4211 » Tue Sep 29, 2020 7:05 am

93143 wrote:
Tue Sep 29, 2020 12:32 am
But what game should I kill? I can't use Star Fox; I need a GSU2, and there weren't very many games that used it. Yoshi's Island is probably the best-selling GSU2 game (over 4 million sales according to one source), but I'd feel bad destroying one of those. Winter Gold isn't very highly regarded, but it might be too rare. The only other option is Doom. Does anybody have sales figures for Doom and Winter Gold?
Why'd you feel bad for SMW2 and not Star Fox if both apparently sold 4 million copies?

And no, I can't find anything for Winter Gold or the SNES version of Doom.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

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

Re: Design guidance for 3D Engine on SuperFX

Post by 93143 » Tue Sep 29, 2020 3:18 pm

Señor Ventura wrote:
Tue Sep 29, 2020 4:05 am
¿¿F-zero with hills and objects aside?? :beer:
Oh, I've got tons of ideas, including those two. The game would still be largely Mode 7-based, but not entirely, and there are a bunch of cool tricks you can do if you're willing to special-case stuff. Also, I think the physics and AI could be far better, particularly with modern tools for AI. I was even considering committing to the MSU1 for music, so as to use all 8 DSP channels for sound effects.

Like I said, this is probably never going to happen...
P.D: How is the doom project going?, Are they having in mind your ideas? :D
I'm not sure there is a "doom project". If so, nobody has told me anything.

Randy's still working on getting the archive complete to the point where it can be assembled into a working ROM. Unfortunately he's busy with another project, so it's slow going. The circle-strafe hack came pretty quickly, but that was low-hanging fruit and nothing else has shown up.

I have a bunch of ideas about how to improve Doom on SNES (not all of which I've shared), but I'm pretty busy too, so all I can do is look through the PC and SNES Doom source archives and try to figure out how they work. I may at some point get around to doing more - I'd like to - but right now I have no concrete plans.

Nikku4211 wrote:
Tue Sep 29, 2020 7:05 am
Why'd you feel bad for SMW2 and not Star Fox if both apparently sold 4 million copies?
Because I can't use Star Fox anyway, so there's no point feeling any way about it. You mentioned Star Fox, so I explained why it isn't an option. That's all.

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

Re: Design guidance for 3D Engine on SuperFX

Post by Señor Ventura » Wed Sep 30, 2020 5:54 am

93143 wrote:
Tue Sep 29, 2020 3:18 pm
...
Yes, i have some ideas too, but i'm in a very big project right now since a few years ago, and i have a whole year ahead before i can see myself in the need of learnings to carry out all what i have thinked.


Maybe a game with real backgrounds at 512x224 and/or full 256 color based backgrounds... or scenarios with 4 planes... and it's time to see big cartridges in snes, that's what it was made for...

That art of fighting 2 need to be pushed quite a bit, and fixed some bugs (AI doesn't jumps, only moves from the ground if a move requires it, for pure "animation").

NBA give'n go at 60fps and better depth detection for size sprites, maybe some animations, different characters, more speed...

Speed racer at 60fps would be something incredible to see... and please, this sound...


I just can't dive in all the things that i still have to learn right now (Do that "that" is correct?), but "todo llega" xD

Post Reply