Homebrew [RetroArch] Nightly builds here!

Status
Not open for further replies.

tyler coates

Active Member
Newcomer
Joined
Aug 23, 2015
Messages
39
Trophies
0
Age
28
XP
47
Country
United States
Your username. He wants to know if your actual name is Tyler Coates. He thought it would be funny if that wasn't your actual name, and you just came up with it on the spot as a sort of strange alternate persona username.
its real lol
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I just got fMSX compiled and running on my N3DS, if anyone's interested (hurray MSX Metal Gear and Metal Gear 2: Solid Snake!). I would've gone for blueMSX instead, but it has a bunch of undefined references to "glob" and "get_crc_table" or something, so I stopped messing with that for now. I didn't have to make any source edits to get fMSX to compile, just a minor makefile edit. The controls don't seem to do anything, though. Looks like I might have to make some edits somewhere (or I guess end up doing a separate port that includes a touchscreen keyboard or something)..
 
Last edited by daxtsu,
  • Like
Reactions: matt! and Azel

william341

Last remaining VinsClone
Member
Joined
Dec 26, 2014
Messages
391
Trophies
0
Age
29
XP
280
Country
United States
I just got fMSX compiled and running on my N3DS, if anyone's interested (hurray MSX Metal Gear and Metal Gear 2: Solid Snake!). I would've gone for blueMSX instead, but it has a bunch of undefined references to "glob" and "get_crc_table" or something, so I stopped messing with that for now. I didn't have to make any source edits to get fMSX to compile, just a minor makefile edit. The controls don't seem to do anything, though. Looks like I might have to make some edits somewhere (or I guess end up doing a separate port that includes a touchscreen keyboard or something)..
sure!
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
Looking at the fmsx core source, it looks like input for the joystick was never implemented. Going to try doing it now.
 

Acryt

Well-Known Member
Member
Joined
Aug 22, 2015
Messages
310
Trophies
0
XP
169
Country
United States
Having trouble with the Retroarch MGBA on N3DS(3dsx) for Fast Forward toggle/hold. I've no idea if it's working after binding it, Vsync ,Audio sync off, and FPS goes up to 60->90 on PKEmerald, but it's not nearly the fast forward speed I was hoping for if it is working. I have it at 10x maximum speed in the options, from what I'm guessing is the correct place to edit it, and I can't seem to find a frame skip option to see if I can make it faster. I'm extremely used to the speed emus like VBA, and GameYob have when you hold fast forward, and would like to have that type of speed.
 
Last edited by Acryt,

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
Okay, here's an unofficial "port" of RetroArch's fMSX core. I haven't figured out a way to save games yet, so this is more of a proof of concept than anything.

Don't ask for tech support for this build, I just wanted to show that fMSX can run on the 3DS just fine.

The control bindings are as follows (mainly hard-coded for Metal Gear 1 and 2; unfortunately, MSX games don't have a standard control setup as far as I know):
A: Joystick button A
B: Joystick button B
X: Keyboard button F3
Y: Keyboard button spacebar
L: Keyboard button F4
R: Keyboard button F5
Directional pad: Joystick directional pad
Start: Keyboard button F1
Select: Keyboard button F2

To set it up, grab all of the ROMs from https://github.com/libretro/fmsx-libretro/tree/master/fMSX/ROMs and stick them in RetroArch's system folder, like you would any other BIOS files. After that, grab a ROM for your favourite game (I only tested Metal Gear 1 and 2) and enjoy. You might need to set the machine type in Core Options -> MSX Mode to get different games working. Metal Gear 1 and 2 run fine with MSX2+.

As for source code, I'll just post the tiny edits I made here, so you can reproduce it from scratch:

Retroarch's /ctr/Makefile.cores (add this somewhere in the big chain of platform comparisons):
Code:
else ifeq ($(LIBRETRO), fmsx)
    APP_TITLE         = fMSX
    #APP_DESCRIPTION   = Retroarch 3DS
    APP_AUTHOR        = Marat Fayzullin
    APP_PRODUCT_CODE  = RARCH-FMSX
    APP_UNIQUE_ID     = 0xBAC16
    APP_ICON          = ctr/fmsx.png
    #APP_BANNER        = ctr/libretro_banner.png
    #APP_AUDIO         = ctr/silent.wav

In fMSX's libretro.c (make joystate global):

Code:
int joystate;

// ...further on down in the file
unsigned int Joystick(void)
{
    return joystate;
}

// ...even further on down, in retro_run
// When you see this stuff:
//   for (i=0; i < sizeof(keymap)/sizeof(keymap_t); i++)
//      if (input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0, keymap[i].retro))
//         KBD_SET(keymap[i].fmsx);
   joystate = 0;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP))
      joystate |= JST_UP;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN))
      joystate |= JST_DOWN;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT))
      joystate |= JST_LEFT;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT))
      joystate |= JST_RIGHT;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A))
      joystate |= JST_FIREA;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B))
      joystate |= JST_FIREB;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START))
      KBD_SET(KBD_F1);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT))
      KBD_SET(KBD_F2);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X))
      KBD_SET(KBD_F3);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L))
      KBD_SET(KBD_F4);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R))
      KBD_SET(KBD_F5);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y))
      KBD_SET(KBD_SPACE);
 

Attachments

  • fmsx-libretro.zip
    1.6 MB · Views: 292
Last edited by daxtsu,

SLiV3R

3DS Friend Code: 0473-9069-2206
Member
Joined
Jan 9, 2006
Messages
2,319
Trophies
2
Website
soundcloud.com
XP
1,847
Country
Okay, here's an unofficial "port" of RetroArch's fMSX core. I haven't figured out a way to save games yet, so this is more of a proof of concept than anything.

Don't ask for tech support for this build, I just wanted to show that fMSX can run on the 3DS just fine.

The control bindings are as follows (mainly hard-coded for Metal Gear 1 and 2; unfortunately, MSX games don't have a standard control setup as far as I know):
A: Joystick button A
B: Joystick button B
X: Keyboard button F3
Y: Keyboard button spacebar
L: Keyboard button F4
R: Keyboard button F5
Directional pad: Joystick directional pad
Start: Keyboard button F1
Select: Keyboard button F2

As for source code, I'll just post the tiny edits I made here, so you can reproduce it from scratch:

Retroarch's /ctr/Makefile.cores (add this somewhere in the big chain of platform comparisons):
Code:
else ifeq ($(LIBRETRO), fmsx)
    APP_TITLE         = fMSX
    #APP_DESCRIPTION   = Retroarch 3DS
    APP_AUTHOR        = Marat Fayzullin
    APP_PRODUCT_CODE  = RARCH-FMSX
    APP_UNIQUE_ID     = 0xBAC16
    APP_ICON          = ctr/fmsx.png
    #APP_BANNER        = ctr/libretro_banner.png
    #APP_AUDIO         = ctr/silent.wav

In fMSX's libretro.c (make joystate global):

Code:
int joystate;

// ...further on down in the file
unsigned int Joystick(void)
{
    return joystate;
}

// ...even further on down, in retro_run
// When you see this stuff:
//   for (i=0; i < sizeof(keymap)/sizeof(keymap_t); i++)
//      if (input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0, keymap[i].retro))
//         KBD_SET(keymap[i].fmsx);
   joystate = 0;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP))
      joystate |= JST_UP;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN))
      joystate |= JST_DOWN;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT))
      joystate |= JST_LEFT;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT))
      joystate |= JST_RIGHT;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A))
      joystate |= JST_FIREA;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B))
      joystate |= JST_FIREB;
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START))
      KBD_SET(KBD_F1);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT))
      KBD_SET(KBD_F2);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X))
      KBD_SET(KBD_F3);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L))
      KBD_SET(KBD_F4);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R))
      KBD_SET(KBD_F5);
   if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y))
      KBD_SET(KBD_SPACE);

You should join the Retroarch team ;)
 

Azel

Well-Known Member
Member
Joined
Dec 16, 2014
Messages
632
Trophies
0
Age
41
XP
656
Country
France
Tested CPS2 (marvel vs capcom) it has the common error "doesn't have enough blah blah.

EDIT: Neo Geo still gives me the same error.
Metal slug3 is not going to run right now, did you see the size of the rom?

any way, please state build type (3dsx/cia) and and system(o3ds/n3ds) with every posts.
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I'm curious to know how well fMSX runs on the old 3DS/2DS. If it runs decently enough, I'm almost thinking of making a standalone port or an emulator from scratch maybe. The MSX is a fun little computer.
 
  • Like
Reactions: AtlasFontaine

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,368
Trophies
2
Location
In my house
XP
4,802
Country
Mexico
Metal slug3 is not going to run right now, did you see the size of the rom?

any way, please state build type (3dsx/cia) and and system(o3ds/n3ds) with every posts.

Thanks for the answeer.

The rom I'm trying to load is Neo Bomberman.

o3DS, .cia build.

I just tested PSX core and wow, I wasn't expecting to load every game I put into it, the speed is ridiculous but man, is still amazing to see it running.
 

Azel

Well-Known Member
Member
Joined
Dec 16, 2014
Messages
632
Trophies
0
Age
41
XP
656
Country
France
sorry I'm not familiar with rom size limit on o3DS :\ (make sure you have a good rom from the right romset (right version of fba) and a good neogeo.zip in the same folder)
 

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Neo Bomberman works fine here on N3DS, .3dsx 10-10 build. (with unibios core option turned on, however unlikely that makes a difference here.)
 
Last edited by kiwiis,

Columbo2811

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
1,399
Trophies
0
XP
1,064
Country
Anyone who's having problems with cps1 cps2 and neo geo roms working try them from here. I'm not linking any roms just the site if that's ok. It's in French this site just click on the right hand side arcade section. This site has all of them and only a few didn't work for me. Get the main zip and not the patches.
 
Last edited by BORTZ, , Reason: DO NOT LINK OR MENTION ROM SITES ON GBATEMP

Acryt

Well-Known Member
Member
Joined
Aug 22, 2015
Messages
310
Trophies
0
XP
169
Country
United States
Having trouble with the Retroarch MGBA on N3DS(3dsx) for Fast Forward toggle/hold. I've no idea if it's working after binding it, Vsync ,Audio sync off, and FPS goes up to 60->90 on PKEmerald, but it's not nearly the fast forward speed I was hoping for if it is working. I have it at 10x maximum speed in the options, from what I'm guessing is the correct place to edit it, and I can't seem to find a frame skip option to see if I can make it faster. I'm extremely used to the speed emus like VBA, and GameYob have when you hold fast forward, and would like to have that type of speed.
To add to this, I seem to have an issue where no retroarch configs are saving despite hitting Save New Config -> exiting afterwards to try to make sure they are saving. No saved configs can be found after restarting, and settings have reverted. I can see in the debug they are saving to the proper location, but that doesn't seem to hold true.

EDIT: It doesn't seem any settings are even be saved, when they are saved. Loaded many different configs and everything is always reset in them.
Save at exit is ON, etc..
 
Last edited by Acryt,

matt!

Well-Known Member
Member
Joined
Nov 20, 2009
Messages
634
Trophies
1
Age
47
Website
www.gingerbeardman.com
XP
1,354
Country
United Kingdom
Okay, here's an unofficial "port" of RetroArch's fMSX core. I haven't figured out a way to save games yet, so this is more of a proof of concept than anything.
AWESOME WORK. Thank you.

Did you make a pull request with your changes so the Retroarch team can add it into the official nightly builds?

Hope so!
 

aliaspider

Well-Known Member
Member
Joined
Apr 14, 2015
Messages
344
Trophies
0
XP
1,358
Country
Tunisia
EDIT: It doesn't seem any settings are even be saved, when they are saved. Loaded many different configs and everything is always reset in them.
Save at exit is ON, etc..
you can't load/save configs manually currently.
just don't touch those and config will load and save fine by itself.

@daxtsu, yeah where is that PR ? :P
 

Osakasan

Well-Known Member
Member
Joined
Sep 19, 2015
Messages
1,237
Trophies
1
Age
39
XP
3,149
Country
Did i just read at NeoGAF that GBA Core (gpsp?) got GPU access? Is this a thing now or a mere announcement?
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtu.be/9pwfLTaW8J8?si=FaKUzB-OBP92LnUD