- Decrease upscale glitches in dx10 (dx9 later) by hacking the UV coordinate system in borderline cases.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2348 96395faa-99c1-11dd-bbfe-3dabce05a288
- Let's use dx10 software rendering for the F9 renderer switch, if it's available.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2307 96395faa-99c1-11dd-bbfe-3dabce05a288
I don't have DX10 so this is (as usual!) untested. I'll be adding support for it to PCSX2 soon.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2301 96395faa-99c1-11dd-bbfe-3dabce05a288
- Re-enable the D3D10_CREATE_DEVICE_SINGLETHREADED flag, since it seems to be stable again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2283 96395faa-99c1-11dd-bbfe-3dabce05a288
* Disable GSdx's internal AspectRatio setting when using GSOpen2 (pcsx2 0.9.7 controls aspect ratios internally now)
* DX10 should be able to startup in fullscreen mode now, without needing to hit alt-enter (legacy 0.9.6 versions only)
* Added some comments for a failed attempt to disable DX10's default Alt-Enter behavior. If someone knows how to do that properly, please feel free to submit a patch because DX10/Com breaks my mind. (see GSDevice10.cpp)
* Remove DX11 for now since it's entirely unfinished anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2279 96395faa-99c1-11dd-bbfe-3dabce05a288
- Removed the outer pixel cropping, it causes blur in some games. (I knew I should've done it elsewhere :p )
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2248 96395faa-99c1-11dd-bbfe-3dabce05a288
- Remove the silly upscale hacks from an earlier commit
- Replace them with a less silly version in CreateSource() :p
- Remove a few of the outer pixels from the visible area, as they often contain glitches
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2241 96395faa-99c1-11dd-bbfe-3dabce05a288
Gave up on the smart m_width / m_height adjustments for now. This just won't work the way I imagined it :/
Using a "common" size of 640*512 instead. This means some odd games might use a wrong output surface again (they always did this on the normal upscaler).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2190 96395faa-99c1-11dd-bbfe-3dabce05a288
- Reduced the overhead of the new scaler. Instead of just using 1024*1024 blindly, it tries to adapt to games native resolutions.
- Yet another change to IncAge(), since it seems to be (mis)used to do texture invalidation. (Fixes Disgaea 2 when booting through the BIOS)
- Added some comments
Note:
Before working on the texture cache GetDisplayRect(),GetFrameRect() and GetDeviceSize() really need fixing. It's useless to try and find surfaces when not knowing the real size of things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2174 96395faa-99c1-11dd-bbfe-3dabce05a288
- Added some sad attempt to fix small upscale annoyances. It's very hackish but better than nothing :p
- Small cleanups
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2169 96395faa-99c1-11dd-bbfe-3dabce05a288
- Bring back IncAge() for textures to avoid excessive memory usage by some games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2140 96395faa-99c1-11dd-bbfe-3dabce05a288
- Fixed many flickering scene change transitions (FF12, Gust games, etc).
- Found more info on how games do some special effects. Preliminary code included, but disabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2101 96395faa-99c1-11dd-bbfe-3dabce05a288
- More work on the configuration, preparing for some reorganization.
- 8 Bit textures default to off again, since there are issue reports (mainly from ATI users).
- Add a gamefix that allows users to set an amount of "bad" frames to be skipped.
Add gamefix_skipdraw = x to the GSdx.ini to enable. (More work on this soon)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2085 96395faa-99c1-11dd-bbfe-3dabce05a288
- Worked on the configuration dialog, bringing in the scaler option
- Changed the DeviceSize code to use Jake's kinda better method. Fixes some odd resolution games :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2061 96395faa-99c1-11dd-bbfe-3dabce05a288
- The Xenosaga fix was wrong, this is better.
- Disabled the pitch conversion code, it's too broken to be used :/
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2058 96395faa-99c1-11dd-bbfe-3dabce05a288
Added a somewhat more accurate upscale option via GSdx.ini. Not tested much! :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2055 96395faa-99c1-11dd-bbfe-3dabce05a288
Fix Xenosaga 2 and 3 fog effect, not sure it's handled correctly but at least it's handled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2050 96395faa-99c1-11dd-bbfe-3dabce05a288
Ideally this should be reverted one time, it really made a difference in fps for some DX calls heavy games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2019 96395faa-99c1-11dd-bbfe-3dabce05a288
Projects: Removed FrameworkVersion descriptor, don't think it matters for C++ code. Removed all translation files, since they're grossly out-dated and need to be remade anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1894 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed GSTextureFX classes
* Built shaders right into GSState classes, using GSStateDX as an interface, so that all shader caches get auto-destroyed along with GSState.
In addition to being a bit of a code cleanup, it should be a bit more efficient too since all of the extra dereferences to GSState from GSTextureFX have been removed. :)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1849 96395faa-99c1-11dd-bbfe-3dabce05a288
* Software mode seems to work fine. Suspend and resume emulation work nicely, without flaws.
* Hardware DX9 mode suspends but displays only black after resuming.
* Hardware DX10 status is unknown.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1842 96395faa-99c1-11dd-bbfe-3dabce05a288
* Lots of crashfixes and threading rules compliance (like using wxYield instead of ProcessPendingEvents)
* Killed off some memory corruption
* Better error handling and reporting
* Much speedier suspend/resume during emulation
* Revamped entire savestate system to use a RIFF-style file format (untested, will work on it soon)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1832 96395faa-99c1-11dd-bbfe-3dabce05a288
Initial pixel offsetting support via gsdx.ini.
Use pixoff_x = somevalue and pixoff_y = somevalue.
This can be used as a workaround for the various upscaling errors :)
Try these values for Takes of the Abyss for example:
pixoff_x=-8
pixoff_y=-8
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1650 96395faa-99c1-11dd-bbfe-3dabce05a288
Re-enabled capturing via F12 key. It was missing the callback entirely.
The videos I capture here turn out all blueish though. No idea why :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1635 96395faa-99c1-11dd-bbfe-3dabce05a288
- Trippled the number of cached textures, many games constantly recreated them
- Don't clear some shaders at each drawcall (in dx10) , which is a nice speedup (but could potentially be bad, please check..)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1584 96395faa-99c1-11dd-bbfe-3dabce05a288
- Automatic texture filtering should be ok now, occasionally point filtering was used. Tested it on the ps2 and figured with no mip levels LoD and minification settings are just ignored altogether.
- Also run a few tests on the gather instruction with the reference rasterizer and found a fatal flaw with it. It returns the four samples for bilinear sampling (in a funny order, which isn't documented of course, x = bl, y = br, z = tr, w = tl), but there is no way to guess which four were selected exactly. Due to some hidden rounding error it might grab different texels than I would when calculating the position of the upper-left texel, of which the fractional part is be used for the interpolation. When the texel positions do not match it leaves annoying discontinuity errors. Oh well...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1571 96395faa-99c1-11dd-bbfe-3dabce05a288
- trying the dx10.1-only "gather" shader instruction for palletized lookups ("8-bit texture" mode), saves 4 instructions which isn't much but still... (not tested, don't have ati)
- may fix the intel gma "no output" bug (don't have gma either :P)
- and the usual small code optimizations
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1549 96395faa-99c1-11dd-bbfe-3dabce05a288
This patch by matsuri makes playing with vsync a lot nicer, so thanks for that one ;)
Note: For now its directx 10 only, due to dx9 needing a swapchain reset..
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1526 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented internationalization (i18n) framework.
* Made a pretty configuration dialog box!
* Many minor bugfixes.
* Removed most of the old Win32 and Linux/GTK gui code because it was causing gettext cataloging to grab about 500 non-relevant strings (can always reference trunk for them anyway).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1484 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved the x86 emitter to /common, so that plugins can link against it if they wish.
* Created a new "utility" class in /common which houses string utils, fast memcpy, common exception classes, and other handy dandies.
* Removed old-style linux automake files from the pcsx2 dir since they were hopelessly out of date (and their multi-file-per-line format makes svn merging impossible >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1454 96395faa-99c1-11dd-bbfe-3dabce05a288
* installer automatically includes all three SSE build targets for GSdx (each built target needs to be built manually prior to building the installer).
* Fixed some typos and abbreviated install paths from "PCSX2 Team/PCSX2" to just "PCSX2".
* Added an "SSEtype" user define to GSdx's property sheets, which is used to generate the SSE postfix on the DLLs automatically. (ie, GSdx-SSE2.dll, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1397 96395faa-99c1-11dd-bbfe-3dabce05a288
* Changed w32pthreads library into a DLL so that it can be used from plugins correctly. (NOTE: you will need to make sure to build and copy w32pthreads.dll into your pcsx2 folder).
* Switched pcsx2 from static CRT to shared CRT linking (needed to ensure correct exception handling behavior in multithreaded DLL environments).
* Switched all standard plugins in the Suite to the shared CRT, to match pcsx2's new style. :)
* Renamed _DEBUG (depreciated) to PCSX2_DEBUG (excluding Gabest projects since the ATL still uses it).
* Added intrin.h to Pcsx2Defs.h (so that it is included universally), and added intrin_x86.h for GCC compatibility.
Notes:
* Current plugin version compatibility status should be unaffected. The new shared-CRT plugins work fine with older versions of Pcsx2, and the older plugins should work fine with the new shared-CRT version of pcsx2; so long as the necessary CRT DLLs are available on the user's system.
* All future packagings of pcsx2 will include w32pthreads.dll and the Common Runtimes (CRTs).
* Existing users who do not have MSVC installed can obtain the CRTs by downloading the Microsoft Visual C++ 2008 Redistributable Package (anyone with msvc installed should already have all they need).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1388 96395faa-99c1-11dd-bbfe-3dabce05a288
And there is even an explanation.
The tfx functions calculate At * Af >> 7, which means modulating by 0x80 should return At as the result.
With the evil floating point pixel shader however 0x80 translates to 128/255 (0.502), not exactly 0.5, modulation as At' * Af' * 2 (' means 0 - 1.0 range) is not the same as with integers.
At' = Af' = 0.502
At' * Af' * 2 = 0.504
If the alpha test happens to be "not equal to 0x80", then abs(0.504 - 128/255) < 0.5/255 will just miss.
Solution is to re-scale those values to the integer range, do the calculations, and then back to float again, but in the end it just simplifies down to At' * Af' * 255/128, doh...
At * Af >> 7 => ((At' * 255) * (Af' * 255) / 128) / 255 => At' * Af' * 255/128
At' = Af' = 0.502
0.502 * 0.502 * 255/128 = 0.502 (w00t!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1272 96395faa-99c1-11dd-bbfe-3dabce05a288
- more thorough blur detection
- makesnapshot delayed until the next vsync (so shift+f8 won't crash randomly)
xpad:
- fixed "Issue 38: Bad performance with Xpad"
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@834 96395faa-99c1-11dd-bbfe-3dabce05a288
GSdx: nothing new just committing a few cleanups and my findings on AA1 before doing it, tested a few things with ps2dev on a real machine, got really strange results when not using the standard 0 1 0 1 blending mode, but it doesn't seem harder to implement than a line drawing (which it is), and only adds a few extra pixels here and there, should be fast at least.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@694 96395faa-99c1-11dd-bbfe-3dabce05a288
Hacked in a way to make GSdx change the renderer on the fly.
When you press F11 it will switch to DX9 sowftware rendering.
Press it again to get back to the setting you were using before.
Notes:
-For this change I had to modify a few lines in GSdx. If that's not acceptable
we can do more drastic measures and modify the gsdx.ini :p
-F11 is currently also used for doing gsstates in debug modes, it will likely be changed.
-When in dx10 hardware + fullscreen mode, pressing this key will crash GSdx. Sorry.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@689 96395faa-99c1-11dd-bbfe-3dabce05a288
I'll put up a wiki soon which covers new compilation features and stuff, like how to re-enable revision tagging, and how you can direct compiled exe/dlls to be copied to any destination of your choice (yay!) -- plus many other compiling tips (if I can remember them all! >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@581 96395faa-99c1-11dd-bbfe-3dabce05a288
Improved the Win32 build scripts to solve some end case scenarios on some systems/configs, where they would fail due to missing path separators.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@514 96395faa-99c1-11dd-bbfe-3dabce05a288
Upgraded GSdx's use of svnrev to match other plugins in the pcsx2 repository; so that it no longer requires TortoiseSVN, and will also compile correctly from folders with spaces (ala '/program files/username/my documents/projects').
Removed the /3rdparty and /common folders since they aren't used anymore, and it was potentially confusing or misleading to leave them in since they were out-of-date (they were once referenced by svn:externals, and we opted out of using those here due to slowness).
SPU2-X: Fixed a minor overflow in the reverb that would cause infrequent crackles in a select few games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@503 96395faa-99c1-11dd-bbfe-3dabce05a288
Added interface.cpp (plugin/pcsx2 interface) and savestate.cpp to SPU2ghz, to help clean up SPU2.cpp.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@463 96395faa-99c1-11dd-bbfe-3dabce05a288