I Compiled Some Split Cores

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.

I believe I’ve figured it out, although it is more of a pain.

For someone trying to do this from scratch, open a retroarch game with the Genesis Plus GX core, and go into the quick menu/options, and find the names of the labels.

Edit: I’ve already done all of the legwork, here are the names of the labels:

System hardware

System region

System lockups

System bootrom

CD System BRAM

68k address error

Cartridge lock-on

Master System FM

YM2612 DAC quantization

YM2612/YM3438 core

Sound output

Audio filter

Low-pass filter %

Blargg NTSC filter

LCD Ghosting filter

Borders

Game Gear extended screen

Core-provide aspect ratio

Interlaced mode 2 output

Show Lightgun crosshair

Invert Mouse Y-axis

CPU speed

Remove per-line sprite limit

For example, System hardware. Open the libretro.c file in notepad++, and do a search for System hardware. (maybe do a ‘count’ also to make sure there’s only one). Once you’re where the label is, you should see something like this:

{ “genesis_plus_gx_system_hw”, "System hardware;

All I did was alter it to this:

{ “genesis_plus_gx_system_hw__gg”, "System hardware;

The reason I chose to use two underscores is, I specifically did a ‘count’ of _gg, and it came up 12 other times. So I wanted to change it to something unique, that way later on, I can do a find and replace all and only affect the altered fields. This will be a huge time saver.

But you’re still not done yet. the “genesis_plus_gx_system_hw” links to another part of the file, and you need to now do a search for genesis_plus_gx_system_hw and find where it links. You should see a string of text that looks like this:

var.key = “genesis_plus_gx_system_hw”;

I simply renamed it to this (to match the other one)

var.key = “genesis_plus_gx_system_hw__gg”;

You will need to do this for all of the option labels, if you don’t want them to conflict with each other on each split core.

The good news is, since I’m having you use a unique edit (the __gg, that we previously made sure did not already exist in the file anywhere), all you will have to do is find and replace all instances of __gg with __sms for Sega Master System for example, when you go to compile the Sega Master System split core.

Again, always double check and make sure there are no instances of __sms before you do it (again, double underscore and not just single).

I’ll try to get this working on my end for all cores. I will not be testing it extensively, as I have better things to do. I’m doing this as a courtesy - if someone else wants to test them for me that would be much appreciated, and if I did manage to screw something up, I’ll fix it, this one time. :slight_smile:

Nice seeing you figuring it all out by yourself, great achievements. For launcher users, like me, RocketLauncher will load the config files specifically for the split cores you created, provided you have created a new config file specifically for that core, it also creates a specific config folder once you save a game config file inside Quick Menu/Options.

Inside the folder for GPGX - SMS core you split for us, I have config for the Japanese titles, it will load the Mark III overlays only for those games, while the SMS for other regions will load the respective overlays for SMS.

Screenshots:

GG

SMS

MIII

Inside config folder, the retroarch-core options is set to auto in genesis_plus_gx_system_hw = “auto” line.

It shows bios for all the supported systems I tested, I didn’t test SG-1000 though and I don’t know if this system has bios.

Genesis Bios screen:

3 Likes

Nice… I am actually an RL user myself, I’m SupraKarma from the HyperSpin/RocketLauncher forums. :slight_smile:

Won’t setting the ‘region’ or ‘hardware’ to ‘auto’ in the quickmenu/options automatically set it to the correct bios though?

3 Likes

Hey SupraKarma, I didn’t know that, nice! Yeah, I didn’t know it would load automatically, for some reason, in my first attempts, it wouldn’t load, but I updated the previous post so it’s more accurate now.

Thanks again!

1 Like

Alright guys, here are the updated (11-1-17) split cores (again, for win64 only), with the quick menu/options bug sorted out. Any options you set on a split core should no longer interfere with another.

https://drive.google.com/open?id=0BwsItKU19h3lWWhBOS1rVFhSY0E

@SkyHighGam3r, this one is specifically for you - I’m not sure how useful it will be (I think setting “Hardware” and “Region” to “auto” in quick menu/options will resolve your previously discussed issue), but if you can use it, I went ahead and made a Genesis Plus GX - SM3 (Sega Mark III) core for you to use. The link for that is here:

https://drive.google.com/open?id=0BwsItKU19h3lNlFTUThKVmZoRzA

3 Likes

The more fast way is open the Notepad++, find genesis_plus_gx_ and replace all with genesis_plus_gx_gg_. That’s what I did for Sega CD (genesis_plus_gx_scd_). There’s no more option conflict.

Thanks!

2 Likes