Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Hardware

Reverse-Engineering Consoles 73

shpoffo writes "In relation to the recent /. article i thought i'd give people a heads-up on some more console info. For those of you with the time, interest and know-how there are a few really good resources around for reverse engineering most of the major video game consoles such as Jeff Frohwein's site for the Gameboy. There's others for the N64 here and here, Dreamcast, Playstation, TurboGraphix, Genesis, and the Nintendo."
This discussion has been archived. No new comments can be posted.

Reverse-Engineering Consoles

Comments Filter:
  • Since no one seems to have mentioned this 8 bit system (my first and only 8 bit system :) I figured I'd make mention of SMS Power [smspower.org], which is a really nice SMS site with a LOT of great information, especially for potential emulator others and ROM hackers/coders. They have, AFAIK, the only SMS developer's section with a decent collection of docs, plus a forum for discussion.

    Plus, for those of you like myself who want to try a hand at homebrewing ROMs but need tools, I'd take a look at z80-asm (search Freshmeat :). It's a decent, free z80 assembler which, used in conjunction with cpp, does a nice job.

  • by Anonymous Coward
    I've programmed videogames for a while now. One of them was the Sega Saturn, one of the more, err, complex, designs around. The thing had roughly 7 programmable units (2 * SH2 main CPUs, SH1 CD controller, 3D graphics chip, 2D graphics chip, 68K-variant sound chip, sound DSP). Plus, the bus controller could do some stuff in its spare cycles, and more. The thing deserved its initial reputation as being a bear to program for, as gcc really won't take advantage of that.

    When I started programming that thing, I got a literal shelf-foot of manuals (8.5"x11"x12"). Hundreds of pages of HW registers. Fortunately, the last revisions of the high-level libs made programming pretty easy.

    That documentation (in .pdfs) was leaked 2-3 years ago onto the net by Saturn fans.

    Basically, no emulators seem to exist that provide 10% of the functionality of the documented stuff. Quite frankly, if it was a pain to program for, emulating it's a level harder.
  • How legal is reverse-engineering these consoles?
  • You might want to join the eGroups mailing list `nesdev'. Email Memblers (his address is all over the nesdev home page) about it. And tell him Damian Yerrick sent you.

    And some of the documentation is over on the nesemdev [cjb.net] home page.

  • If you were in a country that didn't respect the original patents ('cause not all do) or that don't have laws against reverse engineering - and then you released the info as an "open source" project... would the cat be out of the bag?

    Pretty much yes. A point raised in the recent MS-Kerboros discussion was that China didn't have protection for Trade Secrets. Thus someone could download it in China and, not being bound by the click agreement, republish it.

    Although, remember, this is trade secrets we're talking about - which is different from patents. I may be wrong, but providing information on how a patented system works isn't illegal, it's only illegal to duplicate it in a competing product whilst the patent is in force. If it wasn't, we couldn't have public patent listings in the first place. ;-)

  • I really dislike the fact that with every new generation of consoles you have to replace all your controllers, and software has to be rewritten from scratch

    Boo friggin' hoo.
    No one is making you throw out your old console, are they? There's a huge difference between console hardware generations because they tend to last upwards of 4 years. I would never have expected SuperNES games to run on the N64, and why the hell would I?
    I heard lots of bitching over whether or not the PS2 would run PS1 games. Who cares? Either keep the old system, sell it, don't buy the new system, or buy the new one and enjoy the NEW games that are coming out. Isn't that the point of console gaming?!

    Pope

    Freedom is Slavery! Ignorance is Strength! Monopolies offer Choice!
  • >If it were that urgent, I'm sure he could park on the sidewalk.

    At most hospitals I've seen, the sidewalk is the furthest thing away from the hospital. The doctor would be better off finding a normal space.

    >If the company is out of business, there's no-one to pay the lawyers to sue you.

    I thought we were talking morals, not legals... :-)
  • I can just imagine the following statement being issued by Japan:

    Due to the tecnical specification for the Nintendo Gameboy being released, we feel that there is an unacceptable risk that the hardware could now be used for controlling missiles. There will thusly be a ban on exporting more than a single unit at a time. ;-)

  • No, that would be a direct copy of information on a tangible medium. However, you would be perfectly entitled to look at the code, and work out what algorithms were used in which places. You would also be entitled to produce a piece of software that does exactly the same as long as you use none of the original code.

    Copyright doesn't apply to everything. I can make a device that duplicates the function of my table, my cup, my radio. Why can't I do this with a console?
  • >Both examples are egregiously wrong.

    Because the carpool example distastefully deals with death. The other also deals with death, since parking in the Doctor's Only spot at a hospital slows down the doctor trying to save a near death patients life.

    I fail to see how reverse-engineering kills, or defames the dead. Please give some real-life, already happened, kinds of examples relating to the topic and perhaps you can change my view.

    I do see, however, how reverse-engineering could _save_ a life in when the supporter of a proprietary heart monitor is out of business.
  • Then the first one who thought up let's say databases would keep everyone from creating there own product. We would all be stuck with the same crappy first version of the first database ever created, traped by the monopoly. We would all would have Commodores or something because they thought of computers for personal use!

    And we think M$ is bad. Things could have been really bad !

    "Everyone makes mistakes. That's why they put erasers on pencils." -- Lenny from The Simpsons.
  • Non-installable CD versions of software would also cut down on piracy. It's more desirable to pirate if you can have every pirated app all on your HD for easy access.

    Great - so we have a situation were every CD-only application needs to be shipped with copy protection to prevent it even being copied to the hard disk. I just think of the leading copy protection mechanisms (SafeDisc), and I shudder.

    BTW: For those of you who aren't aware, Generic Safedisc is a leading copy protection method for CDs. The only problem is that the technique it relies on to validate the CD is an original copy doesn't work on a significant percentage of existing CD-ROM drives. There's been numerous flamethreads against game companys on Usenet in the past, with people having to resort to sites like GameCopyWorld [gamecopyworld.com] to get copy protection cracks just so they can play the d*mn game they bought.

  • once again...are you an idiot? Thats the dumbest argument for piracy ever. You are denying them the money you should be paying for a product. You are in effect, stealing that money from them...even if it never left your hands.

    Let's say there is a concert going on....500 people show up. 250 paid for their tickets, the others snuck in. The others are not paying for the concert, in effect stealing the profits from the organizers...whether or not they would have paid at all in the first place is irrelevant. If they didn't pay they shouldn't have experienced the concert, since they didn't have a license to(ticket)...

    Honestly, get the fuck over it. I hope you start a business someday..then tell me where it is. Or produce some profitable item...then we'll see how protective you get. Fact of the matter is, those who have nothing, care little about protection.
  • I wasn't approving of piracy. Just correcting the asserion that piracy is theft. Whether piracy is wrong is another matter. Likewise, in your other example, the 250 people are not stealing from the organisers. It still costs them the same amount to organise. Of course, if you aren't willing to pay for a ticket you should have no right to enter.

    I have produced a profitable item. If you can find a way to undercut my home made fudge by 50% I'd be delighted. I could use the same technique myself, and match your price. I would retain my competitive advantage by having an established customer base. It would take you some time to duplicate my recipe. By that time, I would have had plenty of chance to recoup my development costs. I would of course be rather upset if you stole the actual fudge from me.

    Piracy of course is different from this. In my fudge example, I'm charging you for the actual finished product. Not the data contained in the fudge. If I produced a piece of software, I would be upset if you copied it directly. I wouldn't consider it theft, but I would consider it wrong.
  • Actually...quite a few people probably care about the PS2 playing the PS1 games as it's supposed to make them look prettier. :)
  • Well they didn't sell Jaguar or Virtual Boy games either. I had those 2 as well as a TG-16, so needless to say I didn't visit FuncoLand much. There should be a few mom&pop video game trader shops in your area. That's how I got my Vectrex for $100.
  • by StrutterX ( 181607 ) on Thursday June 22, 2000 @04:57AM (#984858)
    I am a professional console game programmer.

    There is a major difference between creating product for a hand-held old-school console like the Gameboy Colour (GBC) and for the N64. The GBC has a very simple architecture, and by its nature has a limited range of game types that can be made for it. It is an ideal platform for hobbyist game programming (as long as you don't want to do fancy 3D graphics). In fact, I'm using it to introduce my children to assembly language programming and basic computer architecture.

    It is feasible through "pure" reverse engineering to determine how to program the Gameboy - although, in fact, most information has leaked out through authorised developers who have the actual documentation.

    The N64 on the other hand is a very complex system that derives much of its speed from running pre-compiled graphic processes (display lists) in parallel with the CPU. What is more, it relies on microcode to drive the graphic process. The microcode can be totally reprogrammed and this makes it very powerful. [Unfortunately Nintendo would not initially release details on how to program the microcode even to authorised developers, and so I had to reverse engineer it in order to render more complex surfaces than triangles].

    IMHO almost all of the actually useful information on the N64 has been leaked and not reverse engineered. Even my reverse engineering of the microcode relied on a certain amount of social engineering with Nintendo engineers.

    StrutterX
  • Of course this would detract from the simplicity that is Slashdot

    Vermifax
  • by Sonik4life ( 203417 ) on Wednesday June 21, 2000 @04:12PM (#984860)
    A couple of links to some interesting info.

    http://www.cdrom-guide.com/ubb/Forum19/HTML/0052 90.html (view the contents of a GD-ROM)

    http://marcus.mangakai.org/dc/ip0000.bin.html (Dreamcast boot file)

    http://semiconductor.hitachi.com/superh/index.cf m?menuselection=search2&p_line=SH-4 (SH4 Tecnical Documentation)

    http://www.hitmen-console.org (Dreamcast Debug Handler)

    http://marcus.mangakai.org/dc/serifc.html (Serial connection between DC and PC)

    http://ancient.gameznet.com/files/home_console/s ega/dreamcast/technical_pages/reburningCD. shtml (GD-ROM info)
  • for example: what if someone managed to figure out a way to turn a simple junk nintendo into a functioning *nix terminal, thereby saving it fro becoming yet more landfill and allowing people who might not otherwise have access to do so...
  • The Saturn was quite a powerful little beast. Although it was designed at first just to do 2d stuff (and it does 2d stuff almost as well as the dreamcast -- import x-men vs street fighter looks great and blows the psx version out of the water) it was so powerful that by brute force it could handle 3d stuff. It could probably do anything the playstation could and more. The problem was that it was so hard to program for that games with a certain cool effect always came out for the playstation first. Playstation fans would say stuff like, "the saturn was maxed out with virtual fighter 2," "it will never be able to handle croc" or "it will never be able to handle water and fire as well as the psx." One by one the SS did come out with games with those effects but since the psx version came out first no one cared.

    If sony isn't careful the same thing might happen to the ps2. It is supposed to be even harder to program for than the saturn. It will be interesting to see what happens in gaming during the next couple of years.

    Note there are saturn emulators (though most aren't very mature.) The number and quality of the emulator has as much to do with the popularity of the console as it does with the difficulty in making the emulator. Note that there aren't that many jaguar emulators but there are tons of great nes and gameboy emulators! There will be more psx emulators simply because it was more popular.
  • Try going on google.com and typing "virtual boy emulator." That is how I got this link: http://www.emuunlim.com/VirtualE/ among others.

    Again the number and quality of the emulators has as much to do with the popularity of the system as anything else. Sega sold far more saturns than nintendo did virtual boys -- this means there won't be that many people who really care.

    Note that as far as consoles that flops go the saturn did very well. It did sell over a million units in the US. This sales mark used to signify when a console has made it to the main stream. But after they sold a million saturns they decided to raise that marker :) The dreamcast had to sell a couple of million in less than a year before people admitted that it went main stream.
  • Remember, the INTENT of piracy laws is to allow people to protect the product of their hard work and not have some 3rd party make cheap knockoffs of it and undercut the author into bankruptcy.

    But what about my rights as a citizen? The Bill of Rights states:

    The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no Warrants shall issue, but upon probable cause, supported by Oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.

    This means that companies can't go through my personal belongings and steal things that are rightfully mine.

    I think YOU are missing the INTENT of piracy laws. Piracy laws deal with piracy. Piracy is defined as "an act of robbery on the high seas." I really don't see the connection or application of piracy laws to the issues you have presented.

    ------------------
    Don't tread on me!

  • Who the hell is going to want to reverse engineer the TURBOGRAFX 16. Seriously. I just bought a Nintendo and Genesis from Funcoland, and they don't carry TurboGrafx ANYTHING. There's a reason.
  • So if you write a program and I get hold of the object code, I should be able to look at the organization of bytes in the object code and duplicate it?

    I don't think so.

  • by NEOGEOman ( 155470 ) on Wednesday June 21, 2000 @04:45PM (#984867)
    It's funny how my site often gets overlooked - perhaps 'cause I don't code it's not as cool.. ;)

    www.gamesx.com [gamesx.com] is the inernet's largest collection of gaming hardware references bar none, as near as I can tell. If you've ever wanted a pinout, it's probably there. I'm an update slacker though, so the last thing I had up was a bit on the neato analogue buttons on the PS2 pads.

    There's also a mirror of Joakim Ogren's fantastic Hardware Book.
  • by goingware ( 85213 ) on Wednesday June 21, 2000 @07:42PM (#984868) Homepage
    It's important to understand that the reason that reverse engineering is legal, is that if a company wants protection for its technology, they ought to patent it.

    The whole point of patents is to bring innovations into the public domain in return for granting a monopoly of limited duration.

    A company that chooses to use trade secrets instead of a patent is declining the protection that patents offer, and is also withholding innovations from ultimately being in the public domain. There is no public interest in giving them protection.

    I would suggest that for this reason reverse engineering is in the public interest. Either the innovation is brought to light forceably, or the company follows the proper route and brings it to light with proper documentation as is required by a patent.

  • The other also deals with death, since parking in the Doctor's Only spot at a hospital slows down the doctor trying to save a near death patients life.

    If it were that urgent, I'm sure he could park on the sidewalk.

    I do see, however, how reverse-engineering could _save_ a life in when the supporter of a proprietary heart monitor is out of business.

    If the company is out of business, there's no-one to pay the lawyers to sue you.

  • There are at least two video game stores in my neighborhood that "rent" PC games.

    Vermifax
  • I really dislike the fact that with every new generation of consoles you have to replace all your controllers, and software has to be rewritten from scratch... think about a game header including the minimum requirements (memory, colors, screen size, processor speed...) an open console like that could stay pretty much backwards compatible within the same processor family.

    I think they have a game system like this...it's called a PC.
  • The US parking its Navy off the coast of Britain ???

    Makes me want to go join the US Navy :-)
  • Figure this. The hardware in an N64 is basically a baby Indy, circa 1996 or so. That's still pretty respectable horsepower even today, at least outside the Wintel world. It's been cracked pretty wide open, it seems.

    Two ideas, one hardware, one software. Hardware, an N64 cartridge with an Ethernet port and a USB adapter for the controller port. Software, Linux N64 (could in theory be based of the existing MIPS/SGI port, no?).

    Okay, now, everyone repeat after me...

    "I'd love to see a Beowulf of those things!"

    Think about it... heavy-duty processing power for US$100 a box, and you could fit about eight of them on one shelf on a standard rack. You'd spend more money on the hubs than the CPUs...

    /Brian
  • ehhh, you're missing the point of what i said. of course, this is because the point was very badly written in the first place, but still.

    Note the sentance about compatability and replacement not being quite the same thing. With a playstation, you are selling nothing _but_ the API. If you duplicate the API you duplicate _everything_. WIth windows, on the other hand, there are things other than the API there-- interface, stability, hardware compatibility, config utilities, etc. Whether or not windows _has_ any of these things is a matter of opinion, but that's not important. the important bit is there's _something there_ that Microsot can use to control its destiny. In other words, with windows, -it is possible to seperate the api from the product-. WIth the PSX, -the api IS the product-. With a PSX, by the very nature of what it is you're buying nothing but compatibility, and thus if you duplicate compatibility you duplicate everything that Sony could possibly put into the machine to get you to buy it.

    The important part of the distinction here is that the Wine people are actually _creating_ something, allowing you to do something that was not possible before. "running playstation games without a playstion" is not really as far as i can tel something "new" unless the thing you use in place of the playstation is distinguishable from a real playstation in terms of implementation.

    I wasn't trying to say Bleem or VGS were neccecarily immoral. I personally don't think they are at all. They're maybe in my eyes a bit more questionable than something like SNES9X, where the hardware you are creating compatibility with is no longer for sale. But still they give you something that is not in the box with a normal playstation-- namely, the ability to run things on your _existing hardware_. This may be a fuzzy distintion, but still one that think applies. And since my entire reason for writing in the first place was to point out that the whole issue itself is fuzzy.. -_-
    The passage you quote was meant to apply to _hardware_ _console_ implementations, not emulators, and i don't think i made that at all clear. Again, i was tired.
    So the issue to me is whether the reverse engineer has _created_ something-- has made something _new_ possible, has either combined ideas in a new way or produced new functionality, has made the implementation and not the api the thing you buy. Wine does this by letting you use such things like the x window system, protected memory that works such that if MSWord goes down httpd doesn't, etc-- things very much outside of the API. Interestingly enough, Bleem [and maybe vgs.. i'm not sure?] does this too-- add something new, create something, provide advantages in _implementation_. I'm referring to [among other things] the fact that because it takes advantage of your 3d card to do its rendering independently, Bleem actually is able to display some games at a a much, much higher resolution than a normal playstation can [becuase a normal playstation uses a television, and TVs have awful quality..] and so you don't wind up with just the same blocky graphics you'd have in a straight every-pixel-where-the-PSX-wants-it implementation. If you've ever seen Wild9 on bleem screenshots, its amazing.. But anyway here in _addition_ to the API and the impressive reverse engineering feat, Bleem has actually created new functionality.

    The GPL has nothing to do with anything here.

    I hope i made my point a little clearer here. Please let me know if i did not.
  • "Did your Slashdot submission get declined? theGEEK will take it!"

    (rant)
    Are you a hairy-backed, dateless freak who's submission was declined by Slashdot? Is your life so empty that your day will not be complete until you are acknowledged as one of thousands of geeks who saw the same article as you? Don't mind posting on some other wannabe copycat lame-ass geek news site? the GEEK [thegeek.org] wants your story!
    (/rant)

    Sorry. Had to be done.

    seanmeister

  • I'm using it to introduce my children to assembly language programming and basic computer architecture.

    I can just see myself growing up in *that* household. "Assembly again!? Forget it. I'll do the dishes tonight." :)

  • Oh that hurts coming from an AC...
    seanmeister
  • I bet that if this happens, somebody (sony, playstation, nintendo, or even microsoft) will throw some sort of lawsuit out. I mean, sony did one for bleem!, to think of what they'd do for reverse engineering........
  • Yes, but its well known that for a good portion of a consoles life the maker actually looses money on each console sold, and makes it up on games and peripherals. So actually, you are saving them money by not buying the systems and only the games (in the PSX's case)! :)
  • It is only legal for Blockbuster to rent games because they have made special deals with the publishers. No-one has made these kind of deals with PC software manufacturers... I guess there probably isn't a big enough market to justify the cost of creating copyright protections for rental and then factoring in the cost of what gets pirated despite the copyright protections. Macromedia's ESD techology could probably be modified for rental pretty easily... it would just have to be changed so that: a) The timer is reset every time you install the software. currently Macromedia uses a registry key or something to make sure you only instal the trial version once. B) The installer program self-destructs. Then you could go to a site, pay to rent the software for 30 days, and download the installer program. You could do this whenever you wanted.
  • If you were in a country that didn't respect the original patents ('cause not all do) or that don't have laws against reverse engineering - and then you released the info as an "open source" project... would the cat be out of the bag?
  • by Anonymous Coward
    The information for most of these (excluding really only the Dreamcast) has been around for a long time. Emulators (and very good ones) exist and have existed for most of these systems for a long time. People have been reverse engineering the original Nintendo system for at least 4 years if not longer. I'm just not sure why this is deserving of a news story.
  • Q: What is an Xbox?
    A: Vapor(hard)ware from a monopolistic company in Redmond.

    Q: What does an Xbox do?
    A: All things X (where X is equal to any market the redmond company doesn't currently rule with an iron fist).

    Q: How do I reverse engineer an Xbox?
    A: There is nothing to reverse because there is nothing there (thus the term 'vapor').

    Q: Does Steve Balmer look like a drunken frat boy?
    A: Yes.

    Q: Is reverse engineering an xbox legal?
    A: Yes! Reverse engineering something that dosn't exist is often refered to a as a thought experiment. It's all legal.

    Q: Why is Hemos so cool?
    A: Some things are just natural.
    ___

  • Blockbuster has ownership licenses on every copy of every videogame that they rent. They have special licenses which state that the product can be resold, which is pretty common in software licenses for corporations. When Joe Average picks up a copy of quake 3, he can't rent it out to the neighborhood because the license he bought the game with does not include the 'reselling' or 'renting' part.
  • by Whelkman ( 58482 ) on Wednesday June 21, 2000 @04:47PM (#984885)
    Reverse engineering has been around for a long time but was not tested in court (I believe) until 1992 when Sega brought a suit against Accolade. Accolade allegedly violated intellectual property by figuring out how Genesis cartridges worked and producing their own.

    Accolade won the case by stating that reverse engineering was legal for decades without suit (among other statements, of course). One of the stated examples was the telnet terminal application, which relies on backwards engineering of the old DEC and Tektronix terminals of the 70's.

    Because of this case, a legal precedent was set (albeit from lower than Supreme courts) which said that reverse engineering was legal and did not violate trade secrets or intellectual property.

    There is also an other Atari vs. Nintendo (remember the Donkey Kong cartridge tiff in the early 80's?) case which had similar results.

    For more information and a better explanation, try here [fenwick.com]
  • by thogard ( 43403 ) on Wednesday June 21, 2000 @03:16PM (#984886) Homepage
    You can pick up RPMs for GCC at
    [50megs.com]
    http://n64dev.50megs.com/

    Then all you need is a transfer device to copy your code to the N64 but Nintendo has sued Bung [bung.com.hk] so they have stopped selling them.
  • The difference in the law, at least, is that reverse-engineered "emulators" do not use any of Sony or whoever's copyrighted material. The material was produced completely by the person who reverse-engineered it. In the case of pirated software, obviously Microsoft or whoever's copyrighted code was simply re-distributed. You have a point, though, philosophically.
  • The timer is reset every time you install the software.

    See the false assumption? Software need not be "installed" to be used.

    Software could be easily made to run directly off of CDROM. We only install onto our hard disks the many software titles we bought AS A CONVENIENCE to avoid lots of disk swapping, but this would not be a concern for a rental version of the SW now would it? Non-installable CD versions of software would also cut down on piracy. It's more desirable to pirate if you can have every pirated app all on your HD for easy access. Frequent CD swapping makes piracy less attractive, but perfect for occasional rental use! And the try before you buy nature of run-off-CD-apps would get public exposure of your SW and encourage more people to buy the full/installable version!

    No need for trickery and keys and expiring and self destructing code. Run from CD. Better still, entire rentable, self-contained, applications that are fully bootable off of CD.

    The myth that software is not rentable because of the difficulty of "uninstalling" it has been thoroughly debunked here by yours truly.

    --

  • by shepd ( 155729 ) <slashdot.org@gmai l . c om> on Wednesday June 21, 2000 @04:52PM (#984889) Homepage Journal
    >How come if I undercut software sales by making and selling software copies, I am called a pirate?

    Your copy is identical. You would be breaking the law if you made a Nintendo(tm) that used the identical parts and identical shape and identical trademarked name on the front of it.

    >Yet if I undercut hardware sales by making and selling software copies of the console, I am called a emulator who "reverse engineered" this console, or other words that legitimizes what I did.

    Reverse engineering implies that your "copy" is similar, not the same. You certainly CAN do this with software.

    For example:

    When the IBM PC was released, it was $3000 (or so). Much more expensive than IBM should be charging. So Compaq decided that they could make money by selling a compatible (read: clone, copy) machine. But they were stuck: To make it compatible, they needed to use the IBM BIOS (which IBM wasn't going to license to them). But, ahhh, why not do to the BIOS what they had done to the hardware? Make it compatible, but not identical.

    They hired engineers without a clue of how the IBM BIOS was programmed, stuck them in a room, and had them reverse engineer the IBM BIOS, without looking at the code. Just by trial and error, and scientific hypothesis. They then created their Compaq BIOS, which provided the same services, but using their own ideas. And, there you have it, a 100% compatible BIOS not using any IBM code. Totally legal, since NO copyrights had been broken. And, this is an example of "copying" software.

    Now, if you wanted to, you could do the same with Office 2000, if you had the time and money and wish to do so. You wouldn't be breaking any laws (except, perhaps, "look and feel", which could be worked around). You would end up with Office 2000, using your own personal code set. In essence, a copy, or clone of the software. But NOT a pirated copy.

    That's how a console is legally reverse engineered any copied.

    >Either way, my actions hurt sales by copying someone else's product and not producing anything new.

    You produced something new. You produced a new console that works like the old one, or a new software that works like the old one.

    >How is that good?

    Because it provides the consumer with protection should the original company go out of business, or choose not to continue the product. Imagine if there were no IBM clones, but IBM had become popular. What if, somehow, IBM suddenly went out of business? Ohoh... now there's trouble. But, now with clones abounding, the world won't come to a standstill today if IBM dives.

    Also, for example, those of us who still use Nintendo (original) (like me) like the fact that clones are avaliable since Nintendo has dumped this console. See how the world benefits from this? When my Nintendo original sets on fire, I can buy a clone, and still legally use my cartridges.

    And, amazingly, it benefits the original company. What happens if/when Apple goes out business? Yes, you Macintosh users, you are ROYALLY screwed. You can join the Amiga lot looking in garage sales for parts. :-) So I, like a lot of consumers, choose to avoid this possiblilty by not buying Macintosh. This leads to less market share, and less exposure for the company. Less sales. Bad. If Macintosh were still allowing clones, well, I'd have a Mac, NOW (once the clones force the prices back down to earth).

    >Now either BOTH activities must be evil or they must BOTH be allowed

    No. One is illegal, and bad. The other legal, and good.

    Verbatim copying is illegal because you add nothing of value. Making _similar_, _compatible_ things is not, because you add the value of protection to the consumer. Why? Because a reverse-engineered copy proves you understand how the original works. You can therefore improve upon it. A verbatim copy shows you have no understanding of the device/software, and therefore cannot sustain the life of the device.

    Oh, here's another few examples of copied, but NOT pirated software: Freedos. Linux. DR-DOS. OpenDOS.

    Freedos and DR-DOS and OpenDOS are compatible with MS-DOS (reverse engineered). Would you tell me that Freedos, DR-DOS, and OpenDOS add no value to MS-DOS whatsoever?

    Would you tell me that Linux adds no value to Unix whatsoever?

    The fact is, the law, and morals in general, are designed to protect the citizens as a group, and not some single company. It's a free market. If your company can't stand some legal competition, then pack up and go.
  • But in Japan, this console was big news. It was the first to introduce the CD-ROM, but more than that it had some very successful games such as the Ys series, Alien Crush Pinball, and who could forget the Bonk series. Unfortunately, they were very lax in exporting titles to the US, leading to a very poor game selection, and finally its demise. The Turbo is probably one of the most underappreciated systems because of its mismanagement.
  • by thogard ( 43403 ) on Wednesday June 21, 2000 @05:02PM (#984891) Homepage
    While there are emulators for the N64, they don't emulating the hardware, they emulate a MIPS cpu and watch for calls to known functions. Those functions are then written natively in things like open-gl. Since my PC is about 5x faster than my N64 running the same code, its in the realm of emulation but if anyone made use of the reality coprocessor (RCP) in the N64, there is no way a PC could emulate it at anywhere close to real time. It can peak out at something like .5 gigflops. Now it would be nice to get a datasheet on the RCP but its not going to happen unless it leaks out of SGI since Nintendo doens't even seem to use it in its own games.

    This brings up why it won't matter if the lastest game platform has the latest and greatest unique hardware. There is no game company that is going to spend the R&D money developing a 1 platform game for a console. If they count on the hardware then they can't port it to other platforms.
  • The Sega / Accolade case was watched closely by more than just the game console sector, as you mention there were other "long standing" issues with other reverse engineering projects... 1. Automobile Ignition and Engine management units 2. Sky/BSB set top boxes for sat - TV. 3. Video /DVD /TV EPROM scratching. And lets not forget the dig daddy of them all.... how can I make my mobile phone work for free ???. With all of these "projects" the net has made the information available, the next step is a DataMan and a deve environment and combined with the library for the chip... away you go.
  • by mcc ( 14761 ) <amcclure@purdue.edu> on Wednesday June 21, 2000 @10:18PM (#984893) Homepage
    You can't claim there's anything wrong with making money by creating a better product that does the same thing as something already out there. Lets say i buy a copy of Clarisworks 4.0. It does most of the same things Microsoft Word does. It reads most Microsoft Word documents. I no longer have a reason to buy Microsoft Word. Well, that's certainly a lost sale for Microsoft. Is that piracy?

    Copying a creation is bad.
    Copying a functionality is not bad.
    The second implies, as the parent post said, you have created something. You have possibly created something for "immoral" [making money off others' work?] purposes, and it's possible the thing "created" is merely a creation in the form of a reimplementation of something that someone else created. But you _did_ something, at least, and almost certainly in the process added [created] some sort of functionality that was not there in the first place. [even is said functionality is just a nifty cheat mode that is nothing more than a modified version of a thing you used for debugging.]

    You may notice my arguments are slightly contradictory. That's because the _situation_ is contradictory. _There Is No Right Answer Here!_ No matter how the laws are set up, there WILL be a way for someone to get screwed who does not deserve to get screwed.

    Because when you buy something like a playstation, you aren't paying for a creation. You're paying for a functionality, the functionality of whatever it is the program/console does. You probably bought Clarisworks for a functionality [writing documents] as well, but that's different, because there there are other factors _besides_ functionality to consider-- implementation, interface, etc. You can't say the same thing with a PSX. These days, making a console is _selling_ an API-- yeah, yeah, you're selling hardware, sure. But kickass specialised hardware is easy to come by these days. These days the important part is constructing a good, powerful, usable API, making it available and attractive to developers and the public, and recruiting and organising and orchistrating developers and basically just building a _community_. This is where all your expenses go, not into constructing the hardware it runs on. And when you're reverse-engineering a piece of hardware, you just have to worry about the reverse engineering and the piece of hardware; the community is just, well, already there. Sure, Sony makes money off the community [developer liscences == very very lucrative] and not the actual hardware PSX itself, but at some point when the hardware becomes irrelivant because things like Connectix VGS have become so mainstreamed and the costs of emulation can be so easily absorbed by just using a faster or specialised chip.. well, you start to get to the point where you can question the point of creating the API in the first place since it will just be used, and then, well, what are the console developers going to sell?

    But see, there isn't anything you can _do_ about it. You can't prevent someone from reimplementing the PSX as a different piece of hardware with the same functionality without simultaneously preventing things like Wine [which i don't think anyone would call immoral unless they sucked] because they do the same thing at the core-- it's just that one is bad because it replaces the PSX hardcore and serves no purpose beyond making money for its creators, and the other , while it is possible to use it _in place of_ windows, does not replace windows itself, and actually creates something by allowing you to do something not possible before, running windows apps run without having to use linux. There's a difference here, between compatibility and replacement, which is subtle, hard to define, and impossible to make into a law. Are you going to start saying people should be not allowed to use certain functionality no matter how they do it? Are you going to start saying nobody should be allowed to make something that does the same thing as something already existing? That's pretty foreign to current patent law, which doesn't allow you to patent an _idea_-- just a _process_. You can't patent the solution, just the steps you took to get there from the problem. You can't stop someone else from taking a different path. And you shouldn't be able to. The reverse engineering exception in the patent laws are there for a reason, to prevent people from using their control over their product to hurt people based on their dependance on what the product does, or doing things like purposefully breeding incompatibility just to hurt a competitor. Note that the patent exception states "for compatibility reasons", which neatly leaves out anything that would actually simply stealing an idea in most cases.

    Any action which is designed to make compatibility more difficult will in the end remove choice, and lack of choice very rarely [and NEVER in this context] does _anything_ to consumers other than hurt them.

    "Not illegal" != "moral" may be true, but so is ("not moral" != "could be illegalized" || "not moral" != "should be illegalized") ...
  • > one is bad because it replaces the PSX hardcore and serves no purpose beyond making money for
    > its creators, and the other , while it is possible to use it _in place of_ windows, does
    > not replace windows itself, and actually creates something by allowing you to do something not
    > possible before, running windows apps run without having to use linux.

    you mean like allowing you to run playstation games without using a playstation?
    the rest of your argument was compelling, until you brought up this point.
    are you saying if bleem! or VGS were GPL they'd somehow be 'better'?
    The Faceless Master
    http://www.fighters.net [fighters.net]
  • The courtyard, then. That's what I meant, not the street ;)
  • Problem with that is that it's difficult to see how the economic model would work. Game consoles are sold at a loss, with profits being made on licensed peripherals and titles.

    With a spec that anyone could manufacture, how would manufacturers make money? They either have to sell the consoles at a profit (which is going to be hard to do, given that they'd have to be priced about twice the cost of competing 'closed' consoles), or there needs to be some scheme for them to get a kickback on title and peripheral sales.

  • ...so neither do many data havens. There is for example the Principality of Sealand, which is a small artificial island in British territorial waters that is, due to a glitch in British law, a sovereign principality (aka princedom). Sure, the US could send a few carriers to surround the isle, but then they'd have to send those into British territorial waters, which would be rather awkward, wouldn't it? :)


    )O(
    the Gods have a sense of humour,
  • Theft is theft. Accept it.

    And Piracy isn't theft, since you aren't actually depriving the original owner of the property.
  • by lightspawn ( 155347 ) on Wednesday June 21, 2000 @03:18PM (#984899) Homepage
    Imagine the possibilities of creating an open-standard console anybody can manufacture...

    Openboy, anyone?

    I really dislike the fact that with every new generation of consoles you have to replace all your controllers, and software has to be rewritten from scratch... think about a game header including the minimum requirements (memory, colors, screen size, processor speed...) an open console like that could stay pretty much backwards compatible within the same processor family.

    Of course, you'd argue that we already have computers for game development which can do everything a console can; but we all know that's not strictly true, and there's hardly a gameboy-like computer for handheld development. (Color palms? I don't think so).

  • Actually, the PS2 can use both controllers and games from the original PS, with only a few exceptions.
  • A great idea would be for new consoles to all support standard USB controllers. There's already a pretty good number of them, and then you could keep your favorite Ultra Programmable Speed Demon Dual Shock Gamer's Power Controller Plus and use it on all of your consoles!

    Actually, although I don't know anything officially, it seems that PSX2 supports USB controllers.

  • The problem with so called datahavens and off-shore hosting is that the A.Root server IS in the US and can be modified by a court order (see the e-toy/e-toys dispute). If your off-shore ISP is going to have it's domain name revoked because of your site, guess what they are going to do. Even if they do take a stand, the US can pressure the telcos to cut your service.

    ps.. I'm not parinoid, but if all else fails, they (the copyright owner) could just DoS you into 300-baud-land

  • by NaughtyEddie ( 140998 ) on Wednesday June 21, 2000 @03:34PM (#984903)
    Arguments which end "either THIS or THIS but not BOTH so WHICH IS IT" are usually fallacious. This one is no exception.

    There's no law against reverse-engineering software and rewriting it, just as there's no law against reverse-engineering hardware and redesigning it. It's simple. Copying hardware is just as illegal as copying software. If I were to take the back of a device, copy the PCB and populate it with the same components, it would be illegal.

    It's the difference between COPYING and REVERSE-ENGINEERING.

  • by Anonymous Coward
    Lets not forget the Virtual Boy (Nintendos ugly stepchild). Full information on developing for the VB can be found at http://dana.ucc.nau.edu/~dbt/VBMain.html
  • Did anyone ever make a usable N64 emulator? How about one for linux :) Now that would be nice. :) :) My, the trolls are out in abundance this evening...
  • The site mentioned in the article that clearly states 'Nintendo' only actually has Super Famicom/SNES information, and that seems quite outdated as it is. If you're looking for actual original NES information, nesdev.parodius.com [parodius.com] is far more useful.

    The only things I _couldn't_ find throughout it all were entirely accurate cpu timings of the thing. I've been trying to get something remotely close to accurate, and just haven't been able to dig anything up. (240 lines, 3 for reset despite having vblank bit(NOT interrupt) go off, and then 19 of vblank. The opcode timings are textbook, and I'm running on 113 cycles/line ... I get the feeling that there's something special about the opcode timings for the bloody thing, though. Something isn't adding up right here.)

    Does anyone know where to find any such information? I have had no end of dead ends in the process.

  • by Anonymous Coward
    It's legal, and several court cases back this up, but companies will sue anyway.
  • >Remember, the INTENT of piracy laws is to allow people to protect the product of their hard work and not have some 3rd party make cheap knockoffs of it and undercut the author into bankruptcy.

    Piracy laws, eh?

    No, just old fashioned copyright laws. There to protect the consumer from accidentally purchasing false copies of books printed on a printing press. That's the TRUE spirit of copyright. It doesn't directly protect the company, it directly protects the consumer.

    Sorry, but a "knockoff" is a product designed to fool the buyer into thinking it is "the real thing". It is a fake. Compaq didn't do this with their clones: Even if they made cheap junk, it CLEARLY said Compaq on it, not IBM. This doesn't hurt IBM's sales, since soon the company making cheap junk will be found out, and the good publicity for "quality" IBM products will improve sales drastically.

    Now, of course if the cheap junk WERE a knockoff, it would look identical to IBM units, and have an IBM logo on it, just as knockoff jeans have a "Levi's 501" red tab on the back pocket. They are trying to fool YOU, the CUSTOMER, which is what copyright law is about stopping. It ISN'T about protecting the sales of some company. That is what the free market is about.

    You are certainly NOT taking the sale away from another company when you clearly state you aren't that company. The consumer has chosen not to buy from the "original" company.

    If you can't match the competition, try another idea.

    >But it's functionally identical to the original. It replaces the original 100%. That's a lost sale of the original.

    If we all thought like that, we'd all be driving black cars. (Ok, I won't hold you in suspense: Henry Ford refused to release a car in any colour but black). We'd all be using Wegner and Victorinox swiss army knives. The model of freedom is choice. There would be no leatherman if reverse-engineering didn't exist. I like freedom. I like to be able to choose. That's what copyright is about.

    When you buy a leatherman, do you do it because you didn't realise it wasn't a Victorinox, or do you do it because it offers more value to you? That's the difference between a fake or a knockoff, and a reverse-engineered product -- the choice. And, like I've said, that is what the free market is about.

    With a knockoff Victorinox, you ARE causing the company to lose a sale -- you would have bought a Victorinox, that is what you wanted. Not a "V1ctorin0x". You didn't have the choice, "V1ctorin0x" made it for you. That is very wrong.
  • About 10 years ago I reverse engineered the file format for Chuck Yeager's Flight Simulator (I think that was the name). It was the one where the player was a test pilot.

    My technique was really fun. I would change a parameter in the file, by a little bit at first, and then by a large amount. Then, I would test fly the plane.

    It was just like real life test flying! Sometimes changing values would make the plane unstable above 300 knots, and you wouldn't know that until you actually flew the plane. Or, you might get the controls crossed and to roll left you would have to push the stick right. I started making the reverse engineering a regular part of the game. My goal was to figure out what something did, without crashing the plane on any of the test flights. Sometimes that was impossible. I wish I kept the list. Heck, I wish I kept the game.
  • by goingware ( 85213 ) on Wednesday June 21, 2000 @03:39PM (#984910) Homepage
    I don't know much about reverse engineering hardware, but I thought you might find it interesting to know how I reverse-engineered a file format.

    A company wanted to allow its own movie production management product interoperate with a motion picture project management database. It was like a regular project management tool that had specialization for things of interest to the movie industry, for example there was a specific category for scheduling potted plants to be present on the set as well as manage the expenses involved with these things.

    I think it was called Movie Magic Scheduling.

    The publishers of movie magic were very protective about thier product and didn't want to cooperate with my clients, so they hired me to reverse engineer the product.

    The initial agreement was that I would do this in a week for $1500. It took three weeks and I was working long days, but in the end I was able to take the whole production schedule for an actual full-lenth motion picture and run it through a parser I wrote that dumped it out into an intelligently interpreted text file.

    I started by doing this: I created a new, blank document. Then I created a second document with one of the fields containing only the letter "A". Then I made hex dumps and used a comparison tool to compare the hex dumps.

    I quickly found that there was lots of unexplained junk in the files so I wrote two tools that I would run before launching Movie Magic to create each document. This was on a Macintosh. One tool would allocate all available memory, set it to zero, then free it and quit. The other tool would create a large file set it to zero and quit.

    Note that on Unix systems writing a page full of zeroes to a file is optimized to not write any data at all; however on a properly written system virtual memory pages and disk sectors are zeroed before being allocated to prevent leaking of confidential information.

    Then basically I would note what change in the file and make a hypothesis as to what the cause of the change was, and test out my hypothesis by trying to predict what a further change in the file would do.

    I wrote two things to document this, one a file format spec in a word processor, second a C program to parse the file. As my knowledge of the structure got more complex, I could implement the knowledge in the file parser and start dumping files through it until an error occurred. Then I could look more closely at what caused the exception.

    The key to being able to do this I got from Robert Ward's book Debugging C (I think it is out of print). That is simply to use the scientific method when debugging software (or reverse engineering it).

    The scientific method is simple in principle but it takes some discipline and creativity to use it effectively.

    • Observe something
    • Make a hypothesis as to why that was observed
    • Design an experiment that will test that hypothesis. It is important that your experiment tests the hypothesis that you have made, and not something different.
    • Carry out the experiment to see if it confirms your hypothesis.
    • If it does, you have learned something
    • If it doesn't, you have to make a new hypothesis
    All the while you keep watching out of the corner of your eye for weird things to happen.

    One thing that helped a lot with this is that I'd spent a lot of time working with word processor file formats while maintaining a spellchecker, and I'd designed a binary graphics format. So I knew what were the common things to do in a file format, and a lot of things could be guessed directly.

    It would have been a lot harder if the format was designed to be hard to reverse engineer, but the information has to go somewhere. Even with encrypted data, with a situation like mine you can do what is called "chosen plaintext cryptanalysis".

    For another example of that, during World War II we'd cracked the Japanese cipher, but in addition to the cipher the Japanese used code words. To crack the code words, when we suspected that the Japanese used a certain code (call it "FOO") to refer to midway island, naval intelligence sent a command to Midway via secure channels asking them to report that their water desalinator was broken down - through insecure channels.

    After Midway sent the request for a new desalinator, we intercepted a japanese transmission saying that "FOO" had a broken desalinator. Because they had also said they were preparing a major attack on "FOO", we knew to meet them with our aircraft carriers.

    The choice of hypothesis is a problem here. Robert Pirsig talks about this in Zen and the Art of Motorcycle Maintainance. For any given observation, there are a large number, possibly infinite number of hypotheses that would fit the observed facts.

    Choosing which one is worth taking the trouble to test calls for scientific creativity; ultimately the choice is based on scientific quality, and one mark of a good scientist is that they have a sense of what is right - and the flexibility to recognize that their sense can be wrong.

  • If you put hardware in a science fiction type replicator and simply copied the hardware, that would be illegal. But studying how the hardware works and reacts in order to design and build something that does the same thing is not illegal.

    Just as it's not illegal to write an operating system that copies and acts the same way as UNIX.

  • Actually, you are preventing from recouping more loss by not buying the system itself.
    --
  • This already existed. It was called 3DO, and it wasn't that exciting.

    Now, 3DO is a moderately to highly successful video game company, somehow having managed to stay alive. I guess all their poor EE employees are in other work, now.

  • Doesn't Occam's Razor force you to select the simplest hypothesis that fits the facts? That must help cut down from the theoretically infinite number of hypotheses.

    Interesting post ... I've done a huge amount of reverse-engineering myself, mainly of games: Manic Miner, Jet Set Willy, Airball, Wolf 3D, DOOM, Grand Theft Auto are all games I've reverse-engineered the file formats for. I typically don't bother with the scientific method for those, since I have no experimental apparatus (effectively, I had the files and only the files - no file editor, and no file interpreter, since the hacks were done on machines which didn't [yet] have ports of those games). I find that with experience you can guess the large-scale structure, then the small-scale structure is the hard part ... the hardest reversing I ever did was the runlength-compressed sprites in Wolf 3D. That took a couple of weeks ... but it was well worth it! ;)

"If it ain't broke, don't fix it." - Bert Lantz

Working...