Commit Graph

3647 Commits

Author SHA1 Message Date
Akash 6dda879e63 EE-Syscall: Add missing modes 2015-12-24 13:30:25 +05:30
Gregory Hainaut 81891ac109 pcsx2:cli: support the elf option properly 2015-12-22 16:34:58 +01:00
ramapcsx2 9170d2902c shuffle some names in about dialog 2015-12-20 13:20:53 +01:00
ramapcsx2 c73f87ac71 Merge pull request #1046 from ssakash/GSDX_mode
PCSX2: Fix up Video mode detection on GS Frame
2015-12-20 13:05:12 +01:00
ramapcsx2 58aaea6277 Better MTVU thread cancel 2015-12-19 12:22:15 +01:00
ramapcsx2 1111e03901 Finally nailed the MTVU zombie processes bug. Thanks a lot for the tip,
@turtleli! Well, at least we hope it's gone for good now ;)
2015-12-17 23:19:11 +01:00
Akash 0f1fec40cf GSFrame: Fix up video mode detection.
Previously Interlaced (Field) was displayed as Progressive which was wrong since the tested games didn't even support Progressive mode and it misleaded most of the users so let's just display Interlaced during Field mode.
2015-12-17 19:51:33 +05:30
Avi Halachmi (:avih) 3820bf16fd GUI: presets: don't gray-out static text when presets are disabled
The EE/IOP and VUs panels were disabled completely when presets are enabled,
which apparently also means disabling (graying out) the static texts, however,
re-enabling them (when disabling presets) didn't un-gray-out the static text.

This is likely a wxWidgets bug, but we can avoid it by just enabling/disabling
all items explicitly (and keeping the panels themselves always enabled).

For these panels, this means adding explicit enable/disable of the he EE-cache
checkbox and the Restore-Defaults buttons.

The issue doesn't seem to happen on other panels (though some earlier revisions
apparently also had this issue for the static text at the game fixes panel, but
apparently it's not an issue now).
2015-12-17 06:59:33 +02:00
ramapcsx2 c8a7a709dc bring vsyncinfocalc up to the revision that seems to fix 2 games that
got broken by the last update. debugger output still looks sensible.
2015-12-13 19:20:58 +01:00
refractionpcsx2 d3ec74be2b Merge pull request #980 from AdmiralCurtiss/ff12mcdfix
FolderMemoryCard: Fix issue #976: Corrupted FF12 saves when overwriting data.
2015-12-13 00:08:42 +00:00
refractionpcsx2 b5b5a51897 Merge pull request #947 from ssakash/EE_Control_V2
EE: Rework overclock and underclock function
2015-12-12 15:08:18 +00:00
Jonathan Li 60426a5dec linux: Fix and simplify stdout/stderr redirection
Use close() instead of some dodgy read unblocking and thread cancelling
sequence - it fixes a race condition when closing PCSX2.

Move most of the setup/cleanup into LinuxPipeThread. In addition to
simplifying things, it should also mean that no messages to
stdout/stderr are lost - in the previous code there was a small period
of time where messages would disappear.
2015-12-11 08:52:28 +00:00
ramapcsx2 6a94a7d49a Enable loading psx games by default. Should help fixing PSX support when people don't have to first find the hidden config variable before they can even test this. 2015-12-05 12:31:45 +01:00
ramapcsx2 601d18272b Small fix to the timing revert: need to use gsRegionMode now since scansPerFrame isn't fixed anymore.
(NTSC modes would fail to update the vblank variable)
2015-12-05 02:07:27 +01:00
ramapcsx2 ff2845b2d2 When debugging vSyncInfoCalc(), some serious problems with the math resulted in a nearly saturated u64 and hRender being 0 in all video modes. Team decided to revert to the earlier version, even though it probably breaks "Legendz Gekitou! Saga Battle".
No one knows how any games even started in the broken state and we prefer code being sane('ish) over one game miraculously working. The change is pretty big so it needs some good testing!
2015-12-05 00:25:16 +01:00
Gregory Hainaut fb1a19f157 x86emitter: clean unused legacy type
Note: no need to check -1 on register allocation failure (a exception will be fired)
2015-12-02 19:09:43 +01:00
Gregory Hainaut 3684c26cbc ee: drop comma operator
New syntax is script friendly
2015-12-02 19:09:27 +01:00
Gregory Hainaut 9b19dfd562 ee: rename ptr variable
Avoid conflict with ptr[] function operator
2015-12-02 19:09:19 +01:00
Gregory Hainaut 255b592489 svu: rename ptr variable
Avoid conflict with ptr[] function operator
2015-12-02 19:09:12 +01:00
Gregory Hainaut 5dfe7ffc47 core: prepare the conversion to the new emitter naming 2015-12-02 19:09:04 +01:00
Juha Laukkanen c72400e927 Darwin/OSX - spu2x apple build with portaudio only.
OSX compilation fix: spu2x: Windows & Linux
2015-12-02 05:01:12 +02:00
Juha Laukkanen 4fa8834de4 Darwin/OSX ifdef __APPLE__ or __WXMAC__ cases.
OSX comment about __WXMAC__ usage
2015-12-02 05:00:41 +02:00
Juha Laukkanen 592aacb25a Darwin/OSX __POSIX__ definitions. 2015-12-02 05:00:41 +02:00
Gregory Hainaut 1f374e4b92 ee: add a comment on setjmp/longjmp behavior 2015-12-01 18:48:45 +01:00
Akash e06d45c07d GUI: use green text for slider default values 2015-12-01 20:31:51 +05:30
Gregory Hainaut 5761eba529 Merge pull request #1008 from PCSX2/recompiler-stack-alignment
mvu: keep stack aligned on 16B
2015-11-30 21:54:35 +01:00
Gregory Hainaut ba4d5b0b95 mvu: keep stack aligned on 16B
Fix a stack fault with address sanitizer (on linux)

v2: protect the code with GNUC (as it is already done in microVU_Execute.inl)
2015-11-30 21:53:41 +01:00
Jonathan Li 7055e29670 Merge pull request #969 from toehead2001/about-box
Clean up the About dialog
2015-11-29 09:31:52 +00:00
toehead2001 61067e9c3f Clean up the About dialog
Logo resource doesn't need it's own special line

Layout adjustments
2015-11-29 02:25:32 -07:00
Gregory Hainaut 9aec4229d5 x86emitter: support AVX2 (linux only?)
Nah kidding, it is only the cpu detection for the log

x86 Features Detected:
	SSE2.. SSE3.. SSSE3.. SSE4.1.. SSE4.2.. AVX.. AVX2.. FMA
2015-11-28 23:40:15 +01:00
Jonathan Li 609442318a debugger:linux: Fix list view sizing
The breakpoints, threads and stack frames list view sizing now works
properly on wx3.0.

It's still completely broken on wx2.8. Oh well.
2015-11-28 08:51:32 +00:00
Blyss Sarania 791cd3055b Enable LargeAddressAware in linker configuration
Negates users needing the 4gb patch for some games
2015-11-18 05:38:12 -06:00
Admiral H. Curtiss 5865c030cb FolderMemoryCard: Be a bit more paranoid regarding metadata writes and don't allow a flush to assume that a previous flush has already written the metadata of a file. 2015-11-17 22:25:48 +01:00
Admiral H. Curtiss 25064e86b8 FolderMemoryCard: 4cbe9ad5ef happens for the file mod/access metadata time write too, fix that. 2015-11-17 22:25:39 +01:00
Admiral H. Curtiss 4cbe9ad5ef FolderMemoryCard: When metadata in a memory card page changed to point at a different file than what it was on memory card load, the file handle cache that was introduced in 879d0c601f to prevent modification of currently loaded files would get confused and return the wrong file handle. Fixes #976. 2015-11-17 22:17:44 +01:00
Juha Laukkanen c15958f3c2 Darwin/OSX flat file reader stub. 2015-11-17 19:28:03 +02:00
Admiral H. Curtiss 186d58af01 FolderMemoryCard: Add some debugging functionality to examine the current memory card structure on load and flush. 2015-11-17 00:27:20 +01:00
Jonathan Li e347ad7723 gui: Fix theme directory path
wxDirName doesn't seem to work (and it should probably be called
pxDirName). Use plain old wxFileName instead.
2015-11-15 22:05:41 +00:00
Gregory Hainaut 21857ec12d Merge pull request #967 from PCSX2/remove-lazy-allocation
Reduce lazy allocation
2015-11-15 00:12:07 +01:00
Gregory Hainaut 91b2fd3c4a ee: create a dedicated _DynGen_DispatcherEvent function
for consistency of my doc
2015-11-14 10:29:03 +01:00
Gregory Hainaut d5830ef708 cmake: reenable a couple of missing gcc optimization 2015-11-14 09:54:09 +01:00
Gregory Hainaut 837b62d5e8 cmake: add an option to control PGO 2015-11-14 09:48:53 +01:00
Gregory Hainaut 07ec92175f Merge pull request #966 from PCSX2/game-starting-too-late-i627-v2
pcsx2: apply patch when first block is compiled
2015-11-13 18:50:44 +01:00
Akash c68714fd64 EE: add some nice comments 2015-11-13 15:30:28 +05:30
Gregory Hainaut dfba17c7dc Merge pull request #957 from PCSX2/mvu-custom-search
Mvu custom search
2015-11-12 12:12:11 +01:00
Gregory Hainaut d68d378a48 pcsx2: sign compare 2015-11-12 12:11:44 +01:00
Gregory Hainaut f2f28d1794 pcsx2: add missing case in switch 2015-11-12 12:11:44 +01:00
Gregory Hainaut 50ee00cfe5 ee: always handle manually page that contain thread context
There are 2 pages that contains a register context to handle Syscall/Interrupt.
Write protection is useless here.

The only purpose is to reduce the number of useless SIGSEGV at the start of a game
2015-11-12 10:48:30 +01:00
Gregory Hainaut e4f407ae7c ee: use enum for mmap_GetRamPageInfo returned value 2015-11-12 10:35:10 +01:00
Gregory Hainaut ef063b07b4 ee: move EE memory write protection into a function
recRecompile is already complex enough
2015-11-12 10:35:10 +01:00
Gregory Hainaut 26774a2fe0 recompilers: always allocate the first block
Avoid several annoying SIGSEGV at startup
2015-11-12 10:35:10 +01:00
Gregory Hainaut a4a0b42f8f recompilers: handle the memory by big block (instead of 4KB)
VIF recompilers: full size
EE/MVU/IOP: 1/4th of the size

Lazy allocation is still enabled but it will less triggered.
Next step is to always commit the first block
2015-11-12 10:35:10 +01:00
Gregory Hainaut 7565bcc789 ee: drop SpatialArrayReserve allocator
Let's the kernel manage the memory either with builtin lazy allocation or
swapped memory.

Avoid to handle SIGSEGV manually (nicer for debug) and removes 250 lines of code.
2015-11-12 10:35:10 +01:00
Gregory Hainaut 330704a5e9 pcsx2: apply patch when first block is compiled
Previous behavior apply the patch when first block is executed (it is
already too late)

V2: First tentative crash some games :(

Fix #627
2015-11-12 10:20:24 +01:00
Gregory Hainaut 71c8adcfb2 Revert "pcsx2: apply patch when first block is compiled"
This reverts commit fa1199ac24.

Got a crash on Gran Turismo 4 (devil may cry 3 too)
2015-11-12 10:05:51 +01:00
Akash 739faac264 EE: Invert the slider values logic 2015-11-11 18:46:09 +05:30
Akash 90b11b2fb9 EE: Rework overclock and underclock function 2015-11-11 18:45:40 +05:30
Gregory Hainaut fa1199ac24 pcsx2: apply patch when first block is compiled
Previous behavior apply the patch when first block is executed (it is
already too late)

Fix #627
2015-11-09 22:44:11 +01:00
Jonathan Li b6f78d8d95 gui:windows: Fix pxStaticText colours in Emulation Settings
The window is redrawn when Layout() is used (I think), so the text is
repainted with the correct colour.

This fixes the gray/ungray behaviour in the Emulation Settings dialog.
(Specifically, it affected the GS, Speedhacks, and Game Fixes Panel).
2015-11-08 22:07:20 +00:00
refractionpcsx2 dfd52282a7 Vif: Fix for Warship Gunner 2 geometry holes. Fixes Issue 665 2015-11-08 18:42:55 +00:00
Jonathan Li 85a1817ecc gui: Make Plugin/BIOS selector dialog wider
If the plugin info is too long it becomes truncated on Windows, which
could be quite annoying for testing.
2015-11-08 13:32:32 +00:00
Gregory Hainaut d9610d25e5 mvu: enable custom cmp function
From the comment, it used to be bad to gcc alignment issue.

Recent gcc align the stack on 16B boundary. Maybe it solved the issue.
I play severals minutes without any crashes but it requires more tests.
2015-11-07 17:42:08 +01:00
Gregory Hainaut 8fb6f0f328 debug: properly redo VU dissassembler function
I misses some calls in DisVUops. Use a macro to directly output the string
in the correct buffer position.
2015-11-07 13:55:47 +01:00
Gregory Hainaut 345a538c84 pcsx2: Clarify calculation precedence for '>>' and '?'
(cppcheck)
2015-11-06 23:01:58 +01:00
Gregory Hainaut e4e68a6179 debug: 'ostr' is used as parameter and destination in s[n]printf(). 2015-11-06 23:01:58 +01:00
Gregory Hainaut 1aa6749956 cdvd: remove break after return
cppcheck:[pcsx2/CDVD/CDVD.cpp:1120]: (style) Consecutive return, break, continue, goto or throw statements are unnecessary.
2015-11-06 23:01:58 +01:00
Jonathan Li 372db4b539 Merge pull request #946 from turtleli/linux-console
gui:linux: Redirect stdout/stderr to the PCSX2 console
2015-11-05 18:15:50 +00:00
Jonathan Li 5f5556ee69 gui:linux: Show plugin stdout/stderr in pcsx2 console
Behaviour is now similar to Windows, except we can also show messages in
the terminal as well.
2015-11-05 18:12:45 +00:00
Gregory Hainaut 6e7962e06a pcsx2: replace memset_sse_a by standard memset
Code is only enabled in dev build.

In the future allocation (therefore the memset) will be done at startup anyway.
2015-11-03 09:17:31 +01:00
Gregory Hainaut 8ab9cea3f7 pcsx2: comment set but unused variable 2015-11-02 07:54:24 +01:00
refractionpcsx2 83549e6f61 Merge pull request #940 from ssakash/dothack_fix
MicroVU: check for VF write on mvu flag hack .
2015-11-01 09:21:32 +00:00
Akash 6bf901faee MicroVU: check for VF write before flag set.
Fixes flickering issues on .Hack games, don't do a early break when Reg Index hasn't been written to a valid destination.
2015-11-01 04:38:58 +05:30
Akash 491efd91a5 EE: Prevent usage of uninitialized scalar variable
Fixes CID 153601 , CID 153602 , CID 153603
2015-10-31 15:26:34 +05:30
Gregory Hainaut 2f0077a081 pcsx2-ee: more cleaning of BaseBlockArray
* Remove useless erase(first)
* Move reserve in private section
* if 0 GetByX86
2015-10-30 21:59:06 +01:00
Gregory Hainaut 9c75c84e83 pcsx2-ee: Use a single constructor for BaseBlockArray
Directly reserve the array instead to rely on the reserve function.

+ add a couple of comments
2015-10-30 18:57:46 +01:00
Gregory Hainaut b215885188 pcsx2-ee: remove unused ManualPageTracking struct 2015-10-30 18:19:46 +01:00
Gregory Hainaut fee3d7c151 pcsx2: sed /branch/g_branch/
Be nice with grep.
2015-10-29 22:35:48 +01:00
Jonathan Li 6f4ba08d4a pcsx2:windows: Fix stdout/stderr redirection
The current redirection code doesn't work on VS2015:
 - It relies on undefined behaviour (*stdout/*stderr = *fp)
 - stdin/stdout/stderr are not pre-opened when compiled with the v140*
   toolkits
 - It seems to be the reason PCSX2 fails to terminate properly.

Use a combination of named pipes and freopen to redirect stdout/stderr.

Note: The redirect stuff doesn't seem to work in debug builds, both
before and after the change.
2015-10-28 19:27:15 +00:00
Gregory Hainaut 17e3c570ba pcsx2-ee: properly set the running variable
Fix exception propagation. Behavior is now equivalent to Windows.
2015-10-28 14:25:12 +01:00
Jonathan Li 344d6c201e pcsx2|utilities: Remove Windows wx2.8 code
It's not used anymore.
2015-10-28 00:02:11 +00:00
refractionpcsx2 dc5885790a Merge pull request #816 from ssakash/EE_Control
Speedhacks: Add Overclock function for EE cycle rate.
2015-10-27 15:01:40 +00:00
Akash 156f573842 R5900: Add Overclock function for EE cycle rate.
Pratically, use lower scalar values which eventually increases the clockspeed of the R5900.
2015-10-27 16:24:00 +05:30
Gregory Hainaut b7c51922e8 pcsx2: print a nice message when SYSCALL 2 is called
This syscall is used to setup the CRTC display. Maybe the information
can be useful for GS rendering.
2015-10-26 17:53:25 +01:00
Gregory Hainaut 6547881920 pcsx2: fix gcc reorder warning (due to previous init commit)
Lesson lear for myself, next time compile PR on my box before a merge
2015-10-25 21:17:59 +01:00
Gregory Hainaut 50e6306331 Merge pull request #919 from ssakash/coverity_init
Coverity: Initialize class members
2015-10-25 20:08:46 +01:00
Akash f6f8dc1a22 CDVD: Initialze all class members
CID 147025 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)8. uninit_member: Non-static class member m_current_count is not initialized in this constructor nor in any functions that it calls.
2015-10-25 14:11:43 +05:30
Akash b2ee732321 pcsx2-debug: Initialize all class members
CID 147005 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)2. uninit_member: Non-static class member PrePrefix is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:11:18 +05:30
Akash 1512b3ba6c pcsx2-debug: Initialize all class members
CID 146995 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize cpu
2015-10-25 10:11:17 +05:30
Akash f95664e846 GUI: Initialize all class members
CID 146990 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)6. uninit_member: Non-static class member PluginId is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:11:15 +05:30
Akash 55a88688a3 GUI: Initialize all class members
CID 146984 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)6. uninit_member: Non-static class member m_performFileWrites is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:11:14 +05:30
Akash 589e838fa0 GUI: Initialize all class members
CID 146980 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)2. uninit_member: Non-static class member m_panel is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:11:00 +05:30
Akash c912064c8d GUI: Initialize all class members
CID 146979 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)2. uninit_member: Non-static class member m_miscGroup is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:03:35 +05:30
Akash 578b75aa76 GUI: Initialize all class members
CID 146978 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)4. uninit_member: Non-static class member s_rightside_buttons is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:03:33 +05:30
Akash 61e1686da3 GUI: Initialize all class members
CID 146977 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)6. uninit_member: Non-static class member SizeInMB is not initialized in this constructor nor in any functions that it calls.
2015-10-25 10:03:19 +05:30
refractionpcsx2 286769dc03 VIF MFifo: Simulate buffer filling time from Scratchpad.
-Fixes other Chessmaster hang.
-having it say it has data really quickly if the data incoming was huge seemed to throw it off.  I suspect it may actually be the time it takes to fill 16qw (or whatever is incoming if lower) is the wait time but it seems rather happy with the incoming data size.
2015-10-24 13:25:29 +01:00
refractionpcsx2 8d22006165 Vif MFIFO: Logic fix for Chessmaster. Game still needs EE Timing Fix to solve later hang in video, but game is playable now. Thanks to Ssakash for looking in to this :) 2015-10-24 03:30:29 +01:00
Gregory Hainaut 1f2d95db7e cmake: restore omit frame pointer optimization
Crash was related to unaligned stack in dyna_page_reset/dyna_block_discard
2015-10-23 22:17:14 +02:00
Gregory Hainaut ccea764556 EE-rec: Don't jump directly to C++ function
On linux, it breaks the 16B stack alignment requirement.

2 dispatchers were added to handle the call to the function. It avoid
any performance impact and remove the extra inlined asm

Fix #506
2015-10-23 22:16:49 +02:00
Gregory Hainaut 40b5195f0e EE-rec: don't save useless variable
the 2 static variables are only used to debug stack issue.
It saves 2 move instructions by block
2015-10-23 22:02:41 +02:00
Gregory Hainaut 464aeecef8 EE-rec: use uptr for function pointer
Avoid potential issue on 64 bits port
2015-10-23 22:02:41 +02:00
micove b13a1ff3dd Merge pull request #908 from micove/WX_PIZZA
Linux GUI: Fix invalid cast from 'wxPizza' to 'GtkBin'.
2015-10-21 16:38:21 -04:00
Gregory Hainaut 281c5e4c66 Properly swap the argument of the good option
AKA: redo commit d7afd7aae0 with the eye open...
2015-10-21 20:41:40 +02:00
Gregory Hainaut 2b06d34279 pcsx2: use Reassign of the scoped pointer to improve readability
Note: it is equivalent to a basic assignment due to operator overloading
2015-10-21 20:10:16 +02:00
Gregory Hainaut d7afd7aae0 pcsx2:debug: swap 2 arguments
It changes nothing but it is more consistent

CID 146916 (#1 of 1): Arguments in wrong order i
(SWAPPED_ARGUMENTS)swapped_arguments: The positions of arguments in the call to disBranch do not match the ordering of the parameters:

    rt is passed to rs
    rs is passed to rt
2015-10-21 20:10:16 +02:00
Jonathan Li aff1467ea3 debugger:linux: Fix wx2.8 compilation
Bind doesn't work on wx2.8. Replace with event tables and Connect.
wxString::Format also requires the format string to be L"something".
const char* requires an explicit conversion to wxString.
The show 128/64/32 bit menu column stuff doesn't have a direct wx2.8
replacement so just omit it - I'm not sure it's useful functionality
anyway.
2015-10-21 17:34:02 +01:00
Jonathan Li ccb261a8a3 debugger: Set wxGrid label font as well
It makes the debugger window more vertically compact.
2015-10-21 17:34:02 +01:00
Jonathan Li 9d23fc222a Merge pull request #885 from byehi5299/ctrlregisterlist
Rewrite CtrlRegisterList to allow scrolling and fix size issues.
It now works better on small screens and has simpler code.
2015-10-21 17:33:10 +01:00
Gregory Hainaut e5015faafa Merge pull request #906 from PCSX2/try-catch-register-allocation-error
pcsx2: generate an exception when recompilation failed
2015-10-21 15:16:45 +02:00
Gregory Hainaut a4c37d7f51 pcsx2: fallback to the interpreter if bad register allocation 2015-10-21 13:16:51 +02:00
Miguel A. Colón Vélez 8cf51c5cf4 Linux GUI: Fix invalid cast from 'wxPizza' to 'GtkBin'.
(PCSX2:32189): GLib-GObject-WARNING **: invalid cast from 'wxPizza' to 'GtkBin'
.
Cast the wxPizza directly to a GtkWidget. Looking at the wx3.0 source code the pizza
constructor returns a GtkWidget. Also GetHandle() returns a GtkWidget:
http://docs.wxwidgets.org/trunk/classwx_window.html#a185e6cd7065367b552748cb722651b27
2015-10-20 18:23:48 -04:00
Gregory Hainaut 796f831296 pcsx2: generate an exception when recompilation failed
Avoid the cost of checking -1 for a very rare case.

It misses currently a good fallback
2015-10-20 18:23:38 +02:00
Gregory Hainaut c42f46eba4 pcsx2: auto_ptr is deprecated in favor of unique_ptr 2015-10-19 13:41:34 +02:00
byehi5299 369a6a30da A few small formatting changes. 2015-10-18 22:01:30 -04:00
Jonathan Li 26de185f54 pcsx2: Fix OpenSUSE 13.2 wx3.0 compile
I have no idea why it fails to convert the wxString to a const wxChar *.
2015-10-18 15:13:59 +01:00
Gregory Hainaut 1c8f8a00b8 Merge pull request #894 from ssakash/coverity_fix
Coverity: Prevent NULL dereferences and other stuffs.
2015-10-17 16:00:28 +02:00
refractionpcsx2 706bbcf8a9 IOP Counters: Silly error fixed.
-Coverity CID 152835 & 152834: The expression's value does not depend on the operands; often, this represents an inadvertent logic error.
In psxRcntWcount32(int, unsigned int): An operation with non-constant operands that computes a result with constant value (CWE-569)
2015-10-17 12:52:49 +01:00
Akash b8caab5f3d pcsx2: prevent a potential null deference
CID 146889 (#1 of 1): Dereference null return value (NULL_RETURNS)4. dereference: Dereferencing a pointer that might be null wxGetApp()->GetDisassemblyPtr() when calling update

FindWindowById returns NULL if the Window with the given id is not found, no need to do a extra check for validation of the id. also do a check for wxGetApp()->GetDisassemblyPtr() to prevent a null deference.
2015-10-17 11:26:08 +05:30
refractionpcsx2 9a2212c86e IOP Counter/IRQ: Misc Counter and IRQ handling changes based on NoCash documents for PS1. 2015-10-16 00:48:26 +01:00
refractionpcsx2 d01f8f9252 VSync/EE Counters: Fixes for Fatal Fury BA 1 & Legendz Gekitou! Saga Battle
-Fix up Vsync again, broken back in google code days, broke Fatal Fury, matches PS2 test again.
-Corrected the Vsync Gate 0, which was the wrong way around, Causing Legendz Gekitou not to work unless Vsync was wrong
2015-10-16 00:38:04 +01:00
byehi5299 f7e10ed53e Rewrite of CtrlRegisterList class to enable scrolling. 2015-10-14 18:11:22 -04:00
refractionpcsx2 bbd74e5a7e Merge pull request #891 from ssakash/MicroVU_branch_addr
MicroVU: Replace BranchAddr macro with an Inline function
2015-10-13 16:36:35 +01:00
Akash 71dbe3e4c4 MicroVU: Replace BranchAddr macro with an Inline function
Coverity seems to not like the assert trick and only considers the macro as a single statement, so let's rework branchAddr and branchAddrN to satisfy coverity and improve the code quality. The following patch fixes 8 coverity issues with the same problem , CID 151736 - 151743.

(#1 of 1): Misused comma operator (NO_EFFECT)extra_comma: Part !!((mVU.prog.IRinfo.curPC & 1U) == 0U) of statement (!!((mVU.prog.IRinfo.curPC & 1U) == 0U)) , ((mVU.prog.IRinfo.curPC + 2U + (s32)((mVU.code & 0x400U) ? 0xfffffc00U | (mVU.code & 0x3ffU) : (mVU.code & 0x3ffU)) * 2 & mVU.progMemMask) * 4U) has no effect due to the comma.
2015-10-13 20:25:02 +05:30
Gregory Hainaut 4d680b73dc pcsx2 debugger: don't use erased iterator
CID 146848 (#1 of 1): Using invalid iterator (INVALIDATE_ITERATOR)
8. use_iterator: Using invalid iterator existing.

Directly edit the value through the iterator.
2015-10-13 00:17:28 +02:00
Gregory Hainaut 3027b4b694 pcsx2: exit function if we can't allocate an xmm register
Allocation must always succeed
2015-10-12 23:45:43 +02:00
refractionpcsx2 4560620210 GS-Wnd: Fix UI to show UI percentage. Set defaults for the title bar. Add a sort of lie mode omodec, which says you are using progressive when Interlace(Field) is active as this most isn't technically interlaced but actually half FPS, see this comment https://github.com/PCSX2/pcsx2/issues/832#issuecomment-141248883 2015-10-12 21:21:46 +01:00
refractionpcsx2 b3d9feb1f2 Merge pull request #880 from PCSX2/coverity-negative-index-array
pcsx2: forbid negative index of array in case of register allocation failure
2015-10-12 20:52:28 +01:00
Gregory Hainaut 63889d3bea pcsx2: replace error message with a dev assert
Code mustn't be reached. Otherwise registers aren't properly freed
2015-10-12 21:38:27 +02:00
Avi Halachmi (:avih) 5379b89dbd gui: kb shortcuts: handle Sys_TakeSnapshot with shift/ctrl better
There's only one plugin api for this, but GSdx also checks whether shift/ctrl
are held down, so PCSX2 needs to map those too to the same API.

Make this more systematic by only mapping one shortcut to this API, and then
deriving the other two from it amd mapping them too automatically.

This also makes it possible to override it at PCSX2_keys.ini since now it
doesn't need to handle different shortcuts for the same function (which it still
can't handle, but now it also doesn't need to for this function).
2015-10-12 04:04:14 +03:00
Avi Halachmi (:avih) 69a978fe05 gui: kb shortcuts: yet another fix for the ini parser
Apparently I logged the values incorrectly previously. I said
that shift-q  gets parsed as Q without shift, but actually the shift flag
is set correctly on such case (though the letter is still upper case for shift-q
and it's still lower case for plain q)

So I retested all the 8 modifiers combination, and noticed that the modifiers
are always parsed and set correctly, but the letter ends up upper case if any
modifiers are used, but lower case if no modifiers are used.

We still need to make lower if it's upper, but don't need to add the shift flag.
2015-10-12 03:33:50 +03:00
Avi Halachmi (:avih) efeb66c852 gui: kb shortcuts: fix z shortcut 2015-10-12 01:55:45 +03:00
Avi Halachmi (:avih) a76914a4b1 gui: kb shortcuts win: faster VK to WX translation with a table 2015-10-11 20:11:33 +03:00
Avi Halachmi (:avih) 68b4d54f18 gui: kb shortcuts: fix key codes for "non-special" keys
This patch fixes 3 different issues for wx event key codes and the ini parser.
- The ini parser (for PCSX2_keys.ini) parses symbols and letters correctly,
  but parsed `shift-q` as `Q` without shift. Now it's parsed as `q` with shift.
- the wx event keycode has the shift flag set correctly, but always has the
  upper case code for letters (e.g. `Q` when `q` was pressed, and `Q` with shift
  flag when shift-q is pressed). Now uses lower case for letters.
- For symbol-only keys (e.g. `-` or `=`), the keycode is the MS VK_.. thingy,
  e.g. for `=` it passed 187 instead of 61, or for `.` it had 190 instead of 46.
  Now returns the ascii code where possible (assuming US KB layout).

Also, when the DevCon is enabled, all key presses are printed to the console in
a format which could be copied to pcsx2_keys.ini, so this should allow also
non-US KBs to be set up for arbitrary symbols.

It should now be possible to use letters and symbols at PCSX2_keys.ini or as
default accelerators definitions within the code.

Note: this should have supposedly been fixed at r4918 ( 851bfba ), but neither
that build from the buildbot archive, nor the official 1.2.1 release (r5875),
nor the current builds have this working, which is really weird (tested on win8)
2015-10-11 19:25:24 +03:00
refractionpcsx2 31ee576d6a Sif: Limit/Mask transfer size to 1mb-16, thanks to jpd002 (Play!) for the fix!
Fixes #643 Gregory Horror Show, which seems to be playable (from nothing!)
2015-10-08 20:02:15 +01:00
Avi Halachmi (:avih) 9b988ee12d GS window title: use a template system to satisfy everyone
This allows to choose which items appear at the title and at which order, as
well as the text and some of the textual values (at PCSX2_ui.ini).

The template's variables (include % if relevant but not the surrounding text):
${slot}, ${limiter}, ${speed}, ${vfps}, ${cpuusage}, ${omodef}, ${omodei}, ${gsdx}

The system treats the GSdx info as a single unit, as well as the CPU usage info.
The UI section (at the CPU usage section) is only visible in devel/debug builds.

The current template values which also demonstrate all the configurable values:
[UiTemplates]
LimiterUnlimited=-unlimited
LimiterTurbo=-turbo
LimiterSlowmo=-slowmo
LimiterNormal=
OutputFrame=frame
OutputField=field
OutputProgressive=p
OutputInterlaced=i
TitleTemplate=Slot: ${slot} | Speed${limiter}: ${speed} (${vfps}) | ${cpuusage} | ${omodef}-${omodei} | ${gsdx}

The previous longer template values:
[UiTemplates]
LimiterUnlimited=None
LimiterTurbo=Turbo
LimiterSlowmo=Slomo
LimiterNormal=Normal
OutputFrame=Frame
OutputField=Field
OutputProgressive=Progressive
OutputInterlaced=Interlaced
TitleTemplate=${gsdx} | Limiter: ${limiter} | ${omodei} (${omodef}) | Speed: ${speed} (${vfps}) | ${cpuusage} | State: ${slot}
2015-10-08 06:05:45 +03:00
Jonathan Li d3ddf55df1 gui: Remove unused memory card dialog drag and drop code
The code seems to be leftover from a much older implementation.
2015-10-07 21:54:24 +01:00
Jonathan Li 80727aa4cc gui:linux: Fix memory card dialog drag and drop assertion
The assertion is a wxDateTime invalid assertion. But I have no idea why
it happens, and why it only happens on Linux.
2015-10-07 21:54:24 +01:00
Jonathan Li 919bdf05fe gui: Fix/simplify memory card dialog drag and drop
wxDataObjectSimple derived classes do not use a wxDataFormatId
parameter (only the wxDF_INVALID, wxDF_TEXT, wxDF_BITMAP, wxDF_METAFILE,
wxDF_FILENAME, and wxDF_HTML wxDataFormatIds are allowed because they
are implicitly converted). So drag and drop probably should have been
broken on Windows, but wasn't for whatever reason.

Let's fix and simplify the code by just using the built in
wxCustomDataObject. Also make move the default drag behaviour on both
Windows and Linux (previously default on Windows only).

It now works on Windows and Linux wx2.8/wx3.0 (previously only working
on Windows).
2015-10-07 21:53:32 +01:00
Avi Halachmi (:avih) abdb8266b6 GS window title: change State to Slot, minor limiter simplification 2015-10-07 04:44:05 +03:00
Avi Halachmi (:avih) 31813c29af GS window title info: improve, shorten
The goal here is to reduce clutter and to make it more useful by putting the
important values at the begining, and the less used values at the end. The GSdx
string is unmodified, and maybe we could simplify it too in the future.

Previously, the tile displayed the following items in this order:
<GSdx string>  - (e.g. GSdx OGL HW | 514x224 | None)
<output mode>  - Progressive/Interlaced (Frame/Field)
<limiter mode> - Limiter: None/Turbo/Slomo/Normal
<speed info>   - Speed: <100-based-percentage> (<vfps>)
<CPU usage>    - EE: <%> | GS: <%> | VU <%> | UI: <%>
<save state>   - State: <slot-number>

This patch changes the following to this order and format:
- Move the save state value to the front since it's actually useful.
- The speed value, which now includes the limiter value if not "Normal".
- Then the CPU usage parts, but the UI value only shows on debug/devel builds.
- The output mode, shortened to Frame/Field-i/p
- the GSdx string same as before only at the end

So all the info is still there as before (except UI), but more readable format.

E.g. before (normal limiter and turbo limiter):
GSdx D3D11 HW | 640x512 | None | Interlaced (frame) | Limiter: Normal | Speed: 100% (50.01) | EE:  43% | GS:   4% | UI:   0% | State 0
GSdx D3D11 HW | 640x512 | None | Interlaced (frame) | Limiter: Turbo | Speed: 443% (221.31) | EE:  99% | GS:  16% | UI:   0% | State 0

E.g. after (normal limiter and turbo limiter) for the same values as above:
State 0 | Speed: 100% (50.01) | EE:  43% | GS:   4% | frame-i | GSdx D3D11 HW | 640x512 | None
State 0 | Speed (Turbo): 443% (221.31) | EE:  99% | GS:  16% | frame-i | GSdx D3D11 HW | 640x512 | None
2015-10-07 04:08:09 +03:00
Jonathan Li addf3d5331 pcsx2: Throw the exception
Coverity CID 146842: Dereference after null check (FORWARD_NULL)
2015-10-07 00:37:40 +01:00
Avi Halachmi (:avih) fa04f0970e gui: ESC on fullscreen: better resilience
Make sure we exit fullscreen only if the GS window is visible and in fullscreen.

While we don't currently have such cases, it's possible that the Sys_Suspend
command is called while it's already suspended (and the GS window is hidden)
but the code without this patch would have incorrectly made it visible again.
2015-10-07 01:10:43 +03:00
Avi Halachmi (:avih) 9c1688a39a GS window: try to fix ESC on fullscreen sometimes not exiting correctly
This tries to emulate LilyPad's "Safe fullscreen exit on escape" hack, and
hopefully also makes this LilyPad hack redundant, such that it would fix the
issue also with other input plugins.
2015-10-06 19:09:45 +03:00
Avi Halachmi (:avih) 4522418890 GSFrame: remove unused style argument at ShowFullScreen 2015-10-06 19:01:24 +03:00
Avi Halachmi (:avih) 2cd0829a8d updated a comment that --noguiprompt also works correctly at fullscreen
The issue that fullscreen was not restored if the --noguiprompt confirmation
was aborted was already fixed implicitly via e4d8af0, therefore the comment
ended up incorrect. Also explain why it was broken when emulation was not
suspended before this commit, and how it could have been fixed.
2015-10-06 15:31:36 +03:00
Avi Halachmi (:avih) e4d8af0c97 gui: exit prompt for --noguiprompt: suspend while visible
When using --nogui and --noguiprompt and the user presses ESC, a prompt is
displayed asking the user to confirm exiting/closing PCSX2. This patch suspends
the emulation while this prompt is displayed.

Also updated the comment that if LilyPad has "safe fullscreen exit on ESC", then
full screen is not restored automatically if this prompt is canceled.
2015-10-06 02:08:28 +03:00
Jonathan Li 5f2e60d751 gui:windows: Scale confirmation dialogs at high DPI
This should scale all the other dialogs that don't have specifics widths
set.
2015-10-05 20:11:20 +01:00
Jonathan Li 31b1e34ae8 gui:windows: Fix memory card dialogs at high DPI
Specifying a minimum size for the filename text controls seems to mess
up the size calculations at higher DPIs and causes usability issues.
Use sizers and proportions instead.

Also scale the dialog widths with the DPI.
2015-10-05 20:10:40 +01:00
Jonathan Li f11596fabc gui: Fix missing retry and abort button labels
Retry and abort don't have default labels, so you end up with blank
buttons on both Windows and Linux. Fix it.

Retry is used by the portable mode settings dialog. I'm not sure if
abort is used anywhere.
2015-10-05 20:02:32 +01:00
Jonathan Li 84b17765c2 gui: Fix memory card dialog message truncation
Use sizer flags so the messages aren't truncated. The message truncation
wasn't noticeable in English.
2015-10-05 20:02:32 +01:00
Jonathan Li 5856d77371 pcsx2: Pass IsoFile parameter by reference
Coverity CID 146905, 146906: Big parameter passed by value
(PASS_BY_VALUE)
2015-10-05 20:02:31 +01:00
Avi Halachmi (:avih) 1093c816d0 gui: recording dialog modality: more resilience
A very slight refactor of commit 9eadf3 to also handle a future case where the
audio has a dialog but the GS doesn't (currently both conditions are false).
2015-10-05 21:20:43 +03:00
Avi Halachmi (:avih) 9eadf353d9 gui: recording dialog - make pseudo-modal also for the main window
The dialog was already modal for the GS window, but the main window wasn't
blocked and pcsx2 could crash if, e.g. the user tried to close the main window
while the recording dialog was visible.

Fixes #879
2015-10-05 20:57:19 +03:00
Gregory Hainaut 2eefc135e5 pcsx2: forbid negative index of array in case of register allocation failure
CID 146870 (#1 of 1): Negative array index write (NEGATIVE_RETURNS)
5. negative_returns: Using variable xmmreg as an index to array ...

Open discussion: how to handle correctly bad register allocation?
    Currently negative index is returned and a message printed. It means
    we need to propagate the index check everywhere in order to not use it.

    I suspect that Instruction Generation is more or less corrupted so
    potentially we could just fire an exception.
2015-10-05 19:55:25 +02:00
Jonathan Li 1cbae66bb3 pcsx2: Make memory card dialog modal
There were bugs in the UI handling that allowed you to resume emulation
when the memory card dialog was opened, which could potentially cause
data loss/corruption.

Make the memory card dialog modal to prevent this. Although it's
possible to do with a modeless dialog, the solution will be much more
complicated and less future proof.

This also fixes the emulation resume bug after closing the memory card
dialog.
2015-10-04 20:49:53 +01:00
Jonathan Li c17eacec04 pcsx2: Move AppOpenModalDialog
Also avoid sending a change page event if an empty string is passed and
the dialog is already open.
2015-10-04 20:46:52 +01:00
refractionpcsx2 ad784a56ec superVU: Fix missing breaks.
-This was actually a bug, may improve some games that were buggy in superVU, but these functions aren't often used.
-Coverity CID 146865 & 146864:  In recVUMI_ESIN(VURegs *, int): Missing break statement between cases in switch statement (CWE-484)
-Coverity CID 146863 & 146862: In recVUMI_EEXP(VURegs *, int): Missing break statement between cases in switch statement (CWE-484)
-Coverity CID 146855 & 146854: In recVUMI_EATAN(VURegs *, int): Missing break statement between cases in switch statement (CWE-484)
2015-10-04 15:04:34 +01:00
refractionpcsx2 3618983aaa CDVD: Comment out unreachable code.
-Left in so future checks can see what's going on.
-Coverity CID 146818: In ISOreadSector(unsigned char *, unsigned int, int): Code can never be reached because of a logical contradiction (CWE-561)
2015-10-04 14:39:57 +01:00
refractionpcsx2 4a056fe55a VIF Unpack: Remove logically dead (and pointless) code
-Coverity CID  146829: In nVifUnpack<1>(unsigned char const*): Code can never be reached because of a logical contradiction (CWE-561)
2015-10-04 14:34:46 +01:00
refractionpcsx2 99095c0529 eeRec: Fixed Negative array index write
-Coverity CID 146868: In R5900::​Dynarec::​OpcodeImpl::​recWritebackHILOMMX(int, int, int, int): Negative value used to index an array in a write operation (CWE-129)
2015-10-04 14:12:45 +01:00
refractionpcsx2 5b4eb65e68 eeInt: Fix logically dead code in PMFLH.
-Coverity CID 146817: In R5900::​Interpreter::​OpcodeImpl::​MMI::​PMFHL(): Code can never be reached because of a logical contradiction (CWE-561)
-This code is used by both the Interpreter and Recompiler, however it was probably never checked because nothing much uses it. Out of 248 games, it was called 0 times.
2015-10-04 13:34:37 +01:00
Jonathan Li 84bdd0ef45 pcsx2:debugger: Add missing break
Coverity CID 146856: Missing break in switch (MISSING_BREAK)
2015-09-26 19:33:36 +01:00
refractionpcsx2 b63590152a Vif: Fixed logically dead code (not that it mattered)
-Coverity CID 146826: In vifExecQueue(int): Code can never be reached because of a logical contradiction (CWE-561)
2015-09-26 13:55:50 +01:00
refractionpcsx2 4b63847e04 microVU: Fix logically dead code + bug
-Coverity CID 146821: In _mVUflagPass(microVU &, unsigned int, unsigned int, unsigned int, std::​vector<unsigned int, std::​allocator<unsigned int>> &): Code can never be reached because of a logical contradiction (CWE-561)

-Coverity CID 146822: In mVUcompileSingleInstruction(microVU &, unsigned int, unsigned int, microFlagCycles &): Code can never be reached because of a logical contradiction (CWE-561)
2015-09-26 13:34:20 +01:00
refractionpcsx2 a89307c5ba Vif: Fix logically dead code with something slightly quicker. Coverity CID 146827: In _vifCode_MPG(int, unsigned int, unsigned int const*, int): Code can never be reached because of a logical contradiction (CWE-561) 2015-09-26 13:00:28 +01:00
refractionpcsx2 457362ba84 VU Interpreter: Fix uninitialized scalar variable Coverity CID #146964. 2015-09-26 12:35:03 +01:00
refractionpcsx2 931fdf0bcd Merge pull request #839 from ssakash/patch-1
MicroVU: Fix a logically dead code for XGKick Instruction
2015-09-25 21:50:10 +01:00
Gregory Hainaut 070afe57af svu: fix buffer overrun on ialu&fmac
CID 146904 (#1 of 1): Out-of-bounds write (OVERRUN)
10. overrun-local: Overrunning array VU->ialu of 8 16-byte elements at element index 8 (byte offset 128) using index i (which evaluates to 8).

CID 146903 (#1 of 1): Out-of-bounds write (OVERRUN)
10. overrun-local: Overrunning array VU->fmac of 8 32-byte elements at element index 8 (byte offset 256) using index i (which evaluates to 8).
2015-09-25 21:04:58 +02:00
Gregory Hainaut 037bd3109e pcsx2: extend the size of plugin m_info array to avoid out-of-bounds
Note: previous fix +1 wasn't enough.
2015-09-25 21:00:16 +02:00
Akash ffebefb65e MicroVU: Rework a logically dead code for XGkick.
mVU_XGKICK_CYCLES can only take delay cycle values 1 and 6, it can't take NULL value. the conditional check and parameter is useless here.
2015-09-24 03:05:40 +05:30
Gregory Hainaut 2eb73644e9 pcsx2|common: use DESTRUCTOR_CATCHALL to catch exception in various destructor
Allow to print a nice error message instead of a brutal abort in case of
massive failure
2015-09-23 09:47:27 +02:00
Gregory Hainaut 0bb62bb0fd pcsx2:init IsInterpreter member in constructor 2015-09-23 09:47:27 +02:00
Gregory Hainaut 4d8a23c1fc pcsx2:gui: init all members in constructor 2015-09-23 09:47:27 +02:00
Gregory Hainaut e41f786c72 pcsx2:gui: drop useless m_FrameCounter 2015-09-23 09:47:27 +02:00
Gregory Hainaut 5b4ba02012 pcsx2: init members in constructor 2015-09-23 09:47:27 +02:00
Gregory Hainaut 1c14389c7f pcsx2:DebugTools: init members in constructor 2015-09-23 09:47:27 +02:00
Gregory Hainaut 78ed0495ce pcsx2:CDVD: init members in constructor 2015-09-23 09:47:27 +02:00
Gregory Hainaut 23591deb81 pcsx2: initialize members in constructor of objects 2015-09-23 09:47:27 +02:00
Gregory Hainaut 4184d6eef5 pcsx2:cso: NULL pointer check
Coverity:

CID 146846 (#1 of 1): Dereference after null check (FORWARD_NULL)
5. var_deref_model: Passing null pointer fp to fclose, which dereferences it
2015-09-23 09:39:08 +02:00
Avi Halachmi (:avih) cee0b795ee Recording: handle cancel (at the GS[dx] dialog) gracefully
Without this patch, if a user initiates a recording and then cancels at the GSdx
dialog, the audio was recording anyway, which is probably highly unexpected.

However, while probably highly unexpected, it could still be useful to record
only audio, but with this patch it's now impossible.

We can reconsider if it turns out that people are actually using this "feature",
though one might as well set the video setting to be very unobtrusive (very low
resolution/bitrate) such that it uses very little CPU.
2015-09-22 01:11:25 +03:00
Jonathan Li b0803a4bc6 pcsx2:debugger: Fix potential buffer overrun
CID 146914 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)

The overflow can be triggered using the Debugger's Rename Function
feature.
2015-09-21 20:44:46 +01:00
Jonathan Li 39c5cd4f84 pcsx2:cdvd: Fix memleak
CID 146832 (#4-1 of 6): Non-array delete for scalars (DELETE_ARRAY)

ScopedPtr is for non-array objects only. Use ScopedArray instead.
2015-09-21 20:13:55 +01:00
Gregory Hainaut 130a84d2af pcsx2:debugger: miss a coma
Thanks RebelliousX
2015-09-21 09:32:13 +02:00
Gregory Hainaut b60dd9d1fe Merge pull request #814 from PCSX2/coverity-qa-high
Fix a bunches of coverity warning/errors.
2015-09-20 22:18:03 +02:00
Admiral H. Curtiss 051a7f3451 FolderMemoryCard: Handle empty files on load and write 2015-09-20 01:13:54 +03:00
Avi Halachmi (:avih) ddb87027f9 folderMemoryCard: hack - don't call hundreds of times per second
In order to flush data with some delay after save-to-memory-card, the code was
calling sioNextFrame() on each frames (60 times/s) continuously as long as the
emulation is active, regardless if FMC is in use or if memory cards in general
are in use.

Further to that, each call to sioNextFrame calls 8 times into the memory card
plugin even if FMC is not in use, resulting in overall ~500 calls/sec with the
sole goal of facilitating delayed flush after MCD save with folder memory cards.

This patch is a hack to call it once per second instead of 60 per second, but we
need to remove this call completely.

The delayed flush will now happen after 60-120 frames instead of exactly 60.
2015-09-19 13:41:24 +03:00
Avi Halachmi (:avih) ef9016e363 folderMemoryCard: hack - don't hang PCSX2 if a file has zero size
I'm not sure if it breaks the state of the folderMemoryCard (FMC) or not, but
at least it doesn't hang PCSX2.

Might need followup to make sure the state ends up valid.
2015-09-19 13:36:49 +03:00
Jonathan Li e576f259e4 Merge pull request #807 from turtleli/windows-dpi-image-scaling
Scale images according to DPI (Windows)
Partially fix theming
2015-09-19 10:31:53 +01:00
Avi Halachmi (:avih) ece9c7f2d2 GS window title: remove "align" space at fps value.
This value doesn't fluctuate frequently between 2/3 digits, so there's no need
for alignment, and it also saves some space most of the time.
2015-09-17 05:32:15 +03:00
Avi Halachmi (:avih) a6737b87fd Custom frame rate: improve message, respect also for NTSC-progressive
When a custom PAL/NTSC frame rate is used, PCSX2 respects it for PAL and NTSC,
but disrespected it for NTSC-progressive mode (used hardcoded 30/60). Fixed.

Also, when a custom rate was used, the console message displayed half the rate
which was configured. Now print the actual rate.
2015-09-17 01:40:05 +03:00
Akash 304fc990a1 PCSX2: Add Percentage Counter for FPS.
The FPS has been Indicated in Paranthesis whereas Speed would provide the Integer percentage value based on the FPS limit for NTSC, PAL games. (59.94, 50)

Thanks to avih for the suggestions.
2015-09-17 03:59:48 +05:30
Jonathan Li 67dc65ea91 linux: Fix _aligned_realloc implementation
Out-of-bounds memory is no longer accessed if the realloc size is larger.
If reallocation fails, the old memory will not be freed and a memcpy
will not take place.

This should match the Windows _aligned_realloc behaviour, except that an
extra parameter is used.
2015-09-13 21:05:33 +01:00
Gregory Hainaut fc67e372d2 pcsx2:gui: fix potential infinite loop 2015-09-11 21:01:23 +02:00
Gregory Hainaut 0422854384 pcsx2:interpreter: always false condition
Both fields are 10 bits but the ~ operation apply on the 32 bits.
Therefore msb bits were always '1' and the condition always false.

Code is only used on the interpreter but it could explain some hangs
2015-09-11 20:01:01 +02:00
Gregory Hainaut bfe1236d98 pcsx2|lilypad: Unintentional integer overflow
Add some cast to do the intermediate operation in 64 bits
2015-09-11 16:50:02 +02:00
Gregory Hainaut 6c7ce3465e pcsx2:CDVD: guarantee that index of mg_zones array is below than 8
CID 146917 (#1 of 1): Untrusted array index read (TAINTED_SCALAR)
tainted_data: Using tainted variable cdvd.Result[1] as an index into an array mg_zones
2015-09-11 09:25:09 +02:00
Gregory Hainaut 113c0aa411 pcsx2: use sizeof of object instead of pointer (portability)
CID 146912 (#1 of 1): Sizeof not portable (SIZEOF_MISMATCH)
suspicious_sizeof: Passing argument recConstBuf of type u32 * and argument 131072U /* RECCONSTBUF_SIZE * sizeof (recConstBuf) */ to function memset is suspicious. In this case, sizeof (u32 *) is equal to sizeof (u32), but this is not a portable assumption.
2015-09-11 08:54:29 +02:00
Gregory Hainaut f092f9045c pcsx2: initialize the block pointer
There is a check on it on the resize function
2015-09-11 08:54:29 +02:00
Gregory Hainaut ac8f4e69d6 pcsx2|gsdx: avoid potential null deferencement 2015-09-11 08:54:29 +02:00
Gregory Hainaut 1baa6be6de debugger: enforce a null terminated char of a C-string
CID 146728 (#1 of 1): Buffer not null terminated (BUFFER_SIZE_WARNING)
buffer_size_warning: Calling strncpy with a maximum size argument of 128 bytes on destination array mod.name of size 128 bytes might leave the destination string unterminated
2015-09-11 08:52:05 +02:00
Gregory Hainaut f4f08b9c99 pcsx2: avoid couple of out-of-bounds access 2015-09-10 14:20:51 +02:00
Gregory Hainaut c687c73edd pcsx2:debugger: avoid strlen call on random data 2015-09-10 13:46:36 +02:00
Gregory Hainaut 0bcaff4214 pcsx2:cdvd/debug: various uninitialized data
Most of the time, code is correct. In doubt always init the value.
2015-09-10 13:45:42 +02:00
Gregory Hainaut 5e8f899620 pcsx2:debug: miss a break that lead to a mem leak 2015-09-10 13:42:23 +02:00
Gregory Hainaut 5c933a7faf pcsx2:gzip: free the index
Normally index will be NULL if len is 0 but it won't hurt
2015-09-10 13:41:22 +02:00
Jonathan Li d8a7bfd438 gui: Adjust mainframe size and status bar position
There are a few odd things with Windows and the background logo.
1. The windows containing the logo is smaller than the logo.
2. The fitting algorithm doesn't work at 200% DPI.

Both make no sense, but can apparently be worked around.
2015-09-08 18:47:45 +01:00
Jonathan Li bcc125ceb6 gui:windows: Implement image DPI scaling
This should reproduce the old non-DPI aware pre-wxWidgets 3.0 behaviour
for the main dialogs, except the font rendering should be better.

And add comments that I should have already added but didn't.
2015-09-08 18:47:44 +01:00
Jonathan Li 59ffed85ba gui: Fix image list scaling
The listbook images aren't rescaled unless the embedded icons are used.
Make sure all the images are correctly rescaled.
2015-09-08 18:27:48 +01:00
Jonathan Li 5cf94e5a15 gui: Allow screenshot icon to be themed.
The logo and all the other icons can apparently be themed (though
theming is a bit broken). Let's allow the camera screenshot to be
themed as well.
2015-09-08 18:27:48 +01:00
Jonathan Li 2263961d4d gui: Simplify and rework EmbeddedImage class
The wxImage Scale/Rescale methods with wxIMAGE_QUALITY_HIGH upsamples
and downsamples using the bicubic and box resampling methods
respectively, so let's just use that instead of the ResampleBox method,
which is undocumentated and probably shouldn't be used.

The Rescale function also modified the image when it was not supposed
to. Fix it, and rename it scale to avoid confusion with the wxWidgets
class.
2015-09-08 18:27:48 +01:00
Jonathan Li 9d4a8688c1 Merge pull request #801 from turtleli/windows-left-list-icons
Have listbook icons (Emulation Settings, Plugin BIOS selector) on the left for all platforms.
Don't set minimum widths for Framelimiter and Frameskip panels.
2015-09-07 08:46:49 +01:00
Jonathan Li 1d2d8cd38b gui: Don't set min widths for Framelimiter/skip panels
It causes weird behaviour at higher DPIs.
2015-09-07 08:26:20 +01:00
Jonathan Li 5e9ba64db8 gui: Have listbook icons on left for all platforms
On Windows, this fixes the minimise/restore weird dialog bug on the
Emulation Settings and Plugin/BIOS selector dialogs. It also fixes a bug
at high DPI, where it becomes difficult to click on GUI elements at the
top of the dialog.

It also makes it easier for me to work on the Windows DPI stuff, I don't
have a 4k monitor.
2015-09-07 08:25:56 +01:00
Jonathan Li ca0aeb8e62 Windows: Avoid lockup for RuntimeError exception
This is the same problem that the Plugin Open and BIOS load exceptions
had - The message box pops up, intercepts the hide event for GSFrame and
leaves you with no alternative but to terminate PCSX2 via the Task
Manager.

The same solution applies - Close the GSFrame first.
2015-09-06 20:36:19 +01:00
Jonathan Li d87b34ab36 gui: Increase presets message width
This prevents clipping at 200% DPI on Windows.
2015-09-05 23:10:15 +01:00
Jonathan Li 31a505768d gui: Use SetSizerAndFit after dialogs are constructed.
It seems to fix the button UI problem for Linux wx3.0 builds.
2015-09-04 17:58:25 +01:00
Jonathan Li 2b6d44a043 gui: Fix Emulation Settings dialog, GS section
Expand "Disable Framelimiting" and "Synchronised MTGS". Fixes message
truncation on Linux, and Windows at higher DPI.

Don't use pxFitDigits on Spin Controls - the sizing algorithm fails
horribly on GTK3, which means you can't see anything.

And don't use a row of spacers - it causes a minor display issue with
GTK3.
2015-09-03 17:22:12 +01:00
Jonathan Li 288931ddc3 Merge pull request #781 from ssakash/patch-49
Fix Windows Lilypad local volume control GUI checkbox.
Make MicroVU E-bit delay slot warning a Dev warning.
Don't minimise GS Window if main window is minimised.
2015-09-02 21:51:04 +01:00
Akash b5aceceef2 don't minimize GS window along with main window.
previously the GS window (rendering window) also gets minimized with the Main window (GUI) whenever it gets minimized. many users didn't like this behavior, hence make it so that GS window doesn't get minimized along with the main one.

The parent window pointer parameter is no longer needed, since the parent parameter at WX Frame has been replaced with Null which doesn't force minimize it due to no parent relationship.
2015-09-02 08:27:18 +05:30
Akash 8ebe03a89d MicroVU: use DevCon.Warning for E-bit delay slot.
The following E-bit delay slot warning initially used a console error message which has a sort of bright red which would cause users to provide a lot of attention towards to it, whereas it isn't much to be bothered since it doesn't cause any issues on the game according to refraction it was already dealt with on the code.

So, use a proper warning indicator instead of a error log message.
2015-09-02 08:27:15 +05:30
Jonathan Li 9929962d54 gui:windows: Scale settings dialog widths with DPI
Height is calculated automatically, so that's sort of ok. A lot more
fixes will be needed to fix the rest of the DPI stuff.
2015-09-01 18:25:19 +01:00
Jonathan Li 149b7fc347 gui: Fix Windows screenshot workaround comment.
It's an actual wx3.0 bug, not a bug in dialog construction.
2015-09-01 18:14:03 +01:00
Miguel A. Colón Vélez 4a743ac2fb Remove Dependency and UAC info from the manifest file.
Visual Studio adds the dependency info automatically and /MANIFESTUAC
adds the UAC part.
2015-08-31 21:03:53 -04:00
Miguel A. Colón Vélez 45fc9603e3 Recognize Win 8, 8.1 and 10.
https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx
Windows 8.1 and 10 require a manifest file or they will be reported as
6.2 which is Windows 8.
.
Also add the information for Win 8, 8.1 and 10 in the WinMisc.cpp file.
2015-08-25 21:30:27 -04:00
Miguel A. Colón Vélez c97c4f878a Update pthreads project.
- Add x64
- Use static library
2015-08-25 09:53:00 -04:00
Jonathan Li 6b11497cdc Don't log errors when initially setting the default language
The PCSX2 log system isn't in place yet, so on Windows it's possible for
a language error message to pop up, which might cause alarm. Suppress
the error - it's harmless and it's done everywhere else for locales
(though perhaps the code should be reworked to avoid this).
2015-08-24 19:17:59 +01:00
Jonathan Li 995a09a2a6 gui: Use full dialog width for Enable Speedhacks text
The "Enable Speedhacks" description on the Emulation Settings dialog
now uses the entire dialog width instead of word wrapping at the
half-way point.
2015-08-24 15:43:48 +01:00
Charlie 37cfdf6fe2 Request the use of the high-performance graphics card on systems where
multiple graphics processors are available (nVidia Optimus, AMD Hybrid
Graphics).
2015-08-24 12:35:08 +01:00
Jonathan Li 48745a3bc5 Ignore "Do not show dialog again" checkbox when cancelled
It's undesirable to not be able to reboot or change plugin if you
checked the checkbox and then pressed Cancel.
2015-08-23 23:35:13 +01:00
Jonathan Li 3f39741d0a Remove do not show checkboxes from swap/reset dialogs
It didn't make any sense to have them there.
2015-08-23 23:35:12 +01:00
refractionpcsx2 1800770c94 Merge pull request #789 from AdmiralCurtiss/memcard-filter-dont-load-root-files
FolderMemoryCard: Don't load files in the root dir when filtering.
2015-08-23 19:10:04 +01:00
Admiral H. Curtiss 5ffc6e0558 FolderMemoryCard: Don't load files in the root dir when filtering.
No official game stores files there. You can easily check this by putting any file in the root dir and loading the PS2 BIOS, which will show it as corrupted data with an unknown filesize.
2015-08-22 16:27:29 +02:00
Jonathan Li 55eebb5fd2 Fix cheats path and folder creation
For the install version on Linux, PCSX2 now searches for cheats in $HOME
instead of /usr. For the install version on Windows, PCSX2 now searches
for cheats in Documents/PCSX2 instead of the cheats directory where
PCSX2 is installed.

Also make a few small consistency changes.
2015-08-21 00:14:49 +01:00
Johannes Obermayr a0527fc53b Mkdir() doesn't allow const qualifier [-fpermissive]
Fixes: error: passing 'const wxFileName' as 'this' argument of 'bool wxFileName::Mkdir(int, int)' discards qualifiers [-fpermissive]
2015-08-20 22:35:20 +02:00
Jonathan Li 70990002d8 debugger: Fix Assemble Opcode functionality
For some reason it was working in wx2.8 with a GetLabel(). Strange that.
2015-08-19 19:17:20 +01:00
Miguel A. Colón Vélez 96df56ca8e VS2015: Fix Devel. 2015-08-19 13:31:56 -04:00
Miguel A. Colón Vélez a1de0614d7 Remove vs2012 files.
It does not support several things from C99/C++11 that are
used in the project.
2015-08-18 01:15:51 -04:00
Miguel A. Colón Vélez a1e56518a5 Rename inside the files. 2015-08-18 00:44:49 -04:00
Miguel A. Colón Vélez 277217353e Rename files. 2015-08-18 00:44:35 -04:00
Miguel A. Colón Vélez 1fe5aceded Enable round-tripping.
- Remove ToolsVersion
- Use $(DefaultPlatformToolset)_xp until XP support is dropped.
Note: opencl had no XP support and was not enabled in VS2012.
2015-08-18 00:44:19 -04:00
Admiral H. Curtiss b2831ac2fd FolderMemoryCard: Fix Linux compile error. 2015-08-17 23:10:29 +02:00
bositman f9e6a02346 Merge pull request #757 from AdmiralCurtiss/folder-memcard-keep-files-open
FolderMemcard: Keep open handles on files.
2015-08-17 11:38:38 +03:00
refractionpcsx2 9c7d4171e8 mVU: Tweak the flag hack again so it plays nice with Bloody Roar (and any other which started experiencing issues).
- Now makes sure the previous 4 calculations are taken.
2015-08-15 12:54:40 +01:00
Gregory Hainaut 52e12baca2 pcsx2: fix gcc warning: may be used uninitialized 2015-08-13 08:48:05 +02:00
refractionpcsx2 3415da216f Whoops, too many clamps 2015-08-12 22:33:35 +01:00
refractionpcsx2 6664936529 microVU/COP2: Add clamping to solve hangs on Superman - Shadow Of Apokolips 2015-08-12 22:31:05 +01:00
Gregory Hainaut 6046d6c417 Merge pull request #749 from PCSX2/gsdx-micro-optimization
Gsdx micro optimization
2015-08-12 08:54:36 +02:00
refractionpcsx2 68de5228a8 GIF Unit: Stop multiple fires of FINISH IRQ's
- Fixes Indiecar Series 2005.
- Savestate bump was required, sorry, not sorry :P
2015-08-12 02:16:23 +01:00
Admiral H. Curtiss 7a388c73c5 FolderMemoryCard: Correctly write the internal memory card file creation/modification timestamps to the host file system's file attributes. 2015-08-11 02:41:42 +02:00
Admiral H. Curtiss cb01523677 FolderMemoryCard: Fix the metadata writing problem that was introduced in 30eb292b48. 2015-08-11 02:11:41 +02:00
Admiral H. Curtiss 879d0c601f FolderMemoryCard: Keep handles to all accessed files while a memory card is open. This prevents users from modifying card contents while the emulator is running. 2015-08-11 02:11:39 +02:00