DS-Homebrew/GodMode9i

Provide description of difference between ROM dump options.

Opened this issue · 7 comments

The options are

  1. All
  2. All (Trimmed ROM)
  3. ROM
  4. ROM (Trimmed)
  5. Save
  6. Metadata

Luckily, https://dsi.cfw.guide/dumping-game-cards.html#section-ii-nintendo-dsi-instructions

The "Trimmed" options for the ROM will dump a smaller file that can save SD card space, however they won't work for most patches such as ROM hacks

explains when not to create a trimmed ROM dump, but nothing online appears to describe what the differences between these options are, and https://github.com/DS-Homebrew/GodMode9i/blob/1f9cf753c99ad37daff95bc4768420e1a659858f/README.md#features certainly doesn't either.

It just trims sections of 00's or FF's out of the end of sections, usually the end of the file. The reason it doesn't end well with patches is twofold, one because most patchers will check the base rom and make sure it adheres to an expected hash, refusing to go through with the patch if it fails. The other is the patches expect whatever they used as a base, applying them to anything else isn't usually going to get the patch to line up correctly with what its trying to patch in the file, causing corruption instead of the intended effect.

It just trims sections

Which option does? There are 6, @Masamune3210.

.....the ones that, in fact, have the word trimmed in them?

However, what would then be the difference between

All (Trimmed)

and

ROM (Trimmed)

I don't believe that this is explained anywhere, nor the difference between merely

All

and

ROM

or

Save

and

Metadata

@RokeJulianLockhart

enum DumpOption {
        none = 0, 
        rom = 1, 
        romTrimmed = 2, 
        save = 4, 
        metadata = 8, 
        ndsSave = 16,
        all = rom | save | metadata,
        allTrimmed = romTrimmed | save | metadata
};

allTrimmed just means dump a trimmed rom, and the save, and the metadata, all in one operation
there is no difference in the rom

Thanks for the answers. Per the issue, I'm reiterating that the software itself should explain this somewhere in its GUI.

I don't know how it should be worded or where to put it. I think a PR or constructive suggestion of some kind would be welcome