Commit Graph

4033 Commits

Author SHA1 Message Date
Jonathan Li 5917bf31c3 cdvdgigaherz: Remove old config code 2016-11-07 00:08:23 +00:00
Jonathan Li 59247c7838 cdvdgigaherz: Switch to using the new settings system
Also refactor the default drive selection and GUI code so optical drive
detection is shared.

Note: This breaks the current config, but there's only one setting
anyway.
2016-11-07 00:08:23 +00:00
Jonathan Li dce3c57e6a cdvdgigaherz: Add portable setting class
Can load/save inis (though functionality is very basic).
2016-11-07 00:08:23 +00:00
Jonathan Li 9c440ab6b7 cdvdgigaherz: Use bool return for ReadSectors*
More readable.
2016-11-07 00:08:23 +00:00
Jonathan Li fc085c1758 cdvdgigaherz: Improve IOCtlSrc::ReadSectors2048
Don't use a RAW_READ_INFO struct when only the LARGE_INTEGER member is
used. Use SetFilePointerEx which is slightly simpler and doesn't require
checking GetLastError() in some circumstances to check whether the read
has actually failed.

Also use a mutex to prevent simultaneous access from both the read
thread and the keepalive thread to prevent overlapping SetFilePointerEx
calls from causing the wrong data to be read.

And print error messages should a failure occur.
2016-11-07 00:08:23 +00:00
Jonathan Li fdd6ea3651 cdvdgigaherz: Simplify SetSpindleSpeed
Also set the max drive speed to 4x DVD and 24xCD (down from 8x DVD and
36x CD) - it seems to reduce pausing slightly since the drive doesn't
require as much time to spin up to the desired speed.
2016-11-07 00:08:23 +00:00
Jonathan Li 1834b7d0f9 cdvdgigaherz: Get disc info when disc is first ready
Also set the disc speed at the correct time - CDROM SET SPEED only stays
in effect till the disc is removed.

Also fix a memleak in CDVDopen when the drive cannot be accessed.
2016-11-07 00:08:23 +00:00
Jonathan Li 95b98c5a38 cdvdgigaherz: Use a formatted TOC instead of a raw TOC
It's simpler and provides almost the same information. The only
information that might be lost is the first track specific track type.
2016-11-07 00:08:23 +00:00
Jonathan Li 327515366f cdvdgigaherz: Don't calculate the track length
Not really necessary.

Also fix 2 off-by-ones.
2016-11-07 00:08:23 +00:00
Jonathan Li 1f60e3101e cdvdgigaherz: Reduce disc info ioctl calls
It's rather unnecessary to use the same ioctls multiple times per disc
when the info returned doesn't change. Just use each ioctl once and
read/calculate all the necessary info all at onace.

This also fixes an issue where the IOCTL_DVD_START_SESSION ioctl is
repeatedly used if the returned session ID is 0. The previous code
assumed that 0 was not a valid session ID and would repeatedly use the
ioctl to obtain a non-zero session ID. However, 0 is a valid session ID,
and it seems IOCTL_DVD_START_SESSION can repeatedly return a 0 session
ID even if the corresponding IOCTL_DVD_END_SESSION has not been called.
In our case, a DVD session is only necessary for DVD detection and
reading the physical format information. This fix seems to alter drive
speed behaviour.
2016-11-07 00:08:23 +00:00
Jonathan Li f8e474a1c5 cdvdgigaherz: s/device/m_device/ 2016-11-07 00:08:23 +00:00
Jonathan Li 8f11049c9f cdvdgigaherz: Remove non-SPTI raw sector reading code
There doesn't seem to be any issues calling CreateFile with
GENERIC_WRITE access (which is necessary for SPTI) on a standard user
account, so the SPTI code should work in all cases.
2016-11-07 00:08:23 +00:00
Jonathan Li f314c2a4d9 cdvdgigaherz: Simplify Q subchannel relative offset calculation
That way there's no need to calculate the track length for each track.
2016-11-07 00:08:23 +00:00
FlatOutPS2 5d90afe648 LilyPad: Add separate bindings for each pad type (#1609)
Adds separate bindings for each of the pad types (DualShock2,
Guitar,Pop'n Music). This allows the user to change the button
configuration to better suit the Guitar and Pop'n Music pads without
messing up the bindings already setup for the DS2.

Close #1576.
2016-11-06 21:59:19 +00:00
Gregory Hainaut 5ff9e94a2e gsdx linux: align mipmapping gui option on Windows 2016-11-06 16:39:40 +01:00
Gregory Hainaut 107251e099 gsdx: sort crc game list 2016-11-06 16:30:51 +01:00
Akash 1547dd4215 GSDX-UI: Add Mipmap combobox
Mipmapping is now supported on hardware renderers thanks to Gregory. Please report any observed hardware mipmapping issues on the forums (http://forums.pcsx2.net/Thread-New-feature-Needs-testing-GSdx-HW-mode-Experimental-mipmap-support) as potentially the HW mipmap code might still have some bugs.
2016-11-05 22:19:32 +05:30
Akash 58ed49f3c9 GSDX: Clean up warnings on MSVC
* Explicitly cast w_pages and h_pages into uint32.
* Prevent signed/unsigned comparison by converting lod into unsigned integer, honestly how coud a mipmapping level be negative?
2016-11-05 10:28:04 +01:00
Gregory Hainaut 758cf25888 gsdx: wrap bp for block ptr
Fix massive flickering of Beyond Good&Evil on SW renderer (HW happily overflow)
2016-11-04 23:03:12 +01:00
Gregory Hainaut 3d65312999 gsdx hw: remove old assert
Code is working fine with all formats
2016-11-04 23:02:49 +01:00
Akash 437afbbbf3 GSDX-PCRTC: Move Saturation hack to displayrect()
Fixes custom resolution scaling on Tribes aerial assault.
2016-11-01 17:54:46 +01:00
Akash b871c6b46f GSDX-TextureCache: Generalize scaling equation
Previously the dedicated custom resolution scaling equation was ignored for the second SetScale() call, generalizing the equations will also fix the DMC scaling issue on custom resolution. Also remove unnecessary checks for null on scale factors. The possibility for having a null scale factor value only exists on custom resolution and it will only happen on cases where the output circuit isn't ready yet. So the ideal way would be to handle all the required conditions of output circuit on "m_renderer->CanUpscale()" itself.
2016-11-01 17:54:46 +01:00
Akash 055f236aa5 GSVector: Add constructor to dispatch same values 2016-11-01 17:54:46 +01:00
Gregory Hainaut aa4b2d9f3a gsdx sw: wrap GS memory
Cost ought to remain small. Worst case is 2 extra "and" operation by group of pixels in scanline renderer

I think PixelAddressN functions are mostly call in the init.
2016-11-01 13:33:11 +01:00
Pseudonym 233f66db5e Fixed effects area wrapping calculation, which was always buggy but this
wasn't evident until additional addresses were precalculated.
Not expected to improve compatibility.
2016-11-01 11:12:41 +00:00
Jonathan Li ba557e20a4 gsdx:recorder:unix: Fix thread leaking 2016-10-28 18:33:50 +01:00
Jonathan Li 7ab5cb20c8 gsdx: Don't close threads twice
CloseThread is called in the GSJobQueue destructor, so don't call it
again in the GSThread destructor.

Fixes #392, which was caused by a use after free.

Also prevents pthread_join() from being called twice for each thread
on non-Windows operating systems, which is undefined behaviour.
2016-10-28 18:33:35 +01:00
Jonathan Li bc7aa1a500 spu2-x:freebsd: Enable SDL backends
portaudio currently isn't providing me with sound, even though it did
before.
2016-10-27 22:03:49 +01:00
Jonathan Li 86a6f5d67c cdvdgigaherz: s/itob/dec_to_bcd/
There's no need to have 2 ways to convert a u8 to a binary coded
decimal. Remove the macro version.
2016-10-26 22:11:40 +01:00
Jonathan Li 852ed21e88 cdvdgigaherz: Remove no drive support
It's the same as "No disc" or having no disc in the drive.
2016-10-26 17:30:28 +01:00
Jonathan Li c023d7676a cdvdgigaherz: Remove Source base class
Also remove virtuals from IOCtlSrc.
2016-10-26 17:30:27 +01:00
Jonathan Li 9f6c6d9917 cdvdgigaherz: Don't use GetFileSizeEx to get disk size
It doesn't seem to work for disks, and IOCTL_DISK_GET_LENGTH_INFO
usually succeeds instead.
2016-10-26 17:30:23 +01:00
Jonathan Li 9c643ae9ca cdvdgigaherz: Remove CDVDabout and SysMessage
It's not accessible from PCSX2. More importantly, I don't want to port
it.
2016-10-26 17:30:21 +01:00
Jonathan Li fb3580efa1 cdvdgigaherz: Remove unneeded code 2016-10-26 17:30:16 +01:00
Gregory Hainaut 5dfb7d63dc gsdx: wrap gs page/block instead to skip them
Fix FMV of Thrillville when coupled with wrap_gs_mem = 1
2016-10-25 22:49:05 +02:00
Gregory Hainaut db4b4fb166 gsdx ogl: keep a separate log for sw 2016-10-25 22:00:41 +02:00
Gregory Hainaut cedc8aae44 gsdx: implement a shared memory to emulate the wrapping of the gs memory
Code can be enabled with "wrap_gs_mem = 1". Code only allow a single shared memory but
I don't think we need more anyway.

Linux only, Kernel panic expected with the HW renderer.

Fix FMV on Silent Hill 3 with the SW renderer
2016-10-25 20:29:38 +02:00
Gregory Hainaut 42b51611af gsdx: don't dump debug file if not requested 2016-10-25 17:10:57 +02:00
sudonim1 820462dbc0 Merge pull request #1635 from sudonim1/reverb
SPU2-X: Reverb rewrite
2016-10-24 17:17:48 +01:00
Gregory Hainaut e80ca0fa92 gsdx ogl: of course some driver don't work with GL_ARB_enhanced_layouts
Windows and (AMD or Intel)
2016-10-23 12:48:23 +02:00
Gregory Hainaut 885ef7a46f gsdx ogl: reduce complexity of driver detection 2016-10-23 12:43:50 +02:00
Gregory Hainaut 565cb70875 gsdx ogl: don't request arb_texture_barrier for the SW renderer
Allow[1] to use the mesa software emulated driver to test EGL.

[1] also need export MESA_EXTENSION_OVERRIDE="GL_ARB_buffer_storage"
2016-10-23 12:13:57 +02:00
Pseudonym 1668392988 SPU2-X: Mass reverb register renaming. Hopefully I didn't screw up the
cross-channel reflection registers.
2016-10-22 19:16:11 +01:00
Pseudonym 9a51820dec SPU2-X: Experimental reverb based on Dr. Hell's
http://drhell.web.fc2.com/ps1/ and/or Martin Korth's
http://problemkaputt.de/psx-spx.htm reverse engineering.
Negate final reverb output (don't know why but it's an
improvement when comparing the waveform).
2016-10-22 19:16:11 +01:00
Gregory Hainaut 01f0f436ac gsdx linux replayer: allow to repack gs dump
linux_replay = -N will save N first frames to a new gs dump

Save disk space & debug time
2016-10-22 13:22:28 +02:00
Gregory Hainaut 99c43881df gsdx egl: report an error if we fail to bind the openGL API
It seems Nvidia added openGL support in 355 (whereas I have 352 on debian).

I don't know the status on AMD.
2016-10-22 13:22:28 +02:00
Gregory Hainaut d4a163e9cc spu2: improve format consistency 2016-10-22 13:22:28 +02:00
Pseudonym 1f44c4be2f SPU2-X: PSX games should be able to read ENDX correctly now, which is
important functionality for many sound engines.
Fixed two other obvious errors in the psx compatibility merge, probably
inconsequential.
2016-10-20 04:17:03 +01:00
Gregory Hainaut 8fdf973e66 gsdx glsl: add basic support of GL_ARB_enhanced_layouts (GL4.4)
Hardcode location of interface to the location 0. If I understand the
spec correctly (unlikely), variable in interface will get successive
location.

Goal is to reduce driver work. Instead to compute some location based on
name matching approach (and silly validation), the driver can now use
static allocation.

Tests on future Mesa 13 are welcome
2016-10-19 23:03:39 +02:00
Gregory Hainaut b1f2d27ddf gsdx: move Haunting Ground CRC to dx level 2016-10-19 21:10:44 +02:00