One thing it took me a huge while to understand is that all the old portable consoles could exist thanks to specialized hardware for graphics rendering in particular
I think a lot of these projects don’t use that kind of thing, which makes me wonder if there’s a market/space in the community for a hardware graphics driver off the cheapest FGPA possible that could drive a TFT and enable flappy bird at a bit more than 20FPS
This is also why each console had a certain "look" which told you from a screenshot which console a game ran on.
The down side is that it made games super hardware-dependent, and porting games from one console to another often meant re-designing significant parts of the gameplay and artwork. So my first thought is this would make it too much work for the modern hobby gamedev scene, but then again people make games for CHIP-8 so who knows.
>The down side is that it made games super hardware-dependent
Slightly off-topic, but: it was the most important upside - the game could conceivably be optimized for the characteristics of the controller(s), and in some cases, display (hello, Nintendo DS).
Now that cross-platform portability is the name of the game, most games tend to have bland control schemas, pretty much the lowest common denominator of (XBOne, PS4, PC with mouse and keyboard). Playability suffers. Granted, there are still some hold-overs, among them flight sims, but that's mor of a niche thing.
But by and large, we're in bear part of the cycle of game control innovation.
Sometimes - but sometimes, it's also surprising how close to modern devices they were.
Remember the Nintendo DS? It used two ARM cores and a 3.7V LiPo battery. And those cheap 'Arduino'-compatible LCDs all have ASICs in them to drive the displays and expose the display RAM over a common communication interface. The actual display drivers support SPI/I2C as a convenience, for fast stuff they have parallel interfaces similar to actual HD 24-bit RGB displys.
I reckon it's only a matter of time until someone uses the ESP8266 to synthesise a TV signal, whether that be at baseband or transmitted using the integrated radio.
In fact a quick search shows that it is already in progress.
The Amstrad had a 4Mhz 8 bit Z80 CPU whilst the esp32 has a dual core 240MHz 32 bit CPU with 520K RAM 4MB flash, bluetooth low energy and bluetooth classic, wifi b/g/n 4 SPI interfaces 2 I2C interfaces 2 I2S interfaces, 10 touch sensors, digital to analog and analog to digital converters, an additional low power CPU which can also be used for computing tasks and a hardware crypto accelerator.
It's fast enough to generate a TV signal in software, so yes it's definitely more powerful than an Amstrad.
Not that it makes much difference on the comparison, but the Amstrad PC1512 [1] was a Personal Computer based on an Intel 8086 chip, you're probably confusing it with Amstrad CPC [2] which was a family of home computers based on the Z80.
Edit: I discover now that there was also a Amstrad PCW family of PCs [3], though it don't see a PCW1512 model in there, so I'm not sure which one the parent was talking about.
"10 touch sensors, digital to analog and analog to digital converters"
To be fair, you aren't comparing like with like.
The amstrad has 100+(?) touch 'sensors' in its keyboard. It has digital to analogue converters for the monitor and printer also.
It may also have had an additional processor in the floppy drive.
Do those code wheel anti piracy things they used to have count as a hardware crypto accelerator? (sir Alan Sugar would say yes!)
So yeah the ESP32 is still definitely more powerful than the Amstrad.
The odroid go is an amazing device and the single best way to get kids hooked on embedded dev. It has a screen, buttons, a durable case and a battery that is chargeable via usb.
It is not unlike an arduino in a gameboy form factor. They make a wonderful gift for all ages.
Several lines of micro controllers include primitive "GPUs" to give hardware acceleration to the operations usually required for LCD interfaces. The capabilities aren't necessarily 3D rasterizers, but do make it a lot easier to draw interfaces, interface cameras, etc. Take a look at the graphics cores on some of the higher end STM32 parts. Certainly sprite drawing would be quite faster, not sure how much else could be accelerated with this type of core.
Display output is definitely a problem that modern hobby computer and gaming projects run into. And a FPGA is one solution. The Gameduino takes this approach.
There are downsides to the FPGA approach though. Even the cheapest FPGA can easily end up being more expensive (and more powerful) than the system CPU, putting you in a tail-wagging-the-dog scenario. And if you want your project to have a reasonable lifespan, continued FPGA availability can be a problem.
Many projects just drive video directly from the CPU, but that works better when you have something more powerful than the ESP8266 used here. It would be really nice if there was a simple display chip that this sort of project could take advantage of, but I don't know if FPGAs are the answer.
I was wondering about an ESP32 as a display device. Elsewhere in this thread there are links to video being driven via the ESP32.
I have this crazy idea of a 8-bit avr with an xmem interface connected to ESP32 GPIO. Assuming the higher clock rate of the ESP32 is enough for it to bitbang pretend to be an SRAM it could give the AVR of 64k of 'video ram'.
It's a bit weird delegating a more powerful processor to a subsystem, but at this level I don't think it is so much about the practicality as the aesthetic.
This has been true even for full-sized consoles until very recently.
Up to the PS3, consoles used to have dedicated hardware which required devs to understand it fully, in order to be able to extract all available performance.
This is one of the reason why late titles were, as a general rule, technically head and shoulders above compared to the launch ones, as the devs acquired experience in that particular hardware.
The Xbox kind of changed that with the "PC-in-a-box" architecture, which made the HW much more predictable but with less margin of improvement over time.
Esp8266 costs dollar and half, shipping from China included. The main reason for its popularity is the ultralow price, nobody is going to be bolting on expensive addons to it.
If you want better performance, just buy esp32 for 6 dollars shipped - it has dual cpu, increased speed and many other improvements.
There could still be space for certain hardware solutions. The eap8266 is pretty low power, but adding a bunch of cpu cores is likely to negate that a lot.
Specialized hardware solutions often use less power than another cpu core.
This is important because there are lots of uses involving leaving the esp running on a small battery for a long time
Geez with regulations like that I'm not surprised Britain wanted to leave the EU. ESP8266 is a fantastic, fun chip and it's a boon for hobbyists. Regulations like that are a quick way to kill innovation.
I think a lot of these projects don’t use that kind of thing, which makes me wonder if there’s a market/space in the community for a hardware graphics driver off the cheapest FGPA possible that could drive a TFT and enable flappy bird at a bit more than 20FPS