QUOTE(TheDarkSeed @ May 14 2009, 02:03 PM) <{POST_SNAPBACK}>
I'd feel bad about pirating DS games if they were good, but they're not, with the exeption of a few titles(VERY FEW).
Why would you pirate bad games then, personally, I'd rather not play bad games. Furthermore, do you happen to buy the good games that come out? If you're like most people I'd say no. Look at GTA: Chinatown Wars, that game got pirated to HELL and bombed in retail markets. This is exactly why developers are pushing for anti-piracy options on the DS, because its too convenient to download, drag it on to a micro SD card and play for free. Its pretty ironic that the people complaining about how they'll have to wait for patches are the reason why games are getting protected in the first place.
I noticed someone in this thread going on about how games are going to be signed with keys or something equally ridiculous. Nintendo doesn't allow individual signing of carts because they MASS produce them and it would be a waste of time and you are completely wrong. Instead - as the original post mentioned - it will be looking for patched segments of code.
DS games running on a flash cart need to be modified. Take for example saving. On a legitimate retail cart, there is a dedicated chip located on the cart which saves usually around 256kb of data. The Nitro SDK, which is used to develop DS games, comes with a chunk of code that allows a developer to read and write data to this chip. The majority of flash cards for DS lack this chip, for a good reason. In the GBA days, most games used around 64kb of Save memory, so many flash cards used a similar sized chip, until one day Nintendo started releasing games that used 256k, making games incompatible with a number of existing cards. To work around this lack of a save chip, the loader software searches a ROM for any function calls to Save or Load data, and redirects it to custom built function which reads and writes to a FAT filesystem. There are numerous other patches that need to be done to allow a game to work as a file loaded from a disk instead of a ROM chip.
I suspect this is where this particular protection is going to strike. I'll show some pseudo code:
CODE
checksum = CalculateChecksum(SaveDataA)
if (checksum != correctChecksum)
enter_infinite_loop
if (checksum != correctChecksum)
enter_infinite_loop
A solution like this is easily crackable, and once it is you could find the hex location for its code, create a signature and after a flash cart firmware update it could be automatically patched away. The developer of this protection is likely going to customize the code to do different things in each game. Say the above code was included in Pokemon Gold, the following could be included in Pokemon Silver:
CODE
checksum = CalculateChecksum(LoadDataA)
if (checksum != correctChecksum)
jump_to_random_address
if (checksum != correctChecksum)
jump_to_random_address
It's just as crackable, but its significantly different enough that you couldn't get a signature for it and remove it. The beauty of this system is you could include multiple variants throughout the game, say the first one when you start the game, and the second one when you reach the first boss. Many scene crackers don't actually play the games very long as they are trying to release as fast as possible, and this sort of attack has been used successfully in a Playstation Spyro game which resulted in a fully working patch coming out 3 MONTHS after its initial release. Keep in mind that the majority of game sales are made in the first weeks - first month of being on shelves. Even a few days will frustrate casual pirates to go and buy the game if they want it badly enough.
Of course this protection will be crackable, the developer is absolutely correct, its just designed to piss off casual people enough that they will buy the game instead because its easier.



Find content
Not Telling
Display name history


