In the early days of the original PlayStation, Sony and SN Systems took GCC and modified it to become a compiler for PlayStation. However, SN Systems made a number of additional modifications, such as by adding dongle-based copy protection to protect "their" work.
This crap finally stopped a few years later when game developers complained and Richard Stallman got involved.
This incident is rarely heard about because PSX game development was under NDA. However, an NDA that covers GCC is illegal, because it would restrict the rights of the next user to copy GCC (thus automatically revoking Sony's right to copy GCC).
The PlayStation 2 compiler is now distributed with clear notice that the GCC and binutils portions are under GPL and not covered by the NDA. They also come with source code. They are in fact the same source tree for professional developers as the GCC used in PS2 Linux.
myria
M$VC 6 C run-time bug in swscanf
on
Pet Bugs?
·
· Score: 1
There's a stupid bug in swscanf() I found at work ^^
int a, b, c, d;
swscanf(L"123.234.12.34", L"%d.%d.%d.%d", &a, &b, &c, &d);
That crashes the program. swscanf() is trying to write to the first parameter, which M$VC puts in a read-only section.
Stupid bug, took me hours to figure it out. ^_^
Re:The chair belongs in the Smithsoniam
on
Trek Prop Collecting
·
· Score: 2, Interesting
This is exactly the type of thing the Smithsonian needs and wants for their media section. There was a lot of interesting TV stuff when I went there, and I'm sure this would be a hell of a nice addition. Question is, does the Smithsonian have $100000 for a chair? Aren't they funded by tax dollars?
myria ^_^
Putting a dongle between the DVD-ROM and the motherboard technically could allow you to play copies. You can't play unauthorized "games" like Linux this way, because the RSA digital signatures on the games would still be checked.
myria
Many proofs saying that there can be no algorithm that performs X make a fundamental false assumption: there is infinite memory. Just because with infinite memory some algorithm can't exist doesn't mean that it can't be done with finite memory.
Consider the "halting problem". The reason no perfect debugger can exist is because it would necessarily have to get into an infinite loop for certain programs. On real computers, however, an infinite loop will not occur. Program H(K, K) will terminate with the correct answer on any real computer. H will recursively act upon K and H trying to figure out what happens. At some point, program H will see a subinstance of itself running out of memory, a "terminate" answer. This will propagate alternately back to the "root" H, which will return the response. Which response occurs depends on the size of memory and other factors, but it returns the correct answer.
Corollary: No program can truly have itself as a parameter. This is because no program can emulate a memory bigger than its own. Compression is ignored because then some inputs are disallowed (IE, random data that before compression was the maximum input size).
Proof that a perfect debugger for some input size exists: Simply manually create a truth table for all possible inputs, and create a program that returns table[input].
In the early days of the original PlayStation, Sony and SN Systems took GCC and modified it to become a compiler for PlayStation. However, SN Systems made a number of additional modifications, such as by adding dongle-based copy protection to protect "their" work. This crap finally stopped a few years later when game developers complained and Richard Stallman got involved. This incident is rarely heard about because PSX game development was under NDA. However, an NDA that covers GCC is illegal, because it would restrict the rights of the next user to copy GCC (thus automatically revoking Sony's right to copy GCC). The PlayStation 2 compiler is now distributed with clear notice that the GCC and binutils portions are under GPL and not covered by the NDA. They also come with source code. They are in fact the same source tree for professional developers as the GCC used in PS2 Linux. myria
There's a stupid bug in swscanf() I found at work ^^ int a, b, c, d; swscanf(L"123.234.12.34", L"%d.%d.%d.%d", &a, &b, &c, &d); That crashes the program. swscanf() is trying to write to the first parameter, which M$VC puts in a read-only section. Stupid bug, took me hours to figure it out. ^_^
This is exactly the type of thing the Smithsonian needs and wants for their media section. There was a lot of interesting TV stuff when I went there, and I'm sure this would be a hell of a nice addition. Question is, does the Smithsonian have $100000 for a chair? Aren't they funded by tax dollars? myria ^_^
Putting a dongle between the DVD-ROM and the motherboard technically could allow you to play copies. You can't play unauthorized "games" like Linux this way, because the RSA digital signatures on the games would still be checked. myria
In a recent reverse engineering session, I noticed that Internet Explorer uses zlib! myria
Many proofs saying that there can be no algorithm that performs X make a fundamental false assumption: there is infinite memory. Just because with infinite memory some algorithm can't exist doesn't mean that it can't be done with finite memory.
Consider the "halting problem". The reason no perfect debugger can exist is because it would necessarily have to get into an infinite loop for certain programs. On real computers, however, an infinite loop will not occur. Program H(K, K) will terminate with the correct answer on any real computer. H will recursively act upon K and H trying to figure out what happens. At some point, program H will see a subinstance of itself running out of memory, a "terminate" answer. This will propagate alternately back to the "root" H, which will return the response. Which response occurs depends on the size of memory and other factors, but it returns the correct answer.
Corollary: No program can truly have itself as a parameter. This is because no program can emulate a memory bigger than its own. Compression is ignored because then some inputs are disallowed (IE, random data that before compression was the maximum input size).
Proof that a perfect debugger for some input size exists: Simply manually create a truth table for all possible inputs, and create a program that returns table[input].
myria
Theorem. All software can be cracked. Looks like someone finally proved something that's been obviously true for a long time... myria