How do I render and move .png sprites?

Greetings. I have a Master’s Degree in Software Engineering and am experienced with C++. I also used both LÖVE and PICO-8 in making games, but I want to try to write a Libretro core itself.

I took a look at the Libretro API and got a lot of trouble with figuring out how to actually display graphics. Because I plan on making SNES-style games, my idea was to use .png files of sprites. So far, I figured out that I would use the RGB565 format and software rendering instead of targeting a specific graphics API, but I got stuck here. Apparently, I have to write to either a framebuffer or a backbuffer, but I have no idea how. I actually am still quite new at drawing graphics; I did not even know about the RGB565 format until I saw the libretro.h file! I know that Libretro uses its own png decoder (rpng), but I do not know how to use that, either.

What I want to do specifically is to be able to draw and move the png-based sprites on-screen, preferably while using a physics engine such as Box2D or Chipmunk.

I appreciate everyone’s response here. I am enthusiastic on making a game using this Libretro API.

Hey, welcome :slight_smile: I believe a lot of that would be dictated by the engine that you write. If you would rather not write your own engine from scratch, you might check out our Lutro core, which is very similar to LÖVE but with libretro: