Dolphin SVN r6767

Revision 6767:

Use CPUDetect.h and bSSSE3 to fix «unknown machine instructions» on DX9 plugin.

Revision 6766

~93% speed improvement (over plain C++) in RGBA -> BGRA conversion for processors that support SSSE3 (Core or newer).
About 40% faster than the SSE2 implementation.

May not be required in future but good for reference.

Revision 6765

45% speed improvement in RGBA -> BGRA conversion over reference C code. This might turn out to be unnecessary once I refactor the CreateTexture2D/ReplaceTexture2D to call the texture decoder instead of vice-versa and have the SSE2 code convert directly to BGRA and write directly to the D3D allocated texture.
Need to investigate source texture alignment and where to introduce that, if it is possible.

Revision 6764

Add anvideo config option to automatically resize the render window to the size of the game’s output resolution. This avoids artifacts that appear when the render target is scaled to fit a window of a different size.


r6767 x86 – скачать, зеркало

r6767 x64 – скачать, зеркало

Dolphin SVN r6763

Revision 6763:

Added a few translatable strings.
Added German language translations. Thanks to JackyCola.
Added Italian language translations. Thanks to RebuMan.

Revision 6762

Missed one MSVC-ism. Should fix build for Linux. Last revision should still work for Windows. No functionality changes this time.

Revision 6761

Faster SSE2 optimized GX_TF_CMPR texture decoder which gets ~40% speed improvement on x64 and ~50% improvement on x86 as compared to reference C code.
The code now uses direct pointer access from C code to write the colors to the destination texture instead of trying to force them back up into an __m128i and a single write call. This is what produces the major speed-up.

Revision 6760


* Fixed a bug on Texture Converter when Copy EFB to RAM’s cache is disabled, so…

* …accordingly, I revert my latest commit because now it becomes useless.

Revision 6759

— add some more strings for translation, change others for easier translation (in case anyone knows a better way than _(«a») + wxString(wxT(«b»)), feel free to fix it).
— removed strings that shouldnt be translated.
— added gettextize script from glennrics to generate the .pot file; this excludes debugger-related strings which are usually not used by the end user anyways (again, less stuff to translate).


r6763 x86 – скачать, зеркало

r6763 x64 – скачать, зеркало

Dolphin SVN r6758

Revision 6758:

Add an English translation file (with no translations). For some reason OSX seems to need it. Shouldn’t affect other platforms.

Revision 6757

a little cleanup of dx9 depth conversion code that r6751 made unnecessary, and a question about D3DFMT_D24X8 checks, and (most importantly) spelled Stretch right in video config

Revision 6756


Revision 6755

Enabled SSE2 optimization of GX_TF_CMPR decoder only for x86 builds. It can’t compete with the x64 optimized reference C code.

Revision 6754

improve z copy a little further in 4 bits copy,
fix and error introduced by my last commit in dx11 plugin


r6758 x86 – скачать, зеркало

r6758 x64 – скачать, зеркало

Dolphin SVN r6753

Revision 6753:

Add some more translatable strings. Thanks to DavidVag.

Revision 6752

corrected a little error in my last commit

Revision 6751

corrected depth copy shader in dx9/dx11 to improve accuracy when doing efb to texture for depth formats

Revision 6750

Oops, forgot to remove that line.

Revision 6749

Install .mo files on osx as well.

Revision 6748

Disable the Languages target on windows 32 bit builds.


r6753 x86 – скачать, зеркало

r6753 x64 – скачать, зеркало

Dolphin SVN r6747

Revision 6747:

Add internationalization support. There aren’t really any translations yet other than a little French thanks to DavidVag. So now the translators need to go to work. See for directions. The binary .mo files are generated at build time on linux. They are provided in Data/Languages for windows. I don’t know where they need to go on OSX, but they should be able to be generated there at least. I added a target to generate them on windows, but does not build by default as it requires that msgfmt.exe from the gnu gettext tools be installed and in the path.

Revision 6746

Changed order of operations in Profiler.cpp to calculate non-zero values for ‘cost’. Integer division was too early. Credit to my brother, Joe, for figuring this one out.

Revision 6745

Fixed Linux build.
Fixed small undiscovered bug in WII_IPC_HLE_Device_FileIO.cpp when looking at 0-length strings.

Revision 6744

Fixed S3TC DXT1 decoder implementation. I see ~40% speed improvements running on x86 Intel hardware and 0% improvements running on x64 AMD hardware. Strange. More investigation to follow!

Revision 6743

After removing the input queueing in I was still seeing
the occasional HLE wiimote disconnection, although nowhere it was at
near the level before both the recent wiiuse integration and adding
the queue in the first place.

The callback-based bluetooth input method on OS X really requires
that packets be accepted immediately and the 1ms polling done by the
wiimote worker threads isn’t quite good enough.

So just play along with the native OS X model and send the packet up
our stack directly from the callback. With our current API, this is
kind of a layering violation, but it seems less messy than either
putting back internal queueing in or adding the platform
support for higher-frequency polling than what usleep(3) offers.

Perhaps we should just change our own API to a callback model. While
this makes no real difference right now, it would make it a fair bit
cleaner to accept new wiimotes at any time instead of having to click
Refresh, although with the recent realmote changes, that feature can
probably just be hacked in by looping around FindWiimotes().

For other platforms having problems with HLE disconnections caused by
dropped bluetooth packets, as a first stop I would suggest trying to
do more than just one wiimote->Read() per iteration in the thread.

This change also conveniently sidesteps another new bug
where the discovery and I/O code would clash during a refresh because
they use the same default CFRunLoop, so if we switch back to using a
run loop for I/O, must remember to create a separate one.


r6747 x86 – скачать, зеркало

r6747 x64 – скачать, зеркало

Dolphin SVN r6739

Revision 6739:

small fix for lle-int

Revision 6738

Look for the DSP ROM files in Sys/GC as before before trying User/GC
to allow both system-side (also Windows) and per-user installations.

The IPL ROM is another candidate for this, but I don’t have an
image to test with.

Perhaps a more general solution would be to just phase out the Sys
directory. As used for data which would have been available in ROM
or flash on the real hardware, it really contains two classes of
files that are both read-only during emulation:

— Settings and font files, which can be freely distributed
— ROM files which must be obtained from the user’s own GC or Wii

Since the two could be freely put together on Windows without any
problems and with the users of that platform being resistant to
change, it may be easiest to just treat Sys as another directory
to be copied from the application bundle into User/Sys at startup
on non-Windows.

Revision 6737

D3D9: Fall back to just creating a depth surface instead of a depth texture if the latter one isn’t supported by the hardware.

This is a workaround for issue 3256.

Revision 6736

Some minor tidying of the OS X audio and wiimote code.

Revision 6735

Retire the workaround for wxWidgets using the Objective-C reserved
keyword «id» in the public auibar.h header.

You now need at least r66546 of wxWidgets to build on OS X.

Revision 6734

Move the expected location of the DSP ROM files from Sys/GC to User/GC.

These files are acquired from the hardware ROM by the individual user,
who does not normally have write access to Sys on Linux and OS X.

If you currently have these files in Sys/GC, just move them to User/GC
(~/Library/Application\ Support/Dolphin/GC on OS X).


r6739 x86 – скачать, зеркало

r6739 x64 – скачать, зеркало

Dolphin SVN r6731

Revision 6731:

Taking a random guess at what could possibly fix issue 3256…

Revision 6730

— Assign width and height to the actual powers of two rather than to the exponents…
— Clean up FramebufferManager()
— Make use of more depth buffer formats to prevent some devices from failing to create a depth buffer

Should fix issue 3256.

Revision 6729

LLE JIT: Minimised exception checking. Instructions which need to check for exceptions are now marked in the analyser. Moved the checking for external interrupts to the point where the CPU writes to the control register.


r6731 x86 – скачать, зеркало

r6731 x64 – скачать, зеркало

Dolphin SVN r6728

Revision 6728:

LLE JIT: Reworked the block linking code. It now keeps track of what each block is waiting on, minimising the amount of recompiling. Both jumps and calls can now become linked. The code also checks the cycle count before jumping to the linked block.

Revision 6727

Warning fix for gcc ;)

Revision 6726

Fix for bit reduction regression in GX_TF_RGB565 textures from previous commit.

Revision 6725

D3D9: Make sure to use powers of two as render target dimensions if it’s needed by the device.
Some other cleanups.

Possibly fixes issue 3256.

Revision 6724

GX_TF_RGB565 texture decoder optimized with SSE2 producing a ~78% speed increase over reference C implementation.
Fixed crash in debugger when attempting to enable profiler before having run any game.


r6728 x86 – скачать, зеркало

r6728 x64 – скачать, зеркало

Dolphin SVN r6723

Revision 6723:

ISFS_Seek: Turns out POSIX allows seek past EOF, the Wii does not.
Should fix Issue 3761 (really!), please test this.

Revision 6722

Fix an issue on windows where found wiimotes were not being reported as found. This fixes issue 3832.

Revision 6721

Cast size_t to unsigned long for printing.

Revision 6720

Audio volume slider support for OS X.

Revision 6719

Core/Core/HW: Give small amounts of time to the dsp whenever the ppc
reads the high bits from the mailbox registers. It is probably waiting for
the dsp to read the data from the cpu-to-dsp mailbox or for the dsp to
write to the dsp-to-cpu mailbox.

This about removes DSP::Read16 from lle profiles where it previously used
up to 2% of all system time. Also speeds up games quiet a bit.

Revision 6718

Handle FileIO Read/Write more like real hardware.
Fixes Issue 3761.
Fixes Issue 1749.


r6723 x86 – скачать, зеркало

r6723 x64 – скачать, зеркало