emulator = perfection

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
User avatar
BMF54123
Posts: 409
Joined: Mon Aug 28, 2006 2:52 am
Contact:

emulator = perfection

Post by BMF54123 » Mon Oct 27, 2008 1:26 am

[Split from here -- MOD]

bsnes full-screen + decent gamepad + TV out = perfection. :)

User avatar
Zepper
Formerly Fx3
Posts: 3194
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Post by Zepper » Mon Oct 27, 2008 3:54 am

BMF54123 wrote:bsnes full-screen + decent gamepad + TV out = perfection. :)
Complete SNES + TV = perfection++ ;)

d4s
Posts: 92
Joined: Mon Jul 14, 2008 4:02 pm

Post by d4s » Mon Oct 27, 2008 6:04 am

Fx3 wrote: Complete SNES + TV = perfection++ ;)
qft.

User avatar
BMF54123
Posts: 409
Joined: Mon Aug 28, 2006 2:52 am
Contact:

Post by BMF54123 » Mon Oct 27, 2008 12:19 pm

Well, of course.

Perhaps I should have said "in the absence of a suitable cart for playing [x] game, bsnes + gamepad + TV-out = near perfection"... :P

Near
Founder of higan project
Posts: 1550
Joined: Mon Mar 27, 2006 5:23 pm

Post by Near » Mon Oct 27, 2008 1:33 pm

Fx3 wrote:
BMF54123 wrote:bsnes full-screen + decent gamepad + TV out = perfection. :)
Complete SNES + TV = perfection++ ;)

Code: Select all

#include <assert.h>

int main() {
  bool perfection = true;
  assert(perfection == perfection++);
}
:D
The most recent IOS I have is that one that "Poisoned" SSBB
Intriguing, yet Google fails me. More info, please?
Oh, and supposedly the new IOS thing was hacked now. Wouldn't know, not paying an eBay scalper $300 for a white Gamecube that Nintendo can't stock.

User avatar
MottZilla
Posts: 2832
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla » Mon Oct 27, 2008 1:38 pm

It's nice to throw a Flash Cart or GDSF7 in the mix too for some perfection. I much prefer to play SNES games on my Super Famicom with a RGB monitor than to play on an emulator. Not to say that emulators aren't good, but you can't beat the original hardware.

Near
Founder of higan project
Posts: 1550
Joined: Mon Mar 27, 2006 5:23 pm

Post by Near » Mon Oct 27, 2008 2:00 pm

Yeah, aside from the obvious "can never achieve perfect accuracy" problem -- all emulators suffer from ~16-48ms video output latency, ~30-120ms audio output latency, and ~16-48ms controller input latency. Not to mention the forced resampling of audio if you want to avoid video tearing, and the unnatural video interpolation to preserve the aspect ratio.

While it's not really noticeable in isolation, you can definitely feel it side-by-side with the real system.

Who knows, maybe in 10 years we'll have FPGA-like devices that can run C++-like code, and we can create cheap, easy-to-produce hardware devices with no latency issues.

d4s
Posts: 92
Joined: Mon Jul 14, 2008 4:02 pm

Post by d4s » Mon Oct 27, 2008 5:25 pm

byuu wrote: Who knows, maybe in 10 years we'll have FPGA-like devices that can run C++-like code, and we can create cheap, easy-to-produce hardware devices with no latency issues.
I think a fpga-based snes clone is already feasible nowadays.
Some time ago, I found this.
I contacted the guy thinking that he directly implemented the SNES hardware low-level style, but IIRC, he ported SNES9x to some CPU core running on the FPGA.
I could be confusing this with another project, though.

User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku » Mon Oct 27, 2008 5:48 pm

It seems far more common for people to port emulators to synthesized processor cores, than people actually designing the hardware. It is however very possible to fit a SNES into a modest FPGA (around 500k Xilinx gates) and even a Genesis/Neo Geo/CPS2 should fit in a slightly large one (probably closer to a million gates).

ironfist61
Posts: 144
Joined: Fri Oct 24, 2008 1:25 pm

Post by ironfist61 » Tue Oct 28, 2008 11:01 am

kyuusaku wrote:It seems far more common for people to port emulators to synthesized processor cores, than people actually designing the hardware. It is however very possible to fit a SNES into a modest FPGA (around 500k Xilinx gates) and even a Genesis/Neo Geo/CPS2 should fit in a slightly large one (probably closer to a million gates).
A few years back I heard some guy had a bunch of pirated Nintendo Entertainment Systems. According to the rumor he went to prison.
I don't know if it was true,
But I remember some time in the 90's Some other guy was charged with piracy 'cause he was selling, giving away (I don't know) the complete schematics to the Famicom. I think he even had places to get the parts listed. I don't remember too much. If someone can help me out?

cybertron
Posts: 57
Joined: Sat Sep 20, 2008 8:50 pm
Location: Canada

Post by cybertron » Wed Oct 29, 2008 7:19 am

Making a game system on an FPGA always sounds like a fun project, but just doing the video hardware would be extremly hard :(

Also we already have have those Duo clone things for cheap, and you can't really sell something like that without someone starting an argument here

So basically the only reason to make one is because you can :)

I have a mint condition SNES I got from my granny, and a crappy TV with a built in VCR. The CRT and composite video is perfection :) Hence the flash cart to play games on it

tepples
Posts: 22017
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Wed Oct 29, 2008 9:51 am

ironfist61 wrote:A few years back I heard some guy had a bunch of pirated Nintendo Entertainment Systems. According to the rumor he went to prison.
I don't know if it was true,
But I remember some time in the 90's Some other guy was charged with piracy 'cause he was selling, giving away (I don't know) the complete schematics to the Famicom. I think he even had places to get the parts listed. I don't remember too much. If someone can help me out?
That might have been reasonable until the mid-2000s, when the Famicom/NES patents expired.

Near
Founder of higan project
Posts: 1550
Joined: Mon Mar 27, 2006 5:23 pm

Post by Near » Wed Oct 29, 2008 2:12 pm

Making a game system on an FPGA always sounds like a fun project, but just doing the video hardware would be extremly hard
Everything about FPGA design is a pain. And even once you get good at it, it does no real good: nobody else is going to go through all that trouble to build their own.

My idea would be something of a hybrid between a PC and an FPGA. Give you multiple processors (so you don't have to use multi-tasking to simulate parallelism) with a high enough clock to divide down to rough estimates of standard 90's era systems.

Have a really, really light API to help control the hardware (video, audio, input -- connection interface details, eg memory card reader, HDMI, S/PDIF, controller ports -- are handled for you), with a focus on minimal latency. Drive the video and audio on per-pixel/sample clock rates ... get a certain memory address to hold the value you want, and make sure it's ready in time. Input polled from the controllers would also be done in real time. With a real-time OS, and known cycle overhead per operation, that shouldn't be too hard. Ideally, it'd be like blargg's S-DSP core: concrete "do this on this cycle" steps, and there'd be no need for things like semaphores or locks.

Worst case, buffer it a tiny bit if needed. Just nothing like to up to ~75ms video, ~120ms audio we get on PCs now.

Essentially like an open console, but with lower-level timing control. As if you're writing DSP firmware / microcode.

You just give out the program, people load it into the system (that's the key part -- so that anyone can use it, not just EEs), and it can act just like anything it emulates.

Better still if it's in a standardized language, so that the work won't be lost when a new generation of hardware comes out.
I contacted the guy thinking that he directly implemented the SNES hardware low-level style, but IIRC, he ported SNES9x to some CPU core running on the FPGA.
While the former is technically more impressive, I don't see much of a practical difference once you're emulating the hardware anyway. So long as the timing is the same, it'd be ideal to write in a language that's easier to understand.
That might have been reasonable until the mid-2000s, when the Famicom/NES patents expired.
The only one I remember reading about was the (albeit very successful until he was sued) idiot selling NES-on-a-chip N64-knockoff controllers with ~30 copyrighted NES ROMs on-board. He got sued because of the games included.

It would be interesting to try selling such a device with only a memory stick slot, so users can load games themselves.

User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku » Wed Oct 29, 2008 4:52 pm

byuu wrote:Everything about FPGA design is a pain. And even once you get good at it, it does no real good: nobody else is going to go through all that trouble to build their own.
That's the beauty of HDLs, you can very easily port a SOC design from one system to another.

User avatar
FitzRoy
Posts: 141
Joined: Wed Oct 22, 2008 9:27 pm
Contact:

Post by FitzRoy » Sun Nov 02, 2008 11:43 am

Fx3 wrote:
BMF54123 wrote:bsnes full-screen + decent gamepad + TV out = perfection. :)
Complete SNES + TV = perfection++ ;)
In many cases, emulation is simply better. It's far more portable, saves an incredible amount of space, can do things like netplay, and using a mouse for super scope games is simply better than the unwieldy super scope itself. I grew up playing PC games, so crisp pixelated graphics look better to me than blur. And bsnes effectively has better audio than the original unit by avoiding the analog output. I don't want to hear any nonsense about developer intent in that regard. It's just a cheaper, inferior pathway in a day when digital ones were uncommon, that's all there is to it.

Post Reply