[Tutorial] CD-I Emulation in RetroPie via lr-mess (warning: slowdown, especially during FMV, but surprisingly playable)
-
Hello all,
Ever since I upgraded to Raspbian Stretch and could compile lr-mess, I wanted to try to get Philips CD-I emulation working. I was very confused on how to do this, as I usually just load .cue or .iso files on my pc, whereas lr-mess appears to demand those files be compressed into .chd files before it will accept them. However, I think I finally have it in a playable state. It is not running at full speed though.
My runcommand output claims it's running at about 50%. Now, I know that sounds horrible, and I do wish it was alot better, but it seems like the worst slowdown occurs during the FMV segments. I have attempted to play Hotel Mario and Wand of Gamelon, and while there is definitely some slowdown during the gameplay segments, it is not as severe and the games are surprisingly playable. It is up to the MAME team and the maintainers of lr-mess to hopefully improve it in the future. It may also be possible to get better results via overclocking.
My specs:
Raspberry Pi 3B
RetroPie 4.2.18
No overclocking
Raspbian StretchStep 1: Install lr-mess.
This should be self-explanatory. Just go to RetroPie-Setup and then go get a cup of coffee while you wait.
My installation took 5 hours and 48 minutes. I temporarily increased my swapfile size from 100 to 2048. I recommend this, as the install seemed to crash when I tried before with the old swapfile size.Step 2: Set up cdimono1
You will first need to find the standard BIOS for MAME. I can't link to this, but when you find it, you need to place it in your main ROMS folder ex: (/home/pi/RetroPie/roms).
Next, you need to add a folder in your main ROMS folder for the CD-I games. This folder should be labeled cdimono1. You can try other CD-I emulators in MESS if you want, but I believe cdimono1 works best. MESS documentation labels it as PAL, but I've been able to use US disks, which should be NTSC.
You will also need to add an entry to your es_systems.cfg. Here is mine. Notice that it specifies the .chd file extension, while most MESS emulation demands .zip. You may need to change paths if you installed things in different places from me.
<system> <name>cdimono1</name> <fullname>Philips CD-i</fullname> <path>/home/pi/RetroPie/roms/cdimono1</path> <extension>.chd .CHD .zip .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ cdimono1 %ROM%</command> <platform>cdimono1</platform> <theme>cdimono1</theme> </system>
Finally, we need to go to /opt/retropie/configs and add a cdimono1 folder. Inside that folder, you need an emulators.cfg and retroarch.cfg. I will give you mine, but there may need to be path adjustment depending on where you put everything.
emulators.cfg:
default = "lr-mess" lr-mess = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess/mess_libretro.so --config /opt/retropie/configs/cdimono1/retroarch.cfg %ROM%"
retroarch.cfg
# Settings made here will only override settings in the global retroarch.cfg if placed above the #include line input_remapping_directory = "/opt/retropie/configs/cdimono1/" #include "/opt/retropie/configs/all/retroarch.cfg"
Step 3: Add your games.
I will use Hotel Mario (EU) for this example. First, take a look at your cdi.xml file. This should be in /home/pi/Retropie/BIOS/Mame/hash.
Here is the section we are interested in:<software name="hotmario"> <!-- Origin: TOSEC <rom name="Hotel Mario (1994)(Philips)(EU)[!].iso" size="366794400" crc="8305fbca" md5="eaba42fc6572a66cb91ceeb976595485"/> <rom name="Hotel Mario (1994)(Philips)(EU)[!].cue" size="123" crc="0a437951" md5="df72c8ced1f5d36a38c5ca2e9330062b"/> --> <description>Hotel Mario (Euro)</description> <year>1994</year> <publisher>Philips</publisher> <part name="cdrom" interface="cdi_cdrom"> <diskarea name="cdrom"> <disk name="hotel mario (1994)(philips)(eu)[!]" sha1="f24e118b807bc2479794eaa6cc35526e70be5bf0"/> </diskarea> </part> </software>
You will need to find the chd file listed under "disk name". You can ignore the sha1. Usually mess would refuse to run if your sha1 is incorrect, but this doesn't seem to be the case with CHD files.
If you cannot find this file, it is possible to make your own. I was able to do this with the chdman.exe tool included with the PC version of MAME. I am sure an equivalent tool exists under other versions.If you are making your own .chd file, you will need to locate the .iso and .cue file mentioned above. Use the CRC or md5 checksums above to make sure you have the right files. Place them in the same directory as your chdman.exe and use the following command
chdman --input "Hotel Mario (1994)(Philips)(EU)[!].cue" --output "hotel mario (1994)(philips)(eu)[!].chd"
You should now have a .chd file. I recommend trying to find the actual MAME software-list CHD if possible. While my homemade CHD worked, it is not identical to the real thing. I cannot guarantee everyone's homemade files will be accepted.
So, whether you made a working .chd file or found one, you can now add this "hotel mario (1994)(philips)(eu)[!].chd" to your cdimono folder in the roms section. Now, we need to make another file for our game. This one can just be an empty text file. However, it must be called "hotmario.chd" in accordance with the software name above. Please be sure that it has the .chd extension and not the .txt or other extensions. Add this file to your cdimono folder in the roms section. Now restart emulation station to make the new roms appears
Step 4: Launching and playing the game.
You should see two games listed under your cdimono1 section. One of these will be "hotel mario (1994)(philips)(eu)[!]" and the other will be "hotmario". If you attempt to use the .chd with the actual game data, lr-mess will fail to start. You need to use our fake CHD "hotmario" to launch the game.
After a sizeable wait, you will see the gray CD-I startup screen appear with a mouse pointer sliding along the screen. I recommend using tab to access the menu and rebind your controls. I was not able to get my actual mouse to work properly with this game. I had to bind the four digital directions to my D-pad and the two mouse buttons to controller buttons. The four digital mouse directions are the four directions on the CD-I control pad anyway. These mouse buttons are also button 1 and 2 on the CD-I controller. I don't know how much the third button is actually used, but it's not here. That's a MESS limitation right now.
Once you sort out your controls, you will also notice that your mouse likes to drift slowly down and to the right. I don't know why it does that, and I haven't figured out a fix. This also carries into the actual game controls, so it will take some getting used to. You should be able to move the mouse pointer over the play button and press "button 1" to load the game. I have noticed that, in general, game speed seems to improve over time, presumably as more important files are cached and made more easily accessible to the emulator.
Now, you may eventually spot a new folder in your cdimono1 roms section labeled "mame". Leave it alone.
And there you are. It's not perfect, but it's currently the best CD-I emulation that I am aware of for RetroPie. Hopefully speed can be increased in future updates. Some games will run better than others, and I am sure some games have bugs in MESS that have yet to be fixed, so you will need to ask around. I should note that cdimono1 tends to run at 100% on my laptop, so hopefully we can see improvements in Pi optimization.
-
Sorry to bother you,
Your tutorial is BRILLIANT but I'm not sure how to use chdman. Where do I put your command provided? -
I know this an old thread but still I found the way to load cdi games true es_systems.cfg on the windows version of es. it's documented here https://github.com/danyboy666/es_systems/blob/master/win/.emulationstation/es_systems.cfg
the bat script isn't needed use this instead in es_systems.cfg
<command>%HOME%.emulationstation\systems\retroarch\retroarch.exe -L %HOME%.emulationstation\systems\retroarch\cores\mame_libretro.dll %HOME%.emulationstation\roms\cdimono1%BASENAME%.txt</command>for linux there is no lr_mame.so core i'm not sure which core is equivalent to mame_libretro.dll version of windows but the syntax should be really similar for linux. I will most likely test a way fo linux sometime and update my git.
-
I followed the tutorial but the games do not start, they return to the selection screen.
I used lr-mess2016 and not lr-mess. as a folder I used ARCADE
have you already tried with lr-mess2016? where could I have been wrong? thanksMy specs:
Raspberry Pi 3B
RetroPie 4.4.2
No overclocking -
I have this error:
Parameters:
Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess2016/mess2016_libretro.so --config /opt/retropie/configs/arcadia/retroarch.cfg "/home/pi/RetroPie/roms/arcadia/hotmario.chd" --appendconfig /dev/shm/retroarch.cfg
[INFO] RetroArch 1.7.3 (Git b2ceb50)
[INFO] Redirecting save file to "/home/pi/RetroPie/roms/arcadia/hotmario.srm".
[INFO] Redirecting savestate to "/home/pi/RetroPie/roms/arcadia/hotmario.state".
[INFO] === Build =======================================
Capabilities: NEON VFPv3 VFPv4
Built: May 14 2018
[INFO] Version: 1.7.3
[INFO] Git: b2ceb50
[INFO] =================================================
[INFO] Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-mess2016/mess2016_libretro.so"
[INFO] [overrides] no core-specific overrides found at /home/pi/.config/retroarch/config/MAME 2016/MAME 2016.cfg.
[INFO] [overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/MAME 2016/hotmario.cfg.
[INFO] Shaders: preset directory: /home/pi/.config/retroarch/shaders/presets
[INFO] Shaders: no game-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/hotmario.cgp.
[INFO] Shaders: no game-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/hotmario.glslp.
[INFO] Shaders: no parent-dir-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/arcadia.cgp.
[INFO] Shaders: no parent-dir-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/arcadia.glslp.
[INFO] Shaders: no core-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/MAME 2016.cgp.
[INFO] Shaders: no core-specific preset found at /home/pi/.config/retroarch/shaders/presets/MAME 2016/MAME 2016.glslp.
[INFO] Environ SET_VARIABLES.
[INFO] Remaps: remap directory: /opt/retropie/configs/arcadia/
[INFO] Remaps: no game-specific remap found at /opt/retropie/configs/arcadia/MAME 2016/hotmario.rmp.
[INFO] Remaps: no core-specific remap found at /opt/retropie/configs/arcadia/MAME 2016/MAME 2016.rmp.
[INFO] Redirecting save file to "/home/pi/RetroPie/roms/arcadia/hotmario.srm".
[INFO] Redirecting savestate to "/home/pi/RetroPie/roms/arcadia/hotmario.state".
[INFO] Environ GET_LOG_INTERFACE.
[INFO] Environ SYSTEM_DIRECTORY: "/home/pi/RetroPie/BIOS".
[libretro INFO] SYSTEM_DIRECTORY: /home/pi/RetroPie/BIOS[INFO] Environ CORE_ASSETS_DIRECTORY: "/home/pi/.config/retroarch/downloads".
[libretro INFO] CONTENT_DIRECTORY: /home/pi/.config/retroarch/downloads[libretro INFO] SAVE_DIRECTORY: /home/pi/RetroPie/roms/arcadia/[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[INFO] Content loading skipped. Implementation will load it on its own.
[INFO] Environ GET_VARIABLE mame2016_boot_from_cli:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_mouse_enable:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_throttle:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_nobuffer:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_cheats_enable:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_hide_nagscreen:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_hide_infoscreen:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_hide_warnings:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_alternate_renderer:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_boot_to_osd:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_read_config:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_auto_save:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_saves:
[INFO] game
[INFO] Environ GET_VARIABLE mame2016_media_type:
[INFO] rom
[INFO] Environ GET_VARIABLE mame2016_softlists_enable:
[INFO] enabled
[INFO] Environ GET_VARIABLE mame2016_softlists_auto_media:
[INFO] enabled
[INFO] Environ GET_VARIABLE mame2016_boot_to_bios:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_write_config:
[INFO] disabled
[INFO] Skipping SRAM load..
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] Environ GET_VARIABLE mame2016_boot_from_cli:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_mouse_enable:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_throttle:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_nobuffer:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_cheats_enable:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_hide_nagscreen:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_hide_infoscreen:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_hide_warnings:
[INFO] N/A
[INFO] Environ GET_VARIABLE mame2016_alternate_renderer:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_boot_to_osd:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_read_config:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_auto_save:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_saves:
[INFO] game
[INFO] Environ GET_VARIABLE mame2016_media_type:
[INFO] rom
[INFO] Environ GET_VARIABLE mame2016_softlists_enable:
[INFO] enabled
[INFO] Environ GET_VARIABLE mame2016_softlists_auto_media:
[INFO] enabled
[INFO] Environ GET_VARIABLE mame2016_boot_to_bios:
[INFO] disabled
[INFO] Environ GET_VARIABLE mame2016_write_config:
[INFO] disabled
[libretro INFO] AV_INFO: width=640 height=480
[libretro INFO] AV_INFO: max_width=640 max_height=480
[libretro INFO] AV_INFO: aspect_ratio = 1.333333
[libretro INFO] AV_INFO: fps = 60.000000 sample_rate = 48000.000000
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Video @ 2559x1440
[INFO] [Video]: Starting threaded video driver ...
[INFO] [EGL] Falling back to eglGetDisplay
[INFO] [EGL]: EGL version: 1.4
[INFO] [EGL]: Current context: 0x1.
[INFO] [GL]: Found GL context: videocore
[INFO] [GL]: Detecting screen resolution 1920x1080.
[INFO] [EGL]: eglSwapInterval(1)
[INFO] [GL]: Vendor: Broadcom, Renderer: VideoCore IV HW.
[INFO] [GL]: Version: OpenGL ES 2.0.
[INFO] Querying EGL extension: KHR_image => exists
[WARN] [GL]: GLES implementation does not have BGRA8888 extension.
32-bit path will require conversion.
[INFO] [GL]: Using resolution 1920x1080
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] Shader log: Compiled
[INFO] [GLSL]: Linking GLSL program.
[INFO] Resetting shader to defaults ...
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Video]: Graphics driver did not initialize an input driver. Attempting to pick a suitable driver.
[INFO] [udev]: Keyboard #0 (/dev/input/event1).
[INFO] [udev]: Keyboard #1 (/dev/input/mouse0).
[ERROR] [udev] Failed to open device: /dev/input/event1 (Invalid argument).
[INFO] [udev]: Mouse #0 (/dev/input/mouse0).
[INFO] [udev]: Plugged pad: Microntek USB Joystick (121:6) on port #0.
[INFO] [udev]: Pad #0 (/dev/input/event0) supports 0 force feedback effects.
[INFO] [Autoconf]: 2 profiles found.
[INFO] [autoconf]: selected configuration: /home/pi/.config/retroarch/autoconfig/Microntek USB Joystick .cfg
[INFO] [Joypad]: Found joypad driver: "udev".
[WARN] [udev]: Full-screen pointer won't be available.
[INFO] [Video]: Found display server: null
[INFO] Found shader "/home/pi/.config/retroarch/shaders/2xsal-level2-crt.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/2xsal.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/2xScaleHQ.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/barrel-distortion.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/barrel-distortion_lanczos4.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/barrel-distortion_phosphor.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/barrel-distortion_snes.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/Brighter-with_Contrast.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/bsnes_gamma_ramp.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/crt-pi-curvature-vertical.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/crt-pi-curvature.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/crt-pi-vertical.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/crt-pi.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/gameboy-screen-grid.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/gameboy.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/gameboy2.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/gba-color.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2x&lcd3x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2x2.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2x_lcd3x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2x_phosphor.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2xwaterpaint.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq2xwaterpaintscanline.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq4x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/hq4x_lcd3x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/nds-color.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/nds.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/nedi.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/palm-color.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/phosphor.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/psp-color.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/sharp-bilinear-2x-prescale.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/sharp-bilinear-scanlines.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/sharp-bilinear-simple.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes2.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_hq2x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_hq2xwaterpaint.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_hq2xwaterpainthicontrast.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_hq2xwaterpaintscanline.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_lcd3x.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_phosphor.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_scanline.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/snes_waterpaint.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/stock.glsl"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/super-2xsai.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/super-eagle.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/vba-color.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/xbr-lv1-noblend.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/zfast_crt_curve.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/zfast_crt_curve_vertical.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/zfast_crt_standard.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/zfast_crt_standard_vertical.glslp"
[INFO] Found shader "/home/pi/.config/retroarch/shaders/zfast_lcd_standard.glslp"
[INFO] ALSA: Using signed 16-bit format.
[INFO] ALSA: Period size: 384 frames
[INFO] ALSA: Buffer size: 1536 frames
[INFO] [LED]: LED driver = 'null' 0x1f98cc
[INFO] Loading history file: [/opt/retropie/configs/arcadia/content_history.lpl].
[INFO] Loading history file: [/opt/retropie/configs/arcadia/content_favorites.lpl].
[INFO] Loading history file: [/opt/retropie/configs/arcadia/content_music_history.lpl].
[INFO] Loading history file: [/opt/retropie/configs/arcadia/content_image_history.lpl].
[libretro INFO] Starting game:/home/pi/RetroPie/roms/arcadia/hotmario.chd
[libretro WARN] Driver hotmario not found -1
[libretro ERROR] Driver not found hotmario
[libretro INFO] Game name: arcadia, Game description: Arcadia 2001
[libretro INFO] Creating frontend for game: hotmario
[libretro INFO] Softlists: 1"hotmario" approximately matches the following
supported software items (best match first):/opt/retropie/supplementary/runcommand/runcommand.sh: riga 1008: 1163 Errore di segmentazione /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess2016/mess2016_libretro.so --config /opt/retropie/configs/arcadia/retroarch.cfg "/home/pi/RetroPie/roms/arcadia/hotmario.chd" --appendconfig /dev/shm/retroarch.cfg
-
Congrats, now you can play the worst Zelda games ever made (yes, supposedly worse than Zelda II...)
-
I do not like Zelda
I was interested in the game "the apprentice" and others ...I also tried with the cdimono1 folder, but the problem persists :(
[libretro INFO] Starting game:/home/pi/RetroPie/roms/cdimono1/hotmario.txt
[libretro WARN] Driver hotmario not found -1
[libretro ERROR] Driver not found hotmario
[libretro INFO] Game name: cdimono1, Game description: CD-i (Mono-I) (PAL)
[libretro INFO] Creating frontend for game: hotmario
[libretro INFO] Softlists: 1"hotmario" approximately matches the following
supported software items (best match first):/opt/retropie/supplementary/runcommand/runcommand.sh: riga 1008: 2577 Errore di segmentazione /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mess2016/mess2016_libretro.so --config /opt/retropie/configs/cdimono1/retroarch.cfg "/home/pi/RetroPie/roms/cdimono1/hotmario.txt" --appendconfig /dev/shm/retroarch.cfg
tnx :)
-
Here's a discovery I made that I was gonna put in my own lr-mess tutorial, but since that didn't really work out well I'm gonna put it here instead:
MESS works differently from a standard emulator, in that it can only load ROMs that are confirmed to be "authentic", instead of just taking any data you give it and reading it blindly. The way it checks this is by using a checksum located in a hash file. For example, let's say I wanted to load Breakout for the Atari 2600 in MESS. In the hash file for the Atari 2600, Breakout's entry looks like this:
<software name="breakout"> <description>Breakout - Breakaway IV</description> <year>1978</year> <publisher>Atari</publisher> <part name="cart" interface="a2600_cart"> <dataarea name="rom" size="2048"> <rom name="breakout - breakaway iv (paddle) (1978) (atari, brad stewart - sears) (cx2622 - 6-99813, 49-75107).bin" size="2048" crc="3037638c" sha1="8d473b87b70e26890268e6c417c0bb7f01e402eb" offset="0" /> </dataarea> </part> </software>
The important parts of this entry are the
<rom>
tag and<software name>
tag. The former is what's used for the ZIP's file name, and the latter is what's used for both the ROM dump and the checksum MESS checks.Because of this, the only valid ROM that MESS will accept is a ZIP file named
breakout.zip
, containing a file namedbreakout - breakaway iv (paddle) (1978) (atari, brad stewart - sears) (cx2622 - 6-99813, 49-75107).bin
with the CRC-sum of3037638c
and a SHA1-sum of8d473b87b70e26890268e6c417c0bb7f01e402eb
.What this means is that you can simply check the hash files to see if you have valid ROM files, as well as check whether or not a system can run on lr-mess. And if you don't? Well, you can just modify the hash files to match your file, or if the system isn't supported, drag in a new XML from a newer build of MAME/MESS.
I discovered this when I was trying to get the FM Towns version of Marble Madness to run on lr-mess, only to find that Marble Madness wasn't included in the
fmtowns_cd.xml
file, and that adding it allowed the game to load.The hash files are located in
/home/pi/RetroPie/BIOS/mame/hash
if you want/need to modify them. ;) -
I created a file hotmario.zip with inside hotel mario (1994) (philips) (eu) [!]. chd
corresponding sha1
same error :( -
@hermit Hrm, I'm looking at your logs and you appear to be using lr-mess2016. Have you tried with just plain-jane lr-mess instead? lr-mess2016 always breaks when I try to use it.
-
it does not allow me to install. tells me that I miss the gcc 5.0
-
@hermit The start of the topic specifically mentions Raspbian Stretch - so if you haven't upgraded to it (using the 4.4 RetroPie image), you won't be able to install
lr-mess
. -
I used the function to update everything, but nothing has changed
do I have to use any particular function? -
@hermit said in [Tutorial] CD-I Emulation in RetroPie via lr-mess (warning: slowdown, especially during FMV, but surprisingly playable):
do I have to use any particular function?
No, as I said, you need the new image based on Raspbian Stretch, updating from RetroPie-Setup will not get you the new OS. Or, if you feel adventurous, you could use
apt-get
to upgrade from Jessie to Stretch - https://retropie.org.uk/forum/topic/16145/retropie-upgrading-raspbian-jessie-to-stretch. Note that the recommended way is to install the image from scratchFor RPI users it is recommended to start from a fresh image with this update. It is possible to upgrade the system from Jessie to Stretch but there have been reports of issues by some people when doing so.
(from https://retropie.org.uk/2018/04/retropie-4-4-is-released)
-
the update was not successful :(
I'll try with a new image. I will update you :)
thanks for everyone for the help -
@victimrlsh There are some good games on CD-i. Lords of the Rising Sun was one of my favorites. The Space Ace port was probably the best I've seen, other than the new PC ones. Ceasar's World of Boxing was also pretty good. Burn Cycle is another one that saw a lot of play time. And I still remember my whole family playing The 7th Guest together. Those were good times.
I remember Chaos Control, Escape From Cyber City, and Mad Dog McCree being pretty fun. Although Escape from Cyber City was impossibly hard. The zelda games aren't the best, but they're not complete garbage either. They did something different, and I enjoyed them well enough as a kid. If you go in with a super negative opinion, the game may even surprise you. -
@liquiddivide My favorite laser disc game was Cliff Hanger, which was pieced together from the Lupin III movie The Castle of Cagliostro. I highly recommend both the movie and the game.
-
@victimrlsh I'll have to give that one a try. Never heard of it.
-
@liquiddivide Just make sure your suspension of disbelief is high enough to surpass the laws of physics...
-
@db666 what you posted for windows is same result as posted in the guide and works under ES and emulators.cfg
:-)
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.