How to put a new core in libretro-super repo?

Hi! I have developed a new libretro core and I would like to integrate it in the libretro-super repository. However, I was not able to find any precise documentation on how to do it right. Could someone provide me some guidance on that? Regards, Thomas

1 Like

The scripts can be pretty complicated. Usually, the easiest way to do it is just search the repo for a core that builds similarly (that is, do you have a top-level makefile? or a makefile.libretro? or is there a libretro directory that houses the makefile so it doesn’t interfere with building for other platforms? etc.) and then add lines into the various build scripts:

Here’s an example commit of someone adding a new core to the build scripts (mame2003-plus):

You’ll also need to make a core info file for it, and here’s a basic example of that:

If you get stuck, we’re happy to help.

1 Like

Thank you very much for your help. Currently I use autoconf/automake for the build. I saw that most if not all libretro cores use a similar and very complex makefile that supports lots of platforms: is there a template makefile that should be used for all the cores?

Yeah, most of the core-specific stuff sits in Makefile.common and then the platform-y stuff goes into Makefile.libretro.

We typically use static makefiles whenever possible, but the Citra libretro core uses their native cmake build system, so you may be able to glean something from that core, if you want to stick with the autogenerated makefiles.

1 Like

I’ll have a deep look at it, thank you for your help. A last small question: in the *.info files, what is the “database” entry?

I believe that refers to the database (from libretro-database) used for content scanning. It’s not specifically necessary, AFAIK.

1 Like

Hi, @Zlika! A core for what system? :grinning:

Thanks!

1 Like

Hi @lfan! A core for Thomson 8bit computers. Regards

4 Likes

@hunterk I know this is a really old thread. I’ve finished building a Libretro frontend for my Rust-based Gameboy emulator (Boytacean - https://github.com/joamag/boytacean). I would love to publish the core in the main REtroarch repository.

Is there any way we can use the current build system Makefile/CMake based to build Rust-based cores that make use of Cargo?

1 Like

Hey, that’s a good question! I’m not sure, but I will ask around and see what shakes out

2 Likes

Any idea? I really want to make boytacean available in the main retroarch repo :slight_smile:.

Hey man, I didn’t get any useful responses when I asked before, but I got some good info this time:

So, I don’t know how much experience you have writing CI recipes, but that’s the long and short of it.

2 Likes

Thanks that was super super useful. I’ll try to run the updates on the gitlab-ci.yml.

@hunterk Which channel and server of Discord (libretro?) are you using for those questions?

I was using one of the hidden developer channels but you can usually find the same folks in #programming

1 Like