Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #691  
Old 1st March 2014, 08:26 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,255
Default

Evidently both.
Did plenty of things related and not related to emulation, after teaching myself so much experience from doing this plugin.

The thing that I hate about emulation is that if I do a perfect interpreter, it precedes the attention of somebody doing a modern, dynamic recompiler emulator. I personally hate recompilers.

At the same time, I wouldn't mind if somebody forked my RSP interpreter and made a recompiler out of it, preferably keeping the interpreter as an option.

Not like it matters when there's HLE...if you prefer speed over accuracy then why emulate the RSP at all? These days, LLE is getting to full speed even on older computers like my 1.90 GHz Athlon, so I don't see the point in worrying about sacrificing that much accuracy.
Reply With Quote
  #692  
Old 1st March 2014, 10:08 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,255
Default

btw sorry for anyone who may be trying to reply to some of these threads with links...

If it says to wait for a moderator to approve your post, don't listen to that crap. zilmar's probably not gonna be here for months/years.

Try to bypass the URL auto-link parser somehow, and avoid direct image references where possible.
Reply With Quote
  #693  
Old 2nd March 2014, 01:15 AM
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

Hate to say it, but this site's all but dead. I doubt we'll ever see another update.
__________________
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
  #694  
Old 2nd March 2014, 03:03 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,255
Default

You don't like this site? Would you rather have everything related to plugin development moved onto an IRC chat board or channel?

Or do you find zilmar's forum layout preferable?
Reply With Quote
  #695  
Old 3rd March 2014, 04:33 AM
kode54's Avatar
kode54 kode54 is offline
Project Supporter
Junior Member
 
Join Date: Mar 2013
Posts: 14
Default

Okay, I managed to get LazyUSF and this RSP working on Android-ARM7, but it's way too slow for normal playback. So, anyone want to help optimize this RSP's vector unit for ARM Neon?
Reply With Quote
  #696  
Old 3rd March 2014, 02:42 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,255
Default

Don't understand ARM stuff. The key point to not hand-writing most SSE code was that not every vector unit used Intel's SSE operations, so if you use an optimizing compiler like GCC it should generate vector math. (Visual Studio is certainly no guarantee. Check the assembly output for details.)

What functions take the longest for RSP emulation on ARM?
Is the playback slow there due to RSP emulation, or is it something else about the ported module?
Reply With Quote
  #697  
Old 4th March 2014, 04:16 AM
kode54's Avatar
kode54 kode54 is offline
Project Supporter
Junior Member
 
Join Date: Mar 2013
Posts: 14
Default

I found out that the problem was that GCC doesn't auto vectorize for Neon unless you pass -funsafe-math-optimizations as well, due to not wanting to cause precision errors.

I also had to enable MASK_SA to mask, since it seems that ARM doesn't mask that on its own, which was the initial showstopper.
Reply With Quote
  #698  
Old 4th March 2014, 04:20 AM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,255
Default

I see. Thanks for letting me know.
I was aware GCC was overly skeptical and too "safe" with SIMD vector code generation, but not so far as to miss in even those circumstances.... This is more evidence that I should try playing with a complete rewrite of this plugin in terms of SSE functions sometime.

Quote:
Originally Posted by kode54 View Post
I also had to enable MASK_SA to mask, since it seems that ARM doesn't mask that on its own, which was the initial showstopper.
Which MASK_SA def?

The one where the shift amount is forced in software (sa & 31) or the one that just says (sa) and hopes the 32-bit CPU architecture will implicitly extract the 5-bit shift amount for us?

If you're compiling on a 64-bit CPU where the shift operand can be up to 63, then yeah, it makes sense you would have had to flip that. Hm.
Reply With Quote
  #699  
Old 4th March 2014, 04:27 AM
kode54's Avatar
kode54 kode54 is offline
Project Supporter
Junior Member
 
Join Date: Mar 2013
Posts: 14
Default

I needed (sa & 31), and I'm compiling for ARM7EABI, 32 bit.

I just checked an ARM emulator, and its behavior when handling shift by register is to read the shift count from the low byte of the count register, and if the count is 32 or greater, it sets the target register to 0, except for ASR, which sets it completely to the sign bit of the input. Special cases in this particular ARM emulator for shifts of 32 to set the carry flag to either the highest or lowest bit of the input value.

So, no, I guess ARM, even 32 bit, does not mask shift by register to just the bits of that count register which could fit within the GPR size.
Reply With Quote
  #700  
Old 4th March 2014, 06:54 AM
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 HatCat View Post
You don't like this site? Would you rather have everything related to plugin development moved onto an IRC chat board or channel?

Or do you find zilmar's forum layout preferable?
Uh, I never said that I didn't like the site I was merely making an observation on the current status of said site, nothing more. Nothing wrong with the layout of the site, either. It's just, when I registered on this site as a beta/alpha tester, there was way more activity, but now that PJ64 is past the beta stages, what more can I contribute? Nothing.

I don't know jack shit about programming, much less improving PJ64 or its plugins, so, there ya have it. I don't mind you keeping the discussion here, sorry if it sounded like I was saying otherwise, I wasn't, so no worries. If I can't contribute or help test, report bugs in plugins or the emulator itself, no point in me being here anymore. And not, not trying to be an attention whore, it's true, the beta stage is long gone, Zilmar has gone AWOL, the only thing that can improve now really, are plugins. With no programming skills, yeah...
__________________
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; 4th March 2014 at 06:58 AM.
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 04:48 PM.


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