Haruka.Arcade.SegaAMFileLib 0.3.0

dotnet add package Haruka.Arcade.SegaAMFileLib --version 0.3.0
                    
NuGet\Install-Package Haruka.Arcade.SegaAMFileLib -Version 0.3.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Haruka.Arcade.SegaAMFileLib" Version="0.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Haruka.Arcade.SegaAMFileLib" Version="0.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Haruka.Arcade.SegaAMFileLib" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Haruka.Arcade.SegaAMFileLib --version 0.3.0
                    
#r "nuget: Haruka.Arcade.SegaAMFileLib, 0.3.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Haruka.Arcade.SegaAMFileLib@0.3.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Haruka.Arcade.SegaAMFileLib&version=0.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Haruka.Arcade.SegaAMFileLib&version=0.3.0
                    
Install as a Cake Tool

SEGAAMFileLib / SEGAAMFileCmd

(c) 2024-2026 Haruka and contributors

Licensed under the Server Side Public License.

API to interface with SEGA file types used in arcade games.

Get / Download:


What can the application be used for?

  • Edit sysfile.dat (insert credits, set free play, reset e-money auth)
  • Synchronize multiple sysfiles (to have same credits/bookkeeping data in multiple games)
  • View and verify ICF files
  • Create ICF files
  • Commit pending updates in ICF files
  • Create DLI files
  • View BootID information in fscrypt containers
  • Verify fscrypt containers
  • Extract fscrypt containers, .app files, .opt files of both standard and APM variant, as well as differential files

What can the library be used for?

  • Write and read the following file types:
    • ICF files (ICF1)
    • sysfile.dat
    • dliApp.ini, dliOpt.ini
  • Extract the following container formats:
    • *.app
    • *.opt
    • *.vhd (with partitions or raw)

Implementation Notes:

  • As this is a highly experimental API right now, consumer applications should check Haruka.Arcade.SegaAMFileLib.VersionInfo.LIB_API_VERSION. This number will be incremented on any breaking changes for consumers.

A note on differential sysfile sync:

Following scenario: You have a master sysfile that you want to gain bookkeeping increases and credits from other sysfiles. Given that the master file is located at C:\master\amfs\sysfile.dat and the sub file at C:\game\amfs\sysfile.dat, run the game as following:

copy C:\game\amfs\sysfile.dat C:\game\amfs\sysfile_diff.dat
SegaAMFileCmd sysfile-sync -f 2 C:\master\amfs\sysfile.dat C:\game\amfs\sysfile.dat File1 NoChange
start /wait game.exe
SegaAMFileCmd sysfile-sync -f 1 -d C:\game\amfs\sysfile_diff.dat C:\master\amfs\sysfile.dat C:\game\amfs\sysfile.dat File2 DifferentialToFile2

So for example, in the master application 5 credits were inserted and bookkeeping registered 32 service presses, during this game session I press service once and spend two credits, then the master application will display 3 credits and 33 service presses. The bookeeping count of service presses in the game also has gone up by 1. (regardless of what the count is)

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.0 102 8/19/2026