I Compiled Some Split Cores

Bah I got an error trying to compile.

make: Makefile.libretro.dll: No such file or directory make: *** No rule to make target ‘Makefile.libretro.dll’. Stop.

I know I’m close, I can feel it. :slight_smile:

this is what I did to get only the Sega CD to compile:

void retro_get_system_info(struct retro_system_info *info)
{
   info->library_name = "Genesis Plus GX - SegaCD";
#ifndef GIT_VERSION
#define GIT_VERSION ""
#endif
   info->library_version = "v1.7.4" GIT_VERSION;
   info->valid_extensions = "bin|cue|iso|chd";
   info->block_extract = false;
   info->need_fullpath = true;

@hunterk it seems with a little fidgeting one can compile bluemsx with only the spectravision, thus making loading the spectravision easier.

2 Likes

I changed directories as per the guide’s instructions, and I’m directly in the Genesis-Plus-GX folder, but I’m still getting that error. Do I need to be in a subfolder or something?

Ok I needed to type it without the ‘dll’ as hunterK originally instructed. Dunno why I did that, but it seems to have worked, let me test it…

It works, here you go guys - Genesis Plus GX - SG1000 (for Win64). Grab it before I decide to pull it. :slight_smile:

(link removed, see post below with link to all the split cores)

Btw, for anyone wanting to do this, it’s actually not that hard. I’m somewhat tech savvy, but I had no clue what I was doing going into this. Between the guide I was using, and hunterK’s guidance, it’s quite doable. None of what I did makes any sense to me - the terminology, the tools, the commands - but what needed done was not complicated to begin with.

Thanks hunterK.

2 Likes

eyyy, congrats, man! :smiley:

1 Like

Could you split the other systems? It would be nice since this core has had some nice updates lately. Congrats on your compiling!

Working on it as we speak. :slight_smile:

As hunterk stated before, I do this as a one time service, and the link will not be up forever. The next time it needs updated, there’s enough information here for someone else to do what needs done, and share it with everyone. :slight_smile:

GIve me about 10 minutes and I’ll make a zip with all of the Genesis Plus GX split cores, and everyone can just download that.

2 Likes

I installed and started fetching and following the building instructions earlier today, to share the split cores here, when I entered this thread to get Hunterk’s instructions I saw you had already started the process, so I dropped it, next time, if I feel it needs updates, I’ll surely be the next one to build them.

Thanks again and all you guys involved.

3 Likes

Here it is guys. These are for Win64. If you need Win32, you’re on your own, sorry. :slight_smile: I personally tested them - they’re all updated to the latest core version, working, and with the same names as before (both filenames and core names), so all of your previous remap and core override files should work. Includes the newly created Genesis Plus GX - Sega SG-1000. Again, grab it while it’s up. I’ll keep it up for a little while, but not indefinitely.

(Post edited, see below for updates)

4 Likes

These are cool, do you mind if I upload these over on the Launchbox forums for people over there since you have no plans on leaving these up indefinitely ?

Thanks man!

I’m hoping I can use these split cores for Master System so I can get the Sega Mark 3 games to pull up the proper BIOS (Instead of the US version)

I had it working on a seperate wheel using a seperate install of RA lol but I combined those wheels and haven’t gotten around to fixing it.

It’s a shame there’s not a way for it to tell the difference between the JP games and US games and automatically select the correct BIOS like the Mednafen Saturn core does.

1 Like

I compiled a file to Sega CD and edited the info file. I have genesis_plus_gx_libretro.dll and genesis_plus_gx_scd_libretro.dll, but the option in RetroArch is the same for both.

What I have to change to RetroArch recognize like different cores?

The libreto.c file:

void retro_get_system_info(struct retro_system_info *info)
{
	info->library_name = "Genesis Plus GX - Sega CD";
#ifndef GIT_VERSION
#define GIT_VERSION ""
#endif 
	info->library_version = "v1.7.4" GIT_VERSION;
	info->valid_extensions = "bin|cue|iso|chd";
	info->block_extract = false;
	info->need_fullpath = true;
}

The info file:

display_name = "Sega CD (Genesis Plus GX)"
authors = "Charles McDonald|Eke-Eke"
supported_extensions = "bin|cue|iso|chd"
corename = "Genesis Plus GX - Sega CD"
manufacturer = "Sega"
categories = "Emulator"
systemname = "Sega CD"
database = "Mega-CD - Sega CD"
license = "Non-commercial"
permissions = ""
display_version = "v1.7.4"
supports_no_game = "false"
firmware_count = 3
firmware0_desc = "bios_CD_E.bin (MegaCD EU BIOS)"
firmware0_path = "bios_CD_E.bin"
firmware0_opt = "false"
firmware1_desc = "bios_CD_U.bin (SegaCD US BIOS)"
firmware1_path = "bios_CD_U.bin"
firmware1_opt = "false"
firmware2_desc = "bios_CD_J.bin (MegaCD JP BIOS)"
firmware2_path = "bios_CD_J.bin"
firmware2_opt = "false"

Thanks!

Think that is a side effect of running custom split cores. I know it from trying myself, I ran split bluemsx cores and had to modify the bluemsx_msxtype to something like bluemsx_svitype else when you change the machine type in one custom core it would change it for the other custom cores. So unless it become official, you need to either live with it or change it in the source code before you compile.

I haven’t messed with it in a while (about a year, actually :P) but I think you need to rename the core options in the split cores to make them not conflict.

Sure, that’s fine. :slight_smile:

1 Like

Glad you brought that to my attention, I’ll have to have a look at it myself.

There’s always a ton of little things you’d never think to configure when you’re setting things up initially.

1 Like

I can confirm that changing an option in the quick menu for one split core affects them all, and that is obviously not ideal.

I’d like to do this right since it’s already on my radar, and be done with it. :slight_smile:

Can you give me some more details on what I need to do? What file needs altered, the libretro.c file still? Am I looking for a section called ‘core options,’ and all of the fields simply need altered slightly? (for example, I could put initials in front of the respective cores like ‘gg’ for game gear)

Edit: These guesses were actually very close.

I think I found the the relevant section. I think it starts here in the libretro.c file:

/************************************

  • libretro implementation ************************************/ unsigned retro_api_version(void) { return RETRO_API_VERSION; }

void retro_set_environment(retro_environment_t cb) { static const struct retro_variable vars[] = { { “genesis_plus_gx_system_hw”, "System hardware;

So, what I’m going to attemp here is, to put an underscore, and then the initials of the system for all of these options (e.g. "System hardware_gg; ) custom cores.

This obviously makes this process a little more complicated, and I’m not sure if it will work or not, but I’ll give it a shot and post the results shortly. If it works, I’ll redo the cores and update them.

A useful tip (whether this works or not), in notepad++ you can ‘bookmark’ a line by clicking next to the number, then press F2 to skip to the next bookmark (shift+F2 for the previous).

What I will do is, copy the relevant section into a new tab, then put the _system name initials after each option name, then copy and paste it back into the regular file. Then I can just use ‘replace all’ to change the _system game initials in the new tab, and repeat the process for each split core.

Nope, my idea didn’t work. I changed System Hardware_gg = Game Gear (in the Game Gear split core that I altered) and it changed the setting for all of the split cores.

I’ll keep working on it, hopefully I can figure this out.