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."
Sega Master System Info... (Score:2)
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.
A defense: complexity (?) (Score:1)
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
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? (Score:1)
Join the mailing list(s) and ask. (Score:2)
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.
Re:What about foreign countries and open sourcing? (Score:1)
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. ;-)
Re:Open console? (Score:2)
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!
Re:There's no law against corpses counting 4 carpo (Score:1)
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...
What about the Japanese? (Score:1)
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. ;-)
Re:Hypocrites. (Score:1)
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?
Re:There's no law against corpses counting 4 carpo (Score:1)
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.
Re:You're all missing the INTENT of piracy laws. (Score:1)
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.
Re:The fallacy of "software installation". (Score:1)
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.
Re:Yes, stealing .h files is still stealing. (Score:1)
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.
Re:Yes, stealing .h files is still stealing. (Score:1)
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.
Re:Open console? (Score:1)
Re:WTF. (Score:1)
Console programming and Reverse Engineering (Score:3)
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
Re:Why is this news? (Score:1)
Vermifax
General information on the Sega Dreamcast (Score:3)
http://www.cdrom-guide.com/ubb/Forum19/HTML/005
http://marcus.mangakai.org/dc/ip0000.bin.html (Dreamcast boot file)
http://semiconductor.hitachi.com/superh/index.c
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/
making something useful from trash (Score:1)
Re:A defense: complexity (?) (Score:2)
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.
Re:How About the Virtual Boy? (Score:1)
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
Re:You're all missing the INTENT of piracy laws. (Score:1)
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!
WTF. (Score:1)
Re:Hypocrites. (Score:1)
I don't think so.
More console hacking... (Score:3)
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.
Why Reverse Engineering is Legal (Score:3)
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.
Re:There's no law against corpses counting 4 carpo (Score:2)
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.
Re:So does video game rental, but not SW rental. H (Score:1)
Vermifax
Re:Open console? (Score:2)
I think they have a game system like this...it's called a PC.
Re:FYI, not everything depends on the US... (Score:1)
Makes me want to go join the US Navy
You know, what I'd like to see is... (Score:1)
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
Re:piracy (Score:1)
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.
Offtopic rant (Score:1)
(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
Re:Console programming and Reverse Engineering (Score:1)
I can just see myself growing up in *that* household. "Assembly again!? Forget it. I'll do the dishes tonight." :)
Re:Offtopic rant (Score:1)
seanmeister
reverse engineering meets the law (Score:1)
Re:Hypocrites. (Score:1)
Re:So does video game rental, but not SW rental. H (Score:2)
What about foreign countries and open sourcing? (Score:2)
Why is this news? (Score:1)
Reverse Engineering the Xbox. FAQ (Score:1)
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.
___
Re:So does video game rental, but not SW rental. H (Score:2)
Reverse engineering (Score:3)
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]
GCC for the N64 (Score:5)
[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.
Re:Hypocrites. (Score:1)
The fallacy of "software installation". (Score:1)
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.
--
Re:Hypocrites. (Score:4)
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.
>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.
In the US, perhaps (Score:2)
Re:Why is this news? (Score:3)
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.
Re:Reverse engineering (Score:1)
piracy (Score:3)
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")
Re:piracy (Score:1)
> 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]
Re:There's no law against corpses counting 4 carpo (Score:1)
Re:Open console? (Score:1)
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.
FYI, not everything depends on the US... (Score:1)
)O(
the Gods have a sense of humour,
Re:Yes, stealing .h files is still stealing. (Score:1)
And Piracy isn't theft, since you aren't actually depriving the original owner of the property.
Open console? (Score:3)
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).
Backwards compatability (Score:1)
Re:Open console? (Score:1)
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.
Re:What about foreign countries and open sourcing? (Score:1)
ps.. I'm not parinoid, but if all else fails, they (the copyright owner) could just DoS you into 300-baud-land
Re:Hypocrites. (Score:3)
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.
Virtual Boy Dev (Score:1)
N64 emulator (Score:1)
Original NES documentation? (Score:1)
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.
Re:How legal? (Score:2)
Re:You're all missing the INTENT of piracy laws. (Score:2)
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.
Re:How I reverse engineered a file format (Score:3)
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.
How I reverse engineered a file format (Score:5)
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.
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.
Re:Hypocrites. (Score:2)
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.
Re:Hypocrites. (Score:1)
--
Re:Open console? (Score:1)
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.
Re:How I reverse engineered a file format (Score:1)
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! ;)