How powerful Gamebuino is?

General

frogi16

6 years ago

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. 

alxm

NEW 6 years ago

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

6 years ago

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.

deeph

NEW 6 years ago

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).

jicehel

NEW 6 years ago

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. 

frogi16

NEW 6 years ago

alxm alxm

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

6 years ago

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.

aoneill

NEW 6 years ago

frogi16 frogi16

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.

jicehel

NEW 6 years ago

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. 

aoneill

NEW 6 years ago

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."

Sorunome

NEW 6 years ago

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

frogi16

6 years ago

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 :) 

frogi16

NEW 6 years ago

Sorunome Sorunome

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 :)