TinyCircuits

How do you compare the TinyArcade hardware with?

How do you compare the TinyArcade hardware with?
« on: August 06, 2018, 01:43:05 AM »
Hello everyone. I was explaining to a friend how much fun we were having with the TinyArcade, and he wanted to know how does it compare in terms of hardware with old video game consoles. What do you think it would be a fair comparison to?

Cheers,

Re: How do you compare the TinyArcade hardware with?
« Reply #1 on: August 14, 2018, 10:57:51 AM »
Hello,

I'll start by saying we're not quite sure how to answer that, but I can show you the specs of the TinyArcade and some old gaming platforms so you can make your own conclusions (that I hope you'll share)

TinyArcade:
Arduino Zero Processor

32 Bit Atmel ATSAMD21G18A ARM at 48MHz, DMA, USB
256KB Flash, 32KB SRAM
10-bit DAC, 12-bit ADC
Preloaded with Arduino compatible Bootloader
OLED display

96x64 OLED display, 16-bit color depth
0.96" (24.4mm) viewable area
Software controllable backlight (OLED brightness)
Power

Built in Lithium Battery Charger, charges when USB is plugged in
Power Slide Switch
Built in voltage regulators - support external voltage input up to 5.5V


And here's a link for some old gaming platforms to compare to:
http://www.videogames101.net/videogame.htm

Let us know what you think!
-Réna

Re: How do you compare the TinyArcade hardware with?
« Reply #2 on: August 15, 2018, 08:23:51 AM »
Hello Réna! Thank you very much for your answer. Yes, it seems that on paper, the TinyArcade is between a Super Nintendo and a Sega Saturn on CPU, but I haven't done a stress test and see how many sprites I can get running on screen. Have anybody tried benchmarking the TinyArcade?

In terms of pixel size, it's almost half of the screen resolution of an Atari 2600, but because of the small screen size the TinyArcade looks much better :).

Re: How do you compare the TinyArcade hardware with?
« Reply #3 on: August 15, 2018, 01:57:09 PM »
Hi John,

I'll be honest--this question is a difficult one for me, but I'll attempt to answer it to the best of my ability. The number of sprites that can be rendered on the screen has many different variables to consider.

For reference, keep in mind that a bitmap is just a list of bits (or bytes technically) that represent certain colors in a specific order; whereas a sprite is an object that references the bitmap to have some sort of appearance onscreen with a set of coordinates, as well as a few other features.

First we have to consider a few things about the bitmap itself. Bit depth and resolution are the main contributors here in terms of size. 16-Bit bitmaps of a certain resolution will always be two times larger than an 8-Bit bitmap of the same resolution. Then we must consider the resolution of each individual bitmap as this will impact how many bits will be used by said bitmap. If you would like to figure out the size of a specific sprite you are working with, you can use Arduino's built in sizeof() function which returns the number of bytes that a specific instance of a data type or object is using.

Now we can look into actual sprites rather than bitmaps. There is a possibility of all sprite objects having unique bitmaps, therefore causing significantly more memory to be used as the number of sprites increases. There is also the possibility of having multiple sprite objects use the same bitmap (such as identical enemies onscreen). If the latter is the case, then each sprite doesn't use as much total memory as mentioned in the former. Technically, all sprite objects are the same size; however, by reusing bitmaps for these sprites, you will decrease the overall memory footprint.

I hope you can understand why this question is rather difficult for me to answer, as there are many possible variances that impact the answer to your question.

If you are curious as to how much program storage space is still available on your TinyArcade, you can go to File > Preferences within the Arduino IDE, and select the check-boxes under "Show verbose output during" and next to "compilation" and "upload" then click "OK" to save these changes. Now whenever you verify or upload your sketch, the IDE will tell you what percentage of memory space was used.

Although I wasn't able to fully answer your question, I hope that this in some way assisted you in understanding some of the limitations of the TinyArcade hardware. Overall, you shouldn't have to worry too much about it.

-Hunter

dulsi

Re: How do you compare the TinyArcade hardware with?
« Reply #4 on: August 15, 2018, 05:43:23 PM »
Hello Réna! Thank you very much for your answer. Yes, it seems that on paper, the TinyArcade is between a Super Nintendo and a Sega Saturn on CPU, but I haven't done a stress test and see how many sprites I can get running on screen. Have anybody tried benchmarking the TinyArcade?

In terms of pixel size, it's almost half of the screen resolution of an Atari 2600, but because of the small screen size the TinyArcade looks much better :).
Sprites in old console were handled by the graphics hardware. They had a specific size and maybe restrictions on colors. For example see the discussion of coins on the gameboy. TinyArcade's graphics hardware doesn't have a concept of sprites. So to compare the number of sprites TinyArcade can handle, you have to decide what a sprite size is. Also you need to decide what framerate you are going for.

Re: How do you compare the TinyArcade hardware with?
« Reply #5 on: August 17, 2018, 08:40:20 PM »
Thanks to both of you for the answers. This gives me a much better idea of what kind of hardware the TinyArcade is.

Cheers,