Skip to main content

A library for reading and writing TIC-80 .tic cartridge files

Project description

ticfile

A library for reading and writing TIC-80 .tic cartridge files.

See https://github.com/nesbox/TIC-80/wiki/.tic-File-Format for the file format description.

Installation

pip install ticfile

Usage

from ticfile import TICFile, ChunkType

duck_jam = TICFile.open("duckjam.tic")
code_chunks = [chunk for chunk in duck_jam.chunks if chunk.type == ChunkType.CODE]
code_lines = code_chunks[0].data.decode("ascii").split("\n")
print(code_lines[0])

API

The ticfile module provides the following definitions:

TICFile

Represents a complete .tic file.

Class methods

  • TICFile(chunks) - construct a TICFile from a list of Chunk objects
  • TICFile.open(filename) - open a TICFile from the given filename
  • TICFile.from_file(f) - open a TICFile from the given file handle

Instance methods / attributes

  • chunks - the list of Chunk objects making up this file
  • save(filename) - write this file to the given filename

ChunkType

An enum defining the available chunk types:

ChunkType.TILES = 1
ChunkType.SPRITES = 2
ChunkType.MAP = 4
ChunkType.CODE = 5
ChunkType.FLAGS = 6
ChunkType.SAMPLES = 9
ChunkType.WAVEFORM = 10
ChunkType.PALETTE = 12
ChunkType.MUSIC = 14
ChunkType.PATTERNS = 15
ChunkType.DEFAULT = 17
ChunkType.SCREEN = 18
ChunkType.BINARY = 19
ChunkType.COVER_DEP = 3
ChunkType.PATTERNS_DEP = 13
ChunkType.CODE_ZIP = 16

Chunk

Represents an individual chunk within a .tic file.

Class methods

  • Chunk(chunk_type, bank, data) - construct a Chunk object ** chunk_type - one of the enum values defined in ChunkType ** bank - the bank number (0..7) for this chunk ** data - the binary data of this chunk, excluding the header, as a bytes object

Instance methods / attributes

  • type - the type of this chunk, given as one of the enum values defined in ChunkType
  • bank - the bank number (0..7) for this chunk
  • data - the binary data of this chunk, excluding the header, as a bytes object
  • write(f) - write this chunk to the given file handle

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

ticfile-0.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

ticfile-0.1-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file ticfile-0.1.tar.gz.

File metadata

  • Download URL: ticfile-0.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for ticfile-0.1.tar.gz
Algorithm Hash digest
SHA256 0e2a6a52ccfb10187f852c6c508c215d92ed5e718eb823751ea2b995abd9ca75
MD5 c7142c369222540619dbc4b311566e63
BLAKE2b-256 9053b1d585bdb1991d9770e67c886c1ab22c4f5dc0bd6b45fa49b8f127b6b6bb

See more details on using hashes here.

Provenance

File details

Details for the file ticfile-0.1-py3-none-any.whl.

File metadata

  • Download URL: ticfile-0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for ticfile-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1ab24577250711bbf272a3fbf426e8e8d6167e67772cd60ea0a6dfedd101c34a
MD5 c95082fa01d83c801487f78092af7947
BLAKE2b-256 30fed23ab6cfef2a580ce4de7bf0a7e639f00e3ed61cd9980e1b03e66ba3b7c9

See more details on using hashes here.

Provenance

Supported by

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