Go Back   Project64 Forums > General Discussion > Open Discussion

Reply
 
Thread Tools Display Modes
  #1121  
Old 15th January 2015, 01:03 AM
zilmar zilmar is offline
Core Team
Alpha Tester
Project Supporter
Administrator
 
Join Date: Jun 2005
Posts: 989
Default

I have been going through the pull request, in general it looks all good, and I probably should just accept it, just doing more testing and looking at the code, just do not have a lot of time.
Reply With Quote
  #1122  
Old 15th January 2015, 01:06 AM
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

Thanks for the information V1del.

zilmar you might be tolerant of it, and I can't oppose that, but hopefully I'm saving both him and you time in the future pull requests to come so it doesn't take you so long in later ones.
Reply With Quote
  #1123  
Old 15th January 2015, 02:13 AM
Melchior's Avatar
Melchior Melchior is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Apr 2007
Location: NH, USA
Posts: 230
Talking

HUWayyy Zilmar THE GRAND, HE LIVES
__________________
(PC Specs)
CPU: AMD FX-9590 4.7GHz 8-core
CPU Instructions: MMX, SSE1-4
Motherboard: Asus SABERTOOTH 990FX R2.0
GPU: nVidia GTX 1070 Ti 8GB
GFX Drivers: Nvidia v441.66
OS: Windows 7 Ultimate 64-bit SP1
RAM: 32GB Kingston 1866MHz DDR3

Favorite Emulators:
PS2 : PCSX2 (Auto-Builds)
SNES : ZSNES

My PJ64 setup:
EXE : v2.4.0.1114
GFX : Project64-Video (v2.2.0.1114)
SPU : AziAudioNEW (v0.70)(2017-09-14)
INPUT : NRage(v2.5.3.1114)
RSP : RSP (v1.7.4.1114)
Reply With Quote
  #1124  
Old 15th January 2015, 03:40 AM
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

went ahead and committed that CreateFile thing rpg pointed out.

Doesn't affect anything but I figured it out, may as well get it over with in case it matters later.
Reply With Quote
  #1125  
Old 15th January 2015, 03:51 AM
RPGMaster's Avatar
RPGMaster RPGMaster is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Dec 2013
Posts: 2,008
Default

Good to hear !

Something's been confusing me for a while. I've been reviewing LWC2/SWC2 instructions lately, and I noticed something unusual about your SDV edge case implementation.
Code:
for (i = 0; i < 8; i++)
            DMEM[BES(addr &= 0x00000FFF)] = VR_B(vt, (e+i)&0xF);
Is this some kind of mistake? addr never changes, besides maybe the first time. I noticed this piece of code is the reason WDC with Jabo 1.7 looks different with your RSP than other plugins.
Reply With Quote
  #1126  
Old 15th January 2015, 04:05 AM
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

I know about that. It's a brain fart I couldn't help but notice while re-reading the source.

I didn't fix it--I don't know why. Maybe I wanted to wait for somebody to see where a game used it.

https://github.com/cxd4/rsp/commit/c...c473fb34dL1184
That was the commit that broke it. I had a brain fart when optimizing SDV--the LS_Group_I function was my implementation of the documentation SGI's patent had on it, which was definitely bug-free (but like 15 times slower).

I don't really want to know how it looked on D3D8 though...could you compare screenshots in angrylion's plugin of how the game looks?
Reply With Quote
  #1127  
Old 15th January 2015, 04:06 AM
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

Dammit, and stop quoting my code with weird spacing!

you still put stuff like this
Code:
for (i = 0; i < 8; i++)
            DMEM[BES(addr &= 0x00000FFF)] = VR_B(vt, (e+i)&0xF);
Don't cause people to think I space my shit like that dammit. At the very least use tabs, instead of 12 spaces.
Reply With Quote
  #1128  
Old 15th January 2015, 04:48 AM
RPGMaster's Avatar
RPGMaster RPGMaster is offline
Alpha Tester
Project Supporter
Super Moderator
 
Join Date: Dec 2013
Posts: 2,008
Default

Rofl, I have a bad habit of copy pasting, with the first line of code not being tabbed. I almost forgot that you already implemented a way to play frame by frame. I assumed you wanted filters off.
The left image = before fixing. The right = after.


For the change, I just did
Code:
for (i = 0; i < 8; i++)
    DMEM[BES(addr + i) & 0xFFF] = VR_B(vt, (e + i) & 0xF);
This is correct right? Just want to be 100% sure .

Idk if you're interested in optimizing edge cases, but for SDV & SQV edge case, I've only seen e = 12. I'll probably start testing more games after I finish refining algorithms, now that I'm curious about certain things.

V1del, thanks for the info.

Last edited by RPGMaster; 15th January 2015 at 10:04 AM.
Reply With Quote
  #1129  
Old 15th January 2015, 10:47 AM
blikblum blikblum is offline
Junior Member
 
Join Date: Jan 2015
Posts: 1
Default

Quote:
Originally Posted by RPGMaster View Post
Is there a way for me to choose which commits to submit in a pull request? Otherwise, I'll generally just wait until it gets accepted, before pushing new commits.
.
There are some options, here's one:

Create a new branch from the last commit that you want to be in the Pull Request (PR):

Code:
git branch name-of-the-branch <sha1-of-commit>
Push to github

Go to github homepage, select the new created branch and create a new PR.

Only changes made to this branch will get in the PR. If you want to modify something in that branch do a checkout and make commits

Code:
git checkout name-of-the-branch
[do commits]

to get back to master

Code:
git checkout master
It's advisably always to create a branch for each fix / feature, so makes easy to contribute back and continue working
Reply With Quote
  #1130  
Old 16th January 2015, 04: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

Thanks blikblum for extending on the Git usage explanations and options for us.

Quote:
Originally Posted by RPGMaster View Post
Idk if you're interested in optimizing edge cases, but for SDV & SQV edge case, I've only seen e = 12.
Mmm...optimize too many edge cases and the interpreter starts to look like a recompiler.

I only did a switch on the addr/element alignment in SWC2 because unaligned instructions are illegal--which like any other invalid/illegal RSP operation has to execute anyway without exceptions. Still, for documentation sake (and for much better accuracy and performance), I only singled out the address' 64-bit alignment (or lack thereof) for optimizing parallel data moves. This fails only for games like World Driver Championship which of course uses unaligned, illegal SDV instruction.

Besides, even if I were to optimize exact game-specific cases, it would be less like an interpreter, more like a recompiler. Too many hard branches combining element/address alignment and it's hardly any different than working on a recompiler or HLE game hacks really.
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 11:46 AM.


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