CD-I for Dummy's Tutorial with OGST XU4

Very powerful gaming console solution based on Debian
Post Reply
emptyinside
Posts: 13
Joined: Sat May 09, 2020 11:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 7 times
Been thanked: 1 time
Contact:

CD-I for Dummy's Tutorial with OGST XU4

Post by emptyinside »

For all the other completionists, here's a quick-ish explanation of how I got Philip's CD-I to run on Odroid XU4 with OGST image using CHD files. You can do the same thing to get Neo Geo CD running too but I have problems (see bottom). There's a lot of posts explaining how to do this on a ton of systems/OS's and I pieced this all together from others' methods. I can't throw each of them a bone so thanks to all of them. The emulator that seemed to work best for me so far is mess2014 but mame (no year) will work too. Mame just cuts off 1/5 at the top of the screen and prints a jacked up looking “CDI” and Mess is full screen. May be changeable?
For CD-I, CHD files must be in your roms folder, in a folder called cdimono1 with BIOS file cdimono1.zip as well (There are at least 2 diff versions of that BIOS and the one that's 468.7kb is the one I got to work). The folder name and BIOS file name match for a reason so double check.
Now to the somewhat convoluted part...you must get a cdi.xml hash file, create dummy zip files with the MAME style names used in said .xml, and change the names of your CHD's to fit what is in the .xml as well. I can hear you about to say “Screw that” but: There is an archive page with CHD files already named correctly (Hint MESS 0.149) and a page with .zips of premade dummy files and .xml hash file together (Hint cdii.blogspot) so it ain't really that bad if you download all of those files.
Otherwise...for example, the cdi.xml hash file is set up like this for each game:

<software name="jokers">
<!--
Origin: TOSEC
<rom name="Joker's Wild!, The (1994)(Philips)(US)[!].iso" size="647388000" crc="633d2fec" md5="40c77801cbfba93d42d4bc00fec79a68"/>
<rom name="Joker's Wild!, The (1994)(Philips)(US)[!].cue" size="130" crc="5082d284" md5="7581ed503c07f1121eedb41667ff2f21"/>
-->
<description>The Joker's Wild! (USA)</description>
<year>1994</year>
<publisher>Philips</publisher>
<part name="cdrom" interface="cdi_cdrom">
<diskarea name="cdrom">
<disk name="joker's wild!, the (1994)(philips)(us)[!]" sha1="a5609953241b49d64bfdfd671edfdffc93b4b3dd"/>
</diskarea>
</part>
</software>

The SOFTWARE NAME and DISK NAME are all that really matter here. If you found the premade dummy zip file pack referanced above, skip to the next paragraph. To create your own dummy zips, right click in your cdimono1 folder, select create document, select empty and, in this example, name it jokers.zip as noted by the software name entry above.
If you downloaded the correctly named CHD game files stated above, skip to the next paragraph (remember that all the CHDs have to be in the cdimono1 folder with no subfolders). Otherwise, change the name of your CHD game file to what it says in the DISK NAME entry. This one would be “joker's wild!, the (1994)(philips)(us)[!].chd” which is the same format as the iso and cue but it seems the use of capitol letters creates problems in the emulator.
Now that everything is named the way it has to be, create a folder called hash in your “ROMs/mess2014” folder (or “ROMS/mame” for mame). If you've never ran mess before you won't have that folder in there already so create that too obviously. Place the cdi.xml file you downloaded earlier in the new hash folder.
For instance: /home/odroid/ROMS/mess2014/hash/cdi.xml
Now you may be able to launch using RA or ES (after changing your cfg file to tell it to run CDI Roms with mess2014) but running via terminal is best to see what may be going wrong (good idea for any emulator you're struggling with). It will tell you at the end of the script if your BIOS is incorrect by stating “cd200.rom NOT FOUND (tried in cdimono1 cdimono1)”. It'll pop up errors for cdic.bin and slave.bin but that's normal as there are currently no versions availible. Thanks to Meveric's shell script, all you have to type into terminal is:

Code: Select all

libretro-xbmc mess2014 “/home/odroid/ROMS/cdimono1/jokers.zip”
It is calling for the dummy zip file which will lead it to your CHD via the xml hash file. It seems to hang on a turquoise screen but the CDI screen will come up soon enough. Controllers will not work and your keyboard up and down arrows will probably be all that does do anything, so hit TAB which will get you into simple Mess/Mame options. Choose “Input (For this machine)” to set up controls (will have to for each game you run the first time unless you wanna screw up all arcade controller settings). I set it this way for my wired Xbox 360 controller but I'd imagine it's the same for any:
Mouse button 1: A
Mouse button 2: B
Mouse X Analog: n/a
Mouse X Analog Dec: Left
Mouse X Analog Inc: Right
Mouse Y Analog: n/a
Mouse Y Analog Dec: Up
Mouse Y Analog Inc: Down
Select “return to machine” and you're ready to rock. There are some games that just don't work so make sure you're trying to play a compatible title before you freak out. There is, aparently, a hard to emulate video chip so games like Creature Shock won't work (luckily it's on several other systems). I am sad the Monty Python titles won't work until someone smarter than me creates an actual emulator for it, though I don't see that happening. I was about to pull my hair out working on this, as I'm sure some of you have and gave up. Enjoy this strange little machine and it's odd array of games!
This is litteraly all I know on the subject so if you're still having problems, recheck your work first. If you're still stuck, go ahead and post here. I won't be able to help but maybe someone will have an answer for you. Again, I can't thank Meveric enough for the work he's done and continues to do, on the forum answering dumb questions from noobs like me. Much appreciated!
* Neo Geo CD is best played by following the advice of the post below. :lol:
Last edited by emptyinside on Wed Jun 10, 2020 7:55 am, edited 1 time in total.

User avatar
meveric
Posts: 11119
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: X2, U2, U3, XU-Lite, XU3, XU3-Lite, C1, XU4, C2, C1+, XU4Q, HC1, N1, Go, H2 (N4100), N2, H2 (J4105), GoA, C4
Has thanked: 43 times
Been thanked: 387 times
Contact:

Re: CD-I for Dummy's Tutorial...and maybe Neo Geo CD

Post by meveric »

Neo Geo CD has it's own libretro core which is quite easy to compile and should work rather easily on the XU4.
It's the easiest way to get Neo Geo CD to work on any system.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.

emptyinside
Posts: 13
Joined: Sat May 09, 2020 11:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 7 times
Been thanked: 1 time
Contact:

Re: CD-I for Dummy's Tutorial...and maybe Neo Geo CD

Post by emptyinside »

After screwing stuff up before I've tried not to experiment with things that aren't included in your repo but I will give it a shot. I've read about FBneo and other new cores but didn't know if they'd work with Jessie. Now I'm down to figuring out Daphne but that's the least of my worries. Thanks!

User avatar
meveric
Posts: 11119
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: X2, U2, U3, XU-Lite, XU3, XU3-Lite, C1, XU4, C2, C1+, XU4Q, HC1, N1, Go, H2 (N4100), N2, H2 (J4105), GoA, C4
Has thanked: 43 times
Been thanked: 387 times
Contact:

Re: CD-I for Dummy's Tutorial with OGST XU4

Post by meveric »

yeah I haven't ported all new emulators back to Jessie yet.. i concentrated on newer OSes at the moment.. but I will updated Jessie cores again as well in the future and add new ones as well.
These users thanked the author meveric for the post:
emptyinside (Wed Jun 10, 2020 9:27 am)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.

emptyinside
Posts: 13
Joined: Sat May 09, 2020 11:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 7 times
Been thanked: 1 time
Contact:

Re: CD-I for Dummy's Tutorial with OGST XU4

Post by emptyinside »

I followed your advice and compiled and built libneocd after getting depends up to par. There is no "Info" folder in the retroarch or libretro folders to place the neocd .info file tho. I've created one in "usr/local/share/retroarch" and "usr/share/libretro" but it's still unable to find it and in turn the bios files. I've checked their SHA1 and know they are good and have created a neocd folder containing them in the previously stated locations. The README file is written for a regular retroarch install so it doesn't fit OGST. Any ideas...besides you having to do more work backporting? :lol: :D

Resulting output:
odroid@gamestation-turbo:~$ libretro-xbmc libneocd "/home/odroid/ROMS/neocdz/Breakers (World).chd"
/usr/local/bin/libretro-xbmc: 12: [: xlibneocd: unexpected operator
/usr/local/bin/libretro-xbmc: 18: [: xlibneocd: unexpected operator
[INFO] RetroArch 1.7.3 (Git b2ceb50)
[INFO] Redirecting save file to "/home/odroid/ROMS/neocdz/Breakers (World).srm".
[INFO] Redirecting savestate to "/home/odroid/ROMS/neocdz/Breakers (World).state".
[INFO] === Build =======================================
Capabilities: NEON VFPv3 VFPv4
Built: Aug 20 2018
[INFO] Version: 1.7.3
[INFO] Git: b2ceb50
[INFO] =================================================
[INFO] Loading dynamic libretro core from: "/usr/local/share/retroarch/cores/libneocd_libretro.so"
[INFO] Shaders: preset directory: /usr/share/libretro/shaders/presets
[INFO] Shaders: no game-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/Breakers (World).cgp.
[INFO] Shaders: no game-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/Breakers (World).glslp.
[INFO] Shaders: no parent-dir-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/neocdz.cgp.
[INFO] Shaders: no parent-dir-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/neocdz.glslp.
[INFO] Shaders: no core-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/NeoCD.cgp.
[INFO] Shaders: no core-specific preset found at /usr/share/libretro/shaders/presets/NeoCD/NeoCD.glslp.
[INFO] Redirecting save file to "/home/odroid/ROMS/neocdz/Breakers (World).srm".
[INFO] Redirecting savestate to "/home/odroid/ROMS/neocdz/Breakers (World).state".
[INFO] Environ GET_LOG_INTERFACE.
[INFO] Environ SYSTEM_DIRECTORY: "/home/odroid/ROMS".
[libretro INFO] Using front end provided VFS routines
[INFO] Environ SET_VARIABLES.
[INFO] Content loading skipped. Implementation will load it on its own.
[INFO] Environ GET_VARIABLE neocd_per_content_saves:
[INFO] Off
[INFO] Environ SET_INPUT_DESCRIPTORS:
[INFO] RetroPad, User 1, Button "B (bottom)" => "A"
[INFO] RetroPad, User 1, Button "Y (left)" => "C"
[INFO] RetroPad, User 1, Button "Select" => "Select"
[INFO] RetroPad, User 1, Button "Start" => "Start"
[INFO] RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up"
[INFO] RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down"
[INFO] RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left"
[INFO] RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right"
[INFO] RetroPad, User 1, Button "A (right)" => "B"
[INFO] RetroPad, User 1, Button "X (up)" => "D"
[INFO] RetroPad, User 2, Button "B (bottom)" => "A"
[INFO] RetroPad, User 2, Button "Y (left)" => "C"
[INFO] RetroPad, User 2, Button "Select" => "Select"
[INFO] RetroPad, User 2, Button "Start" => "Start"
[INFO] RetroPad, User 2, Button "D-Pad Up" => "D-Pad Up"
[INFO] RetroPad, User 2, Button "D-Pad Down" => "D-Pad Down"
[INFO] RetroPad, User 2, Button "D-Pad Left" => "D-Pad Left"
[INFO] RetroPad, User 2, Button "D-Pad Right" => "D-Pad Right"
[INFO] RetroPad, User 2, Button "A (right)" => "B"
[INFO] RetroPad, User 2, Button "X (up)" => "D"
[INFO] Environ SET_PIXEL_FORMAT: RGB565.
[libretro ERROR] No BIOS detected!
[ERROR] Failed to load content.
[libretro INFO] NeoCD deinitializing
[INFO] Saved core options file to "/home/odroid/.config/retroarch/retroarch-core-options.cfg"
[ERROR] This core requires a content file, could not load content.

User avatar
meveric
Posts: 11119
Joined: Mon Feb 25, 2013 2:41 pm
languages_spoken: german, english
ODROIDs: X2, U2, U3, XU-Lite, XU3, XU3-Lite, C1, XU4, C2, C1+, XU4Q, HC1, N1, Go, H2 (N4100), N2, H2 (J4105), GoA, C4
Has thanked: 43 times
Been thanked: 387 times
Contact:

Re: CD-I for Dummy's Tutorial with OGST XU4

Post by meveric »

emptyinside wrote:
Thu Jun 18, 2020 12:34 am
I followed your advice and compiled and built libneocd after getting depends up to par.
I'm not sure where you got "libneocd" from.
I was referring to neocd libretro core for retraorch: https://github.com/libretro/neocd_libretro
It normally creates a neocd_libretro.so not a libneocd_libretro.so so I guess you used a different source?
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
There is no "Info" folder in the retroarch or libretro folders to place the neocd .info file tho.
The info folder should be under /usr/share/libretro/info
BUT you don't need this at all, the info file is just for people to look up what you need or what the core supports.
It is in no way required to run the core. As it says in the README it's just for "cosmetics".
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
I've created one in "usr/local/share/retroarch" and "usr/share/libretro" but it's still unable to find it and in turn the bios files.
The "system folder" (where all the BIOSes go into) is /home/odroid/ROMS/
For neocd there is a slight difference to other systems where you need to create a folder called "neocd" in the system folder (/home/odroid/ROMS/neocd/) and put the BIOS files inside.
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
The README file is written for a regular retroarch install so it doesn't fit OGST.
Actually it does, it refers to the "system folder", and the system folder is /home/odroid/ROMS, so if you place the folder and files there it works, just as the README says :)
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
Resulting output:
odroid@gamestation-turbo:~$ libretro-xbmc libneocd "/home/odroid/ROMS/neocdz/Breakers (World).chd"
[INFO] Loading dynamic libretro core from: "/usr/local/share/retroarch/cores/libneocd_libretro.so"
funny name for a libretro core.. normally after building it it should have a name neocd_libretro.so :D
That's the first time I see it like that but apparently it works nonetheless.
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
[INFO] Environ SYSTEM_DIRECTORY: "/home/odroid/ROMS".
Here it actually tells you what the system folder is, which is where it looks for the BIOS files :)
emptyinside wrote:
Thu Jun 18, 2020 12:34 am
[libretro ERROR] No BIOS detected!
[ERROR] Failed to load content.
[libretro INFO] NeoCD deinitializing
[INFO] Saved core options file to "/home/odroid/.config/retroarch/retroarch-core-options.cfg"
[ERROR] This core requires a content file, could not load content.
So yes, no BIOS, no content, if you place the bios files in the correct folder it should work.


Overall I think you are on a good track.. everything seems to be fine, except for the BIOS files, so copying the files to /home/odroid/ROMS/neocd should be all that is required.
The funny name is probably cause you got it from a different source, but I think it should work nonetheless.
I currently building a neocd libretro core and test if it's working on OGST.
If it works fine I upload it to my repository and you can use it with apt-get install libretro-neocd

Edit:
ok got it working, I will upload the core in a few minutes so you can install it if you want, or use the one you have :)
checked the performance, it's quite good, I get 220~250 FPS in game (Fatal Fury 3) so no worries about performance issues.
viewtopic.php?p=296550#p296550
These users thanked the author meveric for the post (total 2):
odroid (Thu Jun 18, 2020 8:10 am) • emptyinside (Thu Jun 18, 2020 10:36 am)
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.

emptyinside
Posts: 13
Joined: Sat May 09, 2020 11:43 am
languages_spoken: english
ODROIDs: XU4
Has thanked: 7 times
Been thanked: 1 time
Contact:

Re: CD-I for Dummy's Tutorial with OGST XU4

Post by emptyinside »

I was referring to neocd libretro core for retraorch: https://github.com/libretro/neocd_libretro
Yup, that's the core I used. Thought the naming was odd myself but that's what it created. I should've paid attention to the "SYSTEM_DIRECTORY" part. That's a big ol' hint. My bad. Just got caught up on the BIOS directory pointing in the .info file and thought I could redirect with that. I have multiple neogeo/cd zip files in my ROMS folder but I'll change over to the files I SHA1 checked to be sure. It was a great learning experience to compile and build myself to understand the mechanics a bit better. Thanks again for the direction and info!
EDIT: Created a folder in ROMS named neocd and placed my checked BIOS files in there and it works great. Regardless of the actual build name of the core, my retro gaming OCD is appeased at the moment. Created a new logo.mp4 for the LCD and It's good to go. Freakin' sweet!
These users thanked the author emptyinside for the post:
meveric (Thu Jun 18, 2020 1:38 pm)

Post Reply

Return to “OGST-XU4”

Who is online

Users browsing this forum: No registered users and 0 guests