Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
Loading...
Searching...
No Matches
ts::TableManifest Class Reference

The machine-readable map of everything the engine needs out of SCCore.dll: the pinned build identity, every static table's byte-exact offset, and the live ROM/directory regions. More...

#include <tabulasonora/table_manifest.hpp>

Public Member Functions

const DllIdentitydll () const noexcept
 The DLL build these offsets are valid for.
std::int64_t image_base () const noexcept
 The DLL's preferred image base, 0x180000000.
const std::vector< TableEntry > & cached_tables () const noexcept
 The static tables cached as .bin slices.
const std::vector< LiveRegion > & live_regions () const noexcept
 The regions read directly from the DLL rather than cached.
const TableEntrytable (std::string_view name) const
 Looks up a cached table by its .bin file name, e.g.
const LiveRegionregion (std::string_view name) const
 Looks up a live region by name, e.g.

Static Public Member Functions

static const TableManifest & defaults ()
 The manifest embedded in this library. Parsed once, on first use.
static TableManifest parse (std::string_view json)
 Parses a manifest from a JSON document.

Detailed Description

The machine-readable map of everything the engine needs out of SCCore.dll: the pinned build identity, every static table's byte-exact offset, and the live ROM/directory regions.

A copy of manifest.json from the Tabula Sonora spec repo is compiled into the library, so the engine is self-describing with no data files on disk.

Member Function Documentation

◆ defaults()

const TableManifest & ts::TableManifest::defaults ( )
staticnodiscard

The manifest embedded in this library. Parsed once, on first use.

◆ parse()

TableManifest ts::TableManifest::parse ( std::string_view json)
staticnodiscard

Parses a manifest from a JSON document.

Throws std::runtime_error if the document is not a well-formed manifest.

◆ dll()

const DllIdentity & ts::TableManifest::dll ( ) const
inlinenodiscardnoexcept

The DLL build these offsets are valid for.

◆ image_base()

std::int64_t ts::TableManifest::image_base ( ) const
inlinenodiscardnoexcept

The DLL's preferred image base, 0x180000000.

◆ cached_tables()

const std::vector< TableEntry > & ts::TableManifest::cached_tables ( ) const
inlinenodiscardnoexcept

The static tables cached as .bin slices.

◆ live_regions()

const std::vector< LiveRegion > & ts::TableManifest::live_regions ( ) const
inlinenodiscardnoexcept

The regions read directly from the DLL rather than cached.

◆ table()

const TableEntry & ts::TableManifest::table ( std::string_view name) const
nodiscard

Looks up a cached table by its .bin file name, e.g.

pan_a2fa1.bin.

Throws std::out_of_range if no table with that name exists.

◆ region()

const LiveRegion & ts::TableManifest::region ( std::string_view name) const
nodiscard

Looks up a live region by name, e.g.

wave_rom_bank_A.

Throws std::out_of_range if no region with that name exists.


The documentation for this class was generated from the following file: