Arduboy (Ardens) new core

Hi all. I just tested the new core Ardens for Arduboy. Such a little cute system.

Ton of games can be downloaded here: Erwin’s Arduboy Collection or directly download everything with (each come with their own mostly Open Source license):

git clone

It’s probably still a bit early, but games can be played. No core settings available. Most games from the above collection (they all have different Open Source licenses) are imported with “Import Content > Scan Directory”. Those that are not, can be added afterwards with a “Import Content > Manual Scan”, but don’t forget to set “File Extensions” to “hex”, otherwise it would import every other file too.

( Edit: Some clarifications. In my initial setup I accidentally installed Arduous core, which is not the same as Ardens and experienced audio issues. Audio issues can still happen, but Ardens core should work better I think. )


Hi, I am the author of Ardens and a newcomer to the libretro community, and wanted to provide some context about this core and how it differs from the already existing and mature core, Arduous.

Ardens was originally written as a custom debugger/profiler GUI to aid in developing grayscale Arduboy games. Grayscale on the Arduboy uses some tricks with the display controller and requires high performance (>150 fps) to match the display’s refresh rate. Grayscale games also require much more sprite data and typically take advantage of the Arduboy FX’s flash chip, which the original Arduboy lacks. These things motivated the development of Ardens as there were no existing emulation solutions at the time.

Main Ardens differences are:

  • Arduboy FX emulation and .arduboy file support in addition to .hex (required for many recent games such as Wolfenduino 3D)
  • Accurate display addressing and row driver emulation, with display temporal filtering to produce appropriate grayscale output (required for games like Dark & Under II, also nice for other pseudo-grayscale games like Ard-Drivin)
  • Timer 4 and hardware PWM sound emulation (fairly necessary for games like BiriBiriBeat, and nice to have for others like Arduventure)

However, if a game doesn’t need any of the above and works fine on the existing Arduous core, I’d not necessarily recommend changing to Ardens. My implementation of the libretro API for the Ardens emulation core is relatively new and unproven. Also, while emulation issues are infrequent now, Ardens is not built on a mature lib like simavr but its own custom AVR core instead.


Hi and welcome to the community, brow1067. Thank you for the provided clarification and for writing the emulator in the first place. Always interesting to read these “background” information.

I was not aware that Arduboy FX was different from Arduboy, never really got into this system before. And there is also a connection between the file extensions and .arduboy is not the same as .hex after all. That’s good to know. For context, I never used any Arduboy emulator and don’t intend on using a standalone one. And Ardens seems to be the only one for RetroArch so far and therefore my default pick for it. I’m fine with it and love trying out these small mini games from the community. Soon will dive into it again to test some of these FX based games, to see how this is going.

Do you have any suggestion for shaders to mimic the original screen display a bit closer? Currently I use “shaders_slang/handheld/retro-v2.slangp” and don’t know if this matches the characteristics of the original screen.

And an update to my initial post: I have audio with some games now. So the audio problem could have been a local issue on my system or an update of the core might have solved it.

Ardens and Arduous are both different cores for the Arduboy system – if a game is driving the sound pins with hardware PWM, the sound probably won’t work with the Arduous core.

I checked what I have set in RetroArch and retro-v2 is exactly what I’m using too. It had the closest look of the included shaders.

1 Like

Ardens and Arduous are both different cores for the Arduboy system

Oh! I was not aware of this and see that I have Arduous installed instead. That explains the sound issue then; classic user error. I’ll try Ardens next (little late, given the title of this post is about Ardens, lol).

Tried the Ardens core… works like a charm.

I get sound in both cores BTW. :grin:

1 Like

Ard Drivin’s sound should work with both cores as it drives the piezo pins in software instead of with hardware PWM.

I really like that overlay/shader setup – can you share where to find it?

It is part of my Mega Bezel shader pack and can be found on my thread.

Here is a link to the part of the thread where I started work on the Arduboy graphic, if you are interested.

Information on downloading the pack, installing the pack, or acquiring an overlay version are in the first and second post.

The shot in the post is actually from a set of presets I’m working on for the koko-aio shader. Handhelds and virtual consoles are still a WIP. (To be done very soon.)

That thread can be found here.