Metadata-Version: 2.4
Name: retrotool-bass
Version: 18.0
Summary: Bundled bass v18 (ARM9 fork) multi-architecture assembler binary for retrotool
Author-email: Daniel Burgess <daniel@herotechsys.com>
License: ISC
Keywords: bass,65816,snes,sfc,patcher,assembler,arm9
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Assemblers
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# retrotool-bass

Bundled [bass v18 (ARM9 fork)](https://github.com/ARM9/bass) multi-architecture assembler CLI for retrotool. Installing this wheel makes `bass` available to `retrotool.asm.patcher` without a system bass on PATH.

bass is a table-based, multi-architecture, cross-platform macro assembler. Originally by byuu; the v18 ARM9 fork is the actively-maintained branch retrotool builds against.

## Usage

```python
from retrotool_bass import bass_binary, run_bass

# bass v18 modify-mode invocation: -m <target> applies the patch in place.
run_bass(["-m", "rom.sfc", "patch.asm"])
```

`retrotool.asm.patcher.apply_bass_patch` prefers the bundled binary when this package is installed, else falls back to `bass` on PATH.

## Architecture files

bass loads architecture definitions (`snes.cpu.arch`, `n64.cpu.arch`, etc.) at runtime. The wheel bundles the `architectures/` directory next to the binary so bass's `Path::program()` lookup succeeds without any extra setup. Override at runtime by pointing your script at a different `bass` build, or by placing custom `.arch` files under `~/.local/share/bass/architectures/` (bass searches user-data first).

## License

bass v18 (ARM9 fork) is ISC. This wheel redistributes the compiled binary and architecture data under the same license. See `vendor/bass/README.md` for upstream attribution and `vendor/bass/LICENSE` if present.
