Commit graph

6502 commits

Author SHA1 Message Date
Lioncash 65572a0fb8 yuzu: Remove usage of the global telemetry accessor
In these cases the system object is nearby, and in the other, the
long-form of accessing the telemetry instance is already used, so we can
get rid of the use of the global accessor.
2019-03-17 23:17:57 +01:00
Lioncash d37a2fb9e6 yuzu-cmd/yuzu: Replace direct usage of the global system telemetry accessor in main()
We already have the system instance around, so we can use that instead
of the accessor.
2019-03-17 23:17:57 +01:00
Lioncash 6f251a6db2 core/core: Replace direct usage of the global system telemetry accessor from Shutdown()
The telemetry instance is actually a member of the class itself, so we
can access it directly instead of going through the global accessor.
2019-03-17 23:17:57 +01:00
Lioncash 592ec9b084 logging/backend: Make time_origin a class variable instead of a local static
Moves local global state into the Impl class itself and initializes it
at the creation of the instance instead of in the function.

This makes it nicer for weakly-ordered architectures, given the
CreateEntry() class won't need to have atomic loads executed for each
individual call to the CreateEntry class.
2019-03-17 23:17:57 +01:00
Lioncash 235fc348af logging/backend: Move CreateEntry into the Impl class
This function is only ever used within this source file and makes it
easier to remove static state in the following change.
2019-03-17 23:17:57 +01:00
Weiyi Wang 29c3d72940
Merge pull request #4678 from wwylele/mii-archive
archive_ncch: add open source mii archive
2019-03-17 15:54:28 -04:00
Lioncash c47c24bbd2 common/bit_field: Make BitField trivially copyable
This makes the class much more flexible and doesn't make performing
copies with classes that contain a bitfield member a pain.

Given BitField instances are only intended to be used within unions, the
fact the full storage value would be copied isn't a big concern (only
sizeof(union_type) would be copied anyways).

While we're at it, provide defaulted move constructors for consistency.
2019-03-16 04:10:03 +01:00
xperia64 fa0919915c Fix GLES version header on picky drivers 2019-03-15 23:32:29 +00:00
xperia64 224142a57e Fix getopt on systems where char is unsigned by default 2019-03-15 23:19:24 +00:00
Weiyi Wang 4696b13170
UDS: I was drunk 2019-03-15 00:35:39 -04:00
Weiyi Wang 1fbda5518e
Merge pull request #4684 from liushuyu/fix_freeze
frontend: qt: fix a freeze issue
2019-03-14 16:07:54 -04:00
Weiyi Wang fd7730e7c8
Merge pull request #4575 from BreadFish64/android6
android: add logging
2019-03-14 16:00:59 -04:00
liushuyu 71b0eab85c
video_core: renderer_opengl: addressed comments...
use indexing to make code more concise; use const bool instead of bool
2019-03-14 10:58:29 -06:00
Weiyi Wang a986e35795 UDS: Change reply command ID for two versions of ConnectToNetwork 2019-03-14 10:10:18 -04:00
liushuyu 476df9debf
video_core: renderer_opengl: addressed comments...
... removed incorrect comments and removed incorrect value calculations
2019-03-13 19:17:29 -06:00
Weiyi Wang 9c016ff3a3 Y2R: pass in MemorySystem from service 2019-03-13 10:23:58 -04:00
Weiyi Wang d6f3ac1f4e IR: pass in Core::Timing for ExtraHID 2019-03-13 10:23:58 -04:00
Weiyi Wang ea496507d5 DSP_DSP: use member system instead of global instance 2019-03-13 10:23:58 -04:00
liushuyu 164eb100eb video_core: renderer_opengl: addressed comments...
... removed redundant comments and removed incorrect value assignments
2019-03-12 22:56:11 -06:00
liushuyu 3983b12086
video_core: renderer_opengl: gles color fix 2019-03-12 22:28:54 -06:00
Weiyi Wang aaa599a849 UDS: duplicate DecryptBeaconData implementation for deprecated version
They are really identical in the NWM module code
2019-03-13 00:21:10 -04:00
Weiyi Wang 16fb6a2c8d UDS: implement ConnectToNetworkDeprecated and forward params to ConnectToNetwork 2019-03-13 00:03:51 -04:00
Weiyi Wang fc0fe5c3c0 UDS: devide IPC and impl for ConnectToNetwork 2019-03-13 00:03:51 -04:00
Weiyi Wang e121c59583 UDS: implement BeginHostingNetworkDeprecated and forward params to BeginHostingNetwork 2019-03-13 00:03:51 -04:00
Weiyi Wang 5353d539ce UDS: divide IPC and impl for BeginHostingNetwork 2019-03-12 23:00:18 -04:00
Weiyi Wang 1076864935 UDS: implement InitializeDeprecated and forward params to Initialize 2019-03-12 21:53:07 -04:00
Weiyi Wang 021c77bc9f UDS: divide IPC and impl for InitializeWithVersion 2019-03-12 21:50:14 -04:00
Weiyi Wang 8750b81ce0 ServiceFrameworkBase: remove ownership to ServerPort
This causes a reference cycle because ServerPort also holds a shared pointer to SessionRequestHandler (inherited by ServiceFrameworkBase). Given that the member port is never used in ServiceFrameworkBase, we can simply remove it. The port object is kept alive by ServiceManager|KernelSystem::named_ports -> ClientPort -> ServerPort
2019-03-12 19:11:50 -04:00
Weiyi Wang 54d2f16c22 core: reset kernel after service manager in Shutdown
Services can hold kernel objects and do cleanup upon destruction, so we need to keep the kernel alive longer. The new order approximnately resembles the reverse construction order. I will revisit the ordering issue and make it less error-prone after global state cleanup
2019-03-12 19:06:20 -04:00
liushuyu ca46b4c3e2
frontend: qt: fix a freeze where...
... if you click on entry in the game list too fast, citra will hang
2019-03-12 13:35:33 -06:00
fearlessTobi ff3d7532c9 nfc: Improve implementation of GetAmiiboConfig
When making the initial implementation, I forgot to add the series variable to the AmiiboConfig struct.
With this PR it is added and many of the AmiiboConfig fields get their proper values now.
The loading of the Amiibo data that is added here has been hwtested.

This fixes Amiibos in Yoshis Woolly World, Smash (partially) and probably other games too.
2019-03-12 19:08:01 +01:00
BreadFish64 36e368ff99 remove Common::TrimSourcePath
wwylele / 白疾風Today at 6:14 PM
I doubt the performance of constructing regex everytime the function is called
Is TrimSourcePath only called by logging? if so, you can move the implementation into logging, and cache the regex object into global
This function is probably too specific to be in common anyway
2019-03-10 19:18:09 -05:00
Weiyi Wang 6ce58248b0 APT: use member system instead of global instance 2019-03-10 11:10:24 -04:00
Weiyi Wang 88a011ec8e GetTextureSurface: return on invalid physical address early
Previously this check is in GetSurface (if (addr == 0)). This worked fine because GetTextureSurface directly forwarded the address value to GetSurface. However, now with mipmap support, GetTextureSurface would call GetSurface several times with different address offset, resulting some >0 but still invalid address in case the input is 0. We should error out early on invalid address instead of sending it furthor down which would cause invalid memory access
2019-03-10 11:06:08 -04:00
BreadFish64 605dfe80e7 appease clang format 2019-03-09 19:15:35 -06:00
BreadFish64 f767b5fdef android: add logging 2019-03-09 18:23:32 -06:00
BreadFish64 9848610ea2 android: init user path 2019-03-09 18:23:27 -06:00
Weiyi Wang 36ae10f555 archive_ncch: add open source mii archive 2019-03-09 08:19:32 -05:00
wwylele ebdef4fd69 gl_rasterizer_cache: unlink watchers if surface is moved to remove_surfaces but is not immediately removed 2019-03-08 09:37:25 -05:00
wwylele 777af04f4a gl_rasterizer: ignore mipmap setting for cubemap before we implements it 2019-03-08 09:37:25 -05:00
wwylele d7196b5573 gl_rasterizer_cache: invalidate watchers on (partial) surface invalidation 2019-03-08 09:37:25 -05:00
wwylele fa141c799b gl_shader_gen: use accurate LOD formula for texture 2D 2019-03-08 09:37:25 -05:00
wwylele ca78d34933 gl_rasterizer: implement mipmap 2019-03-08 09:37:24 -05:00
Dimitri A acaca4188e gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB. (#4651)
* gdbstub: fix IsMemoryBreak() returning false while connected to client

As a result, the only existing codepath for a memory watchpoint hit to break into GDB (InterpeterMainLoop, GDB_BP_CHECK, ARMul_State::RecordBreak) is finally taken,
which exposes incorrect logic* in both RecordBreak and ServeBreak.

* a blank BreakpointAddress structure is passed, which sets r15 (PC) to NULL

* gdbstub: DynCom: default-initialize two members/vars used in conditionals

* gdbstub: DynCom: don't record memory watchpoint hits via RecordBreak()

For now, instead check for GDBStub::IsMemoryBreak() in InterpreterMainLoop and ServeBreak.

Fixes PC being set to a stale/unhit breakpoint address (often zero) when a memory watchpoint (rwatch, watch, awatch) is handled in ServeBreak() and generates a GDB trap.

Reasons for removing a call to RecordBreak() for memory watchpoints:
* The``breakpoint_data`` we pass is typed Execute or None. It describes the predicted next code breakpoint hit relative to PC;

* GDBStub::IsMemoryBreak() returns true if a recent Read/Write operation hit a watchpoint. It doesn't specify which in return, nor does it trace it anywhere. Thus, the only data we could give RecordBreak() is a placeholder BreakpointAddress at offset NULL and type Access. I found the idea silly, compared to simply relying on GDBStub::IsMemoryBreak().

There is currently no measure in the code that remembers the addresses (and types) of any watchpoints that were hit by an instruction, in order to send them to GDB as "extended stop information."
I'm considering an implementation for this.

* gdbstub: Change an ASSERT to DEBUG_ASSERT

I have never seen the (Reg[15] == last_bkpt.address) assert fail in practice, even after several weeks of (locally) developping various branches around GDB.  Only leave it inside Debug builds.
2019-03-08 00:09:06 -05:00
bunnei c3e6610807
Merge pull request #4627 from FearlessTobi/cia-install-short
citra_qt: when opening a cia file directly, make Citra ask to install it
2019-03-07 23:55:58 -05:00
bunnei 9560060f04
Merge pull request #4666 from FearlessTobi/port-2167
Port yuzu-emu/yuzu#2167: "common: Move Quaternion, Rectangle, Vec2, Vec3, and Vec4 into the Common namespace"
2019-03-07 23:52:42 -05:00
James Rowe f5b86cff52 Clang-format 2019-03-06 22:43:35 -07:00
James Rowe f5df13eb24 Remove global state and add mic hot swapping 2019-03-06 20:59:58 -07:00
James Rowe 182d672c15 Add ifdef around cubeb for android. Address a few review comments 2019-03-06 20:03:22 -07:00
James Rowe 5c61d53047 Fix compiler error 2019-03-06 11:30:23 -07:00
James Rowe ba4dfe4217 Increase mic stream volume to max in case the users mic is set low for some reason 2019-03-06 11:17:32 -07:00
James Rowe 5f532c2560 Address review comments 2019-03-06 11:16:43 -07:00
fearlessTobi 2999c8325e archive_extsavedata: add correct FileOpen delays 2019-03-06 18:53:44 +01:00
fearlessTobi 5055a6c262 Address review comments 2019-03-06 18:53:34 +01:00
James Rowe 5954dc11ba
Merge pull request #4669 from wwylele/rpc-server-freeze
rpc: send ending packet in Server instead of UDPServer
2019-03-06 09:11:04 -07:00
fearlessTobi fc7e6c9cc9 fs_user: Add a delay for each file open 2019-03-06 16:09:24 +01:00
Weiyi Wang d0de727a97
Merge pull request #4668 from wwylele/swkbd-size
applet/swkbd: use UTF-16 string to test string size
2019-03-05 12:23:54 -05:00
Pengfei Zhu 3ea30fe2b3
Merge pull request #4610 from zhaowenlan1779/cheats-ui
Implement UI for adding/editing/deleting cheats
2019-03-05 22:07:40 +08:00
James Rowe c669aa8d55 Rest of the owl 2019-03-04 23:07:05 -07:00
fearlessTobi 5c9e327ff3 Fix 2019-03-04 23:07:05 -07:00
James Rowe 7fccc995ce Initial Mic setup 2019-03-04 23:06:42 -07:00
Weiyi Wang b3261472fe
Merge pull request #4665 from FearlessTobi/port-yuzu-stuffz
Port various minor PRs from yuzu
2019-03-04 12:36:10 -05:00
Weiyi Wang 9c57b74907
Merge pull request #4618 from wwylele/fs-clean
FS: pass down program ID for archive operation (cleanup System::GetInstance part 3)
2019-03-04 12:34:54 -05:00
Weiyi Wang 870579d38f rpc: send ending packet in Server instead of UDPServer
udp_server might not be created due to error (occupied port etc.), in which case its destructor and thread-ending call chain will not be excuted in Server::Stop. However, the ending packet still need to be send no matter udp is on or not, so move it to Server::Stop
2019-03-04 11:05:07 -05:00
Weiyi Wang 47ed3f4db5 applet/swkbd: use UTF-16 string to test string size
Also removed a TODO as it is verified that max_text_length is inclusive (allows size = max_text_length)
2019-03-04 10:33:23 -05:00
Lioncash e1a4912ade common/math_util: Move contents into the Common namespace
These types are within the common library, so they should be within the
Common namespace.
2019-03-02 18:13:10 +01:00
Lioncash 643472e24a common/vector_math: Move Vec[x] types into the Common namespace
These types are within the common library, so they should be using the
Common namespace.
2019-03-02 15:04:13 +01:00
Lioncash db58652680 common/quaternion: Move Quaternion into the Common namespace
Quaternion is within the common library, so it should be using the
Common namespace.
2019-03-02 14:44:09 +01:00
Lioncash d354a2ee3b audio_core/codec: Resolve truncation warnings within DecodeADPCM
The assignments here were performing an implicit truncation from int to
s16. Make it explicit that this is desired behavior.
2019-03-02 14:06:30 +01:00
Lioncash f322c51a63 core/frontend/emu_window: Make ClipToTouchScreen a const member function
This member function doesn't modify instance state, so it can have the
const specifier applied to it.
2019-03-02 14:06:09 +01:00
Lioncash 6149be43cf yuzu/compatdb: Remove unused lambda capture
Silences a compiler warning with clang.
2019-03-02 14:04:13 +01:00
Weiyi Wang ad1cfc8d50
Merge pull request #4608 from wwylele/sharedmem-circular
Kernel/SharedMemory: make owner_process a raw pointer
2019-02-25 10:32:45 -05:00
Weiyi Wang 93275d752b
Merge pull request #4645 from FearlessTobi/port-2116
Port yuzu-emu/yuzu#2116: "threadsafe_queue: Remove NeedSize template parameter"
2019-02-25 10:25:11 -05:00
Weiyi Wang 206413ba7b
Merge pull request #4630 from wwylele/memory-no-lock
Memory: don't lock hle mutex in memory read/write
2019-02-25 10:23:23 -05:00
Weiyi Wang 5f10cc412f
Merge pull request #4632 from zhaowenlan1779/socu
service/soc_u: Implement getaddrinfo and getnameinfo
2019-02-25 10:23:13 -05:00
Weiyi Wang fdb5a8c2df
Merge pull request #4629 from FearlessTobi/bunnei-fooled-me
Port minor changes for BitField from yuzu
2019-02-25 10:22:44 -05:00
Weiyi Wang 42c777b0e5
Merge pull request #4617 from wwylele/hle-service-clean
HLE/IPC: clean up System::GetInstance
2019-02-25 10:22:13 -05:00
Weiyi Wang c265f3f507
Merge pull request #4616 from wwylele/core-global-clean
Cleanup System::GetInstance reference - Part 1
2019-02-25 10:22:02 -05:00
bunnei f8b3617394 bit_field: Remove is_pod check, add is_trivially_copyable_v. 2019-02-24 19:40:20 +01:00
bunnei e24c7a474c bit_field: Make all methods constexpr. 2019-02-24 19:39:15 +01:00
BreadFish64 28b2ee9cd7 add java to .clang-format 2019-02-22 16:29:19 -06:00
Weiyi Wang 5f80075c31
Merge pull request #4596 from CarlKenner/master
Fix mouse touchscreen in SBS 3D mode
2019-02-22 16:24:22 -05:00
Weiyi Wang 28e849cddb
Merge pull request #4598 from BreadFish64/user_path
common: decouple getting and setting user paths
2019-02-22 16:23:41 -05:00
Weiyi Wang b0a4220711
Merge pull request #4647 from FearlessTobi/fix-weird-bug
citra_qt/main: make SPEED_LIMIT_STEP static constexpr
2019-02-22 16:21:54 -05:00
Weiyi Wang 8f2bd97277
Merge pull request #4655 from tgsm/gcc-version
Remove GCC version checks
2019-02-22 16:21:21 -05:00
fearlessTobi c357531acb citra_qt/main: make SPEED_LIMIT_STEP static constexpr
MSVC does not seem to like using constexpr values in a lambda that were declared outside of it.
Previously on MSVC build the hotkeys to inc-/decrease the speed limit were not working correctly because in the lambda the SPEED_LIMIT_STEP had garbage values.
After googling around a bit I found: https://github.com/codeplaysoftware/computecpp-sdk/issues/95 which seems to be a similar issue.
Trying the suggested fix to make the variable static constexpr also fixes the bug here.
2019-02-20 16:11:38 +01:00
Lioncash 0556cac37d threadsafe_queue: Use std::size_t for representing size
Makes it consistent with the regular standard containers in terms of
size representation. This also gets rid of dependence on our own
type aliases, removing the need for an include.
2019-02-20 16:05:22 +01:00
tgsm 433ab35e7e Remove GCC version checks
Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
2019-02-19 16:39:34 -05:00
Pengfei Zhu f6d0e43c77
Merge pull request #4654 from tgsm/video-nested
video_core: use nested namespaces
2019-02-19 21:44:38 +08:00
Pengfei Zhu 820e3893de
Merge pull request #4652 from tgsm/audio-nested
audio_core: use nested namespaces
2019-02-19 21:39:35 +08:00
tgsm d6c530d08c video_core: use nested namespaces 2019-02-19 03:09:57 -05:00
tgsm 39e163b7ce core: use nested namespaces 2019-02-18 20:34:18 -05:00
tgsm a400e49338 audio_core: use nested namespaces 2019-02-17 23:41:48 -05:00
Weiyi Wang f409342ab5
Merge pull request #4613 from BreadFish64/gles5
video_core: add GLES support
2019-02-17 15:44:39 -05:00
fearlessTobi 70653c6a87 citra_qt/config: actually save name of input profile
Fixes the issue where all input profiles had the name "default" after restarting Citra.
2019-02-16 21:41:51 +01:00
fearlessTobi 931895d9b0 citra_qt: when opnening a cia file directly, make Citra ask to install it 2019-02-16 17:18:19 +01:00
Lioncash 3bc78e577f threadsafe_queue: Remove NeedSize template parameter
The necessity of this parameter is dubious at best, and in 2019 probably
offers completely negligible savings as opposed to just leaving this
enabled. This removes it and simplifies the overall interface.
2019-02-15 22:00:44 +01:00
BreadFish64 d3d53bae83 common: decouple getting and setting user paths
paths -> g_paths
2019-02-15 14:48:31 -06:00
Weiyi Wang e6feef96c1 Service: clear IPC header for unimplemented function stub 2019-02-14 22:16:50 -05:00
Weiyi Wang 3f86be88f0 HLE/IPC: pass in kernel & memory reference from parent to avoid global state reference 2019-02-14 22:09:25 -05:00