Fixes glitchy water in Rogue Galaxy in Direct3D when the hack is
enabled.
Fixes Test Drive car reflection in Direct3D when the hack is enabled.
OTher games are affected as well.
For some CDs (i.e. Suikoden), trying to read a 2048 byte "cooked" sector
does not work. However, reading the raw sector and then extracting the
required 2048 bytes works fine, so let's do that.
This also makes it easier to port CD/DVD disk reading to operating
systems that don't provide CD/DVD interface conveniences.
doc: Update FAQ document
* Update system requirements to match README.md and remove references to v0.9.6
* Fix formatting issues, add link for DirectX and speed issues
Adds automatic HW mipmapping support.
It relies on CRC ids so if a game does
not have their CRC id but needs mipmapping
it will not work until the id is added.
Add GUI menu and tooltip for Automatic mipmap
"Automatic (Default)"
This option will be default option from now on.
Rename "Very Slow" text option to "Slow" for full mipmap
as it caused the text not to fit properly in the menu.
Credits also go to @RedPanda4552 and @ssakash for helping
with the code.
Rearrange the two columns of HW hacks, new arrangement
is done in alphabetical order on Windows and Linux.
Rename some hacks on Linux to match the windows version.
Some other minor tweaks as well.
The following patch grays out the configure button when there's no
configuration dialog available for the selected codec. What's the use in
clicking it when no dialog pops up? :P (I've been tricked by it lots of
times)
Add HW Hack that enables Framebuffer Conversion on the CPU instead of the GPU.
Can fix broken textures on games but at the cost of slower performance.
List of games: Harry Potter games, FIFA Street games.
Games like Call of Duty, Kung fu Panda might also be affected as well as others
especially on Direct3D.
Add HW Hack GUI option on Windows/Linux for 4-bit and 8-bit Framebuffer conversion hack
named "Frame Buffer Conversion".
It's not really used, and the OSD uses a different API.
The specified calling convention (stdcall) is also incorrect since
variadic functions are caller-clean, not callee-clean. The compilers
ignore the stdcall and just use cdecl (I think), though it does trigger
a -Wcast-calling-convention on clang.
It seems not all DMA channels have the same set of 32 bit registers. Removed
addresses of registers which aren't actually present in the memory
space.
Example: Channel 0/1/2 have address stack registers but the other
channels lack it. According to documents, the remaining memory space of
the channels seems to be reserved. Which means, write access would be
disregarded and read access would return an unknown value.
Credit goes to Gregory and CK1 for notifying me about it, special mention to ssakash for actually pushing the change to github. Also I wasn't the one who introduced the non-existent registers into the code, these registers were present before under a different name.
The wrong comparison was used, so all the relative offsets were
completely wrong. Fixes the wrong track issue in the CD player.
Regression introduced in f314c2a4d9.
Travis CI:
Replace GCC4.9 64-bit with GCC7 64-bit.
Replace GCC5 32-bit with GCC7 32-bit.
Move 64-bit to top of matrix so it gets built first (ccache doesn't work
on the 64-bit build and I don't know why (it works locally), so it takes
the longest to build).
AppVeyor:
Add VS2017 build job.
The macro for address of channel 9 was wrongly having the address of
channel 8, fixed it. (Luckily MADR and QWC were unused so we should be
safe)
Thanks to Fireboyd78 for notifying us about this. (Closes#2091)
Also fixed some inconsistencies where some of the DMA channel register
addresses weren't defined for all the bitfields.
Regression was introduced in #1954
GSdx caused the emulator to crash when the renderer was restarted.
It may have affected older gpus from nvidia/amd
with older OpenGL support as well.
If emulation is paused and resumed, vsync may become enabled even if the
frame limiter is currently disabled. This state persists until the
settings are changed or the hotkeys are used.
Fix the inconsistent framelimiter/vsync behaviour so that vsync isn't
enabled whenever the framelimiter is disabled, which matches the
behaviour in the rest of the code.
The swap interval function must be called on the same thread that
rendering takes place on. This fixes an issue where the turbo speed and
frame limiter hotkeys fail to disable vsync when the OpenGL renderer is
used.
Using range loops where possible (correctly).
Using auto where possible (minimize code changes whenever it's decided to change back to a std container).
Use more efficient erase pattern (where possible).
Minor code tweaks.