Commit Graph

7959 Commits

Author SHA1 Message Date
marcosvitali 352ab2ba43 Improved the CheckException for the GatherPipe writes in JIT, now only the External Exceptions are processed.
We Didn't Check 0x0008000 in PowerPC::ppcState.msr this was killing the performance, this also fix a hang when this check is performed.
SMG for example.
Deleted the HiWatermark condition from GPFifo.
Please test games affected in this  Revision 9e649ce798, and games affected in this Revision b0f75f17ae.
I do not want to excite the game players of 'The Las Story', but Could test again the random hangs with this rev?

Thanks
2012-03-13 01:44:10 -03:00
marcosvitali fedf6055ce I've fixed Super Monkey Ball in some cases when the game write the WriteReadDistance need to be safe like the SafeCPRead.
This fix is not related with the previous commits, but the previous commits help me to see that because in the new scenery SMB was hanging. May be in the past also doesn't boot some times because of that.

Please Test FZero boot also. Thanks.
2012-03-11 12:40:39 -03:00
marcosvitali 104603467b This commit fix games hanging because of my prior Revision c2e6fdf09f
The external exceptions in dolphin are checking frequently but is different to real HW, so sometime the game is in a loop checking GPU STATUS, the exceptions doesn't checked, and the game hang.\
For solve this I need a trick: still waiting for the exception handler be linked but if CommandProcecsor is reading the GPStatus, resume this.

This fixed "TimeSplitters: Future Perfect" broken in the Revision c2e6fdf09f and surely others games.
2012-03-09 18:58:23 -03:00
marcosvitali 41652d6b1f I've fixed Metroid Prime 3 and 2 desync. And other games with desync because of FIFO Reset.
That happens because  FIFO_RW_DISTANCE_HI must be written first, for checking fifo.CPReadWriteDistance == 0, so some fifo resets was not managed in the right way.
I didn't test Metroid 2 desync reported in Issue 4336 but I think is the same.
About the flickering in MP2, I don't know for my is not related or yes, but you can test anyway.

Fixed Issue 3902

Well now the FIFO is 99.99% finished :)
2012-03-09 01:33:29 -03:00
marcosvitali c2e6fdf09f - I've fixed possibles random hangs in DC mode.
- I've fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
- I've implemented accurate manage of Pixel Engine Interrupts, now the GPU loop is stopped when a PE Interrupt needs to be managed and resume when Pixel Engine finish,
I think now, the Fifo in DC mode is more accurate than SC mode. :)

Time to close the big fifo Issue 3694 (snif), please if you have a possible fifo issue report this like a game issue.

I was working with Skid_AU together, especially thanks for him.

Test a lot all games, and compare the performance with the master maybe this accuracy has a cost (not a lot).
I think now the fifo is very stable, overflow fixed, random hang fixed, if you have a game with a hang with this rev and not in master please report this.
2012-03-08 02:47:55 -03:00
marcosvitali b0f75f17ae This release still fixed the hangs produced by fifo overflow without sacrifice performance.
For example you can test Tutorial moves at the beginning of The last history now is fluid 30/60.
Shuffle2: I've delete the hacky line, I think is not necessary anymore. Additional some clean in CommandProcessor.
Please test The Last Story and others games affected in the previous commits and give me a feedback.
2012-03-05 02:40:10 -03:00
skidau a53916ff5d Changed the detection of FIFO write addresses to writes at the gather pipe boundary. This speeds up games which frequently write to the gather pipe like the pre-rendered movies in The Last Story.
Added some code to unlink invalidated blocks so that the recompiled block can be linked (speed-up).
2012-03-04 23:42:33 +11:00
skidau 5de8366db2 Made the invalidation of the FIFO write JIT blocks more selective (efficient). Fixes the slowdown in the House of the Dead: Overkill cutscenes. 2012-03-04 08:10:46 +11:00
skidau 874e17e504 Added the corresponding change from r9e649ce79850 to JITIL. 2012-03-03 15:41:55 +11:00
skidau 9e649ce798 Added additional checks to ensure that only a FIFO breakpoint exception is handled. This fixes the hangs in games like de Blob, Xenoblade and Super Mario Galaxy introduced by r9e398fd41802. 2012-03-03 14:26:39 +11:00
skidau 9e398fd418 Added an external exception check when the CPU writes to the FIFO. This allows the CPU time to service FIFO overflows. Fixes random hangs caused by FIFO overflows and desyncs like in "The Last Story" and "Battalion Wars 2". Thanks to marcosvitali for the research.
Fixes issue 5209.
Fixes issue 5150.
Fixes issue 5055.
Fixes issue 4889.
Fixes issue 4061.
Fixes issue 4010.
Fixes issue 3902.
2012-03-02 18:53:41 +11:00
Jordan Woyak ee09def802 Merge branch 'cpp11' 2012-02-28 00:28:13 -06:00
Jordan Woyak 38823b6371 Add comment here so people know what's up. 2012-02-28 00:27:16 -06:00
NeoBrainX c3293b1a1c Improvement to revision b8bef29bcc .. :P 2012-02-25 10:59:00 +01:00
skidau b8bef29bcc Fixed a divide by zero error in the hash functions 2012-02-25 20:36:49 +11:00
Jordan Woyak f92d1e1e93 fix some clang compilation errors 2012-02-24 14:25:02 -06:00
Jordan Woyak 8a8dc77ef1 enable c++11 compilation in cmakelists 2012-02-24 14:19:24 -06:00
Jordan Woyak f15aeb26b3 Use an auto typed variable in IniFile.cpp 2012-02-24 19:20:17 -06:00
NeoBrainX b251880d8b GameConfig: Remove an empty file 2012-02-24 17:31:17 +01:00
NeoBrainX 3a9fed0ba2 PixelShaderGen: Fix a bug introduced in revision 9adc119e3c.
D3D11: Fix shader constant mapping.
2012-02-21 12:51:41 +01:00
NeoBrainX 9adc119e3c PixelShaderGen: For custom textures and scaled EFB copies, use correct texel to pixel mapping when sampling textures
(D3D9 only)

This is basically the same as revision e58692653a, just for scaled textures and with a LOT more work...
2012-02-20 20:32:08 +01:00
NeoBrainX d068686a7f Revert revision f7d757b46e. 2012-02-20 11:51:40 +01:00
NeoBrainX e58692653a PixelShaderGen: Use correct texel to pixel mapping when sampling textures
(D3D9 only)

Fixes issue 2068.
Fixes issue 5158.
2012-02-17 17:09:17 +01:00
parlane bea635d1d5 Fixes issue 5214 for real! 2012-02-15 20:56:50 +00:00
parlane cbab832907 Updated English translation, fixes issue 5214. 2012-02-15 20:52:03 +00:00
Matthew Parlane fc3eb7c6a7 Fixed a few warnings. 2012-02-09 17:18:46 +13:00
Andrew de los Reyes c9dfcf8cf7 Add Support for Wii Motion Plus INSIDE Wii Remotes on Mac OS X.
This patch makes a few changes necessary for support for the new Wii
Remotes:

- For all OSes:
  - Adds a new bool member variable m_motion_plus_inside to identify
    the new Wii Remotes.
  - If we have a new Wii Remote, use a head byte of 0xa2. We could
    just change this behavior for all Wii Remotes, but an existing
    comment suggests that would break 3rd party Wii Remotes.

- On Mac OS X:
  - Expand the search criteria for the bluetooth scan. This is
    necessary because the new Wii Remote identifies with minor class
    kBluetoothDeviceClassMinorPeripheral2Gamepad, but the old Wii
    Remotes use minor class
    kBluetoothDeviceClassMinorPeripheral2Joystick (1).
  - Send commands on the interrupt channel, not the control
    channel. The new Wii Remotes require this; old ones are compatible
    with this. Note: 3rd party Wii Remots are untested with this
    change; the hope is they are still functional.
  - Get the name of the bluetooth device and see if it ends in
    "-TR". If so, set a member variable so we know it's the new kind
    of Wii Remote.

This should fix issue 5011 for Mac OS X:
http://code.google.com/p/dolphin-emu/issues/detail?id=5011
2012-02-09 11:42:42 -08:00
skidau 25eae39b7c Rearranged the SSE detection. Patch by lordlyhobo.
Fixes issue 5172.
2012-02-06 20:51:24 +11:00
skidau 8f83a89416 Removed the busy-wait from DSP LLE on thread. Reduces the CPU usage in this scenario by around a third. 2012-02-05 17:18:11 +11:00
skidau c53283185d Added an error check for invalid contents in ES_OPENCONTENT. Fixes Jungle Speed and Doc's Punch Out.
Fixes issue 3035.
2012-02-05 16:16:33 +11:00
NeoBrainX 0bbb112298 Merge branch 'texcache-preload'
For further info, see revision 56ccfc5d9d4defb308e02a71d201aee9eef0a76e.
2012-02-04 13:19:48 +01:00
NeoBrainX 439613b833 TextureCacheBase: Remove a superfluous TODO (texture hashing takes care of that stuff) 2012-02-04 13:01:52 +01:00
skidau ea2e0e9063 Added the HID2.WPE condition to dcbz. Fixes issue 5114. 2012-02-04 13:25:04 +11:00
NeoBrainX eb01a110c9 Implement texture preloading 2012-02-03 21:21:13 +01:00
NeoBrainX dabb35afce Prepare texture preloading support 2012-02-03 21:20:34 +01:00
NeoBrainX 20a4735b4d Update some license headers. 2012-02-02 14:02:39 +01:00
LPFaint99 5cfb03da26 Merge branch 'variousSmallFixes' 2012-02-01 16:50:09 -08:00
LPFaint99 d6de53f235 convert name, notes and creator to wxstring using *wxConvCurrent instead of FromAscii. fix issue 5069 2012-02-01 00:09:24 -08:00
LPFaint99 a78c5f984f download codes for virtualconsole titles 2012-02-01 00:09:23 -08:00
LPFaint99 a0d6d68243 sysconf SetArayData use the minimum of the buffersize or the dataLength 2012-02-01 00:04:18 -08:00
LPFaint99 8e332948bf less log noise from CNandContentLoader 2012-02-01 00:04:06 -08:00
LPFaint99 c3e46d5b45 partial fix for issue 4742 2012-02-01 00:03:57 -08:00
LPFaint99 60594c079d allow just ejecting the disc by canceling the file dialog 2012-02-01 00:03:49 -08:00
LPFaint99 303d1b83eb minor cleanup to /dev/es, fix for grabbing titleid from the disc, and es_gettitledir 2012-02-01 00:03:41 -08:00
LPFaint99 3fb42f6bb6 split adding the ticket to its own function (installing a wad) 2012-02-01 00:03:16 -08:00
LPFaint99 1f83078b5f add some new game inis 2012-02-01 00:02:49 -08:00
NeoBrainX 013bda74ee Merge branch 'texcache-cleanup' 2012-01-31 19:58:32 +01:00
NeoBrainX d1605abfa9 Add license header for TextureCacheBase files 2012-01-31 19:52:02 +01:00
NeoBrainX 1446fb33d5 TextureCacheBase: Replace the efbcopy_state member variable of texture cache entries with a more general "texture type" 2012-01-31 19:52:02 +01:00
NeoBrainX cf899781f9 TextureCacheBase: Update and improve documentation for EFB copies 2012-01-31 19:52:02 +01:00