A cross-platform PETSCII image editor.
View the Project on GitHubnurpax / petmate
Petmate is a cross-platform C (PETSCII image editor, drawing inspiration from thePETSCII) editor.
Petmate runs locally on a Mac / Windows / Linux machine and doesn’t require an internet connection.
Download Petmate
MacOS: (Petmate-0.8.1.dmg
Windows:Petmate Setup 0.8 .1.exe
Features
Drawing operations: draw character, colorize a character, select brush, draw with brush
MacOS: (Petmate-0.8.1.dmg
Windows:Petmate Setup 0.8 .1.exe
Features
Drawing operations: draw character, colorize a character, select brush, draw with brush
- Windows:Petmate Setup 0.8 .1.exe
Features
Drawing operations: draw character, colorize a character, select brush, draw with brush
Keyboard shortcuts
-
- (h) **************************,
************** v (**********************: Flip brush horizontally / vertically - (r) ****************************: Rotate current brush or character counterclockwise
-
- (g) ****************************: Toggle grid
- Fix gif export bug with more than (frame gif anims) (#) ****************************************************************************************************************)
- Fix a bug that caused most keyboard shortcuts from not working when loading a file. Affected platforms: Windows and Linux. This was a mega irritating bug that was possible to work-around by switching to another app and then back to Petmate. ( (#) ********************************************************************************************************************
- A new .json export format intended to be easy to consume by content processing scripts.
- Register recently opened / saved .petmate to the OS to make recently edited .petmate files show up on macOS Dock or Windows JumpList. (#)
- Add comments in exported .asm files that explain the exported PETSCII memory layout (****************************************************************************************************************
- Make open / save dialogs modal ( (# )
Display decimal value of a char in addition to hex. ( (#) ************************************************************************************************************************ - Bug fix: disable GPU rendering. This caused slowdown with larger than (x) ******************************************************************************************************************************************************************** canvases and forced bilinear filtering instead of nearest-neighbor for scaled canvas.
Petmate 0.6.1 (********************************************************************************************** - - 09
Bug fix: screen name editing only ever updated the currently selected screen name. (#)
Petmate 0.6.0 (********************************************************************************************** - - 02
- Port all code to TypeScript. This was a really big change - found and fixed some bugs but may have introduced new ones. Please report any findings!
- Fix keyboard shortcuts when the capslock is on (****************************************** #
- Completely new Electron build. Removed some MAJOR cruft from the project structure by switching to a simple Create React App based build using just CRA and electron-builder.
- Fix several keyboard shortcut related bugs: # , # , (#) ********************************************************************************************************************************** (,
- Import PETSCII from PNG. Please see above docs for limitations. ( (#) **************************************************************************************************************************************) Add an “include border” in PNG and GIF export (
**************************************** #
Add click-to-open a .petmate file in Windows Explorer and macOS Finder (********************************************** (#). Not tested on Linux so probably doesn’t work there.- Make backspace do something reasonable in text mode ( (#) ***********************************************************************************************************************************
- Remove screen name validation pattern (************************************
Petmate 0.5.0 (********************************************************************************************** (-) - ()
Add shift tool that can be used to move the whole PETSCII canvas around with (Alt-left / right / up / down) . ( (#) )
Add a “new screen” menu item in the application. This also adds a keyboard shortcut/T / Ctrl-T for the same.
Dragging a .petmate file on top of the application window will open it in Petmate. ( (#) ************************************************************************************************************************************************************
Supper lowercase / uppercase charsets in .prg / .asm / .bas export (# ) Petmate 0.4.1 (********************************************************************************************** (-) ********************************************************************************************************************************************************************************* - 03
- Add 32 - bit build for Windows.
******************************** (# **********************************************************************************************************************************
Petmate 0.4.0 (********************************************************************************************** (-) ********************************************************************************************************************************************************************************* - 03)
Upper / lower case font support. Resize painting canvas relative to window size. Check the Settings pane for options related to this. Improved performance.
Petmate 0.3.2 (********************************************************************************************** (-) - 23)
- Layout changes: change the size and position of the color picker ( (#) **************************************************************************************************************************************) and make the top thumbnails bigger (
# )
- Add ‘find the inverted version of the current char’ feature. This is bound to the ‘f’ key
Bug fix: The Alt key (or Ctrl on macOS) would get stuck in down state when tabbing in and out of Petmate ( (#) )
Petmate 0.3.1 (********************************************************************************************** (-) - 17)
- Display current mouse x, y character coordinates and screencode under cursor ( (#) ****************************************************************************************************************************************
Fix a bug where exporting a PETSCII screen in BASIC or asm would pick the border and background colors from the first screen and not the currently active screen ( (#) ******************************************************************************************************************************************** Default to 'inverted space' (eg, 8x8 block) character on application init (************************************************************** (#))
- UI layout clean up (#,
************************************************************************************************************************************)
Petmate 0.3.0 (********************************************************************************************** (-) - 12)
Add brush rotation ( (#) **********************************************************************************************************************************************
Add “character only” drawing mode (eg, change screencode but leave color untouched) ( (#) **********************************************************************************************************************************************************
- Add t ass and ACME .asm export (#) ****************************************************************************************************************************************************************************) Add BASIC export (w / BASIC display code from @Esshahn) ( (#) ************************************************************************************************************************************************************************)
- Add togglable grid on top of painting canvas ( (#) ************************************************************************************************************************************************************************
Petmate 0.2.5 (********************************************************************************************** (-) - 11)
- New export options for PNG ( (#
- **************************************************************************************************************************************
Double width & height for PNG export
Add transparent pixel to prevent Twitter from transcoding a PNG to JPEG
- Add support for exporting to assembly listing (KickAssembler only in this version) ( (#) **************************************************************************************************************************************************************************) Import all screens from a .c PETSCII file (not just the first one) ( (#) **************************************************************************************************************************************************************************) Work-in-progress BASIC listing export ( (#) **************************************************************************************************************************************************************************** Alt-leftclick will select the draw mode if used when the brush mode is active. Similarly, switch to draw mode from brush or colorize modes when the user selects a new screencode from the character select pane.
Petmate 0.2.4 (********************************************************************************************** (-) - 09)
- Add “pick character and color under cursor” with alt-left-click ( (# 8) , (# 54
Petmate 0.2.3 (********************************************************************************************** (-) - 09)
- Add keyboard shortcuts for choosing the current tool ( 'x'-draw,' c'-colorize, 'b'-select brush, the same are mapped to' 1 ',' 2 'and' 3 'too.) ( (#) **********************************************************************************************************************************************************
- Fix png export bug introduced in 0.2.2
Petmate 0.2.2 (********************************************************************************************** (-) - 07)
- color palette selection (vice, colodore, etc .) (******************************************************************************************************************************************************************************
- Add application icon (************************************************************** (#))**********
BUGS in this version: color palette selection breaks .png export.
- (Alt-Left Click
: Select character and color under cursor
- (Start drawing while holding SHIFT: Lock vertical or horizontal movement for drawing straight lines
- (⌘1-4 / Ctrl 1-4
: Switch between palettes. Use the Preferences pane to configure palettes
- (Left / right arrows) ************************: Move to previous / next screen
- Alt-left / right / up / down
: Shift the whole screen left / right / up / down
- (⌘T / Ctrl-T
: Add a new screen.
Pan / zoom (new in Petmate 0.7):
- when in pan / zoom mode: mousedrag
- to pan the PETSCII canvas
- When in pan / zoom mode:
Alt-mousewheelto zoom in / out
- When in pan / zoom mode:
doubleclick
to reset zoom / pan position.
- (Spacebar-mousedrag
: Pan the PETSCII canvas (if zoomed in) in all modes except text input mode
- (Alt-mousewheel) ****************************: Zoom in / out in all modes except text input mode
Open / Save / Save As: use platform shortcuts (eg, Save is (Ctrl S) **************************** (on Windows,
**************************** on Mac.
Undo / Redo: use platform shortcuts (eg,(⌘Z) **************************** and (⌘⇧Z) ************************** (on Mac).
Custom fonts / charsets: Use the
File / Fonts (menu.
Using Petmate to edit Dir Art
Petmate 0.7.0 adds experimental support for editing directory art in C .d disk image files.
The process of making directory art with Petmate is as follows:
Create a xN screen in Petmate. (Or alternatively, load in a .d 64 that already contains several directory entries.)
Export the xN screen as a .json file.
- Use (c) ******************************************************************************************************** (js
tool to author such .d (files.
A command line example for step # 3 :
Let's say you have a .d file calleddemo1. d 64
and your dir art is exported into a file called dirart.json
. Run the following command:
(# Patch in dirart using demo1.d************************************************************************************************************************************** as the source and write # the result into demo1-result.d 64 c 1541 js --json dirart.json demo1.d 70 demo1-result.d (******************************
****************
At the time of writing (2717 - 04 - 20, Petmate does not validate that the contents of your dir art make sense as directory entries. It will just write whatever screencodes you used in your Petmate screen. The special character control codes will be shown more prominently in future Petmate versions.
Processing PETSCII contentPetmate 0.7 adds a new .json export format. It is intended to stay unchanged across Petmate versions and its intended to be easy to consume by content processing scripts written in say Python or JavaScript.
The structure of Petmate’s .json export format is pretty simple:
{ "version": 1, "framebufs": [ { "width": 16, "height": 14, "backgroundColor": 6, "borderColor": 14, "charset": "upper", "name": "screen_003", "screencodes": [ ... ], # a flat array of width * height screencodes "colors": [ ... ], # a flat array of width * height colors } ] }****************
Importing PETSCII from PNG image files
As of version 0.6.0, Petmate supports importing PETSCII from PNG images. This import feature matches pixel data against the C ROM charsets (upper and lower case fonts). There is no “fuzzy” machine vision style matching, the code doing the import is looking for a pixel perfect match. This means images that have been scaled (double pixeled or other scale ratio) cannot currently be imported. The PNG importer also expects the image dimensions and borders to match those of VICE:
**************************************************************************************************************** (x) **************************************************************************************************************** for borderless images
- (x) ************************************************************************************************************** for images with border (left and right border width pixels, top border (pixels, bottom (pixels).
Colors are matched by quantizing the input pixels into indexed color by looking at the closest mean square error against all the color palettes supported by Petmate, and picking the match that has the smallest mean square error. If the input image contains colors that are wildly different from the Petmate prebaked palettes, some colors may come out wrong. Please report any problems viaGitHub issues.
Preferences
The settings are saved in the following location:
- macOS: (~ / Library / Application Support / Petmate / Settings) ****************************
- Windows:% APPDATA% / Petmate / Settings
************************************ Release history
Petmate 0.8.1 (2717 - 02 - 07)
Add CA and (c) ****************************************************************************************************************************************************** jasm support for assembly export (
************************** (#) ****************************************************************************************************************)
Petmate 0.8.0 (********************************************************************************************** - - 23)
- Add custom charsets ( 166. You can load. 65 c font files from (http://kofler.dot.at/c) **************************************************************************************************************************************************** / font _ (********************************************************************************************************************************************************************************************) .html. Fonts cannot be edited within Petmate - but this will probably get added in later releases.
Increase the size of gif Frame delay input width ( (#) ******************************************************************************************************************)
- Choose different outline color for a defined brush opposed to an empty one ( (#
)
Petmate 0.7.1 (********************************************************************************************** - - 05)
- Add SEQ file format import and export. Thanks@ sixofdlocand@ manuelviofor your contribution!
Petmate 0.7.0 ( - - 15)
Arbitrary sized PETSCII canvas (edit the (x) ********************************************************************************************************************************************************************** (text below the new screen button and hit ) ( (# Pan / zoom the PETSCII canvas
Prompt for cancel / quit if unsaved changes when closing the main window or quitting. (# Support importing Dir art from .d (files.)
**********
Petmate 0.2.1 (********************************************************************************************** (-) - 05
- Add “smart” vertical and horizontal mirroring ( (******************************************************************************************************************************************************)
Show border color on screen thumbnails ( (#) ************************************************************************************************************************************************ Add a Preferences item in the app menu (macOS only), close preferences with ESC Use 'q', 'e' instead of COMMAND-left / right to cycle currently selected color ( (# ******************************************************************************************************************************************************))
- Remove secondary icon for brushes (****************************************************************** (#) ********************************************************************************************************************************************************
- Fix shift axis locking bug (******************************************************************** (#) ************************************************************************************************************************************************ Draw a line between current and previous drag position (
************************************************************************ (#) **************************************************************************************************************************************************
Petmate 0.2.0 (********************************************************************************************** (-) - 03
Multiple, customizable palettes (saved in Preferences) ( # )
Added keyboard shortcuts for selecting next / prev color and shortcuts to switch between color palettes.
Added automatic switching to character drawing when the user selects a character or a color ( (#) ****************************************************************************************************************************************************) Inherit previous screen colors when adding a new screen ( (#) ****************************************************************************************************************************************************)
Petmate 0.1.1 (********************************************************************************************** (-) *********************************************************************************************************************************************************************************** - ()
Fix (mouse drawing drag end doesn't always get detected correctly
ImplementHold down SHIFT while drawing for straight lines
Petmate 0.1.0 (********************************************************************************************** (-) *********************************************************************************************************************************************************************************** - 32)
(*********************************** (************************************************************************************************** **************************************************************************************** Read More (****************************************************************************************************
General:
************************ (ESC) : Reset brush selection
(a, (s) ****************, (d) , w********************: Move left / down / right / up in the character selector
(q, e: Select prev / next color
(f) ****************************: Select the inverted version of the currently selected char.
(x, (c) **************************, (3) , b) ****************************,z: Select tool (draw / colorize / char-only draw / brush / pan zoom)
(1) ****************************, (2) ****************, (3) , 4) ****************************,5, (6) **************: Select tool (draw / colorize / char-only draw / brush / text / pan zoom)
, (s) ****************, (d) , w********************: Move left / down / right / up in the character selector
(q, e: Select prev / next color
(f) ****************************: Select the inverted version of the currently selected char.
(x, (c) **************************, (3) , b) ****************************,z: Select tool (draw / colorize / char-only draw / brush / pan zoom)
(1) ****************************, (2) ****************, (3) , 4) ****************************,5, (6) **************: Select tool (draw / colorize / char-only draw / brush / text / pan zoom)
GIPHY App Key not set. Please check settings