Using Mame.ini with “output” param

I am using a Retropie Pi4 with lr-mame2016 and I would like to set the mame “-output network” param in the mame.ini file. I have it reading the mame.ini file but it says my config for output is invalid for everything I try (network, console, 1…etc) and says it setting it to auto. Any help is appreciated.

1 Like

You tried to activate this option.

1 Like

Thanks for the input! So, I have enable the read file setting and verified that mame.ini file by pressing escape in game and getting to the MAME UI. In there I confirmed that it is looking to the “/home/pi/RetroPie/BIOS/mame2016/ini” folder for the mame.ini file. I have set the output option to network which should be a valid option based on the MAMEDev guides. Below is the verbose output showing that libretro sees the config. Not sure if this is just not supported???

[INFO] Loading dynamic libretro core from: “/opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so” [INFO] [Overrides] no core-specific overrides found at /home/pi/.config/retroarch/config/MAME 2016/MAME 2016.cfg. [INFO] [Overrides] no content-dir-specific overrides found at /home/pi/.config/retroarch/config/MAME 2016/arcade.cfg. [INFO] [Overrides] game-specific overrides found at /home/pi/.config/retroarch/config/MAME 2016/alien3u.cfg. [INFO] Config: appending config “/home/pi/.config/retroarch/config/MAME 2016/alien3u.cfg” [CDROM] No sg devices found and sg kernel module is not loaded. Error in command line: While parsing /home/pi/RetroPie/BIOS/mame2016/ini/alien3u.ini: Warning: unknown option in INI: netdevprovider SOURCE FILE: …/…/…/…/…/src/mame/drivers/segas32.cpp PARENT: alien3 NAME: alien3u DESCRIPTION: Alien3: The Gun (US) YEAR: 1993 MANUFACTURER: Sega Value not supported for option netdevprovider - falling back to auto Value network not supported for option output - falling back to auto MAIN FIRST w:416 h:224 a:1.333333 w:320 h:224 a:1.333333 RETRO DEINIT retro_finish begin Average speed: 100.03% (37 seconds)

Additionally, I am not opposed to other solutions such as finding a way to pass the command in the startup command line or editing the source so that the MAME call always includes this param. Again… any experience or help is appreciated!

1 Like

There is a “Run from CLI” option (Or some such, I am AFK) in the config settings also. After it is enabled, any traditional MAME command line option should work.

1 Like

That sounds promising! I’ll start looking. Thanks!

1 Like

Well… that did not seem to work. I was able to start a game that I have verified worked and added the MAME param after the ROM reference and it is still not sending the outputs to the network. I also tracked down the INI dir location when running a game with the CLI method and added my mame.ini file and it still said not supported. Back to the drawing-board.

–verbose … [libretro INFO] Starting game:/home/pi/RetroPie/roms/arcade/othunderu.zip -output network [libretro INFO] Game name: othunderu, Game description: Operation Thunderbolt (US) [libretro ERROR] System not found: arcade [libretro WARN] Driver arcade not found -1 [libretro INFO] Creating frontend for game: othunderu [libretro INFO] Softlists: 1 SOURCE FILE: …/…/…/…/…/src/mame/drivers/othunder.cpp PARENT: othunder NAME: othunderu DESCRIPTION: Operation Thunderbolt (US) YEAR: 1988 MANUFACTURER: Taito America Corporation [libretro INFO] Screen orientation: HORIZONTAL Value not supported for option netdevprovider - falling back to auto Value network not supported for option output - falling back to auto [libretro INFO] OSD initialization complete [INFO] [Environ]: SET_GEOMETRY: 320x240, aspect: 1.333. [INFO] [KMS]: New FB: 1920x1080 (stride: 7680). [INFO] [KMS]: New FB: 1920x1080 (stride: 7680). …

Don’t give up just yet, the encapsulation can be tricky. I’ll post an example when I get home.

1 Like

Thanks! That would be awesome!

retroarch.exe -L ".\cores\mame_libretro.dll" "pdp1 -ptap1 .\shaders\Duimon-Mega-Bezel\Graphics\PDP-1_Spacewar!\spacewar!.rim"

I couldn’t get this command to work without separating the two halves of the command.

I have my doubts if this will fix your issue though. As far as I know, nothing is stripped from the internal MAME emulator so I am wondering if the command you are trying is obsolete.

Could you post a preformatted text example of your command?

I don’t think it was depreciated or obsolete because I have installed the MAME emulator (MAME .233) and it works when I add it to the launch command (/opt/retropie/emulators/mame/mame %BASENAME% -output network). However I can’t say that it worked in version .174 (MAME2016) outside of the LR build. I am trying to do a source build and test that path as well, but I am getting some compiler errors I have to work through. If you were asking about my testing with the LR CLI I think that I used (retroarch -L /opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so " rom -output network")

You can try moving your left quote to the left like "/opt…

But…

…gives me cause for concern.

I have recently compiled the MAME core several times. I haven’t looked at the build settings though. Maybe something is configured out for some good reason.

BTW. I think you will get build errors for any older MAME core version that still had CG shader support.

I’ll give it a shot!

Yeah… Regarding the .174 build, I am at a lose on my compile errors :thinking:

pi@retropie:~/mame174/mame $ sudo make SUBTARGET=arcade GCC 8 detected fatal: not a git repository (or any of the parent directories): .git Compiling src/osd/modules/netdev/taptun.cpp… In function ‘netdev_tap::netdev_tap(const char*, device_network_interface*, int ’, inlined from ‘osd_netdev* create_tap(const char*, device_network_interface*, int)’ at …/…/…/…/…/src/osd/modules/netdev/taptun.cpp:119:26: …/…/…/…/…/src/osd/modules/netdev/taptun.cpp:79:9: error: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 10 bytes from a string of length 15 [-Werror=stringop-truncation] strncpy(m_ifname, ifr.ifr_name, 10);

../../../../../src/osd/modules/netdev/taptun.cpp: In constructor ‘netdev_tap::netdev_tap(const char*, device_network_interface*, int)’:
../../../../../src/osd/modules/netdev/taptun.cpp:79:9: error: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying 10 bytes from a string of length 15 [-Werror=stringop-truncation]
strncpy(m_ifname, ifr.ifr_name, 10);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [osd_sdl.make:888: obj/Release/osd_sdl/src/osd/modules/netdev/taptun.o] Error 1
make[1]: *** [Makefile:19: osd_sdl] Error 2
make: *** [makefile:1210: linux] Error 2
1 Like

I have only ever compiled the Windows version so I am no help there. :frowning_face:

Odd though that the errors are all net related. :thinking:

1 Like

Made some headway! I can use the “console” param instead of “network” and see the output. Not sure if there are http params required or if it is just deprecated for Libretro. Looks like I’ll now focus on sending my console output to the network somehow. Thanks for the help!

1 Like

https://sourceforge.net/p/ledspicer/wiki/Mame/

Seems to say that no RetroArch version supports the switch you have been trying.

Does anyone know how to compile a Win64 module of the mame core? We should be able to get outputs via the Win32 API as the code seems to be in there. My guess it’s a compile time option because it’s only available when compiling for a windows platform.

You can see the module at https://github.com/mamedev/mame/tree/0006fba49565386afa9b66d9fb8e02f744cf7cdb/src/osd/modules/output

I certainly don’t have the skills, but it seems logically something trivial, no?