|
#1121
|
|||
|
|||
![]()
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.
|
#1122
|
||||
|
||||
![]()
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.
__________________
http://theoatmeal.com/comics/cat_vs_internet |
#1123
|
||||
|
||||
![]()
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) |
#1124
|
||||
|
||||
![]()
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.
__________________
http://theoatmeal.com/comics/cat_vs_internet |
#1125
|
||||
|
||||
![]()
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); |
#1126
|
||||
|
||||
![]()
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?
__________________
http://theoatmeal.com/comics/cat_vs_internet |
#1127
|
||||
|
||||
![]()
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); ![]()
__________________
http://theoatmeal.com/comics/cat_vs_internet |
#1128
|
||||
|
||||
![]()
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); ![]() 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. |
#1129
|
|||
|
|||
![]() Quote:
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> 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 to get back to master Code:
git checkout master |
#1130
|
||||
|
||||
![]()
Thanks blikblum for extending on the Git usage explanations and options for us.
Quote:
![]() 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.
__________________
http://theoatmeal.com/comics/cat_vs_internet |