@gba-kit/gba-node 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @gba-kit/gba-node
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@gba-kit/gba-node)](https://www.npmjs.com/package/@gba-kit/gba-node)
4
+
3
5
  Headless GBA emulator runtime for Node.js. Load a ROM, execute JavaScript scripts against the emulator, and capture screenshots, memory snapshots, and save states to disk.
4
6
 
5
7
  ## Install
@@ -10,6 +10,11 @@ export interface HeadlessRuntimeOptions {
10
10
  loadSavePath?: string;
11
11
  outputDir: string;
12
12
  logFn: (message: string) => void;
13
+ /**
14
+ * Optional path to a (`-g`-built) sidecar ELF. Enables source-level scripting
15
+ * (pcToSource, symbolToAddress, watchSymbol, and source-annotated watch hits).
16
+ */
17
+ elfPath?: string;
13
18
  }
14
19
  export declare class HeadlessRuntime {
15
20
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"headless-runtime.d.ts","sourceRoot":"","sources":["../src/headless-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOjF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,qBAAa,eAAe;;gBAMd,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;IAc5D,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,IAAI,IAAI,aAAa,CAExB;WAEY,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC9E,mDAAmD;IAC7C,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D3E,iCAAiC;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3C"}
1
+ {"version":3,"file":"headless-runtime.d.ts","sourceRoot":"","sources":["../src/headless-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOjF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAe;;gBAMd,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM;IAc5D,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,IAAI,IAAI,IAAI,aAAa,CAExB;WAEY,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC;IA0C9E,mDAAmD;IAC7C,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0E3E,iCAAiC;IAC3B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3C"}
@@ -57,7 +57,13 @@ export class HeadlessRuntime {
57
57
  const snapshot = deserializeSnapshot(JSON.parse(saveData));
58
58
  gba.deserialize(snapshot);
59
59
  }
60
- return new HeadlessRuntime(gba, host, options.outputDir);
60
+ const runtime = new HeadlessRuntime(gba, host, options.outputDir);
61
+ // Load debug info (ELF symbols + DWARF) if provided.
62
+ if (options.elfPath) {
63
+ const elfData = await fs.readFile(options.elfPath);
64
+ runtime.engine.loadDebugInfo(new Uint8Array(elfData));
65
+ }
66
+ return runtime;
61
67
  }
62
68
  /** Execute a script string against the emulator */
63
69
  async executeScript(scriptCode, scriptPath) {
@@ -91,6 +97,15 @@ export class HeadlessRuntime {
91
97
  onFrame: (cb) => engine.onFrame(cb),
92
98
  searchMemory: (options) => engine.searchMemory(options),
93
99
  filterMemory: (addresses, options) => engine.filterMemory(addresses, options),
100
+ watchMemory: (options) => engine.watchMemory(options),
101
+ watchSymbol: (name, options) => engine.watchSymbol(name, options),
102
+ clearWatchpoints: () => engine.clearWatchpoints(),
103
+ // Debug info (ELF symbols + DWARF) — available when created with `elfPath`.
104
+ hasDebugInfo: () => engine.hasDebugInfo,
105
+ pcToSource: (pc) => engine.pcToSource(pc),
106
+ pcToFunction: (pc) => engine.pcToFunction(pc),
107
+ addressToSymbol: (addr) => engine.addressToSymbol(addr),
108
+ symbolToAddress: (name) => engine.symbolToAddress(name),
94
109
  // Save states
95
110
  saveState: (options) => engine.saveState(options),
96
111
  loadState: (path) => engine.loadState(path),
@@ -1 +1 @@
1
- {"version":3,"file":"headless-runtime.js","sourceRoot":"","sources":["../src/headless-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headless-runtime.js","sourceRoot":"","sources":["../src/headless-runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gba-kit/gba-node",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Headless Node.js runtime for scripted GBA emulation",
5
5
  "author": "macabeus",
6
6
  "type": "module",
@@ -32,8 +32,8 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "fast-png": "^8.0.0",
35
- "@gba-kit/arm-emulator": "0.1.0",
36
- "@gba-kit/gba-emulator": "0.1.0"
35
+ "@gba-kit/gba-emulator": "0.2.0",
36
+ "@gba-kit/arm-emulator": "0.2.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "^25.5.0",