Log In  
Follow
sugarflower

Cart #sfcal-3 | 2025-05-22 | Embed ▽ | License: CC4-BY-NC-SA
1

Sugarflower's Calendar

I once made a calendar that displays on a console as a school assignment.
I figured it might come in handy, so I’m sharing it here.
Feel free to tweak and use it however you like!
Since it doesn’t rely on an API, it can always display the correct calendar—even when online

overview

  • A purely calculated calendar.
  • It is not dependent on API behavior.
  • Can be used as a widget.

control

  • Left and Right to move the month.
  • Down to move to today.
  • x to enable/disable background transparency.
  • z to switch to Sunday start/Monday start

update

  • 0.0.3: Available for Monday starts.
  • 0.0.2: Improved visibility when background is transparent using p8SCII
1
0 comments



Cart #bayer_trans-3 | 2025-04-18 | Embed ▽ | License: CC4-BY-NC-SA
2

When you drop a PNG image, it will be converted to a picotron palette and copied to the clipboard.
It is not optimized, so it may take some time. Also, it does not seem to work on the web.

update

  • The progress of the process is now displayed.(0.0.2)
2
2 comments



Cart #headphonegirl_wallpaper-4 | 2025-04-01 | Embed ▽ | License: CC4-BY-NC-SA
13

A wallpaper of a girl wearing headphones that relates to the desktop theme.

In this way, the color scheme and background pattern change according to the theme.

change

  • Fixed: Background color was not reflected
13
6 comments



Cart #findbbs-3 | 2025-03-31 | Embed ▽ | License: CC4-BY-NC-SA
4

I found it difficult to find a specific Cart from bbs://.
So I tried making a tool that can find Carts from bbs:// using part of the name.

Use it in the terminal screen as follows. (Of course, the execution path needs to be set, so it's best to run it in the directory where findbbs.p64.png exists.)

> findbbs pico

I'm sure there will be plenty of ideas to make it more convenient in the future, such as adding a GUI :p

4
1 comment



Cart #savepalette-0 | 2025-01-30 | Embed ▽ | License: CC4-BY-NC-SA
1

This cart reads the palette from memory and exports the aseprite palette file(.gpl).
Note: It does not work on BBS.

The exported gpl file contains metadata at the beginning for use with Picotron, so it cannot be directly read by Aseprite. Please delete the first line with an appropriate editor and save the file.

Yes! this one line.

Next, open the palette folder in Aseprite using 'Open Folder,' then copy the edited gpl file into the folder. You will then be able to use the Picotron palette (and you will also need to restart Aseprite).

[ Continue Reading.. ]

1
0 comments



While creating a program that uses Lua tables, I found it troublesome to check values, so I created this.
It is convenient to save it with a name such as dprt.lua and use it by including it.

--If you no longer need the debug display, you can disable it all together 
--by changing DEBUG_FLG to false.
--Also, if you want to display it on the host, set DEBUG_TO_HOST to true
DEBUG_FLG = true
DEBUG_TO_HOST = true

function dprt(v)
	local function dbg(v)
		local buf, t, i = "", type(v), 0
		if t == "table" then
			buf = "table{"
			for i in pairs(v) do
				if v[i] != nil then
					buf = string.format("%s \n\t%s: %s", buf, i,dbg(v[i]))
				end
			end
			buf = string.format("%s \n},", buf)
		elseif t == "userdata" then
			buf = "userdata{"
			for i=0,#v-1 do
				buf = string.format("%s %s: %s", buf, i, dbg(v[i]))
			end
			buf = string.format("%s \n},", buf)
		elseif t == "number" then

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=160665#p)
1
0 comments



Cart #internettime-2 | 2025-03-31 | Embed ▽ | License: CC4-BY-NC-SA
11

I've loved Internet Time ever since I first learned about it in the 1990s.
I'd love to be able to make my own wristwatch like .beat in the future, but for now I'm content with having it run on my beloved picotron.

update

  • Reduced screen updates and CPU load.
  • Utilized GUI functions to make it behave like a widget.
11
2 comments



Thanks to HTML export, it's now possible to run picotron cartridges on a mobile phone.
However, at present the DPAD isn't displayed, and touch operations are replaced by mouse movements, making operation very uncomfortable.

So I wrote the following code to simulate touch operations.
This also led me to notice some strange behavior, but that's another story.

I'd be happy if the picotron itself could support touch operations in the future.


function _init()
	window{cursor=0} -- Hide the mouse cursor
	tch = touch.new() -- Initializing the touch structure
end

function _draw()
	-- Touch Structure Update. This is necessary to determine touch.
	tch:check() 

	--[[
	*** Wait until it truly becomes the initial state ***

	Since _init cannot fully initialize, it waits for time to pass in the main program.
	It seems that the time t() stops in _init, and the mouse position does not change. 
	It seems that time progresses entirely within _draw(_update).

	This is to prevent unnecessary tap events from occurring because a touch is 
	determined by moving the position of the mouse cursor, and the initial position of 
	the mouse cannot be obtained correctly.

	There may be a way to avoid this using memory manipulation, etc. 
	This decision statement is clearly a waste of processing.
	--]]
	if t() < 0.2 then return end

	-- Processes when it is determined that a touch has occurred.
	if tch.tap then
		splatter(tch.x, tch.y)
	end
end

--

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=156240#p)
1
0 comments



Cart #misakitest-3 | 2025-01-21 | Embed ▽ | License: CC4-BY-NC-SA
2

I've put together a way to use the MISAKI font (https://littlelimit.net/misaki.htm) to display Japanese on picotoron.

Currently, only simple functions have been implemented, so there is still a lot to do before it can be used in practical use.

I can't keep up with the work by myself, so I decided to release it here so that it can be used partially. Basically, I think it's fine if you use it freely. (I would appreciate feedback as well.)

*You will need to know the kuten code to display it, but there is a lot of useful information on the Internet about this.


update 250121 - I've cleaned up the code a bit, and made the example code a bit friendlier.

2
0 comments



A virtual computer that runs on a fantasy console. I find this very interesting, so I've made it work for now.

Cart #chipeight-1 | 2024-09-10 | Embed ▽ | License: CC4-BY-NC-SA
5

Key assignments

[1][2][3][4]
[q][w][e][r]
[a][s][d][f]
[z][x][c][v]

These can also be changed in key.lua if necessary.

0.0.1b

  • Minor bug fixes
  • Modified to load ROMs as external pod files by drag and drop (Thank you pancelor!)
  • Change display from full screen to windowed (to drop the ROM)

How to create a "rom" pod.

store(filepath, userdata("u8", bytelength, romdata))

Specifically, it looks like this.

store("/logo.pod", userdata("u8", 132, "00e0a22a600c6108d01f7009a239d01fa2487008d01f7004a257d01f7008a266d01f7008a275d01f1228ff00ff003c003c003c003c00ff00ffff00ff0038003f003f003800ff00ff8000e000e00080008000e000e00080f800fc003e003f003b003900f800f8030007000f00bf00fb00f300e30043e505e2008507810180028007e106e7"))

5
6 comments



Cart #f32b_test-0 | 2024-08-22 | Embed ▽ | License: CC4-BY-NC-SA

  • Operation cannot be confirmed online.

If you want to store floating point values ​​in user data (or POD storage), currently using floats in user data or memmaps will not give good results.

My guess is that using floats in user data will be treated as standard in the future.

This program, f32b.lua, is included, and main.lua contains a simple usage example.
It is very experimental, but may be useful in some way.
It may also be possible to improve it and achieve more.
I don't think f32b.lua is fully optimized, but someone could perfect it.

The usage is as follows (contents of main.lua):

include "f32b.lua"

--[[
*** If you store it in user data.

f32b.lua uses "u8" for user data. Each floating point value uses 4 bytes.
In other words, if you want to save two values, create it as userdata("u8", 8).
--]]
mydata = userdata("u8", 8)

-- To set a value for user data, do this:
set_value(mydata, 0, -123.45)
set_value(mydata, 1, 100.0)

-- To extract it from the user data:
print(get_value(mydata, 0))
print(get_value(mydata, 1))

--

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=153082#p)
0 comments



function sel_layer(name)
	local m = fetch("map/0.map")
	local map_no = 0
	for i in pairs(m) do
		if m[i].name == name then
			map_no = i
			break
		end
	end
	if map_no != 0 then
		memmap(m[map_no].bmp, 0x100000)
	else
		error("There is no map data named '" .. name .. "'")
	end
end

I have saved the aforementioned code as a file named 'layer.lua'.
By utilizing this code, we can load specific map layers based on their assigned names.

To illustrate, imagine a map with a layer configuration as depicted in the following image.

include "layer.lua"

function _draw()
	sel_layer("sky")
	map(0, 0)

	sel_layer("house")
	map(0, 0)

	sel_layer("tree")
	map(0, 0)
end
1
0 comments



Cart #zamuwawaje-1 | 2024-12-20 | Embed ▽ | License: CC4-BY-NC-SA
3

There were problems with /ram/shared/theme.pod not being able to be loaded on the web, but by providing default values ​​it now works on the web.
No changes to functionality

3
0 comments



Cart #trackercmd-9 | 2025-03-25 | Embed ▽ | License: CC4-BY-NC-SA
5

Since I have a hard time remembering tracker commands, I made this.

changes

  • The frequency of screen updates has been reduced to reduce the load.
  • Following the example of Owl and others, we have adopted a GUI, which gives it a widget-like behavior.
  • update commands
  • Behavior changes for 0.1.1e
5
0 comments



Cart #zamarazida-0 | 2024-06-27 | Code ▽ | Embed ▽ | No License
1


This is Bytebeat that uses PCM function.

1
0 comments



Cart #punkt-1 | 2024-06-26 | Embed ▽ | License: CC4-BY-NC-SA
12

I ported my favorite game for Gamebuino.
It's simple but very nice.

The original punkt is here.

Note: This game is not a complete port of the original punkt.

12
0 comments



Although it is still a prototype, I have created a toy that dynamically generates sounds using PCM functions :) I am thinking about how to make this even more interesting.

Cart #zazaharudo-0 | 2024-06-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

8
1 comment



Cart #functionlist-7 | 2025-04-11 | Embed ▽ | License: CC4-BY-NC-SA
2

This was created to create an instruction list.
It will be useful to use spreadsheet software (such as Excel) to understand the whole.

The execution results are copied to the clipboard.
I also tried to get as much information as possible. This will help you find the location of code that references system/lib.

update

  • Fixed an issue where not all elements were being processed.
2
0 comments



Cart #characterlist_2-1 | 2024-05-25 | Embed ▽ | No License
4

In the future I'm thinking of running this in a tool tray.
This is not easy to use in terms of area unless you consider the layout.

0.0.2: Simple fix to reduce unnecessary code.
0.0.3: Selected characters are now copied to the clipboard for reuse.

4
0 comments



Cart #milkiecolour-3 | 2024-05-30 | Embed ▽ | License: CC4-BY-NC-SA
7

I tried to make it :D

0.1.1 Fixed to prevent unnecessary drawing.

7
0 comments





Top    Load More Posts ->