Commit graph

9723 commits

Author SHA1 Message Date
Fiora
4ec8f83a1a JIT: fix branch merging with bclr 2014-09-05 13:58:06 -07:00
lioncash
3e0c04a83e Common: Fix a potential infinite loop in ReplaceAll
Prior to this change, it was possible to cause an infinite loop by making the string to be replaced and the replacing string the same thing.

e.g.

std::string some_str = "test";
ReplaceAll(some_str, "test", "test");

This also changes the replacing in a way that doesn't require starting from the beginning of the string on each replacement iteration.
2014-09-05 15:12:17 -04:00
shuffle2
674494e472 Merge pull request #980 from rohit-n/remove-dead-code
Remove dead code.
2014-09-05 11:09:04 -07:00
shuffle2
0576046fdd Merge pull request #972 from Sonicadvance1/fix-intel-windows
Work around Intel's failings with buffer_storage
2014-09-05 11:06:49 -07:00
Fiora
801153301f Remove debug printf from earlier commit 2014-09-05 10:31:29 -07:00
Fiora
07e0c917c6 Revert "JIT64: optimize CA calculations" 2014-09-05 10:26:30 -07:00
Rohit Nirmal
cf8d1c9197 FileHandlerARC: Remove FileHandlerARC. 2014-09-05 12:53:41 -04:00
Rohit Nirmal
a3d9b22c27 BannerLoaderWii: Removed #if 0'd code. 2014-09-05 12:52:29 -04:00
comex
97420c6ec6 Merge pull request #852 from FioraAeterna/optimizeca
JIT64: optimize CA calculations
2014-09-05 11:52:02 -04:00
comex
aa1df21bb6 Merge pull request #947 from FioraAeterna/rsqrte
JIT: implement frsqte
2014-09-05 11:48:00 -04:00
comex
e7f03dd066 Merge pull request #948 from comex/vao-fix
Don't switch to a vertex array object of 0.
2014-09-05 11:46:28 -04:00
comex
d4b1d42a21 Merge pull request #975 from FioraAeterna/jittimerinline
JIT: completely inline timer reading
2014-09-05 11:45:22 -04:00
shuffle2
3d88dfbad9 Merge pull request #701 from LPFaint99/memcard
GCI Folder: try to reserve space for new saves from the current game
2014-09-04 23:02:23 -07:00
shuffle2
ee450acb54 Merge pull request #973 from rohitnirmal/remove-using-namespace
Controller Interface: Remove "using namespace" in header file.
2014-09-04 22:58:22 -07:00
Ryan Houdek
30fef298bb Revert "Don't sleep in the event thread" 2014-09-05 00:50:40 -05:00
Fiora
2f9e9bf1fc JIT: completely inline timer reading
Should be a bit faster on games that heavily use the timer.
2014-09-04 21:55:36 -07:00
Rohit Nirmal
b0060e5184 Controller Interface: Remove "using namespace" in header file. 2014-09-04 23:02:25 -05:00
LPFaint99
e6e50ee621 GCI Folder: try to leave 10% of the blocks free. only applies if the save is not for the current game 2014-09-04 20:59:38 -07:00
shuffle2
a9a6270982 Merge pull request #774 from magcius/texdecode-cleanup
Clean up the TextureDecoder and some related things
2014-09-04 19:37:49 -07:00
shuffle2
fb3a668767 Merge pull request #974 from lioncash/wiki-links
DolphinWX: Simplify wiki link construction
2014-09-04 19:35:28 -07:00
shuffle2
9c41b17b41 Merge pull request #945 from MikeRavenelle/inputConfig
Edit Auto iterate through configuration inputs with toggle
2014-09-04 19:34:01 -07:00
shuffle2
f09978ddeb Merge pull request #896 from magcius/event-thread-bozo
Don't sleep in the event thread
2014-09-04 19:33:49 -07:00
Jasper St. Pierre
76b4dbdf28 TextureDecoder: Clean up the code style
For a long time, we've had ugly and inconsistent function names here as
helpers, names like "decodebytesRGB5A3rgba" which are absolutely
incomprehensible to understand. Fix this by introducing a new consistent
naming scheme, where the above function now becomes "DecodeBytes_RGB5A3".
2014-09-04 18:36:57 -07:00
Jasper St. Pierre
0b7bed4a52 TextureDecoder: Simplify how the reference texture decoder works
Instead of having three separate functions and checking the tlutfmt in a
variety of places, just do it once in a helper method. This is already
for the slow path either in our Generic decoder or in our Software
renderer, so it doesn't matter that this is slower.

x64 will continue using the separate functions for speed.
2014-09-04 18:36:57 -07:00
Jasper St. Pierre
ea1245d191 TextureDecoder: Pass the TLUT address straight into the texture decoder
This removes the requirement for the TextureDecoder to have access to
global texture memory.
2014-09-04 18:36:57 -07:00
Jasper St. Pierre
fcd4ecc942 TextureDecoder: Add an enum for the TLUT formats
Quick code cleanup. The enum names and values come from libogc.
2014-09-04 18:36:56 -07:00
Jasper St. Pierre
32da01edec TextureDecoder: Rearrange header slightly
Put the two Decode APIs together.
2014-09-04 18:36:56 -07:00
Jasper St. Pierre
f975307016 TextureDecoder: Add some statics to some of our helper functions
I know these are already inline, but this makes it more clear that
they're helper functions to be used in this file only.
2014-09-04 18:36:56 -07:00
Jasper St. Pierre
a8e591dc73 VideoCommon: Remove support for decoding to ARGB textures
The D3D / OGL backends only ever used RGBA textures, and the Software
backend uses its own custom code for sampling. The ARGB path seems to
just be dead code.

Since ARGB and RGBA formats are similar, I don't think this will make
the code more difficult to read or unable to be used as
reference. Somebody who wants to use this code to output ARGB can simply
modify the MakeRGBA function to put the shift at the other end.
2014-09-04 18:36:56 -07:00
Jasper St. Pierre
9438a30384 VideoCommon: Start putting common texture decoding code in TextureDecoder_Common
This pulls all the duplicate code from TextureDecoder_Generic /
TextureDecoder_x64 out and puts it in a common file. Out custom font
used for debugging the texture cache is also pulled out and put in a
common "sfont.inc" file. At some point we should also combine this font
with the other six binary fonts we ship.
2014-09-04 18:36:53 -07:00
Lioncash
6369173981 DolphinWX: Simplify wiki link construction 2014-09-04 21:30:33 -04:00
skidau
73fc45db68 Merge pull request #967 from skidau/SyncGPU-SaveState
Added the EmuRunningState check to the GPU thread's FIFO loop
2014-09-05 11:24:46 +10:00
Jasper St. Pierre
bfb2c04ace TextureDecoder: Remove unused function
GetPC_TexFormat was never used. It was added in commit d02426a, with the
only user being commented out code. The commented out code was later
removed in 9893122, but the implementation stayed.
2014-09-04 17:32:06 -07:00
Jasper St. Pierre
6682a2fadd TextureDecoder: Fix a RGBA/BGRA copy/paste typo
We were decoding to BGRA32 textures in our RGBA32 texture decoder. Since
this is the same for the BGRA32 decoder implementation, this is most
likely a copy/paste typo, rather than the texture actually being
bit-swapped. Fix this.

I'm not sure of any games that use the C14X2 texture format, so I'm not
sure this fixes any games, but it does make the code cleaner for when we
clean it up in the future, and merge some of these similar loops.
2014-09-04 17:30:53 -07:00
Jasper St. Pierre
a5297f6da8 PixelEngine: Remove unused AllowIdleSkipping and all references to it 2014-09-04 17:25:59 -07:00
Jasper St. Pierre
5cb5a6ecd2 Don't sleep in the event thread
The person who wrote this seemed to misunderstand how XPending and
XNextEvent actually work. XNextEvent will wait in poll if there's
no event yet, meaning that we don't need to sleep after we process
all the events; the kernel will sleep for us.

This changes indentation, so view with -w or a similar feature to
understand what's actually changed here.
2014-09-04 17:24:51 -07:00
MikeRavenelle
411c060504 Checkbox for iteration
Added the option to handle whether the user wants to iterate through the
assignment of button mappings or assign them one at a time.

fixed formatting issues and code style.

I excluded this option from the config file. This stopped the check box value and the boolean from becoming offset. Since the option should always start as false.

 This still causes an issue with the Wiimote input, since the class variable that keeps the state will be wiped, but the check box value will stay the same after closing/reopening without closing the entire Wiimote configuration. I am looking for a way to resolve this.

I also reduced wait time to 2.5 seconds vs. the 5  seconds previously. Seemed to be a little long.

These changes apparently did not go through.

This should fix the Wiimote issue.
2014-09-04 19:23:04 -05:00
MikeRavenelle
ffa6572116 Auto iterate through configuration inputs
Allows user to map all inputs seamlessly without having to
click on each button.
Also increased button timeout to 5 seconds from 1.5 due to pita.

Motion controls are not included since they will be special cases.
2014-09-04 19:05:52 -05:00
Sonicadvance1
e32b2e1771 Work around Intel's failings with with buffer_storage 2014-09-04 19:03:49 -05:00
Yuriy O'Donnell
d8d9bc8c6c Render: Implemented simple render target pool
This avoids creating and destroying render targets every frame,
which is a significant CPU overhead.

Old render targets are destroyed after 3 frames.
2014-09-04 22:21:06 +02:00
Dolphin Bot
830a03c540 Merge pull request #957 from degasus/frame_skipping
VideoCommon: rewrite frame skipping code
2014-09-04 18:27:19 +02:00
shuffle2
af7881474e Merge pull request #958 from degasus/xf_cleanup
VideoCommon: remove XFReg copy optimization
2014-09-04 09:22:19 -07:00
degasus
8b84ddce9a VideoCommon: rewrite frame skipping code 2014-09-04 18:07:39 +02:00
degasus
ef6f6a7fa9 VideoCommon: remove XFReg copy optimization
This code is just ugly and I doubt there is a way that copying twice is faster.
2014-09-04 17:56:17 +02:00
shuffle2
127fc1bdc1 Merge pull request #965 from FioraAeterna/srawixzero
JIT: remove srawix fallback
2014-09-04 08:44:33 -07:00
shuffle2
b5e18993f9 Merge pull request #964 from RachelBryk/typo
Fix a typo introduced by 5adbc83 in ControllerEmu.cpp.
2014-09-04 08:42:22 -07:00
lioncash
9f48f02514 Core: Make the tables in ARDecrypt.cpp static 2014-09-04 09:29:34 -04:00
skidau
b2c743157d Merge pull request #969 from lioncash/windows-stuff
Common: Remove unused header from Thread.cpp
2014-09-04 23:22:52 +10:00
lioncash
bd91e8b0c8 Common: Remove unused header from Thread.cpp
This define isn't even used in the Windows builds.
2014-09-04 09:15:18 -04:00
lioncash
4b329a0a75 Core: Fix variable prefixing of statics in Core.cpp
These aren't globals.
2014-09-04 08:26:15 -04:00
skidau
86db0bf8c3 Added the EmuRunningState check to the GPU thread's FIFO loop so that the GPU thread services any waiting save states. This is needed for games that have the Sync GPU option enabled. 2014-09-04 22:02:21 +10:00
Rachel Bryk
1cc153b4ed Fix a typo introduced by 5adbc83 in ControllerEmu.cpp. 2014-09-04 05:00:53 -04:00
Rachel Bryk
345b608d64 Change IniFile::Section::Set() with default value to use a template. 2014-09-04 03:29:49 -04:00
Fiora
a63b9f6713 JIT: remove srawix fallback
As far as I can tell, this has literally been here since the start of the git
history; maybe it was stubbed out because the author wasn't sure it was right?

It matches the PPC/Broadway manuals perfectly, though.
2014-09-03 23:39:52 -07:00
LPFaint99
f6d89c5c98 GCI Folder: if there are too many files in the folder, try to leave free directory entries.
Rule: Load first 112 files, any remaining files in the folder are ignored unless they are the same gameid as the current game
2014-09-03 21:15:41 -07:00
shuffle2
46c18aa909 Merge pull request #836 from lioncash/initlist
Core: Initialize all JITIL RegInfo members in the initializer list.
2014-09-03 21:03:48 -07:00
shuffle2
329410074c Merge pull request #962 from lioncash/casing
OGL: Fix constant casing in RasterFont.
2014-09-03 21:03:29 -07:00
Rohit Nirmal
732bb7beb1 Change NULL to nullptr. 2014-09-03 22:22:12 -05:00
Lioncash
956b0708b4 Core: Initialize all JITIL RegInfo members in the initializer list. 2014-09-03 23:06:05 -04:00
Lioncash
cf390ba537 OGL: Make rasters 2D array static in RasterFont 2014-09-03 22:59:13 -04:00
Lioncash
89557f6c2f OGL: Fix constant casing in RasterFont 2014-09-03 22:59:05 -04:00
shuffle2
4fcb633df5 Merge pull request #961 from RachelBryk/logs
Read the config file before enabling logs.
2014-09-03 17:20:11 -07:00
Rachel Bryk
22d2c7d053 Read the config file before enabling logs. 2014-09-03 19:50:02 -04:00
shuffle2
1f6f01e2a0 Merge pull request #955 from skidau/geckocodes-mmio
Added code to patch the codehandler's MMIO address
2014-09-03 15:33:57 -07:00
shuffle2
05cd06539b Merge pull request #960 from lioncash/preproc-stuff
Common: Make TITLEID_SYSMENU a static const variable in NandPaths.h
2014-09-03 15:22:32 -07:00
shuffle2
29ef22fd81 Merge pull request #871 from shuffle2/hide-menubar
Re-implement hiding of the menubar in fullscreen with render to main.
2014-09-03 15:21:33 -07:00
Dolphin Bot
7a18add39f Merge pull request #959 from FioraAeterna/fixtimer
JIT: fix regression in timer patch
2014-09-04 00:20:28 +02:00
lioncash
a687cc556b Common: Make TITLEID_SYSMENU a static const variable in NandPaths.h 2014-09-03 18:03:23 -04:00
skidau
0da22d687d Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin). 2014-09-04 07:44:45 +10:00
Fiora
068b5c26f4 JIT: fix regression in timer patch 2014-09-03 14:36:38 -07:00
Fiora
1b50f9df14 JIT: implement fres
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 12:15:30 -07:00
Fiora
c72a133206 JIT: implement frsqrte
Mostly a straightforward translation of the interpreter code, with a few
tricksy optimizations and fallbacks for rare paths.
2014-09-03 11:21:04 -07:00
Dolphin Bot
e1248599eb Merge pull request #868 from FioraAeterna/bmi
x64Emitter: add BMI1/BMI2 support
2014-09-03 19:24:27 +02:00
lioncash
f69e6ef16f Common: Remove unnecessary define check in Log2 2014-09-03 13:04:48 -04:00
Fiora
5088a2b4e2 x64Emitter: add BMI1/BMI2 support
TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.

Also add some tests.
2014-09-03 10:04:01 -07:00
skidau
08715167a8 Added code to patch the codehandler's MMIO address to the currently running system. Added code to detect the location of where the code list should be. This allows any Gecko code handler to be used. Replace the codehandler.bin file with the code handler to be used (e.g. codehandleronly.bin). 2014-09-04 00:48:52 +10:00
Shawn Hoffman
fd2343e431 Re-implement hiding of the menubar in fullscreen with render to main. 2014-09-03 03:02:13 -07:00
shuffle2
46c1a0f03b Merge pull request #733 from lioncash/readability
DolphinWX: More readable variable names in BreakpointView
2014-09-03 01:28:17 -07:00
Shawn Hoffman
30dd2809a7 Prevent changing adapters during emulation and VideoConfigDiag cleanup
Author: https://github.com/Anti-Ultimate/dolphin
2014-09-03 00:35:23 -07:00
Dolphin Bot
6e2b873ec1 Merge pull request #781 from RachelBryk/ControlState
Change ControlState typedef to double, and change all related floats/dou...
2014-09-03 09:15:51 +02:00
shuffle2
db84a22109 Merge pull request #770 from lioncash/panic
Core: Fix case where a panic alert wouldn't be shown in MemoryUtil.cpp
2014-09-03 00:10:12 -07:00
Rachel Bryk
5adbc83453 Change ControlState typedef to double, and change all related floats/doubles to use it.
Fixes an off by 1 issue related to double->float->double conversion, and eliminates numerous warnings.
2014-09-03 03:08:09 -04:00
comex
64575d565a Merge pull request #923 from FioraAeterna/fixcallersave
JIT: Fix caller-save registers on WIN64
2014-09-03 02:27:44 -04:00
Dolphin Bot
e2dfa603a0 Merge pull request #891 from RachelBryk/netplay-time
Allow system time to move forward during netplay.
2014-09-03 08:26:51 +02:00
comex
51a5311d6a Merge pull request #949 from comex/eviction-policy
Evict registers from the cache based on LRU.
2014-09-03 02:22:45 -04:00
shuffle2
50879f5624 Merge pull request #905 from RachelBryk/status-bar-messages
Add OSD messages back to status bar.
2014-09-02 23:21:58 -07:00
shuffle2
de71db4864 Merge pull request #925 from shuffle2/xbcd-compat
Revert changes to how DInput filters out XInput devices.
2014-09-02 23:21:47 -07:00
shuffle2
532b7bb7da Merge pull request #893 from rohitnirmal/scan-build-fixes
Scan build fixes
2014-09-02 23:15:18 -07:00
shuffle2
d20f5fb861 Merge pull request #946 from ChuckRozhon/fix_cast_bug
Fixed bug introduced in PR#803 caused by casting
2014-09-02 22:58:53 -07:00
shuffle2
5468b535c1 Merge pull request #941 from FioraAeterna/eaxemit
x64Emitter: add support for shorter EAX forms of instructions
2014-09-02 22:54:53 -07:00
Ryan Houdek
1ad1a9062a Remove PowerPCState::DebugCount.
This value was "helpful" for debugging when the stack got corrupted.
Helpful that if gpr[1](Which is the stack pointer with PPC ABI) is zero then the interpreter would spam huge amounts of annoy text saying that we
managed to get in to a "corrupted" state.
This is incremented every instruction on the interpreter, or every block run on the JIT64....Only if debugging is enabled(JIT64 it is a const
variable)
The message is only outputted when interpreter is used and debugging is enabled.
2014-09-03 00:26:57 -05:00
comex
f5c7f676dc Evict registers from the cache based on LRU.
The old method would always evict the first suitable register, i.e. the
same register every time once the cache got full.  The cache doesn't get
terribly often, but the result is pathological...
2014-09-03 01:06:14 -04:00
Dolphin Bot
fa29b18e3e Merge pull request #840 from FioraAeterna/jittimer
JIT: implement timer support in mtspr
2014-09-03 07:01:20 +02:00
Fiora
9e4419e786 x64Emitter: add support for shorter EAX forms of instructions
Should save a few bytes of code size here and there.
2014-09-02 21:52:41 -07:00
Fiora
6875d911f1 JIT: merge paired timebase reads where possible
Combined with the previous patch, ~1% faster overall on F-Zero GX.
2014-09-02 21:49:24 -07:00
Fiora
816d056657 JIT: implement timer support in mtspr
Faster, of course, since we avoid the interpreter, but also means we can
get more a more accurate timer in long blocks by adding the offset from the
start of the block to the retrieved timer. I don't know if this will actually
fix any issues, but it's more correct and a nearly-free improvement.
2014-09-02 21:47:45 -07:00
comex
b48e059173 Don't switch to a vertex array object of 0.
This causes glDrawArrays to fail in core profile, and thus on OS X, see:

http://renderingpipeline.com/2012/03/attribute-less-rendering/

There must be something bound, even though it is not used.

Fixes #7599.  I'm not sure this is actually the best way to fix it,
since AFAICT it makes a nonobvious assumption that *something* will be
bound before the first attributeless rendering in
TextureConverter::DecodeToTexture, but it's what degasus suggested and
seems to work.
2014-09-03 00:10:45 -04:00
comex
dd5be7c0dc Merge pull request #924 from comex/fifo-command-runnable
Refactor opcode decoding a bit to kill FifoCommandRunnable.
2014-09-02 23:27:30 -04:00
Charles Rozhon
0e5fde52ac Fixed bug introduced in PR#803 caused by casting
Also changed casts to C++ style casts to removed some of the ambiguity.
2014-09-02 21:50:43 -05:00
Ryan Houdek
1bc246735b Add some static_asserts to the Arm32 JIT to make sure ppcState is sane. 2014-09-02 18:38:42 -05:00