Commit Graph

548 Commits

Author SHA1 Message Date
Jake.Stine b71b837efa Linux: Added more correct __asm__ qualifiers and conditions; including __volatile__ on a lot of asm code (it should really be the default behavior and non-vlatile the specifier, but whatever >_<), and added register clobber specifiers. Might help unbreak some of GCC 4.4's optimization problems, although VIFdma's uber-hack SSE optimization looks like a real problem.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1964 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-05 11:05:11 +00:00
Jake.Stine 6412271470 Renamed PCSX2_ALIGNED to __aligned and removed the need for excess parenthesis and oddball qualifiers. Left the old macros in Pcsx2defs.h for now, just in case. Redid some of the storage organization of microVU and iFPU consts and temporaries while I was at it, using structs instead of naked vars -- should improve cpu cache behavior a wee bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1959 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-05 02:15:49 +00:00
Jake.Stine 5b92054923 Better fix for zmuldefs. Less warnings in MSVC and GCC both. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1957 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 21:49:23 +00:00
Jake.Stine 4f6d7ca776 Linux: We don't need no stinkin' muldefs! (fyi, turns out the solution was to use the "inline" keyword on class member prototype definitions, yes that simple -_-)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1955 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 20:28:08 +00:00
arcum42 291be6bc60 Minor fix to r1953.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1954 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 20:20:50 +00:00
Jake.Stine e1c89dacdb Bind the cdvd's newDiskCB properly when changing CDVD sources; and more jASSUME->pxAssert change-overs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1953 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 15:34:40 +00:00
Jake.Stine db01c15977 Linux: Minor fixups!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1952 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 09:00:07 +00:00
Jake.Stine 653d09e821 Lots of new code maintenance stuffs:
* Completely new assertion macros: pxAssert, pxAssertMsg, and pxFail, pxAssertDev (both which default to using a message).  These replace *all* wxASSERT, DevAssert, and jASSUME varieties of macros.  New macros borrow the best of all assertion worlds: MSVCRT, wxASSERT, and AtlAssume. :)
 * Rewrote the Console namespace as a structure called IConsoleWriter, and created several varieties of ConsoleWriters for handling different states of log and console availability (should help reduce overhead of console logging nicely).
 * More improvements to the PersistentThread model, using safely interlocked "Do*" style callbacks for starting and cleaning up threads.
 * Fixed console logs so that they're readable in Win32 notepad again (the log writer adds CRs to naked LFs).
 * Added AppInit.cpp -- contains constructor, destructor, OnInit, and command line parsing mess.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1950 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-04 08:27:27 +00:00
Jake.Stine 15d2824d1b (work in progress -- some of this stuff still doesn't quite work as it should)
* Rewrote Savestate code, fixed lots of stuff in PersistentThread, and renamed most "Emu"s to "Sys".
 * Removed wxScopedPtr and whipped up our own ScopedPtr that doesn't use boost's fail-style function names (and made it more thread-safe).
 * Handling exceptions across threads: Added Clone() and Rethrow() methods to BaseException, and added a Rethrow() to PersistentThread.
 * Go rid of AppInvoke macros (those were nasty!)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1929 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 19:16:00 +00:00
Jake.Stine 6b9ffd8132 Renamed memzero_obj to memzero. Been meaning to do that for a while. Also, Savestates *almost* work, but it's just not going to happen. See everyone in 5 days or so. -_-
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1913 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 12:53:32 +00:00
Jake.Stine aaa3b773c6 Improved MTGS (added better suspend/resume support), and work on savestates a bit (still not working tho)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1908 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 09:53:21 +00:00
Jake.Stine 39bd850f72 win32pthreads: Changed from _beginthreadex to CreateThread, which is the preferred method of creating threads when using dynamic CRT linking.
PCSX2/Win32:
 * Assigned names to the threads so that they show up nicely in the debugger.
 * Added more error checking in the new stdout/stderr PipeRedirection code, hopefully fixing Issue 422 (but can't reproduce the error here to be sure).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1904 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-22 17:28:48 +00:00
Jake.Stine fdbabaa11c Linux: Fix compilation errors and warnings. There's still a lot of new warnings in x86Emitter due to __forceinline being disabled in debug builds, but the proper fix for those will come later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1898 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-21 09:48:31 +00:00
Jake.Stine 0f259e62d5 Implemented keyboard accelerator tables and a hashed global command table (should be ideal for eventual GUI extensions via plugin, and toolbars and other fanciness). Removed Pause menu and replaced it with a Suspend/Resume menu. Closing GS window behaves more nicely.
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
2009-09-20 20:54:45 +00:00
Jake.Stine 3ccb4d3698 Re-re-re-re-fixed the BIOS skip hack saving on exit (plus lots of code cleanups and some API changes to saving/loading settings -- more to come).
Linux/GCC: Disabled __forceinlining in debug builds.  This is the intended design, fixes many GCC errors in debug builds, and also mimics MSVC behavior.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1854 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 14:07:36 +00:00
arcum42 34af7c1281 Linux: IsRunning was crashing pcsx2. Also, jNO_DEFAULT isn't a good idea in these two spots.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1845 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-17 23:24:44 +00:00
Jake.Stine c9c924fe35 Yay, craploads of fixups for the new gui:
* 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
2009-09-16 17:23:02 +00:00
Jake.Stine 4fbc2c26aa Fixed a bug in BiosTools.cpp that caused Bios-Not-Found errors.
MemoryCard / Multitap Renovations:
 * Memorycards should now support multitap (somewhat untested)
 * Implemented a memorycard plugin interface, using the new API defined in PluginCallbacks.h (still prelim and hackish)
 * Memorycard settings are saved to ini!
 * Multitap is now controlled by PCSX2 instead of the pad plugin (which means no multitap until we implement the gui toggles to enable it)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1817 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-13 17:11:35 +00:00
Jake.Stine 179054c1a0 Corrected some missing GPLv3 headers that somehow got missed in my first pass.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1809 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 10:09:59 +00:00
Jake.Stine b638f52809 Re-ordered the MSVC folder structure to split PCSX2 into two definitive sections: [App]Host and [Emu]Core (the bracketed names indicate the "long" versions which are generally used in the code to differentiate the functions and classes). If the tentative layout is good then I'll sort the files on SVN to match that layout.
(note: Patch.cpp/Patch.h is still the odd child out in this commit, as it's destiny is to become a plugin)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1804 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 02:58:22 +00:00
Jake.Stine 76045a4722 Cleaned up Path namespace and moved it and wxDirName to /common/Utilities.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1803 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 01:03:44 +00:00
Jake.Stine 7f0039d646 Two more lockup fixes, and changing plugins takes effect without restarting now. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1801 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-09 16:52:11 +00:00
Jake.Stine 8eb8f1bcea Emulation options (speedhacks, CPU, etc) should work now, and fixed a few memleaks on exit, and crash-on-close bugs caused by more mis-used pthreads timedwait parameters.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1800 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-09 14:08:15 +00:00
Jake.Stine d2fbb22076 Upgraded PCSX2 core and utilities to GPLv3.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 12:08:10 +00:00
Jake.Stine 3b10771c36 Got rid of that old 'params' mess on console logs. Not needed anymore since wxwidgets has nicer built in formatting options (never liked it anyway)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 05:37:40 +00:00
Jake.Stine 976d5ec539 * Implemented Skip Bios (settings still not saved tho)
* Fixed a bug in how I was (not) handling pthreads return codes.  It's errno you need to check, *not* the function's return value. ;)
 * Changed MTGS over to use the pthread_cleanup api.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1779 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 03:44:35 +00:00
Jake.Stine 50446e6930 * Added preliminary keyboard support back in (probably doesn't compile in linux)
* Fixed a deadlock in thread cancellation.
 * Muted some folder warnings when running pcsx2 for the first time.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1778 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-07 21:16:12 +00:00
Jake.Stine 9308d86ffc wxgui: Runs games. 'nuff said.
* Fixed some deadlock conditions by adding a message pump to semaphore waits ont he main/gui thread.
 * Many more config and init bugfixes.
 * Implemented most of the new Boot menu.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1745 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-05 23:07:23 +00:00
arcum42 163efebb29 wxgui: Add in a missed check on the threading. Update the game fixes panel.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1744 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-05 12:02:07 +00:00
Jake.Stine 93e1d87a22 wxgui: improve single-threaded plugin enumerator for Linux (still a bit buggy)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1743 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-05 09:21:59 +00:00
Jake.Stine 64e43a9086 wxgui:
* Fixed thread classing so that detached pthreeads are handled safely, and so that virtual functions in C++ destructors are explicitly specified.
 * Added some helper functions to Pcsx2App for safely executing menu commands form any thread in the emu.
 * Fixed several minor bugs in settings / config handling.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1730 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-03 11:59:05 +00:00
Jake.Stine 25a31e3a03 wxgui: retooled exception handling, should eliminate warnings in GCC and remove previous initialization ambiguities. (ended up being a nice code cleanup too, yay)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1720 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-01 00:43:28 +00:00
Jake.Stine 980afabc30 wxgui:
* Moved some files around in an attempt to improve CoreEmu and UI separation.
 * Major upgrade to the UI's handling of savestates
 * Maintenance work to the C++ exception handling
 * Some improved error handling and message popups here or there

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1714 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-31 03:47:05 +00:00
Jake.Stine 9303bc5bf2 wxgui: Prepped the R5900 recompiler for the new wxWidgets-enhanced dedicated emulation thread design, and removed the old boolean-based re-entrant event checking mess.
Note: Nearly have a successfully booting branch! (bios crashes when it reaches CDVD api callbacks, should be a simple fix but it'll have to wait until later >_<)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1680 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-25 15:38:48 +00:00
Jake.Stine db3e81504e wxgui: The Linux side compiles and runs again. Note: Removed "Open in Explorer" buttons for folders since there seems no reliable way to do that in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1661 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-20 23:05:26 +00:00
Jake.Stine e25db2a0ba wxgui: sync with trunk (boooring)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1660 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-20 16:19:33 +00:00
Jake.Stine c415d8d694 wxgui:
* Major cleanups and improvements to the Threading namespace.
 * Created CoreEmuThread class framework, which currently runs the EEcore, IOP, and VUs with threadsafe suspension, reset, and resume features.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1624 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-15 06:17:43 +00:00
Jake.Stine 3544bcd118 wxgui: maintenance sync with trunk.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1604 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-04 13:34:52 +00:00
Jake.Stine 71490981bf wxgui: synced with trunk, and started work on an improved plugin initialization procedure. (branch currently does NOT compile, sorry)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1582 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-29 14:00:00 +00:00
Jake.Stine 3751c928d3 wxgui: synced with trunk (to acquire new CDVD/ISO api)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1558 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-23 14:58:17 +00:00
Jake.Stine aaf1acf58d wxgui: Added more functionality to configuration dialogs and more options are saved to ini.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1544 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-20 00:39:38 +00:00
Jake.Stine ccdb5d84b9 wxgui: Optimizations and improvements to the console logger's threading model.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1535 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-17 03:43:45 +00:00
Jake.Stine 94a4897624 wxgui: fixed up linux size (and omg it was easy for once!)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1507 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-14 14:22:40 +00:00
Jake.Stine 8505e4a7e7 wxgui: Added plugin selection dialog (complete with plugin enumeration and an exceedingly fancy progress bar), fixed some menus, added isofile recent lists, and lots more stuff is correctly saved and loaded from the configuration file.
* Dev note: Re-enabled USE_STL in wxWidgets since that's required to ensure thread safety.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1505 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-14 06:18:52 +00:00
Jake.Stine 3c195e9f9a wxgui: more of the slowly progressing.
* 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
2009-07-11 08:31:38 +00:00
Jake.Stine fb6a8939b0 wxgui: Moved some more files around in Common/Utilities, and merged against trunk.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1460 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 20:48:11 +00:00
Jake.Stine aceefaf812 wxGui branch: [linux] Updated projects, added Utilities and x86emitter libraries.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1459 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-03 20:12:33 +00:00
Jake.Stine da691894c3 wxgui branch: Maintenance merge against trunk, plus many cleanups and project-level changes.
* 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
2009-07-03 00:49:40 +00:00