BBS > Lexaloffle Community Superblog
View Older Posts
Hello again, everyone!
So I was stuck on a plane from DC to San Francisco today, so I did what any rational person in that position would do: I threw a 1-person "build something nifty on a long plane ride" game jam!
My last jammy thing was qdlst(), the Quick 'n' Dirty Locally Similar Tiler algorithm that I subsequently used to build Greave, the dungeon crawler I released this past weekend. Today, for a change, I decided to try my hand at a worldmap builder in the vein of Civilization.
Being as I was on an airplane and was not about to shell out good money for lousy wifi, all I had to work with was PICO-8 and the text-based manual. Since I couldn't remember any perlin noise procedures off the top of my head, I had to improvise, which is more fun, anyhow. I decided to go the geological route: I'd build a world by pummeling a blank slate with a bunch of meteors. add a little random noise every ten rounds or so, and you've got yourself a planet!
The end result is surprisingly nifty and builds a cool 128x128 world map in a matter of seconds (toggle the real-time viz off by pressing the up button to see the algorithm work at full speed.) Use the left and right arrows to increase/decrease the number of meteor iterations the program goes through.
In order to expand Pico-8's scope of influence and interest, I was wondering if it was possible to compile a Pico-8 cartridge to a new kind of EXE. Not one that requires Windows as it can now but runs perfectly well in DOSBOX ?
Is this possible ?
Left-Display previous byte
Right-Display next byte
Up-Increment memory address
Down-Decrement memory address
o-Decrement memory address by 8
x-Increment memory address by 8
The code has a string and number stored to find in memory.
There is also a graphic and sfx to locate in memory.
I initially made this to look at the lua code and answer a few questions I had like what the endianness of the CPU is (it is little-endian if I worked things out correctly). Perhaps there are other things that can be found about the CPU. Maybe I could add a way to poke values in to test things.
I whipped this up and added a few features to make things a bit easier. Do whatever you want with it. If the BBS gave me the option I would have put it as CC0, but I selected CC4 because it was closest.
The code increments after displaying what is in the address.
Control: Press any key to break
Warning: Photosensitive epilepsy may result from this game.
I've put together a little homage to one of the classics of the 1980's arcade scene, Gauntlet. It's only one player (boo!) but it introduces procedurally-generated levels using the Quick 'n' Dirty Locally Similar Tiler algorithm I put together a few months ago. Run around, kill baddies, get powerups and treasure, and slowly uncover the deep and complex story of why, exactly, you're doing all of this.
This is a 1.0 release, so it's feature complete, probably buggy here and there, needs optimization, and is really bumping up against the token count. 😬
Have fun, and let me know what you think!
"Picowide", as the name suggest, is nothing more but the classic pico8 font, but wider on the left side.
This gives it eye-catching characteristic, as its based on the original but with an extra twist; familiar but new.
"Picowide" is printed exclusively through code, explained step by step in the code. Its not "a custom font".
The following gif is an example of how the font is used (At the start, with "play" and "credits", on the score-top right and on the time-bottom left)
The "Picowide" code has been published under the creative commons license "CC4-BY-NC-SA".
Beet 'em Up is an arcade style high-score chaser about throwing beets at your enemies!
This game was made in just a few hours for the Global Game Jam 2022. There is a lot of polish I wish I could have added (like actual animations) but I'll have to come back and add those later. For now I'm happy to have a finished product that I find quite fun :) Hope you enjoy it as well!
You are a ship collector with questionable methods of obtainment. Collect the 100 unique ships!
...and maybe there's a final fight for you at the horizon, who knows?
Primary weapon: C/Z
Secondary weapon: X
Primary weapon: Tab
Secondary weapon: Q
This is the first game I've ever actually finished and was used to help me learn to code. That being said, there's a little bit of jank.
left and right arrow keys move you around.
Catch the enemies' boulders but don't get hit! Periodically, flags will spawn limiting how far back you can move.
This was made for the Mini Jame Gam 2023 and is the first finished development project by myself, Dana St. Amand. (*finished is a relative term)
The theme of the Jam was "Reverse" and the special object was "flag." I took a little bit of a broader approach to the idea of "Reverse" by expanding the definition to include the opposite of what you would expect to happen. The jury is still out on if that was a good decision. I really used this Jam and the limitations of Pico-8 to force myself to learn how to code after years of dipping my toes in and being scared of getting wet. Despite the jank, I think it worked out okay!
Dana St. Amand
Instagram (It's a brand new account... old one got hacked...) @danast.amand
-- save to p8.rom format cstore(0,0,0x4300,"test.p8.rom")
Outcome (bug): test.p8.rom is actually a png file!!
Nearly finished! Took a few months to make, probably quite buggy.
my first pico 8 game. I used a bunch of tutorials for this, the one that I mainly used would be pico 8 top down adventure game tutorial by Dylan Bennett.
controls: m is inventory and n is close text. The rest is your typical arrow key setup
One of the limitations of Pico-8's educational edition is that you cannot import or export sprites. So - making use and only making use of the system itself, I show how you can actually do so.
First off, if you do not have Pico-8 yet, you can either purchase it HERE:
Or get more information and make full use of the educational edition, HERE:
Now the primary restriction to the educational edition is the lack of SPLORE, which is well-worth the cost of the system ($15) in all cases. You just boot up Pico-8. Type out SPLORE followed by the ENTER key and you have a wonderful frontend for all the gaming carts written in Pico-8 - sorted by popularity, how new they are, and you can search for carts by key words and names such as "star trek."
The other is using the IMPORT and EXPORT command, also disabled. Yet importing and exporting sprites for the educational edition of Pico-8 is the focus of this topic - it can be done after all - and it does not require outside code.
To load any Pico-8 cart in the educational edition from the website Lexaloffle, type in immediate mode,
load # include that pound sign, and the name of it, for instance, see the frame here:
Notice to where the arrow is pointing. Here is an enlargement of that area:
So the name of this cart is "dialog." Do not include the minus "-" or any text after that.
To load this in the educational edition of Pico-8, type in immediate mode,
load #dialog followed by ENTER.
And now you have some sprites to experiment with !
Either use this cart or any cart that has sprites you'd like to test - to see how to save off as a PNG file.
To save off these sprites to a PNG file, remove the code. You can do this in the code editor by pressing CTRL+A and the BACKSPACE key. Then type the following:
Run this with CTRL+R.
This will create a saved image as seen as a small square to the right of your programming frame. In there, RIGHT-CLICK your MOUSE and choose "Save image as ..." to save off this spritesheet as a 128x128 pixeled PNG file.
To recover the original source code, back in the code editor press CTRL+Z until the original code reappears highlighted, then press any arrow key to remove the highlight and the code is back.
Be aware there is no easy way to IMPORT a PNG file to Pico-8 educational edition, yet you can transfer graphics between these carts, read on.
You should also know that you can have more than one educational Pico-8 frame open at a time yet they DO NOT share files. You can see this by working in one frame, type in immediate mode either DIR or LS followed by ENTER and see the files you work on do not appear in both frames.
So always save your files to your HD, you can easily do this by typing in immediate mode:
save test or whatever filename you want, folowed by the ENTER key.
To load a file you have saved on your hard-drive, type out:
load withou anything else followed by the ENTER key and a filebox will come up letting you load that cart from your hard-drive.
Now to transfer graphics between one cart and the next, first off click in the red bar above the icon that looks a little like a demon.
You will get this screen:
Press CTRL+G to add grid and there you go. Here is where all your graphics go. I'll draw a few and return. Draw some yourself if you like.
OK we have 4-sprites. To transfer these to another Pico-8 educational edition tab that is open, to start left-click on the first sprite, the "1" Now holding down the SHIFT KEY drag the mouse to the right until all 4 are highlighted, then release the shift key. It should look like this:
Still maintaining the highlight on these 4-sprites. Press CTRL+C to copy that to the clipboard.
Now go to your OTHER Pico-8 educational edition frame, go to the spritesheet where you want to paste these 4-sprites, IE here:
Now right where the cursor is, press CTRL+V. You will see your 4-sprites posted.
Use this method to save your sprites from one Pico-8 educational edition cartridge to another.
Now if you want to post some sprites in Lexaloffle, still having your clipboard with those 4-images, you can anywhere in your message also press CTRL+V. It will appear as such:
[gf×]20080000000000000000000000000000000000888000099999900aaaaaa00bb00000000880000900099000000 aa00bb00bb00008800000000990000aaaa00bb00bb0000880000999999000000aa00bbbbbb000088000099000000a0 00aa000000bb000888800099999900aaaaaa000000bb000000000000000000000000000000000[/gf×]
But when you PREVIEW or POST, it will appear as such:
If you want to save these graphics for later, you can also save them in NOTEPAD or really any normal text editor. Just paste them and maybe put a label above what the sprite is supposed to be.
When you are ready to use this image in your code, highlight all of it minus your notes telling you what it is, and in your sprite sheet, press CTRL+V. It will paste the correct image accordingly.
Now you know how to import and export graphics between the educational edition of Pico-8 ! :)
If you found this helpful or have further questions, please let me know.
I play P.Craft a lot so I thought I'd do a remake of it
what I did:
-- changed item names
-- changed item sprites
-- changed grass sprites
-- tweaked some stuff
feel free to play around with it.
Okay, so the functionality is there, but you forgot to add it to the list you get if you type
config by itself. Currently this is all you get:
> config config [setting] available settings: volume theme gif_len gif_reset_mode gif_scale screenshot_scale splore_filter tab_width
Might wanna check and make sure there aren't any other additions you've missed adding here.
I am understanding I am not to write a program that allows you to import/export PNG files to and from P8 cartridges, so I wrote this in an attempt to assist other Pico-8 users of the educational edition since they cannot import or export graphics or music.
It uses a variance of the graphics for the little library I wrote, the first Picotron program written found HERE:
I exchanged the spider and bomb for Forest (tree) and rubble which can double as mountains. There are some miscellaneous sound effects and I also added a musical note player that overlaps the notes as they play so they sound better.
Users of the educational edition of Pico-8, you can copy this code by clipboard and paste directly in your source-code. It not only has 128-characters and game sprites but a fairly robust library of sound effects and the ability to play notes overlapping each other.
If you found this helpful or have further questions, please let me know.
This here is the sort demo by Zep that I animated. I don't really like how the code looks, but it works very well.
Hope you enjoy