Just the game's 4 digit ID is not enough to determine which game it is in the database. There are 3 methods I use for determining the game:
• For regular NDS games, I pull 3 pieces of info: Game Code, Header and Rom Version. Every game has this data and it is what is used to gather the information, NOT CRC checks. CRC is no good for this type of thing because you can have a trimmed game and would not find a match since a trimmed game's CRC is different from the clean game.
• For rZipped games, I store the 3 pieces of info in the rZip Header, so it can be identified immediately.
• For Zipped games, it identifies by CRC.
Safe trim is, well, just a safe trim
Basically there's a set number of bytes after the ROM data to preserve for WiFi data, and a safe trim just keeps the data. It does not scan the file and remove blank spaces, it scans the header and catches the Rom Size from there -- That is the main trim point.
Right now rZip and Zip are almost identical in size, since they're both based off zLib compression. rZip just allows me more manipulation as I can store my own metadata in the file (already in rZips is stored the header, game ID, and icon so Rominator recognizes it immediately). It's up to you what you want to use
--Henry