Skip to content

New Target: GB300-P4, an ESP32-P4 handheld#272

Open
DynaMight1124 wants to merge 8 commits intoducalex:devfrom
DynaMight1124:GB300-P4
Open

New Target: GB300-P4, an ESP32-P4 handheld#272
DynaMight1124 wants to merge 8 commits intoducalex:devfrom
DynaMight1124:GB300-P4

Conversation

@DynaMight1124
Copy link
Contributor

Hi

I have been working on a ESP32-P4 handheld, it uses an existing shell/buttons etc and essentially a drop in replacement. The P4 now powers through MD and SNES, but does still struggle on some GBA.

Theres some pics in the target and the guide on Instructables should hopefully be live soon.

Hopefully you're happy to accept this device, no worries if not, I'm happy to maintain it this end.

Thanks

@ducalex
Copy link
Owner

ducalex commented Jan 15, 2026

Hey, I saw your project featured on hackaday! Very cool device indeed! I'll properly review the PR this weekend but at first glance it all looks good, as usual.

Btw do you think you could share your theme files? I've been looking for a reason to add support for multiple built-in themes and yours is quite nice! As a zip or perhaps you can create another PR to add it to themes folder.

@DynaMight1124
Copy link
Contributor Author

Hi

Oh so it is, looks very AI written tho but still cool. I've only really posted it on Instructables and they didnt deem it Feature worthy which usually means its not very easy to come across but I assume they saw it on there.

Let me know if any adjustments are required to the target, technically it wont currently build on dev unless the battery ADC is disabled in config but I've left it enabled for when the battery ADC issue with IDF 5.x gets resolved.

If it'll help with RetroGo development, I'm happy to send you one.

As for the theme, totally happy to share. Its been on my fork for a while (in releases under VMU) currently its got a placeholder for GBA, but the system ordering doesnt properly follow if GBA is enabled, I see in in dev that GBA has been enabled by default currently so if this is likely to stay as is, I can update the theme to properly follow the order and do a PR. I'll attach the current one with the GBA placeholder

Art Book Next.zip

Thanks

@ducalex
Copy link
Owner

ducalex commented Jan 19, 2026

Thanks for the theme, can you also let me know where you got the images in the first place? I'd like to add the full credit chain: you and the og artist. Unless you did them yourself!

Let me know if any adjustments are required to the target, technically it wont currently build on dev unless the battery ADC is disabled in config but I've left it enabled for when the battery ADC issue with IDF 5.x gets resolved.

I now officially build with 5.1 and the ADC works for other targets, what is the specific issue here? Does it break in later esp-idf? I think 5.5 is the minimum for the P4, right? I could install it and try later on.

If I can't fix the issue then it might be best to disable the battery by default and leave a note. Because people who build your project might be annoyed that it doesn't build...

@DynaMight1124
Copy link
Contributor Author

Hi

I wish I could do artwork like that myself :) The theme is based on Art Book Next by anthonycaccese: https://github.com/anthonycaccese/art-book-next-es-de

As for battery issue, I raised an issue #260 I think the older ESP32 devices can still use legacy ADC drivers even with 5.x but with the P4 they stopped support for legacy and only support new ADC drivers. The code in my issue is 100% AI generated code, but did work pretty much first time, however I saw another fork which also uses a P4 with some code to allow the battery to work, not sure if theirs was human or AI but its another source: https://github.com/wheniseeyouagain/retro-go-hack/blob/dev/components/retro-go/rg_input.c

As for the P4, there is P4 support earlier than 5.5. Initially I did go back as far as 5.1 I think but didnt resolve the battery issue until I realised it was a ADC legacy driver issue

@ducalex
Copy link
Owner

ducalex commented Jan 19, 2026

Thanks I completely forgot about #260! You can try it, uncomment #define USE_ADC_DRIVER_NG. But if it's like me it will refuse to boot due to a conflict with i2s' usage of ADC, and I would prefer you disable battery so that the PR can build (or if you're not in a hurry you can wait that I fix the ADC issue in retro-go).

But if it does build and boot for you then I guess we could simply do something like this:

#if CONFIG_IDF_TARGET_ESP32P4
#define USE_ADC_DRIVER_NG
#endif

For the theme, do you mind generating the backgrounds for auto-allgames, auto-favorites, auto-lastplayed which are respectively background_collections.png background_favorites.png background_recent.png for us.

Actually I see that you made recent and favorite differently, we can keep them if you like them. But please do the allgame->collections. Thanks!

@ducalex ducalex force-pushed the dev branch 5 times, most recently from 7a55bb6 to fa7ea78 Compare January 19, 2026 19:01
@DynaMight1124
Copy link
Contributor Author

Hi

As for PR, I'm not in any major rush, happy to submit without the battery driver enabled or wait, if you want it merged so its off the list then its fine, I can always do an small PR to enable at a later date. The dev build I've been using has been pretty solid.

As for the theme, yes I can add a auto-allgames, I assume thats background_collections.png ? I didnt realise there was an allgames section, is this what it sounds like a list of all games from all systems in one list? it currently goes Favourites, Recently Played, then the systems, where would All Games sit?

Sorry for the 100 questions, I'm only asking because the 'beauty' of Art Book Next is when moving through the systems it shows the last, current and next system, on Emulation Station its all dynamic but for us, its just a hardcoded png so if the order isnt right it wont follow properly, its not the end of the world as long as most are correct, the current GBA one is kinda a placeholder as well. If allgames isnt regularly used then a placeholder in roughly the right spot is probably best anyway.

@anthonycaccese
Copy link

hi @DynaMight1124 😊 (hope its ok that i jumped into the thread but if not then no worries).

A friend gave me a heads up that you were playing with Art Book Next as part of this and I am just writing to say... thank you and I'd be glad to help with any artwork and theme work (if I can learn the engine). Please let me know what works best for you and I'd be glad to help.

For now I'll download the zip you posted earlier in the thread to take a look through things to see if I can understand the current structure.

Cheers ❤️

@DynaMight1124
Copy link
Contributor Author

Hi Ant

I hope it was ok to use your theme, I use it on pretty much every ES device I have and just couldnt help myself trying to convert it to RetroGo. @ducalex has done an amazing job with RetroGo theming engine on such low powered devices.

I'm no expert and dont know whether improvements could be made. The theme engine dynamic like ES with regards to the prev & next systems so its hardcoded with png backgrounds but does give a nice Art Book Next style feel thanks to your clean artwork. To be honest, the whole thing was basically done with me dragging each system in manually trying to keep the gaps the same and saving each file :)

Thanks

@anthonycaccese
Copy link

Yes its totally ok to use the assets from the theme in any way you like, so all good and no worries. I am just glad they were helpful. I'll try to work on a version of it understanding the more structured nature of things and if I come up with something that could work will post back here.

Outside of that though, yes please feel free to use the assets and I dig what you have come up with so far. Just hoping if I can help out further from there 😊

And cheers @ducalex! retro-go looks awesome, so I am hype to try playing with it.

@DynaMight1124
Copy link
Contributor Author

Thats good, thanks for being so kind and understanding. It would be awesome to have an official Art Book Next :) or any other themes you choose to do, I know everyone would appreciate it.

Theres plenty of info on theming here: https://github.com/ducalex/retro-go/blob/master/THEMING.md

It is mentioned at the bottom, using PNGQuant does help reduce the filesize and speeds up the interface quite a bit. If you're a Windows user, I use PNGoo v0.1.1

@ducalex
Copy link
Owner

ducalex commented Jan 21, 2026

I've created an issue to discuss the new theme: #279

I'm only asking because the 'beauty' of Art Book Next is when moving through the systems it shows the last, current and next system, on Emulation Station its all dynamic but for us, its just a hardcoded png so if the order isnt right it wont follow properly

I hadn't realized it was thought out like that! It's a shame that we can't accommodate that right now. Maybe in the future. As you know I'm already late to deal with many existing issues and PR and the updater is still not merged and so on, so it would be foolish to start messing with big theming changes right now. But there's no technical reasons why we couldn't accommodate split backgrounds and even mild animations one day!

To get back to my original point: basically I need a background for all current tabs, plus a generic one for tabs that might be added later (named collections for reasons I don't remember). The generic one doesn't need to "flow", it just needs to be better than a black background!

Added ST7789 frame rate control and some other ST7789 specific commands to reduce tearing as much as possible! Maybe could be finetuned some more but better than it was! Higher frame rate is the key.
Updated to latest layout and also ST7789 init tweaks, tested working  and has good improvements in screen tearing with no other side effects.
Also amended ST7789 inits to VMU-S3, working great with no side effects.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants