Decrypting Datel Games n' Music ROMs results in broken ROMs. #17

Closed
opened 2026-01-29 22:29:17 +00:00 by claunia · 8 comments
Owner

Originally created by @PurpleNekoNova on GitHub (Jul 27, 2024).

Originally assigned to: @mnadareski on GitHub.

Some ROMs from Datel's Games n' Music CD-ROM fail to load on hardware or emulator after being decrypted.

Redump.org entry for the disc of origin:
http://redump.org/disc/116685/

These are Unlicensed Homebrew titles, original state on CD is encrypted and NDecrypt detects them as such. In encrypted format they work as expected, however after decrypting using NDecrypt 2.5, they no longer function.

The titles from the disc that do not function after decryption are:

Carre Rogue
ChainReaction
DiggerDS
Double Skill
DSChess
Invasion
London Underground
Pop the Balls
Solitaire DS
Tales of Dagur
Tic Tac Toe
Zi

If this is outside the scope of the program, I understand. I just felt obligated to report this "issue" at least. Thank you.

Originally created by @PurpleNekoNova on GitHub (Jul 27, 2024). Originally assigned to: @mnadareski on GitHub. Some ROMs from Datel's Games n' Music CD-ROM fail to load on hardware or emulator after being decrypted. Redump.org entry for the disc of origin: http://redump.org/disc/116685/ These are Unlicensed Homebrew titles, original state on CD is encrypted and NDecrypt detects them as such. In encrypted format they work as expected, however after decrypting using NDecrypt 2.5, they no longer function. The titles from the disc that do not function after decryption are: Carre Rogue ChainReaction DiggerDS Double Skill DSChess Invasion London Underground Pop the Balls Solitaire DS Tales of Dagur Tic Tac Toe Zi If this is outside the scope of the program, I understand. I just felt obligated to report this "issue" at least. Thank you.
Author
Owner

@mnadareski commented on GitHub (Apr 1, 2025):

There have been some unrelated changes and cleanups since this was originally opened. In the off chance that any of those helped, do you mind trying again with the latest WIP build?

@mnadareski commented on GitHub (Apr 1, 2025): There have been some unrelated changes and cleanups since this was originally opened. In the off chance that any of those helped, do you mind trying again with the latest WIP build?
Author
Owner

@PurpleNekoNova commented on GitHub (Apr 1, 2025):

Looks like there's a new issue:

DEBUG: Validating provided keys
NitroEncryptionData match: True
File recognized as Nintendo DS
Processing D:\New folder\Aquela Ball (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Bahlz (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Battle Ship (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Breakout!! DS (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Bubble Fusion (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Carre Rouge (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\ChainReaction (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Collection (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\DiggerDS (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Double Skill (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\DSChess (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Hexa-Virus (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Invasion (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\JoggleDS (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\London Underground (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\NumberMinds (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Paddle Battle (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Pop the Balls (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Solitaire DS (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Squash DS (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Super Snake DS (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Tales of Dagur (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Tetris & Touch (World) (Unl) (Datel Games n' Music).nds
Error: Not a DS or DSi Rom!
Decryption failed!
File recognized as Nintendo DS
Processing D:\New folder\Tic Tac Toe (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Warrior Training (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
File recognized as Nintendo DS
Processing D:\New folder\Zi (World) (Unl) (Datel Games n' Music).nds
File has been decrypted
@PurpleNekoNova commented on GitHub (Apr 1, 2025): Looks like there's a new issue: ``` DEBUG: Validating provided keys NitroEncryptionData match: True File recognized as Nintendo DS Processing D:\New folder\Aquela Ball (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Bahlz (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Battle Ship (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Breakout!! DS (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Bubble Fusion (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Carre Rouge (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\ChainReaction (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Collection (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\DiggerDS (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Double Skill (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\DSChess (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Hexa-Virus (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Invasion (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\JoggleDS (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\London Underground (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\NumberMinds (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Paddle Battle (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Pop the Balls (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Solitaire DS (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Squash DS (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Super Snake DS (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Tales of Dagur (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Tetris & Touch (World) (Unl) (Datel Games n' Music).nds Error: Not a DS or DSi Rom! Decryption failed! File recognized as Nintendo DS Processing D:\New folder\Tic Tac Toe (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Warrior Training (World) (Unl) (Datel Games n' Music).nds File has been decrypted File recognized as Nintendo DS Processing D:\New folder\Zi (World) (Unl) (Datel Games n' Music).nds File has been decrypted ```
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

Interesting notes for future research:

  • The games will only play in an emulator that does not have firmware provided
  • Many standard fields like the title, game code, and maker code are nonsense values
  • May require handling encrypted "odd" files like these differently in code
@mnadareski commented on GitHub (Apr 2, 2025): Interesting notes for future research: - The games will only play in an emulator that does not have firmware provided - Many standard fields like the title, game code, and maker code are nonsense values - May require handling encrypted "odd" files like these differently in code
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

Relaxing the rigor of the checks ahead of processing helped, but another issue surfaced: The values indicating the "state" of the file are not matching any known values. The fact that they were all being detected as "encrypted" before was a fluke, more than anything.

I have a couple of choices:

  1. Just relax the requirement and rely on the force flag to handle these
  2. Process every single file and get their indicator values
@mnadareski commented on GitHub (Apr 2, 2025): Relaxing the rigor of the checks ahead of processing helped, but another issue surfaced: The values indicating the "state" of the file are not matching any known values. The fact that they were all being detected as "encrypted" before was a fluke, more than anything. I have a couple of choices: 1. Just relax the requirement and rely on the force flag to handle these 2. Process every single file and get their indicator values
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

For myself with the possibility of option 2:

Aquela Ball (World) (Unl) (Datel Games n' Music):
    E1D830D8, E3530000

Bahlz (World) (Unl) (Datel Games n' Music):
    DC002A02, 2900E612

Battle Ship (World) (Unl) (Datel Games n' Music):
    E1A03BA3, E2011CFF

Breakout!! DS (World) (Unl) (Datel Games n' Music):
    E3A01001, E1A02001

Bubble Fusion (World) (Unl) (Datel Games n' Music):
    E793200C, E4812004

Carre Rouge (World) (Unl) (Datel Games n' Music):
    E583C0DC, 0A00000B

ChainReaction (World) (Unl) (Datel Games n' Music):
    0202453C, 02060164

Collection (World) (Unl) (Datel Games n' Music):
    EBFFF218, E31000FF

DiggerDS (World) (Unl) (Datel Games n' Music):
    4A6CD003, 425B2301

Double Skill (World) (Unl) (Datel Games n' Music):
    E3A00001, EBFFFF8C

DSChess (World) (Unl) (Datel Games n' Music):
    21043701, 45BA448C

Hexa-Virus (World) (Unl) (Datel Games n' Music):
    E59D0010, E0833000

Invasion (World) (Unl) (Datel Games n' Music):
    E5C3A006, E5C39007

JoggleDS (World) (Unl) (Datel Games n' Music):
    E1D920F4, E06A3000

London Underground (World) (Unl) (Datel Games n' Music):
    E59F32EC, E5DD7011

NumberMinds (World) (Unl) (Datel Games n' Music):
    E08A3503, E1D3C4B8

Paddle Battle (World) (Unl) (Datel Games n' Music):
    E1A0C001, E0031001

Pop the Balls (World) (Unl) (Datel Games n' Music):
    E1A03005, E88D0180

Solitaire DS (World) (Unl) (Datel Games n' Music):
    E8BD4030, E12FFF1E

Squash DS (World) (Unl) (Datel Games n' Music):
    E0A88006, E1A00003

Super Snake DS (World) (Unl) (Datel Games n' Music):
    E51F3478, EB004A02

Tales of Dagur (World) (Unl) (Datel Games n' Music):
    1C200052, FD12F013

Tetris & Touch (World) (Unl) (Datel Games n' Music):
    601F491E, 041B880B

Tic Tac Toe (World) (Unl) (Datel Games n' Music):
    E1A03843, E0000293

Warrior Training (World) (Unl) (Datel Games n' Music):
    E3530000, 13A03003

Zi (World) (Unl) (Datel Games n' Music):
    02054A80, 02054B80
@mnadareski commented on GitHub (Apr 2, 2025): For myself with the possibility of option 2: ``` Aquela Ball (World) (Unl) (Datel Games n' Music): E1D830D8, E3530000 Bahlz (World) (Unl) (Datel Games n' Music): DC002A02, 2900E612 Battle Ship (World) (Unl) (Datel Games n' Music): E1A03BA3, E2011CFF Breakout!! DS (World) (Unl) (Datel Games n' Music): E3A01001, E1A02001 Bubble Fusion (World) (Unl) (Datel Games n' Music): E793200C, E4812004 Carre Rouge (World) (Unl) (Datel Games n' Music): E583C0DC, 0A00000B ChainReaction (World) (Unl) (Datel Games n' Music): 0202453C, 02060164 Collection (World) (Unl) (Datel Games n' Music): EBFFF218, E31000FF DiggerDS (World) (Unl) (Datel Games n' Music): 4A6CD003, 425B2301 Double Skill (World) (Unl) (Datel Games n' Music): E3A00001, EBFFFF8C DSChess (World) (Unl) (Datel Games n' Music): 21043701, 45BA448C Hexa-Virus (World) (Unl) (Datel Games n' Music): E59D0010, E0833000 Invasion (World) (Unl) (Datel Games n' Music): E5C3A006, E5C39007 JoggleDS (World) (Unl) (Datel Games n' Music): E1D920F4, E06A3000 London Underground (World) (Unl) (Datel Games n' Music): E59F32EC, E5DD7011 NumberMinds (World) (Unl) (Datel Games n' Music): E08A3503, E1D3C4B8 Paddle Battle (World) (Unl) (Datel Games n' Music): E1A0C001, E0031001 Pop the Balls (World) (Unl) (Datel Games n' Music): E1A03005, E88D0180 Solitaire DS (World) (Unl) (Datel Games n' Music): E8BD4030, E12FFF1E Squash DS (World) (Unl) (Datel Games n' Music): E0A88006, E1A00003 Super Snake DS (World) (Unl) (Datel Games n' Music): E51F3478, EB004A02 Tales of Dagur (World) (Unl) (Datel Games n' Music): 1C200052, FD12F013 Tetris & Touch (World) (Unl) (Datel Games n' Music): 601F491E, 041B880B Tic Tac Toe (World) (Unl) (Datel Games n' Music): E1A03843, E0000293 Warrior Training (World) (Unl) (Datel Games n' Music): E3530000, 13A03003 Zi (World) (Unl) (Datel Games n' Music): 02054A80, 02054B80 ```
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

I've relaxed the header requirement for encrypted so that it doesn't block even a force flag to be used. I will leave this open if I decide to look further into these specifically and see if those values are truly encrypted or not.

@mnadareski commented on GitHub (Apr 2, 2025): I've relaxed the header requirement for encrypted so that it doesn't block even a force flag to be used. I will leave this open if I decide to look further into these specifically and see if those values are truly encrypted or not.
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

These values have been documented in code in a similar manner to empty secure area. All of them will be counted as neither encrypted nor decrypted and won't be processed unless forced. I'm still going to be leaving this open because I still want to find out if they're "encrypted" or not.

@mnadareski commented on GitHub (Apr 2, 2025): These values have been documented in code in a similar manner to empty secure area. All of them will be counted as neither encrypted nor decrypted and won't be processed unless forced. I'm still going to be leaving this open because I still want to find out if they're "encrypted" or not.
Author
Owner

@mnadareski commented on GitHub (Apr 2, 2025):

Based on external conversation, there is a summary of additional findings:

The carts in question were distributed as files to be loaded in a Datel flash cart. It is likely that the cart had additional logic that would take care of the inconsistencies seen with the data, including header and secure area values. There is essentially no way to confirm this, though the fact that these do not work in an accurate emulator that is using a user-provided firmware indicates that they were never meant to be played separate from that flash cart.

With all of the above, the changes that have already been done are going to be the full scope of how these are supported. I will not be leaving this open since we basically know that there's no way to know.

@mnadareski commented on GitHub (Apr 2, 2025): Based on external conversation, there is a summary of additional findings: The carts in question were distributed as files to be loaded in a Datel flash cart. It is likely that the cart had additional logic that would take care of the inconsistencies seen with the data, including header and secure area values. There is essentially no way to confirm this, though the fact that these do not work in an accurate emulator that is using a user-provided firmware indicates that they were never meant to be played separate from that flash cart. With all of the above, the changes that have already been done are going to be the full scope of how these are supported. I will not be leaving this open since we basically know that there's no way to know.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SabreTools/NDecrypt#17