libretro / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
47 stars 56 forks source link

Blargg NTSC filters are completely broken on Android #214

Closed turboboy215 closed 4 years ago

turboboy215 commented 5 years ago

When I try running any game with a filter, the screen looks absolutely hideous with a mixture of green and blue colors, the same effect in the picture below that someone posted a while ago but was supposedly fixed. 54725873-a46a5b80-4b3e-11e9-85c0-bb3817b67b12

When I try using the PC version, it works fine. Why is this happening to me? Is this some color conversion issue that never got fixed on Android?

hizzlekizzle commented 5 years ago

It probably came back with this commit: https://github.com/libretro/snes9x/commit/52f521160a3fed88dcbf8050e41b3c4078fb04d4

Without that commit, the image is broken all the time (wrong pitch). This has been a frustrating whack-a-mole problem...

ghost commented 5 years ago

Please try this https://ci.appveyor.com/project/funbars/snes9x/builds/24824162/artifacts

@bearoso: https://github.com/snes9xgit/snes9x/blob/master/libretro/jni/Android.mk snes_ntsc.c compiles 555.

Add LOCAL_CFLAGS := $(COREFLAGS) to force 565.

turboboy215 commented 5 years ago

How do I use this code? It looks like it most likely fixes the problem, but I don't know how to use this AppVeyor website to compile the code to a core.

ghost commented 5 years ago

Appveyor built Android cores at link above. Select *.so core for your Android and play.

Or you need compile for yourself? Edit this file:

https://github.com/snes9xgit/snes9x/blob/master/appveyor.yml

image: Visual Studio 2017

shallow_clone: true

environment:
  ANDROID_NDK: 'C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r17'

init:
  - set Path=%ANDROID_NDK%;%Path%

build_script:
  - cd libretro\jni && ndk-build

artifacts:
  - path: '**\libs\**\*.so'
turboboy215 commented 5 years ago

I can load the .so file into RetroArch, but there's no updated info on it, and I can't load ROMs with the core since they aren't associated with it. What do I do? I tried doing the "Core updater" with no success. It still won't let me open ROMs with it, as it just shows the list of other SNES cores.

hizzlekizzle commented 5 years ago

you should be able to load core > pick it from the list even with its raw lib name > load content

turboboy215 commented 5 years ago

It still won't show up, even with the raw name libretro.so. When I load the core, it doesn't give me the option for core info like the others, and it won't show up in the list of selected cores after I add the core. Is there something I need to update, like a missing configuration file?

ghost commented 5 years ago

Other than rename "snes9x_libretro_android.so", no idea. Maybe core in wrong folder? Or try another core?

Submitted fix upstream, since makefile is clearly wrong. I think it'll work.

turboboy215 commented 5 years ago

Yes! Renaming the core file worked! Thank you! And that problem was fixed, so now I can play SNES games with the effect! Feel free to close this issue now.

hizzlekizzle commented 5 years ago

Yes, Appveyor build works here, even with the NTSC filter enabled. Thanks @funbars!