CPU softfilters

Squarepusher’s been working on bringing CPU softfilters to platforms that can’t do shaders, such as the Wii. I think they’re included by default in the latest code. If not, it should be coming soon.

Thought you guys would want to know :slight_smile:

Excuse my ignorance, but what are CPU softfilters?

Basically, doing video filtering in software (on the CPU) instead of hardware (on the GPU). It means a performance hit because the CPU is busy doing things that aren’t running the core, but if you’re on a core that isn’t taxing the hardware anyway, then bonus.

Ah ok, so it might be usable on NES/SMS/PCE?

Yeah, that’s the hope, at least. They haven’t really been tested on Wii to see what kind of performance hit is entailed, either, but there’s been some work on the backend to make them as unobtrusive as possible.

Not the best choice but this is the only core compiled I have available. https://www.dropbox.com/s/6zjck23vu0hrt … nextSF.dol

No game actually ran fullspeed though, I also compiled the NGP core but it still doesn’t read input. Did not notice anything else, 608x480 hasn’t been added yet and if you see it in the core that’s because I added it for that build.

I imagine GBA emulation is fairly CPU intensive. I see that ogg support has been added for CD games too, will be handy to save HDD space.

I’ve compiled to almost lastest commits in github, now I can see an option to use Video Filters, but how do they work? I’ve added *.filt files to a path like “usb:/retroarch/filters/video” then option “Settings->Video options->Soft Filters Enable: ON” and nothing, I’ve added an option to retroarch.cfg, video_filter = “2xSai.filt” -not handled in RGUI-

I’ve searched in Makefile.griffin and it has:


  HAVE_FILTERS_BUILTIN     := 1
  ...
  HAVE_BUILTIN_AUTOCONFIG  := 1
else ifeq ($(platform), ps3)
	#TODO
  MEDIA_SHADER_DIR := ps3/pkg/USRDIR/cores/shaders
else ifeq ($(platform), ps3-cobra)
	#TODO
  MEDIA_SHADER_DIR := ps3/iso/PS3_GAME/USRDIR/cores/shaders
else ifeq ($(platform), wii)

but in settings_data.c says:


#ifndef HAVE_FILTERS_BUILTIN
CONFIG_PATH(g_settings.video.softfilter_plugin, "video_filter", "Software filter", g_settings.video.filter_dir, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) WITH_FLAGS(SD_FLAG_ALLOW_EMPTY) WITH_VALUES("filt") WITH_CMD(RARCH_CMD_REINIT)
#endif

So, must display or not filters?

You have to compile them in gfx/filters. On linux, at least, they end up as dynamic libraries, which I know isn’t an option for Wii. Maybe it compiles *.a files for statically linking on Wii…?

I’ll ask Squarepusher about it next time I talk to him.

Thanks, I got messed up trying to find how to use filters.

By the way did you have problems with input in general? I compiled it as well and I’ve been trying like crazy to use the GC controller but failed horribly(input overall stopped working had to force turn off), I’ve tried manually but it did not work. Auto-detect only worked for wiimote, somewhat.

By the way did you have problems with input in general? I compiled it as well and I’ve been trying like crazy to use the GC controller but failed horribly(input overall stopped working had to force turn off), I’ve tried manually but it did not work. Auto-detect only worked for wiimote, somewhat.[/quote]

yeah, kinda, just test a few cores with classic controller, but has some issues, on starting a core input works, but if I change to another core right there, controller is on, but not working, I needed to swith off then on the controller and works again.

P.S. Thanks for the new palette for FCEU -nintedo virtual console-, looks great