Log In  
Follow
brettski
Follow
Paint a Char
by brettski

I have come across a bug with the rendering one-off characters using a binary encoded string. If they binary encoded string ends in a nul \0 the character will not render.

For example:
"\^.⁸\0\0\0\0\0\0\0" doesn't work, the character will not render
"\^.\0\0\0\0\0\0\0⁸" does work and the character renders as expected; as does other combination tried as long as the last value isn't \0

None of this appears to be an issue if values are not string encoded first. Using a variable to store a binary value and using it to render a one-off character works in a cart regardless if there is a \0 at the end.

Doing this on the Pico-8 command line:

didn't work

print("\^."..chr(255)..chr(0)..chr(0)..chr(0)..chr(0)..chr(0)..chr(0)..chr(0))

worked

print("\^."..chr(255)..chr(0)..chr(0)..chr(0)..chr(0)..chr(0)..chr(0)..chr(1))

This isn't an issue when using hex values e.g.:("\^:FF00000000000000" always appear to work as expected)

After trying many different combinations it does appear the issue with rendering only occurs when the last value is \0

Tested in version 0.2.4 running on MacOS 12.1 and Windows 10

Example working values

⁸⁘\"A⁸⁸⁸⁸
\0\0\0\0\0\0\0◝
ᶜ▮▮▮8ム⁶³

Example non-working values

ᶜ▮▮▮8ム⁶\0
◝◝◝◝◝◝◝\0
◝████◜█\0
○█\0\0█ᵉ█\0
P#103867 2021-12-31 01:20 ( Edited 2021-12-31 01:37)

Paint a Char

A utility for creating one-off characters for use in other carts.
Immediate load this cart by load #paintachar

Cart #paintachar-5 | 2022-02-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
16

Creating and exporting

Paint your desired character and send to the clipboard using "c" button.
Select the type of output desired being Hexadecimal string or Binary String.
Press "x" to clear and start new.

Importing

Import hex codes to verify how they look, or edit them further.
To import a hex code:

  1. Set Paint a Char to receive hex from clipboard
  2. Copy the 16 digit hex code you want to import
  3. Paste (e.g. ctrl-v) the value in to the app
    • The import will not work if you don't past the value into the app first
  4. Press "O/C" to import the value

You should now see that hex code's rendered one-time character.
Only importing hex codes is supported at this time.

General Info

Use the output of this cart for creating one-off characters in your PICO-8 projects.

For binary encoded string you prefix the value with: "\^."
For hexadecimal string you prefix the value with: "\^:"

example cat (hex): print("\^:447cb67c3e7f0106")
example cat (bin): print("\^.$|へ|>○¹⁶")

Known issues

The binary output to the clipboard may not working correctly. There is an issue with the one-off character feature when a binary encoded string ends in a \0. In this condition, nothing renders. If the last line in your character is blank, I suggest you use hex output for now for that character. A bug report has been open here
**NOTE: This issue has been corrected in v0.2.4b

Version Information

  • v1 (30Dec21)
    • Initial Release
  • v2 (31Dec21)
    • Add import functionality
    • Change layout per feedback
  • v2.1 (31Dec21)
    • Update instruction wording
  • v2.2 (1Jan22)
    • Additional check for invalid imported hex value
  • v2.3 (8Feb22)
    • Exports control character with value
  • v2.4 (11Feb22)
    • 🤦‍♂️forgot to escape the control character
P#103849 2021-12-30 23:03 ( Edited 2022-02-18 16:19)

Cart #brettski_mines2-2 | 2022-02-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Mines2

Back at it with a refactored version of the first Mines game. The goal here is learning and fun, and this project has been both of those for me.

Play

  • Arrow keys to move around
  • x to select tile
  • z to set flag on tile

Features

  • Minesweeper clone ('cuz there ain't enough of them)
  • Level-progression game play
  • Game field scrolls larger than game view to support super-big game fields
  • Field continues indicator arrows
  • Better performance at 30fps
  • Intentional no mouse control to support handhelds

Hmm, that was shorter than I expected :). I wanted to refactor what I did in the first one and add levels. Which I did and they are working. It still ugly, but, well, okay. Could use some sound and music too 😉

Thank you for reading.

A wide field example:

P#85757 2020-12-25 03:57 ( Edited 2022-02-09 02:48)

Yet another mines clone.
Still working out

  • some of the end game flag logic
  • surrounding graphics
  • levels
  • sound affects

Cart #brettski_mines-1 | 2020-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

P#74862 2020-10-25 00:24 ( Edited 2020-10-25 00:26)

Cart #brettski_clock-1 | 2020-10-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2
Hey so I built a clock. Just because :)

It actually turned out to be a pretty fun little project.

Cart #brettski_clock-0 | 2020-06-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

P#78344 2020-06-21 00:12 ( Edited 2020-10-25 00:16)

Follow Lexaloffle:        
Generated 2022-08-15 13:31:06 | 0.066s | Q:26