Commit Graph
62 Commits
Author SHA1 Message Date
skidau c76ba17ff4 Stub out glGetError() calls from the release build of the OpenGL plug-in (found by ector, code by LordMark). Gives a speed-up in the OpenGL plug-in.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6039 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-03 10:48:49 +00:00
skidau f7c4670c9f * Fixed a careless mistake of mine with SetJumpTarget
* Changed ABI_PARAM back to ECX/EDX.  Thanks for the tip, Soren
* Reverted r6035

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6036 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-02 14:06:27 +00:00
skidau fcf2fb2b9b MMU Speed Optimisations:
* Un-cleaned the Load/Store code.  I think this will fix the stability issues from r6032
* Added memory exception checking to a couple more JIT FPU instructions
* Optimised the 64bit fast memory access slightly
* Optimised the MMU speed hack.

The rest of the speed optimisations from r6032 have been retained.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6034 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-02 10:28:37 +00:00
skidau 9c36f0bc88 MMU Speed Optimisations:
* Added memory exception checking to JIT instructions
* Cleaned up Load/Store code (thanks dok.slade)
* Consolidated memory access routines
* Fixed graphics corruption in some games (dcbz instruction)
* F-Zero GX in 32bit JIT mode now works
* Removed temporary slow hack in JITIL (introduced in r4839)


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6032 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-02 04:22:04 +00:00
skidau 432335cda5 Fixed some boundary issues in PPCAnalyst. This fixes Rogue Leader and other MMU games.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6009 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-31 02:29:11 +00:00
skidau 1d2f4283d1 Added a self modifying code option in the game properties. Turn this on for Monster House and other games that hang or show memory errors. Turn it off for everything else. This fixes Legends of Wrestling.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6005 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-30 17:12:59 +00:00
skidau 84b5824670 Quick fix to get Monster Hunter Tri working.
Minor changes resulting from code review comments.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6004 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-30 16:54:16 +00:00
skidau bae8c6ed9c Fixed the crash that occurred while loading and saving states. This change freezes the system while a save state is being made or loaded, ensuring that the sub-systems (e.g. CPU and GPU) is in a consistent state when the save-state is created. Removed the clearing of the JIT cache as invalidated memory would sometimes be jumped to from the block descriptors, causing the crash. Removed the saving of the old JIT unlimited icache from the state as this now serves only as transient data to track what has been compiled in the JIT (and it took up a lot of space). The icache is now saved inside the PPCState.
Fixes issue 2964.  (I hope)

HAPPY 6000th!!!

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6000 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-30 09:24:23 +00:00
skidau 9ff5e836eb Implemented MMU Demand Paging
* Emulated correct behaviour of DSI and ISI exceptions
* Added memory exception checks
* Added fast TLB cache implementation (written by booto)
* Added "Enable MMU" option in the game properties
* Renamed old TLBHack to "MMU speed hack"

Thanks to booto (PowerPC) and nash (testing) who spent many weeks of their time helping me make this work.  Also thanks to shuffle2 for finding and converting the map file of the original target.

There are two options for MMU emulation found under the game properties.  "Enable MMU" is the accurate emulation option.  "MMU speed hack" is the old TLBHack renamed. Most games will work with one or the other.  Some games can work with both options ticked.

Only the JIT recompiler and Interpreter work with the MMU code.  JITIL is not supported (too hard for me to add).

The speed optimised code still needs a lot more work and is disabled for now.

Fixes issue 2546
Fixes issue 2583
Fixes issue 2704



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5994 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-29 12:17:47 +00:00
skidau 5133793c6c Swapped out UNLIMITED_ICACHE for FAST_ICACHE in both the JIT and JITIL recompilers. The ICACHE is the instruction cache emulation of the CPU. In my testing, FAST_ICACHE was more compatible than UNLIMITED_ICACHE. This also means the icache emulation will be consistent between the PPC recompilers and the interpreter.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5841 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-06 07:21:35 +00:00
skidau fccacd7f62 Build fix
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5834 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-05 03:58:59 +00:00
skidau f158ca82af Debugger enhancements:
* Added JIT breakpoints functionality
* Added a menu option to disable the JIT block cache
* Enabled single stepping in JIT mode as a run-time option (automatically enabled when the debugger is used)
* Enabled the missing JIT Off menu options
* Removed the JIT Unlimited Cache hack



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5833 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-05 02:05:47 +00:00
skidau e07a9b107a JIT fix. Brings back the speed lost in r5378. The memmap function was incorrectly marking virtual memory as real memory. Fixes issue 2653.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5790 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-26 03:07:07 +00:00
skidau cab62472b8 Confirmed the ARAM DMA alignment by testing the real hardware.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5704 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-15 01:01:34 +00:00
skidau 4ff200eccc Emulated the extra BAT's that the Wii has in the MMU.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5688 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-14 05:38:39 +00:00
skidau de45e015cd Fixed a silly math bug from r5638. Thanks ector!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5644 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-10 10:30:41 +00:00
skidau b3046be7ad Aligned ARAM DMA to 32 byte boundaries and multiples of 4 bytes in length
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5638 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-09 12:05:00 +00:00
skidau 79b20494be Fixes a crash in the DirectSound back-end.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5635 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-08 13:28:12 +00:00
skidau 869f5e64c7 Added a catch-all OpenGL visual. This allows the VideoSoftware plug-in to run under VirtualBox.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5454 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-16 07:37:22 +00:00
skidau b9d5168388 Fixed a memory leak in the TrampolineCache. Occurs when stopping a game.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5446 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-05-12 12:13:07 +00:00
skidau 3b35cb12f2 Fixed the LI and LIS PPC instructions in the JIT. This fixes MGS:TS Konami logo hang.
Made the JIT sanity checks more informative.
Sanity checks are now only performed in the DEBUG and DEBUGFAST builds.  This gives a tiny speed-up for everyone else.

Fixes issue 2187.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5378 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-17 03:00:35 +00:00
skidau 7a7d1a7b55 Re-added Skies of Arcadia projection hack. Fixes issue 2514.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5372 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-15 09:23:59 +00:00
skidau 122d5e7b4e Fixed the crash in DSP LLE JIT on x64 by aligning the stack.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5357 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-13 10:18:05 +00:00
skidau be70b43a2b JIT single stepping
Enable it by uncommenting the defines in JitBase.h.  For breakpoints to work in JIT mode, the block cache must be disabled.  The PPC instruction trace, regs, fpu regs, flags, generated x86 binary and generated x86 disasm are logged in the Dynamic Recompiler log.

Fixes issue 1052.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5314 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-10 15:41:44 +00:00
skidau 0ecdb7b83e Fixed the bug where JITIL could not be selected in debugger mode.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5292 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-08 09:18:42 +00:00
skidau 962fef0626 Fixed bug where the projection hack setting was not being saved in the Game Properties dialog.
Removed the obsolete projection hacks:

* Final Fantasy CC Echo of Time
* Harvest Moon Magical Melody
* Baten Kaitos
* Baten Kaitos Origin
* Skies of Arcadia

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5271 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-02 21:28:56 +00:00
skidau 14d489dfee Allows more than one instance of Dolphin to be running. Credit goes to Billiard for the code.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5242 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-27 06:37:37 +00:00
skidau 5ff07aace6 Cleared out the top 16 bits in PARAM1 of the ABI_CallFunctionC16 JIT command.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5232 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-24 20:27:09 +00:00
skidau 76ad8db445 Added a null check when stopping the DSPHLE plugin with the DSound back-end. Fixes the DSPHLE crash on stop.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5172 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-03-08 08:03:42 +00:00
skidau 1b43900f30 Applied the fix from r5118 to the JIT IL recompiler.
Enabled the fix on Linux x64.
Aligned the stack before calling the LoadStorePaired asm functions.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5122 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24 20:06:13 +00:00
skidau dc9d533d4f Aligned the stack before calling the LoadStorePaired asm functions. Fixes issue 2053.
The Linux x64 change is untested and has been commented out.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5118 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-02-24 08:30:50 +00:00
skidau 1f37bb2177 Reverted the FIFO thread change
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4937 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-23 21:06:12 +00:00
skidau 35b6e71f03 Experimental FIFO thread. Speeds up the emulator by moving FIFO to its own thread. This will work best with quad cores, though there is a noticeable improvement on my dual core.
Enable the thread by adding this line to the video plugin ini files, "User\Config\gfx_dx9.ini" and "User\Config\gfx_opengl.ini":

UseFIFOThread = True

The line should be added under the UseXFB line.

To disable the FIFO thread, use this line:

UseFIFOThread = False

If the line is not in the ini file, the default is disabled (i.e. False).

The FIFO thread causes an error when the OpenGL plugin is used.  The D3D plugin works.

Only top left quarter of the screen can be seen when rendering to main window.  The entire screen can be viewed when running in a window.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4930 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-23 12:50:56 +00:00
skidau ab509465d5 The D3D plugin was dumping BMP textures with an incorrect png extension. Fixes issue 2074.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4906 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-20 13:06:02 +00:00
skidau 50019fb525 Added sanity check to the OpenGL framedumper. At startup, the AVI Dumper was being sent frames with a zero pixel height to render, crashing the dumper. Closed issue 1324.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4905 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-20 12:26:47 +00:00
skidau f76e9db1a7 Fixed a Wx assertion in the debug builds. The JIT off menu items were being enabled when they did not exist.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4903 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-20 11:31:38 +00:00
skidau 292627a31e Fixed the game list not reappearing after the close button was used.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4900 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-20 09:24:06 +00:00
skidau c0a86df00e GUI fixes
* Fixed log window docking
* Fixed multi-selection in the game list
* Fixed last filename selection.  Dolphin remembers the last game/elf/file that you loaded and will load that if you press the Play button without a default ISO selected and without selecting anything from the game list.



git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4887 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-19 13:43:51 +00:00
skidau 5c27050cd8 Got rid of the sticky JIT window
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4885 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-19 09:12:41 +00:00
skidau e44e412da8 Debugger cleanup
* Made the debugger toolbar height match the other toolbars.
* Centered the disasm on the current instruction
* Allow one click view of the JIT'd code

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4878 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-18 13:44:40 +00:00
skidau 335c056586 Fixed the button states in the toolbar when loading, starting, and stopping a game.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4877 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-18 12:10:51 +00:00
skidau 9df31a9747 Implemented tlbie instruction
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4875 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-18 04:39:01 +00:00
skidau 8245e4115d Fix for saving SaveStates - VirtualEFB does not exist any more, so do not try to save it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4874 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-18 03:55:54 +00:00
skidau 59e7c19380 drkIIRaziel reversed engineered the frsqrte instruction providing hardware accurate emulation.
The algorithm and lookup table are 99% accurate which is far better than the approximation that Dolphin had previously.

The frsqrte instruction is used for a lot of 3D graphics functions so this change may help fix graphics glitches.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4864 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-17 04:29:44 +00:00
skidau efe20c93e8 In the Interpreter, marked mtmsr as an "end of block" instruction, making it consistent with the JIT tables.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4849 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-16 04:43:07 +00:00
skidau fa5823ad9a Minor bugfix to the TLB cache
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4848 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-16 03:55:53 +00:00
skidau b3b7ed2a2f FPU NaN and negative zero fixes. Verified against the real hardware.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4847 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-16 03:43:16 +00:00
skidau 9c264a1047 Implemented MMU:
* Added BAT algorithm
* Page Address translation algorithm is now used in all games
* Added TLB cache
* Temporarily forced JITIL to use the slow memory access for Win32 when playing tlbhack games.

F-ZERO GX is now playable.  It works only on JITIL in the 32bit version.  It works in both JIT and JITIL on x64.

The MMU code may fix other games that are crashing.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4839 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-15 14:39:27 +00:00
skidau e55c3793b6 Readded the "Loading settings from" log at the INFO log level.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4772 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-01 20:12:31 +00:00
skidau 746b9eeaab Stop spamming the file log without being asked to. Removes the "Loading settings from" and "Starting application" notices being written to the file log when the file log was not enabled.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4770 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-01 09:13:08 +00:00
skidau f97b782551 Another fix for one of the crashes ;) when closing Dolphin
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4753 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-30 08:48:16 +00:00
skidau ec790584aa Fixes the crash when closing Dolphin
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4752 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-29 23:15:23 +00:00
skidau a93a30e688 Fix for negative zero in fnmsubsx (interpreter)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4742 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-29 09:11:26 +00:00
skidau 0d0a7c515f JITIL fixes:
* ble involving CR flags was branching the wrong way around.
* xorx now works when sent the same register for both the src and dest
* lbzu disabled (same as JIT) fixing a Dolphin crash
* JITIL provided with the memory exception handler fixing crashes when memory is read out of bounds.

These fixes are able to get F-Zero GX in-game when JIT FloatingPoint is disabled.  Once in-game, F-Zero retires the player just like it does in JIT.

This change might fix Dolphin crashes involving JITIL in other games too.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4723 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-23 10:51:02 +00:00
skidau 043681a37f Dolphin now uses the first OpenCL device found on the system.
Added cast in TextureDecoder.cl to satisfy the OpenCL compiler (thanks, Orphis).

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4718 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-12-23 01:31:42 +00:00
skidau 293fda409f Fixes "The Legend of Zelda: Twilight Princess" black screens/freeze issue.
http://code.google.com/p/dolphin-emu/issues/detail?id=4549
2011-06-06 11:38:59 +00:00
skidau 53c0c3cb90 Disabled cheats that were enabled by default. 2011-03-19 06:09:40 +00:00
skidau 978a10e6b1 Added Skies of Arcadia Legends projection hack 2011-02-13 03:43:09 +00:00
skidau defcf0a034 One Piece Unlimited Cruise 2 is now playable since Dolphin 6634. 2010-12-22 01:42:15 +00:00
skidau 01f82ce2bc Batman: Dark Tomorrow requires XFB to start 2010-12-16 05:46:33 +00:00
skidau 642f1df8ed Updates from the issues log. 2010-12-11 01:56:00 +00:00
skidau 108be590ac Compatibility update as of Dolphin r6500.
Thanks to Link_to_the_past (Gameconfigv008)
http://forums.dolphin-emulator.com/showthread.php?tid=12928
2010-12-11 01:20:43 +00:00