il y a 6 ans
I got my Gamebuino few days ago and I currently work on my first game to familiarize myself with this system. While adding new features and observing RAM usage I started thinking about power of Gamebuino.
We have 32 KB of RAM, 256 KB of flash and CPU Clock at 48MHz. It seems like a lot when compared to NES specifications, but keep in mind that later game consoles has had additional GPU units, which Gamebuino doesn't have. Also, even the simplest game seems to take significant amount of RAM (I suspect this is needed by Gamebuino software, changing settings etc., but I honestly don't know for sure). SD card has huge space, but apparently we can load only images and sounds and there is no way to load e.g. levels.
In summary, how high do you estimate potential of Gamebuino? Which console or arcade machine would you compare it with? How advanced games should theoretically be possible to code?
I'm looking forward for all your replies.
NEW il y a 6 ans
I'd put it somewhere between the Gameboy Color and the Gameboy Advance (closer to the Advance) in terms of what kind of games it could potentially run. I think the lower screen res and extra CPU power help compensate for the lack of graphics hardware & memory.
By the way, images and sounds are just normal files, you can read and write anything with the SdFat library. Check out how the Gamebuino lib uses it for its save system as an example.
frogi16
il y a 6 ans
alxm:
This is very interesting, I have to find out more about working with SD card. Also your estimations are pretty similar to mine, but I was a little confused about amount of RAM in Gameboy - according to wikipedia it is: RAM 32 KB + 96 KB VRAM + 256 KB WRAM. A lot compared to Gamebuino.
deeph:
Do you know any specific methods to achieve it? Libraries or something?
jicehel:
I am eager to have more tutorials because I often think that I'm missing something important, which should be in Gamebuino library and after few minutes of searching I find something useful in the source code :)
Also I wonder if there are any plans for further expanding documentation, its lack of constructors declarations is annoying.
NEW il y a 6 ans
Theoretically you can even split your game in multiple .bin files that could be flashed/loaded on demand (and share a common .sav file maybe).
NEW il y a 6 ans
Yes, the new tutos will come to explain us all these subject. Count on us to not forget it but we do not unnecessay pressure about it (even maybe th Aadalie team could not be agree with tis affirmation about pressure ;) ) ATM in games alot of us don't use all power of the META but it's will change with time. Dont forget that the META is very young atm. Step by step we discover more about it.
Don't estimate power of the Meta with actual games, you can have a better idea of tht you can do with actual demos of in progress games like dn or cats and coins. You can have an idea with splatoon too. But you have already full games to judge too as Bumble bots, Rockster, Reuben Quest or Bangi.
NEW il y a 6 ans
alxm:
This is very interesting, I have to find out more about working with SD card. Also your estimations are pretty similar to mine, but I was a little confused about amount of RAM in Gameboy - according to wikipedia it is: RAM 32 KB + 96 KB VRAM + 256 KB WRAM. A lot compared to Gamebuino.
deeph:
Do you know any specific methods to achieve it? Libraries or something?
jicehel:
I am eager to have more tutorials because I often think that I'm missing something important, which should be in Gamebuino library and after few minutes of searching I find something useful in the source code :)
Also I wonder if there are any plans for further expanding documentation, its lack of constructors declarations is annoying.
aoneill
il y a 6 ans
https://www.gamebuino.com/academy/reference/gb-bootloader-game should do the trick to accomplish what deeph was talking about.
The display buffer uses a good chunk of the available RAM (10 kb?). There are also some functions in gb.bootloader
for reflashing parts of the flash memory. Not something you'd want to go crazy with since there is a limit to how many times it can be written to. However, I could imagine loading certain game assets from SD to flash as-needed to get around some memory limitations.
NEW il y a 6 ans
https://www.gamebuino.com/academy/reference/gb-bootloader-game should do the trick to accomplish what deeph was talking about.
The display buffer uses a good chunk of the available RAM (10 kb?). There are also some functions in gb.bootloader
for reflashing parts of the flash memory. Not something you'd want to go crazy with since there is a limit to how many times it can be written to. However, I could imagine loading certain game assets from SD to flash as-needed to get around some memory limitations.
NEW il y a 6 ans
Yes for assets, you can load a tilesset picture each time you change of level for example and change the content of your sprites / ennemies, asw ...
I'm near sure that it's possible to load file that isn't picture or sound to load data information, maps, monsters info, asw but i don't know how to do and i don't have find in references so have to wait that someone who know better the Meta answer... it's sure that it's can be usefull to load assets and data for big games.
NEW il y a 6 ans
Random sentiment: I love that the Gamebuino library makes it easy to do common things. I feel this product does an excellent job of balancing the needs of newcomers and those that want to push things. Reminds me of a quote by Larry Wall - "Easy things should be easy, and hard things should be possible."
NEW il y a 6 ans
It is rather hard to compare the gamebuino meta with other systems like the gameboy or gameboy color.
While the SAMD21 MCU is clearly more powerful than the z80-based CPUs those systems had, they already had a separate graphic processing unit. The CPU only needed to send a few signals to them and entire tilemaps etc. would all be built without the CPU, screen refreshes etc.
In the Gamebuino META all is software-driven by the CPU. That chops down quite some free CPU time for games to use.
This is very interesting, I have to find out more about working with SD card. Also your estimations are pretty similar to mine, but I was a little confused about amount of RAM in Gameboy - according to wikipedia it is: RAM 32 KB + 96 KB VRAM + 256 KB WRAM. A lot compared to Gamebuino.
Not to mention cartridges could just add more ram and paging etc.
The display buffer uses a good chunk of the available RAM (10 kb?)
80 * 64 * 2 = 10240
There are also some functions in
gb.bootloader
for reflashing parts of the flash memory. Not something you'd want to go crazy with since there is a limit to how many times it can be written to.
I wouldn't be too worried about that. While typically flash is rated for 10k write cycles it can actually perform magnitudes more, flash companies want to stay on the safe side. In fact, the SAMD21 MCU has operation for EEPROM emulation in flash (we don't use that). Also keep in mind that things like SD cards, USB sticks and even SSDs are just flash memory.
I'm near sure that it's possible to load file that isn't picture or sound to load data information, maps, monsters info, asw but i don't know how to do and i don't have find in references so have to wait that someone who know better the Meta answer... it's sure that it's can be usefull to load assets and data for big games.
You can load anything you want using SDFat. You can find plenty of documentation in their repo. There is no need to get an SdFat
instance, as the Gamebuino library already provides one called SD
.
Random sentiment: I love that the Gamebuino library makes it easy to do common things. I feel this product does an excellent job of balancing the needs of newcomers and those that want to push things. Reminds me of a quote by Larry Wall - "Easy things should be easy, and hard things should be possible."
I'm happy to hear that, that was a main goal when creating the library!
EDIT: Title like Yoda is
NEW il y a 6 ans
Thank for clearing out some issues, it's really helpful.
And the title... Building questions in English is completely different than in my native tongue so I sometimes get confused :)