Removed some __MINGW32__ specific code, and added a GCC-friendly #define for declaring __naked functions. (another optimization directive in MSVC which GCC doesn't support and/or ignores)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@616 a6443dda-0b58-4228-96e9-037be469359c
Removed some dead code form VUmicroMemInit -- it was already being handled by memInit. Made a few other minor tweaks of the memory protection code (hoping to fix VM issues, but no luck yet).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@597 a6443dda-0b58-4228-96e9-037be469359c
*NOTE* There is a stack corruption bug lingering in the recompilers. We know about its existence but not the cause yet. Until found it's going to cause generally random crash type behavior. (ouch!)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@592 a6443dda-0b58-4228-96e9-037be469359c
Did a little code cleanup on the VUSkip, and fixed a problem where-by VU-skip enabled could cause odd behavior when exiting/re-entering emulation.
Removed the unused REC_COP2 option (it was not useful anyway since the COP2 and EE are always recompiled together)
Made a few more __fastcalls out of IPU functions.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@588 a6443dda-0b58-4228-96e9-037be469359c
Cleaned up the GUI code a bit. The gui is no longer recursively called from the EErecs branchtest. This is good for process stack security, good for savestate stability, and good for improving the GUI's ability to handle and recover from errors (although the last part will need more work before it's fully implemented).
Did some more cleanups of the IPU code. Fixed some tabbing and formatting, and did a couple more __fastcalls.
Note to our compilers: We redid the naming scheme of the build targets (again!). Builds are now names Debug, Devel, and Release. The builds behave the same as they did prior, except that now the names are much shorter. Also, we decided to disable PCH on Release builds for safety sake. Devel builds still have PCH enabled on everything except IPU.cpp.
**VM build is still broken!** (I'm going to take a look at it in earnest tomorrow)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@587 a6443dda-0b58-4228-96e9-037be469359c
Moved Dynarec-related IPU const mem reads/writes to iIPU.cpp, and added some __fastcall directives to various relevant functions and function pointers (very small speedup).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@586 a6443dda-0b58-4228-96e9-037be469359c
Additionally, the new memset alternatives correctly save the XMM0 register, which can be clobbered by MSVC's memset implementation.
Changed some code in iR5900's eventTest to use EAX instead of ECX (very small speedup).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@582 a6443dda-0b58-4228-96e9-037be469359c
Applied gratuitous amounts of inlining to WinSysExec.cpp to ink out another 0.1% speed boost. heh
Fixed the double-keystroke bug when using certain combinations of Pad plugins.
Added JNS32 to the ix86 emitter.
*IMPORTANT* VM builds are STILL broken.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@580 a6443dda-0b58-4228-96e9-037be469359c
*NOTE: THIS IS REVISION WORKS ON VTLB ONLY -- VM BUILDS ARE CURRENTLY BROKEN* If you like VM, do not try to compile or use this revision. The VM build will crash anytime you try to load a savestate or exit/resume emulation.
(Interpreters and some other stuff are also broken too, but will be fixed shortly)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@578 a6443dda-0b58-4228-96e9-037be469359c
Fixed a few bugs in the GS-on-Close recovery system. It should work more and crash less now.
Restructured the entire initialization process of Ps2 memory and cpu resources. All emulation system resources are allocated when the app first starts now, giving Pcsx2 the best possible chance to allocate needed Virtual Memory resources. And *Hopefully* this resolves some memory corruption issues that have persisted since r488.
Added several new functions to System.cpp as partof the new API: SysAllocateMem(), SysAllocateDynarecs(), etc.
Created some new files: VU0microInterp.cpp and VU1microInterp.cpp, and separated the VU cpus into their own "cpu" structure (they used to be grouped in with the R5900, which made it awkward to work with them).
Turned off speed optimizations for the WinMain.cpp and WinSysExec.cpp files, due to a compiler bug in MSVC that causes it to completely break codegen for the RunExecute() function.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@577 a6443dda-0b58-4228-96e9-037be469359c
i changed the 2 functions that deal with VU mem addresses to reflect the changes (GET_VU_MEM() and recVUTransformAddr())
they also had a bug where they weren't mapping VU1's VF regs to 0x4000.
i think i got all the VU mem functions that needed to be modified, if games break with this revision then we know i missed one ><
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@576 a6443dda-0b58-4228-96e9-037be469359c
Improved the behavior of the VARG_PARAM thingie in release builds. It generates a little bit more compact compiled code now.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@572 a6443dda-0b58-4228-96e9-037be469359c