mirror of
https://github.com/LNH-team/pico-loader.git
synced 2026-06-02 09:16:49 +02:00
Add some documentation
This commit is contained in:
@@ -364,13 +364,14 @@
|
|||||||
// MetaFortress is an automated system that replaces the typical way DS games are built. It automatically injects
|
// MetaFortress is an automated system that replaces the typical way DS games are built. It automatically injects
|
||||||
// code inside developer-written game functions that conducts checksums on other functions, including SDK functions
|
// code inside developer-written game functions that conducts checksums on other functions, including SDK functions
|
||||||
// and also other game functions that previously were modified with injected checksum calculations.
|
// and also other game functions that previously were modified with injected checksum calculations.
|
||||||
|
// These checksums work to detect the flashcart kernel patches for ROM reading, save data access, or other features.
|
||||||
// The checksums themselves are randomized: the way they load pointers, access data, update the checksum state,
|
// The checksums themselves are randomized: the way they load pointers, access data, update the checksum state,
|
||||||
// perform a checksum finalization, and compare the calculated result to the expected result, as well as what happens
|
// perform a checksum finalization, and compare the calculated result to the expected result, as well as what happens
|
||||||
// if the checksum fails, are all subject to a high degree of randomization that makes automated static analysis
|
// if the checksum fails, are all subject to a high degree of randomization that makes automated static analysis
|
||||||
// difficult or impossible.
|
// difficult or impossible.
|
||||||
//
|
//
|
||||||
// This is in stark contrast to DS Protect, which had no per-game randomization (except for The Legend of Zelda: Spirit Tracks)
|
// This is in stark contrast to DS Protect, which had no per-game randomization (except for The Legend of Zelda: Spirit Tracks)
|
||||||
// and required each invokation and response behavior be manually programmed in.
|
// and required each invocation and response behavior be manually programmed in.
|
||||||
//
|
//
|
||||||
// For example, a basic game function like this:
|
// For example, a basic game function like this:
|
||||||
//
|
//
|
||||||
@@ -396,7 +397,7 @@
|
|||||||
// checksum += checksum << 2;
|
// checksum += checksum << 2;
|
||||||
// checksum ^= checksum >> 13;
|
// checksum ^= checksum >> 13;
|
||||||
// checksum += checksum << 5;
|
// checksum += checksum << 5;
|
||||||
// if (checksum == 0xFBD4230) /* Compare checksum, correct value is often loaded off the stack */
|
// if (checksum == 0x1FBD4230) /* Compare checksum, correct value is often loaded off the stack */
|
||||||
// {
|
// {
|
||||||
// /* Game func stuff */ /* Normal game procedure */
|
// /* Game func stuff */ /* Normal game procedure */
|
||||||
// }
|
// }
|
||||||
@@ -524,6 +525,8 @@
|
|||||||
|
|
||||||
// BIGE - Battle of Giants - Mutant Insects (USA)
|
// BIGE - Battle of Giants - Mutant Insects (USA)
|
||||||
// BIGP - Combat of Giants - Mutant Insects (Europe)
|
// BIGP - Combat of Giants - Mutant Insects (Europe)
|
||||||
|
//
|
||||||
|
// These games also use custom ARM9 entrypoints to run a MetaFortress checksum on the ARM7 immediately.
|
||||||
{
|
{
|
||||||
"gameCode": "BIGE", // Battle of Giants - Mutant Insects (USA)
|
"gameCode": "BIGE", // Battle of Giants - Mutant Insects (USA)
|
||||||
"gameVersion": 0,
|
"gameVersion": 0,
|
||||||
@@ -985,6 +988,8 @@
|
|||||||
// TADP - Kirby - Mass Attack (Europe)
|
// TADP - Kirby - Mass Attack (Europe)
|
||||||
// TADJ - Atsumete! Kirby (Japan)
|
// TADJ - Atsumete! Kirby (Japan)
|
||||||
// TADK - Moyeora! Kirby (Korea)
|
// TADK - Moyeora! Kirby (Korea)
|
||||||
|
//
|
||||||
|
// These games also have DS Protect, which is patched separately (see FsStartOverlayHookPatch and DSProtectOverlayPatch).
|
||||||
{
|
{
|
||||||
"gameCode": "TADE", // Kirby - Mass Attack (USA)
|
"gameCode": "TADE", // Kirby - Mass Attack (USA)
|
||||||
"gameVersion": 0,
|
"gameVersion": 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user