VeriNES (FPGA-based NES) Updates

VeriNES (FPGA-based NES) Updates
by on (#58095)
Hello all! I finally got around to posting another progress update for my NES emulator (which I am now calling "VeriNES" - see my 2010/03/11 blog post for the meaning). This latest one is in regards to my APU DMC module progress. Click my "WWW" link below to go directly to my site.

If anyone has any pointers/insights on the 3 itemized bugs that I am seeing (described in my blog) feel free to email me, leave a comment on my blog, or PM me here! And of course any other feedback at all is welcome.

This is also my very first attempt at some simple video editing/compilation. If something doesn't work or you think my method for posting videos is really bad please let me know. The way I am doing it now is the quickest and easiest way for me but if it doesn't work for most people I can change it.

Pz!

Jonathon :)

by on (#58100)
I just want to confirm what exactly you're doing since I didn't read all the details on your blog.

You're doing a nes emulator in hardware, right? But are you planing to make it like a machine that can play cartidges or just a machine that can run roms? From all you comments about "I need to make mappers work", I guess you're going for the later. Why is that so? Just curious.

by on (#58102)
Quote:
You're doing a nes emulator in hardware, right?

Yep!

Quote:
But are you planing to make it like a machine that can play cartridges or just a machine that can run roms?

Great question! First I will be designing the system for ROMs only, and implementing the mappers directly inside the FPGA fabric. But I do plan on designing a daughter card for my ML505 board that will actually accept original NES cartridges. That won't be till muuuuch later though.

Quote:
Why is that so?

Hmmm...I guess because it's just easier for me to re-create the HDL for all the mappers (and insanely more fun!) than to create a daughter board or some kind of interface to accept original cartridges. I think writing the code for the mappers and having them all available right inside the FPGA is a lot more kewl than just using carts - but that's just me. ;)

Pz!

Jonathon :)

by on (#58106)
I see. Me I would say the opposite: to have good replacement for your original nes would be a lot more useful than some hardware that can play nes rom. Most clone are crap so a real replacement would be great. By using real cart, you don't have to emulate any mappers at all and some mappers are not even emulated yet in the powerpak because of their complexity.

If your goal is only to play rom, a computer emulator or a nes + powerpak does exactly that but that's my opinion. I'm sure a lot more people would be grateful if it was a real clone that work like the real thing. Add the possibility to play famicom audio with famicom carts (meaning 1 slot for US-NES and one for famicom) and that' even better. Of course, it should be a top loader, not that horrible idea that was the toaster nes.

Edit:

Another point: if you can make a real clone and then make some real mappers with carts for homebrew then you just prolonged the nes life span even more. I would like the see a clone that is well made and not some junk that feels like it will break in your hands the minute you will use it. I'm sure many people would be looking forward to that.
Re: VeriNES (FPGA-based NES) Updates
by on (#58118)
jwdonal wrote:
This is also my very first attempt at some simple video editing/compilation. If something doesn't work or you think my method for posting videos is really bad please let me know. The way I am doing it now is the quickest and easiest way for me but if it doesn't work for most people I can change it.

Yeah... I really wouldn't advocate using WMP plugin for this kind of thing. Why not just upload the video to Youtube (IIRC it can accept WMV) and embed the Youtube player on your page?

by on (#58121)
Flash is the worst video player out there. It periodically freezes video in fullscreen mode, requiring you to press ESC to get out of there.
With the modern codec packs, the Windows Media Player plugin will work perfectly when pointed at a FLV file, and play it much more smoothly than Flash ever could, and at a much lower CPU usage rate. If more people used Windows Media Player plugin pointed to a FLV file, I'd be much happier.

by on (#58125)
Dwedit wrote:
Flash is the worst video player out there. It periodically freezes video in fullscreen mode, requiring you to press ESC to get out of there.

I don't really think that's every happened to me. Only complaint I have for Flash players is that whenever I go full screen on one monitor, I can't do anything on the other because it will automatically exit the full screen once I click on something on the other monitor.

by on (#58127)
Quote:
Me I would say the opposite: to have good replacement for your original nes would be a lot more useful than some hardware that can play nes rom.


The original NES cartridges are all 20+ years old. They are all going to succumb to bit-rot.

If you care enough to have actual NES cartridges for the games you are playing, then you should get an actual NES, which should last just as long as the cartridges.

Quote:
If your goal is only to play rom, a computer emulator or a nes + powerpak does exactly that but that's my opinion.


Emulation is emulation, the NES portion is far more technically complex than the mappers. By emulating the NES, you really don't get that much more accuracy just because the mappers aren't emulated. So you may as well use a PC emulator.

I love these hardware emulators for the sake of documenting and trying to figure out minimal logic gates and such to perform operations. They serve as a sort of documentation of what a real NES would most likely look like in a way that C++ just can't. But they aren't practical at all and will remain extremely niche.

by on (#58128)
byuu wrote:
The original NES cartridges are all 20+ years old. They are all going to succumb to bit-rot.

I thought only UVEPROMs and EEPROMs were subject to deterioration over time, and all (licensed) retail NES Game Paks were mask ROMs.

Quote:
Emulation is emulation, the NES portion is far more technically complex than the mappers.

Even MMC5?

Quote:
I love these hardware emulators for the sake of documenting and trying to figure out minimal logic gates and such to perform operations. They serve as a sort of documentation of what a real NES would most likely look like in a way that C++ just can't. But they aren't practical at all

Except perhaps as a prototype of a better NOAC.

by on (#58192)
tepples wrote:
I thought only UVEPROMs and EEPROMs were subject to deterioration over time, and all (licensed) retail NES Game Paks were mask ROMs.


MaskROMs never succumb to bit rot? That is very encouraging if true.

Quote:
Even MMC5?


Yes, the NES system as a whole is more complex than the MMC5.

by on (#58203)
As I understand it, a mask ROM is a big fat decoder/mux/whatever to wires that are either connected or not connected. (The CIC reverse engineering thread tells more.) It would succumb to bit rot at the same rate that any other non-writable integrated circuit, such as the instruction decoder of a CPU, succumbs to bit rot.

by on (#58364)
interfacing to an actual cart complicates the hell out of things, as most fpgas aren't 5V tolerant. It's a hell of a lot easier to keep everything in nice modern low voltage stuff.

by on (#58371)
I don't see it...so i'm gonna ask. What board are you using?

by on (#59197)
Yikes, sorry for not replying sooner. I never got an email that more replies were posted even though I am "watching" this topic...weird.

ReaperSMS wrote:
most fpgas aren't 5V tolerant. It's a hell of a lot easier to keep everything in nice modern low voltage stuff.

True, but there's fairly easy ways to do it. For example, you can throw a cheap-o-rama 5V tolerant CPLD in between the cart and the FPGA. Done. And then you've even got a little bit of free logic you can play around with.

Jeroen wrote:
I don't see it...so i'm gonna ask. What board are you using?
Xilinx ML505 (Virtex-5) and Xilinx XUPV2P (Virtex-II Pro). And eventually I will port it to the Virtex-4. Check out my site for all the details.

Pz!

Jonathon :)