It is currently Sat Oct 20, 2018 2:02 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Mon Sep 24, 2018 10:09 am 
Offline
User avatar

Joined: Wed Sep 05, 2018 11:13 am
Posts: 78
Location: Colorado
Somewhere along the lines while reading documentation, I read that all of this information about the NES was discovered through a combination of reverse engineering and studying Nintendo patents.

Does anyone have a list of the relevant patent numbers or perhaps links to the patents online?

I found this page, but all the links seem to return errors:
http://wiki.nesdev.com/w/index.php/Patents

Thanks

_________________
A few of my web games
https://www.embed.com
Or if you're bored at work
https://www.classicsolitaire.com


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 10:17 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6897
Location: Canada
Patent databases are online and searchable for the most part:
http://patft.uspto.gov/netahtml/PTO/search-bool.html

If you search the US Patent database for applicant name "Nintendo". There's about 400 entries, if you feel like sifting through them.

If you're looking for a specific device, try searching for it by name, or by some keywords about what it might do, or just look on the device itself to see if there's a patent number on it.

Patents don't really have to describe all the details of how something works, though, only the unique novelties of the part of it they're trying to patent. They're not the best documentation for just about anything in this category of reverse engineering, but they're often better than nothing, and when people were starting from scratch they did indeed often offer a clue on how to begin.


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 10:32 am 
Offline
User avatar

Joined: Wed Sep 05, 2018 11:13 am
Posts: 78
Location: Colorado
rainwarrior wrote:
Patent databases are online and searchable for the most part:
http://patft.uspto.gov/netahtml/PTO/search-bool.html
Patents don't really have to describe all the details of how something works, though, only the unique novelties of the part of it they're trying to patent. They're not the best documentation for just about anything in this category of reverse engineering, but they're often better than nothing, and when people were starting from scratch they did indeed often offer a clue on how to begin.


Out of curiosity, what was your path through understanding all of this archaic hardware? Did you come from the hardware side or the software side?

I'm a software guy, and I'm completely amazed that all of this was figured out at all.

Anyway, I'm just curious about the journey to understanding you and some of the other highly skilled nes devs took to understanding all of this.

Thanks

_________________
A few of my web games
https://www.embed.com
Or if you're bored at work
https://www.classicsolitaire.com


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 10:45 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10902
Location: Rio de Janeiro - Brazil
I think existing code is usually the starting point when reverse engineering an old console. Unlike proprietary parts like the PPU, the CPU is a well documented off-the-shelf part (even though it's slightly customized, in the case of the NES), which means that code found in commercial games will provide many clues on how the rest hardware works.

Some things can also be deduced just from looking at the PCBs and seeing how the components are connected, such as memory maps.


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 11:35 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3639
Location: Mountain View, CA
I was around during most of the reverse-engineering efforts, as I'm the original author of nestech.txt. So if you're wanting a history lesson, I'm probably one of several people to ask. I gave an in-person interview several years ago with JoeGtake2 for his documentary The New 8-Bit Heroes but the footage was never used (several other nesdev folks are in it).

I recently got asked similar questions about the early snesdev days, wherein I did briefly touch on NES/nesdev stuff (if you read my posts/answers, it'll become clear why I do that). The earliest forms of RE, i.e. "pre-emulation" days, were being done by two select people in Russia (Alex Krasivsky (wrote some code in iNES, and also did his own emulator, LandyNES) and Marat Fayzullin (iNES emulator author, author of NES file format); I'm still friends with Alex to this day) on the Dendy. This was a combination of hardware analysis (esp. to dump carts to ROMs), and software RE. There was were also some efforts going on in Asia (Japan/Taiwan/HK) but language barriers and general cultural/societal differences (what chat networks were used, etc.) didn't make sharing of information there possible. Later information happened as a result of the emulation boom in 1996 onward, which is revolutionised understanding the console's more intricate aspects (particularly the PPU); loopy's skinny.txt was one of those aspects. Emulation in general is what really spurred a substantial amount of the knowledge we have today, and most of that was time spent by people doing emulators who sat staring at disassemblies of commercial games. But the very intricate and complicated details of behaviour required hardware-oriented folks (read: people with EE backgrounds), so nuances and explanations for "why that thing has to be done that way" became known once more hardware folks got involved. Otherwise I'd suggest buying Nathan Altice's book titled "I Am Error" as it's a wonderful read and gives insight into lots of things.

It's true that Nintendo's patents were (partially) reviewed for some RE aspects that lead to discoveries on the NES, but IIRC, the only useful thing found in them pertained to one of their mapper patents (no I don't remember which one; possibly MMC2?) and that piece of information acted as confirmation of something/behaviour already known. I don't believe there wasn't anything "console-specific" that was found to be useful in patents. Technical patents these days that surround IP are *intentionally* written this way (I like to describe them as "specifically vague/nebulous"), and USPTO has a very bad habit of approving them.

I'm glad there's a compiled list, though. The links probably don't work because of USPTO website link changes, or possibly an account is required; not sure. I'm certain someone could go through and verify + fix them all.


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 12:06 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 6897
Location: Canada
battagline wrote:
Out of curiosity, what was your path through understanding all of this archaic hardware? Did you come from the hardware side or the software side?

Myself I am mostly a software person. I've been trying to improve emulation of Famicom expansion audio in particular, which has involved some reverse engineering. I haven't actually directly ever found something useful in a patent myself, but I've seen cases where someone found something mentioned in one that became a hint of something to investigate.

So... I think I personally came in far too late to really have much use for patents. They're mostly for vague clues, like maybe there's some register on the hardware you wouldn't have even guessed existed but the patent makes a reference to it. It's a lead to follow up on. I think would have helped a lot more 20 years ago than today, and even then, probably just a starting point. When I came in I had so much prior RE work to use as a starting point instead.

Any actual reverse engineering I've done was from writing test programs, running them on the hardware, record or measure the results (audio / electrical), think about how to duplicate them and compare to an emulation I write. Rinse and repeat.

Some people figure stuff out just by taking the ROM and guessing what would have been needed to make it run. If you see a STA to some location, and it's not a known register, it's a hint that "something" is there. You might make an educated guess and see if it works. Not as good as testing the hardware to make sure, but you can get pretty far with even just this method, and sometimes all you have is a ROM that you have no idea where it came from and you've never seen the hardware.


Top
 Profile  
 
PostPosted: Mon Sep 24, 2018 2:14 pm 
Offline
User avatar

Joined: Wed Sep 05, 2018 11:13 am
Posts: 78
Location: Colorado
I'll have to pick up "I am Error". I think it's been pretty amazing what has been done to figure out how all this stuff works.

Thanks for the insights!

_________________
A few of my web games
https://www.embed.com
Or if you're bored at work
https://www.classicsolitaire.com


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group