Commit Graph
100 Commits
Author SHA1 Message Date
Jasper St. Pierre dd2e9d1fc7 X11_Util: Fix build when using EGL
We forgot to remove the reference to GLWin.width / GLWin.height here.
2014-08-10 23:57:48 -04:00
Jasper St. Pierre b84fd718a7 CMakeLists: Try to fix the X11 detection on OS X 2014-08-06 21:38:57 -04:00
Jasper St. Pierre cd641bd0e3 DolphinWX: Allow building both GUI and NoGUI at the same time
Restructure our build system so we have multiple targets. Right now we
only build MainNoGUI if we are using X11, since that's the only truly
supported backend: the OS X code actually doesn't compile, according to
comments made on IRC.
2014-08-06 21:38:57 -04:00
Jasper St. Pierre 2b8a476a05 X11Utils: Don't depend on wx
We want to have two build targets: Main and MainNoGUI, and this code
will be linked against in both cases, so the ifdef isn't enough for
this case.

Just append to a vector of strings, and then convert it after the fact.
2014-08-06 21:38:47 -04:00
Jasper St. Pierre c54fef5496 VideoBackendBase: Remove unused stub Initialize implementation
Both D3D and OGL have their own overrides, so this isn't used.
2014-08-06 21:35:52 -04:00
Jasper St. Pierre 354f223f77 X11Utils: Remove unneeded SendButtonEvent / SendKeyEvent utilities
This was used to send fake button or key events to every backend to
implement freelook. When I ported these to be based on wx events in
commit 5248211, I didn't realize that these were now unused, so I didn't
remove them. Do that now.
2014-08-06 15:07:25 -04:00
Jasper St. Pierre 44307c9508 Host: Add a new "UIHasFocus" hook to determine if the UI has focus
We can't use RendererHasFocus for this purpose because of some issues
with exclusive fullscreen, and the new RendererHasFocus implementation
didn't work for non-Render to Main Window cases, since the renderer
window wasn't managed by wx.
2014-07-16 10:27:21 -04:00
Jasper St. Pierre ee087f5953 Revert "Frame: Fix RendererHasFocus"
This reverts commit ff918df889.

This changed it from "RendererHasFocus" to "UIHasFocus", which is
wrong. Specifically, it broke for non-Render to Main Window cases where
the renderer window isn't managed by wx. It also broke the pending
exclusive fullscreen support, which checks this function to determine if
the renderer is on top so it can full-screen it.

We'll add a new hook, "UIHasFocus", in the next commit.
2014-07-16 10:26:06 -04:00
Jasper St. Pierre ff918df889 Frame: Fix RendererHasFocus
The logic of RendererHasFocus was extremely convoluted beforehand and
was too brittle and broke in certain circumstances, like when the
GCPad window was active. Simplify it and leave a comment explaining the
new logic. This fixes the GCPad window not working when Background Input
is unchecked.
2014-07-12 07:29:49 -04:00
Jasper St. Pierre e4eec2002b ControllerEmu: Remove focus-checking code from the rest of ControllerEmu 2014-07-11 14:08:29 -04:00
Jasper St. Pierre 74f3083381 ControllerInterface: Gate the input based on our new background input setting 2014-07-11 13:38:52 -04:00
Jasper St. Pierre 5abc028ace ControllerEmu: Make BackgroundInput a global setting through the virtualization
This will allow us to simplify the checks for background input and push
them further down into the architecture, into the ControllerEmu layer.

The new setting isn't actually used yet, though.
2014-07-11 13:38:37 -04:00
Jasper St. Pierre 0d49bf65a7 ControllerEmu: Virtualize settings
This will allow us to move Background Input to a global setting rather
than a local setting.
2014-07-11 13:32:58 -04:00
Jasper St. Pierre a6dc3c47a9 ControllerEmu: Change the GetState interface to remove range/base
Do the scaling in the code that interprets the results.

This also removes the templatization of things and changes the interface
to always take a double.

This does add a bit more code to the users of GetState, especially when
having to deal with focus management, but this will be cleaned up very
soon, as focus and focus-related options will be centralized inside the
input platforms themselves, rather than spread out across all the input
plugins.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 0d11081a3b ControllerEmu: Clean up the code that applies the modifier
This makes it more clear and pretty much the analog stick code bog standard.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre c29d5ff989 ControllerEmu: Always convert to polar coordinates and back
Most users will have something in the radius or deadzone fields, so
don't bother filtering out 'extra' work. This also lets us clean up
the modifier implementation.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre f2d4f10fc9 ControllerEmu: Remove support for the "Square Stick" option
It was only used for really old joypads which we really don't want to
support. If users have these joypads, they should look into using
something at the OS level, as games shouldn't need to have this
transformation; it should be done by the OS and driver.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 07c4925059 InputConfigDiagBitmaps: Clean up the FORCE drawing code as well 2014-07-11 13:32:57 -04:00
Jasper St. Pierre 4d2a39090b InputConfigDiagBitmaps: Rewrite the stick visualization code
Change our DrawCoordinate helper method to take raw coordinate
positions, and draw the rectangle using that. This is a lot better
and more friendly than applying various crazy constants in the GetState
for the base/range.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 8abff435e6 InputConfigDiagBitmaps: Clean up code a bit more
Split out some math into a utility.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 3c411c33e8 InputConfigDiagBitmaps: Start a cleanup by splitting code out
This doesn't have any functional changes, it just removes part of the
mess by killing indentation.
2014-07-11 13:32:57 -04:00
Jasper St. Pierre 68a4979f35 Nunchuk: Stop the dereference dance 2014-07-11 13:32:56 -04:00
Jasper St. Pierre e20a0265de Remove UDPWiimote feature
It substantially complicates the code and doesn't really provide any
functionality. According to the forums, the Android app is out of date
and has been broken for quite a while.

If we want to add this back, I'd write an app that speaks a more native
Wiimote protocol, and we can hook that up to the backend quite easily.
It could even be over our NetPlay protocol!
2014-07-11 13:32:56 -04:00
Jasper St. Pierre c11672b2d8 ControllerEmu: Constructors go on top 2014-07-11 13:32:18 -04:00
Jasper St. Pierre d468c38335 ControllerEmu: Fix code style 2014-07-11 13:32:18 -04:00
Jasper St. Pierre 0c9f6c2a2b ControllerEmu: Remove unnecessary include 2014-07-11 13:32:18 -04:00
Jasper St. Pierre 9d161b4170 BPStructs: Consistently put the two shared copy args first
And rename them so they make a bit more sense.
2014-05-20 11:28:15 -04:00
Jasper St. Pierre 1ae8edc1d0 BPStructs: Remove another function wrapper 2014-05-20 11:28:15 -04:00
Jasper St. Pierre b1d3c5937a BPStructs: Move LoadBPReg here 2014-05-20 11:28:14 -04:00
Jasper St. Pierre 763ad77a1c BPStructs: Flatten out BPWritten 2014-05-20 11:28:14 -04:00
Jasper St. Pierre 07ab77d31c BPStructs: Reindent BPWritten 2014-05-20 11:28:08 -04:00
Jasper St. Pierre c33a1b4b28 BPStructs: Document BPMEM_BP_MASK better 2014-05-20 11:26:31 -04:00
Jasper St. Pierre 2f122ea63c BPMemory: Fix "DISPLAYCOPYFILER" typo 2014-05-20 11:15:10 -04:00
Jasper St. Pierre 4e8e51b278 BPStructs: Remove calls to SetInterlacedMode when reloading state
SetInterlacedMode is a dummy no-op that does nothing.
2014-05-20 11:15:10 -04:00
Jasper St. Pierre 833b7ee584 BPFunctions: Remove the rest of GetConfig 2014-05-20 11:15:09 -04:00
Jasper St. Pierre 08611c3f36 PixelShaderManager: Fizzle out fog changes when disabled here
This lets us remove a use of GetConfig.
2014-05-20 11:15:09 -04:00
Jasper St. Pierre fe645b888b BPFunctions: Remove use of a dumb method
GetPointer serves no purpose.
2014-05-20 11:15:08 -04:00
Jasper St. Pierre 56228cea5d BPFunctions: Remove an unused method 2014-05-20 11:15:08 -04:00
Jasper St. Pierre 4f4e3fad85 BPMemory: Clean up and rename some variables and comments
This is about the register number, not the opcode.
2014-05-20 11:15:08 -04:00
Jasper St. Pierre e81b62aad1 BPFunctions: Clean up math slightly
No need for magic 342 numbers.
2014-05-20 11:14:00 -04:00
Jasper St. Pierre 3046d0e701 NetPlay: Sync CPU engine between NetPlay clients/servers 2014-01-08 19:42:02 -05:00
Jasper St. Pierre 16824d5fd1 Merge branch 'fuck-you-src-i-hate-you' 2013-12-31 14:07:57 -05:00
Jasper St. Pierre 34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00
Jasper St. Pierre 43e618682e Convert all vcxproj files to UNIX line endings 2013-12-31 14:03:18 -05:00
Jasper St. Pierre b6ad8bd712 HW: Remove unnecessary "../HW/" in include paths 2013-12-31 14:03:17 -05:00
Jasper St. Pierre 70d4d973f9 TAP_Win32: Remove unnecessary Memmap.h include 2013-12-31 14:00:06 -05:00
Jasper St. Pierre 9722be069b Update .gitignore 2013-12-07 14:54:02 -05:00
Jasper St. Pierre 2244d351fc .gitignore: Prevent Debugger directory from being removed again 2013-10-08 15:44:28 -04:00
Jasper St. Pierre 9920362581 Fix MSVC project files
yay relative paths
2013-10-07 18:50:21 -04:00
Jasper St. Pierre a7c7208103 Put Plugins/ in Core/, rename to VideoBackends 2013-10-07 10:37:01 -04:00
Jasper St. Pierre f830b85d10 NetPlayServer: Drop all the pads for a client when she disconnects
This makes intuitive sense, and prevents issues with users stealing
up all the pads and requiring admin intervention to participate.
2013-09-13 21:33:11 -04:00
Jasper St. Pierre 2b10142b4f Remove a bunch of old HLE junk
This hasn't been used since 2008
2013-09-10 22:35:52 -04:00
Jasper St. Pierre 92c846de45 NetPlay: Use the correct pad mappings for rumble
Rename the functions around so we don't get confused again, too.
2013-09-08 13:54:05 -04:00
Jasper St. Pierre 3e049a130b NetPlay: bump proto
As it changed with the pad mapping change.
2013-08-31 23:29:12 -04:00
Jasper St. Pierre 22f57cf07a NetPlay: Don't bother with the host's controller settings
Use the pad mapping to calculate the number of devices
we want, and add them on each client when we get the
message.
2013-08-31 21:18:14 -04:00
Jasper St. Pierre dfb34ddef4 NetPlayWindow: Make the spacing consistent on both sides 2013-08-23 20:40:34 -04:00
Jasper St. Pierre 23ff31451f NetPlay: Rework pad mapping
Pad mapping and the UI behind it is significantly confusing,
and has been confusing users since NetPlay was introduced.

As part of a large code cleanup to help NetPlay more stable,
introduce a better pad mapping system where local pad mapping
is handled by the client. Now, all the server and other
clients know is which player have which controllers, and the
clients only know this so they can show the pad mapping in the
UI; they don't do anything else with it.

A future cleanup will use this pad mapping data to completely
ignore the pads configured in the settings pane on the host.
2013-08-23 09:40:08 -04:00
Jasper St. Pierre 7a41acd8ff NetPlayServer: Remove unused code
GetPlayerList is always called on the client.
2013-08-18 21:38:32 -04:00
Jasper St. Pierre 5782530b40 NetPlayProto: bump netplay version
Since the packet structure changed.
2013-08-18 09:10:15 -04:00
Jasper St. Pierre 756bf93111 NetWindow: Move "Write memcards" checkbox to be host-only
The setting is propagated from the host, so the client checkbox would
be ignored anyway.
2013-08-16 21:42:38 -04:00
Jasper St. Pierre 863fb9f95b D3DBase: Fall back to creating a normal context when debug fails
This can happen if the user does not have an up to date version of
the DirectX SDK, as Microsoft intentionally broke it and requires
users to install the W8 SDK.
2013-08-15 10:19:14 -04:00
Jasper St. Pierre 605e3e8f65 Revert "D3DBase: Don't pass the DEBUG flag when creating a device"
This reverts commit 0e6b5bc5c8.
2013-08-15 10:07:52 -04:00
Jasper St. Pierre 3380e47ca7 MemArena: Free memory for 64-bit machines
Make the logic here a lot simpler. Patch contributed by Google Code
user plbl4ster.
2013-08-14 20:34:15 -04:00
Jasper St. Pierre 1826fce946 NetPlay: Make sure the server knows it's stopped when it's stopped
This is embarassing.
2013-08-14 18:36:09 -04:00
Jasper St. Pierre 998194246c NetPlay: Disable the "Start" button while the game is running 2013-08-14 18:16:07 -04:00
Jasper St. Pierre 1c74e412e2 NetPlay: Remove the "Stop" button
Now that the host can simply close the window, there's no need for this extra control.
2013-08-14 18:16:06 -04:00
Jasper St. Pierre 5241deaebe NetPlay: Allow hosts to stop the game by closing the game window 2013-08-14 18:16:05 -04:00
Jasper St. Pierre 92f8d79574 NetPlay: Set the pad buffer size on server creation
If we don't do this, then when the game starts we'll send out the
buffer size to clients being a super large value of junk, and they'll
hang forever trying to accumulate an input buffer a size that they'll
never ever reach in a million years.

This never manifested in release builds for some reason.
2013-08-14 18:15:28 -04:00
Jasper St. Pierre 0e6b5bc5c8 D3DBase: Don't pass the DEBUG flag when creating a device
In order for this flag to not fail, you either need a Windows 8 machine
or upgrade to the paid version of Visual Studio 2012. Not gonna happen.
2013-08-14 18:04:44 -04:00
Jasper St. Pierre d0084cb41d Main: Fix code that creates the BIOS subdirectories
We need to ensure that the file path ends with DIR_SEP, as
File::CreateFullPath is a very naive function.
2013-08-12 06:23:58 -04:00
Jasper St. Pierre 22b3c26654 Main: Create BIOS subdirs of GC userdir on load
So that users don't get confused about where to place the BIOS files
2013-08-11 14:33:26 -04:00
Jasper St. Pierre d0729983b0 Check for GC BIOS in userdir before sysdir 2013-08-11 14:13:45 -04:00
Jasper St. Pierre b821bf996e CleanFiles: Remove use of chardet
Now that everything is utf8, guessing the character encoding might
go haywire, like with the "Pokemon" games. Just assume UTF8 from
here on out.
2013-08-11 11:59:57 -04:00
Jasper St. Pierre b4ebeb05ff Move the new CleanFiles Python script to Tools/
So it won't be shipped to users. Also, fix it up so that it finds
the ini files regardless of where it is.
2013-08-11 11:58:54 -04:00
Jasper St. Pierre e5f4586356 Normalize all Game INI files
Add a simple Python script that does a basic normalization on
the game INI files and run it across all the files we have. This
normalizes the sections, their order and comments, and the whitespace
within them.

It also removes the sections Video_Hardware, Gecko, and Wii, which
should not be in the game INI files we ship by default.
2013-08-11 11:32:11 -04:00
Jasper St. Pierre 8bbd1d12e8 GameConfig: Remove unused [HLEaudio] section 2013-08-11 11:32:11 -04:00
Jasper St. Pierre b5c2737c9f IniFile: Don't parse comments after the [Section] brackets
This is non-standard behavior. We won't fail to parse, but we now
won't write them back out either.
2013-08-11 11:32:10 -04:00
Jasper St. Pierre 0eaea5f4df IniFile: Remove support for comments anywhere but the beginning of lines
The MS INI parser and most other INI parsing libraries APIs only support
comments at the beginning of lines. Right now, some Game INI files use sections
like:

  [OnFrame]#Add memory patches here

But these section headers are parsed separately, so this should not break
them.
2013-08-11 11:30:52 -04:00
Jasper St. Pierre 0d2083c670 Merge branch 'netplay' 2013-08-05 06:44:17 -04:00
Jasper St. Pierre 9f90cbee19 NetPlayServer: Close the socket when we're done with it
This would allow a new socket to be created with the same port after
we close it. However, we can't reuse it immediately because of the TCP
TIME-WAIT state.
2013-08-05 06:43:27 -04:00
Jasper St. Pierre 59ab60f37f NetPlay: Supply every player's ping data to the client
This means that we now have feature parity with the combined server
before.
2013-08-05 06:12:56 -04:00
Jasper St. Pierre a3a222bf5b NetPlay: Remove NetPlay.h / NetPlay.cpp
Now the server and client implementations are entirely separate.
2013-08-05 05:05:06 -04:00
Jasper St. Pierre 9e63cebc93 NetPlay: Remove the base NetPlay class
It's only used by the NetPlayClient. For now, keep around NetPlay.cpp,
but we'll remove that soon.
2013-08-05 04:56:30 -04:00
Jasper St. Pierre 3b32d3c90d NetPlay: Split the server out, and make the local system manage a client as well
This should be transparent, but it may cause regressions.

The idea here is that now all players, including the host of the server,
talk to the server through TCP/IP networking. This significantly reduces
our codepaths through netplay, and will prevent strange local-only bugs
from happening.

The cleanup isn't 100% finished yet. The NetPlay dialog still drives the
server through private APIs. I eventually want to sanction off the server
entirely, so all communication is done through TCP/IP. This will allow us
to have high-traffic public servers that can relay multiple games and
lobbies at a time, and split off channel and game management to people
other than the host.

This is all still just a pipe dream, though.
2013-08-05 04:42:26 -04:00
Jasper St. Pierre 9e8655fa1f NetPlay: Remove some dead code 2013-08-05 04:25:16 -04:00
Jasper St. Pierre 0e0f0aec6e Core: Remove dead code
We never call SetState with CORE_UNINITIALIZED, and always call
Core::Stop() directly.
2013-08-05 00:03:15 -04:00
Jasper St. Pierre 09338c673c FrameTools: Use the correct window handle for resizing the window
We want to resize the OpenGL window, not the frame window.
2013-07-23 15:02:00 -04:00
Jasper St. Pierre a963c621dc NetPlay: Sync across whether to save memcards or not
There's no reason this shouldn't be synced other than laziness.
2013-07-22 07:29:15 -04:00
Jasper St. Pierre 6d463d1b67 NetPlay: Allow building a server without a game
This isn't hooked up in the UI yet, but it will allow us to
basically start the server and chat system without choosing
a game.
2013-07-22 07:29:15 -04:00
Jasper St. Pierre 2631ec3cff Core: Remove an unused var 2013-07-22 07:29:15 -04:00
Jasper St. Pierre f693488c8a InputConfigDiag: Save the configuration when pressing "OK"
This fixes a common UI complaint of the control dialog UI.
Also, don't close the dialog if we have an error with the expression.
2013-07-22 03:19:38 -04:00
Jasper St. Pierre bc17798ef2 InputConfigDiag: Add a simple error status label
This tells you what you did wrong at a high level if you messed up.
2013-07-22 03:19:22 -04:00
Jasper St. Pierre 3c7f223aa1 Add "Q" / "E" as freelook keybindings
To move the view up and down.
2013-07-22 00:14:42 -04:00
Jasper St. Pierre 52482115e1 Move in-game keybinding handling to a central location
Instead of handling it separately in every backend.
2013-07-21 23:17:16 -04:00
Jasper St. Pierre 4981b7cdd3 VertexShaderManager: Make ProjectionHack private
There's no reason to make this public, and it prevents a build
issue with the next commit.
2013-07-21 17:56:20 -04:00
Jasper St. Pierre 3b29320113 wx: Prevent warnings when compiling with recent versions of g++
g++ tends to think this is a string literal instead of concatenation.
2013-07-21 17:56:20 -04:00
Jasper St. Pierre fec641d14a X11: Don't do a round-trip to the server to figure out our size on configure
Simply use the values from the event structure.
2013-07-21 01:59:40 -04:00
Jasper St. Pierre 01ff85506d X11: Don't use a client event as a wrapper for XMoveResizeWindow
Simply configure the window from here
2013-07-21 01:59:40 -04:00
Jasper St. Pierre ca97b10dda Actually link to XI2
No idea how this was working before
2013-07-21 01:59:40 -04:00
Jasper St. Pierre bd7ca7625b Fix up last commit
I forgot to git add this change.
2013-07-21 00:51:07 -04:00