tic-set-screen


Nametic-set-screen JSON
Version 0.1 PyPI version JSON
download
home_pagehttps://github.com/gasman/tic-set-screen
SummaryCommand-line tool for replacing the cover image of a TIC-80 .tic cartridge file
upload_time2022-12-07 21:48:17
maintainer
docs_urlNone
authorMatt Westcott
requires_python>=3.7
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # tic-set-screen

A command line tool for replacing the cover image of a TIC-80 .tic cartridge file

## About

As of TIC-80 version 0.90, the cover image for a cartridge is saved as a dump of the screen data. This is displayed using the cartridge's built-in palette, which will be the default Sweetie16 (or DB16) palette if a custom palette has not been explicitly set up through the TIC-80 sprite editor. Notably, poking the palette memory from a running program does _not_ write those palette changes back to the cartridge file.

[This is problematic for many size-coded / byte battle / byte jam releases](https://github.com/nesbox/TIC-80/issues/1552), as they consist only of code and no supporting data - a program that sets a custom palette will end up with a cover image displayed in false colours. Additionally, there's no way to capture scanline-level palette changes performed with SCN or OVR.

In the absence of a "proper" fix, `tic-set-screen` allows you to supply an arbitrary 16-colour image, and generates a new .tic cartridge file with the screen and palette chunks modified to use that as the cover image.

(Note that, since the cartridge's built-in palette is changed, a program that only pokes some of the palette memory and relies on default values for the rest could end up looking different. If this is a problem, you can still use `tic-set-screen` to prepare a metadata cart for uploading to tic80.com.)

## Installation

With Python 3.7 or above installed, run:

```sh
pip install tic-set-screen
```

(Depending on your Python setup, the command may be `pip3` rather than `pip`. You can also install it into a Python virtual environment, if that's your jam.)

## Usage

```sh
tic-set-screen input_cart.tic cover_image.png output_cart.tic
```

The cover image must be 240x136 and use a maximum of 16 colours. It can be PNG, GIF, or [any other format recognised by Pillow](https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gasman/tic-set-screen",
    "name": "tic-set-screen",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Matt Westcott",
    "author_email": "matt@west.co.tt",
    "download_url": "https://files.pythonhosted.org/packages/2f/78/09a763d81e1a853cd7ccc094baf666a1a6656691e579e7c4deff6e114148/tic-set-screen-0.1.tar.gz",
    "platform": null,
    "description": "# tic-set-screen\n\nA command line tool for replacing the cover image of a TIC-80 .tic cartridge file\n\n## About\n\nAs of TIC-80 version 0.90, the cover image for a cartridge is saved as a dump of the screen data. This is displayed using the cartridge's built-in palette, which will be the default Sweetie16 (or DB16) palette if a custom palette has not been explicitly set up through the TIC-80 sprite editor. Notably, poking the palette memory from a running program does _not_ write those palette changes back to the cartridge file.\n\n[This is problematic for many size-coded / byte battle / byte jam releases](https://github.com/nesbox/TIC-80/issues/1552), as they consist only of code and no supporting data - a program that sets a custom palette will end up with a cover image displayed in false colours. Additionally, there's no way to capture scanline-level palette changes performed with SCN or OVR.\n\nIn the absence of a \"proper\" fix, `tic-set-screen` allows you to supply an arbitrary 16-colour image, and generates a new .tic cartridge file with the screen and palette chunks modified to use that as the cover image.\n\n(Note that, since the cartridge's built-in palette is changed, a program that only pokes some of the palette memory and relies on default values for the rest could end up looking different. If this is a problem, you can still use `tic-set-screen` to prepare a metadata cart for uploading to tic80.com.)\n\n## Installation\n\nWith Python 3.7 or above installed, run:\n\n```sh\npip install tic-set-screen\n```\n\n(Depending on your Python setup, the command may be `pip3` rather than `pip`. You can also install it into a Python virtual environment, if that's your jam.)\n\n## Usage\n\n```sh\ntic-set-screen input_cart.tic cover_image.png output_cart.tic\n```\n\nThe cover image must be 240x136 and use a maximum of 16 colours. It can be PNG, GIF, or [any other format recognised by Pillow](https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html).\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Command-line tool for replacing the cover image of a TIC-80 .tic cartridge file",
    "version": "0.1",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "b169476b0e3c1a9e2e4cf577f2b44d84",
                "sha256": "57cbd0cefdb2a05356bd423dff8ad56731649f363055db0446bc0edb02d92c9d"
            },
            "downloads": -1,
            "filename": "tic_set_screen-0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b169476b0e3c1a9e2e4cf577f2b44d84",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 4442,
            "upload_time": "2022-12-07T21:48:15",
            "upload_time_iso_8601": "2022-12-07T21:48:15.669091Z",
            "url": "https://files.pythonhosted.org/packages/82/f4/008d2c57711daeb86927dd62e70feb2675df6bf9c36e49f497d7f07fc49f/tic_set_screen-0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "a4fd47e476408a2ad70911a9198a15e2",
                "sha256": "67a2c134952964b5f36c5de9df31d8a920ff31e28201db90e0a13132d2d60e9c"
            },
            "downloads": -1,
            "filename": "tic-set-screen-0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a4fd47e476408a2ad70911a9198a15e2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 4241,
            "upload_time": "2022-12-07T21:48:17",
            "upload_time_iso_8601": "2022-12-07T21:48:17.262478Z",
            "url": "https://files.pythonhosted.org/packages/2f/78/09a763d81e1a853cd7ccc094baf666a1a6656691e579e7c4deff6e114148/tic-set-screen-0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-07 21:48:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "gasman",
    "github_project": "tic-set-screen",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "tic-set-screen"
}
        
Elapsed time: 0.03198s