libretro / parallel-n64

Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus.
309 stars 128 forks source link

Can't build parallel-n64 core on Odroid XU4 #720

Open Cee123 opened 3 years ago

Cee123 commented 3 years ago

For some reason, building this core not work on the Odroid XU4.

A screenshot of the error message 20210210_164437-20210210-165224716

bullghost commented 3 years ago

yes, seems build arm dynarec broken , i build for raspbeery pi4, also cause same issue

glide2gl/src/Glitch64/glitchmain.o ./glide2gl/src/Glitch64/glitch64_textures.o ./mupen64plus-video-angrylion/interface.o ./mupen64plus-video-angrylion/n64video.o ./libretro-common/glsym/glsym_gl.o ./libretro-common/glsym/rglgen.o -latomic -shared -Wl,--no-undefined -Wl,--version-script=./libretro/link.T -lpthread -lm -fPIC -lGL /usr/bin/ld: ./mupen64plus-core/src/r4300/r4300.o: in functionr4300_init': r4300.c:(.text+0x124): undefined reference to dyna_start' /usr/bin/ld: ./mupen64plus-core/src/r4300/r4300.o: in functionr4300_execute': r4300.c:(.text+0x270): undefined reference to dyna_start' collect2: error: ld returned 1 exit status make: *** [Makefile:1048: parallel_n64_libretro.so] Error 1 buld platform="armv"

bullghost commented 3 years ago

ok i found its working now i replace CPUFLAGS in generic ARM with : CPUFLAGS += -DNO_ASM -DARM -Darm -DARM_ASM -D__NEON_OPT -DNOSSE -DARM_FIX -latomic

i able compile to pass the dynaract issue, and i encounter this new issue : /usr/bin/ld: warning: size of symbolstop' changed from 4 in ./mupen64plus-core/src/r4300/r4300.o to 33554432 in ./mupen64plus-core/src/r4300/new_dynarec/arm/linkage_arm.o /usr/bin/ld: ./libretro-common/audio/resampler/drivers/sinc_resampler.o: in function resampler_sinc_process_neon': sinc_resampler.c:(.text+0x80c): undefined reference toprocess_sinc_neon_asm' /usr/bin/ld: ./libretro-common/audio/conversion/float_to_s16.o: in function convert_float_to_s16': float_to_s16.c:(.text+0x90): undefined reference toconvert_float_s16_asm' /usr/bin/ld: ./libretro-common/audio/conversion/s16_to_float.o: in function convert_s16_to_float': s16_to_float.c:(.text+0x1d0): undefined reference toconvert_s16_float_asm' collect2: error: ld returned 1 exit status make: *** [Makefile:1040: parallel_n64_libretro.so] Error 1 ` the issue is as in old thread i discover that the HAVE_NEON condition some how not pass, so i remark it : open Makefile.common and find this string "ifeq ($(HAVE_NEON),1)" and remark the condition. with this all i have successfully build and able to run parallel64 .

note: the convert_s16_float_asm issue only appear if we build with have_neon=1

buld platform="armv neon"

Cee123 commented 3 years ago

Ah thanks. That would probably help. They really need to fix these issues in the Makefile. I think I did try that and it didn't work for me.

bullghost commented 3 years ago

you are using libretro super to build this, try directly clone of this (i mean without using libretro super). then using this command to build for your odroid xu4 make platform="odroid ODROID-XU"

Cee123 commented 3 years ago

you are using libretro super to build this, try directly clone of this (i mean without using libretro super). then using this command to build for your odroid xu4 make platform="odroid ODROID-XU"

Thanks so much. I'll try that and see if it works.