Looks like they used an existing emulator and this was mostly a hardware and memory integrity experiment. I’d love to see this approached from the perspective of “how clever can we get with the emulator itself to save power?”
When I wrote mine, something I ran into was realizing that often the CPU and PPU are just doing the same thing over and over and over. If only I could cache all that work.
For example, you don’t modify the previous frame. You have to draw the entire frame every time, writing sprites from OAM memory every time. Sometimes games do clever stuff here for effects, but a lot of the time you’re just drawing the same stuff. Like Tetris is almost completely a routine of drawing almost entirely the same graphics every time. Most of the cycles and OAM writes are just juggling sprites to draw the same layout every time.
I documented the heck out of the PPU because it gave me the second most grief (sound being the worst by far) if you are curious: https://github.com/ablakey/gameboy/blob/master/src/guest/sys... (goodness I’m proud of this project. Don’t tell my boss. He’ll want this level of documentation at work ;) )
That code was a joy to read, that is an example of comments done right. Such a pleasure to see comments that actually describe the intent of a function rather than stepping through the code, although doing it well is definitely much harder work.
Instead of software emulation, why not hardware emulation? The original Gameboy ran on two AA batteries for 12-20 hours (depending on whether the light was on); I'd argue that rebuilding the original hardware with modern-day technologies could reduce that energy consumption by 90% or more.
> The original Gameboy ran on two AA batteries for 12-20 hours (depending on whether the light was on)
I wonder if you googled for this? Googling for “original gameboy battery life” gives nearly this exact quote, but then reading the wikipedia article that it came from reveals that this is talking about the Gameboy Light (1998 - arguably “the original hardware with modern technology to reduce energy consumption”). I went and fact-checked because I remembered that the original original gameboy (1989) had 4 AA batteries and no light ;)
It's worth noting that back then AA batteries were less efficient. Which is why later when AA's got better Nintendo was able to release the Gameboy pocket and Gameboy color using only 2 batteries.
Ah, you just triggered fond nostalgia for me, of pillaging my dad's stash of batteries for my ever hungry Gameboy Pocket. It ran on two AAAs and my parents must have lost a few sanity points from my constant requests to stop at a gas station for batteries on long road trips (which were almost always denied, gas station batteries ain't cheap).
While true, my prized possession as a kid was my GameBoy Light that was imported from Japan. Other people had regular GameBoy pockets or even colors, but I'd rather have that awesome backlight. My kids still use it to this day to play Zelda.
Am I the only one that thinks this is a normal level of comments? Ok maybe slightly more than I would normally do... But if I was reading it my thought would be "thank god they wrote comments" not "they commented the heck out of this!"
From the perspective of someone who generally writes far fewer comments than this, I find that this code has a number of comments which is well-justified due to the complexity of the subject, poor availability of external documentation describing the interface it implements, and the nature of the code. However, the code can be written in a manner which is still readable with fewer comments.
Here's a sample from the file:
// For sprites, color 0 is transparency so don't draw anything.
if color == 0 {
continue;
}
This comment is probably not necessary: it would be equally clear if it were written as something like the following:
if color == SPRITE_COLOR_TRANSPARENT {
continue;
}
A few lines up is another comment:
// Is this specific pixel not on the screen? We already check that x_pos is not off
// the left side earlier, so only need to check that it's not off the right side.
if x_pos + p >= 160 {
continue;
}
If the code were written with a constant, then it would only need to clarify why we don't check the left side here (the only non-obvious thing about the code), so:
// Note: bounds testing on the left side is handled earlier
if x_pos + p >= SCREEN_WIDTH {
continue;
}
One last example:
// We want to iterate through 160 pixels to draw one scanline.
for col in 0..160u8 {
I like the changes but I think the original has merit too. Along with the comments it is documenting the parameters/bounds that apply to this device where they are actually being used, making the code a kind of documentation for others who want to implement similar things. Having these defined in constants elsewhere would require some back and forth if this "document" is used as a reference.
Well, I said upfront that the level of comments here is fine. Just offering a perspective on how it could still be good code with less. In general I think it's fine to expect a reading of the code to be paired with a reading of the documentation/specification; in the absence of such a resource for the GameBoy the comments here are well-justified. I would definitely add more constants, though, and I would anticipate that a second implementation which references this would start by re-defining all of the constants in its own code.
Most people will argue that this is nitpicking, however, I've learned something new today. Thank you.
Quite a difference in code readability to the point where the code becomes self-evident. Few people are able to reach a more verbose level of documentation, let alone make sure the code remains understandeable in the future.
It sticks out to me. The regular mode for me when reading code is guessing. Even more rare are comprehensive comments which are actually up to date. Documenting something which never changes (like a gameboy) lends itself more to such. (Even though the code can still change, the device it emulates at least never does.)
It depends on the application, I wouldn't want this in the average webapp I build but most of that is nonspecific and low value code that will be replaced every five years or so.
I operate at higher levels of abstraction, so forgive if this is a wild suggestion, but would a FPGA work here to enable creating a low-power “hardware” emulator?
When I was a kid I had a toy electronics kit and one of the circuits was an AM radio that worked without batteries. A normal radio station signal is strong enough to drive a pair of earbuds without any additional power. Since then I've always wondered if you could harvest that same radio energy to power other things without batteries, maybe even a Game Boy. There's electromagnetic radiation in the air all around us. And I'm sure you could build a Game Boy using today's tech that's much more power efficient than the ones from the 90s.
But it still works almost the same way. You hold it near a thing to get energy is mostly required because it works with very little power, let's say some milliwatts. Whereas old AM stations where sending in the range of megawatts.
That broadcast power is required to provide range. Radio waves obey the inverse-square law: for every doubling of the distance from source you get four times less power. This is also why wireless power transmission at a distance isn't really viable.
RFID can absolutely work at long range. Most applications don't by design because they don't want the data on the chip stolen. But there are applications that can read RFID from tens or hundreds of meters away.
I used to build crystal sets that would have two receivers in - one to harvest power from the strongest local station and then a second one that would take some of that power to bias up the detector diaode or to even use a germanium transistor to amplify the audio.
The first receiver would be able to drive a loudspeaker through a transformer loud enough you could hear it across a quiet room, so some power there, but only milliwatts.
I have wondered if these days with the zero volt FETS if there would be enough power for a regenerative receiver, some kind of negative resistance version seems most likely.
I heard a tale in the days of yore where a radio station was not getting the range promised by the laws of physics. When they did some investigating they found an engineer that lived next door to the tower was syphoning power from the radio waves as part of a home experiment.
I'm not qualified to determine the plausibility of this, but I hope it's true.
It’s a nice ‘Edison vs Tesla’ type story - but I’m pretty skeptical that there’s any truth to it. It just doesn’t seem viable enough to bother doing, for how much of a hardware setup you’d need versus how much electricity you’d be ‘harvesting’, to the extent that it meaningfully impacts the signal range itself.
Like unless this engineer built the Russian woodpecker array
If your object is roughly the size of a wavelength or less, it can siphon off power that would be a few wavelengths away.
So a bacterium might be able to annoy their neighbor. But that's about it.
If the sun was in some kind of equilibrium with stuff around it (ie. There was a big mirror acting kinda analogously to a ground plane) you could effectively cast a shadow much bigger than yourself.
I've heard of AM radio being audible in non-electric structures, like an old hangar door. Some combination of geometry, metal surface condition (corrosion?), and proximity to a station.
Lucille Ball very famously told a story on the Dick Cavett show about hearing radio transmissions in her tooth fillings in 1942 and it leading to the capture of a Japanese spy station. [0].
While the story seems a bit far fetched, having fillings act as diode rectification of an AM signal that is then conducted into sound via the jaw is completely real and has happened to many people, particularly moreso in the past when people more often had metal fillings and very powerful AM signals were more prominent.
Poorly shielded wires and speakers can pick up stations as well. My brother's cheap guitar amp would randomly pick up garbled bits of sound from radio stations (while not plugged into any power source)
SoundBlaster / Cambridge SoundWorks set of subwoofer and satellite speakers with long wires did this, too. Freaked me out when I suddenly heard voices inside my apartment at night. Turned out it had suddenly started to pick up a radio talk program.
I still have a solar calculator. They were pretty common in the 90s. Similar principle to the Gameboy, but also the workload was a lot slower (no frame refreshes).
There's an urban legend in the UK about a radio station having a dead spot in their signal. They send the boffins out to figure out what's going on, and they eventually track down someone who has filled his attic with coils of baling wire and is running his house lights off the radio station.
(Yes, I know all the practical objections. It's an urban legend. I've seen variations involving BBC radio, TV broadcasts, submarine communications, overhead power lines, the VLF transmitter at Rugby, and a farmer using the energy to milk his cows).
The cool thing about The Thing is that it's not really an energy harvesting device, and has no active components. It is a purely passive modulator of a signal being transferred over the air!
Funny, but I thought about the same thing. I guess AM radio waves don't have a big amount of energy by the time they hit the receiver.
I think Nicola Tesla experimented with sending energy wireless, at longer distances, over the air. I don't remember what his results were, but man, that guy was so ahead of its time.
This is definitely achievable! When I was a young, we'd take long road trips and my Gameboy (original) would run out of battery. I'd use a small solar panel (in place of one of the batteries) from a science kit to keep going, propped up against the back window. The wires and panel were held in place with chewing gum (yes, kids can be gross).
I did have the "frequent power failures". Props to the team on fixing this :)
“When I was a young” sounds amusingly like you are an alien who learned about humans from alien nature documentaries about Earth, and you accidentally slipped up in this post. “The lion feeds its young”.
Cars usually lacked wall plugs. You could get ones that plugged into the cigarette lighter, but my parents at least were unwilling to string a cable through the gear selector to the back seat.
It looks like we're talking about parents who did not realize on their own that keeping the Game Boy powered up helps keep the kid in the back of the car quiet, so I don't know if they would have been open to negotiation.
Aha, so a clever ploy to get you to practice reading and learn about taking care of your own needs? My apologies to your parents, I clearly underestimated them! :)
No, they just didn't want the wire snaking through the center console. Maybe not wanting to lose the lighter was a secondary goal, but I doubt there was any lesson behind their decision.
Well, I think most parents put a lot more conscious thought into these things than their children give them credit for, simply because as a child you're not aware of all the things they have to consider. I've noticed I've started re-evaluating childhood memories of my parents since my partner and I had a child. So I'll give your parents the benefit of doubt and suggest that there is a possibility you are the one underestimating them now ;)
Yeah, I'm not. I already read a ton, and I'm the one who asked for the rechargeable batteries for the gameboy. Plus, they had tried the adapter in a different situation and definitely had issues with the cord.
Some decisions had deep thoughts behind them, some were made because they spilled their drink while driving.
I recall some vehicles, such as minivans, station wagons, and various "land yacht" 4-doors, having cigarette lighters in the back seats. That's what I used.
Seems region-specific. The sun is more reliable in some places. Harvesting from button pushes is almost completely reliable (may have some accessibility concerns, though, I guess?)
That wasn't the point of the prototype, but to develop a mobile device, which wouldn't need the grid. Like Back to the Future "Where we're going, we won't need roads" :)
I suspect actually reimplementing the original GameBoy SoC in a modern low-power process could provide a significant improvement over the inefficiency of an emulator.
I was under the impression that doing things directly in custom silicon was always more efficient than emulation (all other things held fixed) both from a performance and power consumption perspective. The problem of course is that it costs orders of magnitude more money to implement, to say nothing of the difficulty in designing/testing the thing.
It's basically the same progression we saw in bitcoin mining: Custom software on a general purpose CPUs, then on GPUs, then programmed on FPGAs, then actual ASICs that are straight up custom silicon to do nothing but check those hashes.
I'm pretty sure @userbinator is talking about taking the exact same circuit but making it on something like TSMC's 4nm process, rather than an emulator running on a general purpose processor (i.e. CPU)
Yes, that’s the one I used afaik.
The gold is one of the materials you can choose to plate your copper on the board at manufacturing. “Enig”. Increases conductivity but also looks sexy :D
I think every board was $8 on MOQ.
> Energy Generated: 0.33 mWs actuating and releasing
I assume it means that it generates 0.33 mWs (or mJ, come on) in a full cycle of actuating and releasing. So you have to make 3 button presses per second to generate 1 mW of power.
Neither lists a price, and it seems the former has a minimum quantity of "5,000" which I take to mean 5'000 but might be localised to mean 5, you never know
I have to wonder just how much power they get out of those button presses. It seems like it must be such a tiny amount that it's hardly worth the effort.
Even if it turns out to be useless, this was a research project. Testing if this is feasible in practice is part of the point. Although it is a bit odd that they don't show any stats on the main page.
I looked it up in the paper[0], section 5.2 discusses power consumption/generation and pasted it below (I hope all symbols survived the clipboard).
TL;DR: the buttons generate a very small difference in power generation relative to solar panels. HOWEVER, this still seems to be a significant difference in how quickly the battery drains. If solar panels generate 10.5 mW, and the buttons 0.5 mW, but the system requires 11.5 mW, then this doubles the up-time of the system. That would actually be quit a nice insight to share on the main project page IMO!
> We have measured ENGAGE’s power consumption, looking into overall power consumption whilst first measuring the consumption of MCU together with the FRAM and display. The MCU and FRAM combined consume 11.15 mW and the screen consumes 344.31 μW during game execution taking a ten second average. During idle time the screen only consumes 3.90 μW, resulting in a combined system average power consumption of 11.50 mW. As a comparison, the original Nintendo Game Boy consumes 232.08 mW during game execution, varying slightly per game and cartridge architecture. While not necessarily a useful or meaningful number, we conclude that our platform is more than 20 times more power-efficient than the original Nintendo Game Boy (representing normal technology advancement, but noting that ENGAGE is an emulator). The measurements were conducted using a Fluke 87V [33] multimeter and the X-NUCLEO-LPM01A [123] programmable power supply source with power consumption measurement capability
> Then, to give more insight in the energy harvesting on the ENGAGE platform we have measured the amount of energy the solar panels generate using a Fluke 87V [ 33 ] multimeter and compare this to the energy generated from the buttons. For the buttons we use the minimal energy generation figures from the specification of the harvester [ 153 , summary] as a worst case scenario3. Assuming that a single button press generates a minimum of 0.66 mJ and knowing the amount of button presses per game is specific to the game as per Table 1 , we can assume the buttons generate between 0.66 mJ for one press per second and 1.98 mJ for three presses per second. At 40 klx and 20 klx, the solar panels generated an average of 10.14 mW and 8.33 mW, respectively, i.e. less than the required system average power consumption of 11.50 mW. We can conclude that ENGAGE is mostly powered by solar panels and supplemented by the button presses although the button presses can significantly increase the on-time of the platform, as shown in Section 5.1
But the idea of a research project is to find out what is worth doing and what isn't. Do shitty, hard to press buttons actually help? Or would putting just a tiny bit larger solar cells help a lot more. If you're in complete darkness, can you actually press enough buttons to make it playable there too?
There have been many, many really shitty solar projects in the last year, some wasting millions of dollars and euros, and while reasearch is important, it's also important to know what's worth it and what's not.
So the questions in your first paragraph are mostly answered by the paper.
And your second paragraph feels a bit like an unfair comparison to me. This is a first attempt at seeing if this concept is even remotely feasible, and it uses off-the-shelf parts for that. It's not a company with a lot of money and resources invested in it that produces mediocre final products where the embodied energy of the solar panels is so much more than any energy it saves over its life-time that it's less green than something that runs on batteries. Which, yes, are an annoying feature of modern greenwashing. But this research project is not that.
But you'd expect a research project to say "we tried harvesting button presses, rf, inertial energy, and all of it sucked except for solar, so we decided to up the solar as much as we can with a gameboy sized case". If they have budget issues, then buy one of those energy harvesting buttons, press it as fast as you can and measure the output... if it generates any meaningful amount of power, nice, buy one for every button and use it in the final "product"... if not, try something else. Solar cells are cheap, 3d printing is cheap, so adding a few more would help a lot.
> But you'd expect a research project to say "we tried harvesting button presses, rf, inertial energy, and all of it sucked except for solar, so we decided to up the solar as much as we can with a gameboy sized case".
Why do you assume this? It's academic research, not the R&D department at a company. They're not building a product to sell and they're probably working with a shoestring budget. The goal is to extract as much knowledge and insight as possible from as little hardware as possible.
But the research is the same and the results are the same... buttons don't produce enough power to make it worthwile compared to larger solar cells.
The difference would be, if the buttons produced a comparable amount of power, where academics could then write "while expensive, with mass production, the cost of buttons will fall to a level to make it economically viable" and product designers would tell their bosses BOM prices for both options, and then a decision would be made.
The more interesting take would be: can we build a handheld with a haptic input that generates more energy than mashing these buttons. I am reminded of an odd controller for one of the consoles in what I think was generation 1 or 2, which consisted of two parts that you could rotate opposite each other. Another is the 'powerball' concept of physically rotating something to a certain speed. I'm sure large companies can build a handheld that would generate enough energy because of a clever combination of gameplay and energy efficient harvesting inputs.
> I am reminded of an odd controller for one of the consoles in what I think was generation 1 or 2, which consisted of two parts that you could rotate opposite each other.
I knew what you were talking about but couldn't think of the name either. Google was failing me, but thankfully ChatGPT got it first guess - Magnavox Odyssey
Make the haptic feedback pleasant enough and implement it as a fidget toy somewhere on the back where the unoccupied fingers can spam it.
My previous mouse died because I loved the haptic feeling of the scrollwheel so much I wore it out. Might generate enough energy for a small gameboy-like device.
It did, but it was removed after it was not very useful. The device used an AMD Geode processor at 1 watt, so a handcrank needed to produce a lot of power. A handcrank wouldn't be needed for a 2 milliwatt processor. At 15:52 it mentions why it was removed because it wasn't rugged enough for the demo: https://youtu.be/G2cAeIls3Vg?t=942
It's a neat proof-of-concept, but the video gets a little optimistic and hand-wavey about how practical this could actually ever be.
"Right now we have interruptions, but[...] that interruption amount is going to continually decrease as we make these systems better and more energy-efficient."
Is that really the case? The limiting factor here is not just the efficiency of harvesting energy. The energy being harvested from the sun and from the button presses has a hard cap at some point, and while I don't know enough about the topic to do the math, I'd have to assume it's not particularly high. Even if you were able to harvest 100% of the sunlight hitting a smartphone (quick Google search says solar panels harvest ~15%), and 100% of the energy from the taps of a user's finger, would that be anywhere close to enough power to run the thing? This seems like more of a conceptual limit than a technological one.
The efficient processor they've chosen requires on the order of 20 microamps per megahertz at 1.8V to run code out of Flash, or 1.7 milliwatts of power. It draws only about 0.004 milliwatts in deep sleep, and takes less than a microsecond to enter and exit deep sleep.
Their energy-harvesting switches produce 0.33 milliwatt-seconds when pressed or released.
So you want to be efficient and enter deep sleep whenever possible. If you can have a duty cycle that looks like "Take sensor reading and run computation when button is pressed or when timer elapses, transmit over BLE, update e-ink display, or whatever our device does, then go back to sleep after 2 ms" that's easy - at even absurdly fast update rates of ~20 Hz, you're only using a 4% duty cycle and drawing an average of just 0.07 mW, requiring one button press every 10 seconds or so.
If you've got 3 button clicks per second, you can stay active all the time. But neither a 3 Hz button-press rate, nor a non-sleep-using firmware are reasonable. Of course, when you're bringing in a full ~10 mW of power continuously from the solar panels, the buttons are kind of a nice-to-have, you'd have to mash them at crazy rates to even equal the panels.
They're not even close to the potential efficiency of the processor - they're running an emulator for goodness' sake, which was almost certainly not designed with power saving in mind. If they started from the ground up reverse-engineering the Gameboy functions with the goal of maximizing power efficiency, yes, it's perfectly reasonable to assume that they could run continuously.
The processor used was an Ambiq Apollo3. The 22nm Apollo4 is out and uses around 5uA/Mhz. Ambiq is also working on a 12nm Apollo5 with an interest in developing a linux SoC: https://ambiq.com/wp-content/uploads/2023/02/A-Vision-for-Am... p.10 "Explorations of Linux/Android-grade processors in an "Apollo-like" power footprint"
Yes continuously. This capacitor has 11mAh capacity, which could run a flip phone with an Ambiq processor and a monochrome screen for 2-3 hours continuously. The 250F size has the equivalent of 90MAh. They used a capacitor that has much lower capacity, and Lithium-Ion Capacitors were not very common in 2020: https://www.farnell.com/datasheets/3816249.pdf
Without concentrating the sunlight, the max efficiency of a solar panel is about 68% conversion. With 1kW/m², and a solar panel the size of a 0.01m² phone (6.1 inch, 16:9) that's 6.8W to play with, at the theoretical maximum.
A quick check states a Raspberry Pi 4B at 100% CPU draws 6.4W, so in perfect conditions with a perfect panel, it's just about approaching feasible to run a chip on a phone sized panel.
However a Gameboy is much simpler than a Pi. It seems the Gameboy draws about 70-80mA@1.5V, or 0.1W, which is very impressive. I would say that would 100% be physically feasible to power with a gameboy sized solar panel in our lifetime.
That's interesting, with so much juice available, it seems like it would be worthwhile to pursue this project with the original hardware rather than adding in the snapshotting and emulation, which definitely makes a more robust system, but adds lots of extra power consumption.
With magic solar panels and full sun an iphone shaped solar cell could charge my iphone fully in under an hour and a half. Good commercial solar cells can get a little more than 20% efficiency so really with good sun and a bit of restricted usage an iphone with a solar cell for a back that got a lot of sunshine could power itself enough to be practically useful.
With the ability to scale down the power usage with processors that do a whole lot less it’s certainly practical to get much more out of usable processors.
You can do a lot with, say, 10 watt hours per day and that much is certainly achievable on a hand held device.
I was a little let down that the solution to not having batteries was just a few solar cells. If you're looking for something along the same theme, it's not a "Game Boy" but a Youtuber built a handheld powered by radioactive tritium. https://hackaday.com/2021/07/14/tetris-handheld-powered-by-t...
> Can ENGAGE play all Gameboy games?
> Yes! It is running a custom emulator which allows it to impersonate the Game Boy and play any Game Boy game (not the Color versions though). That said, just like with any emulator, not every title may work
It completely works. The choice of implementing an intermittent design for 2020, was reasonable. For 2022, it's questionable: https://protean.systems/ There are lithium ion capacitors that can run a game continouously for hours since they are battery-like https://www.tindie.com/products/jaspersikken/solar-harvestin... and don't require complicated power management systems. If this were for simple SMS and phone texting, it could run for enough time to not need to shut off every 10 seconds. But the very short capacitor design requires using very exotic FRAM. I think if enough optimizations are made, one run a tiny linux with a conventional filesystem: https://tiny.slitaz.org/
I don't really understand why they wouldn't just use a supercapacitor instead of going to great lengths to work with a "small" capacitor? For the size/weight of the old batteries you could probably put 30-40 farad worth in, which I would think would be plenty.
The energy harvesting buttons have to be incredibly annoying ergonomically - for gaming, you do NOT want buttons that are really hard to press.
Getting the electronics to work on such a tight energy budget is a big challenge, very impressive!
I've worked on a similar concept using a bistable display and a supercap for energy storage to recharge very quickly when sun is available. This is for more zen-like use cases, like chess puzzles: https://lightnote.cardonabits.com/products/lightnote-chess-e...
This is an incredibly important project under the new reality that Russia can cause war and havoc at any time and in any state. If they can do it in a Europe that has basically been at peace for 70 years, and facing massive worldwide opposition and direct opposition from the United States in the form of aid, weapons, and people, then they can do it anywhere, even in the continental United States. No place is safe under such conditions. In Ukraine as a war crime, Russia targeted energy infrastructure including power plants, bringing energy grids offline.
This is something that could deprive people of basic communications and information access.
The mitigation of this seems difficult. Solar panels on the outside of houses can be destroyed by bombing easily, and gasoline powered generators on the inside are loud, expensive, and require ventilation for safety.
How can a people stay connected and continue to communicate under active Russian attacks on their energy grid?
With these thoughts in mind, when I saw this project I smiled, because it approaches the issue from an alternative angle. Who needs a loud and potentially noxious gasoline generator if it is possible to reduce the display draw to an amount that can be successfully powered from incident light?
Such a solution can solve pressing issues in our time and going forward. Quiet, compact, and mobile.
In 2011, Intel demonstrated a solar powered Pentium chip- they remade the 1994 Pentium it on 32nm. But it was a demo only. The reason it's been so "demo" for over 10 years is because no one thinks solar is possible to run anything portable, but no one questions why so much investment is focused on the latest graphics cards and AI chips like the A100. If there was more consumer demand, you'd see it released yesterday. The solar calculator in 1978 was far more advanced for its time, but now you have most people laughing at such an idea for a few hundred thousand more transistors. Sad.
> Can ENGAGE play all Gameboy games?... Yes! It is running a custom emulator which allows it to impersonate the Game Boy and play any Game Boy game (not the Color versions though). That said, just like with any emulator, not every title may work, and some bugs may prevent some games from loading some parts.
If they were selling you an emulator, I'd agree. But they're not advertising the capabilities of the emulator so much as telling you what to expect if you take this project on. In theory, all games should work, but emulators can be imperfect, so know what to expect.
I appreciate the hackery aspect of this but I have very high levels of doubt that this path will amount to anything significant. Aside from that, it’s slightly annoying that they repeated a false premise (or at best half-truth) twice at the beginning and left a significant piece of how it works (it’ll turn on and off) till the middle. I think everyone knows that you can harvest solar power but the problem with it is its unpredictability.
It doesn’t have to be the same experience as playing a game boy, but maybe start off with that: it’s not the same way as playing any console really, having to wait for a few seconds every ten is not only annoying, it won’t work for a significant amount of “computing”.
It'll be boring dystopia shit that will spy on you and phone home with dull data like when and where you opened a packet of chips for marketers to sell to marketers so they can sell ads that get shown to robots. But this time without needing to contrive a reason for you to keep it charged.
Beautiful, is a dream to have a device that you can forget about charge it and "range anxiety", I hope it will be implemented at least in smartwatch in the next years.
I know there are mechanical energy harvesting watches; I imagine making a similar smartwatch would be much harder with the higher energy requirement. And the issue with solar panels is the tendency for people to wear long sleeves, stay indoors, sleep, etc.
I recall there was a battery free cellphone project on the premise of harvesting power from electro magnetic cell tower waves. They couldn't pull it off but maybe that could help this?
Well, not really. I have one too, and I can't imagine the crank being very usable if there was any resistance at all, beyond the tiny bit of friction present to stop it swinging on its own.
They didn't just take a console and slap a solar panel on top and wired that into the battery compartment.
They took a new CPU, buttons, etc. and run an inefficient emulator (goes to show how big the energy budget is) with auto save state before turning off from lack of light/button energy.
Arguably, the former is way more useful in the short run, as you could actually use it for more than ten seconds at a time and retrofit any device easily. But as a research project, the latter is way more useful because it might pave the path to this being viable in the future and having an entirely new class of devices.
it pretty much is, they removed battery and replaced it with direct power supply from solar panels, they mention some additional energy from buttons but I really doubt that would have any meaningful gains, after all how can you generate energy and store it between keypresses unless you will be constantly pressing button in which case you need third hand
> This site uses cookies from Google to deliver its services and to analyze traffic. Information about your use of this site is shared with Google. By using this site, you agree to its use of cookies
When I wrote mine, something I ran into was realizing that often the CPU and PPU are just doing the same thing over and over and over. If only I could cache all that work.
For example, you don’t modify the previous frame. You have to draw the entire frame every time, writing sprites from OAM memory every time. Sometimes games do clever stuff here for effects, but a lot of the time you’re just drawing the same stuff. Like Tetris is almost completely a routine of drawing almost entirely the same graphics every time. Most of the cycles and OAM writes are just juggling sprites to draw the same layout every time.
I documented the heck out of the PPU because it gave me the second most grief (sound being the worst by far) if you are curious: https://github.com/ablakey/gameboy/blob/master/src/guest/sys... (goodness I’m proud of this project. Don’t tell my boss. He’ll want this level of documentation at work ;) )