I’m working on a new adventure game that uses isometric tiles stored on the FX flash chip. I also plan to store map data and dialog on the flash chip.
I started out by making a simple isometric sprite and map editor in python to figure out the tiles.
Here are some examples:
I then compiled the tiles and put them on the flash chip. They are about 64kb right now, which is fun since it is way more than could fit on the regular Arduboy. I could have compressed them to take up less space, but with the flash chip, who cares!
I don’t know how to tell the emulator about the flash data, so I took a video of a tile animation running on the ArduboyFX.
I have a lot more to do, but thought there might be some interest in FX programming.
Its not you @pmwasson. The issue is that the flash support in pABE uses Rx as flash chip select (was chosen in early development but changed later to SDA for FX hardware). Since the sketch is compiled for FX using SDA as flash chips select. the emulator doesn’t see any flash access.
@FManga could you add support for SDA? It would be nice if both Rx and SDA could be supported.
Add option option “flashselect”: “rx” and “flashselect”: “sda” under the binaries section in the json file. so the emulator can check this option to determinse if rx or sda is should be used as flash chips select (When the option isn’t present it should default to rx so the early development examples don’t break).
I’ve recompiled from source using RX as flash chips select so the demo can be enjoyed here with the current emulator version.
Woops, yeah we switched the flash select to SDA on the production versions of the mod-chip and factory FX to be the default.
Update: something still seems wrong, it appears the emulator is somehow grabbing the wrong frames? It doesn’t look the same as the video @pmwasson uploaded especially when you can see a clone in swamp and also some text?
And when you press down, he turns into a glyph on the floor…
Oh and the trees are frogs. Looks like there is some offset problem? Any thoughts on that @mr.blinky?
I recompiled for both Rx and SDA and It looks the same on my hardware as this demo. The recompiled version looks different then the original one though. Maybe it’s a side effect of the minimal code on github or the different data file?. I had to use 0xFF06 instead of 0xFF09 for FX_DATA_PAGE
Are you already planning on the internal flash and ram space you’ll need to have the gameplay?
I think having dialog could be a great use of the external flash too.
For objects or events, the other characters can all have their data stored on the external flash, so you’ve got some kind of data structure available within the RAM and you swap out when you go into battle or whatever.
Do you have it planned what kind of game this will be?
Also, the ability to save back to external memory is there, obviously you don’t want to do it all the time but using it as save game type storage should be totally fine. So you could save the state of the world map, or like in an RPG when you trigger certain events.
Yes, I have it mostly planned out, but I’m sure things will change during implementation.
It will be a simple story driven exploration game with some easy puzzles. I like to make games that are suitable for all ages.
I plan to store the graphics, map and interactions on the flash chip, where an interaction is a series of dialogs plus state updates using a simple byte-code. This means some of the game logic will live on the flash chip. Ideally, the “story” will be on the flash chip and the interpreter will be in program memory, but I’m sure I will have to cheat to get everything to work and some of the logic will end up in program memory. But the nice thing is that since the big data stuff isn’t in program memory, there should be lots of room left.