What's new

"Static" RSP Interpreter Plugin

Iconoclast

New member
I'm posting an updated version of my RSP plugin project to this forum instead. To be honest, I had no mental assumption I was necessarily going to update it again or do another release, but per fate of life transitions the unexpected opportunity has presented itself nevertheless.

So, it's named "Static" Interpreter for a few reasons (one of which being the need to have a name better than just "RSP"). I created it as early as 2012 or 2011 (can't remember) in pursuits of merging conditional code paths (branches and jumps) and other dynamic elements causing the execution of interpreted RSP operations to be less direct. One such improvement starting around 2014 was vectorization of the writeback of scalar elements through true client-side vectors (as closely as possible resembling SGI RSP vectors). Anybody running a 64-bit capable CPU or a 32-bit CPU and operating system supporting the Intel SSE2 instruction set should be able to run this plugin without problems.

Most of you probably aren't looking for that sort of information, though. In the 7Z file(s) attached to this thread will be an explanation of the files included. Basically, if you use a 32-bit N64 emulator (such as Mupen64, 1964, Project64, Apollo and the like), put i686-sse/Win32/rsp.dll in $emulator\Plugin. The spconfig.exe next to it isn't strictly required (at least if you're using the plugin for full LLE of all things--graphics, audio and everything else), but it's a good idea to run this from the emulator EXE folder (NOT the Plugin folder you put the DLL in) before first-time use in emulation to set up which things you'd like handled by the RSP plugin (LLE audio from plugins like Jabo's DirectSound, LLE graphics from plugins like angrylion's, ziggy's z64gl, etc.) or externally by the HLE plugin (Glide[N]64 for HLE graphics, the HLE mode of Azimer's Audio, etc.).

I don't know for how many weeks or months I'll have this much time free for any subsequent updates to this attachment, but as far as feedback is concerned I'd like to hear about any differences between the last release (or your EmuCR download, which wasn't quite as many years ago), good or bad, as well as attempts at measuring the performance of particular parts of the plugin (LLE graphics or LLE audio if you don't know how to profile on a function-by-function basis) with certain games.

- - - Updated - - -

I guess I forgot to comment (maybe in a separate post) (whoops maybe not) that the source code is available at:
https://github.com/cxd4/rsp

Didn't really make sense to bundle it with the archive since line-endings in text files on a Unix-based machine will confuse people compiling it on Windows. Just clone the repository using Git; that's the best way to get the source. Folks sending contributions for things like RDB or support files to repositories like GlideN64 and Project64 probably know how to do that already.

The source code is primarily beneficial to end users who wish to compile the plugin for optimizations beyond SSE2. I do not have any explicit SIMD code in this plugin for "forcing" optimizations to NEON or SIMD for non-Intel ISAs (i.e., non-SSE vectorization), but new versions of GCC are always being ported to the MSYS2 project (less often the MinGW project, which is arguably more stable but 32-bit-only and can't build the 64-bit version of the plugin).

The version numbers of GCC I used to build the plugin are included in the text file in the 7Z; you can always build the plugin yourself from upgraded versions of GCC with new enhancements to auto-vectorization or by changing the -march=native in the Windows .cmd build scripts to -mssse3 if you want to target SSSE3 optimizations, -msse4a if you want SSE4a, etc.. The builds I post will always be compatible with CPUs limited to nothing past SSE2 implementation.
 

Attachments

  • rsp-20180318.7z
    79.7 KB · Views: 10,329
Last edited:

Black Zero

New member
Thank you very much for this, THE best RSP plugin to date!

Would there be any chance of posting an updated build of the plugin? I have literally no idea how to build this.

Thanks in advance!
 

Pokefreak911

New member
Having troubles getting it working, just coming up with 'Failed to read config'. I ran the config with 010?? I most likely did something wrong but I can't seem to find many instructions on what to do.
1638881923235.png
 

Gent

The Soul Reaving Gentleman
Administrator
Having troubles getting it working, just coming up with 'Failed to read config'. I ran the config with 010?? I most likely did something wrong but I can't seem to find many instructions on what to do.
View attachment 40496
Hi Pokefreak911 ,Iconoclast has not visited these forums since 2018. You might have better luck on irc, #n64dev on efnet I think?
 
Last edited:

Top