Skip to main content

A Python library and utilities for parsing iNES format NES ROM files

Project description

iNES Parser

Lightweight Python library and CLI tools for working with NES ROMs in iNES/NES 2.0 format.

Supported versions: Python 3.10-3.14.

Quick Start

pip install ines-parser

Optional extra for archive formats (.7z/.zip/.rar): pip install "ines-parser[archive]". Otherwise the library has no extra dependencies.

What It Does

  • parses ROM headers (mapper, PRG/CHR sizes, mirroring, and more)
  • scans ROM directories with filters
  • splits ROM files into PRG and CHR binaries

CLI

Tools live in ines_parser/cli/ as ines_scan_roms.py and ines_split_rom.py. The names match pip install entry points on your PATH: ines_scan_roms.py and ines_split_rom.py.

Without installing, from the repository root you can use either -m or the path to the same files:

python -m ines_parser.cli.ines_scan_roms /path/to/roms
python ines_parser/cli/ines_scan_roms.py /path/to/roms

python -m ines_parser.cli.ines_split_rom game.nes
python ines_parser/cli/ines_split_rom.py game.nes

After pip install, run the same logical names as commands (they are small wrappers, not copies of the sources):

ines_scan_roms.py /path/to/roms
ines_split_rom.py game.nes

Scan ROMs

ines_scan_roms.py /path/to/roms
ines_scan_roms.py /path/to/roms --mapper 4
ines_scan_roms.py /path/to/roms --show-all

Useful filters:

  • --mapper N
  • --mirroring H|V|F
  • --has-trainer
  • --min-prg KiB, --max-prg KiB
  • --min-chr KiB, --max-chr KiB

Split ROM (PRG / CHR)

ines_split_rom.py game.nes
ines_split_rom.py roms.7z
ines_split_rom.py game.nes --force

By default, existing output files are not overwritten without confirmation.

Library Usage

from ines_parser import parse_ines_header

with open("game.nes", "rb") as f:
    header = parse_ines_header(f.read(16))

if header and header.is_valid():
    print(header)  # compact output
    print(header.detailed_str())  # full output

Format Docs

License

MIT, see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ines_parser-1.2.1.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ines_parser-1.2.1-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file ines_parser-1.2.1.tar.gz.

File metadata

  • Download URL: ines_parser-1.2.1.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for ines_parser-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a5941efdeff2a372ed636014a89e47140a02d8c92f327cf5cfd63a9fe101753b
MD5 204804380f043394961798070d5ff9d1
BLAKE2b-256 3dfe9e717d4eae53767642f7d6dc0bc4d9537827c9e411e535c4cd4a77af06d8

See more details on using hashes here.

File details

Details for the file ines_parser-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: ines_parser-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for ines_parser-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8506a8eae2e24fc57e2d0d48eb0b376f362de0a8390a559b7e665d0ba45123f3
MD5 0c7e8e6fe6e7c926678ae6d818a2a515
BLAKE2b-256 aa28af5c55a3a688b0827f6bb576e456e240496010728bf14f6f5fdfabd5426a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page