Jump to content
IGNORED

it's fun to play on the F. P. G. A.


Recommended Posts

What's concerning about fpga? They are integrated circuits just like anything else. It's up to the manufacturer to select the most economical IC technology for the application.

 

It's true, many people don't need a traditional PC at all. But lots of people do. They are far from dying. And some applications are shifting back to being server/cloud based thin client. Slower cpus are always being replaced with better cpus as prices drop. Is the cheap "home" PC disappearing, I haven't been paying attention. If you don't like windows, switch to linux.

  • Like 1
Link to comment
Share on other sites

I see at the MiST a project that the RaspberryPi is used as modem for the Amiga core. I don't known if the FPGA can handle memory and GPU from the RPi or only used as GPU accelerator as the Amiga AGA.

It doesn't connect to it. The RPi is used as a real modem via serial connection, one could plug it to a real Amiga in principle.

 

As for acceleration it can be done in the FPGA. The port of this core to MiSTer (MiST on a mass produced Terasic board with much bigger Cyclone V FPGA at 110K LE) is able to run Workbench at 720p.

 

If is the same (or upgraded with same compatibility) Spartan6 used at the Mist (XC6SLX9-2TQG144C) would be a nice alternative :)

The MiST is in a different league with a bigger FPGA at 25K LE (Cyclone III), versus 9K LE of the ZxUno, ZX Next, and Papilio boards (Spartan6). For comparison the FPGA in the RetroUSB AVS has 9K LE, and the one in the Analogue NT mini 25K LE.

 

The newer MiSTer project is using a board (DE0-Nano Kit) that's relatively cheap ($130) with HDMI out of the box, so I'm following that with interest.

Edited by Newsdee
  • Like 1
Link to comment
Share on other sites

The MiSTer project suggests that "hybrid-emulation" is a simple mix of FPGA + traditional CPU. Some parts are emulated in the FPGA, and others in the ARM CPU.

Not quite, it's the same as the MiST that uses a tiny ARM CPU for I/O handling. For example it handles USB connectivity, but translates to "real" (electrical) signals for the core. It also handles SD cards (e.g. moving data into RAM as ROM) and provides an overlay to switch cores and other functions, for example.

 

Thats not so much emulation but rather a common UI/framework to normalize interaction with the outside world. Cores could implement something like that in the FPGA (e.g. ZPUFlex) but it's a waste not to use available resources on the Cyclone V.

 

Perhaps you mean that in principle somebody could write an emulator on the ARM and leverage the FPGA to interface to hardware. Yes, that's certainly possible with one of these chips but have not seen it done so far.

 

At least with Open Source its easy to check which side is running things.

Edited by Newsdee
Link to comment
Share on other sites

Not quite, it's the same as the MiST that uses a tiny ARM CPU for I/O handling. For example it handles USB connectivity, but translates to "real" (electrical) signals for the core. It also handles SD cards (e.g. moving data into RAM as ROM) and provides an overlay to switch cores and other functions, for example.

 

Thats not so much emulation but rather a common UI/framework to normalize interaction with the outside world. Cores could implement something like that in the FPGA (e.g. ZPUFlex) but it's a waste not to use available resources on the Cyclone V.

 

Perhaps you mean that in principle somebody could write an emulator on the ARM and leverage the FPGA to interface to hardware. Yes, that's certainly possible with one of these chips but have not seen it done so far.

 

At least with Open Source its easy to check which side is running things.

 

You'd likely not want to emulate things in the FPGA that aren't timing sensitive if you don't have to.

 

USB joysticks are timing sensitive. Real hard drives and floppy drives are, but you typically don't emulate these at that low of level, you emulate them at the interface level. So if there is no need to create a IDE or SCSI interface to connect to a real IDE or SCSI drive, then you just emulate that part with COTS parts.

 

The FPGA mainly needs to emulate the CPU, FPU, GPU, APU parts, and not anything that would be connected to those parts. So you could make it run at the native resolution and audio rate, but you don't need to emulate the analog interface, you can directly connect that to HDMI if it puts out a native compatible output, or you need to create a line-doubler/audio oversampler to make it compatible.

 

But also keep in mind that onboard HDMI IC's in FPGA kits are not line-doublers, they are typically framebuffers that add latency, so that's trivial if you are watching video or demos, but if you're actually wanting to interact with things, then that buffering can't exist.

Link to comment
Share on other sites

 

....

 

But also keep in mind that onboard HDMI IC's in FPGA kits are not line-doublers, they are typically framebuffers that add latency, so that's trivial if you are watching video or demos, but if you're actually wanting to interact with things, then that buffering can't exist.

Well, it can't if the game was built with direct input response tied to 240p60 for example, modern games tolerate (and have to) higher latencies by design .. wireless controllers add latency, current HDMI video chip are usually full frame (and so are most PC cards, you don't get to sync at the line level), the actual console hardly generates native content at the stated res (some do) and there's an upscaling process at play which may again go full buffer ... I was in a presentation of a cloud based game engine for FPS a few years ago and the devs stated that in the end even if they render content at 60 fps they only react to user input at 1/5th to 1/10th of that .... yep you heard me right they basically render at least 6 frames at 60fps before even considering the user actions.

Given the games where made with that in mind it didn't feel bad or anything.

Link to comment
Share on other sites

Well, it can't if the game was built with direct input response tied to 240p60 for example, modern games tolerate (and have to) higher latencies by design .. wireless controllers add latency, current HDMI video chip are usually full frame (and so are most PC cards, you don't get to sync at the line level), the actual console hardly generates native content at the stated res (some do) and there's an upscaling process at play which may again go full buffer ... I was in a presentation of a cloud based game engine for FPS a few years ago and the devs stated that in the end even if they render content at 60 fps they only react to user input at 1/5th to 1/10th of that .... yep you heard me right they basically render at least 6 frames at 60fps before even considering the user actions.

Given the games where made with that in mind it didn't feel bad or anything.

 

MMORPG's typically are designed around the nagle algorithm (200ms) so yes 5fps is what MMORPG's are designed to operate on. However turn the nagle algorithm off and players that are right next door to the data center will get 120fps of input timing resolution TO the server while players in Australia will get maybe 4.

 

That's neither here nor there for FPGA's however. The point of a FPGA is to get that precise timing. I wouldn't be surprised if 2D, Fighting games, SHUMPS and Platformers press in this direction (FPGA input devices with simple analog input.) There is too much inherent input latency on a PC for these games to really be viable due to all the layers they go through to process input and output, that's why RPG and FPS are pretty much what gets PC ports, the game engines (Unity, Cryengine, Unreal, etc) are all designed around PC performance in a single player environment. You can get away with only so much.

 

If game developers were seriously interested in solving the latency problem, they would abandon "cloud" anything. That's the wrong direction. The only reason to "cloud" anything is where you want to secure the game environment from meddling players, data miners and other amateur hacks, while offering a consistent experience to players who are running on extremely sub-par systems. But the catch here is that this is extremely high latency, you're not going to simply connect to an emulator running a Mario game from 1990, you're going to port that Mario game so that it can deal with that kind of input and rendering turn around. This is largely going to be a thing for MMORPG's and Mobile players.

  • Like 1
Link to comment
Share on other sites

In the MISTer and Analogue NT Mini the HDMI upscaling is handled inside the FPGA.

 

That takes up resources (LEs) but can be customized per core if necessary to be more or less complex. As Kevtris pointed out in a few posts it can be tricky due to HDMI asking for precise timings, but it remains flexible versus a fixed IC.

 

USB in my experience isn't a big problem, if I'm not mistaken a good USB circuit polls at 1Mhz and FPGAs will read it immediately. If the ARM is mostly idle other than handling the translation of inputs from USB to GPIO (/SPI), then I wouldn't expect much lag.

Link to comment
Share on other sites

  • 1 month later...

A nice update, there is now a 486 core for MiSTer, which is kind of a successor for the MiST. It's still more of a hobbyist board (compared to MiST that is better packaged as an end user device) but its a nice evolution. The FPGA is pretty big (4x the MiST and Analogue NT mini)

 

https://github.com/MiSTer-devel/Main_MiSTer/wiki

 

The core can boot Win 3.11 and 95, and has basic Sound Blaster support. It supports a couple of hard drive images so is quite easy to setup.

Edited by Newsdee
Link to comment
Share on other sites

 

 

If game developers were seriously interested in solving the latency problem, they would abandon "cloud" anything. That's the wrong direction. The only reason to "cloud" anything is where you want to secure the game environment from meddling players, data miners and other amateur hacks, while offering a consistent experience to players who are running on extremely sub-par systems. But the catch here is that this is extremely high latency, you're not going to simply connect to an emulator running a Mario game from 1990, you're going to port that Mario game so that it can deal with that kind of input and rendering turn around. This is largely going to be a thing for MMORPG's and Mobile players.

That reminds me, there was this really awesome port of Super Mario for DOS, that I downloaded once upon a time. I'll see if I can dig it up. It should run great in DOSBOX. :cool:

Link to comment
Share on other sites

That reminds me, there was this really awesome port of Super Mario for DOS, that I downloaded once upon a time. I'll see if I can dig it up. It should run great in DOSBOX. :cool:

I had that... but I forgot the name. Might still have it in an old backup CD.

Being the digital pack-rat that I am, I have about 2 decades worth of downloaded junk on my computer. I've got two versions of the 16-bit DOS EXE file. Neither runs on Windows 7 x64 but Avast says they are clean. I've got a 64.5kb file (MARIO.EXE modify date 1997) and a 78.0kb file (SUPER_MARIO.EXE modify date 2000). I believe one of them is more complete than the other. Sadly I don't have DOSbox or an older computer to test with, so I can't verify the content.

SUPER_MARIO.zip

 

EDIT: Tested it in DOSBOX and it works! :grin: Super_Mario.exe is simply a self extractor that extracts Mario.exe :lol:

 

1UP tip.

Hop on the first Goomba you see underneath the palm tree. If done correctly, a 1UP will appear! Okay my memory is rusty, but I swear if you jump in the air aided by a goomba bounce somewhere is a 1up in the first stage... :P

 

Link to comment
Share on other sites

  • 4 weeks later...

Didn't Kevtris say that Mist didn't have nearly enough gates to emulate the snes?

 

This is the MiSTer, a successor project built with the Terasic DE10-Nano board, which has a Cyclone V FPGA at 110K LE, HDMI output, 1GB of DDR RAM, and a 900Mhz ARM CPU.

The board itself is available from a big manufacturer, but also needs (for many cores) a little add-on board to give it SDRAM (for faster access).

 

Available cores so far are new PC 486 core (with soundblaster), plus a few ported from the original MiST codebase.

 

Board itself costs $130 and the add-on a few bucks (a few people make them on the forums or you can make your own with the available schematics).

It is a bit more hobbyist-ortiented than the MiST, but isn't too complex to setup and is in active development, It's only been out for 2-3 months as a fully open project.

 

MiSTer wiki: https://github.com/MiSTer-devel/Main_MiSTer/wiki

 

Terasic Board: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1046

Edited by Newsdee
  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...

Being the digital pack-rat that I am, I have about 2 decades worth of downloaded junk on my computer. I've got two versions of the 16-bit DOS EXE file. Neither runs on Windows 7 x64 but Avast says they are clean. I've got a 64.5kb file (MARIO.EXE modify date 1997) and a 78.0kb file (SUPER_MARIO.EXE modify date 2000). I believe one of them is more complete than the other. Sadly I don't have DOSbox or an older computer to test with, so I can't verify the content.

attachicon.gifSUPER_MARIO.zip

 

EDIT: Tested it in DOSBOX and it works! :grin: Super_Mario.exe is simply a self extractor that extracts Mario.exe :lol:

 

1UP tip.

Hop on the first Goomba you see underneath the palm tree. If done correctly, a 1UP will appear! Okay my memory is rusty, but I swear if you jump in the air aided by a goomba bounce somewhere is a 1up in the first stage... :P

 

You could have just linked to the author's site.

 

http://www.wieringsoftware.nl/mario/

 

Source code included.

 

 

 

This is the MiSTer, a successor project built with the Terasic DE10-Nano board, which has a Cyclone V FPGA at 110K LE, HDMI output, 1GB of DDR RAM, and a 900Mhz ARM CPU.

The board itself is available from a big manufacturer, but also needs (for many cores) a little add-on board to give it SDRAM (for faster access).

 

Available cores so far are new PC 486 core (with soundblaster), plus a few ported from the original MiST codebase.

 

Board itself costs $130 and the add-on a few bucks (a few people make them on the forums or you can make your own with the available schematics).

It is a bit more hobbyist-ortiented than the MiST, but isn't too complex to setup and is in active development, It's only been out for 2-3 months as a fully open project.

 

MiSTer wiki: https://github.com/MiSTer-devel/Main_MiSTer/wiki

 

Terasic Board: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=1046

 

The DE10-Nano might be large enough for the SNES. jwdonal's VeriSNES is on a DE2-115 which has 114K LE and the DE10-Nano has 115K. But that might be an apples/oranges comparison.

 

Emulating an x86 up to a 486 might be viable if you can emulate a MT-32/AWE32/GUS, otherwise a FPGA x86 only solves the same latency/timing problem the FPGA consoles have. However just watching that video tells me that that even if the MiSTer emulates a 486, it might not have the space to emulate much else.

Link to comment
Share on other sites

That Indiegogo board will be kind of moot if the Ketris FPGA SNES supports jailbreak firmware post launch. Analog video outputs are fun but not worth the NT Mini pricepoint IMO. If everyone buys Kevtris' stuff then it will get zero support basically. And why the hell are they using Indiegogo instead of Kickstarter? They already have a proto it seems.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...