Log In  
Follow
Ningow
Follow
PIC-o-BEAT v1.2
by Ningow

Cart #nin_iwbtg-0 | 2021-08-19 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
3

I WANNA BE THE GUY

the movie: the demake

this is still in pretty early in development(it only has up to tyson)
but it's already fun enough to play and speedrun and stuff

i plan on doing the whole game in the future along with a base-cart for people to make their own levels
but i'm full of stuff to do rn so it might take a while

anyway:
expect updates

Empty Base-Cart


Cart #nin_iwbtbase-0 | 2021-08-19 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
3

This is an empty base-cart for you to make your own levels
it's still pretty rough, but for now it'll do

Plans moving forward

  • Multi-Cart
    the bosses of IWBTG are GIGANTIC in sprites AND code. the next step going foward is to separate the bosses and heavy rooms(tetris) into their own carts that way we will be able to afford more accurate bosses without losing too much(only that cart loading time)
  • Better Menu
    the game's menu is pretty basic rn, i plan on separating it into it's own cart and do some cartdata wizardry so that we have different saves and continues(i don't think this will be hard, just time-consuming)
  • Level Loader
    as of now, the levels are taking a good ammount of map data, but IWBTG is a HUGE game and it won't fit whole into a single cart, the plan is to divide the map into sections and load these into the map memory as they're needed, but the method to do so is still being looked at as idk if i will have enough chars(or tokens lol) to do it the usual way once the whole game's code is in there, and i don't want to just multi-cart it.
  • Friendlier code
    my code is a mess. i'll divide and reshape the code so that it's easier to understand and make your own levels while the base-cart isn't here
  • Mike Tyson's Theme
    it's missing ;^;
P#96243 2021-08-19 22:36 ( Edited 2021-08-19 23:55)

Cart #nintweetasketch-0 | 2021-04-03 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
5

Simple Etch-a-sketch tweetcart in 233 chars

Z and X -> Up and down
Left and Right -> as self
shaking is on the menu

the cart:

s,j,x,y,r,b= 1,64,64,64,rect,btn
menuitem(5,"∧",function()s=1end)::_::if s>0then
memset(24576,103,8191)s=0end
x+=(b(1)and 1)or(b(0)and-1or 0)y+=(b(5)and 1)or(b(4)and-1or 0)pset(x,y,0)for i=60,j do
r(j+i,j-i,j-i,j+i,8)end
flip()goto _
P#89936 2021-04-03 21:53

Cart #frlytweetningow-4 | 2021-04-03 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
1

Random fireflies that procedurally syncs up in 270 Chr, not bad for a first tweetcart i guess?
Ctrl+r to start again

the code:

s,r,c=sin,rnd,pset p={}
for i=0,200 do p[i] = {}
for j=1,3 do p[i][j] = r(128)-64 end
end::_:: cls()for i=0,200 do for j=1,2 do po=p[i]
p[i][j]=(po[j]+r(2)-1)%128 end
po[3]+=(po[3]>p[flr(r(50))+1][3])and -0.1 or 0.1
c(po[1],po[2],1+s((po[3]/64)*t())%11)
end flip()goto _
P#89887 2021-04-03 00:21

so, i'm planning on doing kind of a demake of rhythm heaven(with new minigames cuz, nintendo y'know?) but i don't think a single pico cart would be able to hold all music/sprites (i've only been able to hold 8 songs w/ pic-o-beat)
i've been looking around and i saw some options but i have no idea on what would work better for me, this is what i found so far:

compression: there's a lot of code about this here on the bbs that i find fascinating, but have zero idea on how it works to make it do the songs intead of the spritesheet

load a cart per stage: have a main menu cart and load each stage in different carts, the loading isn't great but if it's the best way to do it its allright

load only the music and spritesheet: i remember seeing this somewhere but i can't find it anymore, i imagine the loading would be quicker, and i could easily reuse mechanics between minigames but i have no idea on how to do it

a ton of peeking and poking: have a main cart with all the song and sprite data that "set up" the data on a series of "cartdatas" that can be memcpy-ed at runtime. this would allow community submissions with, i imagine, little to no difficulty but would be really awkward for the user

probably some really simple stuff idk about: if you know, please tell me

P#89584 2021-03-26 01:54 ( Edited 2021-03-26 02:53)

Cart #nin_pico_beat-2 | 2021-03-27 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
12

PIC-o-BEAT

PIC-o-BEAT is a rhythm game that really paints a picture

How to play?

1-Pick a beat

Choose a song from the 8 options with different style and speed to set your difficulty

2-Pick a pic

Choose a picture from the 48 available, they come in 3 sets: 8x8,harder 8x8 and 16x16

3-Paint!

Hit the notes as they get to the pointers, you can set your controls on the main menu:

Control scheme 0:

  • Directional - Yellow
  • Z and X - Blue

Control scheme 0:

  • Z,Down,Right - Yellow
  • X,Up,Left - Blue

4- Medals

If you get 100% you get a medal depending on your difficulty
[0x0]

How it works?


--bad code ahead--
this is how the images are stored
[0x0]

first the score then the texture right under
the program first scans the top image to a buffer from a pointer to some pixels ahead

  for i=0,17 do
   local posx, posy = ((point+i-2)%imgs)+imgp.x,imgp.y+flr((point+i-2)/imgs)
   if i==17 then
    if sget(posx, posy) == 10 then --is  yellow
      scrbuf[i] = 1
    elseif sget(posx, posy) == 12 then --is  blue
      scrbuf[i] = 2
    else
      scrbuf[i] = 0
    end
   else
     scrbuf[i] = scrbuf[i+1]
   end
  end

we also update the pointer every 2 beats of the first sfx channel using stat(), this way the speed of the pointer follows the speed of the song (this method could be used to follow odd time signatures/rhytms by using %3 for example)

  c2 = c1
  c1 = stat(20)
  if c1 != c2 then
    if c1%2 == 0 then
      point+=1
      readspr()
    else
      return false
    end
  end

if we press a key we check the buffer at the right spot to check if you got the note right
if so, we paint a dedicated piece of the spritesheet with the right texture and set the buffer with a "empty" note
if you press a wrong note, we also paint it with the texture but with offset colors, and put a "wrong" note on the buffer
if you press on empty you paint the texture and set a "not empty" note

 if inpa then
   if scrbuf[2] == 2 then
     sset(imgx,imgy,sget(posx,posy+imgs))
     scrbuf[2] = 10
   elseif scrbuf[2] == 1 or scrbuf[2] == -1 then
     sset(imgx,imgy,(((sget(posx,posy+imgs)+1)%15)+1))
     scrbuf[2] = -1
   elseif scrbuf[2] == 0 then
     sset(imgx,imgy,sget(posx,posy+imgs))
     scrbuf[2] = -3
   end
 elseif(...)

Once the song ends we just check the score textures and keep count of the errors
if black, is the end texture black?
if B or Y, is the end texture and img texture the same color?

for i=0,imgs*imgs do
    local imgx, imgy = ((i)%imgs)+112,flr((i)/imgs)
    local posx, posy = ((i)%imgs)+imgp.x,imgp.y+flr((i)/imgs)
    if sget(posx, posy) == 0 then
      if sget(imgx,imgy) != 0 then
        errors +=1
      end
    else
     if oneb == false then
      if sget(imgx,imgy) != sget(posx,posy+imgs) then
        errors +=1
      end
     else
       if sget(imgx,imgy) != sget(posx,posy) then
        errors +=1
       end
     end
    end
  end

and to do the medals you just peek and poke at the designated hex

and that's basically the whole mechanic, to create "expasion packs" it's just a matter of drawing over the textures, or creating new music but i've drawn too much already lol

changelog


V1.2: bugfixes and optimizations

  • removed "ghost notes" when replaying a pic
  • removed bug where perfect would stop registering if you "End Run" then exit
  • overall code optimization of 222 tokens

V1.3 even more optimizations

  • fixed bug where it wouldn't save more than one medal per session
  • more code optimization of 213 tokens

P#89423 2021-03-24 04:05 ( Edited 2021-03-27 16:20)

Cart #quartetnin-4 | 2021-03-16 | Code ▽ | Embed ▽ | Forks ▽ | License: CC4-BY-NC-SA
18

Quartet for pico-8

A port (demake?) of the gba port of the flash game QUARTET
-A fast paced puzzle game where you assemble faces to score

How to play?

Arrow keys - move the center piece to a window
X/C - menu select

Assemble faces with 4 pieces
Full faces are worth more
If a piece try to move to a occupied space you lose a life
If the timer runs out you also lose a life
Try and clear the board for an extra life (5 Max)

P#89058 2021-03-16 18:22 ( Edited 2021-03-16 22:04)

Follow Lexaloffle:        
Generated 2022-10-06 21:11:04 | 0.060s | Q:29