SceneGate.Ekona
1.1.0
dotnet add package SceneGate.Ekona --version 1.1.0
NuGet\Install-Package SceneGate.Ekona -Version 1.1.0
<PackageReference Include="SceneGate.Ekona" Version="1.1.0" />
paket add SceneGate.Ekona --version 1.1.0
#r "nuget: SceneGate.Ekona, 1.1.0"
// Install SceneGate.Ekona as a Cake Addin #addin nuget:?package=SceneGate.Ekona&version=1.1.0 // Install SceneGate.Ekona as a Cake Tool #tool nuget:?package=SceneGate.Ekona&version=1.1.0
Ekona
Ekona is a library part of the SceneGate framework that provides support for DS and DSi file formats.
Supported formats
- đŽ DS cartridge:
- đ Filesystem: 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:
- đ Filesystem: read and write
arm9i
andarm7i
programs. - âšī¸ 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.
- đ Filesystem: read and write
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 works on supported versions of .NET: 6.0 and 8.0.
-
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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
-
net6.0
- Portable.BouncyCastle (>= 1.9.0)
- System.Data.HashFunction.CRC (>= 2.0.0)
- Texim (>= 0.1.0-preview.210)
- Yarhl (>= 4.0.0)
-
net8.0
- Portable.BouncyCastle (>= 1.9.0)
- System.Data.HashFunction.CRC (>= 2.0.0)
- Texim (>= 0.1.0-preview.210)
- Yarhl (>= 4.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on SceneGate.Ekona:
Repository | Stars |
---|---|
MeltyPlayer/FinModelUtility
Model viewer and command-line tools for extracting models from various GCN/3DS/PC games en-masse.
|
Check the project site