SceneGate.Ekona
1.2.1
dotnet add package SceneGate.Ekona --version 1.2.1
NuGet\Install-Package SceneGate.Ekona -Version 1.2.1
<PackageReference Include="SceneGate.Ekona" Version="1.2.1" />
<PackageVersion Include="SceneGate.Ekona" Version="1.2.1" />
<PackageReference Include="SceneGate.Ekona" />
paket add SceneGate.Ekona --version 1.2.1
#r "nuget: SceneGate.Ekona, 1.2.1"
#:package SceneGate.Ekona@1.2.1
#addin nuget:?package=SceneGate.Ekona&version=1.2.1
#tool nuget:?package=SceneGate.Ekona&version=1.2.1
Ekona 
Ekona is a library part of the SceneGate framework that provides support for DS and DSi file formats.
Supported formats
- đŽ DS cartridge:
- đ File system: read and write
- âšī¸ Header: read and write, including extended header
- đŧī¸ Banner and icon: read and write.
- đ ARM9 secure area encryption and decryption (KEY1).
- đŽ DSi cartridge:
- đ File system: read and write
arm9iandarm7iprograms. - âšī¸ Extended header: read and write
- đŧī¸ Animated banner icons
- đ Modcrypt encryption and decryption
- đ HMAC validation and generation when keys are provided.
- đ Signature validation when keys are provided.
- đ File system: read and write
- đĻ Compressions:
- BIOS LZSS compression and decompression
- BIOS RLE compression and decompression
Getting started
Check-out the getting started guide to start using Ekona in no time! Below you can find an example that shows how to open a DS/DSi ROM file (cartridge dump).
// Create Yarhl node from a file (binary format).
Node game = NodeFactory.FromFile("game.nds", FileOpenMode.Read);
// Use the `Binary2NitroRom` converter to convert the binary format
// into node containers (virtual file system tree with files and directories).
game.TransformWith<Binary2NitroRom>();
// And it's done!
// Now we can access to every game file. For instance, we can export one file
Node items = Navigator.SearchNode(game, "data/Items.dat");
items.Stream.WriteTo("dump/Items.dat");
Usage
The project provides the following .NET libraries (NuGet packages in nuget.org). The libraries work on supported versions of .NET.
SceneGate.Ekona.Compression: Common compressions.SceneGate.Ekona.Containers.Rom: DS and DSi cartridge (ROM) format.SceneGate.Ekona.Security: hash and encryption algorithms
Special thanks
The DS / DSi cartridge format was based on the amazing reverse engineering work of Martin Korth at GBATek. Its specifications of the hardware of the video controller and I/O ports was also a great help in additional reverse engineering.
CUE for documentation work on the GBA / DS compression algorithms.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Texim (>= 0.1.0-preview.339)
- Yarhl (>= 4.2.0)
-
net8.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Texim (>= 0.1.0-preview.339)
- Yarhl (>= 4.2.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SceneGate.Ekona:
| Package | Downloads |
|---|---|
|
SceneGate.Games.MegaManStarForce3
File formats from DS game "Mega Man Star Force 3". |
GitHub repositories
This package is not used by any popular GitHub repositories.
## v1.2.1 (July 09, 2026)
Update to Yarhl v4.2.0 without public changes to Ekona. We just fix a nullable warning in the constructor of `Binary2NitroRom` for `DsiKeyStore`.
Internally we were able to use the new Yarhl library for Verify snapshot testing.
We also re-implemented the build-system as a file-based application and take advantage of the latest tasks from PleOps.Cake.
## Changelog
### enhancement
- \#55: ci: update dependencies, Yarhl v4.2, and migrate build system by @pleonex