Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

(Request) Add Libretro Neogeo CD Emulator



  • https://github.com/fabrice-martinez/neocd_libretro
    Benefits over the fba core:
    CD Speed hack and skipping cd loading. CHD support is a WIP.
    Thanks.



  • The emulator runs full speed on a stock RPi3B, and I even had the zfast CRT standard shader running with it. The emulation hacks are wonderful as well. Not enough processing power overhead to run RetroArch's RunAhead latency hack though.

    No idea if anyone wants this, but I threw together this manual install for NeoCD. It was compiled on my RPi3B, but I guess it'll work on other Pi versions. if there are any problems, don't hesitate to tell me.

    FILE DELETED

    Edit: Updated version with the SS3 fix. https://drive.google.com/file/d/1VxemRLXoQxjtBijyYdYSoX2XSgukzqgm/view?usp=sharing



  • @MajorDangerNine Thanks! I asked the dev for a build but he seems busy atm. I would love it to be officially added to retropie for updates. I'm really looking forward to the chd support.



  • @Darksavior Welcome. Hope it works correctly for you.

    Yeah, CHD support would be nice. I'd go down to 8.5GB from the current 17.1GB my Neo Geo CD collection is taking up.



  • @MajorDangerNine The few I tried worked but when trying Samurai Shodown 3 it freezes the whole pi when the first match starts. I rebooted and re-transferred the game and it still happens. I don't want to open an issue about it on github until the dev can provide his own build.

    Also, some corrections from your readme. There's more games with arranged soundtracks. At least kof94,95, 96. Maybe more.

    The required bios files are only two. ng-lo.rom(000-lo.lo) and then choose ONE of the others. I chose the latest which is neocd_z.rom (neocd.bin)

    I tried to decompress a chd set I already have with qt chdman gui to bin\cue but then the wrong tracks are played.
    Either way, I'm really enjoying the near instant load times. Too bad games like Kof96 can't have the music playing without interruption of the load times.



  • @Darksavior

    The few I tried worked but when trying Samurai Shodown 3 it freezes the whole pi when the first match starts. I rebooted and re-transferred the game and it still happens. I don't want to open an issue about it on github until the dev can provide his own build.

    I'll give that game a look.

    Also, some corrections from your readme. There's more games with arranged soundtracks. At least kof94,95, 96. Maybe more.

    Is that so? Well, database was wrong then.

    The required bios files are only two. ng-lo.rom(000-lo.lo) and then choose ONE of the others. I chose the latest which is neocd_z.rom (neocd.bin)

    Eh, I like choices in case of problems. Probably not going to have issues using the latest BIOS though.

    I tried to decompress a chd set I already have with qt chdman gui to bin\cue but then the wrong tracks are played.

    Really now? I haven't checked things in detail. Any game you recommend so that I can hear this problem?

    Either way, I'm really enjoying the near instant load times. Too bad games like Kof96 can't have the music playing without interruption of the load times.

    Yeah, it's nice. I typically just use the fast forward function on load screens when playing PSX.

    Oh, I'll have to give that game a look as well to see that behavior.



  • @MajorDangerNine I converted Last Blade 2 from chd to bin\cueand the tracks were all over the place. I noticed it from the character select screen and the first match. It might be the qt chdman converter I'm using. I gave up and re-downloaded.

    Update: I tested ~50 games in img\cue and all work except for Samurai Shodown 3. I downloaded the game from another source in iso\wav\cue but got the same results.



  • @Darksavior

    Update: I tested ~50 games in img\cue and all work except for Samurai Shodown 3. I downloaded the game from another source in iso\wav\cue but got the same results.

    Yeah, Samurai Shodown 3 also freezes RetroArch on my Pi as well. Checked NeoCD on the PC and it works fine with the same ROM, BIOS, and same Core Options. On the Pi, the CPU is being maxed out when it freezes.

    I converted Last Blade 2 from chd to bin\cueand the tracks were all over the place. I noticed it from the character select screen and the first match. It might be the qt chdman converter I'm using. I gave up and re-downloaded.

    Ah, I see now. Same behavior using the latest CHDMAN. Also happens on the PC.



  • I would love to see Neogeo CD officially added onto Retropie

    The ability to play Neogeo games with awesome CD quality soundtracks, and no loading is an absolute godsend to be honest.

    Please add onto Retropie



  • I compiled the mame2003-plus core and got a "lr-fbalpha-neocd" core? (and the mame2003-plus core of course)

    What is that and how do you use it? How does it compare to this core?



  • @akafox That is unrelated to your install of mame2003-plus and has been part of RetroPie for some time now.

    Regardless, fbalpha-neocd is pretty good to my knowledge. Just a different mode for FBA to run in. Doesn't have the emulation hacks that NeoCD does, but other that that it is perfectly serviceable now that the NeoCD developer fixed FBA's lack of CDA playback (might need to update from source).

    Now if only either added CHD support. I'd even take the cue/bin format you get from decompressing the CHD being supported.



  • @MajorDangerNine Yeah I figured that. Just thought it was strange to get two cores...that and it being from a mame core getting a fba core.

    I looked for the core on the forum here and you are correct been round awhile now. Odd I never ran across it till now. However I am going to try this core first. I am compiling it as I type for x64..if it works ok then i can try it on the PI for pits and piggels.

    CHD support is coming i see..which is good the few I have are CHD format anyway. SO MUCH room is saved that way...waiting for chd support on rearmed (of which I think it is added..I don't remember) that is for another thread though...

    Anyway going to try this out. and thanks for the code! :D



  • Okay works GREAT on x86/x64 but I am having a bit of a problem compiling for the RPI3.

    I changed the CMakeLists.txt file as follows:

    from
    -march=x86-64 -mtune=generic
    to
    -march=armv7 -mtune=arm7

    but I get this error

    /home/pi/neocd_libretro-master/src/3rdparty/musashi/m68kopdm.cpp:1:0: error: target CPU does not support ARM mode

    so I am at a loss :/



  • @akafox I think I just commented:

    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=x86-64 -mtune=generic ${BASE_CXX_OPTIONS}")

    Uncommented:

    # set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native ${BASE_CXX_OPTIONS}")

    Then compiled it on my RPi3B.

    Got a working version that way, though I don't understand much of anything about compiling. Basic idea I have is it is some sort of auto-conversion type deal is going, which is most likely the reason Samurai Shodown 3 freezes on the Pi but doesn't on the PC as something isn't going right in the supposed auto-conversion when it comes to that game.



  • okay when I do that without changing the -march flag (I leave it "native" like you have ) I get this:

    Scanning dependencies of target neocd_libretro
    [ 2%] Building CXX object CMakeFiles/neocd_libretro.dir/src/3rdparty/musashi/m68kopdm.cpp.o
    *** Error in `/usr/bin/c++': double free or corruption (top): 0x0070c0a0 ***
    CMakeFiles/neocd_libretro.dir/build.make:62: recipe for target 'CMakeFiles/neocd_libretro.dir/src/3rdparty/musashi/m68kopdm.cpp.o' failed
    make[2]: *** [CMakeFiles/neocd_libretro.dir/src/3rdparty/musashi/m68kopdm.cpp.o] Aborted
    CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/neocd_libretro.dir/all' failed
    make[1]: *** [CMakeFiles/neocd_libretro.dir/all] Error 2
    Makefile:83: recipe for target 'all' failed
    make: *** [all] Error 2



  • @akafox Eh, I'm at a loss. Well, unless you are overclocking your Pi and haven't made sure it is stable.

    I just did my best to follow what was HERE and produced that one binary for the RPi3B that I posted near the beginning topic.

    Good luck. Hopefully the developer will add CHD support soon and polish whatever else needs polishing so that it can be made an official Libretro core.


  • Global Moderator

    @akafox -march=native is not supported by the gcc compiler on the Pi (hence the crash). You can take a look at the compilation flags used by the RetroPie-Setup script for various platforms here.



  • @MajorDangerNine It's not an official libretro core for legal reasons. https://github.com/fabrice-martinez/neocd_libretro/issues/1

    If you can figure out how to make samsho3 not freeze up, then please post an updated binary, thanks.



  • -- The C compiler identification is GNU 4.9.2
    -- The CXX compiler identification is GNU 4.9.2

    cmake -G "Unix Makefiles" passes no error

    make fails

    c++: error: unrecognized argument in option '-march=rpi3'
    c++: note: valid arguments to '-march=' are: armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5e armv5t armv5te armv6 armv6-m armv6j armv6k armv6s-m armv6t2 armv6z armv6zk armv7 armv7-a armv7-m armv7-r armv7e-m armv7ve armv8-a armv8-a+crc iwmmxt iwmmxt2 native
    CMakeFiles/neocd_libretro.dir/build.make:62: recipe for target 'CMakeFiles/neocd_libretro.dir/src/3rdparty/musashi/m68kopdm.cpp.o' failed
    -cut-

    when i use armv7 for -march= i get:

    /home/pi/neocd_libretro/src/3rdparty/musashi/m68kopdm.cpp:1:0: error: target CPU does not support ARM mode

    (This card is still raspian jessie)

    @mitu said in (Request) Add Libretro Neogeo CD Emulator:

    @akafox -march=native is not supported by the gcc compiler on the Pi (hence the crash). You can take a look at the compilation flags used by the RetroPie-Setup script for various platforms here.

    I am not using the retropie-set up script. I am just ssh in and compiling



  • I just compiled it on my own, yay. The default options @MajorDangerNine provided works but I also tried on my pi3b+:
    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=armv8-a+crc -mtune=cortex-a53 ${BASE_CXX_OPTIONS}")

    @akafox Maybe upgrade to stretch? My setup is always up-to date.
    -- The C compiler identification is GNU 6.3.0 -- The CXX compiler identification is GNU 6.3.0


Log in to reply
 

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.