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.
pip install ticfile
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])
The ticfile
module provides the following definitions:
Represents a complete .tic file.
TICFile(chunks)
- construct aTICFile
from a list ofChunk
objectsTICFile.open(filename)
- open aTICFile
from the given filenameTICFile.from_file(f)
- open aTICFile
from the given file handle
chunks
- the list ofChunk
objects making up this filesave(filename)
- write this file to the given filename
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
Represents an individual chunk within a .tic file.
Chunk(chunk_type, bank, data)
- construct aChunk
object **chunk_type
- one of the enum values defined inChunkType
**bank
- the bank number (0..7) for this chunk **data
- the binary data of this chunk, excluding the header, as abytes
object
type
- the type of this chunk, given as one of the enum values defined inChunkType
bank
- the bank number (0..7) for this chunkdata
- the binary data of this chunk, excluding the header, as abytes
objectwrite(f)
- write this chunk to the given file handle