OtherCrashOverride / go-play

Retro emulation for the ODROID-GO
https://www.hardkernel.com/shop/odroid-go/
218 stars 72 forks source link

[Proposal] Artificial Red "power" light during GB/GBC emulation #8

Closed Ongnissim closed 6 years ago

Ongnissim commented 6 years ago

Hey all, would it be possible to add a cluster of red pixels to the left hand side of the emulated Gameboy screen to simulate the Power LED on actual gameboy hardware?

The Pocket Sprite does something similar in it's implementation of Gnuboy, and I think it's a neat touch that adds asimple nostalgic flair.

Thanks!

OtherCrashOverride commented 6 years ago

My concern with this feature would be LCD "burn in".

Ongnissim commented 6 years ago

I didn't think about that. I'm using the ODroid specifically for Gameboy emulation, so personally, burn in in that spot wouldn't bother me. I don't mind forking and adding a patch for my tastes specifically, but I wouldn't know where to begin. Editing Gnuboy specifically?

I don't mean to waste your time with this, but I think it'd be fun to implement, even if only for specific use cases. I can tinker in my own time, but in which part of Gnuboy should this be implemented? I've never developed for the ESP32, but am (very basically) familiar with Java, C++, and Python.

OtherCrashOverride commented 6 years ago

The easiest place to do it would be before the following line: https://github.com/OtherCrashOverride/go-play/blob/eb05c0a1faf67728bb65166953d80ffc470b6d80/odroid-go-common/components/odroid/odroid_display.c#L555

You would create a bitmap (RGB565) that has the shape and color of the power indicator and draw it with: https://github.com/OtherCrashOverride/go-play/blob/eb05c0a1faf67728bb65166953d80ffc470b6d80/odroid-go-common/components/odroid/odroid_display.h#L20

The "LE" means "little endian", if your bitmap is "big endian" use: https://github.com/OtherCrashOverride/go-play/blob/eb05c0a1faf67728bb65166953d80ffc470b6d80/odroid-go-common/components/odroid/odroid_display.h#L18