#21  
Old 29th December 2012, 09:17 PM
mudlord_ mudlord_ is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Dec 2012
Posts: 383
Default

oh yeh, i found the archive you were wanting....
Reply With Quote
  #22  
Old 29th December 2012, 09:27 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

Nice, if by any means I could check it out sometime that would be nice, too.

Every day!!!
EVERY DAY!!!
I feel like I have thousands of creative ideas I need to try out ASAP with this RSP dll XD, I keep trying new things it's like I never run out of work, when you see documentation or official news/info sources that helps isolate options down a bit
Reply With Quote
  #23  
Old 29th December 2012, 10:32 PM
mudlord_ mudlord_ is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Dec 2012
Posts: 383
Default

good, you keep doing that and ill keep living in my plastic fantastic world.
Reply With Quote
  #24  
Old 29th December 2012, 10:39 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

hahaha, well thx for the hook-up at any rate,

I feel like plastic working on this shit non-stop but that doesn't change that I'm still enjoying the heck out of it
Reply With Quote
  #25  
Old 30th December 2012, 09:57 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

You certainly weren't exaggerating.

Looking at the archive I can see why Michael Tedder credited LaC.

The PDFs are especially, extremely informative and valuable.

I can't stand it how unorganized SGI was though, with the official opcode names and even the mnemonics.
Even in the assembler manual references they contradict themselves with typos on what the correct mnemonic should be.

Anyway that's all aside from my gratitude.
I'll try not to put it to waste.
Reply With Quote
  #26  
Old 4th February 2013, 12:08 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

An interesting trivia I found about this opcode.

Code:
ADDIU   $at, $0, 0x8000 # prebuffer VR file one element at a time
SH      $at, 0x000($0)
SH      $at, 0x002($0)
SH      $at, 0x004($0)
SH      $at, 0x006($0)
SH      $at, 0x008($0)
SH      $at, 0x00A($0)
SH      $at, 0x00C($0)
SH      $at, 0x00E($0)
VNOP
LQV     $v0[0], 0x000($0)
VABS    $v0, $v0, $v0
What should be the result of VR[0]?

All the reversed algorithms such as in PJ64 RSP suggest that if src == -32768, dst = abs(-32768) - 1 or +32767.

Most likely that this is correct due to the alternative case: take si = -32768, di = -si which evaluates to di = -32768, which is not the absolute value of any real number.

Not only is this case not secured by the standard algorithm described for VABS, but there is talk about doing the standard 16-bit signed clamp:

if (x > +32767)
/**/x = +32767.
else if (x < -32768)
/**/x = -32768.

Why implement the saturated arithmetic two-fold if the result is the absolute value, a whole number that is never negative?

It probably is a bug even in the SGI emulator as well.
In any case, to make 100% sure I decided to add a check if any games try to do the absolute value of -32768, which so far I have had no hits.
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 09:46 PM.


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