Before the days of the RetroPie project, video game clones were all the rage. Early video game systems were relatively easy to duplicate and, as a result, many third-party consoles that could play official games were fairly common. [19RSN007] was recently handed one of these clones, and he took some pretty great strides to get this device working again.
The device in question looks like a Sega Genesis, at least until you look closely. The cartridge slot isn’t quite right and the buttons are also a little bit amiss. It turns out this is a Famicom (NES) clone that just looks like a Sega… and it’s in a terrible state. After a little bit of cleaning, the device still wasn’t producing any good video, and a closer inspection revealed that the NOAC (NES-on-a-Chip) wasn’t working.
Luckily, [19RSN007] had a spare chip and was able to swap it out. The fun didn’t stop there though, as he had to go about reverse-engineering this chip pin-by-pin until he got everything sorted out. His work has paid off though, and now he has a video game system that will thoroughly confuse anyone who happens to glance at it. He’s done a few other clone repairs as well which are worth checking out, and if you need to make your own NES cartridges as well, we’ve got you covered there, too.
does this mean sega does what nintendon’t?
^That made me laugh.
its not an nes on a chip its a sega megadrive on a chip
Obviously you are judging by the picture and didn’t take the time to read the article on my website.
This is a NES-On-A-Chip, in a genesis/mega drive case.
This is the main reason I wanted the thing to work!
The motherboard was ruined by water damage, so I had to replace the main PCB that contained the NOAC.
Instead of just sticking a raspberry pi or such in it, I decided to put in another noac board I had in my parts bin.
Since I didn’t have ANY documentation on this board, I am reverse engineering the thing pin by pin.
While I was at it, I also build myself a better video amplifier circuit (see the photo’s on my website)
Yesterday I actually figured out the controller part of the noac board and actually got to play a game on my board.
I’ll be updating my blog later today.
If someone makes a multi-threaded emulator that can at least mimic the behavior of chips running at the same time and live video generation, then I’d be impressed. Conventional emulation computes everything in one main loop as fast as possible and uses pauses (usually video rendering or sound playback) to make things feel “correct” but what you wind up with is a slightly skewed time and video is almost always 1 frame behind where the real thing would have been, etc. Caveat: I have written an emulator and reverse-engineered several other emulators in the process.
Higan is more towards that goal
I remember seeing that when Byuu first released the public version. The details of getting the chip ‘threads’ to sync with each other so timing tricks used by a very few games would work was just mind boggling. The idea of doing all that in software is what drove me to picking up an FPGA, since “this has to be easier to mimic in hardware”.
Did you look at dice as well, not quite hardware level but none the less interesting for cpu less.
Why does it need to be multithreaded? You don’t have to run things in real time together if you can emulate at faster than real time. The issue with many emulations is not that it’s not running everything together in realtime and more that assumptions made like “we should be able to draw a whole line of video without worrying about other parts of the system” that make the emulation fast enough to be usable aren’t good assumptions in some cases.
You know next to nothing about multithreaded programming and are making the same mistake that countless people complaining about the speed of emulators make: Thinking that threads are some magical cure-all for emulating multiple devices at the same time. In reality, any performance you’d gain back would be wasted on thread synchronization.
You theory *might* work for shitty, inaccurate emulators that only sync a frame at a time (and thus can’t support raster effects) or that only sync a line at a time (and thus can’t support mid-line modification of video registers). For any systems that actually rely on devices being driven off the same clock and executing at the same time, such as the Sega Saturn and the Nintendo 64, any sort of threading is a no-go. You can’t even use JIT when emulating the multiple CPUs in those systems, as JIT compilers get their speed from recompiling as much guest code in one go as they can, which is inherently at odds with the per-instruction interleaving that the quirkiest games on those systems demand.
Caveat: I have written an emulator, contributed to another two emulators for the past 15 years, and reverse-engineered a number of systems.
P.S.: What the hell is “reverse-engineering an emulator”? Any decently accurate emulator is open-source. Reading source code isn’t “reverse-engineering” you stupid shit.
This would appear to be the emulator he has written: https://sites.google.com/site/brendanrobert/projects/jace
>If someone makes a multi-threaded emulator that can at least mimic the behavior of
> chips running at the same time and live video generation, then I’d be impressed.
This part had me wondering.. how do you expect multiple threads scheduled by the OS (i.e you have no idea when they’ll actually run) to “mimic the behavior of chips running at the same time”.
Yeah I could have done that, but it’s not half the fun as getting a naked NOAC board with an actual cartridge connector and finding out what pins has what function.
also, this way (with a convertor cable from DB9 to NES) I could use real NES controllers and with a bit more efoort I could maybe even hook up those weird famicom add-on devices.
please, o great one, share with us your latest hacks…
So made a mistake and visited the blog. Within 2 or so minutes I had one ad asking me if i wanted to “fix or repair” computer problems literally bouncing on the left side of the browser whenever i scrolled up or down. By the time I finally decided to leave the page I had a duplicate of the same ad in the middle bottom of the screen. Other than that, the write up looked interesting but I didn’t finish.
Hey Nick,
That add couldn’t have been caused by my website.
If that was the case, I would have had that problem myself.
Check your computer for spyware and such.
if your blog is on eu5, Nick’s right, if you go over the allotted bandwidth so the hoster redirects + ad’s which is what its doing right now.
Yeah I just noticed
Uh, those boards got 4 pins:
Power
Ground
Video
Audio
What’s the big deal of reverse engineering? :)
btw, the website is offline.
Well the big deal is the controller interface and the fact that it gives a crisp clear image!
Better than I’ve ever seen on a clone.
I just noticed the site is down because of the traffic overload. just contacted the host.
Have they finally improved those NoaC’s? Last I looked, they all had the same emulation problems which seems to stem from using the same damn source die. Once they got an NoaC that passed muster at the flea markets no further development ever seemed to occur.
What was the point of very closely copying a Sega console then stuffing it with an 8 bit NES clone?
I still have one of these :-)