rewrite frame dumping and screen shots to make them more stable and correct
enable viewport resizing for all cards, the emulation is more correct in this way
test this a lot please.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4971 8ced0084-cf51-0410-be5f-012b33b47a6e
Unfortunately the mouse pointer doesn't match up very well with the IR pointer yet.
Also, I had to add the PointerMotionMask to XSelectInput which adds overhead to the already stressed X event loops. Five event loops by my count, really?
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4961 8ced0084-cf51-0410-be5f-012b33b47a6e
In linux if the dialog is opened and then the program is closed without running a game the program hangs and has to be killed because the dialog was never destroyed.
In both windows and linux if the dialog is opened and then a game is run, the program hangs or segfaults (for the respective os's) when the game is stopped.
This will also need to be done with the pad plugin as the same issue is there.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4940 8ced0084-cf51-0410-be5f-012b33b47a6e
if a degenerated primitive is passed to the VertexManager treat it as a compatible primitive, for example if a 5 vertex quad is passed treat it as a triangle fan.
as crazy at this seems it fix the sun glare in ZWW, please test an d let me know if it make a difference in other games
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4931 8ced0084-cf51-0410-be5f-012b33b47a6e
Center DX9 window
Bring Wiimote reconnect confirm dialog to topmost, now only works with OpenGL.
(It seems DX9 in full screen doesn't like other windows overlapped upon it.)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4895 8ced0084-cf51-0410-be5f-012b33b47a6e
in opengl correct an error introduced by mi in efb to ram alignment, it's seems to fix SMS but it missalign a lot of other games, so revert to the default. must solve truncated coins in NSMB.
revert alpha testing values to the values in rev 4812 as they fix some games.
in d3d dynamized the Render target size so it will change at runtime when viewport exceed it size, in the worse case it will cause a missing frame when resizing but in the games I tested is not noticeable at all
This must solve all the remaining viewports problems in nvidia cards, in ati this is not needed.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4888 8ced0084-cf51-0410-be5f-012b33b47a6e
Please ignore previous revision, which is a proof of why late-night coding isn't always a good idea...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4853 8ced0084-cf51-0410-be5f-012b33b47a6e
More precisely, if you booted a game before opening the config panel, they'd all go to the default values...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4852 8ced0084-cf51-0410-be5f-012b33b47a6e
in videocommon little fix for the alpha test values, return to the original values as they are more accurate.
in D3D:
huge change in state management, now all the state management is centralized and redundant state changes are eliminated.
Fixed the overlapped viewport error in non ati cards:
the error was caused by this: when a viewport is defined larger than the current rendertarget, an error is thrown and the last valid viewport is used, this is the reference behavior, in ati cards if a larger viewport is defined, no eror is returned, the rendering is valid and is rendered using the projection defined by the viewport but limited to the rendertarget are, exactly like opengl or the GC hardware.
to solve this in reference drivers defined a large rendertarget (2x the size of the original) and proceed to render in a centered quad insithe the larger rendertarget, in this way larger viewports always falls inside a valid rendertarget size, the drawback of this is the waste of resources. it can be dynamized, depending or games or changed at runtime when a oversized viewport is detected, but i live that to future commits.
please test this and let me know the results.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4841 8ced0084-cf51-0410-be5f-012b33b47a6e
Goal is complete/near complete RE of DSP_UC_6A696CE7 (GC AX), and hopefully ROM.
From there, seeing the additional changes in other GC AX versions (there are only 4 others, with minor differences), should be "simple".
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4818 8ced0084-cf51-0410-be5f-012b33b47a6e
Also fixed the crash when clicking OK while having one WiiMote active.
Nunchuck's gravity is kinda wrong, don't know why though, We don't know if it's Wiiuse's fault or if the nunchuk has different vars...
Punchout @ingame the nunchuk gravity also doesn't work...
All the work done by sanchez!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4794 8ced0084-cf51-0410-be5f-012b33b47a6e
Now the frame limiter yields on CPU thread, not as before on GPU thread mistakenly
2. Fixed clear of VI interrupts
I guess VI interrupts are not used at all, because they were never cleared before
3. Made GPU thread 0% processor usage when paused whatever your active config is.
I tried the event approach but somehow the thread resume latency is excessively long (Who can tell me why?)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4790 8ced0084-cf51-0410-be5f-012b33b47a6e
All you gotta do is Pause the emulation! That's useful for when your batteries run out during gameplay, for example...
But if you change the WiiMote source (between Emulated, Real or Inactive) you must disconnect and reconnect (Menu Tools -> Connect WiiMote) the WiiMotes affected by the change...
Thanks to jack.fr0st who did all the emulation state notification work!
Now every plugin has a way to know the current emulation state (paused, stopped or playing)
@ayuanx: I thought about doing a PostMessage(g_WiimoteInitialize.hWnd, WM_USER, WIIMOTE_DISCONNECT, current_number); so that the user gets asked to reconnect that WiiMote, trying to avoid having to disconnect and reconnect, but it didn't work because shooting that message only asks to reconnect, doesn't do a disconnect... Do you have any ideas on how to accomplish that?
Also, if anyone could check if Issue 1916 is finally fixed... Or at least when is the cursor being hidden or not...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4789 8ced0084-cf51-0410-be5f-012b33b47a6e
It's really helpful since pairing up using Microsoft's Stack is a real pain!
Thanks to jack.fr0st and sanchez who did most of the work!
Note: IT ONLY WORKS WITH MICROSOFT BLUETOOTH STACK!
Also you should press the Refresh Real WiiMotes button after everything is paired up! (Because it takes a while for the drivers to get installed)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4786 8ced0084-cf51-0410-be5f-012b33b47a6e
Fixed Issue 1917
(Since wxWidgets is not allowed in core, so I moved the popup window to CFrame)
*Maybe* this could also fix Issue 1919?
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4780 8ced0084-cf51-0410-be5f-012b33b47a6e
2. Fixed Issue 1909
Multi-Nunchuck control problem
3. Updated SYSCONF, which should enable games that require MotionPlus, such as "Wii Sports Resort"
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4773 8ced0084-cf51-0410-be5f-012b33b47a6e
Fixes a crash when the slot selected to use Real WiiMote is greater than the number of Reall WiiMotes connected...
For example: We have 1 Real WiiMote connected, and the user selects the 4th WiiMote as Real WiiMote...
Also Let's you choose between Inactive and Emulated when the game is running... But you must disconnect and connect the wiimote for the emulated to start working (Via Menu -> Tools -> Connect)
I'm trying to figure out a way of allowing change to Real WiiMote while the game is running... It can be done when the game is paused, but I can't find a way of detecting if the game is paused =\
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4771 8ced0084-cf51-0410-be5f-012b33b47a6e
Unbreak linux stop on Single Core, remove an unnecessary wait event, fix DSP HLE/DSP LLE/OGL plugin hang on stop when the config dialog has been opened (nJoy and Wiimote still need to be fixed), avoid the CpuThread to be stuck in the efb/swap loop by setting a flag before the thread is actually shutdown (contrary to r4756 which was setting it.. after :D)
Clear the status bar Framerate/Core message when the game is stopped.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4769 8ced0084-cf51-0410-be5f-012b33b47a6e
Only downside: You can't change between Real and Emulated WiiMotes while the game is running anymore... This is due to the way the Real WiiMotes are assigned to the slots...
I've tested it with 2 real WiiMotes, but I can't see why it wouldn't work with 4!
Also, you can assign Real or Emulated WiiMotes to any one of the four slots that it will be respected!
Happy New Year everybody!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4765 8ced0084-cf51-0410-be5f-012b33b47a6e
- It's worth noticing that both in OGL and D3D the Config options for Always and Auto Hide Cursor have no effect. I can't get (read) those values in D3DBase.cpp ...
* Some more key bindings
* Removes duplicate ifdef _Win32 from VKToString
* Made VKToString a little faster (smarter) (but don't expect any speedups though...)
* Corrects Pal60 name in Config (it was Pal6)
I'm still trying to figure out why the Toggle Fullscreen Button doesn't work...
Also I really thought about commiting my changes to Wiimote_real, which are tested and working for 1 real wiimote, but I need someone to test them with more than one real wiimote (I only have one)... See Issue 1876 ...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4757 8ced0084-cf51-0410-be5f-012b33b47a6e
2. Connect/Disconnect Wiimote on the fly, no need to pause game
PS: Toggling full screen by ESC in DX9 doesn't work yet, it will close Dolphin instead at the time.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4754 8ced0084-cf51-0410-be5f-012b33b47a6e
* You can connect/disconnect one or more WiiMote from Menu->Tools any time (must pause game first)
* Up to 4 Emulated Wiimotes can work together at the same timer
(PS: "Wiimote_Real" needs to be rewritten to support Multi-WiiMote, and it could be broken already now)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4736 8ced0084-cf51-0410-be5f-012b33b47a6e
. Performance boost
(Completely non-blocking between Sound thread and CPU thread, in the meantime keeping them thread safe)
. Both 32KHz & 48KHz sound can be handled properly now
(But up-sampling is still not implemented, and I don't think any game requires it.)
. Strategy adjustment
When your PC is *NOT* capable to run the game at 100%:
>> DSound Could yield more fluent sound than OpenAL sometimes, but you will lose the sync between video & audio (since audio is played before video to guarantee fluency)
>> OpenAL Ensures video & audio are always sync'ed, but sound could be intermittent(to let slow video catch up)
. Changed default frame limit to: Auto
(Somehow this can dramatically decrease the chance of wiimote desync in game NSMB)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4724 8ced0084-cf51-0410-be5f-012b33b47a6e
. Fixed Sample Rate for DSP
(Now if your CPU is capable to run game at 100%, you will get pure sound without buzz or static noise)
. Fixed Sample Rate for AI
(Now if your CPU is capable to run game at 100%, you will get sync'ed video and audio)
. Fixed Backend list for DSPLLE
. Improved Aduio DMA a bit
(There might be a completely redesign in following phases)
WARNING: The whole rework will take time to complete.
This commit is compilable, but could be unstable.
So you can try it and test it but don't take it as a release rev!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4717 8ced0084-cf51-0410-be5f-012b33b47a6e
- Add an option to enable the EFB scaled copy *TODO find a better place for it to go.
SOIL - Update stb_image to the latest version (1.16 to 1.18)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4716 8ced0084-cf51-0410-be5f-012b33b47a6e
Fixed issue: XInput trigger source cannot be selected
Added proper close of SDL_Joystick
But still nJoy and Wiimote cannot share the same gamepad. It needs to be figured out how to do it with SDL.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4686 8ced0084-cf51-0410-be5f-012b33b47a6e
changed the blending functions for the logic ops emulation, now the accuracy is the best possible with the functions available in D3D.
if someone is interested i'll post how i get this values :) please test and let me know the results.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4673 8ced0084-cf51-0410-be5f-012b33b47a6e
in D3D and Opengl:
fixed one nasty bug in texture loading where if a dynamic texture keeps his format but the tlut format is changed, the try or reloading the texture in the same texture could cause a hang if the size of the resulting texture is different than the original (size in bytes)
Applied a ugly temporal hack to the texture conversor to solve efb to ram misalignments and effect distortions.
in D3D:
Pseudo implementation of logic ops using basic blending: the first 8 operations are "good approximations", the remaining 8 are bullshit :) if someone have a better approximation to emulate this logic please let me know.
please test if i don't break anything in the process and test Mario kart wee you will get a nice surprise.:)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4656 8ced0084-cf51-0410-be5f-012b33b47a6e
2. Change the frequency of WiiMote report sending to 100Hz which complies with real Wiimote hardware.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4655 8ced0084-cf51-0410-be5f-012b33b47a6e