uraran / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

OGG Support on LibRetro #372

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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?

Original issue reported on code.google.com by zombie_r...@yahoo.com on 28 Jan 2014 at 3:09

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 28 Jan 2014 at 7:47

GoogleCodeExporter commented 9 years ago
That library doesn't seem to be availible on ordinary Linux. 

Original comment by zombie_r...@yahoo.com on 28 Jan 2014 at 1:34

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
 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

Original comment by ekeeke31@gmail.com on 28 Jan 2014 at 7:37

GoogleCodeExporter commented 9 years ago
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

Original comment by zombie_r...@yahoo.com on 29 Jan 2014 at 12:42

GoogleCodeExporter commented 9 years ago
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)

Original comment by ekeeke31@gmail.com on 29 Jan 2014 at 7:24

GoogleCodeExporter commented 9 years ago
Issue 373 has been merged into this issue.

Original comment by ekeeke31@gmail.com on 16 Feb 2014 at 9:17

GoogleCodeExporter commented 9 years ago
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. 

Original comment by zombie_r...@yahoo.com on 16 Feb 2014 at 4:19

GoogleCodeExporter commented 9 years ago
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.

Original comment by ekeeke31@gmail.com on 18 Feb 2014 at 12:54

GoogleCodeExporter commented 9 years ago
Thank you.

Original comment by zombie_r...@yahoo.com on 18 Feb 2014 at 4:11

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

Original comment by zombie_r...@yahoo.com on 18 Feb 2014 at 4:32

GoogleCodeExporter commented 9 years ago
After re-diffing the patch, at least preliminarily, I can tell you the patch 
works.

Original comment by zombie_r...@yahoo.com on 18 Feb 2014 at 4:52

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

Original comment by ekeeke31@gmail.com on 18 Feb 2014 at 5:00

Attachments:

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

Original comment by zombie_r...@yahoo.com on 18 Feb 2014 at 6:21