Makestation
Fpga expansion cards as an emulator replacements - Printable Version

+- Makestation (https://makestation.net)
+-- Forum: Technical Arts (https://makestation.net/forumdisplay.php?fid=45)
+--- Forum: Technology & Hardware (https://makestation.net/forumdisplay.php?fid=29)
+--- Thread: Fpga expansion cards as an emulator replacements (/showthread.php?tid=3115)



Fpga expansion cards as an emulator replacements - SpookyZalost - July 15th, 2020

Crossposted over at the coffee house.

So it's not really been talked about too much but with awesome fpga based mini consoles like the mega sg available I've started thinking... What would happen if people could get an fpga expansion card to simulate hardware for backwards compatibility purposes.

For example, what if instead of running an emulator, you loaded a mega drive/ genesis core and used an app to load the rom as a cartridge and link it to the fpga.

Crazy I know, or better yet, loading an Amiga core and booting into the simulated Amiga while sharing the drives and such through a kind of passthrough.

What got me considering this was two very real systems back in the day.  The Ibm 286/mega drive/mega cd Sega terradrive and the pioneer laseractive which has a genesis expansion module.  Both used an expansion card of some sort which did passthrough to output stuff effectively having an integrated 2 in 1 setup.

Now I know it's kinda crazy but with how Linux allows dual video cards to have one be passed through to a VM it's not the craziest idea either.

There's also a ton of advantages if it works, like how modern bus speeds are faster than entire systems back in the day.

Just an idea though.


RE: Fpga expansion cards as an emulator replacements - Lain - July 15th, 2020

Calling you a mad scientist is an understatement, but this is actually a genius idea. Literally just use one relatively powerful FPGA to manage video output, but use a different FPGA expansion card to simulate a type of console, since that's been proven to work incredibly well so far.

Visual concept: image found online of expansion boards:

[Image: gZswBXz.jpg]

The back two sets of pins are connected together BTW, top board is a cheap Altera CycloneII board, and AFAICT the bottom one is powered by a Spartan 6 from xilinx.

But you see the idea, the bottom one has the audio and VGA output, but is fully connected to the top one.
You could solder the proper connector for the console emulated to the (front) pins visible in the top board to actually power/get data from the cartridge.

The only limitations I see as of now:
--Although good for CPU tasks, any sort of GPU/graphics manipulation on an FPGA is mediocre, so it's not scalable past the PSX at best.
--Power supply is probably an issue because separate power needed for each card.

But definitely worthwhile to try out.
I wish FPGA's weren't so goddamn expensive. Not to mention Xilinx and Altera are both known to scour GitHub and the rest of the open-source internet and send takedown requests for any code sample that is used on one of their boards (not even the source of the board, just source that can be compiled onto their boards.) So learning to use FPGA's is quite a bit harder for anyone who self-teaches :/


RE: Fpga expansion cards as an emulator replacements - SpookyZalost - July 16th, 2020

Glad I'm not completely crazy lol.  One of the nice things about modern gpus is that they can scale things really well so I'd passthrough the video to them, but for backwards compatibility purposes it'd be awesome to have like a pc98 or Amiga core loaded onto an fpga expansion card and allowing Amiga or pc98 software to run in modern os's, hell even old dos programs would work great if the fpga could handle 16bit compatibility on a 64bit system.

One cool example is the latest vampire card for the Amiga 500, it's an fpga based replacement for the onboard cpu and adds HDMI output to a system from the early 90s.

And here's a prototype accelerator card
[Image: accel.jpg]

Effectively they've bypassed the cpu which is based on a Motorola 6800 and rigged the fpga to communicate with the main board in it's place, adding extra memory and other features as well.

This existing is the other reason why I'd like to see an fpga expansion card for modern PC's.

The accelerator card is like the scaled up crazy version of getting a 286 to 486 adapter and installing a 32 bit 486 dx2 on top of your old 16 bit cpu.

As far as a second fpga for video...

Well since multiple gpu setups are a thing I don't see why not, hell there was a time when sound cards had expansion daughter boards to add extra functionality.  It'd still have to output through the main gpu through passthrough to scale stuff though if only so you aren't stuck with 240p or 640x480 resolution, and then output to the display.

Finally I think the fpga expansion card should have an updated parallel port, 32 bit one even, because it could be used for external connectors for the simulated hardware.

Better yet, gpio, the fpga could then also double as a chip programmer and who knows what else, it opens up some crazy possibilities.

I mean can you imagine if it could simulate an arm cpu like in the raspberry pi or an Arduino and run code on a desktop while using those expansion boards?