Giter VIP home page Giter VIP logo

parallel-n64's Introduction

Build Status Build status

mupen64plus-libretro

To enable a dynarec CPU core you must pass the WITH_DYNAREC value to make:

  • make WITH_DYNAREC=x86
  • make WITH_DYNAREC=x86_64
  • make WITH_DYNAREC=arm
  • make WITH_DYNAREC=aarch64

New make options:

  • USE_CXD4_NEW - use the most recent version of CXD4 that was verified on Android
  • USE_SSE2NEON - enable SSE2 vectorized routines on ARMv7+ via hacked SSE2NEON library

To build Android hardfp library with the new CXD4 RSP + NEON + Parallel RDP do:

  • ndk-build -j8 USE_SSE2NEON=1 APP_ABI=armeabi-v7a-hard

To build Android arm64 library with the new CXD4 RSP + Parallel RDP + dynarec do:

  • ndk-build APP_ABI=arm64-v8a

parallel-n64's People

Contributors

alcaro avatar aliaspider avatar bananarama203 avatar bezier89 avatar blacklotus avatar claudiuslollarius avatar cxd4 avatar evilwraith avatar fr500 avatar heuripedes avatar hizzlekizzle avatar hunterk avatar ilag11111 avatar inactive123 avatar legendofdragoon avatar libretroadmin avatar lioncash avatar loganmc10 avatar luigiblood avatar meancoot avatar monroe88 avatar mudlord avatar oggom avatar sergiobenrocha2 avatar skogaby avatar tatsuya79 avatar themaister avatar toadking avatar vgf89 avatar webgeek1234 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parallel-n64's Issues

Paper Mario saving in all save slots at once

When you save your progress in Paper Mario it saves it in all four save slots instead of just the selected one.
The easiest way to see this is to create a new file and restart the game, your new file is suddenly available in all slots at once.

compiled with dynarec and opengles recognized as opengl

I don't know why this happens but I quickly haccked together this Makefile
http://bpaste.net/show/133582/
and compiled mupen64plus with WITH_DYNAREC=arm on my raspberry pi.
When compiling it normally it works with WITH_DYNAREC=arm I get
Sinc resampler [C]
SINC params (8 phase bits, 16 taps).
RetroArch [ERROR] :: Requesting OpenGL context, but RetroArch is compiled against OpenGLES2. Cannot use HW context.
RetroArch [ERROR] :: Failed to load game.
Segmentation fault (core dumped)

I tried it with every value for mupen64-gfxplugin

crash on galaxy note 2 - mali gpu in combiner shader compilation

F/libc ( 5326): Fatal signal 11 (SIGSEGV) at 0x0000004a (code=1), thread 5359 (com.retroarch) I/DEBUG ( 2128): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** I/DEBUG ( 2128): Build fingerprint: 'Verizon/t0ltevzw/t0ltevzw:4.1.2/JZO54K/I605VRAMC3:user/release-keys' I/DEBUG ( 2128): Revision: '10' I/DEBUG ( 2128): pid: 5326, tid: 5359, name: com.retroarch >>> com.retroarch <<< I/DEBUG ( 2128): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000004a I/DEBUG ( 2128): r0 6779d1ac r1 5d9f75d0 r2 6779ce58 r3 00000000 I/DEBUG ( 2128): r4 5da747c0 r5 6779d088 r6 6779cef0 r7 00000000 I/DEBUG ( 2128): r8 0000004a r9 6779cee8 sl 5d8970b0 fp 5da747a0 I/DEBUG ( 2128): ip 00000000 sp 6779ce2c lr 03020100 pc 5fd0f148 cpsr 200f0010 I/DEBUG ( 2128): d0 0000000000000000 d1 0000000000000000 I/DEBUG ( 2128): d2 0000000000000000 d3 0000000000000000 I/DEBUG ( 2128): d4 6f63206461657473 d5 20676e696c69706d I/DEBUG ( 2128): d6 6572702068676968 d7 000000003f800000 I/DEBUG ( 2128): d8 4400000000000200 d9 0000000042fa0000 I/DEBUG ( 2128): d10 0000000000000000 d11 0000000000000000 I/DEBUG ( 2128): d12 0000000000000000 d13 0000000000000000 I/DEBUG ( 2128): d14 0000000000000000 d15 0000000000000000 I/DEBUG ( 2128): d16 000000005d9f7604 d17 0000000000000000 I/DEBUG ( 2128): d18 6151d3646151d364 d19 6151d3446151d344 I/DEBUG ( 2128): d20 6151d3246151d324 d21 6151d3706151d370 I/DEBUG ( 2128): d22 6151d3046151d304 d23 3cd85a2e8c2995d1 I/DEBUG ( 2128): d24 3c8cb3b399e00000 d25 3f99c578c335d4a6 I/DEBUG ( 2128): d26 0000000000000000 d27 4338000000000000 I/DEBUG ( 2128): d28 3fe45f306dc9c883 d29 4338000000000008 I/DEBUG ( 2128): d30 4020000000000000 d31 4000000000000000 I/DEBUG ( 2128): scr 63000093 I/DEBUG ( 2128): I/DEBUG ( 2128): backtrace: I/DEBUG ( 2128): #00 pc 000b7148 /system/lib/libMali.so I/DEBUG ( 2128): #01 pc 000b366c /system/lib/libMali.so I/DEBUG ( 2128): #02 pc 000b5828 /system/lib/libMali.so I/DEBUG ( 2128): #03 pc 000b5b68 /system/lib/libMali.so I/DEBUG ( 2128): #04 pc 000b2944 /system/lib/libMali.so I/DEBUG ( 2128): #05 pc 000797d0 /system/lib/libMali.so I/DEBUG ( 2128): #06 pc 0006b20c /system/lib/libMali.so (__mali_compile_essl_shader+88) I/DEBUG ( 2128): #07 pc 00045cf8 /system/lib/libMali.so I/DEBUG ( 2128): #08 pc 0003e9b0 /system/lib/libMali.so (shim_glCompileShader+52) I/DEBUG ( 2128): #09 pc 00143400 /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (init_combiner+636) I/DEBUG ( 2128): #10 pc 0014cadc /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (grSstWinOpen+736) I/DEBUG ( 2128): #11 pc 000f707c /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (InitGfx+88) I/DEBUG ( 2128): #12 pc 000f7790 /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (glide64RomOpen+336) I/DEBUG ( 2128): #13 pc 00153a24 /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (main_run+148) I/DEBUG ( 2128): #14 pc 0008cf50 /data/data/com.retroarch/cores/mupen64plus_libretro_android.so I/DEBUG ( 2128): #15 pc 0008df2c /data/data/com.retroarch/cores/mupen64plus_libretro_android.so (retro_run+132) I/DEBUG ( 2128): I/DEBUG ( 2128): stack: I/DEBUG ( 2128): 6779cdec 6779cfdc I/DEBUG ( 2128): 6779cdf0 5d9f75d0 I/DEBUG ( 2128): 6779cdf4 00000000 I/DEBUG ( 2128): 6779cdf8 5da6cac8 I/DEBUG ( 2128): 6779cdfc 6779cfdc I/DEBUG ( 2128): 6779ce00 5fcff0a0 /system/lib/libMali.so I/DEBUG ( 2128): 6779ce04 00000000 I/DEBUG ( 2128): 6779ce08 5da747c0 I/DEBUG ( 2128): 6779ce0c 6779d088 I/DEBUG ( 2128): 6779ce10 5d9f7904 I/DEBUG ( 2128): 6779ce14 00000024 I/DEBUG ( 2128): 6779ce18 6779cf6c I/DEBUG ( 2128): 6779ce1c 6779cecc I/DEBUG ( 2128): 6779ce20 5d8970b0 I/DEBUG ( 2128): 6779ce24 5da747a0 I/DEBUG ( 2128): 6779ce28 5fd0fb04 /system/lib/libMali.so I/DEBUG ( 2128): #00 6779ce2c 00000000 I/DEBUG ( 2128): 6779ce30 00000000 I/DEBUG ( 2128): 6779ce34 5d8970b0 I/DEBUG ( 2128): 6779ce38 5d9f75d0 I/DEBUG ( 2128): 6779ce3c 6779cef0 I/DEBUG ( 2128): 6779ce40 5d9f75d0 I/DEBUG ( 2128): 6779ce44 6779ce58 I/DEBUG ( 2128): 6779ce48 00000001 I/DEBUG ( 2128): 6779ce4c 5da6cac8 I/DEBUG ( 2128): 6779ce50 00000000 I/DEBUG ( 2128): 6779ce54 00000001 I/DEBUG ( 2128): 6779ce58 00009001 I/DEBUG ( 2128): 6779ce5c 6779d038 I/DEBUG ( 2128): 6779ce60 6779d088 I/DEBUG ( 2128): 6779ce64 6779cfdc I/DEBUG ( 2128): 6779ce68 6779d088 I/DEBUG ( 2128): ........ ........ I/DEBUG ( 2128): #01 6779ce8c 5da6cac8 I/DEBUG ( 2128): 6779ce90 00000001 I/DEBUG ( 2128): 6779ce94 6779cfdc I/DEBUG ( 2128): 6779ce98 5d9f7678 I/DEBUG ( 2128): 6779ce9c 00000001 I/DEBUG ( 2128): 6779cea0 6779cec0 I/DEBUG ( 2128): 6779cea4 00000000 I/DEBUG ( 2128): 6779cea8 00000000 I/DEBUG ( 2128): 6779ceac 5d8970b0 I/DEBUG ( 2128): 6779ceb0 6779d088 I/DEBUG ( 2128): 6779ceb4 00000000 I/DEBUG ( 2128): 6779ceb8 5fd0d82c /system/lib/libMali.so I/DEBUG ( 2128): #02 6779cebc 00009023 I/DEBUG ( 2128): 6779cec0 0000003c I/DEBUG ( 2128): 6779cec4 6779cf6c I/DEBUG ( 2128): 6779cec8 0000000e I/DEBUG ( 2128): 6779cecc 00000026 I/DEBUG ( 2128): 6779ced0 6779cf6c I/DEBUG ( 2128): 6779ced4 00000000 I/DEBUG ( 2128): 6779ced8 00000000 I/DEBUG ( 2128): 6779cedc 00000000 I/DEBUG ( 2128): 6779cee0 5d9f7604 I/DEBUG ( 2128): 6779cee4 00000000 I/DEBUG ( 2128): 6779cee8 00000000 I/DEBUG ( 2128): 6779ceec 0000004a I/DEBUG ( 2128): 6779cef0 6779cf78 I/DEBUG ( 2128): 6779cef4 00000000 I/DEBUG ( 2128): 6779cef8 00000000 I/DEBUG ( 2128): ........ ........ I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r0: I/DEBUG ( 2128): 6779d18c 6779d1d4 5fd0a948 5d7eee28 6779d1d4 I/DEBUG ( 2128): 6779d19c 5fcc31b0 5fcd30a4 00000000 5fd45e74 I/DEBUG ( 2128): 6779d1ac 5d7e8160 00000007 5d7eee28 5d6529f8 I/DEBUG ( 2128): 6779d1bc 5d921fa4 00000000 5d9f7994 5d7eee28 I/DEBUG ( 2128): 6779d1cc 5d7e8160 5d6529f8 00000000 00000000 I/DEBUG ( 2128): 6779d1dc 0000001f 00000005 5da74318 5d7e8160 I/DEBUG ( 2128): 6779d1ec ffffffff ffffffff 5d6527dc 5d7e8130 I/DEBUG ( 2128): 6779d1fc 5d652890 5fd0a818 5d7e8160 00000001 I/DEBUG ( 2128): 6779d20c 615cc91c 5c14d008 3fe00000 5fcd17d4 I/DEBUG ( 2128): 6779d21c 5d7eee28 5d7e8174 5d652700 00000000 I/DEBUG ( 2128): 6779d22c 5d7e8130 ffffffc0 5d887ee4 00008b30 I/DEBUG ( 2128): 6779d23c 0000000b 5fcc3210 00010101 5fcc31ac I/DEBUG ( 2128): 6779d24c 5fcc31b0 5d887ec8 0000000b 00000000 I/DEBUG ( 2128): 6779d25c 401e8384 5d887ee4 5d887ec8 0000000b I/DEBUG ( 2128): 6779d26c 5c14d008 5fc9dcfc 00000001 000003cb I/DEBUG ( 2128): 6779d27c 000003cb 00000000 17b23bca b5472dc2 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r1: I/DEBUG ( 2128): 5d9f75b0 00000000 00000000 03020100 00000000 I/DEBUG ( 2128): 5d9f75c0 00000000 00000000 00000007 00000008 I/DEBUG ( 2128): 5d9f75d0 00000000 00000000 00030003 00001267 I/DEBUG ( 2128): 5d9f75e0 00000000 5d9f7904 5d9f77a4 00000000 I/DEBUG ( 2128): 5d9f75f0 00000000 5d9f7854 5d9f76f4 00000000 I/DEBUG ( 2128): 5d9f7600 00000000 5d9f7664 00000000 00000000 I/DEBUG ( 2128): 5d9f7610 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5d9f7620 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5d9f7630 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5d9f7640 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5d9f7650 00000000 ffffffff ffffffff ffffffff I/DEBUG ( 2128): 5d9f7660 ffffffff 00000002 00000027 00000000 I/DEBUG ( 2128): 5d9f7670 00000000 00000200 5d8970b0 ffffffff I/DEBUG ( 2128): 5d9f7680 ffffff03 00000000 00000000 5d7ed594 I/DEBUG ( 2128): 5d9f7690 ffffffff ffffff00 00000000 00000000 I/DEBUG ( 2128): 5d9f76a0 00000000 ffffffff ffffffff 00000000 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r2: I/DEBUG ( 2128): 6779ce38 5d9f75d0 6779cef0 5d9f75d0 6779ce58 I/DEBUG ( 2128): 6779ce48 00000001 5da6cac8 00000000 00000001 I/DEBUG ( 2128): 6779ce58 00009001 6779d038 6779d088 6779cfdc I/DEBUG ( 2128): 6779ce68 6779d088 5d8970b0 5da6cac8 00000001 I/DEBUG ( 2128): 6779ce78 5d9f75d0 00000000 00000000 00000007 I/DEBUG ( 2128): 6779ce88 5fd0b670 5da6cac8 00000001 6779cfdc I/DEBUG ( 2128): 6779ce98 5d9f7678 00000001 6779cec0 00000000 I/DEBUG ( 2128): 6779cea8 00000000 5d8970b0 6779d088 00000000 I/DEBUG ( 2128): 6779ceb8 5fd0d82c 00009023 0000003c 6779cf6c I/DEBUG ( 2128): 6779cec8 0000000e 00000026 6779cf6c 00000000 I/DEBUG ( 2128): 6779ced8 00000000 00000000 5d9f7604 00000000 I/DEBUG ( 2128): 6779cee8 00000000 0000004a 6779cf78 00000000 I/DEBUG ( 2128): 6779cef8 00000000 6779cfb8 00000000 00000007 I/DEBUG ( 2128): 6779cf08 5fd0faa0 5d7ed594 00000000 00000000 I/DEBUG ( 2128): 6779cf18 6779d038 6779cfa8 5d9f75d0 6779cf38 I/DEBUG ( 2128): 6779cf28 00000000 5d9f75d0 5d9f7008 00000000 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r4: I/DEBUG ( 2128): 5da747a0 00000003 00000000 00000003 00000002 I/DEBUG ( 2128): 5da747b0 0000000c fffffc19 00000000 00000000 I/DEBUG ( 2128): 5da747c0 03020100 00000000 5da74754 00104000 I/DEBUG ( 2128): 5da747d0 00000000 00000000 00000000 00000001 I/DEBUG ( 2128): 5da747e0 00000000 00000001 00000001 0000000c I/DEBUG ( 2128): 5da747f0 0000000c 00000000 00000000 ffffff00 I/DEBUG ( 2128): 5da74800 00000000 5da74818 00104000 00000000 I/DEBUG ( 2128): 5da74810 00000000 00000000 00000000 5d651cc8 I/DEBUG ( 2128): 5da74820 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74830 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74840 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74850 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74860 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74870 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74880 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74890 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r5: I/DEBUG ( 2128): 6779d068 5d9aebf8 5d7e8160 ffffffff ffffffff I/DEBUG ( 2128): 6779d078 5fd0b480 00000000 00000000 6779d088 I/DEBUG ( 2128): 6779d088 5d7e8160 5da6cac8 00000002 00000000 I/DEBUG ( 2128): 6779d098 00000001 5da6cac8 6779d13c 5d8970b0 I/DEBUG ( 2128): 6779d0a8 5fcd3bac 00000001 5da6cac8 6779d13c I/DEBUG ( 2128): 6779d0b8 5d7ed594 5d7ed594 00000002 6779d13c I/DEBUG ( 2128): 6779d0c8 5d7ed594 5d7ed594 00000003 6779d13c I/DEBUG ( 2128): 6779d0d8 5d91bee8 00000000 5d8970b0 6779d160 I/DEBUG ( 2128): 6779d0e8 5da747a0 5d9ae4cc 00000001 00000000 I/DEBUG ( 2128): 6779d0f8 5fd05b74 00000000 5d8974d8 6779d160 I/DEBUG ( 2128): 6779d108 5d9ae4cc 5d9ae490 00000001 00000001 I/DEBUG ( 2128): 6779d118 5d9ae5bc 00000000 6779d160 5d89bf48 I/DEBUG ( 2128): 6779d128 00000000 03020100 5fd058f8 0000002b I/DEBUG ( 2128): 6779d138 6779cfdc 5d6527dc 5d7eee28 5d89bf48 I/DEBUG ( 2128): 6779d148 5d7ef280 00000001 00000000 00000004 I/DEBUG ( 2128): 6779d158 5d9f75d0 5d9f75d0 6779d1c0 5d6529f8 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r6: I/DEBUG ( 2128): 6779ced0 6779cf6c 00000000 00000000 00000000 I/DEBUG ( 2128): 6779cee0 5d9f7604 00000000 00000000 0000004a I/DEBUG ( 2128): 6779cef0 6779cf78 00000000 00000000 6779cfb8 I/DEBUG ( 2128): 6779cf00 00000000 00000007 5fd0faa0 5d7ed594 I/DEBUG ( 2128): 6779cf10 00000000 00000000 6779d038 6779cfa8 I/DEBUG ( 2128): 6779cf20 5d9f75d0 6779cf38 00000000 5d9f75d0 I/DEBUG ( 2128): 6779cf30 5d9f7008 00000000 00000000 00000000 I/DEBUG ( 2128): 6779cf40 5da747a0 00000002 5fd0aec0 00000428 I/DEBUG ( 2128): 6779cf50 00000002 5d8970b0 5fd0b0c0 6779cff4 I/DEBUG ( 2128): 6779cf60 00000000 6779d088 ffffffe5 5d8970b0 I/DEBUG ( 2128): 6779cf70 00000000 6779d088 5da6cac8 6779d088 I/DEBUG ( 2128): 6779cf80 6779cfdc 5d89c194 00000000 00000001 I/DEBUG ( 2128): 6779cf90 5da6c56c 00000200 5fd0db6c 00000200 I/DEBUG ( 2128): 6779cfa0 00000027 00000000 5da6c56c 00000004 I/DEBUG ( 2128): 6779cfb0 5d8974d8 5d7ed594 5da6cac8 6779d154 I/DEBUG ( 2128): 6779cfc0 6779d154 00000004 00000000 00000004 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near r9: I/DEBUG ( 2128): 6779cec8 0000000e 00000026 6779cf6c 00000000 I/DEBUG ( 2128): 6779ced8 00000000 00000000 5d9f7604 00000000 I/DEBUG ( 2128): 6779cee8 00000000 0000004a 6779cf78 00000000 I/DEBUG ( 2128): 6779cef8 00000000 6779cfb8 00000000 00000007 I/DEBUG ( 2128): 6779cf08 5fd0faa0 5d7ed594 00000000 00000000 I/DEBUG ( 2128): 6779cf18 6779d038 6779cfa8 5d9f75d0 6779cf38 I/DEBUG ( 2128): 6779cf28 00000000 5d9f75d0 5d9f7008 00000000 I/DEBUG ( 2128): 6779cf38 00000000 00000000 5da747a0 00000002 I/DEBUG ( 2128): 6779cf48 5fd0aec0 00000428 00000002 5d8970b0 I/DEBUG ( 2128): 6779cf58 5fd0b0c0 6779cff4 00000000 6779d088 I/DEBUG ( 2128): 6779cf68 ffffffe5 5d8970b0 00000000 6779d088 I/DEBUG ( 2128): 6779cf78 5da6cac8 6779d088 6779cfdc 5d89c194 I/DEBUG ( 2128): 6779cf88 00000000 00000001 5da6c56c 00000200 I/DEBUG ( 2128): 6779cf98 5fd0db6c 00000200 00000027 00000000 I/DEBUG ( 2128): 6779cfa8 5da6c56c 00000004 5d8974d8 5d7ed594 I/DEBUG ( 2128): 6779cfb8 5da6cac8 6779d154 6779d154 00000004 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near sl: I/DEBUG ( 2128): 5d897090 00000000 00000000 ffffffff ffffffff I/DEBUG ( 2128): 5d8970a0 00000000 ffffffff 00000000 00000000 I/DEBUG ( 2128): 5d8970b0 000f0428 5d6533e8 00020004 5d897454 I/DEBUG ( 2128): 5d8970c0 00000359 00000000 0000005a 5d89c194 I/DEBUG ( 2128): 5d8970d0 5d89c194 5d89c194 5da747a0 5d7e2a9c I/DEBUG ( 2128): 5d8970e0 00000000 5d8970e8 00000025 5d8979a0 I/DEBUG ( 2128): 5d8970f0 00000001 5d89711c 00000342 00000000 I/DEBUG ( 2128): 5d897100 00000000 5d89c194 5d89c194 5d89c194 I/DEBUG ( 2128): 5d897110 00000000 5d8a4840 00000000 00000000 I/DEBUG ( 2128): 5d897120 00000002 00000000 00000000 00000000 I/DEBUG ( 2128): 5d897130 00000002 00000000 00000000 00000000 I/DEBUG ( 2128): 5d897140 00000029 5d653068 00010001 5d897174 I/DEBUG ( 2128): 5d897150 00000357 00000000 00000000 00000000 I/DEBUG ( 2128): 5d897160 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5d897170 00000000 5da6cac8 00000001 00000001 I/DEBUG ( 2128): 5d897180 0000001f 5d89718c 5d7e8160 00000000 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near fp: I/DEBUG ( 2128): 5da74780 00000000 5da74798 00190000 00000000 I/DEBUG ( 2128): 5da74790 00000000 00000000 00000000 5d652318 I/DEBUG ( 2128): 5da747a0 00000003 00000000 00000003 00000002 I/DEBUG ( 2128): 5da747b0 0000000c fffffc19 00000000 00000000 I/DEBUG ( 2128): 5da747c0 03020100 00000000 5da74754 00104000 I/DEBUG ( 2128): 5da747d0 00000000 00000000 00000000 00000001 I/DEBUG ( 2128): 5da747e0 00000000 00000001 00000001 0000000c I/DEBUG ( 2128): 5da747f0 0000000c 00000000 00000000 ffffff00 I/DEBUG ( 2128): 5da74800 00000000 5da74818 00104000 00000000 I/DEBUG ( 2128): 5da74810 00000000 00000000 00000000 5d651cc8 I/DEBUG ( 2128): 5da74820 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74830 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74840 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74850 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74860 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): 5da74870 00000000 00000000 00000000 00000000 I/DEBUG ( 2128): I/DEBUG ( 2128): memory near sp: I/DEBUG ( 2128): 6779ce0c 6779d088 5d9f7904 00000024 6779cf6c I/DEBUG ( 2128): 6779ce1c 6779cecc 5d8970b0 5da747a0 5fd0fb04 I/DEBUG ( 2128): 6779ce2c 00000000 00000000 5d8970b0 5d9f75d0 I/DEBUG ( 2128): 6779ce3c 6779cef0 5d9f75d0 6779ce58 00000001 I/DEBUG ( 2128): 6779ce4c 5da6cac8 00000000 00000001 00009001 I/DEBUG ( 2128): 6779ce5c 6779d038 6779d088 6779cfdc 6779d088 I/DEBUG ( 2128): 6779ce6c 5d8970b0 5da6cac8 00000001 5d9f75d0 I/DEBUG ( 2128): 6779ce7c 00000000 00000000 00000007 5fd0b670 I/DEBUG ( 2128): 6779ce8c 5da6cac8 00000001 6779cfdc 5d9f7678 I/DEBUG ( 2128): 6779ce9c 00000001 6779cec0 00000000 00000000 I/DEBUG ( 2128): 6779ceac 5d8970b0 6779d088 00000000 5fd0d82c I/DEBUG ( 2128): 6779cebc 00009023 0000003c 6779cf6c 0000000e I/DEBUG ( 2128): 6779cecc 00000026 6779cf6c 00000000 00000000 I/DEBUG ( 2128): 6779cedc 00000000 5d9f7604 00000000 00000000 I/DEBUG ( 2128): 6779ceec 0000004a 6779cf78 00000000 00000000 I/DEBUG ( 2128): 6779cefc 6779cfb8 00000000 00000007 5fd0faa0 I/DEBUG ( 2128): I/DEBUG ( 2128): code around pc: I/DEBUG ( 2128): 5fd0f128 e4967008 e3580000 e59500e0 e59d1014 I/DEBUG ( 2128): 5fd0f138 e58d6010 e1a03007 e59d2018 0a000303 I/DEBUG ( 2128): 5fd0f148 e598a000 ebfffd33 e2506000 0a000022 I/DEBUG ( 2128): 5fd0f158 e35a0000 0a0000e8 e59ab028 e59be02c I/DEBUG ( 2128): 5fd0f168 e59b4028 e7a4c75e e586c068 e3540000 I/DEBUG ( 2128): 5fd0f178 e1db02bc e7ad2050 e5862064 0a000019 I/DEBUG ( 2128): 5fd0f188 e59b302c e3a0e001 e7a4c753 ea000008 I/DEBUG ( 2128): 5fd0f198 e5944000 e3540000 0a000012 e59be028 I/DEBUG ( 2128): 5fd0f1a8 e59b202c e15e0004 e7a4c752 03a0e001 I/DEBUG ( 2128): 5fd0f1b8 11a0e00c e5942004 e3a01001 e59500d8 I/DEBUG ( 2128): 5fd0f1c8 e59530c0 e58de000 e58dc004 e58d6008 I/DEBUG ( 2128): 5fd0f1d8 eb002044 e3500000 1affffec e3a00000 I/DEBUG ( 2128): 5fd0f1e8 e28dd03c e8bd8ff0 e59b401c e3540000 I/DEBUG ( 2128): 5fd0f1f8 01a0400a e586400c e59b0020 ebff1818 I/DEBUG ( 2128): 5fd0f208 e596300c e5c60078 e7e71450 e7e72850 I/DEBUG ( 2128): 5fd0f218 e5c61079 e5c6207a e7e70c50 e5c6007b I/DEBUG ( 2128): I/DEBUG ( 2128): code around lr: I/DEBUG ( 2128): 030200e0 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 030200f0 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020100 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020110 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020120 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020130 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020140 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020150 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020160 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020170 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020180 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 03020190 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 030201a0 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 030201b0 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 030201c0 ffffffff ffffffff ffffffff ffffffff I/DEBUG ( 2128): 030201d0 ffffffff ffffffff ffffffff ffffffff

Not sure if there's much we can do to fix this.

Won't compile GLES2 gln64 - glDeleteFramebuffers/glDeleteRenderBuffers

[squarepusher@lenovo libretro-mupen64plus]$ make
g++ -DSDL_VIDEO_OPENGL_ES2=1 -Igles2glide64/src/Glitch64/inc -DGLIDE64 -D__LIBRETRO__ -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -O3 -c -o gles2n64/src/OpenGL.o gles2n64/src/OpenGL.cpp
In file included from libretro/SDL_opengles2.h:53:0,
from gles2n64/src/OpenGL.h:5,
from gles2n64/src/OpenGL.cpp:21:
libretro/glsym.h:45:0: warning: "glBindFramebuffer" redefined [enabled by default]
#define glBindFramebuffer pglBindFramebuffer
^
In file included from libretro/SDL_opengles2.h:52:0,
from gles2n64/src/OpenGL.h:5,
from gles2n64/src/OpenGL.cpp:21:
libretro/opengl_state_machine.h:83:0: note: this is the location of the previous definition
#define glBindFramebuffer sglBindFramebuffer
^
gles2n64/src/OpenGL.cpp: In function โ€˜void OGL_Stop()โ€™:
gles2n64/src/OpenGL.cpp:460:52: error: โ€˜glDeleteFramebuffersโ€™ was not declared in this scope
glDeleteFramebuffers(1, &OGL.framebuffer.fb);
^
gles2n64/src/OpenGL.cpp:462:63: error: โ€˜glDeleteRenderbuffersโ€™ was not declared in this scope
glDeleteRenderbuffers(1, &OGL.framebuffer.depth_buffer);
^
make: *** [gles2n64/src/OpenGL.o] Error 1

Build error on raspberry pi

When compiling mupen for the pi this happens:

cc -DNOSSE -I/opt/vc/include -DARMv5_ONLY -DNO_ASM -DDYNAREC -DNEW_DYNAREC=3 -DSDL_VIDEO_OPENGL_ES2=1 -Iglide2gl/src/Glitch64/inc -D__LIBRETRO__ -DINLINE="inline" -DM64P_PLUGIN_API -Imupen64plus-core/src -Imupen64plus-core/src/api -Ilibretro/libco -Ilibretro -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -fPIC -DGLES -O3 -DNDEBUG -c -o glide2gl/src/Glitch64/combiner.o glide2gl/src/Glitch64/combiner.c
glide2gl/src/Glitch64/combiner.c: In function 'update_uniforms':
glide2gl/src/Glitch64/combiner.c:476:45: error: 'GL_TEXTURE_WIDTH' undeclared (first use in this function)
glGetTexLevelParameteriv(GL_TEXTURE_2D,0,GL_TEXTURE_WIDTH,&tex0W);
^
glide2gl/src/Glitch64/combiner.c:476:45: note: each undeclared identifier is reported only once for each function it appears in
glide2gl/src/Glitch64/combiner.c:477:45: error: 'GL_TEXTURE_HEIGHT' undeclared (first use in this function)
glGetTexLevelParameteriv(GL_TEXTURE_2D,0,GL_TEXTURE_HEIGHT,&tex0H);
^
: recipe for target 'glide2gl/src/Glitch64/combiner.o' failed
make: *** [glide2gl/src/Glitch64/combiner.o] Error 1

Glide64 and gln64 problems on raspberry pi

Some weird problems happening with mupen for the pi:
super mario 64
gln64 + dynamic_recompiler = works
glide64 + dynamic_recompiler = black screen after every frame
Oot
gln64 + dynamic_recompiler = hangs complety (can't close RA)
glide64 + dynamic_recompiler = kinda just works
Majoras Mask
gln64 + dynamic_recompiler = hangs complety (can't close RA)
glide64 + dynamic_recompiler = kinda just works
Paper Mario
gln64 + dynamic_recompiler = works first but hangs after intro (can't get to select file menu)
glide64 + dynamic_recompiler = kinda works like super mario64 with a black frame after every frame perfect for epileptics

With frame duping deactivated the screen flickering stops,the screen stays black then.FPS count tells me that without frame duping there is around 1fps (showing the black screen).

When pausing (rgui) a flickering or black screen (bug) you always get the right frame as background

Save files too big

This seems to be a similar error as with vbam: all save files are roughly 300 KB. Normally the saves are supposed to be variable depending on the type of memory the game used, but here, everything is 300 KB. I'm posting this, because I do not know if anyone knows about this. I tried games with different save types: Castlevania, Mario Kart, Ocarina of Time, they all have the same save size when they're not supposed to.

Paper Mario gln64 renders arbitrary

Paper Mario with the gln64 plugin is completly fucked up the main background is always drawn but the objects are flickering or not drawn at all (like the companions).Also random npcs and enemies are replaced with one coloured boxes.

Possibility to activate/deactivate hardcoded cheats or set status per plugin

I wanted to open this feature request because I know that the plan is to switch graphics plugins at runtime and to automaticly choose the best plugin for the game.
I assume that with time there will be more plugins added/faulty plugins fixed and some games work with the better plugin because the fixes don't work with correct emulation.Or maybe someone just wants to deactivate a fix.
This is probably not the most important feature right now, but I'm pretty sure it will be needed at some point.

Mupen64plus exits when trying to resume a game

I left mupen running in the background (x86_64 on X) and after I tried switching back it closed itself without me pressing esc or quit.
This was the ouput at the time
RetroArch: Saving regular SRAM.
RetroArch: SRM: /home/thomas/.config/retroarch/saves/Paper Mario.srm
RetroArch: RTC: /home/thomas/.config/retroarch/saves/Paper Mario.rtc
RetroArch: Saved successfully to "/home/thomas/.config/retroarch/saves/Paper Mario.srm".
RetroArch: Average audio buffer saturation: 72.01 %, standard deviation (percentage points): 19.38 %.
RetroArch: Amount of time spent close to underrun: 3.22 %. Close to blocking: 49.07 %.
RetroArch: [X11]: Xinerama version: 1.1.
RetroArch: [X11]: Xinerama screens: 1.
RetroArch: [GLX]: Saved monitor #0.
RetroArch: Monitor FPS estimation is disabled for threaded video.
RetroArch: [libretro INFO] :: mupen64plus: R4300 emulator finished.
RetroArch: [libretro INFO] :: mupen64plus: Rom closed.
RetroArch: [PERF]: Performance counters (libretro):

Newest version everything set to auto

Can't take screenshot at some points in Paper Mario

So taking screenshots works normally but if you for instance go to the fortune teller and let her tell you her fortune:
retroarch-0215-022047
and try to take a screenshot of the "magic balls" that fly around you simply can't and only get a black screen.
Normally the retroarch menu is transparent but at this part it isn't.

[Rice] Possible error in RSP_GBI1_BranchZ in RSP_GBI1.h. Also some other oddities.

The following code:

void RSP_GBI1_BranchZ(Gfx *gfx)
{
    SP_Timing(RSP_GBI1_BranchZ);

    uint32 vtx = ((gfx->words.w0)&0xFFF)>>1;
    float vtxdepth = g_vecProjected[vtx].z/g_vecProjected[vtx].w;

#ifdef DEBUGGER
    if( debuggerEnableZBuffer==FALSE || vtxdepth <= (s32)gfx->words.w1 || g_curRomInfo.bForceDepthBuffer )
#else
    if( vtxdepth <= (s32)(gfx->words.w1) || g_curRomInfo.bForceDepthBuffer )
#endif
    {
        uint32 dwPC = gDlistStack[gDlistStackPointer].pc;    
        uint32 dwDL = *(uint32 *)(g_pRDRAMu8 + dwPC-12);
        uint32 dwAddr = RSPSegmentAddr(dwDL); // Initial assignment

        dwAddr = RSPSegmentAddr(dwDL);;         // Re-assigning again??

        LOG_UCODE("BranchZ to DisplayList 0x%08x", dwAddr);
        gDlistStack[gDlistStackPointer].pc = dwAddr;
        gDlistStack[gDlistStackPointer].countdown = MAX_DL_COUNT;
    }
}

It's possible that dwAddr = RSPSegmentAddr(dwDL);; was meant to be removed but accidentally got left in somehow.


Slightly linking onto this issue is another thing I found as something different between gles2n64 and gles2rice.

In rice, RSPSegmentAddr is a macro defined at line 563 in RSP_Parser.h that is defined as follows:

#define RSPSegmentAddr(seg) ( gRSP.segments[((seg)>>24)&0x0F] + ((seg)&0x00FFFFFF) )

the equivalent in gles2n64, RSP_SegmentToPhysical, is defined as:

#define RSP_SegmentToPhysical( segaddr ) ((gSP.segment[(segaddr >> 24) & 0x0F] + (segaddr & 0x00FFFFFF)) & 0x00FFFFFF)

glide64 rendering problems with (partly) invisible textures

(first gln64 and rice don't have this problem)
Some textures that shouldn't be visible or only partial visible are not shown correctly with glide64.Examples for this are the port in Paper Mario or the second level of super mario 64.
retroarch-0220-161317
retroarch-0220-155338
The invisible part of the texture (water and platform) are visible.

Depth bias

Any logic to the current hardcoded value there or is it just random tinkering?

Certain games define a depth bias factor for a specific game inside the Glide64 INI file - however, reading Paulscode's forums makes it clear that nearly every GPU will require random fiddling with depth bias factors so no idea really how we are going to cater for all that.

I guess we can look into this once we have the more serious problems out of the way first.

zelda n64 iOS 7 and music

Run zelda n64 at default settings with the n64 onscreen controller. After you leave your house, swipe up twice to show control center and start playing some music. Close the control center and watch the game play at fast speed. Some events fail when this happens like the deku tree mouth opening.

Add raspberry pi to the platforms

I know the raspberry pi is too slow for mupen but right now there is no platform that fits.
Something like

else ifneq (,$(findstring rpi,$(platform)))
TARGET := $(TARGET_NAME)_libretro.so
LDFLAGS += -shared -Wl,--version-script=libretro/link.T
fpic = -fPIC
GLES = 1
GL_LIB := -lGLESv2
CPPFLAGS = -DNOSSE -I/opt/vc/include -DARMv5_ONLY -DNO_ASM
OBJECTS += libretro/libco/armeabi_asm.o
PLATFORM_EXT := unix

Maybe the CPPFLAGS could be different.

Glide64 got hell of a lot slower (with bilinear/nearest filter)

Since the new changes Glide64 got (at least on my system) really fucking slow.
The 3 point texture filter should use the gpu instead of the cpu which would explain this speed loss since I run a boot level clocked old nvidia card with nouveau but I don't even use it.I use bilinear/nearest.
If this is normal just delete the issue.

Zelda MM (PAL) Black Screen

The PAL N64 versions of Majora's Mask only display a black screen and won't boot up.

I've tried changing around some of the core options with no success.

DK64 No health bug

Okay, so i installed the IPA meancoot made and whenever i try playing DK64, I have no health meaning if i get hit by an enemy, i die
UPDATE I tried a different rom, and i'm currently testing it to see if it works, i'll update if it works* UPDATE 2 I tried the rom from Coolrom.com only to find out it didn't work, Any fix?

Conker's BFD Crashes with Glide64 on Windows

Conker crashes after the Nintendo logo on Windows when using the Glide64 plugin. Confirmed working with that plugin on Linux. Rice seems to be the best plugin to substitute it for for now since the graphics look pretty bad in that game with gln64.

Segmentation fault at startup Mupen64 (sglEnter)

Ever since I upgraded my Arch Linux installation yesterday, there has been a segmentation fault when starting a game with Mupen64 plus.

It happens at startup at the sglEnter function (opengl_statemachine.c) and in specific it seems to crash here somewhere-

for (i = 0; i < MAX_ATTRIB; i ++)
{
if (VertexAttribPointer_enabled[i]) glEnableVertexAttribArray(i);
else glDisableVertexAttribArray(i);

   if (!VertexAttribPointer_is4f[i])
       glVertexAttribPointer(i, VertexAttribPointer_size[i], VertexAttribPointer_type[i], VertexAttribPointer_normalized[i],
                            VertexAttribPointer_stride[i], VertexAttribPointer_pointer[i]);
   else
       glVertexAttrib4f(i, VertexAttribPointer_4f[i][0], VertexAttribPointer_4f[i][1], VertexAttribPointer_4f[i][2], VertexAttribPointer_4f[i][3]);

}

I have literally no idea why this just started happening now.

New Control issues

Mario cannot jump out of the water by pressing analog stick downwards + jump button.

Segfaults on Debian/Ubuntu 64-bit

It compiles fine but trying to run anything segfaults immediately. It appears this commit broke it (result of bisecting from a known-good base):
0cc72ce
It's the one about wiring up savestates.

I don't know if this occurs on any other *nixes or 32-bit. Let me know if I can add any other info.

EDIT: Here's the output of gdb:
0x00007fffeab17b51 in savestates_save_m64p (data=0x7fffe09d9010 "M64+SAVE",
size=16789312) at mupen64plus-core/src/main/savestates.c:529
529 PUTDATA(curr, unsigned int, PC->addr);

[Glide64] Majora's Mask crashes on Windows

Retroarch crashes at specific points when playing Majora's Mask using Glide64 on Windows.

For example:
Start up the game and let the opening movie play. When it's about the play a second time it crashes.

Tested with the latest cross-compiled build from the forum (2013-12-22).

This doesn't happen when using the older one (2013-11-24).

Some bugfixes&improvements for compilation on ARM A9 (also for libretro-super)

There are some failures when trying to compile on ARMv9 (ODROID U2).

Can you please review this and merge if it's AOK?
I've tried to make it not break other platforms but should definitively be tested.

There was a segfault happening on co_switch, hence I added the NULL check, please review that.

I am still not able to run mupen64plus with rice because of a segfault in my vendor's video driver (ess_mali200_write_instructions () from /usr/lib/libEGL.so); couldn't try with Glide64 yet because it also crashes because of missing INI file.

for libretro-super:

diff --git a/libretro-build-common.sh b/libretro-build-common.sh
index 5d44be0..b4eba15 100644
--- a/libretro-build-common.sh
+++ b/libretro-build-common.sh
@@ -532,8 +532,8 @@ build_libretro_mupen64()
          ${MAKE} WITH_DYNAREC=x86 $COMPILER -j$JOBS || die "Failed to build Mupen 64 (x86 dynarec)"
       elif [ "$CORTEX_A8" ] || [ "$CORTEX_A9" ]; then
          echo "=== Building Mupen 64 Plus (ARM dynarec) ==="
-         ${MAKE} WITH_DYNAREC=arm -j$JOBS clean || die "Failed to clean Mupen 64 (ARM dynarec)"
-         ${MAKE} WITH_DYNAREC=arm $COMPILER -j$JOBS || die "Failed to build Mupen 64 (ARM dynarec)"
+         ${MAKE} WITH_DYNAREC=arm platform=$FORMAT_COMPILER_TARGET -j$JOBS clean || die "Failed to clean Mupen 64 (ARM dynarec)"
+         ${MAKE} WITH_DYNAREC=arm platform=$FORMAT_COMPILER_TARGET $COMPILER -j$JOBS || die "Failed to build Mupen 64 (ARM dynarec)"
       else
          echo "=== Building Mupen 64 Plus ==="
          ${MAKE} -j$JOBS clean || die "Failed to clean Mupen 64"
diff --git a/libretro-build.sh b/libretro-build.sh
index 47d1bd9..0013872 100755
--- a/libretro-build.sh
+++ b/libretro-build.sh
@@ -79,6 +79,8 @@ echo "STRIP = $STRIP"

 . ./libretro-build-common.sh

+check_opengl
+
 mkdir -p "$RARCH_DIST_DIR"

 if [ $1 ]; then
@@ -113,7 +115,6 @@ if [ $FORMAT_COMPILER_TARGET != "win" ]; then
    build_libretro_desmume
    build_libretro_pcsx_rearmed
 fi
-   check_opengl
    build_libretro_modelviewer
    build_libretro_scenewalker
    build_libretro_instancingviewer

For mupen64plys-libretro:

diff --git a/Makefile b/Makefile
index 6f3f10c..46efe77 100644
--- a/Makefile
+++ b/Makefile
@@ -19,14 +19,51 @@ CC_AS ?= $(CC)
 ifneq (,$(findstring unix,$(platform)))
    TARGET := $(TARGET_NAME)_libretro.so
    LDFLAGS += -shared -Wl,--version-script=libretro/link.T
-   
+   SHARED := -shared -Wl,--version-script=libretro/link.T -Wl,--no-undefined
+   CPPFLAGS += -I.
+   LIBS := -lz
    fpic = -fPIC
+   
 ifneq (,$(findstring gles,$(platform)))
    GLES = 1
    GL_LIB := -lGLESv2
 else
    GL_LIB := -lGL
 endif
+   
+ifneq (,$(findstring cortexa8,$(platform)))
+   CFLAGS += -DARM -DNO_ASM -DNOSSE -marm -mcpu=cortex-a8
+   CPPFLAGS += -DARM -DNO_ASM -DNOSSE -marm -mcpu=cortex-a8
+ifeq ($(DEBUG), 0)
+   CFLAGS += -mtune=cortex-a8
+   CPPFLAGS += -mtune=cortex-a8
+endif
+
+   OBJECTS += libretro/libco/armeabi_asm.o
+else ifneq (,$(findstring cortexa9,$(platform)))
+   CFLAGS += -DARM -DNO_ASM -DNOSSE -marm -mcpu=cortex-a9
+   CPPFLAGS += -DARM -DNO_ASM -DNOSSE -marm -mcpu=cortex-a9
+ifeq ($(DEBUG), 0)
+   CFLAGS += -mtune=cortex-a9
+   CPPFLAGS += -mtune=cortex-a9
+endif
+   
+   OBJECTS += libretro/libco/armeabi_asm.o
+endif
+ifneq (,$(findstring softfloat,$(platform)))
+   CFLAGS += -mfloat-abi=softfp
+   CPPFLAGS += -mfloat-abi=softfp
+else ifneq (,$(findstring hardfloat,$(platform)))
+   CFLAGS += -mfloat-abi=hard
+   CPPFLAGS += -mfloat-abi=hard
+endif
+   
+ifneq (,$(findstring neon,$(platform)))
+   CPPFLAGS += -mfpu=neon
+   CFLAGS += -mfpu=neon
+   HAVE_NEON = 1
+endif
+
    PLATFORM_EXT := unix
 else ifneq (,$(findstring osx,$(platform)))
    TARGET := $(TARGET_NAME)_libretro.dylib
@@ -65,35 +102,6 @@ else ifneq (,$(findstring android,$(platform)))

    fpic = -fPIC
    PLATFORM_EXT := unix
-else ifneq (,$(findstring armv,$(platform)))
-   CC = gcc
-   CXX = g++
-   TARGET := $(TARGET_NAME)_libretro.so
-   fpic := -fPIC
-   SHARED := -shared -Wl,--version-script=libretro/link.T -Wl,--no-undefined
-   CPPFLAGS += -I.
-   LIBS := -lz
-ifneq (,$(findstring gles,$(platform)))
-   GLES := 1
-else
-   GL_LIB := -lGL
-endif
-ifneq (,$(findstring cortexa8,$(platform)))
-   CPPFLAGS += -marm -mcpu=cortex-a8
-else ifneq (,$(findstring cortexa9,$(platform)))
-   CPPFLAGS += -marm -mcpu=cortex-a9
-endif
-   CPPFLAGS += -marm
-ifneq (,$(findstring neon,$(platform)))
-   CPPFLAGS += -mfpu=neon
-   HAVE_NEON = 1
-endif
-ifneq (,$(findstring softfloat,$(platform)))
-   CPPFLAGS += -mfloat-abi=softfp
-else ifneq (,$(findstring hardfloat,$(platform)))
-   CPPFLAGS += -mfloat-abi=hard
-endif
-   CPPFLAGS += -DARM
 else ifneq (,$(findstring win,$(platform)))
    TARGET := $(TARGET_NAME)_libretro.dll
    LDFLAGS += -shared -static-libgcc -static-libstdc++ -Wl,--version-script=libretro/link.T -lwinmm -lgdi32
@@ -218,13 +226,14 @@ endif
 all: $(TARGET)

 $(COREDIR)/src/r4300/new_dynarec/linkage_arm.o: $(COREDIR)/src/r4300/new_dynarec/linkage_arm.S
-   $(CC_AS) $(CFLAGS) -c $^ -o $@
+   $(CC_AS) $(CFLAGS) $(fpic) -c $^ -o $@

 $(COREDIR)/src/r4300/new_dynarec/new_dynarec.o: $(COREDIR)/src/r4300/new_dynarec/new_dynarec.c
    $(CC) -c -o $@ $< $(CPPFLAGS) $(CFLAGS) -O0

 $(TARGET): $(OBJECTS)
-   $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(GL_LIB)
+   @echo $(platform)
+   $(CXX) $(CPPFLAGS) -shared -o $@ $(OBJECTS) $(LDFLAGS) $(GL_LIB)

 clean:
    rm -f $(OBJECTS) $(TARGET)
diff --git a/gles2glide64/src/Glide64/3dmath.cpp b/gles2glide64/src/Glide64/3dmath.cpp
index dd732e8..644bf03 100644
--- a/gles2glide64/src/Glide64/3dmath.cpp
+++ b/gles2glide64/src/Glide64/3dmath.cpp
@@ -40,8 +40,10 @@
 #include "Gfx_1.3.h"
 extern "C" {
 #ifndef NOSSE
+#ifndef NO_ASM
 #include <xmmintrin.h>
 #endif
+#endif
 }

 #include <math.h>
diff --git a/gles2rice/src/Config.cpp b/gles2rice/src/Config.cpp
index 125be0b..41ff3c3 100644
--- a/gles2rice/src/Config.cpp
+++ b/gles2rice/src/Config.cpp
@@ -362,7 +362,9 @@ BOOL InitConfiguration(void)
 bool isMMXSupported() 
 { 
     int IsMMXSupported = 0; 
-   
+#if defined(ARM)
+   return false;
+#else
 #if !defined(__GNUC__) && !defined(NO_ASM)
     __asm 
     { 
@@ -389,10 +391,14 @@ bool isMMXSupported()
         return true; 
     else 
         return false; 
-} 
+#endif
+}

 bool isSSESupported() 
 {
+#if defined(ARM)
+   return false;
+#else
     int SSESupport = 0;

 // And finally, check the CPUID for Streaming SIMD Extensions support.
@@ -423,7 +429,8 @@ bool isSSESupported()
         return true; 
     else 
         return false; 
-} 
+#endif
+}

 static void ReadConfiguration(void)
 {
diff --git a/libretro/libco/armeabi.c b/libretro/libco/armeabi.c
index ef418bf..ba49f47 100644
--- a/libretro/libco/armeabi.c
+++ b/libretro/libco/armeabi.c
@@ -65,6 +65,7 @@ void co_delete(cothread_t handle) {
 }

 void co_switch(cothread_t handle) {
+   assert(handle != NULL);
    cothread_t co_previous_handle = co_active();
    co_switch_arm(co_active_handle = handle, co_previous_handle);
 }
diff --git a/libretro/libretro.c b/libretro/libretro.c
index d93af8e..fe42508 100644
--- a/libretro/libretro.c
+++ b/libretro/libretro.c
@@ -25,7 +25,7 @@ struct retro_rumble_interface rumble;

 static struct retro_hw_render_callback render_iface;
 static cothread_t main_thread;
-static cothread_t emulator_thread;
+static cothread_t emulator_thread = NULL;
 static bool emu_thread_has_run = false; // < This is used to ensure the core_gl_context_reset
                                         //   function doesn't try to reinit graphics before needed
 static bool flip_only;
@@ -412,7 +412,10 @@ bool retro_load_game(const struct retro_game_info *game)
 void retro_unload_game(void)
 {
     stop = 1;
-    co_switch(emulator_thread);
+    if (emulator_thread != NULL)
+       co_switch(emulator_thread);
+   else
+       printf("mupen64plus: no running emulator thread");

     CoreDoCommand(M64CMD_ROM_CLOSE, 0, NULL);
 }

Graphics problems (additional to the speed loss) since a few versions

I already opened a bug report because there is a big slow down for every plugin with every filter but there are some glitches that are there too and they are not plugin or filter based either.
Easiest to spot if you try Super Mario 64:
The Mario head at the beginning has a split nose. (and other small glitches)
I will probably have a fix later as well.

Inconsistent naming scheme

The Core options seems a bit arbitrary.For instance:
GFX Accuracy,Resolution and Framerate have an added (restart), but the plugins don't.
Also GFX and RSP Plugin have the option auto but for Texture Filtering it's called automatic.
Maybe we should clean this up?

(Suggestion) Core option for switching out "Z" and "L"

As mentioned before on IRC many Nintendo 64 games use "Z" and "R" instead of "L" and "R" due the unique shape of the N64 controller.

For example, with the current Retropad layout you'll need to press L2 to rotate to the left and R1 to rotate to the right in Star Fox 64, which feels very awkward.

Because of this I think it would be a good idea to add a core option for switching out the "Z" and "L" buttons on the Retropad since this would make many games more comfortable to play.

Rewind is broken

Mupen64plus-libretro crashes when loading a game while rewind has been enabled.
If you enable it ingame it won't crash, but nothing happens when you press the rewind button.
This also breaks the netplay function.

This issue might be caused by the relatively big size of the N64 save states.

Move

Can you move this to the libretro organization? I imagine we'd first have to remove our shallow fork so that you can then move it over.

Just let me know if you are OK with this - then I can get rid of ours and we can do this.

It will make it easier for maister and me to commit changes to it as well without having to give you a lot of pull requests from time to time.

Lots of GL errors happening in mupen64.

I've noticed that many GL errors happen in mupen core. It mostly seems to be uniform location related. If errors occur, fullscreen swapping will fail (because it detects a GL error in gl_init()).

A log message I typically see (on nVidia) is:
RetroArch [ERROR] :: [GL debug (High, API, Error)]: GL_INVALID_OPERATION error generated. <location> is invalid.

To help debug this, I've pushed GL debug support in RetroArch. You can find out exactly where the bugs occur, if you build RetroArch with make GL_DEBUG=1.

If GL_KHR_debug or GL_ARB_debug_output extension is supported, RetroArch will get a callback (synchronously) every time an error occurs. It also logs minor stuff. In gdb, you can insert a breakpoint in gl_debug_cb at the line where it prints RARCH_ERR. Backtrace into mupen and see exactly which call had an error :) This helped me debug the last problem I pushed at least.

If you build in Windows, you have to download a more up-to-date glext.h header from Khronos here and replace GL/glext.h from redist: www.opengl.org/registry/oldspecs/glext.hโ€Ž

crash if rom file does not exist

Arch x86_64. ~/notafile is not a file.

$ gdb --args retroarch -L /usr/lib/libretro/libretro-mupen64plus.so ~/notafile
GNU gdb (GDB) 7.6.2
<snip>
Reading symbols from /usr/bin/retroarch...done.
(gdb) run
Starting program: /usr/bin/retroarch -L /usr/lib/libretro/libretro-mupen64plus.so /home/meow/notafile
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
RetroArch: [libretro INFO] :: Sinc resampler [SSE]
RetroArch: [libretro INFO] :: SINC params (8 phase bits, 16 taps).
RetroArch [ERROR] :: Could not read ROM file.

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe713e630 in co_swap () from /usr/lib/libretro/libretro-mupen64plus.so
(gdb) bt full
#0  0x00007fffe713e630 in co_swap () from /usr/lib/libretro/libretro-mupen64plus.so
        co_active_buffer = {0 <repeats 64 times>}
        co_active_handle = 0x0
#1  0x00007fffe71d94cd in retro_unload_game () at libretro/libretro.c:630
No locals.
#2  0x0000000000412d9b in rarch_main_init (argc=argc@entry=4, argv=argv@entry=0x7fffffffe058) at retroarch.c:3092
        sjlj_ret = <optimized out>
        allow_cheats = true
#3  0x000000000040b2bc in main (argc=4, argv=0x7fffffffe058) at frontend/frontend.c:374
        init_ret = <optimized out>
(gdb) 

Automatic Filtering starting as bilinear

Last compiled on Win7 x64.
Start Super Mario 64 in 320x240 (just to make it easier to see) with filtering on Automatic.
Push start to go to the Save selection screen: text is hard to read with bilinear filtering applied.
Go to Core options, change filtering to nearest: Text is crisp but background texture isn't filtered (intended behaviour I guess).
Go to Core options, change back to Automatic: now text is crisp and unfiltered, background is smooth and filtered.

So it's not working right from the beginning: at every game start you need to go to core options and change the filtering mode to Automatic for it to work as intended.

Zelda OOT (PAL) Audio Issues

The PAL N64 versions of Ocarina of Time have stuttering audio and play the music faster than normal.

I've tried changing around some of the core options with no success.

This might be some sort of audio sync problem.

Segmentation fault in Arch Linux on x86

This is the output I am getting when I try to play The Legend of Zelda: Ocarina of Time:

Sinc resampler [SSE]
SINC params (8 phase bits, 16 taps).
RetroArch: [libretro INFO] :: mupen64plus: ROM Database: /home/arkra/roms/system_directory/mupen64plus.ini
RetroArch: [libretro INFO] :: mupen64plus: Unable to open rom database file '/home/arkra/roms/system_directory/mupen64plus.ini'.
RetroArch: [libretro INFO] :: mupen64plus: Goodname: THE LEGEND OF ZELDA (unknown rom)
RetroArch: [libretro INFO] :: mupen64plus: Headername: THE LEGEND OF ZELDA
RetroArch: [libretro INFO] :: mupen64plus: Name: THE LEGEND OF ZELDA 
RetroArch: [libretro INFO] :: mupen64plus: MD5: 57A9719AD547C516342E1A15D5C28C3D
RetroArch: [libretro INFO] :: mupen64plus: CRC: 693ba2ae b7f14e9f
RetroArch: [libretro INFO] :: mupen64plus: Imagetype: .z64 (native)
RetroArch: [libretro INFO] :: mupen64plus: Rom size: 33554432 bytes (or 32 Mb or 256 Megabits)
RetroArch: [libretro INFO] :: mupen64plus: ClockRate = f
RetroArch: [libretro INFO] :: mupen64plus: Version: 1449
RetroArch: [libretro INFO] :: mupen64plus: Manufacturer: 43
RetroArch: [libretro INFO] :: mupen64plus: Cartridge_ID: 4c5a
RetroArch: [libretro INFO] :: mupen64plus: Country: Unknown (0x245)
RetroArch: [libretro INFO] :: mupen64plus: PC = 80000400
RetroArch: [libretro INFO] :: mupen64plus: Save type: 5
ReadSpecialSettings: DEFAULT
RetroArch: [libretro INFO] :: SSE detected, using (some) optimized math functions.
Segmentation fault (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.