OGG Support on LibRetro

Issue #372 invalid
Former user created an issue

Original issue 372 created by zombie_ryushu@yahoo.com on 2014-01-28T03:09:01.000Z:

I'm trying to get OGG Vorbis support on libretro. It doesn't seem to be supported, only under the Wii, can OGG support be added to the libretro build?

Comments (13)

  1. Former user Account Deleted

    Comment # 1 originally posted by ekeeke31 on 2014-01-28T07:47:12.000Z:

    It is just a matter of compiling the libretro core with -DUSE_LIBTREMOR (and eventually -DDISABLE_MANY_OGG_OPEN_FILES if the system on which retroarch runs is low on memory), so no, it's already supported.

    I do not maintain the Makefile for libretro, it's more something that has to be managed by retroarch team, since i cannot possibly know (and test) all supported platforms for ogg support.

  2. Former user Account Deleted

    Comment # 2 originally posted by zombie_ryushu@yahoo.com on 2014-01-28T13:34:54.000Z:

    That library doesn't seem to be availible on ordinary Linux.

  3. Former user Account Deleted

    Comment # 4 originally posted by ekeeke31 on 2014-01-28T19:37:22.000Z:

    libtremor sourcecode is part of genesis plus gx core, you need to tell libretro Makefile to compile the C files if it doesn't already off course

    files are under core/tremor

  4. Former user Account Deleted

    Comment # 5 originally posted by zombie_ryushu@yahoo.com on 2014-01-29T00:42:47.000Z:

    It's not linking to libvorbisfile.so.3
    vorbisfile.h is not an include.

    core/cd_hw/cdd.o: In function `cdd_context_load':
    cdd.c:(.text+0x208): undefined reference to `ov_pcm_seek'
    core/cd_hw/cdd.o: In function `cdd_unload':
    cdd.c:(.text+0x25c): undefined reference to `ov_clear'
    core/cd_hw/cdd.o: In function `cdd_load':
    cdd.c:(.text+0xa87): undefined reference to `ov_pcm_total'
    cdd.c:(.text+0xceb): undefined reference to `ov_open'
    cdd.c:(.text+0xd14): undefined reference to `ov_info'
    cdd.c:(.text+0xd4c): undefined reference to `ov_clear'
    cdd.c:(.text+0x114e): undefined reference to `ov_open'
    cdd.c:(.text+0x1177): undefined reference to `ov_info'
    cdd.c:(.text+0x11d9): undefined reference to `ov_pcm_total'
    cdd.c:(.text+0x1234): undefined reference to `ov_pcm_seek'
    cdd.c:(.text+0x125a): undefined reference to `ov_read'
    cdd.c:(.text+0x1278): undefined reference to `ov_pcm_seek'
    cdd.c:(.text+0x1382): undefined reference to `ov_clear'
    cdd.c:(.text+0x13a8): undefined reference to `ov_clear'
    cdd.c:(.text+0x184d): undefined reference to `ov_clear'
    core/cd_hw/cdd.o: In function `cdd_read_audio':
    cdd.c:(.text+0x1b4e): undefined reference to `ov_read'
    core/cd_hw/cdd.o: In function `cdd_process':
    cdd.c:(.text+0x2b68): undefined reference to `ov_pcm_seek'
    cdd.c:(.text+0x2b90): undefined reference to `ov_pcm_seek'
    core/cd_hw/cdd.o: In function `cdd_update':
    cdd.c:(.text+0x20f2): undefined reference to `ov_pcm_seek'
    cdd.c:(.text+0x21bd): undefined reference to `ov_pcm_seek'
    collect2: ld returned 1 exit status
    make: *** [genesis_plus_gx_libretro.so] Error 1

  5. Former user Account Deleted

    Comment # 6 originally posted by ekeeke31 on 2014-01-29T07:24:15.000Z:

    there is no .so file, .c files in /core/tremor/ are directly compiled as object files (.o) with the rest of the code, providing you added the proper informationon how to do so in the makefile

    it's not really complicated, you have to have basic understanding how makefiles work though, then simply copy what is done to compile other files for these ones

    in this case, you probably forgot to add core/tremor/ to the compiler include paths in the makefile (normally done using -I compiler option)

  6. Former user Account Deleted

    Comment # 7 originally posted by ekeeke31 on 2014-02-16T09:17:28.000Z:

    issue #373 has been merged into this issue.

  7. Former user Account Deleted

    Comment # 8 originally posted by zombie_ryushu@yahoo.com on 2014-02-16T16:19:16.000Z:

    I tried many many times, to compile it. (I'm only using vanilla x86_64 Linux, nothing unusual.) It genuinely made little difference. I always got either an error, or when it DID Compile, the ogg music made a horrible static noise consistent with a WAVE player trying to play OGG. That's why I want an upstream modification to the libretro make file.

  8. Former user Account Deleted

    Comment # 9 originally posted by ekeeke31 on 2014-02-18T12:54:42.000Z:

    Here is a modified Makefile which force OGG support for libretro on all platforms.

    This is untested but I see no reasons why it should not work, additions were very minimal.

    And I repeat, if you want an upstream modification to the libretro make file, you will have to ask to libretro maintaners as OGG support is an OPTION or Genesis Plus GX core and should be enabled on a plaform basis.

  9. Former user Account Deleted

    Comment # 10 originally posted by zombie_ryushu@yahoo.com on 2014-02-18T16:11:42.000Z:

    Thank you.

  10. Former user Account Deleted

    Comment # 11 originally posted by zombie_ryushu@yahoo.com on 2014-02-18T16:32:18.000Z:

    $ make -f Makefile.libretro.1
    make: *** No rule to make target `/genesis.o', needed by `genesis_plus_gx_libretro.so'. Stop.

  11. Former user Account Deleted

    Comment # 12 originally posted by zombie_ryushu@yahoo.com on 2014-02-18T16:52:58.000Z:

    After re-diffing the patch, at least preliminarily, I can tell you the patch works.

  12. Former user Account Deleted

    Comment # 13 originally posted by ekeeke31 on 2014-02-18T17:00:33.000Z:

    Indeed, I accidentally inserted a whitespace where GENPLUS_SRC_DIR is defined.
    Here is a fixed Makefile in case anyone else is interested.

  13. Former user Account Deleted

    Comment # 14 originally posted by zombie_ryushu@yahoo.com on 2014-02-18T18:21:16.000Z:

    I'll recompile shortly and give you the results. I am very grateful for your assistance. Are you going to commit this to SVN?

  14. Log in to comment