32 Colors at the Same Time! | PICO-8

Поделиться
HTML-код
  • Опубликовано: 31 окт 2024

Комментарии • 66

  • @bonevolt
    @bonevolt 3 года назад +34

    Very nice video! Some uses for the second screen palette need to be planned from the beginning to work indeed. One use that doesn't require planning is for example if you want to add splitscreen to your game. To prevent the screen palette to affect the other player's screen (in a fade out/in) just use pal 2 in the second half! Also, it's interesting to note that in the classic Sonic games, the UI changed colors underwater with the screen palette :)

  • @Bigaston
    @Bigaston 3 года назад +26

    This is so intresting to see how Zep hide lot of things in PICO-8. I remember when someone discover this on Twitter this were insance

  • @Ellohir
    @Ellohir 3 года назад +10

    I haven't ever coded in pico-8 but I still watch your videos, you make it very interesting and I'm amazed at what the community comes up by manipulating memory on a virtual console!

  • @asliem2125
    @asliem2125 2 года назад +6

    Sooo... I know this is a year old or so, but you could have a "conveyor belt" effect for the background colours, where you perform a left shift operator on the bit mask and once the bit mask is full of ones, you clear it and move the positions of all the colours in the secondary palette up by one place, giving it a nice flowing effect. This is awesome!! I was not convinced beforehand, but I am gonna go get Pico 8 now

    • @LazyDevs
      @LazyDevs  2 года назад +3

      Ooh ! That's a great idea!

  • @waporwave5066
    @waporwave5066 3 года назад +3

    found this thing on a forum dive a little while back, but it's nice to see a comprehensive explanation. I'll have to keep this in mind if I ever need any of these effects

  • @marekvrbka
    @marekvrbka 3 года назад +13

    Kinda similar to TIC-80's scanline palette swap trick. Albeit that allows you to swap it for any color.

  • @msdcrafter8336
    @msdcrafter8336 3 года назад +4

    Your videos are just like gems. Its rare to come by one, but if you do its a real treasure. Happy 2021

  • @actually_a_sign3954
    @actually_a_sign3954 3 года назад +9

    Last time I was this early I was still coding Breakout

  • @gogoteca
    @gogoteca 3 года назад +2

    I always look forward to your videos mate. I don't know why but I was convinced you were in Japan rather than China lol. I just got an RG351P which apparently can run Pico 8 natively and is (I feel) a much better alternative to the Gameshell, the GPi and the (RIP) PocketCHIP. Any thoughts on this device? Cheers!

    • @LazyDevs
      @LazyDevs  3 года назад

      I want to do a video on the Anbernic devices. I have the RG350M and I might pull the trigger on the upcoming RG351M - basically the same as RG351P but with wifi. I'm also waiting for the next update of the Pico-8 emulator.

  • @jamaass
    @jamaass 3 года назад

    Great video! These features are so cool, I hope to see more games using them!

  • @LightBWK
    @LightBWK 3 года назад +4

    LOL, that intro. XD

  • @lovemadeinjapan
    @lovemadeinjapan 3 года назад +2

    I made a 16 level greyscale display mode....

  • @64jcl
    @64jcl Год назад

    Rather amazing that the dev of Pico8 even did this to his virtual machine. But then again I wonder why he even bothered to have an alternate palette? I mean part of the charm of this machine is the strict definition of the "hardware", and this sort of waters it out being not quite a Pico8 again? Sure its cool for those seeking that extra challenge and want higher color fidelity. Again, odd he even bothered to add this kind of feature.

    • @LazyDevs
      @LazyDevs  Год назад

      I think I heard there were similar "hidden" features in some old hardware. So there is some precedence.

  • @ShignBright
    @ShignBright 2 года назад +2

    In the future I want to make a game that completely defies expectations for pico 8... higher res, 32 colors, good graphics... at maybe the expense of framerate lol
    Maybe I can find some clever way of manipulating this stuff. Building my arsenal per say.
    I can already think of trading out some colors for secondary display pallette gradient stuffs.

    • @LazyDevs
      @LazyDevs  2 года назад +1

      That's a fun thing to try!

    • @Travis-ea4205
      @Travis-ea4205 6 месяцев назад +2

      We now have Picotron

  • @eboatwright_
    @eboatwright_ 3 года назад +1

    So. I have some questions for you.
    #1 How long have you been using PICO-8?
    #2 What was the first game you made in PICO-8?
    #3 What was your first programming language?
    #4 What was the first game you ever made?

    • @LazyDevs
      @LazyDevs  3 года назад +2

      #1 Since Summer 2018
      #2 Breakout
      #3 BASIC on the Atari 130XE
      #4 A text-based submarine simulator. You typed commands and the submarine would either dive or ascend to the surface. That's all there was. There was no gameplay to speak of. It was amazing.

    • @eboatwright_
      @eboatwright_ 3 года назад +2

      @@LazyDevs Wow!

  • @mypkamax
    @mypkamax 3 года назад +1

    Pico-8's similarities to other systems:
    Colour: NES, Atari ST, ESPBoy,
    Sound: Bandai WonderSwan

    • @LazyDevs
      @LazyDevs  3 года назад

      Oof. Yeah I guess in that they are all retro systems. But the specs are different. NES has way more colors to chose from but also restricted in the ammount you can use per sprite. ST is a full home computer vastly more capable than Pico-8, not only in terms of color selection.
      This is literally the first time I heard of ESPboy - seems like a more modern DYI platform, not really the same ballpark as the other two. It does have the same resolution but for the life of me I cannot find any information on the color capabilities.
      As for Sound, it’s dificult to really compare the specs. There aren’t any good objective metrics to do meanigful comparissons. Not sure why you singled out the WonderSwan but even the original GameBoy outperforms Pico-8 in many ways.

    • @mypkamax
      @mypkamax 3 года назад

      @@LazyDevs The Nintendo Game Boy has 2 pulse channels, 1 PCM wave channel and one noise channel, while the Bandai WonderSwan has 4 PCM wave channels which can be programmed to be anything, including noise. The Pico-8 also has 4 channels all with programmable waveforms.
      The Pico-8 sound chip just sounds like a WonderSwan.
      As for the ESPboy, there's a function called "setpalette" which allows the system to alter the palette with any colour in any slot, making it similar to the Atari ST in that regard, because they both only display 16 colours at once.

    • @mypkamax
      @mypkamax 3 года назад

      @@LazyDevs You've heard about the Bandai WonderSwan?

    • @LazyDevs
      @LazyDevs  3 года назад

      @@mypkamax I am familiar with the WonderSwan. Although I have never coded for it.
      I see why you picked it. WonderSwan's PCM capabilities aren't really the same as Pico-8's "Custom Instruments". WonderSwan allows you to customize sound at waveform level. Pico-8 Custom Instruments don't have that resolution. They are short sound effects that consist of the same 8 base waveforms in the end.
      It's true that the GameBoy is more restrictive in some ways. But also had at least one true PCM channel and some other bells and whistles. I suggested it mainly because just subjectively it tends to SOUND similarly to Pico-8.
      And really this should be the takeaway here. Pico-8's restrictions are not driven by any hardware. They are chosen by Zep, the developer. They tend to be a lot easier to use and more flexible than actual retro hardware while looking intentionally constrained. So we might never actually find a shoe that fits. The goals of Pico-8 and actual retro hardware are just inherently different.

    • @Sinistar1983
      @Sinistar1983 3 года назад

      Sound is more in line with a lite sid chip. Doesn't have all the filters, but its getting there.

  • @Jaxxette
    @Jaxxette 3 года назад +2

    34:12 But how do you manipulate the width of each band on the gradient effect? By default doesn't it just render them all equal distance across the length of the entire screen?

    • @LazyDevs
      @LazyDevs  3 года назад +2

      Using the bitmask you can tweak the width of the bands. Explained at 27:44

  • @stecchino28
    @stecchino28 3 года назад +1

    Quality intro and content 😘👌

  • @TheBeeshSpweesh
    @TheBeeshSpweesh 3 года назад +1

    18:32 Did you know about the ..= operator?

  • @AndrewTaylorPhD
    @AndrewTaylorPhD 3 месяца назад

    The rotate screen thing is cool but I just assumed you'd made one palette with half the normal and half the default colours, and another palette with the other halves, and switched halfway down the display.

    • @LazyDevs
      @LazyDevs  3 месяца назад

      Yeah but that won't work if there is more than 16 colors in a line

    • @AndrewTaylorPhD
      @AndrewTaylorPhD 3 месяца назад

      @@LazyDevs oh yeah, it's not a general solution, I'm just set up by years of nes videos to look for a programming trickery answer before a secret perform feature 🙂

  • @Kahedro
    @Kahedro 3 года назад +1

    So this was always possible, but nobody knew these bits anything until someone asked about if you could do this effect?

    • @TheBeeshSpweesh
      @TheBeeshSpweesh 3 года назад +1

      Pretty much!
      Bonevolt on the BBS (i.e. Lexaloffle's website forum) initially shared some ideas for colorizing different sections of the screen with different palettes. But then Zep suddenly showed up with a code snippet that uses the hidden secondary-palette feature that was sitting right within PICO-8, and is capable of supporting most of the ideas Bone had given in his post. Oh, and the gradient mode was also discovered when we were experimenting poking different values into 0x5F5F (we haven't found any other modes besides the 2 that have already been documented so far).
      Zep's snippet: www.lexaloffle.com/bbs/?pid=78509#p

  • @perodactyl490
    @perodactyl490 Год назад

    The color values are constantly being set to specific values. I don't know why.

  • @Rock_Bottom157
    @Rock_Bottom157 3 года назад

    I used the gradient effect to make a rainbow cursor in the editor (⚠Warning⚠ : This also changes the code editor) function _init()
    for i=0,15 do
    pal(i,i+128,2)
    end
    end
    function _update()
    poke(0x5f5f,0x30+1)
    memset(0x5f70,0b10101010,17)
    poke(0x5f2e,135)
    --poke(0x5f2c,135)
    end
    function _draw()
    cls()
    map()
    spr(1,60,60)
    end

    • @LazyDevs
      @LazyDevs  3 года назад

      Ha, that's a good idea. The code doesn't work for me. I get a rainbow background but the cursor stays white.

  • @Neozgred
    @Neozgred 2 года назад

    I don't know much about Pico-8 but i think i can give it a try but i got question, can i use this update60 function the way that one frame i clear screen and using main palette, and for second frame i don't clear the screen and then using only second (secret) palette? So i can draw 2 sets of sprites with totally different colours? Then i can keep my game logic running on every second frame so besides using update60 it will really run at 30fps with 32 colours split by 16 on each frame?

    • @LazyDevs
      @LazyDevs  2 года назад

      No that won't work becasue changing the Screen Palette will retroactively change the color of the contents of the screen. This is the difference between Screen Palette and Draw Palette.

  • @lorddorogoth
    @lorddorogoth 3 года назад +1

    It would be cool if dithering could be a thing.

    • @mypkamax
      @mypkamax 3 года назад

      What kind of dithering? Pixel dithering or temporal?

    • @lorddorogoth
      @lorddorogoth 3 года назад

      @@mypkamax uhh, I think pixel dithering

    • @mypkamax
      @mypkamax 3 года назад

      @@lorddorogoth Isn't it already?

    • @lorddorogoth
      @lorddorogoth 3 года назад +1

      @@mypkamax I meant dithering between the all the 32 colors rather than only being able to access the second color palette in bands.

  • @ZakStudio_
    @ZakStudio_ 3 года назад

    Like switching palette on atari st?

  • @Sinistar1983
    @Sinistar1983 3 года назад

    Do you have a tutorial for bank switching, or some form of it. Because I want to create larger projects.

    • @LazyDevs
      @LazyDevs  3 года назад +1

      It's called multicart. I don't have a tutorial, sorry. I avoid it since you can't have those projects hosted on Splore.

    • @Sinistar1983
      @Sinistar1983 3 года назад

      @@LazyDevs if you don't mind me asking where I can find a tutorial on it. And I'm willing to accept that I can't share it on splore since the larger projects I'm wanting to make just some interesting designs.

  • @JordanICM
    @JordanICM 8 месяцев назад

    Is there like a timestamp for the minute of this that actually matters so I dont have to watch half an hour to see how to get alternate colors?

    • @LazyDevs
      @LazyDevs  8 месяцев назад +1

      This is the "32 colors at the same time" video. The alternate colors video is here:
      ruclips.net/video/AsVzk6kCAJY/видео.html

  • @DavidSanchez-dj9ku
    @DavidSanchez-dj9ku Год назад

    so it is like appliying shaders?

    • @LazyDevs
      @LazyDevs  Год назад +1

      Shaders are its own thing

  • @stephaniemcfarland1825
    @stephaniemcfarland1825 3 года назад

    What if there was a way to have basically a single pixel by turning the alternate palette on and off really fast and with the right timings?

    • @LazyDevs
      @LazyDevs  3 года назад +1

      Not sure what you have in mind. Can you elaborate?

    • @stephaniemcfarland1825
      @stephaniemcfarland1825 3 года назад

      @@LazyDevs Honestly I can't even remember. It's been a couple days lol

  • @rahulkumar-hf2jz
    @rahulkumar-hf2jz 3 года назад

    Plz make Godot Tutorials , i learnt PICO-8 only from your breakout tutorials, only you explain things better :)

  • @big_b_radical3985
    @big_b_radical3985 3 года назад

    Current version has a lot of bugs. Don't know why he's waiting so long to update.

  • @EliezerDeMB2
    @EliezerDeMB2 6 месяцев назад

    64 colors

  • @ИгорьТетерин-ь5ъ
    @ИгорьТетерин-ь5ъ 3 года назад

    how to print text in Russian ?

    • @mypkamax
      @mypkamax 3 года назад +1

      That'll be tough. Cyrillic characters are not part of ASCII.

    • @CTimmerman
      @CTimmerman 3 года назад

      Get a Russian sprite sheet.

  • @jnkmal9519
    @jnkmal9519 2 года назад +1

    This isn't 8 bit at all. I loved Pico 8 for the idea of being 8 bit. But they have destroyed of with these 16bit ideas. You had it right, then you renewed it. Your first fault was adding reverb. That didn't happen until the 16snes nes. Do you even 8bit bro?

    • @LazyDevs
      @LazyDevs  2 года назад +3

      This is entirely consistent with the design, specifications and feel of 8bit systems. For instance, the NES could display up to 13 different background colours, and 12 sprite colours, giving a total maximum of 25 unique colours on-screen. But through Color Emphasis bits and clever PPU tricks you could theoretically push the system to achieve up to 512 colors. Pico-8 is still simpler and more restrained compared to that. Chill.