its real lolYour 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 lolYour 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.
sure!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)..
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
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);
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
Metal slug3 is not going to run right now, did you see the size of the rom?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.
I'm gonna test it in a bitI'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.
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.
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.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.
AWESOME WORK. Thank you.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.
you can't load/save configs manually currently.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..