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
Jasper St. Pierre
3239e4946f
Use pkg-config to check for XInput2
2013-07-21 00:45:03 -04:00
Jasper St. Pierre
4c807fa7b4
Fix Device.h placement in VC++
2013-07-15 16:24:20 -04:00
Jasper St. Pierre
b64e882ba5
ExpressionParser: Parse fully qualified control names correctly
...
Without clearing out the "accumulator" for the backtick parsing,
our control name was full of junk (the previous device name) causing
us to not correctly find the control.
Ensure that always we clear the "accumulator" string during backtick
parsing.
2013-07-12 13:26:09 -04:00
Jasper St. Pierre
b2e7248b58
LogWindow: Fix a bad initializer
...
Since these defaults aren't used, don't bother specifying them.
2013-07-05 22:39:18 -04:00
Jasper St. Pierre
7493f19cda
Squash warnings from wx
...
See: http://trac.wxwidgets.org/ticket/15137
2013-07-05 22:13:11 -04:00
Jasper St. Pierre
d5983b587e
InputConfigDialog: Don't show "..." for complicated expressions
...
Just show the actual expression. We need to do a bit of mangling
here as wx has no way to turn off mnemonics parsing, so do that
as well.
2013-06-29 18:28:14 -04:00
Jasper St. Pierre
1083d78721
InputConfigDiag: Put the colon after the device name
...
Oops. The dialog accidentally generated the wrong syntax for
this one.
2013-06-29 02:58:17 -04:00
Jasper St. Pierre
11fdd5a4ec
ExpressionParser: Search for control names first
...
Otherwise, valid control names like "Cursor X+" would be incorrectly
tokenized as "`Cursor` `X` +", causing the parser to first abort trying to
find a control named `Cursor` rather than aborting with invalid syntax on
the bad binop.
We could also do this by resolving devices lazily, but since simple
control name bindings are going to be 90% of usecases, just look for these
first.
2013-06-27 10:51:19 -04:00
Jasper St. Pierre
a92f6f68d6
DInputJoystick: Fix compile
...
Whoops. MSVC++ messed up somehow and didn't tell me it didn't work
locally.
2013-06-26 23:26:21 -04:00
Jasper St. Pierre
cdb5b8b737
DInputJoystick: Always exclude XInput
...
Yeah, yeah, it's possible that some guy would try to build DInput
without XInput, but they're crazy, and I doubt it would have worked
since the header file mess was so fragile anyway. Always exclude
DInput devices when we don't have XInput.
2013-06-26 23:06:17 -04:00
Jasper St. Pierre
c78a1ecdcb
Merge branch 'expression-parser-barewords'
2013-06-26 20:30:09 -04:00
Jasper St. Pierre
c11ae9ea4b
Revert "Core: Update default bound controls for new ExpressionParser"
...
This reverts commit 54e1b58199 .
We now support barewords control names, so use those instead.
Conflicts:
Source/Core/Core/Src/HW/WiimoteEmu/WiimoteEmu.cpp
2013-06-26 20:25:37 -04:00
Jasper St. Pierre
f53eefb491
ExpressionParser: Add support for simple barewords control names
...
If an expression can't be parsed normally, we then look to see if it's a
simple device name. This keeps backwards compatibility with simple input
ocnfigurations, where people just used the Detect button.
2013-06-26 20:19:23 -04:00
Jasper St. Pierre
03fdebac09
ExpressionParser: Don't crash when we can't find a device
2013-06-26 16:54:48 -04:00
Jasper St. Pierre
55950365e3
InputConfigDiag: Fix complex bindings with with left-click Detect
...
This fixes the binding of XBox 360 controllers and similar devices
with complex control names.
2013-06-25 15:05:53 -04:00
Jasper St. Pierre
748ee50536
Core: Fix a typo in the binding of IR Up
...
Whoops.
2013-06-25 01:58:22 -04:00
Jasper St. Pierre
7738b8b0e0
Merge branch 'expression-parser-fixes'
2013-06-25 01:50:09 -04:00
Jasper St. Pierre
54e1b58199
Core: Update default bound controls for new ExpressionParser
2013-06-25 01:46:13 -04:00
Jasper St. Pierre
89e84163c2
ExpressionParser: Fix delimiter scanning
...
We need to make sure we eat the delimiter, otherwise we'll notice
the colon / backtick and think it's either a new control or part
of the control name
2013-06-25 01:44:28 -04:00
Jasper St. Pierre
c5c86d17dc
InputConfigDiag: Use "..." for complicated expressions
...
The full expression is quite often too big for a simple button
label, so encourage people to use the full editor to edit it.
2013-06-25 00:58:31 -04:00
Jasper St. Pierre
62281fbfde
InputConfigDiag: Give the input text field a monospace font
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
03a835ec07
InputConfigDiag: Update for the new expression language
...
Modify the buttons and editor interface for the new expression
language, like the new op name for add, the new device name syntax,
and add new editing features, like simple selection behavior on
unary ops.
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
a42388d061
ExpressionParser: Support bare words for simple control names
...
Using backticks for all control names can get a bit grating,
so support "A & B" instead of requiring "`A` & `B`".
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
d2753cce66
ExpressionParser: Add support for the add operator
...
Use "+" instead of "^" this time.
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
6246f6e815
InputCommon: Add a new ExpressionParser to replace the old hack language
...
This contains a new, hand-written expression parser to replace the old
hack language based on string munging. The new approach is a simple
AST-based evaluation approach, instead of the "list of operations"
infix-based hack that there was before.
The new language for configuration has support for parentheses, and
counts "!" as a unary operator instead of the binary "NOT OR" operator
it was before. A simple example:
(X & Y) | !B
Explicit device references, and complex device names ("Right Y+") are
handled with backticks and colons:
(`SDL/0/6 axis joystick:Right X+` & `DInput/0/Keyboard Mouse:A`)
The basic editor UI that inserts tokens has not been updated to reflect
the new language.
2013-06-25 00:58:30 -04:00
Jasper St. Pierre
877106b027
InputCommon: Split Device stuff out
...
The ExpressionParser needs this to be out of here to prevent issues
with cyclic references.
2013-06-25 00:58:30 -04:00