Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #221  
Old 14th May 2013, 12:55 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Quote:
Originally Posted by jelta View Post
I have SPV Weird address occurring, then LPV weird adress in Doubutsu no Mori aka animal forest.
Please by pressing A button Once you've loaded save state.
Awesome! I'll check right on it when I can.

Quote:
Originally Posted by suanyuan View Post
Code:
#ifdef PARALLELIZE_VECTOR_TRANSFERS
#define VR_T(i) VC[i]
#else
#define VR_T(i) VR[vt][ei[e][i]]
#endif

#ifdef PARALLELIZE_VECTOR_TRANSFERS
#define ACC_R(i)    VR[vd][i]
#define ACC_W(i)    VACC[i].s[00]
#else
#define ACC_R(i)    VACC[i].s[00]
#define ACC_W(i)    VR[vd][i]
#endif
Is this correct? looks like typo to me.
Why would it be a typo?
Were you meaning to highlight something particular? :/
Reply With Quote
  #222  
Old 14th May 2013, 01:16 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Son of a bitch.

I can't trust Windows Explorer to handle file copies anymore.
It just copies all the root files and forgets all the stuff under the subdirectories that I need.

I just realized because everything under rsp/su/* and rsp/vu/* is out-of-date source code with the old release.

I'll fix it in the next release which thanks to jelta's bug report I am bound to do soon.
Reply With Quote
  #223  
Old 14th May 2013, 01:16 PM
shunyuan's Avatar
shunyuan shunyuan is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Apr 2013
Posts: 491
Default

Quote:
Originally Posted by FatCat View Post
Awesome! I'll check right on it when I can.



Why would it be a typo?
Were you meaning to highlight something particular? :/
My question is:

Why when PARALLELIZE_VECTOR_TRANSFERS is defined, then you swap the definitions of ACC_R(i), and ACC_W(i)?
__________________
---------------------
CPU: Intel U7300 1.3 GHz
GPU: Mobile Intel 4 Series (on board)
AUDIO: Realtek HD Audio (on board)
RAM: 4 GB
OS: Windows 7 - 32 bit
Reply With Quote
  #224  
Old 14th May 2013, 01:23 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Because parallelization is better achieved when reading out source computational results of the VR file to a destination buffer of the same register file (VR[vd]) and then written out to the vector accumulator (VACC[i]), than in the other order.

Which order you read from and then write to is a matter of accuracy/efficiency, depending on if parallelism can be maintained.
Reply With Quote
  #225  
Old 14th May 2013, 02: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,236
Default

Now that's interesting.

Animal Forest / Doubutsu no Mori uses the F3DZEX graphics microcode.
I always thought only the two Zelda64 games use F3DZEX (hell, what else could the Z mean).

But nope.
Zelda OOT uses F3DZEX 2.06H,
Zelda MM uses F3DZEX 2.08I,
Zelda Master Quest (GC) AND Doubutsu no Mori use F3DZEX 2.08J.

I suppose it's possible (but highly unlikely, because we have a special CFB/semaphore task for this particular game) that I may be fixing some part of Zelda MQ simultaneously.

Anyway I see the problem and am fixing it, should take half an hour.
I hope to have a new public release posted to this thread within the next 24 hours so jelta can test.
Reply With Quote
  #226  
Old 15th May 2013, 09:14 AM
shunyuan's Avatar
shunyuan shunyuan is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Apr 2013
Posts: 491
Default

Quote:
Originally Posted by FatCat View Post
I guess you should try Conker's Bad Fur Day, though.
There's a really good example of heavy RSP usage.

Custom HLE video plugins generally play it at full speed, but I guess the graphics simulation re-compilation in your plugin isn't up to that stage of completion yet.

It is definitely faster though.
I do the survey for the slow down of Conker's Bad Fur Day.

The slow down is not due to re-compilation, but caused by graphics rendering (rdp emulation). I didn't see too much differences in re-compliation between my code and glN64 or RiceVideo.

The z64gl emulate rdp commands in a more generic way, but some rdp commands are very slow and some rdp commands cause error or crash.

Any chance for you to look at the rdp emulation of z64gl?
__________________
---------------------
CPU: Intel U7300 1.3 GHz
GPU: Mobile Intel 4 Series (on board)
AUDIO: Realtek HD Audio (on board)
RAM: 4 GB
OS: Windows 7 - 32 bit
Reply With Quote
  #227  
Old 15th May 2013, 01:24 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Quote:
Originally Posted by suanyuan View Post
The z64gl emulate rdp commands in a more generic way, but some rdp commands are very slow and some rdp commands cause error or crash.

Any chance for you to look at the rdp emulation of z64gl?
I would have to get the plugin compiling properly first.
But it seems that only you at the moment know how to do that.
Reply With Quote
  #228  
Old 15th May 2013, 01:40 PM
HatCat's Avatar
HatCat HatCat is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Feb 2007
Location: In my hat.
Posts: 16,236
Default

Code:
/* #define EMULATE_VECTOR_RESULT_BUFFER */
/* #define PARALLELIZE_VECTOR_TRANSFERS */

#ifdef EMULATE_VECTOR_RESULT_BUFFER
static short Result[8];
#endif

#ifdef EMULATE_VECTOR_RESULT_BUFFER
#ifdef PARALLELIZE_VECTOR_TRANSFERS
#define ACC_R(i)    Result[i]
#define ACC_W(i)    VACC[i].s[00]
#else
#define ACC_R(i)    VACC[i].s[00]
#define ACC_W(i)    Result[i]
#endif
#else
#ifdef PARALLELIZE_VECTOR_TRANSFERS
#define ACC_R(i)    VR[vd][i]
#define ACC_W(i)    VACC[i].s[00]
#else
#define ACC_R(i)    VACC[i].s[00]
#define ACC_W(i)    VR[vd][i]
#endif
#endif
... in rsp/execute.h:

Code:
EX:
        if (inst >> 25 == 0x25) /* is a VU instruction */
        {
            const int vd = (inst & 0x000007C0) >>  6;
            const int vs = (inst & 0x0000FFFF) >> 11;
            const int vt = (inst & 0x001F0000) >> 16;
            const int e  = (inst & 0x01E00000) >> 21;
#ifdef PARALLELIZE_VECTOR_TRANSFERS
            SHUFFLE_VECTOR(vt, e); /* *(__int128 *)VC = shuffle(VT, mask(e)); */
#endif
            SP_COP2_C2[inst %= 64](vd, vs, vt, e);
#ifdef EMULATE_VECTOR_RESULT_BUFFER
            memcpy(VR[vd], Result, 16);
#endif
            continue;
        }
Reply With Quote
  #229  
Old 15th May 2013, 03: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,236
Default LLE SP Interpreter: Public Release 3

New public release is out to this thread for testing.
Get it from the latest attachment to the first post.

Thanks to jelta for mining out that bug with Animal Forest.
And again to Olivieryuyu/mesk14 for those more duplicated addr unaligned handles.

View the list of changes in this version.
Reply With Quote
  #230  
Old 15th May 2013, 04:06 PM
shunyuan's Avatar
shunyuan shunyuan is offline
Alpha Tester
Project Supporter
Senior Member
 
Join Date: Apr 2013
Posts: 491
Default

I have send a PM to you.
__________________
---------------------
CPU: Intel U7300 1.3 GHz
GPU: Mobile Intel 4 Series (on board)
AUDIO: Realtek HD Audio (on board)
RAM: 4 GB
OS: Windows 7 - 32 bit
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 08:31 PM.


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