NMM memory card emulation technical details?

Discussion in 'Wii - Emulation and Homebrew' started by Bartholomew Mashingspoon, Aug 10, 2016.

  1. Bartholomew Mashingspoon
    OP

    Bartholomew Mashingspoon Member

    Newcomer
    11
    0
    May 1, 2015
    I recently dusted off my old Wii, and remembered how many compatibility issues there are with No More Memory.

    I was wondering, did the people who developed this leave behind any documents on how it was made or why certain games couldn't work with it? This out of technical curiosity than anything else, I don't expect it to help me to get things more compatible.
     
  2. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    18,285
    8,757
    Oct 27, 2002
    France
    Engine room, learning
    not technical info, but this is a quick explanation how it's working :

    a game can store in the memory card different files or data binary, which are then pack together to form a single savegame package. this "package" can be selected in the memory card management as single data to copy/move/delete which are usually extracted and shared as .gci file using homebrew and emulators.

    usually, emulators are emulating the full memory card binary with all the games, not the individual game binary (gci), nor the individual files stored in the gci "package".

    NMM is not emulating the memory card but redirecting the individual files accessed by the game inside the savegame "package" (sorry, not the best word I found) to SD or USB.
    the files have a filename, and data (like on a computer, you save your data in a file, and give a filename to that file).

    The issue is that some games are not using FAT32 compatible characters for the filename, resulting in a different/converted filename. the game send the command to save using a specific filename, but NMM use a different filename due to FAT32 limitation. the file is saved and the game gives you "game saved successfully". When the game try to load, the expected filename can't be found and loading fails.


    Another issue is with Mario Kart double dash, it seems that this game is saving the ghost data without providing a filename, and FAT32 require a filename so the beginning of the binary data is used as filename.
    as a result, the data inside the file is incomplete. and also some characters used in the filename are incompatible with FAT32 because it's raw binary values and not compatible ASCII.



    This is only some explanation. If you really want the technical details you should check DM/DML sources.
     
  3. Bartholomew Mashingspoon
    OP

    Bartholomew Mashingspoon Member

    Newcomer
    11
    0
    May 1, 2015
    Ah, I see. Thank you, that explanation covers it well enough.