Log In  

Cart #gesigewebo-0 | 2021-11-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

TO LOAD THIS CART IN PICO-8 TYPE IN IMMEDIATE MODE:
load #gesigewebo

Hello.

A few years back I managed to write a program that would let you read and write data directly to the lower part of the sprite set. That was 4096-bytes. Recently I made a type of paint program proving that you could load and save 8192-bytes without remotely affecting your sprites, mapper, sounds, or music.

Now I have written one that loads and saves a true 12288 bytes. That is both the sprites and mapper memory area. However this memory area can also be recovered leaving you open to load/save 12288 external bytes of data to a local array you need for your cart.

I also programmed this quite differently from what I normally would. Using _INIT() and _UPDATE() instead of GOTO and FLIP().

While I am not 100% sold on the idea of _UPDATE() I did want to program at least somewhat conventionally in case someone wants to check out the source code.

And yes I did have a little fun with the text parser and sound effects, much like a DOS QBasic demo program I wrote years ago. I can indeed see with _UPDATE() you can code intelligently where everything runs at once.

My next task is to write one that loads/saves 64k. If that works properly, I will post my findings and then start my next main Pico-8 project which will require this expanded memory.

Please enjoy and if you have any questions or comments, feel free to add them below.

P#99660 2021-11-06 01:46

Cool stuff! Could be quite useful for stuff like the mini operating systems and BBSs that people have tried to make. You could also use sound effect and music pattern space for extra memory. Of course, quite a lot of people would want to use sound, so there's an obvious sacrifice.

Good luck with your 64k project!

P#99677 2021-11-06 09:28

Hi @wallgraffiti. Thanks for writing !

Actually, no. You could use up all of sound and music too. I just didn't think it was that much memory to add to the total. To do it quickly, you could use 2-arrays.

One to backup sprites, mapper, sfx, and music to array # 1.
Then load your external file to memory zero.
Transfer from memory zero to array #2, your game data.
Transfer from array #1 back to memory.
Optionally erase array #1 to recover memory.
Done.

It could also be done with =2= external files and use only one array, the data you need, yet I don't know how fast that would run, saving 1 external and loading 2 external files at a time instead of just loading one. More experimenting is in order.

I'll post an update to the 12288 sometimes later that will continue to show the sprite and play sound all the way through.

P#99691 2021-11-06 16:42

[Please log in to post a comment]

Follow Lexaloffle:          
Generated 2022-12-09 05:16:39 | 0.024s | Q:15