Log In  
Follow
Hoatzin
Follow

Teaches video game design and new media to teens in a nonprofit after school art program.

Cart #porcelain_of_sisyphus-0 | 2021-02-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

The Porcelain of Sisyphus is the zen ocd music art germ game of 2021! Enjoy a li'l hell.

Featuring awesome musical stylings of @yeenmachine

Hold down ❎ to bleach the culture, 🅾️ to display the title (and sprinkle more grody pixels on the porcelain).

P#88016 2021-02-22 20:32 ( Edited 2021-02-23 02:52)

Hey y'all, I'm gonna use this thread as my rubber ducky while I flail around figuring stuff out. Hopefully someone here has insight or I am missing something simple and solvable...

Cart #yajoziyoro-0 | 2021-02-11 | Code ▽ | Embed ▽ | No License
1

I've been trying to create the audio atmosphere where button being held down (x) turns on an otherwise muted music track. In theory this seemed easy. I feel like I am always one step away from a graceful solution, but keep making a mess.

I have created the function squeak(voil) that goes through the music memory and peeks and pokes its way to mute and unmute (aka voil) the particular channel on key press. This only works for the NEXT pattern however and not for the current pattern playing.

Alright, well, since I'm doing the peeking, I know the sfx that is supposed to be playing on the heretofore muted channel. I can just run an sfx call, offset by stat(20)—and then when the music call rolls over to the next pattern, the newly unmuted channel will just take over and everything will loop fine from that point on forever, but the music tag doesn't take over from the sfx.

Here's the action bits; mus_cycle(n) is the rudimentary state machine that is toggled on click. Full cart above.

function squeak(voil)
 printh("-------------------- "..(voil and "voil up" or "voil down"))
 -- printh(stat(24))
 local c=0
 local mus_trac,catchup=stat(24),0
 for mem=0x3102,0x31ff,4 do
  local v=peek(mem)
  local track = voil and band(v,0b111111) or bor(v,0b1000000)
  poke(mem, track)
  -- printh("poked "..mem.."     "..track)

  if(c==mus_trac) catchup=band(track,0b111111)
  c+=1
 end
 if voil then

  sfx(catchup,3,stat(20))
  -- printh(stat(19).." voil")
  printh(catchup.." "..stat(23).." / "..stat(26).." voil")
 else

  sfx(-1,3)
  sfx(-1,2)
  -- sfx(21,-2)
  -- printh(stat(19).." no voil")
  printh(catchup.." "..stat(23).." / "..stat(26).." no voil")
 end
 -- music(stat(24),0,stat(26))
 -- printh(stat(19))
end

mus_action=1
-- 1=nothing playing, 2=play nothing
-- 3=squeaky playing, 4=play squeaky
function mus_cycle(n)
 local boops={
  function()  end,
  function()
   squeak(false)
   mus_action=1
  end,
  function()  end,
  function()
   squeak(true)
   mus_action=3
  end
 }
 boops[n]()
end
  • Why is the music+sfx tune catchup solution tripping all over itself?
  • It feels like it works (loops form sfx to music) THE FIRST TIME, but then runs out of numbers or something?
  • Am I running out of channels and not realizing it? There should be a whole empty channel? I tried letting the engine decide where to play what and I tried explicitly nailing things down.

  • If I could have the music track start from a particular NOTE that would be great, but I can't and if I restart the music, I lose the rhythm.
  • I dunno what to make of stat(26), the values it is returning are weird.
  • I've been meaning to cache the mute/voil versions of the music and memcpy them into place as needed. Would that solve the issue however?
  • I really want to avoid having to manually serve one of the music channels through some kind of timer if I can get away with it...
  • But ugh how do people traditionally solve this kind of problem?
P#87392 2021-02-11 02:52 ( Edited 2021-02-11 02:55)

Lately PICO8 will sometimes randomly crash, sometimes in a running game, sometimes in the editors. Full error in terminal shows up as:

-[MTLRenderPipelineDescriptorInternal validateWithDevice:]:2400: failed assertion `No valid pixelFormats set.'

I am running High Sierra (10.13.6) on a 2013 iMac.

P#85098 2020-12-06 21:46

Cart #peketaweki-0 | 2020-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

Built on top of the Collide demo, Hrozgo's Helltruffles started life as a Zelda-like adventure game engine for my class to use and build upon. It has since ballooned in scope and complexity a bit into its own thing worth finishing. I am posting it here in a not very well commented state because it is almost a pretty solid framework that others could use to tell little stories.

Ask if you have any questions about what is going on in the code! Note that collisions are currently turned off but are there and can be made to work if you want them to...

It's practically entirely coded and put together on a pocketCHIP.

P#43590 2017-08-24 15:41 ( Edited 2020-05-05 17:49)

Follow Lexaloffle:        
Generated 2021-03-01 01:21 | 0.144s | 2097k | Q:57