4 ms·
That's exactly right. The issue I ran into is that the Playdate's CPU doesn't have a lot of juice, and spends a lot of time every frame just filling the screen.
by hbridges 2y ago
That's exactly right. The issue I ran into is that the Playdate's CPU doesn't have a lot of juice, and spends a lot of time every frame just filling the screen. There's no specialized blitting hardware or GPU. Hence realtime sprite scaling is not feasible.
I tried making some pre-scaled sprites, and the ROM footprint had to be pretty large to afford enough size steps for reasonably smooth motion as the train moved past objects. Even then, all that sprite drawing was starting to dip the frame rate.
So, I experimented with a pre-rendered approach, and that was a huge unlock. Eventually I was able to wrangle it into something that I think worked even better in the end! The pre-rendered video based approach allowed way more elaborate detail and I didn't have to worry about frame rate anymore.
- two_handfuls 2y agoI'm impressed the video fits!
- vardump 2y ago> Hence realtime sprite scaling is not feasible. Playdate got STM32F746 (ARM Cortex-M7F) at 180 MHz. 320 kB SRAM (and 16 MB of other RAM, maybe PSRAM?). DSP and saturation instructions are included. The display is 400x240 1bpp. Surely that's more than enough juice for sprite scaling? (Might need to copy graphics data to SRAM and even to do it in tiles for better performance.) Although your video based implementation is pretty cool.
- nickisnoble 2y agoI double dog dare you to port doom
- omoikane 2y agohttps://news.ycombinator.com/item?id=41013159 https://news.ycombinator.com/item?id=41013159 - Doom on Playdate (2024-07-20, 39 comments)