* Some fixes to linear interpolation
* Adds interpolation to ADPCM samples
* Relaxed a volume limit in ADPCM_Vol
Fixed:
- Frac rolls over one iteration before samplePos advances. Can introduce noise similar to flipping samples (1234 => 1214). Introduced oldFrac to fix this. This isn't as noticeable as it probably should be because of below.
- When samplePos doesn't advance it interpolates between two copies of the same sample which actually does nothing. Changed it to always use the current and next sample.
- When frac is 0 you should get 100% of yn2 instead of ~99% added a +yn2 to balance it.
Other changes:
- Added linear interpolation for ADPCM. Sounds like a good idea.
- Set ADPCM_Vol to clamp to x8000 instead of x4e20. Some games will play some sounds at x8000 volume anyways since the volume is applied before this. Lower limit can result in quiet music (x4e20) but some loud ambient sounds (0x8000).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6041 8ced0084-cf51-0410-be5f-012b33b47a6e
Made it so that Source/Core/DolphinWX/Globals.h is only used for the wxWidgets build, and a little other file inclusion clean up.
Fix an issue where a user runs a game from the open menu or toolbar items with a clean user directory, and henceforth double clicking on the empty game list (where it says double click to browse for games), that game is run again.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6037 8ced0084-cf51-0410-be5f-012b33b47a6e
platforms as well. It would seem that ABI_PARAMx will have to be
used more consistently elsewhere to match up with a change to use
them here.
Not sure yet why I still need the final section of Jit64::stX.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6035 8ced0084-cf51-0410-be5f-012b33b47a6e
* 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
Fix modality for the config dialogs on windows.
Fix the compress/decompress dialog wxString issues for MacOSX (hopefully).
Fix the DSP-LLE debugger for linux.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6031 8ced0084-cf51-0410-be5f-012b33b47a6e
had SSE3. Keep -msse2 on other platforms. Not sure if there are actually
any Dolphin-capable machines out there without SSE3, but..
Use -search_paths_first to give our statically linked libraries precedence
over /usr/local/lib.
Some work-in-progress changes to facilitate a more easily redistributable
application bundle on OS X.
Group compiler/preprocessor/linker flags together to make the full set
more intuitively apparent.
The various libraries in Externals have rather inconsistent conventions
for include paths. Best to encapsulate that knowledge in foo/SConscript.
Re-use utils.GenerateRevFile for all three places in the build system
where we need the SVN revision number.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6030 8ced0084-cf51-0410-be5f-012b33b47a6e
The GCC model for extended instructions like these is that you compile
with -msse3 etc. These affect code generation for whole compilation units,
so the idea is that you have a separate .c file for each instruction set
class and then indirect to the desired one at runtime.
Without e.g. -msse4.1, the GCC built-ins used by <foointrin.h> are not
available. However, in our specific case of compiling with -msse2 and
wanting to use SSE3.1 code, enough built-ins are available that we only
need to provide a little hack for pshufb.
Upgrading this to also use SSE4.1 instructions doesn't appear feasible
without a lot of undesirable duplication of GCC built-in functions and
headers, so we'd probably have to move to the GCC model of separate
source files for that.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6014 8ced0084-cf51-0410-be5f-012b33b47a6e
This one needs a lot of testing, since I don't have any games that need it, except Rogue Leader (GSWP64) - and I didn't do more "testing" than watching the stormtroopers dance due to speed reasons (altho it seems twice as fast as JIT for me; it does spit out a lot more warnings too)
btw, ITS OVER 6000!!111
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6006 8ced0084-cf51-0410-be5f-012b33b47a6e
is required to correctly link with C++ libraries like wxw.
Tell OS X that the user is doing something when using the wiimote
so that the screensaver doesn't come on when playing a Wii game.
Replace unnecessary floating point with integer math.
Remove unnecessary <sys/stat.h>'s.
Correct a few type nits.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5995 8ced0084-cf51-0410-be5f-012b33b47a6e
* 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
* Code cleanup
* Reduce the cost of RFI instruction (heavily used on PowerPC)
* Implement missing cases in bclrx
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5991 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix an issue that prevented the code window settings from taking effect on application start. (Thanks shuffle2, skid_au, and sanchez).
Fix a potential segmentation fault with the DSP-LLE debugger window.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5988 8ced0084-cf51-0410-be5f-012b33b47a6e
This is EXPERIMENTAL, in theory don't break any game but if so Revert this commit immediately please.
Note: Beside Eternal Darkness needs DirectX 11 or DirectX 9 with Zelda Hack to works fine.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5986 8ced0084-cf51-0410-be5f-012b33b47a6e
Also refresh the log window at that time so artifacts are cleared.
A little more code cleanup of the debugger windows.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5983 8ced0084-cf51-0410-be5f-012b33b47a6e
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
Added a default perspective for the debugger.
Save all perspectives, and not just the active one.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5979 8ced0084-cf51-0410-be5f-012b33b47a6e
* 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
Don't rely on trailing /'s in directory names.
Destdir only works for global builds.
Only tar up global builds if they are in a destdir to
avoid SCons eating all available memory indexing /usr.
Print current status of shared_foo in 'scons -h'.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5966 8ced0084-cf51-0410-be5f-012b33b47a6e
The new default wiiuse wiimote read timeout of 30ms has been overridden previously by the default 10ms from the wiimoteplugin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5965 8ced0084-cf51-0410-be5f-012b33b47a6e
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
wxFileSelectorDefaultWildcardStr had been copy-pasted and
changed to use specific filetypes had retained the extranous
format arguments to wxString::Format.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5957 8ced0084-cf51-0410-be5f-012b33b47a6e
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