9397 Commits

Author SHA1 Message Date
dok.slade
99ffecd675 Merge JIT instructions when loading 32-bits immediate values :
PowerPC needs 2 instructions to load a 32-bits immediate value in a register (lis + addi; lis + ori). We can merge both instructions into a single SetImmediate().
This commit shares code with r5799, so to prevent another flame war on OSX vs Windows, I added #ifdef around the "bad" lines...


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5982 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-26 23:06:34 +00:00
Jordan Woyak
5be58c6772 Gecko codes: Added parenthesis where they were needed.(thanks to glennrics and soren) Fixed a copy paste error with write & fill 8bit codes. Also forgot to remove a return false;.(some more codes should work (fixed issue 2968)) New Wiimote Plugin: Added emulated swinging.(seems to work) Changed the emulated calibration data to some nice values. ControllerInterface: moved and constified some stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5980 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-26 05:30:50 +00:00
dok.slade
d340b9497e Commit r5970 part #5: Removed unneeded MOV in branch instructions
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5977 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 19:10:50 +00:00
dok.slade
673f18837b Commit r5970 part #4: Merge some loops in PPCAnalyst::Flatten()
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5976 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 19:01:32 +00:00
dok.slade
16129f6f6d Commit r5970 part #3.1: Forgot to remove code unused since r5974
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5975 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 18:52:02 +00:00
dok.slade
c7b4df19d7 Commit r5970 part #3: Inline the call to computeCR: it now costs a few more memory bytes per JITed instruction but it removes the CPU overhead of the CALL. This allowed to remove some unneeded MOV as well.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5974 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 18:44:34 +00:00
dok.slade
cba42fab1d Commit r5970 part #2: Jit64::GenerateCarry() don't need a temporary register anymore
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5973 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 18:14:48 +00:00
dok.slade
68c8f345d7 Commit r5970 part #1: Fix what seems to be a bug in PowerPC instruction RFI: the wrong bit was cleared in MSR
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5972 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 18:03:14 +00:00
dok.slade
fa2cfcd089 Revert r5970 before committing again part by part (except modifications about CR union)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5971 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 17:54:03 +00:00
dok.slade
cbc66f9467 More performance work on the PowerPC JIT compiler:
* Merge some loops in PPCAnalyst::Flatten()
* Put ppcState.cr and ppcState.cr_fast[] into a single C++ union. This allows quick access to the whole CR register without needing to merge the cr_fast array. The implemented solution assumes the host system is little-endian, but it seems to be already assumed in many places in the code...
* Inline the call to computeCR: it now costs a few more memory bytes per JITed instruction but it removes the CPU overhead of the CALL. This allowed to remove some unneeded MOV as well.
* Jit64::GenerateCarry() don't need a temporary register anymore
* Fix what seems to be a bug in PowerPC instruction RFI: the wrong bit was cleared in MSR

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5970 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 15:37:56 +00:00
nodchip
15b741706d JitIL: Fixed the code which were pointed out in r5968.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5969 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 09:56:39 +00:00
nodchip
1cf1711149 JitIL: Added operand folding rules to increase speed.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5968 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-25 03:28:52 +00:00
Soren Jorvang
53f5bc682d Make Cg conditional on those platforms for which it is available.
Of course, this doesn't do much good without another shader compiler..

WIP of OS X application bundle building.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5961 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-24 10:24:16 +00:00
Soren Jorvang
949b873dc8 Further *BSD portability.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5958 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-23 23:51:34 +00:00
dok.slade
f8ce075ab1 Commit patch submitted in issue 2951 (PowerPC JIT optimizations)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5954 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-23 19:30:00 +00:00
Jordan Woyak
04da34ceb7 Lil fix for Gecko code endifs. ((CT7 CST1) error messages)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5950 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-23 06:39:07 +00:00
Jordan Woyak
a3e3155678 Added a button to the "Gecko Codes" panel to download/parse codes from geckocodes.org. Codes that require modifiers (the XXXX business) will still not work properly, though they should load/save fine. A few more code types should work now. (All non-ASM type codes should at least attempt to run :p) Hacked a param into IniFile::GetLines to disable removal of text after # chars, so codes with # in the name/notes should load fine.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5949 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-23 05:22:12 +00:00
Soren Jorvang
09b5dfbd53 Prevent Python from stripping off the final newline of the main(){}
autoconfiguration tests. Some versions of gcc care enough about ANSI C
to complain about this.
 
Use the Linux install hierarchy conventions on other Unices as well.
 
XKeysymToString returns NULL on unknown keysyms, which is not a valid
std::string initializer.
 
There appears to be some disagreement regarding the second parameter
to iconv(). Some versions/installations have it as const, others don't.
Unfortunately, due to wonderful C++ brain damage, implicit conversion 
from const to non-const doesn't work here.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5945 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 07:55:35 +00:00
Shawn Hoffman
0d7e4703fb I *think* this is how XK envisioned the DTM structs...let us know if it is or isn't...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5938 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 04:16:51 +00:00
Soren Jorvang
83883cee45 Port to *BSD. It runs but isn't terribly useful without Cg.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5934 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 03:29:35 +00:00
Glenn Rice
cdce0ec322 Build fix on linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5933 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 02:46:15 +00:00
Glenn Rice
3859a7dce2 Lots more work on making the frame aui stuff functional.
Also added a DSPCORE_STOP state.  The DSP-LLE debugger window segmentation faults if it is openned when a game is not running.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5931 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 02:05:28 +00:00
Jordan Woyak
fb36de2338 WIP Gecko(ocarina) code support: There are a bunch code types that need coding/fixing/cleanup, but many codes should be functional. The game properties and "Cheats Manager"(formally Action Replay Manager) dialogs now have a "Gecko Codes" tab to view/enable/disable codes. Currently, you must click "Edit Config" and manually add your codes to the [Gecko] inifile section of your gameinis for them to be displayed.(same format as the AR codes) I'm going to add Add/Edit dialogs similar to the AR codes and support codes with modifiers. I added the new files to scons as best as I could without testing :p.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5930 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-22 01:48:48 +00:00
nodchip
9f3e2ac2cc JitIL: Added operand folding rules for speed improvement.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5927 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-21 02:23:55 +00:00
Soren Jorvang
244448014a Prevent double inclusion of CommonPaths.h as pointed out by Glenn.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5922 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-20 03:23:25 +00:00
Soren Jorvang
6813a75ab2 Some pathnames are used both by SCons and cpp which can be a bit tricky.
Should revisit and make the distinction more explicit.

Put the Data and Sys directories under Resources in the OS X app bundle.

Construct config.h (now lower-case to avoid confusion with other Config.h
instances in the tree) in the root. One tiny step towards a read-only
and cross-buildable source tree.

Some minor bits of non-Linux Unix portability.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5921 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-20 02:45:31 +00:00
nodchip
c9855f2c22 JitIL: Implemented linear scan algorithm for register allocation. This is for speed improvement.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5919 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-19 15:07:19 +00:00
Soren Jorvang
a2b1f829cb Get rid of a number of unnecessary env.Clones.
Use SCons' convenient # shorthand for the root of our tree.
 
Also various minor cleanup of SConscripts.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5915 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-19 03:42:37 +00:00
Soren Jorvang
4ecfa3b7a2 Specify union members of new ARAddr type when printing it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5914 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-19 03:32:50 +00:00
Glenn Rice
b175397cb7 Some work on cleaning up the FrameAui code. Primarily this fixes the debugger windows for the audio and video plugins. They are now all subclasses of a wxPanel, instead of a mix of wxFrames and wxDialogs. This makes them work correctly in linux, windows (they really didn't before), and most likely on MacOSX too!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5913 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-19 02:09:34 +00:00
Jordan Woyak
3457ead880 A bunch of cleanup and some fixes to ActionReplay: Fixes crashes with certain conditional codes.(such as the Wind Waker test rooms) When these conditions fail, they should skip all lines until a "00000000 40000000"(endif) line is reached.(the endif line was being handled as a regular code) There are still some codes which crash the emu, such as most of the Melee unlock codes. These Melee codes seem to have a bogus first line which tells AR to write .5 MB of zeros.(without this line they work) Codes from the net do not have this line. (The game inis seem to have some bad codes)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5912 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-19 02:08:34 +00:00
NeoBrainX
378d3aaa52 Make FIFO watermark tightness configurable instead of hardcoding it.
To change it, right click the affected game in the iso list, select Properties, and enter some constant for "Watermark tightness". Reasonable values range from 20 to 200.

FIFO seems unoverflowable on my computer no matter what I set this value to, so test whether tuning the value helps you ;P


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5907 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-18 15:47:28 +00:00
Soren Jorvang
a96b00a16e Bitfields of sub-int size are promoted to (signed) ints even if unsigned.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5904 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-18 10:36:20 +00:00
NeoBrainX
da4c3a5f29 Committing some cleanups by avindra:
- fix numerous warnings
- make some variables unsigned
- remove redundant code and header inclusions
- make code more compact in lots of cases

Committing some additional changes by myself:
- additional header cleanups
- cleanup DX11 initialization/shutdown process (hinted at by avindra)
- Remove the cgD3D9 stuff from Externals since it's no longer needed

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5903 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-18 10:11:34 +00:00
Glenn Rice
02ce753b76 This is basicall linux code cleanup. We don not need to pass the X display handle from the video plugin anymore. The wiimote plugins now open their own display handles, and the GUI uses the display handle of the main window frame. Only the window handle from the video plugin is needed. The pWindowHandle variable now passes this instead of the display handle.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5884 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-16 14:14:57 +00:00
Rodolfo Osvaldo Bogado
665d83ed45 some more minor optimizations introduced by aavindraa, i only corrected evaluation order using some ().
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5883 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-16 12:36:55 +00:00
luisr142004
c2ee89b170 include the MP compiler option, which will allow for faster compiling + some minorly stuff :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5882 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-16 09:22:53 +00:00
Jordan Woyak
deffc95794 New Wiimote Plugin: Moved Linux cursor position code into ControllerInterface/Xlib. (absolute cursor position can be mapped to something other than IR camera) (code fixed by Glennrics) Put the UDP Wiimote dialog's Update Buttons,Update IR,Update Nunchuk... checkboxes in an "Update" group box. Fixed some Linux config dialog problems. (thanks Glennrics again) Some other minor cleanup in ControllerInterface. (changed some std::string/stringstream to char[] where possible) Removed a warning in DX11 plugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5880 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-16 03:43:11 +00:00
nodchip
3997243143 [Core] Added a wait before a spin wait.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5869 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-11 03:16:52 +00:00
Jordan Woyak
a0aa506453 GCPad/Wiimote New: Added a set defaults button to the config dialog. (gave new wiimote plugin a few default buttons, not done) Moved MSWindows cursor position code to ControllerInterface/DInput (plan on moving Linux's cursor code to Xlib as well). IR Up,Down,L,R now must have Cursor X/Y/-+ mapped for regular mouse control on Windows. (hopefully this isn't too confusing, the reset to default button automatically sets this up). Renamed One,Two,Minus,Plus to 12-+ (you will have to reconfigure these buttons, sorry). Added text labels for the button and trigger preview bitmaps. -other minor stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5865 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-10 06:48:24 +00:00
Soren Jorvang
0284a7a1df Some more attempts at cleaning up the scons build and more clearly
identifying which options and parameters go with which platforms etc.

OS X, like Windows, now no longer uses Config.h. Configure() is still
used for the wx-config parameters, but that is a temporary measure.

Globals.cpp has never been used.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5860 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-09 01:26:53 +00:00
Glenn Rice
07973f726e Fix a segfault when the debugger is used and dolphin exits.
Put the filename back into the "Saving settings ..." notice log (soren don't remove this again.)
Added a "batch" mode command line option.  Now dolphin will not exit with the emulator if a file is run from the command line unless you also use the "batch" option.  For example in linux "dolphin-emu -b -e filename".


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5859 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-08 23:27:51 +00:00
Soren Jorvang
17e6c16bf1 When running a game from the command line, exit after emulation stops.
This "run once" behavior is more in line with expectations of a command
line invocation and matches what the nowx build does.

Personally, this makes the main build do everything the nowx build does
and more.

However, if you feel that the main build still doesn't have feature parity
with nowx, please say so now, so we can fix it and kill off nowx.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5855 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-08 17:25:20 +00:00
Glenn Rice
0ad71eda6b Revise the way that cdrom and dvd rom drives are identified in linux to remove reduntant drive listings. Also no longer checking mount points (in fstap and mtab). This can give redundant listings, and GC/Wii backup discs can not be mounted anyway. This prevents multiple listings from appearing in the GameListCtrl when "Show Drives" is selected.
Some general code cleanup, and removed a PanicAlert (made it a NOTICE_LOG instead) so that only one panic alert is shown when attempting to load from dvd/cdrom drives, and none are shown when "Show Drives" is selected from the menu.  

Also removed the hack introduced in revision 5564 that prevents the GameListCtrl from being properly updated when a game is loaded from the command line or via the autostart feature of the debugger.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5848 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-07 19:47:45 +00:00
Glenn Rice
0e2b4d8306 Implement proper thread naming on linux. This fixes a segmentation fault with thte wiimote new configuration dialog when a thread was named without first calling ThreadInit.
Also take care of some more eols.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5843 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-06 16:16:07 +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
Jordan Woyak
2e6a9f9805 New Wiimote/GCPad: Fix segfault prob in Linux.(thanks glennrics) Some minor changes to real wiimote: force continuous reporting off, since only the last data report is used currently.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5831 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-03 20:14:57 +00:00
Glenn Rice
e34a8baa82 Fix a segmentation fault when attempting to load an invalid plugin.
Removed an erroneous fprintf.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5828 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-03 16:47:49 +00:00