Introducing the VeriSNES (FPGA-based SNES)

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

And one more. This is the latest (highest quality) Bad Apple Demo running on my FPGA SNES.

https://www.youtube.com/watch?v=9UQby3WLI-o

This will be the last progress update video for a while.

Enjoy!
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Revenant »

Some thoughts on the games you mentioned having input problems in the second video:
  • SMAS SMB1 waits for $4212.0 to be cleared, then writes zero to $4016, but then reads input from $4218+ instead
  • Donkey Kong Country and Equinox write zero to $4016 during screen transitions for some reason, but otherwise don't use it
  • Super Bomberman uses auto joypad read but also uses $4016/4017 afterwards, probably for multitap support
  • Zoop also does reads and writes with $4016 at some point but I don't know what for.
I suspect that writing to $4016 is messing up auto joypad read somehow.
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

Thank you very much for that info! I'll look into that right now! :beer:

EDIT: If I can get inputs working on those games it would definitely be worth doing another update video. :D
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by MottZilla »

jwdonal wrote:And one more. This is the latest (highest quality) Bad Apple Demo running on my FPGA SNES.

https://www.youtube.com/watch?v=9UQby3WLI-o

This will be the last progress update video for a while.

Enjoy!
Is it supposed to have extreme reverb/echo? Or is that the recording or youtube or something else?
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

Yeah, the echo/reverb is quite prominent. That's how it actually sounds. I tend to like how it sounds so I guess I never really thought about it much. :)
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

Revenant wrote:I suspect that writing to $4016 is messing up auto joypad read somehow.
Your assessment was right on! All of those games are working now! Thanks a lot! Here is another update video demonstrating those games.

https://www.youtube.com/watch?v=y138gA-EddM

Enjoy!
Great Hierophant
Posts: 780
Joined: Tue Nov 23, 2004 9:35 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Great Hierophant »

Except for the occasional glitch like the background of SMB All Stars and the lack of transparency in Secret of Mana and F-Zero, it is increasingly hard to believe that there is no genuine Nintendo hardware being used beyond a gamepad (an SD2SNES is being used for games). FPGAs have come a long way indeed.

Can you capture in 60fps? Watching 30fps is really choppy, even 720p/60 is better.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by tepples »

The trouble with high motion on YouTube is that it doesn't serve high-motion in 480p or smaller. You have to self-host in order to make 60 fps available to viewers with displays smaller than 1280x720 or CPUs not fast enough to decode 56 Mpx/s, such as my 1024x600 pixel Atom netbook or a 1024x768 pixel Android tablet. I did the math a few days ago, and self-hosting 1.5 Mbps SD video on AWS S3 costs about $1 per thousand viewer minutes.
User avatar
jwdonal
Posts: 719
Joined: Sat Jun 27, 2009 11:05 pm
Location: New Mexico, USA
Contact:

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by jwdonal »

Great Hierophant wrote:Can you capture in 60fps? Watching 30fps is really choppy, even 720p/60 is better.
I have no way of recording in 60fps I don't think. Either way the file size would be way too big for me to deal with and the uploads would take forever (and they already take several hours as is). Also, most of my videos are actually only 25fps in order to save on file size over 30fps. These videos aren't really meant for ultra HD viewing of SNES games, they're just meant to show people the general progress and new features that I add over time. Cya!
Kismet
Posts: 60
Joined: Wed Nov 30, 2016 9:59 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Kismet »

jwdonal wrote:
Great Hierophant wrote:Can you capture in 60fps? Watching 30fps is really choppy, even 720p/60 is better.
I have no way of recording in 60fps I don't think. Either way the file size would be way too big for me to deal with and the uploads would take forever (and they already take several hours as is). Also, most of my videos are actually only 25fps in order to save on file size over 30fps. These videos aren't really meant for ultra HD viewing of SNES games, they're just meant to show people the general progress and new features that I add over time. Cya!
Hmm... If you are capturing it with a SA7160 (eg Micomsoft SC-512N1-L), you can capture it at 60fps. Most of the external USB devices are just fixed h.264 encoders and are not high quality in the least.

Basically the only way to get high quality video/audio onto youtube requires capturing directly to 50mbit h.264 and then uploading that to youtube. Youtube will wreck anything that isn't at least 720p.

Even when I've uploaded dosbox footage to youtube, the minimum you have to do is a 3x integer upscale to avoid becoming "360p" footage. Since it looks like you're capturing 1080p30 from what appears to be a desktop capture, I'm not sure you can really get away with 1080p60 unless you maybe leverage the GPU of the system.

But GPU encoders tend to trade off speed as well, though tend to be better than USB devices. If you can get them to work at all.
I come from the net. Through systems, peoples and cities to this place.
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by MottZilla »

jwdonal wrote:Yeah, the echo/reverb is quite prominent. That's how it actually sounds. I tend to like how it sounds so I guess I never really thought about it much. :)
Really? I don't consider myself extremely picky about audio but it sounds horrible. The source here: https://www.youtube.com/watch?v=UkgK8eUdpAo sounds much better. Of course I know you're just showing a demo that isn't yours. I thought there was a SNES Bad Apple demo that sounded better than that. It's so much echo it's like it's distorted or something.

But you've made great progress on your SNES FPGA clone. From your latest videos it seems like Windowing and Color Math will really help out with some of the games that currently have graphical issues.
Great Hierophant
Posts: 780
Joined: Tue Nov 23, 2004 9:35 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Great Hierophant »

I only have experience capturing analog composite and s-video. I capture game video at 720x480i @ 30fps, deinterlace it to 720x240p @60fps, then scale it to 878x720p @60fps (with horizontal borders to 1280 to preserve aspect ratio). The file sizes tend to get large when taking the video uncompressed, it is probably 1GB/minute.

Now if you are capturing digital video, 1024x720p/60fps (with borders to 1280) would be the best way to go if you don't have a 1080p/60fps source or capture device. Given we are talking about 256x224 @ 15-bit color upscaled graphics most of the time on the SNES, a codec like DOSBox's ZMBV should drastically cut down the file size.
Kismet
Posts: 60
Joined: Wed Nov 30, 2016 9:59 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Kismet »

Great Hierophant wrote:I only have experience capturing analog composite and s-video. I capture game video at 720x480i @ 30fps, deinterlace it to 720x240p @60fps, then scale it to 878x720p @60fps (with horizontal borders to 1280 to preserve aspect ratio). The file sizes tend to get large when taking the video uncompressed, it is probably 1GB/minute.

Now if you are capturing digital video, 1024x720p/60fps (with borders to 1280) would be the best way to go if you don't have a 1080p/60fps source or capture device. Given we are talking about 256x224 @ 15-bit color upscaled graphics most of the time on the SNES, a codec like DOSBox's ZMBV should drastically cut down the file size.
Pillarbars are bad practice. This is because if you view it on a device like an iPad it will wind up window-boxed.

Mainly if you are capturing from an analog source, you capture with a lossy codec because the analog noise compresses better with a light lossy codec. If you are recording from a completely digital source (eg an emulator, or HDMI/DVI) then you need to capture using a lossless codec, of which ZMBV is only good as the CPU speed of one core. You CAN however upload ZMBV directly to Youtube, but you need to have key frames every 5-10 seconds to ensure it can be seeked. A lot of testing with ZMBV suggests you can get away with at most 720p with ZMBV, after that, google's on-the-fly transcoding process can't keep up. The key thing to remember is that ZMBV in DOSBOX's key attribute is that it delta-frames not only the visual data, but the palette as well on 8-bit color. The SNES requires 16-bit color and delta frames using ZMBV.

Hence, if you are trying to create the smallest seekable, lossless, file ZMBV probably the only option that works for 2D games. 3D games are better off going straight to h.264/AVC or VP8/WebM because a lossless compression only benefits the HUD of the game.
I come from the net. Through systems, peoples and cities to this place.
Great Hierophant
Posts: 780
Joined: Tue Nov 23, 2004 9:35 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Great Hierophant »

I put the pillarbars there for two reasons, the first is to enforce a proper aspect ratio. The second is to tell Youtube that I am sending it 720p/60fps and want to have it display that framerate. When Youtube first began supporting 60fps, I think I had to do that to make the service support the higher framerate.

DOSBox's default color encoding encodes 8 bits for Red, 8 bits for Green & 8 bits for Blue. The default display mode is VGA, which uses 6-bits for each color component. So 16-bit color cannot fully capture all the palette choices a VGA card could use, hence 24-bit.
Steddyman
Posts: 2
Joined: Sat May 20, 2017 4:31 pm

Re: Introducing the VeriSNES (FPGA-based SNES)

Post by Steddyman »

This looks fantastic. I too have the DE-115. Would you be willing to share the binary image for testing?

Also, I don't know if you've seen the Japanese guy who seems to have been working on something similar for a long time. I've reached out to him a few weeks ago but go no response.

http://pgate1.at-ninja.jp/SNES_on_FPGA/

Ps I've previously ported a ZX spectrum fpga project to the DE2-115 so have a little experience with this stuff, but nothing like your insane skills.
Post Reply