/Lemon

3DS game file formats

Primary LanguageC#MIT LicenseMIT

Lemon

Stable version   GitHub commits since latest release (by SemVer)   Build and release   MIT License  

Lemon is a library part of the SceneGate framework that provides support for 3DS file formats.

Supported formats

Encryption, decryption or signature validation not supported yet.

  • NCSD (CCI and CSU): unpack
  • CIA: unpack and pack
  • NCCH (CXI and CFA): unpack and pack
  • ExeFS: unpack and pack
  • RomFS: unpack and pack
  • TMD: deserialize and serialize

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.Lemon: support for 3DS formats

Preview releases can be found in this Azure DevOps package repository. To use a preview release, create a file nuget.config in the same directory of your solution file (.sln) with the following content:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="SceneGate-Preview" value="https://pkgs.dev.azure.com/SceneGate/SceneGate/_packaging/SceneGate-Preview/nuget/v3/index.json" />
  </packageSources>
  <packageSourceMapping>
    <packageSource key="nuget.org">
      <package pattern="*" />
    </packageSource>
    <packageSource key="SceneGate-Preview">
      <package pattern="Yarhl*" />
      <package pattern="Texim*" />
      <package pattern="SceneGate*" />
    </packageSource>
  </packageSourceMapping>
</configuration>

Documentation

Documentation is not yet available but it will be published in the project website.

Don't hesitate to ask questions in the project Discussion site!

Build

The project requires to build .NET 8.0 SDK.

To build, test and generate artifacts run:

# Build and run tests
dotnet run --project build/orchestrator

# (Optional) Create bundles (nuget, zips, docs)
dotnet run --project build/orchestrator -- --target=Bundle

Some test binary resources are pushed via Git LFS. Make sure to clone these files as well, otherwise the tests would fail. On Linux you may need to install it and re-pull, for instance for Ubuntu run:

sudo apt install git-lfs
git lfs pull

To build the documentation only, run:

dotnet docfx docs/docfx.json --serve

References