wyrl - for sharing insperation that led to the equation based backgrounds in the music video
Miss Mouse - for showing coming up with this method...
draw to one half of the screen
remap spritesheet to 0x60 (see manual)
sspr one half of the screen to the other (using the mirror arguments)
Pico8's time() quirks
The time() function in pico8 is machine dependent. Multiplying time() by 1.0007962696777 makes it more time accurate on my machine.
Firgured this ratio by recording beeps from pico 8 into Reaper.
--[[
Samples from Reaper's recording of Pico8
Pico8 beep What it should have been
8:00.422 8:00.00
8:30.424 8:30.00
7:30.370 7:30.00
7:45.376 7:45.00
8:15.419 8:15.00
8:20.391 8:20.00
7:40.354 7:40.00
So on my computer, time() is running slow.
]]
local samples = {
8.0070333333333333,
8.50706666666667,
7.50616666666667,
7.75626666666667,
8.25698333333333,
8.33985,
7.67256666666667,
}
local targets = {
8,
8.50,
7.50,
7.75,
8.25,
8.33333333333333,
7.66666666666667,
}
local average = 0
for i,sample in ipairs(samples) do
local ratio = sample / targets[i]
print('sample '..i,ratio)
average = average + ratio
end
print('average',average/#samples)
--[[
This program prints out...
sample 1 1.0008791666667
sample 2 1.000831372549
sample 3 1.0008222222222
sample 4 1.0008086021505
sample 5 1.0008464646465
sample 6 1.000782
sample 7 1.0007695652174
average 1.0008199133503
]]
We can use that to redefine the time function.
local og_time = time
function time()
return og_time()*1.0007962696777
end