Log In  

Hello! I really enjoy working in pico-8, and I plan to use Raspberry Pi GPIO support to do some stuff with simple machines. I want to use an external process to handle stuff Pico-8 can't, like image recognition. My current plan is to rewrite a byte in the .p8 file and then reload that byte in the game periodically. Is there a better way to go about doing this? Thanks!

UPDATE: I had thought that Pico-8 might completely reserve access to the GPIO pins it's using, but this is not the case! After experimenting I've discovered that I can see changes made via another process within Pico-8. This way I can communicate with another process using the same pins.

P#34367 2016-12-28 12:52 ( Edited 2017-01-12 03:01)

I haven't tried this myself (really wish GPIO was available on the desktop version via sockets or something...), but you could check out the SPI or I2C protocols if you fancy getting your hands dirty.

They're fairly simple to emulate in software & although you sacrifice a couple of GPIO pins for them, one benefit is the transfer rate is controlled by a clock - i.e. toggling a pin on/off every _update() - so it's easy to synchronize with your external process & could help get you closer to maximum (reliable) transfer rates.

Theoretically at 60fps with one-way communication you could reach blistering speeds of 180-210 baud! (22.5 - 26.25 bytes/second)

P#34466 2016-12-29 17:11 ( Edited 2016-12-29 22:33)

Ah, that would be a good idea to minimize pins used, I'll need to test that. However, I've written a test cart that reloads a single byte from the disk and this seems to have the performance I need for my application. Also, my external process is also running on the pi, and I assume I'd run into issues trying to get access to the 8 GPIO pins pico-8 allows peek/poke operations on from a separate process.

P#34712 2017-01-02 02:00 ( Edited 2017-01-02 07:00)

super cool discovery! i will have to get my pi back from my friend and start poking around

P#35495 2017-01-11 22:01 ( Edited 2017-01-12 03:01)

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2023-01-29 22:03:32 | 0.005s | Q:10