The block_size seems to be not reliable, even after trying to more closely match
the interpreter by looking at the analysis for (addr+opcode->size-1) for detecting
the end of the block.
Since we need to "calculate" this number shortly before returning to
RunForCycles, it seemed logical to use the (up to now) unused return value
of the blocks.
Improves SMG2 here.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6266 8ced0084-cf51-0410-be5f-012b33b47a6e
IsSameMemArea check in the rest of the file.
Looks like this is simply a copy-paste error, that i dutifully "fixed" for 64 bits.
No idea if this fixes anything, but it brings JIT more in line with the interpreter.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6263 8ced0084-cf51-0410-be5f-012b33b47a6e
- Add a sanity check in CRenderFrame::MSWWindowProc. Possibly reduces the risk of a crash when starting a game and immediately closing the emulation window when using the DX9 plugin.
- DX11: Add the resource usage as a parameter to CreateQuadVertexBuffer, possibly to be used in the future.
- reduce the size of the EFB access buffers from 4x4 to 1x1 since they needn't be bigger anymore
- some fixes to the recent hires commit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6256 8ced0084-cf51-0410-be5f-012b33b47a6e
pointer cannot be reached by 32bit displacement.
RAX is caller save and non-parameter in all 64 bit ABIs, so it should be safe
to clobber it on function call.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6248 8ced0084-cf51-0410-be5f-012b33b47a6e
This is the safe variant that does not assume other
functions use R11 for &g_dsp.r, which they actually do.
So there is a lot unnecessary reloading of the register
getting emitted.
There are a few small changes exploiting pointers known
at emission time and making use of MComplex math.
Also renames m_LLEplaying to m_AIplaying in Core/AudioCommon.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6245 8ced0084-cf51-0410-be5f-012b33b47a6e
Renamed EFB Scale to Internal Resolution.
Removed Auto Scale option (it is now always on).
Added on-the-fly changing of the Internal Resolution in the OpenGL and Direct3D9 plug-ins.
Further consolidated the code in the video plug-ins.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6240 8ced0084-cf51-0410-be5f-012b33b47a6e
This should eliminate the crackling with alsa and pulseaudio backends and replace it
with much nicer pauses. This is only interesting for audio backends that do not
respect Mixer::GetNumSamples() and should not impact users able to run the DSPLLE at
full speed.
The cost of this is an added LLE audio latency of about 0.06 s in the continuous
playback case. If that is too much, lower the low watermark.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6239 8ced0084-cf51-0410-be5f-012b33b47a6e
If you see this alert, dolphin will probably crash in a few moments.
Found in the course of fiddling with DSPLLEs JIT, which puts its data
structures and static code somewhere above 0x7fff00000000 on my machine, making
it unreachable via 32bit displacements from the created code at ~ 0x40000000.
Fixed all the offending places in DSPLLEs JIT to emit register indirect accesses,
only to find out that the generated code is slower than the interpreter and does
work just as good(or bad). Oh well, back to DSPHLE it is then.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6229 8ced0084-cf51-0410-be5f-012b33b47a6e
final rendering of (at least) Sonic Unleashed.
This should be (nearly) invisible in Z16 depth copies and in games, but there is
some chance that it collides with other such border cases. There probably is some
room to decrease the adjustment but 9999999/10000000 is not enough. A static offset
may be an option, too. I don't know if the game can/does set something like that.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6225 8ced0084-cf51-0410-be5f-012b33b47a6e
for all the plugins implemented per pixel lighting, this will make games that uses lighting a lot nice. (just look at mario sunshine and compare :))
for dx9: implemented temporal anaglyph stereo: just grab your red-cyan glasses and enjoy.
stereo calibration: use stereo separation ( distance of the point from you are looking) and Focal Angle: the angle necessary to focus in one particular object.
this settings are different in every games as they use different depth ranges.
please for any regression and bug introduced by this commit.
if you ask why i did not implement stereo in dx11 and opengl the reason is one: they don't work right when i have more time will try to find a way to make them work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6224 8ced0084-cf51-0410-be5f-012b33b47a6e
Main Issues:
DX11 is functional with a ~2MB/s mem leak.
OpenGL/DirectX9 have a black display while game runs. (DirectX 9 flashes good display on emulation stop)
Too many virtual function calls. (once everything is working, I will work on removing them)
Won't build on non-Windows in its current state. (mainly EmuWindow will need changes for Linux/OS X)
Probably other stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6219 8ced0084-cf51-0410-be5f-012b33b47a6e
* Fixed the "Change disc..." command. The filename of the disc was being lost between functions.
* Split the ChangeDisc function into two functions: EjectDisc and InsertDisc
* Moved the "Change disc..." command to the File menu.
* Removed some log messages that caused the debug build to crash when loaded with release build plug-ins.
Fixes issue 3036.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6206 8ced0084-cf51-0410-be5f-012b33b47a6e
include referenced array data in the hash to avoid problems in some games.
this version is a slower than the last version but is more stable, still much work to do but so little time to do it :)
Added Dlist Caching Option to the plugin configuration so anyone can compare the performance change.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6205 8ced0084-cf51-0410-be5f-012b33b47a6e
After launching a channel, the wiimote has to be disconnected and reconnected for it to work. The same also has to be done when returning back to the menu.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6202 8ced0084-cf51-0410-be5f-012b33b47a6e
* Implemented HID4.SBE flag
* Implemented but disabled MSR[IR] and MSR[DR]
* In-lined ISI exception calls
* Fixed and verified exception handling according to docs
* Code clean-up in the memory functions
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6199 8ced0084-cf51-0410-be5f-012b33b47a6e
after this revision, wii save manager (< 3.0) should show any saves on the emulated nand
fixes an old issue with GetTitleID
fixes issue 1716.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6190 8ced0084-cf51-0410-be5f-012b33b47a6e
correct some parts of uid.sys as disc title ids are included
title in uid + tmd on nand is how the sysmenu knows which save files to look for.
IE games that are displayed in the disc channel at least once and have a save file will be
viewable in the sysmenu save manager
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6189 8ced0084-cf51-0410-be5f-012b33b47a6e
Fixed the interpreter to execute instructions in the right number of cycles. It used to execute all instructions in one cycle.
Added a trace function to the interpreter making it easier to determine differences between the interpreter and the recompilers.
Removed the "Enable self modifying code check" as it was not useful.
Fixes issue 2407.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6183 8ced0084-cf51-0410-be5f-012b33b47a6e
Marginally speed up old wiimote plugin by doing less memcpys
A lot of changes went into the bt dongle emulation, so please test for regressions :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6177 8ced0084-cf51-0410-be5f-012b33b47a6e
returning to installed wii menu from a disc based game is working
however wiimote does not work
launching title from the wii menu has a similar issue
only tested photo channel 1.1, channel loads but wiimote does not work
as before launching channels requires sysmenu < 3.0
and you can change between sys menus via extracted wads by installing any version
IE if 4.2 is installed, right click on 2.0 wad in the gamelist and install to wiimenu
and right click on 4.2 wad and install to go back to menu 4.2
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6175 8ced0084-cf51-0410-be5f-012b33b47a6e
Not a good thing to say, but this isn't properly tested, since I don't know of any game that generates a DSI exception. I'll try to write some homebrew to test this, but I'm pretty confident it's ok. Anyway, please take a look at it and tell me if you find some mistake :-)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6172 8ced0084-cf51-0410-be5f-012b33b47a6e
Since plugins can't be changed when emulation is started, it's a waste of time to check if it has changed.
There may be cases where this check is needed. If so, the check should be done in another function (because GetVideo() is called very often while emulating).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6168 8ced0084-cf51-0410-be5f-012b33b47a6e
remove stubbed devices. they now fall back to the base device class, which reports the device as not available.
fixes issue 3137.
start ios fd counting at 0 instead of 0x13370000. I know it's sad, but it fixes homebrew booting and such.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6164 8ced0084-cf51-0410-be5f-012b33b47a6e
the problem was that the streaming audio interrupts were still being triggered, causing the game to try and jump to an invalid interrupt handler. The code for dsp lle looks like a hack :( (but it works)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6163 8ced0084-cf51-0410-be5f-012b33b47a6e
Also, input movies are now linked to savestates instead of just selecting a file to save to and running a game and are exported at a later time. This allows you to easily continue a recording across sessions and makes rerecording possible.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6154 8ced0084-cf51-0410-be5f-012b33b47a6e
still experimental, not totally optimized but must bring a nice speed up
please test for regressions an error. an please Linux people fix scons :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6149 8ced0084-cf51-0410-be5f-012b33b47a6e
use plain vertex arrays instead of VBOs to render in Opengl plugin as the nature of the data make VBOs slower. This must bring, depending on the implementation, a good speedup in opengl.
in my system now opengl and d3d9 have a difference of 1 to 5 fps depending of the game.
some cleanup and a little work pointing to future improvements in the way of rendering.
please test and check for any errors.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6139 8ced0084-cf51-0410-be5f-012b33b47a6e
Modify GetLocalTimeSinceJan1970 to account for DST.
GetGCTime() returns only GC epoch time(used by most Wii titles.)
IPL-DEV subtracts Wii bias before copying to m_RTC(mostly used by homebrew.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6133 8ced0084-cf51-0410-be5f-012b33b47a6e
Done some refactoring around the PowerPC stuff. Main changes:
* Declared CPUCoreBase class
* Wrapped the interpreter into a class and made both it and JitBase inherit from CPUCoreBase
* Avoided reinitializing interpreter's and Jit's tables
A great deal of this work was done by nodchip, so kudos to him :-)
To finish, please forgive me for my not-so-great english.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6132 8ced0084-cf51-0410-be5f-012b33b47a6e
some useless IR pointer math... It still doesn't make rotation work
a sign fix when tilting along y axis (twisting the wiimote)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6121 8ced0084-cf51-0410-be5f-012b33b47a6e
* Improved constants folding in load/store instructions
* Merged load instructions
This is almost the same commit as r6076/r6077 but x64 build has been fixed.
Thanks a lot to skidau and BHaaL!!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6120 8ced0084-cf51-0410-be5f-012b33b47a6e
fixed one of the last graphic problems in smg, now the glow in the plants and planets must be correct.
the error was caused by a error in lighting calculations. so it must affect other games.
please test and let me know the results.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6103 8ced0084-cf51-0410-be5f-012b33b47a6e
- First change is for Mixer.cpp, I've just re-added the functionality lost in r4724, so, if you disable audio throttle, games like donkey kong jungle beat, will work properly.
- Second change points to a doubt comment on UCode_Zelda_Voice.cpp, where it did not know here PB.NeedsReset came from. Well, the answer is it came from line 03b2 of the dumped Ucode, so when PB.IsBlanck equals to zero, PB.NeedsReset is zero too.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6100 8ced0084-cf51-0410-be5f-012b33b47a6e
if the PC makes no sense, it's probably because some HLE has done the access.
perhaps we should wrap accesses from IOS HLE, so that we can trace it? dunno if it presents that much of a problem anymore.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6098 8ced0084-cf51-0410-be5f-012b33b47a6e
* Flushed the JIT cache on "ICFI" (Flush Instruction Cache)
* Made all instructions one cycle in duration
Fixes issue 233
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6088 8ced0084-cf51-0410-be5f-012b33b47a6e
Use the debug option for conf.CheckWXConfig on OS X as on Unix.
Take care of a few compiler warnings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6084 8ced0084-cf51-0410-be5f-012b33b47a6e
Really that happens because the fifo.CPReadWriteDistance is negative.
Example: CPReadWriteDistance: -864 CPEnd: 10092672 fifo.CPBase: 9568416
In SMG this is because PI_FIFO_RESET is writing and after fifo.CPReadWriteDistance will be setted to 0.
To Prevent that, I've Implemented AbortFrame function in the CommmandProcessor. It should fix overflown because of that.
Note: There is other issue (Issue 2846) where the fifo.CPReadWriteDistance is negative too but the effect is different.
I'm working to solve this.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6083 8ced0084-cf51-0410-be5f-012b33b47a6e
I am not sure i am understanding what the pipeline really does, and more so what
the GC/WII expects here. If my comments are incorrect, please let me know.
This was tested with MP2:E, ZWW on r6075.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6078 8ced0084-cf51-0410-be5f-012b33b47a6e
* Improved constants folding in load instructions
* Merged load instructions
* Fixed the register allocator so that it can restore the registers state after jumping to the dispatcher (in case of a conditional jump)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6076 8ced0084-cf51-0410-be5f-012b33b47a6e
* Added working Step Over function.
* Added hard-coded hotkeys for step into (F11), step over (F10) and toggle breakpoint (F9). The hotkeys are only active when the debugger is enabled. They function as before when the debugger is disabled.
* Added Debug menu item.
* Removed obsolete NotifyBreakpoint function from JIT and JITIL.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6069 8ced0084-cf51-0410-be5f-012b33b47a6e
Clean up of the input selected for the opengl x window in linux.
Fix a potential segfault when taking a screenshot (happens consistently when using "Save Targets" from the video debugger window).
Fix a memory corruption error that results from the wrong image size being passed when dumping textures.
Make the screenshot hotkey configurable.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6067 8ced0084-cf51-0410-be5f-012b33b47a6e
Remove a member variable which I introduced in r5907 although it never actually got used. Restores binary compatibility (at least in that regard) to pre-r5907 video plugins, but breaks any binaries after that :P
Update FIFO watermark tightness recommendations. 1000 is quite a high value I guess, but some people seem to need it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6060 8ced0084-cf51-0410-be5f-012b33b47a6e
The code changes disable the usual pipeline flush for certain BP Writes that occur while the minimap is being drawn in Zelda: twilight princess. This significantly increases speed while in hyrule field. The way this is accomplished is described more in depth on page 42 of Xtreme's thread. Big thanks to Xtreme for doing a great job hosting that thread, and Kiesel-stein for initial work on the hack
Also, I used the resource editor in Visual studio to generate the GUI code for the DX11 plugin, and some code appeared to be removed, although the behavior of the GUI did not seem to change. Hopefully someone more experienced with resource files (forms?) can double check that no code was damaged
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6057 8ced0084-cf51-0410-be5f-012b33b47a6e
(those originating from a thread other than the gpu thread)
glxMakeCurrent is supposed to error out when the context is
still current in another thread. NVIDIA handles that, but mesa3d errors.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6054 8ced0084-cf51-0410-be5f-012b33b47a6e
Now it only writes back dirty registers when flushed
* Fixed KillImmediate
* Renamed LoadToX64 and StoreFromX64 to BindToRegister and StoreFromRegister respectively (as suggested by ector)
* Code cleanup in calls to the reg allocator
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6053 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
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
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
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
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
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
- 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
Because we only ever call Pos_ReadDirect (and through that, DataRead<T>)
from JIT generated code, the compiler may not get the heads-up to properly
prepare for run-time instantiation of those template functions.
Explicitly instantiating Pos_ReadDirect gets around that issue.
Also force DataRead* inline as gcc didn't always do that itself when the
DataRead functions in turn were called from (other) template functions.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5902 8ced0084-cf51-0410-be5f-012b33b47a6e
from JIT generated code, the compiler may not get the heads-up to properly
prepare for run-time instantiation of those template functions.
Explicitly instantiating Pos_ReadDirect gets around that issue.
Also force DataRead* inline as gcc didn't always do that itself when the
DataRead functions in turn were called from (other) template functions.
I am far from a C++ language lawyer, so I cannot speak learnedly about the
correctness of this solution, but it works.
Dolphin.app built on OS X 10.6 now actually works on 10.5 as well.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5901 8ced0084-cf51-0410-be5f-012b33b47a6e
Move MAP_32BIT to MemoryUtil.h.
MAP_VARIABLE is simply the absence of MAP_FIXED.
Replace MAP_ANONYMOUS with the more traditional MAP_ANON - Linux is compatible.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5900 8ced0084-cf51-0410-be5f-012b33b47a6e
Move MAP_32BIT to MemoryUtil.h.
MAP_VARIABLE is simply the absence of MAP_FIXED.
Replace MAP_ANONYMOUS with the more traditional MAP_ANON - Linux is compatible.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5899 8ced0084-cf51-0410-be5f-012b33b47a6e
- Eliminate the useless check for cpu modifications option from efb to ram as it must be enabled always
- use constant names in dx11 for buffer length calculation instead to simplify code reading
- implemented scaled efb copy in opengl, still bugy in some games, the option is not in the gui but will add it when it works perfect
- Change the depth calculation behavior:
if the game use z textures is exactly the same as before.
if the game do not use z texture calculate z values in the vertex shader. the advantage id this approach is that early z culling is applied,
improving fill rate. this mus speed up things, even with ssaa and msaa enabled.
please test for regression and enjoy.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5896 8ced0084-cf51-0410-be5f-012b33b47a6e
For a typical OS X app, one only needs to specify the SDK version and the
target OS version range.
Because we use OpenCL which is new in 10.6, however, we must be somewhat
more verbose in order to make use of the forward compatibility facilities.
Unfortunately, the critical bit that is required to have binaries built
on 10.6 work on 10.5, namely disabling the new compact __LINKEDIT format,
causes stack alignment crashes at emulation time on 10.6, so for now
Leopard users still have to build Dolphin themselves.
Hopefully, this stack alignment problem will turn out to be coincident
with lingering alignment issues.
Include the OS X version of the Cg framework in Externals as with the
Windows one. The header files appear to be the same in the Windows and the
OS X builds of the February 2.2 Cg toolkit, although they are differently
munged by what appears to be some automatic process, so no new duplicates.
Any upgrades to the Cg libraries will of course need to be done in sync.
I do hope that Sonicadvance1's GLSL work will enable us to get rid of Cg.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5893 8ced0084-cf51-0410-be5f-012b33b47a6e
Use SDL for input devices only on Windows and Linux.
(Still globally enabled for the legacy Wiimote plugin.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5886 8ced0084-cf51-0410-be5f-012b33b47a6e
can go to the log window like with other subsystems.
Remove a Wiiuse dependency on libm from when it was a shared library.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5885 8ced0084-cf51-0410-be5f-012b33b47a6e
implemented new efb to ram in opengl
modified TextureConversionShader preparing the implementation of new efb to ram in dx11
please test for regressions
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5874 8ced0084-cf51-0410-be5f-012b33b47a6e
Move bits of HAVE_OPENCL/HAVE_WX for OS X from SConstruct to header files.
Use /usr/lib/libz on OS X now that we no longer have -L/opt/local/lib in
the library path. It is still possible that we could pick up a libz in
/usr/local/lib that would make the application non-redistributable, but
the danger is much less than previously.
Also bits of minor portability cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5868 8ced0084-cf51-0410-be5f-012b33b47a6e
are properly declared at thread entry/exit. I am leaving the ones in
Wiiuse while there's still a small hope that it may be used outside of
Dolphin, though.
Move the fixed MAP_32BIT definition for OS X to Common.h.
UDPNunchuk.cpp was deleted, so update the scons build.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5864 8ced0084-cf51-0410-be5f-012b33b47a6e
fix frame dumping and screenshots in d3d9 and opengl
some improvements to the new efb to ram
please test to see if the issues introduced by the new efb to ram are solved by this commit
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5862 8ced0084-cf51-0410-be5f-012b33b47a6e
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
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
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
using it as a constant in several places. Saves a few bytes and the time
it takes to recompile a bunch of files whenever svnversion twitches.
Using the SVN version string as an integer is not portable as the Unix
svnversion always includes e.g. the "M" suffix for a modified tree.
Windows people, please check my change to Plugin_VideoDX9/Src/main.cpp
as I don't really understand how _T() and the %hs format string work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5852 8ced0084-cf51-0410-be5f-012b33b47a6e
normally (on a fresh install) be triggered by the user clicking on
the GUI.
This notably includes refreshing the game list. The progress dialog
used in the course of updating the game list relies on wxWidgets
being able to yield to its event handler which isn't started until
after OnInit.
In fact, we might want to consider just moving all the initialization
currently triggered by OnInit into AfterInit so that we can rely on
the event handler running there. This would mean that we don't have to
worry about whether those code paths are triggered by a user click or
run at init time. This will require some more testing, though.
For now just move automatic booting along as this requires the game
list initialization to be done.
We also could instead choose to special-case cases like updating the
game list and simply not use a progress dialog there if the event
handler isn't running, but this approach is clearly cleaner.
See thread at http://code.google.com/p/dolphin-emu/source/detail?r=5848 .
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5849 8ced0084-cf51-0410-be5f-012b33b47a6e
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
Also fixed a segmentation fault caused by the UDP Wiimote stuff when a thread was not properly ended.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5847 8ced0084-cf51-0410-be5f-012b33b47a6e
replace efb to ram implementation by a hybrid approach.
explanation:
when copying from efb to texture, instead of make a copy to a texture or to the ram, copy the data to both, in hi quality to the texture and in native quality to the ram.
then instead of re-decoding the data from ram (very slow) use the data in the texture.
to improve this even more, test if the cpu has modified the data in the ram copy, if so, update the texture in memory and mark it as dynamic to avoid redundant work in future frames.
having all this implemented this is what is archived:
sms: full quality with scaled efb copies and fully functional goop cleaning :)
ztp: efb to texture speed with full map support.
nsmbw: this is a hard to emulate game, as it make a lot of shading and texture modification in cpu. it only have 35 fps in my system with new efb to ram but is 10 fps faster than normal efb to ram.
this game also show me another unimplemented feature, copy efb to multiple textures at the same time (is used to animate coins and other things in the world).
this is a remaining todo in efb to texture.
a lot of games should improve, so please test and let me know any regresion caused by this commit.
if everyone likes this the next step is, implement efb to multilpe textures and merge efb to ram and efb to texture.
then port to the other plugins.
enjoy.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5846 8ced0084-cf51-0410-be5f-012b33b47a6e
* 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
Treat external data (configuration file and device names) as 8-bit data.
Character set mapping is not ideal, but at least such names can be used.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5824 8ced0084-cf51-0410-be5f-012b33b47a6e
return to the old values in constants in pixelshader, the old values give mi 3 or 4 fps more,(maybe some kind of compiler optimization) in some games and with the current algorithm i notice no difference with this values, please report any problem.
optimizes SSAA to make it a little faster and, the quality should be the same but with a little speedup.
change the way the frame is processed depending is xfb is enabled or not to make this a little faster.
please test and report any problem
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5820 8ced0084-cf51-0410-be5f-012b33b47a6e
Add some useful checking to J_CC/SetJumpTarget.
Refactor increment/decrement and reuse code with increase/decrease.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5816 8ced0084-cf51-0410-be5f-012b33b47a6e
1 - Optimize pixelshadergen to avoid redundant register overflow math, with this if a game don't need this will be not applied.
this must bring some fill rate back and improve speed a little in fill rate limited systems.
2- some corrections to vertexshadergen to avoid uninitialized texture coordinates, dono if is the correct way to fix it but t least it will make house of the dead overkill playable in dx11.
the bad thing: still missing geometri in dx9, in dx11 it works exactly as on opengl.
3 - some optimization made to improve fps a little wih the latests changes made to fifo.
* back to the original code in beginfield as now it will work right.
* check for efb access more often as a lot of time is lost waiting for efb access
4 - apply a little fix for missing textures in nvidia opengl tanks to Wagnard28 for finding that nvidia does not like invalid shader id :)
please test for any regression
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5812 8ced0084-cf51-0410-be5f-012b33b47a6e
If compilation fails, rebuild the whole solution as Visual Studio struggles with the not so complex project dependencies.
ATI users still need to install the Stream SDK as it's the only way to have an OpenCL driver.
NVidia users just have to install a recent driver (version 197 is tested and working).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5808 8ced0084-cf51-0410-be5f-012b33b47a6e
frameworks on OS X.
Try to be a little clearer about which configuration options apply
to which platform(s). Should pave the way slightly for win32 scons.
We have accidentally been using LUA_USE_LINUX on OS X all along.
Turns out that LUA_USE_MACOSX is for an ancient version of OS X and
LUA_USE_LINUX is a reasonable set of defaults for modern Unices, so
just keep using that.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5804 8ced0084-cf51-0410-be5f-012b33b47a6e
with OpenCL will also run on 10.5 without OpenCL.
Build with OpenCL by default now, but keep the opencl build option around
until Linux also links OpenCL weakly, at which point it can go away.
Start to merge in the actions required to make the OS X application bundle
redistributable into the main build and let bundle=true be concerned only
with the optional step of creating a dmg.
Some people are building binary snapshots for OS X without applying the
install_name_tool fixups and besides, osx_make_dmg.sh doesn't fully handle
the internal dependencies between the wx libraries, so we need to be rid
of any external dependencies by the time "scons bundle=false ." finishes.
Ideally we should just use static builds of the wx libraries, but the flat
namespace used by Objective-C for anything other than normally linked
dylibs (sadly not dlopen'ed dylibs) makes that difficult because both the
main binary and the plugins have wx linked in without any symbol ordering.
TBD: Either do automatic install_name_tool fixups for both the main binary
and the wx dylibs or find a workaround for the flat namespace problem.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5797 8ced0084-cf51-0410-be5f-012b33b47a6e
for portability.
(It is a bit unfortunate that some of the plugins have a Config.h of
their own, which can confuse this matter.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5795 8ced0084-cf51-0410-be5f-012b33b47a6e
few different variations that can be true depending on circumstances.
This would likely cover the _WIN32 case as well, but since I don't
pretend to fully understand just what is going on with wxWidgets
here, I can't really call this any less of a hack..
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5794 8ced0084-cf51-0410-be5f-012b33b47a6e
meant as a ideally persistent device instance number.
In a dynamic environment such as when dealing with USB/bluetooth HID's,
I am not sure how much sense such an id can make and it would probably
be better to identify devices by an opaque blob (and a printable string).
In any case, the OS X HID manager does not offer the illusion of a
persistent integer instance identifier.
A string in the form of the device's own name is not sufficient as on
e.g. my Macbook Pro, there are three HID devices all bearing the name
"Apple Internal Keyboard / Trackpad".
For now, hijack the ControllerInterface id to mean the the HID usage
page number. This at least separates keyboards and pointing devices,
allowing the keyboard to be selected in the configuration dialog.
Also some minor cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5793 8ced0084-cf51-0410-be5f-012b33b47a6e
leaking memory. This is necessary because the wxgl code called from
those threads relies on deferred release.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5792 8ced0084-cf51-0410-be5f-012b33b47a6e
Dual Core sync fix.
When the FIFO is processing data we must not advance the cpu cycles in CoreTiming because in this way the VI will be desynchronized. So, We are waiting until the FIFO finish and while we process only the events required by the FIFO.
This should fix Issue 2072 .
This affect to all games in dual core mode.
Please, You can test all games with VPS limiter auto, 60, 50 depending of the game and compare with prev revision.
For example now NSMB in the video Intro has 60 fps (prev 30 fps) :D or SMG does't need anymore FPS Limitter Hack to get 55-60 fps
Beside the slowdowns now are more softly and the fps more stables because the VI sync is almost perfect.
The Core Timing and Fifo modifications are delicated. Please report if this hang any game. Don't forget check with prev revision.
Enjoy it! Thanks to Rodolfo for teach me all about dolphin.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5777 8ced0084-cf51-0410-be5f-012b33b47a6e
From now on if you create a GUI option specific to a particular build, do not gray it out. Instead do as I have done here and make it not present on those builds. It may add a few precompiler conditionals that developers have to look at, but that is considerably better than a completely useless option that the end user has to look at.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5774 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix the decoder codepath when OpenCL is enabled and the DX11 plugin is used.
Added the DX11 plugin to the Dolphin project dependencies.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5764 8ced0084-cf51-0410-be5f-012b33b47a6e
minor code changes and adding comments.
And issue fix 2792 with credits to Karloathian for finding and fixing it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5750 8ced0084-cf51-0410-be5f-012b33b47a6e
LZO/SFML/SOIL and subject to the same shared_foo exception options.
This makes building a self-contained distribution package much easier.
TBD: Cg and wxWidgets 2.9.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5712 8ced0084-cf51-0410-be5f-012b33b47a6e
fixed screen clearing and simplify drawClearQuad a little
put some nice code from dx11 that i like in dx9.
modify plugin spec preparing for implementing efb poke (is not used often but is a missing functionality so..)
please test.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5710 8ced0084-cf51-0410-be5f-012b33b47a6e
By now I'm pretty sure some games are written in multi-thread, and they depend on Watermark to suspend/resume their threads.
So without Watermark, they will never work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5709 8ced0084-cf51-0410-be5f-012b33b47a6e
the properties window so that a large ISO directory doesn't cause
the window to take up the full height of the display.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5700 8ced0084-cf51-0410-be5f-012b33b47a6e
Use 10.5 SDK header files in an attempt to keep us honest and
10.5 compatible. I'd do the same with system libraries, but
the linker gives strange errors when I try that. We also link
against third party libraries from Macports that haven't had
any magic 10.5 compat dust sprinkled over them, so maybe it
isn't very important anyway.
Move the OS X variable section in SConstruct upwards a bit to
have the settings apply to more of the config tests. SCons'
ParseConfig causes problems for the -arch tuples, though, so
the SDL check still isn't quite as comprehensive as it should
be.
Put the XCode project out of its misery.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5693 8ced0084-cf51-0410-be5f-012b33b47a6e
modify shader generator to produce native sm 4.0 code.
eliminate compatibility mode in dx11 so now all shader must work much better.
please test.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5691 8ced0084-cf51-0410-be5f-012b33b47a6e
I have no idea how all this stuff works, but this fixes at least some (if not all) games which worked before r5681.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5689 8ced0084-cf51-0410-be5f-012b33b47a6e
Improved dual core mode for "Metroid Prime 2", "Star Fox Adventures", etc.
I should have committed this long time ago, but I don't have every game to test compatibility... Any way, better late than never.
PS: If any regression observed, feel free to revert this rev.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5681 8ced0084-cf51-0410-be5f-012b33b47a6e
Might or might not work for you, yet.
Anyway, read the soon to be created forum thread on this plugin before asking any questions.
Huge thanks to rodolfoosvaldobogado for helping me out in various areas.
Also, thanks to everyone on IRC who supported me during development ;)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5680 8ced0084-cf51-0410-be5f-012b33b47a6e
In the future if we merge wiimote too, this will bring the advantage that the two will be able to cooperate, to no longer fight over control of input devices which can sometimes cause problems.
Thanks shuffle2 for the patience.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5670 8ced0084-cf51-0410-be5f-012b33b47a6e
I hope I didn't break the mac+linux builds - if i did, fixing it should be a simple matter of adjusting the sconscripts.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5661 8ced0084-cf51-0410-be5f-012b33b47a6e
- be more strict with the input signature of generated pixel shaders
- replace the D3D parameter with an API_TYPE one, so that we can further distinguish between DX9 and DX11
- for what it's worth dx11 (using vs_4_0) doesn't support D3DCOLORtoUBYTE4; added a workaround for this
- add a "dx9-" prefix to the shader cache files to avoid conflicts with dx11 shaders
Apart from that we're calling CommandProcessor::Shutdown() in main.cpp,Shutdown() now.
Delete all files in User/ShaderCache if you want to save a few KB disk space :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5659 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix: fix for lighting equations , that must improve lighting in a lot of games ( test smg :) )
experimental speedup: implemented alpha pass using stencil buffer instead of a duplicate shader. i recommend to test this well as i dono if will work the same way in all the systems. i my system it gives a nice 2-5 fps improvement. if it brings problems in any system or game will revert asap.
enjoy
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5653 8ced0084-cf51-0410-be5f-012b33b47a6e
Ideally we should be more character set aware, but at the moment we
use anonymous 7/8-bit strings in too many places.
Fix use of AddGrowable{Col,Row}. Any (non-zero) rows/columns must
have been created first by adding an item to it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5648 8ced0084-cf51-0410-be5f-012b33b47a6e
the original author, in the About dialog. Ok'ed with him.
WX doesn't reflow text terribly well, so format it manually.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5646 8ced0084-cf51-0410-be5f-012b33b47a6e
Thanks soren for the macosx fixes, this fixes the windows build and eliminates some warning from the same.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5643 8ced0084-cf51-0410-be5f-012b33b47a6e
Patch from user gamepromcompany on the MacOSX_Build wiki page.
Add support for the Mac command key as a hotkey modifier in
WXKeyToString but present it as Control. WXKeyToString is used for
both hotkeys and menu accelerators, the latter only supporting
Shift/Alt/Control with wxWidgets.
wxSpinCtrl on wx 2.9 has a very small default size, so give the
window size ones a reasonable size.
Use wxFULLSCREEN_ALL when switching to fullscreen, which gets rid
of window decorations like the title bar. Note that to actually
be rid of it with wx 2.9 on OS X, you'll need this patch:
http://trac.wxwidgets.org/ticket/11701
Also remove a couple of files I had accidentally duplicated.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5642 8ced0084-cf51-0410-be5f-012b33b47a6e
efb scale :
auto fractional: the original scaling way, will grant a 1:1 pixel mapping between efb and screen giving the best image quality even in non standard resolutions
at the cost of glitches in some games.
auto integral: automatic but only int values for the scale, no glitches but only the correct pixel scaling when using some resolutions.
the rest are the fixed scales.
enjoy.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5639 8ced0084-cf51-0410-be5f-012b33b47a6e
enable newline normalization
get revision number via `hg svn info` for svnrev.h
ignore incremental/generated binary files (windows/VS at least)
leave a comment if some files need native eol set in svnprops
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5637 8ced0084-cf51-0410-be5f-012b33b47a6e
We really should integrate the nowx functionality into the main build,
removing nowx and HAVE_WX checks and turning USE_WX into a variable
that defaults to GUI use but can be overridden at the command line.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5630 8ced0084-cf51-0410-be5f-012b33b47a6e
hotkey configuration working with wx 2.9, but it turned out to be
too tempting to use it to hack up OS X keyboard support using wx
key events in the "old" input plugins.
It was with some reluctance that I used PAD_Input (and copied it
for Wiimote as well) as that is clearly a deprecated interface,
but this way the hack is contained within the old plugins for when
the switchover to ControllerInterface happens.
The idea is to provide stable keyboard support on OS X for both
GCPad and Wiimote while we debug HID keyboard and real 'mote code.
It works pretty well, although the wx approach does impose a few
limitations like no arrow keys and left/right side modifier keys
are considered equivalent.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5622 8ced0084-cf51-0410-be5f-012b33b47a6e
just the basename like libPlugin_foo.dylib. Dolphin then loads the
plugins relative to the compiled-in plugins directory.
This means that you won't have to reselect the plugins when running
different builds (in different directories) and is most obviously
beneficial on OS X where application bundles are not (should not) be
expected to stay in the place where they are first installed.
This is tested on OS X and Linux with local/global build options, but
not Windows. I don't anticipate any problems on Windows, but that OS
does have slightly different semantics with regard to path component
separators and file suffixes, so it's something to watch out for.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5621 8ced0084-cf51-0410-be5f-012b33b47a6e
in general cleanup and bugfix disable pierre patch for the moment as it causes problem in some games and hopefully fix the remaining missing textures for nvidia users in opengl.
make the code in pixelshadergen looks nice and readable.
D3D: this is a ultra experimental commit please check for regressions or error.
make the efb Scale / super sampling level customizable to improve the output quality and let the user configure quality according to his hardware.
is everyone likes this change will translate it to opengl
please test
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5612 8ced0084-cf51-0410-be5f-012b33b47a6e
Have lint mean -Werror at least until the issue with
-Warray-bounds and -Wunused-result can be resolved.
Avoid producing empty object files:
CoreRecording.cpp is not configured through the build system,
so just give it a dummy symbol when it's not compiled in.
ChunkFile.cpp and DSPBreakpoints.cpp are no longer used.
ExtendedTrace.cpp is Windows-only.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5592 8ced0084-cf51-0410-be5f-012b33b47a6e
Not only does it change tons of files to switch to a new and non-working (it doesn't parse my ini files, at least) ini parser, it also reshuffles a lot of code and removes a plugin. The latter part is fine, but doing these two major switches in one revision, one of which is broken, is completely unacceptable. I said to merge tiny changes, not massive reworkings.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5589 8ced0084-cf51-0410-be5f-012b33b47a6e
CoreRecording.cpp is not configured through the build system,
so just give it a dummy symbol when it's not compiled in.
ChunkFile.cpp and DSPBreakpoints.cpp are no longer used.
ExtendedTrace.cpp is Windows-only.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5587 8ced0084-cf51-0410-be5f-012b33b47a6e
variables, writeable strings and dangerously shadowed variables.
index(), gamma(), exp() and y0() are POSIX functions and using those
names can cause namespace confusion.
A number of C files were missing the final newline required by ANSI C
and some versions of GCC are pedantic enough to complain about this.
These changes simply the scons build, allowing us to get rid of
filterWarnings which is simply more trouble than it's worth.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5574 8ced0084-cf51-0410-be5f-012b33b47a6e
Using Unix tools to operate on a tree containing filename with spaces in them
is really annoying, so rename the handful of instances where there were spaces.
Host.cpp has never been used.
Games tend to lookup the following directories that we don't yet have anything
to put in, so prepopulate them in Data/User/Wii:
title/00010001
title/00010002
title/00010003
title/00010004
title/00010005
title/00010006
title/00010007
meta
shared2/title
Set eol-style native on a number of text files which didn't already have it.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5572 8ced0084-cf51-0410-be5f-012b33b47a6e
game list, rely on the main event handler already running, which isn't
the case until after OnInit(). This is a problem when an ISO directory
is already set at startup.
To deal with such actions that can only properly be done after the wx
environment is fully functional, schedule AfterInit() where the initial
game list scan is done.
The underlying icon object for wxIcon on OS X didn't work with our
(non-square?) 96x32 game list graphics, but we weren't using any wxIcon
properties such as transparency anyhow, so just skip the wxBitmap to
wxIcon back to wxBitmap conversions.
Use wxID_ABOUT and wxID_PREFERENCES so that those menu items are
automagically teleported to their canonincal locations on each platform.
USE_XPM_BITMAPS has been implicit on all platforms for some time now.
AddGrowableCol() causes problems in a couple of inessential places for
some unknown reason, even though the same pattern works fine elsewhere.
These changes make us play a lot nicer with wxWidgets 2.9.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5564 8ced0084-cf51-0410-be5f-012b33b47a6e
by not linking in other Unix audio modules.
Use kAudioUnitSubType_DefaultOutput instead of kAudioUnitSubType_HALOutput
so that a runtime switch to another audio device is automatically handled.
Use ERROR_LOG for audio errors.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5562 8ced0084-cf51-0410-be5f-012b33b47a6e
becomes blocked. This was most readily apparent when first starting
programs from a high-latency filesystem.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5558 8ced0084-cf51-0410-be5f-012b33b47a6e
of going through an intermediate thread and buffer. This seems to be
how Core Audio is meant to be used, although I still haven't read the
manual.
Indeed, sound on OS X works perfectly now.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5555 8ced0084-cf51-0410-be5f-012b33b47a6e
initialization failure, so help it along a little by also considering
the CPU as an OpenCL device.
Use CL_DEVICE_TYPE_DEFAULT rather than CL_DEVICE_TYPE_ALL as that will
give preference to the spiffy GPU if one is present. Implementations
of OpenCL are likely to put a GPU as the first device in the list, but
there is no guarantee of this and this code currently only picks the
first device in the list.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5547 8ced0084-cf51-0410-be5f-012b33b47a6e
quantum, as the callback wants us to provide exactly the amount of
samples needed.
This is incomplete because core audio may ask for less than the full
buffer size (for me, typically 1484 or 1488 bytes of a 2048 byte
buffer). As a quick hack until I read the rather impenetrable core
audio documentation, assume that each callback request will want
about the same number of samples as the preceeding one.
This makes sound bearable.
Also various cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5543 8ced0084-cf51-0410-be5f-012b33b47a6e
* Restore Audio Throttle to function properly, broken by Ayuanx many hundreds of revisions back.
* Simplify DSPLLE JIT dispatcher in preparation for an asm rewrite
* Remove hack that made DSPLLE JIT seem faster than it was by running fewer cycles, but resulting in bad sound. This shows off how mysteriously slow it is - I don't understand why it's not faster. Use the DSPLLE interpreter for now if you want to use DSPLLE.
* Made "DSPLLE on Thread" work properly with correct-ish timing - although the speed benefit is really small now.
If it seems like this change slows anything non-LLE down, try turning off Audio Throttle and use the frame limiter in options instead.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5541 8ced0084-cf51-0410-be5f-012b33b47a6e
and Wii/sys directories if they do not already exist. This conflicts with
DolphinApp::OnInit (run after constructors) which populates the User tree
only if there isn't already something there.
Instead, set up the two directories in the Data tree.
With this change, sys/uid.sys still won't be created until the _second_ run
after a fresh install, so these file initializations should be moved out of
constructors so that they will be run after OnInit().
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5526 8ced0084-cf51-0410-be5f-012b33b47a6e
use appropriate extensions extracting compressed wii discs
check for tmd+tik for each title and list titles correctly for sysmenu versions <=0xE0
this will allow viewing of installed channels but they will not launch until ES_Launch is emulated
so far I have not been able to determine why later sysmenu versions do not display channels correctly
switching between system menu versions is as simple as rightclicking a system menu wad in the gamelist and installing to wiimenu than restarting
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5524 8ced0084-cf51-0410-be5f-012b33b47a6e
* optimize may last commit to make it faster
* reorder the code to make it more readable
please test and enjoy
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5520 8ced0084-cf51-0410-be5f-012b33b47a6e
of the file save bug.
(_dbg_*() should really get the same treatment as *_LOG() to remove this
whole class of #ifdef hell.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5519 8ced0084-cf51-0410-be5f-012b33b47a6e
This should give the exact same shader code except for the cases of
SELA == SELB and SELC == 1, the latter only for the color combinder.
In these two cases the results of the shader should not change in any way.
It would have been possible to optimize the SELC == HALF case too, if
the actual factor had been 0.5f instead of 0.4980392f.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5472 8ced0084-cf51-0410-be5f-012b33b47a6e
strcasecmp is provided by Source/Core/Common/Src/CommonFuncs.h
and vswprintf is overloaded in C++ to take the same parameters as
vsnwprintf, according to MSDN.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5470 8ced0084-cf51-0410-be5f-012b33b47a6e
almost fixed real xfb in d3d, i say almost because there are some minor scalling problems. hope will fix them soon.
implemented a more intelligent index generator to emulate more accurately the behavior of the gc.
please give me feedback on this changes.
enjoy :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5465 8ced0084-cf51-0410-be5f-012b33b47a6e
The real hardware probably always sends the result of its computations
to the alpha test/fog units, in parallel to its registers, but those
only take the result of the last texenv stage.
This makes grass show up in ZTP, where the last texenv stage oddly writes to
reg #3 instead of #0.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5462 8ced0084-cf51-0410-be5f-012b33b47a6e
This removes some bad behaviour, like the audio thread busy waiting inside ALSA code,
missing begins of voice samples(due to DSP_HLE code not getting called often enough).
Turns out my understanding of ALSA API was lacking.
Tested with pulse plugin and directly on my intel-hda/realtek hardware.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5461 8ced0084-cf51-0410-be5f-012b33b47a6e
implemented fixed efb scale to improve alignment and discard some error caused by incorrect scale.
make both plugins work similar. this must improve opengl image quality a lot.
also implemented dynamic resizing in opengl, this way the resolution math the windows resolution on resize.
this is highly experimental so please test a lot.
implemented shader dumping on error thinking in future experiments with shaders.
enjoy :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5458 8ced0084-cf51-0410-be5f-012b33b47a6e
a MAYORRRRRR change in pixel shader generation, please review all games you can and leave comments this must improve accuracy in graphic emulation a lot.
for example: mario eyes in super mario galaxy, water pod transparency an water transparency on game intro in super mario sunshine, etc.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5457 8ced0084-cf51-0410-be5f-012b33b47a6e
disable install wii menu item after installation (restart required still for NANDContentLoader to find it
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5456 8ced0084-cf51-0410-be5f-012b33b47a6e
The error was caused by trying to set the text for a status bar field whose index was equal to the actual number of fields.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5449 8ced0084-cf51-0410-be5f-012b33b47a6e
allows (among other things) installing the wiimenu from a wad extracted from the update partition of a game
currently you can choose Tools > Install Wii Menu or right click wad from the gamelist and install
restart required to have the Tools > Load Wii Menu work
I thought I had already commit this, I guess I forgot and it's just been sitting on my hdd :p
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5448 8ced0084-cf51-0410-be5f-012b33b47a6e
The fix is asking alsa for a prefered "hardware" buffer size, so alsa does not fall
back to pulseaudios offering of ~1 minute. Additionally, alsa busy waits when pulseaudio
is used, sw:avail_min is set and hw:buffer_size is small.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5439 8ced0084-cf51-0410-be5f-012b33b47a6e
make native mips loading an option to prevent performance lost in game that not need this functionality.( thanks to dorian.fevrier for point the performance lost.)
added a patch from pierre@pirsoft.de to avoid vertex drops when index array is full in opengl implementation that do not support large index arrays
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5432 8ced0084-cf51-0410-be5f-012b33b47a6e
For some reason something in (or included in) Frame.h messes up the SFML inclusion in NetPlay.cpp.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5426 8ced0084-cf51-0410-be5f-012b33b47a6e
Also added a window size setting for windowed mode.
Also pulled some X11 specific code out into a separate file.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5395 8ced0084-cf51-0410-be5f-012b33b47a6e
add an option to limit fps instead of vps for games with bad synchronization
some minor fixes in d3d gui
enjoy :)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5394 8ced0084-cf51-0410-be5f-012b33b47a6e
void pushExtValueFromReg(u16 dreg, u16 sreg);
void popExtValueToReg();
instead of the backlog.
Someone might want to add it to the Unit test
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5389 8ced0084-cf51-0410-be5f-012b33b47a6e
simplified CoreTiming::AddEventToQueue
fixed emu.frameadvance and implemented emu.wait
fixed Lua script termination
brought over some luaconf customizations to fix issue 2245 in a better way and deal with certain other scripting problems
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5383 8ced0084-cf51-0410-be5f-012b33b47a6e
made Lua run on the CPU thread to fix unreliable script execution issues
several fixes so the Lua savestate functions can actually work
added Lua function savestate.verify to help with catching desyncs
implemented FailVerifyAtFrameBoundary in Lua interface
added a Clear button to the LuaWindow
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5382 8ced0084-cf51-0410-be5f-012b33b47a6e
Made the JIT sanity checks more informative.
Sanity checks are now only performed in the DEBUG and DEBUGFAST builds. This gives a tiny speed-up for everyone else.
Fixes issue 2187.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5378 8ced0084-cf51-0410-be5f-012b33b47a6e
Also fix an issue with the DX9 plugin not being the correct size when starting the game in fullscreen at a higher resolution than the desktop resolution.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5375 8ced0084-cf51-0410-be5f-012b33b47a6e
Moved ControllerInterface to InputCommon. Moved GCPadNew GUI/Config code to a new project, InputPluginCommon. It is used by both GCPadNew and WiimoteNew. I hope that I included everyone's fixes to GCPadNew and ControllerInterface.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5355 8ced0084-cf51-0410-be5f-012b33b47a6e
Also improve the visual appearance in linux. I think I have done so without hurting the appearance in windows.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5348 8ced0084-cf51-0410-be5f-012b33b47a6e
Enable it by uncommenting the defines in JitBase.h. For breakpoints to work in JIT mode, the block cache must be disabled. The PPC instruction trace, regs, fpu regs, flags, generated x86 binary and generated x86 disasm are logged in the Dynamic Recompiler log.
Fixes issue 1052.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5314 8ced0084-cf51-0410-be5f-012b33b47a6e
And to help test things like that: DSPJitTester (use with caution on x64, most likely fails there; r5250 might be why)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5306 8ced0084-cf51-0410-be5f-012b33b47a6e
enabled nr in jit after getting skid_au's help in writing the inscrease_addr_reg.
ector can you please take a look and see if the loop code makes sense? it seems
no one it really sure how loops suppose to work in jit
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5301 8ced0084-cf51-0410-be5f-012b33b47a6e
These codes don't work unless "_M_SSE=0x301", for SSSE3, or "_M_SSE=0x401", for SSE4.1, is defined as a preprocessor definition.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5300 8ced0084-cf51-0410-be5f-012b33b47a6e
Disabled game-specific Wii/Progressive Scan checkbox, since its never used by Dolphin; it would cause side-effects to global configuration if we did write to SysConf in that place.
Fixes Issue 2518
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5283 8ced0084-cf51-0410-be5f-012b33b47a6e
fixed fps display in the top bar, now it shows the real fps of the game.
some code clean up and some corrections to make everything work right in the reference renderer.
multiples xfb now is broken even in single core as is was not an error caused by dual core, i really dono where the error is,everything looks correct but if you test a game with multiples xfb or the ipl you will see the error.
ector if you can take a look at he code and throw me some ideas i'll thank you.
please test.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5272 8ced0084-cf51-0410-be5f-012b33b47a6e
Removed the obsolete projection hacks:
* Final Fantasy CC Echo of Time
* Harvest Moon Magical Melody
* Baten Kaitos
* Baten Kaitos Origin
* Skies of Arcadia
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5271 8ced0084-cf51-0410-be5f-012b33b47a6e
Fix the problem with wiimote plugin not saving information correctly for the auto reconnect option.
Fixes issue 2475
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5246 8ced0084-cf51-0410-be5f-012b33b47a6e
This still requires more work, like making the option only per Wiimote then rather the first one counting for them all.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5241 8ced0084-cf51-0410-be5f-012b33b47a6e
applied mlkbouba patch to make Mario Strikers Charged Football work (i do not own the game so please test).
some minor tweaks to the plugins to improve performance. for game that do not use xfb the best settings are dual core enabled, audio throtle disabled, frame limit set to the desired value, and xfb off.
change the frameskip calculations to use fps instead of vps as in dual core vps != fps caused by unresolved sync problems, till this problems are fixed the best for game play is calculate times in base of fps.
please test and let me know the results
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5239 8ced0084-cf51-0410-be5f-012b33b47a6e
functions are passed by value rather than by reference
This is part of a bigger change so please report if it broke compile
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5228 8ced0084-cf51-0410-be5f-012b33b47a6e
This fixes an error message when trying to play Mario Kart Wii over WFC, although it still fails when trying to connect now.
Also fix some cosmetic issues (double include and indentation).<NeoBrain Patch>
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5222 8ced0084-cf51-0410-be5f-012b33b47a6e