Pierre Bourdon
4ef021e975
Better global volume adjustment on a voice. Fixes one of the 2 issues with the HOME button menu sound.
2013-01-20 17:36:57 +01:00
Pierre Bourdon
7252becf24
Fix the voice LPF implementation
2013-01-20 17:20:30 +01:00
Pierre Bourdon
c662901504
Implement low-pass voice filtering, untested because I couldn't find any game using it
2013-01-20 16:15:42 +01:00
Pierre Bourdon
25419ed827
Implement Wiimote sound mixing in AXWii
2013-01-20 15:32:55 +01:00
Pierre Bourdon
35249a8576
Handle 3ms at a time in AXWii instead of 3x1ms
2013-01-20 14:42:37 +01:00
Pierre Bourdon
fb64cfd18a
AXWii: fix L/R channels being swapped when outputting audio samples
2013-01-20 07:36:48 +01:00
Pierre Bourdon
5c3bcc8f5f
Revert "Readd the old AXWii (rename the new version to NewAXWii) and set it as default"
...
Put back the new AX Wii as the default in this development branch.
2013-01-20 07:08:15 +01:00
Pierre Bourdon
905d38827e
Implement 8 bit loads backpatching
2013-01-19 16:52:13 +01:00
Pierre Bourdon
c553c42d63
Implement backpatch support for 16 bit loads
2013-01-19 16:33:52 +01:00
Pierre Bourdon
eb5e7d44bd
Enable fastmem (aka. backpatch) support on Linux amd64 and OSX x64. Not tested on OSX, 8% performance increase on Linux amd64
2013-01-13 07:00:56 +01:00
Pierre Bourdon
2c1c538fda
Disable the OpenAL and Pulseaudio audio backends
...
They are currently broken and cause sound issues which are not present in other
backends:
* OpenAL plays music 2x too fast in Zelda UCode games with HLE
* Pulse backend uses a lot of CPU power and slows down emulation significantly
Both backends are currently being re-implemented in separate branches of
Dolphin, so this should be a temporary removal.
2013-01-10 18:43:15 +01:00
Pierre Bourdon
8cfceb1186
Disable swapping cmp with instructions potentially raising interrupts
...
Workaround for issue 5864 disabling parts of an optimization in the JIT. This
is not the best solution to fix this issue, but at least it does not crash.
2013-01-08 00:02:38 +01:00
Pierre Bourdon
bcf1f54c65
Optimized the Dolphin SEO process a bit
2012-12-31 02:31:55 +01:00
Pierre Bourdon
b3ed3bdb91
Define NvOptimusEnablement to tell the Nvidia driver we need high performance
2012-12-25 13:51:13 +01:00
Pierre Bourdon
ba348c29d7
Merge branch 'new-ax-hle'
...
Only AX GC is merged so far, the new Wii AX development will be done in a
separate branch when I'll start working on it.
There are still a few AX GC bugs remaining, but overall a lot less games have
sound issues than before.
Thanks to everyone who helped test the development builds of this branch and
reported results on the forum thread.
Conflicts:
Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp
2012-12-25 13:33:53 +01:00
Pierre Bourdon
4a74da3e87
Readd the old AXWii (rename the new version to NewAXWii) and set it as default
2012-12-25 13:30:55 +01:00
Pierre Bourdon
2c58385fe2
Revert "Uninitialized usage.. or so it thought."
...
This reverts commit 7839676c87 .
Parlane, I hate you.
2012-12-24 21:23:28 +01:00
Pierre Bourdon
65f88567b5
Added Tools/buildbot-try.sh. See http://code.google.com/p/dolphin-emu/wiki/BuildbotTry for documentation about that feature.
2012-12-22 10:51:41 +01:00
Pierre Bourdon
b0cbac174b
Implemented dpop samples support
2012-12-19 08:31:17 +01:00
Pierre Bourdon
071b27f0bb
Fix volume mixing in DownloadAndMixWithVolume (same issue with >1.0 volumes)
2012-12-19 05:56:57 +01:00
Pierre Bourdon
2c10ca4e46
Rewrite the linear sample rate conversion algorithm to make it less hacky and to support arbitrarly big ratios
2012-12-18 17:38:41 +01:00
Pierre Bourdon
1cecbaedce
Fix MixAdd with volume. The previous volume formula completely failed with volumes >= 1.0 (0x8000). Fixes Tomb Raider Legends (GC) music.
2012-12-18 07:01:22 +01:00
Pierre Bourdon
faaaa97c9e
Added a utility function to dump an AX PB for debugging
2012-12-18 07:00:24 +01:00
Pierre Bourdon
1abbfd4b15
Remove some useless 'inline' attributes from the AX HLE voice mixing functions
2012-12-18 07:00:04 +01:00
Pierre Bourdon
70b3980f46
Fix AX HLE command 12 arguments: takes 4 u16, not 1
2012-12-18 06:58:47 +01:00
Pierre Bourdon
ed59f8ff1d
Remove UCode_AX_ADPCM.h, now useless (incorporated into UCode_AX_Voice.h)
2012-12-18 05:55:40 +01:00
Pierre Bourdon
3ca77cf077
Fix samples clamping and interlacing in the OUTPUT command. Shouldn't have assumed previous AX HLE was doing something right.
2012-12-01 00:54:25 +01:00
Pierre Bourdon
04b1ee0016
Implemented command 01 (download data and mix to MAIN/AUXA/AUXB with volume control). Fixes missing weapon sounds in Metroid Prime 2.
2012-11-28 15:22:02 +01:00
Pierre Bourdon
4cf2856284
Improve savestates support in AX and AXWii
2012-11-28 03:31:46 +01:00
Pierre Bourdon
f11a40f858
Command 13 should upload only AUXA LRS, not MAIN LRS + AUXA LRS. Fixes more GC EA games sound/music (including FIFA 06, Madden 08).
2012-11-28 01:48:27 +01:00
Pierre Bourdon
1a129abe0d
AUX return data should be mixed to main buffers, not AUX buffers. Fixes a regression introduced by r954c55e35afb, now EA games sound works again.
2012-11-27 21:48:59 +01:00
Pierre Bourdon
9270b62830
Rewrite MixAUXSamples to make it more clean
2012-11-27 20:36:34 +01:00
Pierre Bourdon
2120f536d5
Implement command 07 in GC AX (download data to main LR and reset main surround)
2012-11-27 20:36:14 +01:00
Pierre Bourdon
9b1a66245e
Fix an AUX mixing issue introduced when implementing AXWii. Now FIFA 06 sounds great with AX HLE.
2012-11-27 00:03:40 +01:00
Pierre Bourdon
706939e632
Implement command 10, used by FIFA 06 and linked to AUXB mixing. Sound still broken in that game.
2012-11-27 00:03:02 +01:00
Pierre Bourdon
fb1ecd90b0
Implemented command 13 in GC AX, used in some EA games (FIFA 06 now has broken sound, which is still better than no sound)
2012-11-26 23:34:18 +01:00
Pierre Bourdon
9d85052a66
Implement Wiimote audio output in AXWii. Not very useful yet as no sound is currently being mixed to the wiimote channels.
2012-11-20 11:34:49 +01:00
Pierre Bourdon
affdf08fd6
Real fix for the crashes on Windows with AXWii
2012-11-20 09:49:27 +01:00
Pierre Bourdon
e858835c7e
Fixing the hack fix (I can't multiply 32x32)
2012-11-20 04:26:07 +01:00
Pierre Bourdon
0d3c3f6339
Fix a crash in AXWii with SRC ratio > 4 (which I thought was impossible, but AXWii changed the SRC algorithm)
2012-11-20 04:18:48 +01:00
Pierre Bourdon
321e3a8421
Add global volume handling for AUX mixing and L/R output in AXWii
2012-11-20 03:32:29 +01:00
Pierre Bourdon
ae85159a94
Add surround sound support to GC AX HLE
2012-11-20 03:22:24 +01:00
Pierre Bourdon
954c55e35a
New AXWii now working properly in some games I tested
2012-11-20 03:13:55 +01:00
Pierre Bourdon
e750bed2a9
Rename NewAX -> AX and remove the old code. Time to work on AXWii.
2012-11-19 22:03:56 +01:00
Pierre Bourdon
4f88fee560
Added a small TODO list of things missing in NewAX
2012-11-19 20:25:57 +01:00
Pierre Bourdon
3541d33c25
Support both versions of the mixer_control bitfield. Fixes Skies of Arcadia music being muted (and sounds being mixed only on the left audio channel), this time without a hack.
2012-11-19 20:10:37 +01:00
Pierre Bourdon
c8b2ba1bc6
Implement the MORE command (0D) used to read more commands from the CPU
2012-11-16 07:51:19 +01:00
Pierre Bourdon
5a2d8661d7
Add comments explaining how the voice processing works
2012-11-15 16:57:33 +01:00
Pierre Bourdon
aa90f799b7
Re-implementation of the AX voice mixing algorithm. Now with 100% less WTF.
2012-11-15 16:30:05 +01:00
Pierre Bourdon
531cc6aaf3
Fixed AUXB_NOWRITE command number and implemented UPLOAD_LRS command (06)
2012-11-14 18:08:29 +01:00
Pierre Bourdon
f84f15c5bf
Oops, forgot a memset which removed all AUX effects
2012-11-14 18:03:55 +01:00
Pierre Bourdon
a630357c9e
Add AUX mixing support as well as a send&return effect implementation
2012-11-14 17:55:16 +01:00
Pierre Bourdon
61c1fab2c6
Fix Windows support again: std::thread can't take a member pointer with StdThread.h from Common
2012-11-14 12:13:19 +01:00
Pierre Bourdon
db46ccd175
More accurate mixing buffers initialization using parameters from command 00
2012-11-14 12:08:41 +01:00
Pierre Bourdon
24d430eba0
Add NewAX to the VC++ project files
2012-11-14 11:32:57 +01:00
Pierre Bourdon
6a1241c03e
Make a hack optional to fix 48KHz output mode with NewAX
2012-11-14 11:25:27 +01:00
Pierre Bourdon
0b275c20af
Added output support to NewAX. Now working fine with Tales of Symphonia.
2012-11-14 11:20:54 +01:00
Pierre Bourdon
18f3630af5
PBs processing is now done, just need the output to be able to test
2012-11-14 06:53:36 +01:00
Pierre Bourdon
7535c6d903
Parse the AX command list in the AX thread
2012-11-14 06:15:55 +01:00
Pierre Bourdon
9e813502ac
Create a new thread for AX and make it handle the command lists
2012-11-14 05:33:04 +01:00
Pierre Bourdon
3195916744
Basic infrastructure for the new AX HLE, currently not doing anything besides answering mails
2012-11-14 05:08:04 +01:00
Pierre Bourdon
e4d18e3a8b
Bound the iteration on the PB list when processing updates.
...
Fixes freezes introduced in 3.0-807 with DSPHLE on some AX games.
Apparently logic doesn't apply inside the HW/DSPHLE/UCodes directory.
2012-11-13 16:50:42 +01:00
Pierre Bourdon
764cd455b3
Revert "fix Snow Leopard compatibility"
...
This change broke compilation on some OSX 10.7 configurations.
This reverts commit b2e2e49fe4 .
2012-11-13 10:22:56 +01:00
Pierre Bourdon
16060290c2
Fix missing notes in musics with DSPHLE.
...
Tales of Symphonia and Skies of Arcadia Legends now have working musics with
DSPHLE. Some other games with the same symptoms (missing instruments) should
probably be fixed by that change too.
2012-11-13 09:37:44 +01:00
Pierre Bourdon
d13163380d
Bye mamario, you won't be missed
2012-11-02 02:48:55 +01:00
Pierre Bourdon
3990002250
Optimize JitCache::InvalidateICache by maintaining a "valid blocks" bitset
...
Most of the InvalidateICache calls are for a 32 bytes block: this is the
number of bytes invalidated by PowerPC dcb*/icb* instructions. Profiling
shows that a lot of CPU time is spent checking if there are any JIT blocks
covered by these 32 bytes (using std::map::lower_bound).
This patch adds a bitset containing the state of every 32 bytes block in
RAM (JIT cached/not JIT cached). Using that, a 32 bytes InvalidateICache
can check in the bitset if any JIT block might be invalidated. A bitset
check is a lot faster than an std::map::lower_bound operation, improving
performance of JitCache::InvalidateICache by more than 100%.
Some practical numbers:
* Xenoblade Chronicles (PAL)
56.04FPS -> 59.28FPS (+5.78%)
* The Last Story (PAL)
30.9FPS -> 32.83FPS (+6.25%)
* Super Mario Galaxy (PAL)
59.76FPS -> 62.46FPS (+4.52%)
This function still takes more time than it should - more optimization in
this area might be possible (specializing for 32 bytes blocks to avoid
useless memcpy, for example).
2012-10-06 01:49:09 +02:00
Pierre Bourdon
8cefcaa94c
Implement a simple benchmarking mode which logs FPS to a file
...
Very useful to compare performance between two builds, check the impact of
a configuration option, etc. FPS log is stored in User/Logs/fps.txt and is
reset each time you launch a game. Only enabled if you check the "Log FPS
to file" option in your graphics settings.
Could be improved a bit: currently logs only every 1s (so you can't really
see small variations), maybe output more infos to the fps.txt like
average/stddev (but Excel/Libreoffice/Google Docs can compute that easily
too).
2012-10-04 05:41:02 +02:00
Pierre Bourdon
208d25c3f5
Revert merges of aram-dma-fixes and memcard-delay
...
These merges, while in theory improving emulation accuracy, cause issues
in other parts of the emulator based on invalid assumptions. memcard-delay
fixed some of these issues in the EXI memcard code, but several other
problems still exist and I don't have the time to debug that right now.
2012-09-07 01:11:38 +02:00
Pierre Bourdon
90af798d3d
Partially revert be200074e9 for OS X systems
...
/dev/shm is not a tmpfs mountpoint on that operating system. Use /tmp but keep
the unlinking to avoid useless disk IO.
2012-08-25 03:30:37 +02:00
Pierre Bourdon
60aed4e5b0
Merge branch 'memcard-delay'
2012-08-24 12:45:45 +02:00
Pierre Bourdon
0b00c95b79
Simulate a small delay on GC Memcard operations
...
This was not needed for most games before because the external exception was
itself delayed. aram-dma-fixes changed that and made the external exception
happen a lot quicker, breaking games that relied on the memcard operations
delay.
Fixes issue 5583.
2012-08-20 13:49:12 +02:00
Pierre Bourdon
54fc4029dd
Use do { ... } while (0) for the *_LOG macros
...
Without this patch, such code would not compile:
if (cond)
WARN_LOG(FOO, "msg");
else
WARN_LOG(FOO, "msg2");
2012-08-20 13:12:49 +02:00
Pierre Bourdon
a2b71f1ed7
Clean up WX style issues mentionned in previous commits comments
2012-08-06 14:21:49 +02:00
Pierre Bourdon
86a1899b9e
Fix a wrong data type in the WBFS Blob reader causing issues on x86 systems
...
Fixes issue 5489.
2012-08-05 19:35:49 +02:00
Pierre Bourdon
d7d2e5b9bf
Link explicitly DolphinWX with GTK2 libraries
...
Fixes issue 5555.
2012-08-05 20:51:42 +02:00
Pierre Bourdon
fe1501db9a
Check if WX recognized a key before testing if it's a hotkey
...
Fixes issue 5537.
2012-08-05 17:28:57 +02:00
Pierre Bourdon
b3c9f437db
Return early from DoOpen if the user cancelled the file picker box
...
Fixes issue 5551
2012-08-05 16:53:36 +02:00
Pierre Bourdon
80bf3c2c0b
Add VTune profiling support for Dolphin's JIT
2012-08-05 16:39:15 +02:00
Pierre Bourdon
228172d656
Fix a typo in the indexed color vertex loader
...
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:16 +02:00
Pierre Bourdon
8597660855
Replace all of the opcode data read functions by their SSSE3 equivalent, not only the first one.
...
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:08 +02:00
Pierre Bourdon
d44a3471be
Fix DSP LLE thread affinity being set to the wrong core
...
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:24:00 +02:00
Pierre Bourdon
e42c6214d9
Fix a typo in GenQuantizedLoads causing issues with SSSE3 in x86 builds
...
Patch from konpie: http://forums.dolphin-emulator.com/showthread.php?tid=24658
2012-08-05 04:23:46 +02:00
Pierre Bourdon
d33e48319f
Fix accesses to the 16 lower pixels of the EFB with OpenGL
...
The GL EFB cache did not clamp correctly the coordinates when computing
the rectangle it needed to cache, leading to negative values being used
as indexes and often crashes.
Fixes issue 5510.
2012-07-23 22:35:51 +02:00
Pierre Bourdon
174c1b00f8
Use the right modifier for hotkeys on Mac
...
Fixes issue 5324.
2012-07-22 19:22:50 +02:00
Pierre Bourdon
dd48b246b2
Reduce logging verbosity in the Linux BBA code
2012-07-05 01:30:37 +02:00
Pierre Bourdon
5db70f452b
Remove the now unneeded recv sleep hack and fixes game exit by implementing a timeout on read(2) calls in the read thread.
2012-07-05 01:29:42 +02:00
Pierre Bourdon
9a3dd778cb
Preliminary BBA support for Linux. Assumes that a TAP interface named 'Dolphin' exists and is preconfigured. Contains some dirty hacks.
2012-07-04 04:34:40 +02:00
Pierre Bourdon
b27d8ff0d6
Add a missing Invalidate() call in ~TextureCache(). Fixes a regression from 8bed27a3d1 causing textures to load improperly when a game is run two times in the same Dolphin instance
2012-06-27 20:20:28 +02:00
Pierre Bourdon
fa2ee1f4a0
Only call CheckExceptions in dcbz in interpreter mode, use FL_ENDBLOCK for Jit64. Now RS3 demo disc does ingame with Jit and block_size = 1
2012-06-20 18:33:23 +02:00
Pierre Bourdon
30de244050
Check for DSI exceptions after a dcbz instruction. Fixes Rogue Squadron 3 in interpreter mode.
2012-06-20 12:15:22 +02:00
Pierre Bourdon
e550623b11
Added a button to dump the FakeVMEM from the memory debugger if the game uses it
2012-06-19 13:51:29 +02:00
Pierre Bourdon
988bd53b5f
Support ANSI color codes in the console logger for Linux/Mac
2012-06-19 12:11:15 +02:00
Pierre Bourdon
34606f34a9
Allow disassembly of FakeVMEM with the dolphin debugger
2012-06-19 11:57:57 +02:00
Pierre Bourdon
540010055e
Merge branch 'aram-dma-fixes'
...
This branch fixes the ARAM DMA state tracking and makes external exceptions
timing more accurate.
Fixes WWE: Day of Reckoning 1 and 2 (issue 617)
Fixes Knockout Kings 2003 (issue 4904)
Fixes Spider-Man (GC)
2012-06-19 06:45:05 +02:00
Pierre Bourdon
76a13604ef
Optimize mtmsr by going to an exception exit only if EE are enabled and some
...
exceptions are pending.
2012-06-19 06:35:30 +02:00
Pierre Bourdon
bfc797ede1
Removed an obsolete comment
2012-06-16 14:39:17 +02:00
Pierre Bourdon
e1ddbdd214
Use WriteExceptionExit and implement the change for JitIL
2012-06-16 14:38:48 +02:00
Pierre Bourdon
da4141aa9f
Simulate ARAM DMAState correctly and check for external exceptions after
...
MTMSR is executed.
This commits fixes issue 617. WWE Day of Reckoning 1 and 2 are now playable
with Dolphin.
The changes are not implemented for JitIL yet.
2012-06-16 14:38:44 +02:00
Pierre Bourdon
bfde41895f
Update the viewport when the scissor offset is changed
...
Fixes a bug with Another Code: R that was noticed when gx-optimization was
merged.
2012-05-27 08:03:26 +02:00
Pierre Bourdon
1efabea9b4
Fix compilation errors with g++4.7
2012-05-26 08:09:50 +02:00