dansanderson / picotool

Tools and Python libraries for manipulating Pico-8 game files. http://www.lexaloffle.com/pico-8.php

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support new truncated .p8 format

dansanderson opened this issue · comments

As of Pico-8 0.1.11e, the .p8 file format has changed (version "15") such that tailing rows of each section are truncated if they match the default state. If entire sections match the default state, they are elided from the file. An empty cart (saved after reboot) is the two-line header, the __lua__ section header, and a blank line.

Game.from_p8_file() needs updating to expect entire sections to be missing from the raw data. Each section type's from_lines() class method needs testing and possible updating, though at first glance it looks like it coincidentally does the right thing for truncated sections in most cases.

Nice to have would be to update each section's to_lines() to write this format, as well as game.to_p8_file() (with an updated "version" header).

I ran a few simple tests and I think this is (coincidentally?) a non-issue. New-style .p8 carts seem to load just fine. p8tool build will even preserve truncated sections, apparently? How does my code work?

Resolving until an actual problem is found.