Libretro/RetroArch Documentation Project

+1 for Video tutorials

I’ve started to document RGUI on our Wiki: https://github.com/Themaister/RetroArch/wiki/RGUI

Core at the top of the menu, yay! Per core options are a great addition too, we will no longer have to change video settings each time we load games from different cores. Looks great!

Don’t know what you mean here. Core Options are core-specific things like colorization in gameboy, not settings in general.

EDIT: All TODOs are filled in in the article now. Let me know if anything is missing.

I thought it meant aspect ratio and resolution eettings are saved on a per core basis, like 2:1 and 640 x 448p for CPS2 etc.

Added some more articles: https://github.com/Themaister/RetroArch/wiki

In the load game from history menu option, does it list games from the currently selected core or various cores? Also, if I had let’s say A Link to the Past on my game history list and I am currently using the Neo Geo core, will it automatically switch cores to Snes9x Next and load the rom?

It lists all ROMs. It’ll swap out the core for you as well. At least on PC, pretty sure it works that way now on consoles as well.

Wow! That is a fantastic feature and very user-friendly, thanks!

Yes, I put in the patches to have it work on Wii, PS3 and Xbox 1 as well. Xbox 360 I’m now working on.

Great! Sounds like everything is getting more streamlined with ease of use.

Going by the screenshot, am I right in thinking that the video options is a nested menu? If so, would it be better to do this also with the control options, i.e. we don’t need to see up to player 4 as most users will be playing solo. Looks great btw. Keep up the good work :slight_smile:

Yeah, I want to move the control stuff over to a submenu as well.

Nice. Rewind, Load and Audio could also be grouped. I love the style of RGUI, very minimalist and reminds me of my friend’s old green BBC Micro monitor back in the day :slight_smile:

Looks good :cool:

Would someone be able to point me to a link with a description of what the phoenix options are for the PC. A lot of them make sense but I am confused by several of them

Here are explanations for most of them:

Some of them are outdated at this point and a few more will be outdated with the 0.9.9 release, but hopefully it will help with some of them :slight_smile:

Perhaps I’m missing it but are there any documents on creating cores or a step by step of the porting of an existing emulator to a core? Even if just something which points to commits of interest? The cores I’ve looked at have included pulling in upstream changes and random build fixes which can make the main changes difficult to tease out.

Hey guys.

I’m trying to help leiradel to document the cheevos.c, but I would like to know if there’s some preference for commenting style.

When I implemented the fill_str_dated_filename() function in file_path.c I used the comment style I found in the same file (as you can see here and on the snippet below).


/**
 * fill_str_dated_filename:
 * @out_filename       : output filename
 * @in_str             : input string
 * @ext                : extension of output filename
 * @size               : buffer size of output filename
 *
 * Creates a 'dated' filename prefixed by the string @in_str, and
 * concatenates extension (@ext) to it.
 *
 * E.g.:
 * out_filename = "RetroArch-{year}{month}{day}-{Hour}{Minute}{Second}.{@ext}"
 **/
void fill_str_dated_filename(char *out_filename,
      const char *in_str, const char *ext, size_t size)
{
   ...

But I noticed that this isn’t used in other parts of RetroArch code.

Then, I have some questions about the RetroArch commenting style:

  • Is there some tool to autogenerate docs when the comments are written using the style shown above?

  • Is there some coding style guide for the libretro/RetroArch?

Cheers!

I talked to Twinaphex about it and he said the comment style you’re using in your post is just fine. We don’t have any automatic doc generation, so if you need to change the style to suit doxygen or whatever, post an example and I’ll run it by him.

hunterk, doxygen seems to be the most widely used for documenting C code. But it’s a pain to get a nice Doxyfile configuration to output neat html docs specific for C language.

I tested it and it seems that Doxygen didn’t like the several #defines present in RetroArch code (as I said in the second question of doxygen FAQ).

I think I’ll go with the javadoc style. I know doxygen can manage this as input, I just need to find out how to get a nice Doxyfile configuration.

Look if the style is OK on the example below:


/**
 * Gets the list of awarded achievements for the game_id and updates
 * internal data accordingly.
 *
 * @param game_id : game ID.
 * @param timeout : max time, in microseconds, to get response from the server.
 * 
 * 
 * @return -1 on failure, JSONSAX_OK on success.
 */
static int cheevos_deactivate_unlocks(unsigned game_id, retro_time_t *timeout)
{
   ...

Thanks.