Log In  
Follow
wallgraffiti
Follow

bruh moment, not bruh moment

Squiddy (PICO-1k Jam)
by zep
RGB plasma
by rez
PICO-RAY V1.0
by electricgryphon

Cart #wg_ps_bugged-0 | 2021-09-24 | Code ▽ | Embed ▽ | No License

I am working on a productivity suite of sorts for PICO-8, and this is the very early version for the text editor.
The bug comes from scrolling with up and down. To reproduce, do the following:

  • Type some text on the top line, press enter
  • Type some text on the second line
  • Scroll as far down as possible
  • You should see the entire second line.

  • Delete all
  • Leave top line empty, press enter
  • Type some text on the second line
  • Scroll as far down as possible again

You should now see that the top two rows of pixels of the second line are not visible.
My code does not measure the length of the text, but the length of the table containing all lines, separated by new line characters. I have tried to debug, but that has not yielded any results.

P#97757 2021-09-24 18:06

Cart #noclipfinaleextended-0 | 2021-09-05 | Code ▽ | Embed ▽ | No License
4

Decided to extend Finale, and add a bit of a better animation. It evolves as the music goes on, so watch until the end. Enjoy!

P#96893 2021-09-05 13:35

So, as demonstrated by my recent post, I have finished my Pico-8 album, noclip. Now I want to export all the music from the cartridges. However, the exporter for music only exports one pattern. If you select multiple, it will simply export the one you just clicked on. Are there any tools made by the community which can export all the music from a cart and reconstruct it? Cheers in advance.

P#96870 2021-09-04 16:57

Cart #noclip_finale-0 | 2021-09-04 | Code ▽ | Embed ▽ | No License
4

This is the sixth and final song in my album of short Pico-8 songs, noclip. Enjoy!

P#96863 2021-09-04 12:01

Cart #wg_sm_wip-0 | 2021-08-18 | Code ▽ | Embed ▽ | No License
3

I've decided to have a go at developing a Portal/Portal 2 fangame since I'm a big fan of the series. This is the first public version of that, with most of the core engine code finished.

For those wondering, this takes place in the very, very early version of Aperture Science Innovators back when the facility was essentially a spiced up salt mine (hence the name).

Arrow keys to move, (X) to interact.

P#96196 2021-08-18 17:25 ( Edited 2021-08-18 17:26)

I've looked around and found out that literally no one has posted anything about attempts to implement BASIC on the PICO-8, which honestly kinda disappointed me. BASIC is, well, basic, so I would have thought someone would have at least tried to implement it... and now I want to do it.

Thoughts?

P#95718 2021-08-06 18:00 ( Edited 2021-08-06 19:55)

Cart #yowawefiwi-0 | 2021-07-25 | Code ▽ | Embed ▽ | No License

This brings up an error at line 21. I genuinely have absolutely no idea what it means.

P#95287 2021-07-25 19:30

Say a player has a way to design a custom painting in a game. This painting should persist between playthroughs, and be stored on the spritesheet.

I know that this should be done via cstore(), but I simply do not understand how.

function painting()
  -- code for modifying sheet through sset() here --
  cstore(A,A,L)
end

What I actually need is the values for A and L.
Cheers in advance.

P#95272 2021-07-25 16:51 ( Edited 2021-07-25 16:59)

Cart #wandered_wip-0 | 2021-07-24 | Code ▽ | Embed ▽ | No License

Decided to make a game about exploring a bunch of islands. Obviously needs a lot of work, but it's a start.
Hold S or (<) P2 to see the map.
Use P1 arrow keys to move.
Hold X or (X) P1 and press any of the P1 arrow keys to place/destroy a platform on water.
To do:

  • Add Scenery (e.g. trees, plants, etc.)
  • Add crafting + resource management
  • Make music
  • Make player look not trash
P#95245 2021-07-24 18:08

Cart #noclip5_card-0 | 2021-07-24 | Code ▽ | Embed ▽ | No License
4

P#95235 2021-07-24 11:40

Cart #rgb_wg-0 | 2021-07-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Decided to make a little 64x64 RGB display. 64 colours in total, which means 64x64x64. Neat.
Anyways, yeah. I've messed around a bit, and found some interesting colours. This probably won't be used at all, but it was fun to make, and I'm proud of it.

P#94415 2021-07-03 17:56

Cart #pal_theworld-0 | 2021-06-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

Decided to arrange some of the colours from the 32 colour palette, and this was the result. It consists of four gradients. Every colour has been named by yours truly to give some inspiration to the uses, but you can really use it for anything. If you use this for anything, please comment here! I want to see what you create with the colours.

EDIT: Due to SPLORE attempting to preserve explorer colours to keep visibility, it has sacrificed some of the colours in the label preview on native PICO-8. Not a bug, but I'm saying this just so that people don't get confused.

P#93779 2021-06-20 13:16 ( Edited 2021-06-20 13:20)

Cart #webkit_proto-0 | 2021-06-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Before I explain exactly what this is and why it exists, I need to explain the history behind it.

Some of you may have seen the (relatively small amount of) attempts to implement a BBS-type system by taking advantage of the General Use Memory region and it not being cleared by load(). It fascinated me when I first came across it, but I eventually forgot.
Recently, I came back to the concept with a new idea: static web pages. General use memory can contain 4864 32-bit numbers if not using the custom font, which is more than plenty for a page written in a simplified markup language. We can take that even further if instead of using each number as a single character, we split the 32-bit number into 4 8-bit numbers, resulting in 19456 characters.

The first step for me was designing the simplified markup language. I decided on something I call PPML, Portable Pico Markup Language. The syntax is the following:

tagname> tag content

A paragraph, for example, would look like this:

p> This is a paragraph

I decided this was suitable and moved on to the next part.
This next part was the renderer for the PPML. This is what you see in the above cartridge, displaying a demo page. The renderer consisted of a list of tags with rendering functions, a Global Render table and a Frame Render table. The Global Render contained persistent stuff like the background colour, while the Frame Render contained things like the cursor position for text. This then took the PPML, contained in the first tab, and processed it into a table for easy use. The _draw() function then simply looped through this content table, calling the tag render functions with the necessary arguments.
It's a simple method, but works pretty well.

The next step would be the networking; loading the cartridge, processing the data it left in General Use Memory and converting it into usable PPML. Then that can be fed into the renderer, and you can see the page.

Of course, this renderer is a proof-of-concept prototype. A lot more tags still need to be added and hopefully a very simple scripting language.

When all this is done, I hope to have a fully functioning browser which would let you browse the PicoWeb and maybe play some small games on Newgrounds-esque sites. But, we can only hope.

Feel free to leave feedback on the renderer/game plan!

P#93104 2021-06-06 10:52

I decided to make a simple class implementation. Here's what I managed to come up with:

function class(c)
    name=c[1]
    _𝘦𝘯𝘷[name]=function(...)
        local initargs={...}
        local obj={___fnccore={}}
        for k,f in pairs(c)do
            if type(f)=='function'then
                obj.___fnccore[k]=f
                obj[k]=function(...)
                    obj.___fnccore[k](obj,...)
                end
            end
        end
        obj.__init__(unpack(initargs))
        return obj
    end
end

The (preferred) syntax to use this with looks like this:

class { 'classname'
    __init__=function(self,args)
        -- Stuff goes here --
    end,
    -- Other functions here with "self" or something like that as the first argument --
}

Here's an example:

class { 'printer',
    __init__=function(self,a,b)
        self.a=a
        self.b=b
    end,
    thing=function(self,c)
        print(self.a..self.b..c)
    end
}
test=printer('one ','two')
test.thing(' three')

The output for the above would be:

one two three

Here is the cartridge containing the above example:

Cart #graffiticlasses-0 | 2021-06-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Feedback would be nice!

P#92893 2021-06-01 16:32

Cart #smoothcam-0 | 2021-05-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

My test for a smooth camera system. I plan to integrate it into a FNaF style game. Feedback is appreciated!

P#92769 2021-05-29 11:01

Cart #wiphorrorshooter-3 | 2021-05-11 | Code ▽ | Embed ▽ | No License

I've decided to make a horror shooter. This one has easy to expand multiplayer. Just add as many new_player() statements as you need!

Update 1.1.0:

  • Added map loading from-sprite
  • Fixed a few bugs
P#91803 2021-05-11 18:14 ( Edited 2021-05-11 19:24)

So, as most of us know, .p8 cartridges consist of sections. lua,gfx,map, etc etc. Well, I found this other section named gff. I just wanted to know what it did, since it doesn't seem to directly correlate to anything you can edit. I'm just asking since I'm making a cart generator in Python so I need to know if gff is an important memory region.

P#91334 2021-04-30 18:09

So I've just been thinking: wouldn't it be much more convinient to be able to "push" a new version of a cartridge to the BBS?

So I came up with three concept commands:

  • "PUSH"
  • "LOGIN"
  • "LOGOUT"

First, the login command. The syntax would be as follows:

LOGIN USERNAME PASSWORD

The screen would then be cleared and a login request would be sent to the BBS servers. If all goes well, then the login would be remembered until you logout. This would allow for things like viewing favourited cartridges and seeing them stored on other devices and on the BBS itself.

"LOGOUT" is self explanatory.

Now, the push command. It can only be used when a cartridge is loaded in memory. The syntax is as follows:

PUSH CARTID

CARTID being the normal ID, without the version(so "cart", not "cart-0" or "cart-1"). This would then execute the following steps:

  • Check if logged in
    • Send check request to BBS servers, asking if the cart id in question is owned by the current user
      • If all goes well, send the cartridge to the BBS and get it uploaded
    • If cartridge not owned by user, say so
  • If not logged in, say so

This way, small modifications won't have to include going into the browser at all.

> LOAD CART.P8
*modify some stuff*
> PUSH CART
Checking...
Verification Successful!
Sending...
Cartridge uploaded at #CART-1#

This would be a blessing to me.

P#90762 2021-04-18 13:25

I was listening to Missile Command's music, and really liked it, so I decided to export it to a .wav . I selected patterns 0-19 and, in the terminal, type the command:

EXPORT MISSILECOMMAND.WAV

The result was, indeed, a .wav file, but played around a quarter of the first note of pattern 19. That's it. I'm quite annoyed since the menu music in Missile Command is very good, but that's not the point. The point is there's a bug.

P#90680 2021-04-16 09:56

Cart #voroterrain-5 | 2021-06-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Another season, another terrain generator.

Below is an old version of the pipeline that was used for the generator. This has since been reworked a bit to add features.

  • Generate every possible syllable through structure "CV(n)" (Consonant, vowel, and an optional "n")
  • Pregenerate name with 2-5 syllables

  • Create n points and n/16 biome centres
  • Generate basic (polygonal) shape using voronoi
  • Apply "life" n/6.4 generations

  • Add name on screen

Tada! You've got yourself a basic map. You can also disable the "terrain" boolean to make it just generate a voronoi diagram, but that's boring and I don't need it so I leave "terrain" as True in the above cart. Feel free to play around though.


Here are some examples of pretty islands:


Have fun generating endless islands with silly names. Later!

P.S. v1.2.1 has introduced "Manual Mode". At any time in the generation process, you can press Z. When generation is over, you should see that the name of the landmass and the names of the nations don't show up. This is so that you can hide either. If you want the name of the landmass to show up, press Z during Manual Mode. Do the same for nations but with X instead of Z. This should let you have more versatility with my little toy.

Notes for modders:

  • The "quality" variable is what defines A) The amount of points for veronoi rendering B) The amount of biome centres and C) The amount of generations to run my little life thing(n, n/16 and n/6.4 respectively)
  • The syllable generator generates every single syllable in the given CV(n) structure. The code for this is very simple:
for c in all(consonants) do
    for v in all(vowels) do
        add(syllables,c..v)
        add(syllables,c..v..'n')
    end
end

Since v1.2.2, there is another syllable type, generated separately: VV.

for v in all(vowels)do
    for ov in all(vowels)do
        add(syllables,v..ov)
    end
end
  • The voronoi calculations can certainly be improved; I just don't know how. I'm not a pro at optimization or math.
  • The "biomes" are just sets of colours. There is no limit to the amount of colours each biome can have(I wanted as free of an environment as possible)
  • Do not uncomment "music()". It's for your own good.
  • The "colex" table simply excludes colours from being switched to their secondary palette alternatives. This is simply to make it look nice.

Have fun doing deranged things to the island generator. I hope that was a comprehensive list of notes.


Possible ideas:

  • Maybe a mode where you can look around the map with a zoomed in camera?

Version history:
  • V1.0.X: Initial Version
  • v1.1.X: Biome Update
  • v1.2.X: Nation Update
    • v1.2.1: Manual Mode
    • v1.2.2:
      • One new syllable type, VV
      • Experimental roughing which uses a symbol instead of a circle to rough up the edges of the islands
  • P#90637 2021-04-15 17:18 ( Edited 2021-06-26 11:20)

    View Older Posts
    Follow Lexaloffle:        
    Generated 2021-10-28 13:30:55 | 0.101s | Q:79