Super FX chip recreation
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
Super FX chip recreation
I've always wondered- will it be hard to recreate the entire Super FX chip and produce a new working cartridge using a Super FX chip?? I suppose the world IS able to do it now, there are many reprogrammable processors, oscillators etc. that are fast, can emulate everything and can do many things. Of course even if it is possible to recreate it now, how much time and effort will it take to achieve that?? I know that Super FX is a processor that does something that ROM tells it to do, so even today, it still remains a challenge to program another processor to emulate the whole thing, meaning program the entire specific assembler for that, emulate specific commands etc.
Another question is- is Super FX chip fully documented already or are there still questions about it that remain unanswered?? In order to recreate the chip, the 1st step is to know how all the functions work of course
What do you think about all of that??
Another question is- is Super FX chip fully documented already or are there still questions about it that remain unanswered?? In order to recreate the chip, the 1st step is to know how all the functions work of course
What do you think about all of that??
Re: Super FX chip recreation
On an FPGA, I'm sure. The parts cost for that is what I don't know, plus it would have to be made by someone who has the talents for it. On a really fast MCU/DSP.. maybe. I'm totally inexperienced with the SFX and what it does best etc., but I have a feeling you'd get more bang for the buck using a modern DSP and running native code on it. Like now you can get stuff like a 200mhz, 2Mbyte ROM, 512kB RAM, with SIMD instructions, w/ FPU even, for around $10.
Re: Super FX chip recreation
So you say that it would be even easier to use a straightforward powerful DSP chip and it will do all the job?? 10$ for the chip is still relatively low in this case in my opinion. Unfortunately I don't have any experience with them
. But either way, if it appears to be that easy, I suggest that someone else would already do that...
-
qwertymodo
- Posts: 775
- Joined: Mon Jul 02, 2012 7:46 am
Re: Super FX chip recreation
An FPGA is what you want for this, not a DSP/uC. An FPGA is 100% capable of this, the problem is that the chip hasn't been reverse engineered fully enough at a low enough level to implement the necessary HDL (ikari_01 has been working on it for the SD2SNES, but so far it's not working yet). So is it possible? Absolutely. Is it simple? Not remotely. As far as cost, if you want single-game repros, you're looking at around the price of an INL board + ~$20 (ignoring R&D costs).
Re: Super FX chip recreation
Well, I mean the hardware would be relatively easy, but the software is another matter. There aren't very many people making SNES games. If there was at least one person who was serious about using something like this for a new game, I'd definitely be interested in doing the hardware-side of the thing. Note that I'm talking about new games only, I don't give a half a crap about repros/bootlegs.
This is the $10 chip I had in mind (guess it's more like <$9):
http://www.microchip.com/wwwproducts/De ... 2048EFG064
Price goes down to more like $6.50 with smaller memory versions, like 512kB ROM / 128kB RAM. No changes would be needed on the board, just drop on a different chip.
I'm sure there is a similar chip with an ARM core, but I'm not familiar with it. This PIC32MZ EF is what I've been looking into for some other projects, so that's what I'm most familiar with. But this class of MCU/DSPs haven't been around for long, just in the past few years.
People have made similar carts for other systems, there is the Harmony cart for Atari 2600 with a 70Mhz ARM7. Back in 2004 I made an NES cart with a PIC18F which ended up being used for MIDINES only, not any games unfortunately. But the performance of that was a joke compared to what's available now, it's just crazy.
This is the $10 chip I had in mind (guess it's more like <$9):
http://www.microchip.com/wwwproducts/De ... 2048EFG064
Price goes down to more like $6.50 with smaller memory versions, like 512kB ROM / 128kB RAM. No changes would be needed on the board, just drop on a different chip.
I'm sure there is a similar chip with an ARM core, but I'm not familiar with it. This PIC32MZ EF is what I've been looking into for some other projects, so that's what I'm most familiar with. But this class of MCU/DSPs haven't been around for long, just in the past few years.
People have made similar carts for other systems, there is the Harmony cart for Atari 2600 with a 70Mhz ARM7. Back in 2004 I made an NES cart with a PIC18F which ended up being used for MIDINES only, not any games unfortunately. But the performance of that was a joke compared to what's available now, it's just crazy.
-
qwertymodo
- Posts: 775
- Joined: Mon Jul 02, 2012 7:46 am
Re: Super FX chip recreation
A microcontroller is not the right tool for the job. The SuperFX is a processor with its own ISA, with very particular timings for its instructions, etc. Trying to implement this on a microcontroller, which is a processor with an existing (and in the case of MIPS, completely incompatible) ISA, is literally real-time emulation, which isn't realistically feasible. An FPGA allows you to implement the hardware at the logic level in HDL, essentially you can actually clone the hardware for real, ISA, pipeline, cache, etc. which would be necessary to make this work properly. This is the chip the sd2snes uses, but you probably wouldn't need anything quite that large for a single IP core.
Re: Super FX chip recreation
Sorry, re-reading my posts I wasn't clear that I'm interested in re-creating the SFX "in spirit", not in emulation. That's what I meant by "running native code" and "for new games only". The game would have to target the new chip, written in C and/or MIPS asm. The chances of anyone wanting that are slim indeed, but I figured I'd put the idea out there. I'm sure it would perform better than the SFX.
Re: Super FX chip recreation
I'd say a better bet is writing your own expansion chips in a hardware description language and using the SD2SNES to run it. Is the SD2SNES designed for end-user virtual expansion chips, or is the MSU-1 baked into the firmware? I know there's the MSU-1, a "virtual" enhancement chip used to create things like the CD-quality audio and FMV in the MSU1 Zelda hack.
Re: Super FX chip recreation
All interesting ideas. The FPGA on the SD2SNES could be used be used to develop support for the remaining unsupported coprocessors (i.e. SA-1, SuperFX) and could be used to define a new community designed graphics accelerator. A new graphics accelerator wouldn't have to be a complicated CPU with its own ISA (although it can). All it would need to do is provide some capability that would be interesting to leverage in homebrew or rom hack games and/or help alleviate the burden of graphics development. I'm fairly new to snesdev so I wouldn't know what types of transformations are lacking or what types of processing effects would be most popular to the community, but designing the hardware on the SD2SNES platform seems like a neat idea to me.
-
qwertymodo
- Posts: 775
- Joined: Mon Jul 02, 2012 7:46 am
Re: Super FX chip recreation
The programming files for the sd2snes FPGA are stored on the SD card, so you absolutely could develop your own custom coprocessor core, I just don't know how the loading is done (I'm guessing it's handled by the menu, which is an SNES application, so you might have to add support for your new core in there, I don't know... but the code is all here so even that is almost certainly doable).
Re: Super FX chip recreation
> I know there's the MSU-1, a "virtual" enhancement chip used to create things like the CD-quality audio and FMV in the MSU1 Zelda hack.
The funny thing is, there's zero programmability in the MSU1. It's literally just two giant ROM chips. One you read over the B-bus, and one that streams over the audio input pins on the cartridge connector.
I very intentionally stayed away from trying to implement a true processor. I've always thought that would be really cool, but there's no reason at all the two have to be tied together into one unit.
You could certainly create a coprocessor that far exceeds the power of the SFX if you wanted to.
But ... keep in mind, you're always going to be limited on the SNES by the PPU. The absolute best quality you will ever be able to achieve is what you can see in video files played back by the MSU1: 256-color, 20fps, 240x144 video.
No matter how clever you are, that's never going to look even **remotely** impressive with today's hardware and games. You could put enough power in a cart to run Dolphin, and scale the video down to display through the PPU, but ... who in the world would even want such a thing? Especially when everyone else will just accuse you of cheating, anyway.
I think the best thing anyone could make for the SNES would be a processor powerful enough to run programs written in C. The underlying implementation would handle all the SNES<>PPU interactions, and do all audio through the expansion pins only. Kind of like a BIOS that entirely handles the SNES-side hardware. Your program would never actually talk to the SNES itself.
The idea would be to create a cart and an SDK such that ordinary people could make compelling SNES-era games without the monstrous complexity of learning how to work with all the archaic and nightmarish processors inside the SNES.
Instead of mass producing the hardware over and over for each game, put a USB port on the side (not many people have SD card writers for their PCs), and let people share their game programs with each other online.
Even this would be incredibly niche, but done right, if you're really, really lucky, you might get SNES homebrew on par with Genesis homebrew dev. But, probably not. It's much too late now.
It'd be a dumb idea anyway. The only novelty would be inserting a cartridge into your legitimate, real SNES console, and seeing your games playing on it.
The only real work we're going to see on the SNES are enhancements to existing games, and maybe ports. Which is exactly what the MSU1 was for.
I think the next low-hanging fruit would be for someone to make a new gamepad that connects to a real SNES, but has rumble support. I'd be willing to emulate said controller in higan, and people would have the option to craft game patches to add in rumble support. Not very impressive, but there's not much left to do. Video and audio are maxed out, so input's the final piece.
The funny thing is, there's zero programmability in the MSU1. It's literally just two giant ROM chips. One you read over the B-bus, and one that streams over the audio input pins on the cartridge connector.
I very intentionally stayed away from trying to implement a true processor. I've always thought that would be really cool, but there's no reason at all the two have to be tied together into one unit.
You could certainly create a coprocessor that far exceeds the power of the SFX if you wanted to.
But ... keep in mind, you're always going to be limited on the SNES by the PPU. The absolute best quality you will ever be able to achieve is what you can see in video files played back by the MSU1: 256-color, 20fps, 240x144 video.
No matter how clever you are, that's never going to look even **remotely** impressive with today's hardware and games. You could put enough power in a cart to run Dolphin, and scale the video down to display through the PPU, but ... who in the world would even want such a thing? Especially when everyone else will just accuse you of cheating, anyway.
I think the best thing anyone could make for the SNES would be a processor powerful enough to run programs written in C. The underlying implementation would handle all the SNES<>PPU interactions, and do all audio through the expansion pins only. Kind of like a BIOS that entirely handles the SNES-side hardware. Your program would never actually talk to the SNES itself.
The idea would be to create a cart and an SDK such that ordinary people could make compelling SNES-era games without the monstrous complexity of learning how to work with all the archaic and nightmarish processors inside the SNES.
Instead of mass producing the hardware over and over for each game, put a USB port on the side (not many people have SD card writers for their PCs), and let people share their game programs with each other online.
Even this would be incredibly niche, but done right, if you're really, really lucky, you might get SNES homebrew on par with Genesis homebrew dev. But, probably not. It's much too late now.
It'd be a dumb idea anyway. The only novelty would be inserting a cartridge into your legitimate, real SNES console, and seeing your games playing on it.
The only real work we're going to see on the SNES are enhancements to existing games, and maybe ports. Which is exactly what the MSU1 was for.
I think the next low-hanging fruit would be for someone to make a new gamepad that connects to a real SNES, but has rumble support. I'd be willing to emulate said controller in higan, and people would have the option to craft game patches to add in rumble support. Not very impressive, but there's not much left to do. Video and audio are maxed out, so input's the final piece.
Re: Super FX chip recreation
Like maybe a 16.8 MHz ARM?byuu wrote:I think the best thing anyone could make for the SNES would be a processor powerful enough to run programs written in C.
I believe that's called a "GBA flash cart" and a "devkitARM".The idea would be to create a cart and an SDK such that ordinary people could make compelling SNES-era games without the monstrous complexity of learning how to work with all the archaic and nightmarish processors inside the SNES.
Something that EFA-Linker does. The first version had a proprietary B receptacle, and the second had standard USB mini-B.Instead of mass producing the hardware over and over for each game, put a USB port on the side
My last three laptops and last desktop computer all came with built-in SD card writers.(not many people have SD card writers for their PCs)
And I can insert a GBA flash cart into my legitimate, real GameCube console with a Game Boy Player accessory. In fact, most of the 240p- and 480p-related moaning I hear about GameCube is directly related to Game Boy Player.The only novelty would be inserting a cartridge into your legitimate, real SNES console
Re: Super FX chip recreation
> Like maybe a 16.8 MHz ARM?
Sure, that may be enough power. Feels a bit needlessly spartan, though.
About the only benefit beyond what you can already do, special effects wise, would be to have stronger computational abilities. If the RPi Zero can put a dual-core 900mhz ARM or whatever on a $5 complete system, then surely you can use something like that too.
> I believe that's called a "GBA flash cart" and a "devkitARM".
I believe that's called a GBA, not an SNES. The whole point was "make SNES games." If you can move the goalposts to an entirely different system, then just use a PC.
> My last three laptops and last desktop computer all came with built-in SD card writers.
Whereas the ten computers in my house have zero SD card writers. And every single one has USB ports.
Sure, that may be enough power. Feels a bit needlessly spartan, though.
About the only benefit beyond what you can already do, special effects wise, would be to have stronger computational abilities. If the RPi Zero can put a dual-core 900mhz ARM or whatever on a $5 complete system, then surely you can use something like that too.
> I believe that's called a "GBA flash cart" and a "devkitARM".
I believe that's called a GBA, not an SNES. The whole point was "make SNES games." If you can move the goalposts to an entirely different system, then just use a PC.
> My last three laptops and last desktop computer all came with built-in SD card writers.
Whereas the ten computers in my house have zero SD card writers. And every single one has USB ports.
Re: Super FX chip recreation
Then perhaps I should have been more explicit about my intent by using the exact snowclone: "If you want GBA, you know where to find it." It's the closest notable existing product combining a C-friendly CPU with a Super NES-class PPU. The one thing it doesn't have is controller 2, as it's intended for use in a LAN.
Re: Super FX chip recreation
I don't get why people often suggest targetting another console/computer because it may suit a particular type of program better than the original intended platform. More often than not, people choose a platform based on their personal experiences with it, and the desire to have their own stuff running on it, not because the hardware is the most appropriate.
When I go to the AtariAge forums to discuss how to do something on the 2600, someone always shows up to say that the concept would work better on the 5200 or the 7800. I don't give two shits about those 2 consoles. I've never even seen those consoles in person, seeing as they didn't have nearly the same international impact as the 2600.
When I go to the AtariAge forums to discuss how to do something on the 2600, someone always shows up to say that the concept would work better on the 5200 or the 7800. I don't give two shits about those 2 consoles. I've never even seen those consoles in person, seeing as they didn't have nearly the same international impact as the 2600.