Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

Cart #petrarca-7 | 2024-08-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
23

Thanks to Georgii Podshibikhin for music https://www.instagram.com/generalegovelich/?hl=en

Thanks to Yewbi for assets from https://unbent.itch.io/yewbi-playing-card-set-1

Changelog:
v6 (2024-08-10)

  • add music, thanks Georgii Podshibikhin
  • fix working with fake08 (should now work on myioo mini, fallback to pico8 0.2.5g)

v5 (2024-06-05)

  • add deck pay2win (starts in shop with everything, $42 money)
  • add abandoned deck
  • add glass deck
  • add cards to shop
  • add neptune planet
  • add glass cards
  • add five of kind
  • add captions to cards on hover

v4 (2024-06-05)

  • add jokers (info screen second screen)

[ Continue Reading.. ]

23
12 comments


Hi, just wondering if there's a keyboard shortcut to comment/uncomment selected text in the code editor. I use this a lot in my process in other environments, and was not able to find anything by guessing, nor by searching (including in pico-8 docs). This may be because I am bad at searching and guessing, or maybe it doesn't exist (yet)? I would also be interested in ideas for how to edit the code editor code to include this functionality.
Thanks!

1
3 comments


Cart #matein2volume1-0 | 2024-03-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

33 mate-in-2 puzzles. White to move. Will release more volumes.

4
0 comments


Cart #starscroll-0 | 2024-03-28 | Embed ▽ | No License
2

A quick port of my scrolling starfield PICO-8 tweetcart to help me get to grips with Picotron. Suitable as either a wallpaper or a screensaver.

To install:

  • run load #starscroll-0#
  • run save /appdata/system/wallpapers/stars.p64.png to use it as a wallpaper, or save /appdata/system/screensavers/stars.p64.png to use it as a screensaver (remember to create or copy those folders if you haven't done so yet)
2
1 comment


RESOLVED:

As @CraftedIsland said, if you can't find the Picotron folder in MacOS:

  • Open the 'Finder' application
  • Press Shift + Cmd + G
  • Enter: /Users/your-username/Library/Application Support/Picotron

Here you can edit back the files you messed or delete the Picotron folder to fully uninstall and reinstall it with default settings.

ISSUE:

Everytime I open Picotron I get this...

So here's what I did:
I created a "startup.lua" file in "appdata/system/"
I copied the content of "system/startup.lua" and pasted it inside "appdata/system/startup.lua"
I restarted Picotron and I get this...

Yeah I did some dumb things there :(

Thanks for understanding my issue, should I just uninistall and reinstall or is there a fix?
EDIT: It doesn't fix if I uninstall and reinstall... Where are the Picotron files located?

(I'm using Picotron 0.1.0d on MacOS 12.5 intel)

9 comments


Cart #starfield_wallpaper-0 | 2024-03-28 | Embed ▽ | License: CC4-BY-NC-SA
3

Fly into space with this wallpaper for Picotron.

Instructions:

  • run load #starfield_wallpaper-0

  • run save /appdata/system/wallpapers/starfield.p64.png (you might have to create the wallpaper folder, if you haven't done that yet)

  • open System Settings and select this wallpaper from the list
3
0 comments


Cart #nereus-2 | 2024-03-30 | Code ▽ | Embed ▽ | No License
32

Nereus

A procedurally generated vertical pixel platformer set in the depths of the ocean. Play as a deep sea diver ascending through treacherous environments, collecting as much gold as possible while you climb.

How to Play

Powerups

Collect and use special powerups.

Scoring

The game will keep your highest score even if you close the browser.

[ Continue Reading.. ]

32
9 comments


Cart #pproxy-0 | 2024-03-28 | Embed ▽ | License: CC4-BY-NC-SA
8

pProxy, the first and only webproxy for Picotron!

This is the first release, so its still very much a work in progress, so far you can...

  • Perform with requests with URLs over 256 Characters (fetch() is limited to 256 chars)
  • Do GET, POST, HEAD, PUT, PATCH, DELETE, CONNECT, OPTIONS and TRACE requests
  • Get more than just the body from your requests including status codes and headers
  • Store cookies in a reusable client

For ideas, bugs, or help, contact me on the Picotron discord
https://discord.gg/XQStcpPeH4

Public Proxy List:

http pproxy.pyrochiliarch.com 8080

To install (For Users):

If you are trying to run a project that relies on pProxy, follow these instructions.
Details for devs are further down.

1) Load the installer with load #pproxy and run it ctrl+r to install

2) Configure which proxy server to use with pProxy config http pproxy.pyrochiliarch.com 8080

3) Use pProxy test to check you connection, it should print the server version

Getting Started (For Devs):

The #pproxy cartridge is an installer, load it load #pproxy and run it ctrl+r to install

Once installed, configure the pProxy library to point to your proxy server using the pProxy command
Use the following settings to use a public server pProxy config http pproxy.pyrochiliarch.com 8080

You may want to setup your own server, which can help with development.
https://github.com/PyroChiliarch/pProxy
Instructions to setup are in the github readme

pProxy test will check your configuration settings
pProxy help will print additional commands

Write a script
There are 4 main steps
1) Make a proxy newProxy()
2) Make a client newHttpClient()
3) Craft a request newRequest("get", "http://www.google.com";, "")
4) Make the request doRequest(client, request)

A simple script would look like this
Note: the proxy and client should be reused

include("/appdata/system/lib/dynInclude.lua")
dynInclude("pProxy")
dynInclude("tabUtil")

local function handleErr(err)
	if not (err==nil) then
		print("Error: ".. err)
		pause("space")
		exit(1)
	end
end

-- 1 Make new proxy
proxy = pProxy:newProxy()

-- 2 Make new client
client, err = proxy:newHttpClient()
handleErr(err)

-- 3 Craft a request
request = proxy:newRequest("post", "http://httpbin.org/anything", "This is the body contents")

-- 4 Make the request
data, err = proxy:doRequest(client, request)
handleErr(err)

print("Printing the response to the console:\n" .. tabUtil.toString(data))

<br><br>
The example below performs multiple different example request that should help
you understand how pProxy is used.
Near the end of this post is documentation on functions

include("/appdata/system/lib/dynInclude.lua")
dynInclude("pProxy")
dynInclude("tabUtil")

local function handleErr(err)
	if not (err==nil) then
		print("Error: ".. err)
		pause("space")
		exit(1)
	end
end

--==========================--
--     Reused Values   	  --
--==========================--

-- proxy is used in all requests
-- the client is only used in Advanced requests

-- Make new proxy
proxy = pProxy:newProxy()

-- Make new client
client, err = proxy:newHttpClient()
handleErr(err)

--==========================--
--     Test connection		  --
--==========================--
print("=================================")
print("Testing connection to proxy")
ver, err = proxy:getVersion()
handleErr(err)
print("Connected to proxy version " .. ver)

--==========================--
--     Simple Get	  --
--==========================--
print("\n\n=================================")
print("Basic get request, like fetch but through proxy")
body, err = proxy:simpleGet("http://httpbin.org/robots.txt")
handleErr(err)
print("Get request result:\n" .. body)

--==========================--
--    Get with basic auth   --
--==========================--
print("\n\n=================================")
print("Perform basic auth")
-- Perform a get request with headers for basic auth

-- Build new request
request = proxy:newRequest("get", "http://httpbin.org/basic-auth/%41%6C%61%64%64%69%6E/%6F%70%65%6E%20%73%65%73%61%6D%65", "")

-- Add basic auth header
username = "Aladdin"
password = "open sesame"
auth = ("Basic " .. basexx.to_base64(username .. ":" .. password))
request.addHeader("Authorization", auth)

-- Do the request through the proxy
data, err = proxy:doRequest(client, request)
handleErr(err)

-- Get the result
print("Username: " .. username)
print("Password: " .. password)
print("Basic auth result:\n" .. data.status)

--==========================--
--     Post request	         --
--==========================--
print("\n\n=================================")
print("Do a post request and print the returned response")
request = proxy:newRequest("post", "http://httpbin.org/anything", "This is the body contents")
data, err = proxy:doRequest(client, request)
handleErr(err)

print("Post request, full results:\n" .. tabUtil.toString(data))

--==========================--
--     Get Cookies          --
--==========================--
print("\n\n=================================")
print("Make a request to get some cookies in our clients cookie jar,\nthen get the cookies from the client")

request = proxy:newRequest("get", "http://httpbin.org/cookies/set?myFirstCookie=chocolateChip&visitedPage=True", "")
data, err = proxy:doRequest(client, request)
handleErr(err)
print("response headers when getting some cookies:\n" .. tabUtil.toString(data.headers))

print("\nGetting cookies from the our client")
data, err = proxy:getCookies(client, "http://httpbin.org/")
handleErr(err)

print("Here are the cookies:\n" .. tabUtil.toString(data))

Extra details:

Whats installed:
The pProxy.lua library is installed to /appdata/system/lib/pProxy.lua
The dynInclude.lua library is installed to /appdata/system/lib/dynInclude.lua
The pProxy.lua command line configuration utility is installed to /appdata/system/lib/dynInclude.lua

Functions:
Format: (return) function (parameters)

(proxy table, error string) pProxy:newProxy()
Create a new proxy table, reuse this table with all other commands

(client string, error string) pProxy:newHttpClient()
Returns a UUID representing the client object on the proxy

(version string, error string) pProxy:getVersion()
Get the version of the current proxy

(response string) pProxy:simpleGet(url string)
Perform a simple get request through the proxy, very similar to fetch()

(request table) pProxy:newRequest(method string, url string, body string)
Crafts a new request, method supports the following values:
"GET", "POST", "HEAD", "PUT", "PATCH", "DELETE", "CONNECT", "OPTIONS" and "TRACE'

() request.addHeader(name string, value string)
Add a new header to your request
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers

(response table, error string) pProxy:doRequest (client string, request table)
Provide a client id string and a crafted request to the proxy, returns the response in a table

(cookies table) pProxy:getCookies(client string, url string)
Returns a table containing the cookies from the specified client, filtered by the host in the url
"https://www.google.com" will filter all cookies matching "www.google.com"
8
1 comment


When I tried to use the flag for exporting when calling pico8 from the command line :

pico8 usas.p8 -export usas.p8.html

I get ths error message

"please capture a label first"

Is it possible to export an image from the command line, it works if I press f7 in pico8, make a capture and manually export. But I would like to script this and export the html headless.

Second question, is it possible to use another HTML template or alter the default one, so I could add initial javascript ?

6 comments


Hi there!

I'm new to all of this. I've learned basic programming concepts thanks to my high school. We've done some C, C++, and SQL projects, really simple ones, nothing serious, but I've always wanted to try game development.

Do you guys suggest I buy Picotron? I've seen that there are only a few tutorials about it, so I'm not even sure where to start.

thanks for ur time ;)

7 comments


Please help me write the correct code.
I would like something like that

if dir d_up then y=player.y+8,
if dir d_down then y=player.y+1,
if dir d_none or d_left or d_right then y=player.y+5

2 comments


Also, calling map() draws only the first layer of the map..?

1 comment


Cart #rude_cat_wallpaper-0 | 2024-03-28 | Embed ▽ | License: CC4-BY-NC-SA
8

load #rude_cat_wallpaper then save appdata/system/wallpaper/rude_cat_wallpaper

comes in any colour, isn't always rude

8
0 comments


Cart #negigupepu-1 | 2024-03-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

[ BEAR HUNTER NINJA ]

The rules are simple.

From the three cards offered you get to pick one.

The computer then picks its choice of card from the same selection.

Hunter wins against Bear

Bear wins against Ninja

Ninja wins against Hunter

Will the card you pick win?

6
1 comment


Just a few notes from playing around with userdata. These notes assume 8M VM cycles/sec and large enough arrays to avoid substantial overhead and fully realize economies of scale.

  • Fast ops - add/mul/copy/etc. - cost 1/16 cycle.
  • Slow ops - div/convert/etc. - cost 1/4 cycle.
  • matmul is charged as a fast op based on the size of the output matrix. I'm a little suspicious that the answer seems to be so simple, so I'm wondering if I missed something.
  • copy and memmap/memcpy are approximately the same speed for 64 bit datatypes. For smaller datatypes, memcpy is proportionally faster, though of course you then have to manage strides/spans yourself. memcpy should also enable reinterpret_cast type shenanigans.
  • There is substantial overhead for small spans. If you use spans of length 1 you pay 1/4 cycle/span, same as a slow op. It looks like this may be a flat cost per span, but I'm not sure. Using the full/strided forms of the ops does not seem to have noticeable additional costs beyond the per-span cost.

[ Continue Reading.. ]

7
0 comments


Cart #tabutil-0 | 2024-03-28 | Embed ▽ | No License
1

tabUtil.lua library for use with Picotron
Contains useful functions for working with tables

Install with load #base64 and run it with crtl+r
A new file will be created /appdata/system/lib/tabUtil.lua

I personally love to use tabUtil.toString(#Table), its handy for debugging

Contains 3 functions, Usage Below

include("/appdata/system/lib/tabUtil.lua")

myTable = {
	name="Microsoft",
	employees={"Bill Gates", "Some Dude"},
	myFunction=function () print("Im a function") end,
}

meSecondTable = tabUtil.shallowCopy(myTable)
myTable = {}

print(tabUtil.getKeyCount(meSecondTable))
print(tabUtil.toString(meSecondTable))

This prints out the following

[ Continue Reading.. ]

1
0 comments


Cart #picochat-8 | 2024-03-30 | Embed ▽ | License: CC4-BY-NC-SA
23


PicoChat requires not to be run in the browser to function
Huge thanks to PixelDud for rebuilding the server in Go to support linux

Introducting PicoChat!

PicoChat is Picotron's first chat room. Its fully capable of sending and receiving messages, changing server and username.

Use /nick <name> to change your Username.
Use /server <server address> to change your server.

Want to setup your own chatroom?

Here's how to setup your own chatroom server:

  1. Download the server from here.
  2. Port forward port 80.
  3. Run the server.

If you want to add your server to the public server list, please send me a message on discord hessery

[ Continue Reading.. ]

23
18 comments


Cart #nezupejomu-0 | 2024-03-28 | Code ▽ | Embed ▽ | No License

0 comments


Cart #welcomenowitches-3 | 2024-03-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
28

Welcome No Witches!

The gala has begun! What fun there shall be, so long as no witches attend...

The gala begins! The invitations have gone out, dresses have been bought, hair dyed and styled, jewelry adorning the many princesses of the many kingdoms. However, some witches have caught wind of the event, and have disguised themselves to sneak in and ruin the party! Follow the dress codes as the princesses enter to ensure that the party goes well!

—————————————————————————————————————————

[ Continue Reading.. ]

28
4 comments


Cart #bouncebattle-0 | 2024-03-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2


A little silly lil' game I made to play with my friends (so its only two player), and figured I might as well publish it.

Some things to know:

You gotta fast fall and let go before hitting the ground to gain height.
If you dash into a bullet it is reflected and bounces back and recharges your dash instantly (yes ping pong is possible).

The rest is to be discovered as you play, have fun!

2
0 comments




Top    Load More Posts ->