Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #1  
Old 14th April 2013, 05:53 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default "Static Interpreter"

Current releases and conversation moved to:
http://www.emutalk.net/threads/56919...rpreter-Plugin


Old info: The interpreter plugin has successfully outperformed Jabo's RSP re-compiler plugin for Project64 in games particularly with audio HLE'd (not handled by the RSP) and LLE graphics (emulated by the RSP). Today's RSP plugin included with Project64 2.x was modified by RPGMaster / LegendOfDragoon subsequently to adjust this gap so that the recompiler plugin is once again faster with that pool of games.

Last edited by HatCat; 21st March 2018 at 01:39 AM.
Reply With Quote
  #2  
Old 14th April 2013, 02:30 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Quote:
Originally Posted by squall_leonhart View Post
still won't boot RS unless Interpreter CPU Method is set in the debug menu :\
You're not using the correct RSP plugin. :/

There is no Debug menu for anything of the RSP unless it's a zilmar spec #1.2 RSP plugin, and this is a #1.1.

Make sure per-ROM plugins for Rogue Squadron was not left at "RSP 1.7.0.9" because that is not the name of my plugin.

Using the recompiler with my plugin is impossible because it is interpreter-only.

Quote:
Originally Posted by suanyuan View Post
any instruction to compile your RSP project with VC and gcc? and how to configure to build a specific type of RSP?
The native C build is done with GCC/MinGW up-to-date packages all as of 04-10-2013 (latest RT, GCC core, binutils).

The C++ build was done by Microsoft Visual Studio 2010.
I have the project files somewhere, but I didn't upload them.
(I guess I will add the Visual Studio project files in the next package release, if I get enough bug reports/suggestions to upload a new version to the thread.)

They should be able to compile straight out of the box without any code changes, as long as your compiler supports ANSI C rules + `inline` keyword.

Code:
@ECHO OFF
TITLE MinGW Compiler Suite Invocation
CD ..\..\MINGW\BIN\

ECHO CC1.EXE:  Compiling C source code...
GCC.EXE -S -O3 -m3dnow -mabm -maes -msse2 -o ../rsp/rsp.s ../../rsp/rsp.c
ECHO.

ECHO AS.EXE:  Assembling compiled sources...
AS.EXE --statistics -o ../rsp/rsp.o ../rsp/rsp.s
ECHO.

ECHO LD.EXE:  Linking assembled object file...
GCC.EXE --shared -s -O -o ../rsp/rsp.dll ../rsp/rsp.o
PAUSE
So just copy all that stuff out of the .7z\SRC folder, and compile the main file `rsp.c`. It should get straight to work.
Reply With Quote
  #3  
Old 14th April 2013, 03:56 PM
the_randomizer's Avatar
the_randomizer the_randomizer is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Sep 2008
Location: USA
Posts: 1,134
Default

Gauntlet Legends boots, but the audio crackles like hell. Suggestions?

I should note pressing F1 crashes the ROM and emulator.
__________________
My rig:
CPU: Intel Core i7 4470 3.4 GHz to 3.9 GHz
Video card:: MSI nVidia GTX 970 4 GB GDDR5
OS: Windows 7 Professional 64-bit
RAM: 16 GB DDR3 SDRAM 10600
HDD: 2 x Western Digital 1 TB HDDs
Monitor: 23" Asus Full HD LED

Oh, and Snes9x > Zsnes in every way

Last edited by the_randomizer; 14th April 2013 at 03:59 PM.
Reply With Quote
  #4  
Old 14th April 2013, 04:53 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Quote:
Originally Posted by nintendo1889 View Post
I should note pressing F1 crashes the ROM and emulator.
Hmmm it does crash on F1, and Shift+F1.

However it seems to only be this game, maybe WDC/SR64.
Any other game I tried seems to reset fine with F1 without crashing.

It probably is because of how zilmar manages the threading during the intermission of re-starting an SP task.
I can't really control that from within the RSP, so that bug is not on my end.

Quote:
Originally Posted by nintendo1889 View Post
Gauntlet Legends boots, but the audio crackles like hell. Suggestions?
You might need to play with the AI update/VI refresh values in PJ64 RDB.
I guess zilmar never had much of a chance to since it was hard just getting this game to boot in the first place, let alone run at full speed.

I just tested this game on PJ64 1.7.0.48 with Jabo's 1.7 audio, sync-game-to-audio LLE on my RSP, the sound is perfect.
It is bad only on this current 2.0 EXE we are using, so it's because of his timing bypasses. I can't control how the core is doing the audio.

But if you do downgrade to that older EXE the audio should sound just fine.

It's a shame but I really can't test audio HLE....
AziAudio.dll hasn't HLE'd the audio ucode for Gauntlet Legends,
and I can't seem to get the new 1964 Audio Plugin to work anywhere except on 1964 but then my RSP doesn't initialize on 1964. (But I did that on purpose; they really need to fix that DllConfig bug on their end.)
Reply With Quote
  #5  
Old 14th April 2013, 05:02 PM
the_randomizer's Avatar
the_randomizer the_randomizer is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Sep 2008
Location: USA
Posts: 1,134
Default

Quote:
Originally Posted by FatCat View Post
Hmmm it does crash on F1, and Shift+F1.

However it seems to only be this game, maybe WDC/SR64.
Any other game I tried seems to reset fine with F1 without crashing.

It probably is because of how zilmar manages the threading during the intermission of re-starting an SP task.
I can't really control that from within the RSP, so that bug is not on my end.



You might need to play with the AI update/VI refresh values in PJ64 RDB.
I guess zilmar never had much of a chance to since it was hard just getting this game to boot in the first place, let alone run at full speed.

I just tested this game on PJ64 1.7.0.48 with Jabo's 1.7 audio, sync-game-to-audio LLE on my RSP, the sound is perfect.
It is bad only on this current 2.0 EXE we are using, so it's because of his timing bypasses. I can't control how the core is doing the audio.

But if you do downgrade to that older EXE the audio should sound just fine.

It's a shame but I really can't test audio HLE....
AziAudio.dll hasn't HLE'd the audio ucode for Gauntlet Legends,
and I can't seem to get the new 1964 Audio Plugin to work anywhere except on 1964 but then my RSP doesn't initialize on 1964. (But I did that on purpose; they really need to fix that DllConfig bug on their end.)
Maybe I'll let Zilmar know of the regression, it's weird that the older beta works fine, but how it breaks in the newest. Now if I can only get World Driver Championship to work. I've yet to figure out which RDB plugin to use, too bad I can only have one in the folder at the time, otherwise they show up as ten duplicate names in the plugin selection window.
__________________
My rig:
CPU: Intel Core i7 4470 3.4 GHz to 3.9 GHz
Video card:: MSI nVidia GTX 970 4 GB GDDR5
OS: Windows 7 Professional 64-bit
RAM: 16 GB DDR3 SDRAM 10600
HDD: 2 x Western Digital 1 TB HDDs
Monitor: 23" Asus Full HD LED

Oh, and Snes9x > Zsnes in every way
Reply With Quote
  #6  
Old 14th April 2013, 05:13 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Quote:
Originally Posted by nintendo1889 View Post
Maybe I'll let Zilmar know of the regression,
Not really a problem.
He might not even be able to control it himself necessarily.

The nature of interrupting and re-starting especially in a way that is meant for compatibility but not necessarily accuracy, does not mean for it to also be the most stable solution. To "fix" it he might have to cancel the support.

Could be wrong; it's just not my focus.

Quote:
Originally Posted by nintendo1889 View Post
it's weird that the older beta works fine, but how it breaks in the newest.
If possible you might prefer testing on PJ64 1.6 or MUPEN64; those will be void of the new audio timing bypass settings so that they don't factor into the equation of testing for accuracy.

For games like this though obviously it requires PJ64 1.7 or later.

Quote:
Originally Posted by nintendo1889 View Post
Now if I can only get World Driver Championship to work. I've yet to figure out which RDB plugin to use, too bad I can only have one in the folder at the time, otherwise they show up as ten duplicate names in the plugin selection window.
Clicking the "About" button says "RSP Interpreter" for the normal rsp.dll, "Iconoclast's MLE Test" for the title if it's HLE gfx + LLE aud or the other way around, and "Basic RSP Simulator" if vid + aud are both HLE.

You just need rsp_pj64.dll to get World Driver Championship to work.
You need to use Jabo's DirectSound or zilmar's No Sound, not any other plugin.
e.g. AziAudio, zilmaraudio dll will crash the game at boot.

Last edited by HatCat; 14th April 2013 at 05:18 PM.
Reply With Quote
  #7  
Old 14th April 2013, 06:09 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Quote:
Originally Posted by nintendo1889 View Post
I should note pressing F1 crashes the ROM and emulator.
Sorry I forgot to go back and confirm this.

The issue happens with zilmar's RSP 1.7.0.9, not just my DLL.
So it almost certainly is indeed because of event handling with re-starting tasks for WDC/SR64.

Just making sure that it's not an issue I need to fix (heh, sounds funny I know).

Quote:
Originally Posted by suanyuan View Post
any instruction to compile your RSP project with VC and gcc?
So things I should do in the next release / zip upload:
  • add vs project build config files so that people compile using the correct settings, maybe an easy MinGW invocation script to build all those DLLs easily too
Nothing else?
No error messages about corner cases and edge conditions I get to test in the RSP emulator?
Never-before-exploited features?


Otherwise I can only judge my RSP emulator to be perfect as of the current implementation. There might be one or two things I could still have done to speed it up faster.


Quote:
Originally Posted by suanyuan View Post
and how to configure to build a specific type of RSP?
Use `config.h`.

...
Code:
/* Choose whether to define, or keep undefined, the above macros. */
#define MINIMUM_MESSAGE_PRIORITY    1 // show most messages of RSP weirdness
// #define EXTERN_COMMAND_LIST_GBI // Not really recommended but user preference
// #define EXTERN_COMMAND_LIST_ABI // Not really significant but user preference
// #define SEMAPHORE_LOCK_CORRECTIONS // Recommended only for CPUs supporting it
// #define WAIT_FOR_CPU_HOST // Never use, except with some ROMs on Project64 2.
// #define SP_EXECUTE_LOG // For debugging only.  Keep it off to free CPU.
// #define VU_EMULATE_SCALAR_ACCUMULATOR_READ // experimental but needs tests
Reply With Quote
  #8  
Old 16th May 2013, 01:45 AM
et500 et500 is offline
Project Supporter
Senior Member
 
Join Date: Sep 2008
Posts: 113
Default

Wave Race 64 water is looking strange when using this RSP plugin, it shows some kind of grid on it when using Jabo Video in LLE. Using z64gl the water is fine but the sky effects seem to be rendered wrong. Don't know if the RSP or video plugin is the cause however.
Reply With Quote
  #9  
Old 16th May 2013, 01:50 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,260
Default

Quote:
Originally Posted by et500 View Post
Wave Race 64 water is looking strange when using this RSP plugin, it shows some kind of grid on it when using Jabo Video in LLE. Using z64gl the water is fine but the sky effects seem to be rendered wrong. Don't know if the RSP or video plugin is the cause however.
If it appears fine in z64gl, then it probably was fault of Jabo D3D8.

If you're not sure, remember you can always test with zilmar's RSP 1.7.0.9 for Project64.
If you have the same issue on both RSP plugins, but changing the gfx plugin fixes it, you think that probably the RSP is not to blame.

Quote:
Originally Posted by suanyuan View Post
there are several options:

(1) copy the z64gl.pdb file to the same folder of z64gl, then you should be able to find out which line of code cause the crash.
(2) tested with debug build

Did you get a message from windows asking you if you want to debug it with a debugger?
Heh, good idea I guess.

I never did use the integrated debugger.
Hell, I wrote my own RSP debugger instead of using zilmar's most of the time.

I'll compile the debug build and get back to you with some debug info, unless I'm too uneducated with the WINAPI to get even that far. T_T
Reply With Quote
  #10  
Old 26th October 2013, 07:07 AM
thefowles1 thefowles1 is offline
Junior Member
 
Join Date: Mar 2010
Posts: 2
Default

BatCat - what video plugin do you use for Gauntlet Legends? Ziggy's z64gl doesn't show up in my list of GFX plugins in PJ64 (despite it being in /plugin/GFX), Jabo's D3D8 still gives me missing/black textures out the wazoo, and Glide64 shows environments but is missing the HUD. :C
Glide's is the closest to playable, but the missing HUD makes it not so. Otherwise, it simply briefly flashes black every few seconds, which I could look past if I could see my HUD.

I'm so close to getting it playable, I can taste it...
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 06:29 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.