Commit graph

8011 commits

Author SHA1 Message Date
skidau
41bcf657f8 Adjusted the DX9 offset of the Sampling address to more closely match what we are seeing in games.
Fixes issue 5305.
2012-03-23 23:20:19 +11:00
skidau
c4fbb6e377 Checked PRELOAD_MODE to determine if TMEMODD or TMEMEVEN should be used.
Fixes issue 5212.
2012-03-23 22:10:48 +11:00
Shawn Hoffman
fab037446c Forward "raw" reads of GC discs to the normal read function, since they are not encrypted in the first place. 2012-03-22 23:04:45 -07:00
LPFaint99
9c9e593479 fix crash on windows while changing exi/si devices when interface language is Japanese or Chinese 2012-03-22 14:52:20 -07:00
Matthew Parlane
d95e31af3f Fixes issue 4932 AGAIN :D 2012-03-22 22:52:12 +13:00
Matthew Parlane
2d75d7a8be Fixes issue 5278. Thanks to megazig for finding the bug :) 2012-03-22 21:15:05 +13:00
Matthew Parlane
dc1cde4581 Re-enabled stfs, was caused by fast fp, thanks delroth! 2012-03-22 17:25:43 +13:00
Shawn Hoffman
15db05d7ab I am very picky about my VS files... :D 2012-03-21 14:53:50 -07:00
Pierre Bourdon
70b6c4280f Compile with /fp:precise instead of /fp:fast in release mode on Windows
/fp:fast was introducing FP precision problems, and mixing it with some
/fp:precise code caused strange game behaviors, DSI exceptions and freezes.

This commit should fix most of the issues introduced by 3.0-73 (r95517a97).

Thanks to hatarumoroboshi@hotmail.com for tracking a lot of these Win32 bugs.

Fixes issue 4906.
Fixes issue 5138.
Probably fixes (not tested) issue 5067.
2012-03-21 22:43:44 +01:00
NeoBrainX
6202714efd Fix some regressions from r3b38295cbd08. 2012-03-20 22:36:21 +01:00
kostamarino@hotmail.com
0861f524d4 Gameini database update. About 142 files updated or added to the database. 2012-03-20 20:41:55 +02:00
skidau
5e2fd45203 Merge fix 2012-03-20 21:01:15 +11:00
skidau
a60a0825a3 Merged 'FifoBusy' branch. Thanks
to marcosvitali.

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.

Added some code to unlink invalidated blocks so that the recompiled block can be
linked (speed-up).

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.

Fixed possibles random hangs in DC mode.
Fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
Implemented accurate management of Pixel Engine Interrupts.  Now the GPU loop
is stopped when a PE Interrupt needs to be managed and resumed when Pixel Engine
finish.

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.

Fixed Super Monkey Ball in some cases when the game write the
WriteReadDistance need to be safe like the SafeCPRead.

Improved the CheckException for the GatherPipe writes in JIT, now only the
External Exceptions are processed.

Fixed definitely Pokemon XD in dual core mode. This game is doing something
not allowed. It attach to CPU the same fifo attached to the GPU in multibuffer
mode. I added a check to prevent overwrite the GPU FIFO with the CPU FIFO. If
the game do that on breakpoint the solution can fail.

Fixed ReadWriteDistance calc when CPRead > CPWrite.

Added Token and Finish cause to GP Jit checking.

Additional cleanup in CommandProcessor.



Fixes issue 5209
Fixes issue 5055
Fixes issue 4889
Fixes issue 4061
Fixes issue 4010
Fixes issue 3902
2012-03-20 19:37:25 +11:00
Matthew Parlane
14ea442382 srawx fixed thanks to boo toe. 2012-03-20 19:51:42 +13:00
skidau
281d7531a3 Fixed a crash on exit by calling DefWindowProc after the WM_DESTORY message has been received. Patch by eddie.willett.
Fixes issue 4588.
Fixes issue 5285.
2012-03-19 21:51:26 +11:00
Matthew Parlane
418f46ea72 Fixed memory leak. And added braces to match the rest of the switch statement in FileIO. 2012-03-19 18:08:16 +13:00
marcosvitali
20eca1bf7e Ive fixed definitely Pokemon XD in dual core mode. This game is doing something not allowed. It attach to CPU the same fifo attached to the GPU in multibuffer mode. I added a check to prevent overwrite the GPU FIFO with the CPU FIFO. If the game do that on breakpoint the solution can fail.
Fixed ReadWriteDistance calc when CPRead > CPWrite.
Added Token and Finish cause to GP Jit checking.
2012-03-18 22:54:58 -03:00
Andrew de los Reyes
d6d52920ec Fix segfault in LogWindow on Mac
Commit 9ddb67d4a9 seems to have
introduced a segfault on Mac. The issue is that it this change casts
wxConvCurrent (which is a wxMBConvLibc) to a wxCSConv. This is an
unsafe cast because wxCSConv has member variables, but wxMBConvLibc
does not.

In LogWindow.cpp, the constructor for m_SJISConv is dereferencing one
of those member variables, which is a dereference of uninitialized
memory!

This CL reverts to the older (non-crashing) constructor, but keeps the
behavior the same.
2012-03-18 15:11:34 -07:00
Andrew de los Reyes
ed3f9ce288 Switch Mac compiler to Clang.
Specifically:

- Look for clang and clang++ in the new (Xcode 4.3) location first,
  then the old (Xcode 4.2) location.

- Look for sysroot in the new (Xcode 4.3) location first, then the old
  (Xcode 4.2) location.
2012-03-18 15:11:31 -07:00
skidau
cfbcaa2cc6 Linux build fix 2012-03-18 23:37:38 +11:00
Matthew Parlane
8479d5bdf7 Some code clean up. I am terrible at coding styles... 2012-03-18 21:50:07 +13:00
Matthew Parlane
6fe495e1aa Fixed Pokepark 2! Maybe... :D Don't trust save states, although I think they are correct. File fd's were too large. Let me know if file related loading stops working in some games. fds are many to 1, not 1 to 1. ES has two instances available at a time. Sadly a clean up requires changing IWII_IPC_HLE_Device Constructor, as a deviceID doesn't make much sense per device. I won't do this until we have less branches :| 2012-03-18 21:00:23 +13:00
skidau
05692b1e7e Sped up to the Dolphin debugger by not checking for breakpoints when stepping.
Fixed the JIT cache, invalidating one instruction length at a time.
Fixed a bug where the JIT cache did not get invalidated when stepping.
Disabled fused instructions in the debugger.
2012-03-16 20:08:05 +11:00
skidau
8ed6ea3b07 Sped up the Dolphin debugger in JIT mode by splitting a block only while stepping or when it contains a breakpoint. The block is invalidated when a breakpoint is set or cleared.
Fixed a bug in the JitCache where the JIT icache was not being invalidated when a block containing the instruction was destroyed.
2012-03-15 21:48:19 +11:00
skidau
0ed8af2287 Forced reload of the native Gecko Code handler if the game overwrites it.
Fixes issue 5225.
2012-03-13 23:41:40 +11:00
skidau
dc79d68e72 Added the corresponding change from r352ab2ba4394 into JITIL.
Tidied some code.
2012-03-13 22:35:11 +11:00
Matthew Parlane
b37c468039 Fixes issue 5269
Sorry guys but I needed to disable stfs so that Pokepark 2 would not freeze(?). Feel free to put some effort in to finding out why, I do not understand Jit sorry.
2012-03-13 23:42:30 +13:00
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
skidau
bf76b802a7 Fixed the in-built Dolphin profiler. 2012-03-10 16:24:13 +11:00
Glenn Rice
1680c6849f Merge branch 'translation-update' 2012-03-09 17:47:28 -06:00
Glenn Rice
a7d142bed9 Rebase in preparation for merge. 2012-03-09 17:46:58 -06:00
Glenn Rice
1b1016ece7 Update the pot file to reflect recent changes in the code. 2012-03-09 17:46:38 -06:00
Glenn Rice
d73f4d8240 Update Korean translations. 2012-03-09 17:46:35 -06:00
Glenn Rice
5c66c5b138 Update Hungarian translation. 2012-03-09 17:46:33 -06:00
Glenn Rice
685d02c0a6 Clean up Turkish translation file. 2012-03-09 17:46:30 -06:00
Glenn Rice
7306257c0f Update from master branch.
Update Arabic, Hungarian, and Spanish translations.
2012-03-09 17:46:28 -06:00
Glenn Rice
6961c2e553 Update Hungarian and Turkish translations. 2012-03-09 17:46:26 -06:00
Glenn Rice
1880eb8e9f Update Czeck translation. 2012-03-09 17:46:24 -06:00
Pascal Jouy
3e8ca14e96 Update french translation. 2012-03-09 17:46:22 -06:00
Glenn Rice
510450999d Update Arabic and Japanese translations. 2012-03-09 17:46:20 -06:00
Glenn Rice
6fef0b9a8f Updated Spanish translation 2012-03-09 17:46:18 -06:00
Glenn Rice
5f21e0150b The actual update of the Greek and Czech translations. The last commit
was a partial reversion by accident.
2012-03-09 17:46:16 -06:00
Glenn Rice
828205df22 Update Greek and Czech translations 2012-03-09 17:46:14 -06:00
Glenn Rice
61d5624c2d Update translation files for recent changes in the code. 2012-03-09 17:46:09 -06: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
Pierre Bourdon
b69a1d225a Use -std=gnu++0x instead of -std=c++0x
Bluez uses the non standard "typeof" instead of "__typeof__" in bluetooth.h.
Both GCC and Clang reject that with std=c++0x but accept it with gnu++0x.
2012-03-08 10:01:40 +01:00
Pierre Bourdon
63176ba38d Revert "Updated English translation, fixes issue 5214."
This reverts commit cbab832907.

As glennricster said in the comments, the modification should not be done in
that way.
2012-03-08 10:00:40 +01: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