micke.cc

Prokrastination

Har hackat på/för min GameShell i dagarna två nu. Jag hade löst funderat på att skriva en custome launcher för den förut, eftersom den “nya” som ersatte en slö och resurskrävande skriven i python inte riktigt gör allt den lovar. Det är uppenbart att det inte är någon som programmerat UI förut har hackat ihop den, för den kör alla UI-animationer i en busy loop, så den köar upp alla animationer istället för att kunna avbryta dem och hoppa till nästa. Det gör att hela UI:t blir sjukt långsamt.

Så i går började jag lite lätt testa skriva en ny. När jag spånade på det tidigare tänkte jag skriva den i Rust, men det visade sig att Rust kanske inte var det optimala valet av språk. Det gick inte installera rätt toolchain, så jag tänkte att det nog ändå är bättre att skriva den i C++. Så fick det bli.

Har inte kommit särskillt långt på launchern, istället har jag suttit och försökt förstå hur den är implementerad idag, och hur hela systemet startar (då uppstartstiden är lite väl lång).

Nu ikväll vågade jag stänga av det gamla sättet med systemctl disable onetimelogin.service och istället skriva en egen service som startar X direkt istället för att som tidigare göra det via ett fulhack i .bashrc. Jag kan kanske förstå varför de gjort som de gjort, men jag anser att som jag gör det nu är bättre.

När jag ville testa launchern igår ville jag ha en libretro core att testa med, så då passade jag på att kolla på Gamma, som jag portade till libretro i början av sommaren. Det fanns en ganska tydlig crash-bug som jag ville försöka fixa. Hittade den efter att använt min slutledningsförmåga och kommit fram till att det var clippingen av sprites som inte funkade, så den skrev pixeldata utanför skärmbuffern. Ooops.

Nu när Gamma funkar utan att krasha är jag lite sugen på att göra det mer kul att spela. Just nu är kollisionskoden ganska petig, så den bara kollar bounding boxes. Antigen får jag göra den pixel perfect, eller så ge varje sprite egna colliders. Alternativ 2 skulle kräva mer assets, och jag vet inte hur sugen jag är på att röra level exportern igen. Att kolla pixlarna tar mer prestanda, men det går ju göra med bara kodändringar. Det får bli ett framtida projekt helt enkelt.

Allt det här är förstås bara så kallad produktiv prokrastination… Vad jag engentligen tänkt hålla på med i höst är att hacka på alla mina spel-projekt till retrodatorer och -konsoller. Vi får väl se hur långt jag kommer med nåt av det.