1
0
Fork 0
Commit Graph

6227 Commits

Author SHA1 Message Date
Zak Kurka 1ded48f5a3 Merge branch 'master' of github.com:citra-emu/citra into ips-patches 2018-11-15 07:11:18 -06:00
Zak Kurka 896577044d Remove ApplyIPS from the class and header 2018-11-15 07:11:06 -06:00
BreadFish64 18771f1b61 add test dependencies 2018-11-13 19:54:33 -06:00
BreadFish64 65f033f856 android: create bare application 2018-11-13 19:54:33 -06:00
BreadFish64 8838485b1a android: add build files 2018-11-13 19:54:32 -06:00
BreadFish64 6b4c40ffd5 android: add basic resources 2018-11-13 19:50:43 -06:00
Weiyi Wang 9e8d149ca7 Memory: remove unused VirtualToPhysical 2018-11-13 11:56:05 -05:00
Weiyi Wang 1388a44c41 GSP: uses a dedicate VirtualToPhysical converter 2018-11-13 11:24:46 -05:00
Weiyi Wang 12daaeedf1 Memory: Use the fixed PAddr directly in RasterizerFlushVirtualRegion 2018-11-13 11:24:46 -05:00
Weiyi Wang 248106d972 Skyeye: unstub cp15 virtual to physical address 2018-11-13 11:24:46 -05:00
Weiyi Wang b1f55c9cab
Merge pull request #4429 from wwylele/io-size
Memory: IO area is at most 4MB
2018-11-13 11:09:14 -05:00
Tobias 34e1250ccc
citra_qt: Add Amiibo hotkeys, notify user of loading errors (#4387) 2018-11-13 14:58:05 +01:00
Weiyi Wang fe47243690
Merge pull request #4413 from wwylele/memory-global
Fix shared font addres; Remove global PhysicalToVirtualAddress
2018-11-13 00:14:24 -05:00
Weiyi Wang 194118011a Memory: IO area is at most 4MB 2018-11-12 15:12:12 -05:00
Weiyi Wang c57ee36222 SVC: hide details in pimpl 2018-11-12 13:59:34 -05:00
Weiyi Wang aec8b1e375 SVC: use context and generic templates 2018-11-12 13:59:34 -05:00
Weiyi Wang 28513c5177 ResultCode: use default copy assignment
Our definition of the copy assignment is equivalent to the default one, but prevents the type being trivially copyable
2018-11-12 13:59:34 -05:00
Weiyi Wang d373a6430d SVC: move function_wrappers.h into kernel
It is only used by kernel/SVC
2018-11-12 13:59:34 -05:00
Weiyi Wang 29ade3e610 Process: check source/target overlap for Map/Unmap 2018-11-11 12:39:05 -05:00
Weiyi Wang 3db8915356 ldr_ro: properly map CRS/CRO buffer 2018-11-11 12:39:05 -05:00
Weiyi Wang 617b388354 Kernel/Process: implement prvileged Map/Unmap
This is used by svcControlProcessMemory and maps memory as Locked/AliasCode pair.

Also fixed a bug where map didn't apply specified permissions to the alias memory
2018-11-11 12:39:05 -05:00
Ben f43524fff1
Merge pull request #4415 from wwylele/tls-state
Kernel: correct MemoryState for TLS
2018-11-11 17:53:18 +01:00
Weiyi Wang 3d73b8d694 Common/Bitfield: store value as unsigned type
Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift
2018-11-10 23:42:39 -05:00
Weiyi Wang 5179915fb4 filesys/ncch: prevent buffer overflow on calculating SHA256 2018-11-10 22:58:32 -05:00
Zach Hilman 31c394e9b5 qt: Add help option to open yuzu folder 2018-11-09 17:00:14 +01:00
Weiyi Wang d0edb81182 Memory: convert PAddr for N3DS FCRAM extension 2018-11-09 10:40:04 -05:00
Weiyi Wang 98ddea4ddd Kernel: correct MemoryState for TLS 2018-11-09 00:14:13 -05:00
Weiyi Wang 5325388e24 SVC: QueryMemory merges similar VMA 2018-11-08 20:42:21 -05:00
Weiyi Wang 2654a679b3 Memory: replace PhysicalToVirtualAddress with a more dedicated function
There is no external use of PhysicalToVirtualAddress any more, so it there is no need to have a generic function that handles all physical regions. Also, the previous APT change makes it possible that linear heap has some regions mapped to old and new VAddr regions at the same time, so we need to check both region and mark cached for the mapped one. RasterizerMarkRegionCached would skip the unmapped one in its loop
2018-11-08 00:19:57 -05:00
Weiyi Wang 8c65433ab5 Kernel, APT: SharedFont/SharedMemoryOnSharedDevice should always use old linear heap VAddr 2018-11-08 00:19:19 -05:00
Valentin Vanelslande 0f4a6e39c9
ldr_ro: change std::tie to structured binding 2018-11-07 13:38:52 -05:00
Weiyi Wang 1444d60109
Merge pull request #4400 from wwylele/core-timing-global
CoreTiming: wrap into class
2018-11-06 20:04:56 -05:00
Weiyi Wang 2067946f59
Kernel: reimplement memory management on physical FCRAM (#4392)
* Kernel: reimplement memory management on physical FCRAM

* Kernel/Process: Unmap does not care the source memory permission

What game usually does is after mapping the memory, they reprotect the source memory as no permission to avoid modification there

* Kernel/SharedMemory: zero initialize new-allocated memory

* Process/Thread: zero new TLS entry

* Kernel: fix a bug where code segments memory usage are accumulated twice

It is added to both misc and heap (done inside HeapAlloc), which results a doubled number reported by svcGetProcessInfo. While we are on it, we just merge the three number misc, heap and linear heap usage together, as there is no where they are distinguished.

Question: is TLS page also added to this number?

* Kernel/SharedMemory: add more object info on mapping error

* Process: lower log level; SharedMemory: store phys offset

* VMManager: add helper function to retrieve backing block list for a range
2018-11-06 15:00:47 -05:00
Weiyi Wang 9458e4d8ec CoreTiming: wrap into class 2018-11-04 10:26:38 -05:00
Weiyi Wang 2d9dfe5bce Kernel: thread manager still has to be destructed first 2018-11-04 09:29:28 -05:00
Weiyi Wang 57e1f47a52 Kernel: destruct thread/timer managers after processes (#4399)
Processes can keep some Thread/Timer object alive while the manager is already destructed, resulting use-after-free in Thread::Stop and Timer::dtor. To resolve this, the manager objects should be destructed after all related object destructed.
Fixes a bug where quiting citra causes crash while the game is using a Timer.
2018-11-04 10:24:37 +01:00
zhupengfei ab07d44193
citra_qt/configuration: fix language configuration issues 2018-11-03 09:34:01 +08:00
Weiyi Wang fc84091d88 Service, Kernel: move named port list to kernel 2018-11-01 12:56:40 -04:00
Weiyi Wang ece96807c4 Kernel: move memory_regions into Kernel instance 2018-11-01 12:56:40 -04:00
Weiyi Wang 263290d48c HLE: move SharedPage into Kernel
similar to config_mem, kernel is responsible for setting up this
2018-11-01 12:56:40 -04:00
Weiyi Wang 773ec47629 Kernel: make config_mem and MapSharedPages members of KernelSystem 2018-11-01 12:56:40 -04:00
Weiyi Wang 95790218f2 HLE: move config_mem to kernel
ConfigMem is initialized in kernel and only used by kernel. It is also likely how it works on real 3DS
2018-11-01 11:21:34 -04:00
Weiyi Wang a753b9c6cc
Merge pull request #4228 from NarcolepticK/lle-mapped-buffer
LLE Mapped Buffer: Add unmapping of write buffer, zero-size, and multiple page handling
2018-10-30 19:18:11 -04:00
Weiyi Wang 445538c2cf
Merge pull request #4371 from wwylele/kernel-global-3
Kernel: eliminate global state for threads and timers
2018-10-30 00:36:10 -04:00
Weiyi Wang 2183d0d6be core: use internal kernel pointer directly 2018-10-30 00:35:37 -04:00
Weiyi Wang bd4beb6558
Merge pull request #4386 from wwylele/codeset-class
Kernel/CodeSet: change struct to class
2018-10-30 00:30:50 -04:00
NarcolepticK c97146226a LLE Mapped Buffer: Addressed comments. 2018-10-29 18:35:34 -04:00
Weiyi Wang f63098ccdf Kernel/CodeSet: change struct to class
Fix a warning where class definition and forward declaration mismatch. CodeSet is a kernel object and have ctor/dtor/private members like others, so in convention it should be a class
2018-10-28 10:35:40 -04:00
Weiyi Wang 67888f92e5
Merge pull request #4348 from B3n30/native_firm_keys
Load keys from save mode native firm
2018-10-28 10:24:29 -04:00
bunnei 9d05fbbef4
Merge pull request #4369 from FearlessTobi/compat-new
compatdb: Use a seperate endpoint for testcase submission
2018-10-28 03:53:10 -04:00
bunnei 3219bdb30d
Merge pull request #4382 from FearlessTobi/reset-defaults
configure_general: Add an option to reset defaults
2018-10-28 03:52:10 -04:00
fearlessTobi 96ee82c464 configure_general: Add an option to reset defaults 2018-10-27 22:43:29 +02:00
fearlessTobi 6e6c437a52 applets: stub mii selector to always return a standard mii
To obtain the data, the LLEd mii selector of system version 11.8.0 was used.
In AppletManager::GlanceParameter, the following code was added to write the returned buffer data to a file:

    if (parameter.buffer.size() == 132) {
        std::u16string name(10, '\0');
        std::memcpy(name.data(), parameter.buffer.data() + 0x26, 10 * sizeof(u16));
        name = std::u16string(name.data());
        FileUtil::IOFile file{fmt::format("{}.mii", Common::UTF16ToUTF8(name)), "wb"};
        file.WriteBytes(parameter.buffer.data(), parameter.buffer.size());
    }

Then "xxd -i" was used on the file to convert it to a hex array.
2018-10-27 12:23:24 +02:00
fearlessTobi 236a7dba7e Move "Report compatibility" button to Emulation tab 2018-10-27 12:20:03 +02:00
fearlessTobi b7117bf050 compatdb: Use a seperate endpoint for testcase submission 2018-10-27 12:20:03 +02:00
Weiyi Wang 5b7d21c3cd FileSys/DelayGenerator: add missing #include and virtual dtor (#4363)
* FileSys/DelayGenerator: add missing #include and virtual dtor

Added the needed include so that it won't cause error if another file includes this without including the depended files

Deleting a virtual class via base type without virtual dtor is UB, which happens inFileBackend.

* FileSys/DelayGenerator: move function definition into cpp file/n/nTo avoid generating vtable in all units that includes the header file

* filesys/delay_generator: rearrange #include
2018-10-27 12:46:03 +08:00
Weiyi Wang fa46dbdf0b
Merge pull request #4376 from FearlessTobi/port-1571
Port yuzu-emu/yuzu#1571: "graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function"
2018-10-26 22:40:55 -04:00
Weiyi Wang 724b458a83
Merge pull request #4373 from FearlessTobi/port-1553
Port yuzu-emu/yuzu#1553: "common: Remove memory_util.h/.cpp"
2018-10-26 22:38:18 -04:00
Weiyi Wang f274340001
Merge pull request #4374 from FearlessTobi/frontend-ports
Port various frontend cleanups from yuzu
2018-10-26 22:38:07 -04:00
Weiyi Wang 477cda1a7e
Merge pull request #4364 from wwylele/gl-error-tr
citra_qt: fix translation for opengl version error
2018-10-26 22:37:47 -04:00
Weiyi Wang 59cb0ec570
Merge pull request #4359 from FearlessTobi/port-webstuff
web_service: Port yuzu-emu/yuzu#1465 and Port yuzu-emu/yuzu#1473 (Many self-contained changes)
2018-10-26 22:34:51 -04:00
fearlessTobi d28233961b Put WebResult into a seperate file 2018-10-27 00:39:02 +02:00
fearlessTobi 494d86d083 graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function
tr() will not function properly on static/global data like this, as the
object is only ever constructed once, so the strings won't translate if
the language is changed without restarting the program, which is
undesirable. Instead we can just turn the map into a plain old function
that maps the values to their equivalent strings. This is also lessens
the memory allocated, since it's only allocating memory for the strings
themselves, and not an encompassing map as well.
2018-10-27 00:33:31 +02:00
Lioncash 9f6c1b058a CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
This is more localized to what we want to enforce directory-wise with
the project. CMAKE_SOURCE_DIR indicates the root of the source tree, but
this would cause the wrong behavior if someone included yuzu as part of
a larger buildsystem (for whatever reason). Instead, we want to use the
directory where the "project(yuzu)" command was declared as the root
path reference.
2018-10-27 00:20:52 +02:00
fearlessTobi 446989aaaf common: Actually remove memory_util.cpp 2018-10-27 00:14:23 +02:00
Lioncash a74d97b15f configure_system: Default initialize member variables
These should be initialized to deterministic values so it's easier to
catch improper behavior, as it'll always be reproducable, instead of
performing uninitialized reads.
2018-10-27 00:02:27 +02:00
Lioncash 470cc66049 configure_system: Amend function casing 2018-10-27 00:00:43 +02:00
Lioncash 97cdf44ddd configure_system: Add missing override specifier on the destructor 2018-10-26 23:59:18 +02:00
Lioncash 452cfb46a9 configure_system: Make public slots private
These are only used within this class, so we can make them private to
keep their use contained. This also gets rid of the pre-Qt5 'slot'
identifier, since Qt 5's connection syntax doesn't require a function to
be declared a slot anymore.
2018-10-26 23:58:37 +02:00
Lioncash 027197cf1f bootmanager: Use QStringLiteral instead of std::string to represent the window title
This gets rid of an unnecessary type conversion. We can just use the
regular QStringLiteral to already format the string as the type
setWindowTitle accepts instead of converting from a std::string
instance.
2018-10-26 23:56:04 +02:00
Lioncash bf6dd78324 yuzu/configuration/config: Use a std::unique_ptr for qt_config instead of a raw pointer
Same behavior, less code.
2018-10-26 23:53:58 +02:00
Lioncash f4bd5c3559 yuzu/configuration/config: Reorganize member variable and function layout
Makes the class layout consistent with the others.
2018-10-26 23:52:25 +02:00
Lioncash 452ccf02a6 game_list: Make game list column headers translatable
These are user-facing strings, so they should be marked as translatable
2018-10-26 23:51:04 +02:00
Lioncash 0242d2b13a common: Remove memory_util.cpp/.h
Everything from here is completely unused and also written with the
notion of supporting 32-bit architecture variants in mind. Given the
Switch itself is on a 64-bit architecture, we won't be supporting 32-bit
architectures. If we need specific allocation functions in the future,
it's likely more worthwhile to new functions for that purpose.
2018-10-26 23:39:08 +02:00
Weiyi Wang e5b93741d3 kernel/timer: add TimerManager for timer system states 2018-10-26 16:07:45 -04:00
Weiyi Wang 20ae37ba4f kernel/Thread: move thread list into the manager 2018-10-26 16:07:45 -04:00
Weiyi Wang 7fc61920cc kernel/Thread: move thread wake up table and callback handle into the manager 2018-10-26 16:07:45 -04:00
Weiyi Wang 0478bc3dee Kernel/Thread: move thread queue, current thread, and scheduling related function into the manager
As we touched it, remove IPC::GetCommandBuffer
2018-10-26 16:07:11 -04:00
Weiyi Wang 876729ab52 kernel/thread: move next_thread_id into manager 2018-10-26 16:07:11 -04:00
Weiyi Wang 34f1fe088c kernel/thread: add ThreadManager 2018-10-26 16:07:11 -04:00
Weiyi Wang f3ee5feb02
Merge pull request #4358 from wwylele/kernel-global-2
kernel: Eliminate global state in process and handle_table
2018-10-26 15:51:36 -04:00
Weiyi Wang 8ad6cbfde2 kernel/thread: change owner_process parameter to reference
To enforce a valid process object
2018-10-26 09:37:46 -04:00
Weiyi Wang b4062abc11 cubeb_sink: ignore null-name device when selecting
We already ignore them on listing devices. We should do the same when selecting devices. This fix a crash when opening a specific device while there is a null device in the list
2018-10-26 09:17:44 -04:00
Weiyi Wang fa0e82b812
SeedDB: replace seek(tell, set) with seek(cur) (#4344) 2018-10-25 21:39:26 -04:00
Weiyi Wang e5c5d1ecce Kernel: change owner_process in Thread/SharedMemory to raw pointer
Otherwise circular ownership would form in Process->handle_table->thread->owner_process
2018-10-25 19:54:06 -04:00
Weiyi Wang 92b1a5c546 citra_qt: fix translation for opengl version error
variable in tr() won't trigger linguist to generate translation entry. Instead it needs a string literal
2018-10-25 14:30:46 -04:00
Pengfei Zhu c5b7018625
citra_qt: add seconds section to clock settings (#4347)
* citra_qt: add seconds section to clock settings

Simple fix to make the UI more usable.

* Use an ISO styled format string

Not actually tested locally
2018-10-25 21:29:43 +08:00
Tobias dec3fb2dcf nfc: Add Amiibo support (REOPENED) (#4337)
* Initial implementation

* Various fixes and new features

* Address some review comments

* Fixes

* Address more comments

* Use g_hle_lock

* Add more state checking, remove unneeded include

* Minor changes
2018-10-24 21:01:38 -04:00
Weiyi Wang 6742472133
Merge pull request #4235 from FearlessTobi/port-1259
Port various game_list changes from yuzu
2018-10-24 20:57:58 -04:00
Lioncash 6147bb622d CMakeLists: Use target_compile_definitions instead of add_definitions to define YUZU_ENABLE_COMPATIBILITY_REPORTING
Keeps the definition constrained to the citra_qt target and prevents
polluting anything else in the same directory (should that ever happen).
It also keeps it consistent with how the USE_DISCORD_PRESENCE definition
is introduced below it.
2018-10-23 16:16:11 +02:00
Weiyi Wang 8d32843d68 thread/kernel: remove unused callback_id
we use the thread id for the same purpose now
2018-10-23 10:06:32 -04:00
Lioncash 6fb6737642 core/CMakeLists: Make all web_service-related libraries private
Now that all external dependencies are hidden, we can remove
json-headers from the publically linked libraries, as the use of this
library is now completely hidden from external users of the web_service
library. We can also make the web_services library private as well,
considering it's not a requirement. If a library needs to link in
web_service, it should be done explicitly -- not via indirect linking.
2018-10-23 15:43:40 +02:00
Lioncash 8b98560ebb web_backend: Make Client use the PImpl idiom
Like with TelemetryJson, we can make the implementation details private
and avoid the need to expose httplib to external libraries that need to
use the Client class.
2018-10-23 15:42:22 +02:00
Lioncash 25038aeb0d telemetry_json: Use the PImpl idiom to avoid unnecessary dependency exposure
Users of the web_service library shouldn't need to care about an
external library like json.h. However, given it's exposed in our
interface, this requires that other libraries publicly link in the JSON
library. We can do better.

By using the PImpl idiom, we can hide this dependency in the cpp file
and remove the need to link that library in altogether.
2018-10-23 15:35:17 +02:00
Lioncash 131ce59800 telemetry_json: Add missing override specifier to the destructor of TelemetryJson 2018-10-23 15:33:41 +02:00
Lioncash 8747d93f6a telemetry_json: Take std::string parameters by value
Taking them by const reference isn't advisable here, because it means
the std::move calls were doing nothing and we were always copying the
std::string instances.
2018-10-23 15:33:34 +02:00
Lioncash c9013c481a telemetry_json: Remove unnecessary includes
Removes unused includes. Also rectifies a missing <chrono> include.
2018-10-23 15:33:18 +02:00
Lioncash 7142d3cf78 telemetry_session: Remove doxygen comment for a non-existent parameter
There's no "func" parameter, so this can just be removed.
2018-10-23 15:30:07 +02:00
Lioncash 61627c2042 telemetry_session: Add missing includes
Prevents potential compilation issues in the future by including missing
headers for certain functions and types.
2018-10-23 15:28:50 +02:00
Lioncash d5bb2a21aa telemetry_session: Remove unimplemented FinalizeAsyncJob prototype
This isn't implemented anywhere, so it can just be removed.
2018-10-23 15:27:05 +02:00
Weiyi Wang eb285c33fd kernel: make handle table per-process 2018-10-22 21:32:34 -04:00
Weiyi Wang fda2a5cf54 kernel/thread: use std::unordered_map for callback record 2018-10-22 21:32:34 -04:00
Weiyi Wang 5b45a3e1b5 Kernel/Timer: use unordered_map for callback recording 2018-10-22 21:32:34 -04:00
Weiyi Wang 8fb3d8ff38 kernel/process: move current process to kernel instance
Two functional change:
QueryProcessMemory uses the process passed from handle instead current_process
Thread::Stop() uses TLS from owner_process instead of current_process
2018-10-22 21:32:34 -04:00
Weiyi Wang d9342622b0 kennel/process: move process list to kernel instance 2018-10-22 21:32:34 -04:00
Weiyi Wang 4238754d8c kernel/process: move next_process_id to kernel instance 2018-10-22 09:30:48 -04:00
Lioncash 930abb4b5e svc: Correct vma_map boundary check within QueryProcessMemory
This should be using the process instance retrieved within the function,
and not g_current_process, otherwise this is potentially comparing
iterators from unrelated vma_map instances (which is undefined
behavior).
2018-10-21 22:00:12 -04:00
Weiyi Wang 57ce5079bc
Merge pull request #4336 from wwylele/file-util-mingw
Only redefine some 64-bit file operation for MSVC
2018-10-21 20:34:48 -04:00
Weiyi Wang 6f1759c5bd
Merge pull request #4341 from wwylele/kernel-global
Kernel: make a kernel instance and remove object ID counter from global state
2018-10-21 18:53:36 -04:00
Zak Kurka 92f8b71137 Make ApplyIPS static and private 2018-10-21 10:42:23 -05:00
Zak Kurka 05c1816504 Stay in bounds 2018-10-21 07:48:54 -05:00
Zak Kurka 1c62bc06cf Add rle record support 2018-10-21 07:48:29 -05:00
Zak Kurka d8284dfacc Log invalid IPS attempt 2018-10-21 07:47:27 -05:00
Zak Kurka d0b54e9939 Check for EOF 2018-10-20 23:25:16 -05:00
Zak Kurka 2778801dc5 Updated based on review 2018-10-20 19:45:16 -05:00
Zak Kurka 2a5b56bb1d Be more intentional with check 2018-10-20 18:17:54 -05:00
Zak Kurka 261dc33507 Merge branch 'master' of github.com:citra-emu/citra into ips-patches 2018-10-20 18:11:38 -05:00
Zak Kurka bf50bb06f1 Minor style changes and use memcpy 2018-10-20 18:10:32 -05:00
Weiyi Wang 11729eafe1
Merge pull request #4315 from FearlessTobi/port-1332
WebService: Backport review comments from yuzu-emu/yuzu#1332
2018-10-20 18:05:06 -04:00
Zak Kurka 2496ecbaf6 Added IPS patching 2018-10-20 13:09:05 -05:00
Weiyi Wang 65ec8de31e web_service: hide dependencies to private 2018-10-20 10:47:17 -04:00
fearlessTobi 57d68bb541 Address review comments 2018-10-20 10:35:55 -04:00
fearlessTobi 7daac96862 Review comments - part 5 2018-10-20 10:35:55 -04:00
fearlessTobi 9901b289b6 Review comments -part 4 2018-10-20 10:35:55 -04:00
fearlessTobi 08793a6dae Review comments - part 3 2018-10-20 10:35:55 -04:00
fearlessTobi b0aed19823 Address a bunch of review comments 2018-10-20 10:35:55 -04:00
fearlessTobi 111b7db759 Stop splitting includes 2018-10-20 16:31:35 +02:00
Lioncash f56a840333 game_list_p: Take map iterator contents by const reference
We don't need to copy the whole struct in this instance, we can just
utilize a reference instead.
2018-10-20 16:31:35 +02:00
Lioncash 52ec85be12 game_list_p: Amend typo in GameListItemCompat's constructor parameter
Adds a missing 'i' character that was missing in compatibility.
2018-10-20 16:31:35 +02:00
Lioncash 230edc8c7c yuzu: Move compatibility list specifics to their own source files
Lets us keep the generic portions of the compatibility list code
together, and allows us to introduce a type alias that makes it so we
don't need to type out a very long type declaration anymore, making the
immediate readability of some code better.
2018-10-20 16:31:35 +02:00
lioncash 9238015dd4 yuzu: Move GameListWorker to its own source files
This has gotten sufficiently large enough to warrant moving it to its
own source files. Especially given it dumps the file_sys headers around
code that doesn't use it for the most part.

This'll also make it easier to introduce a type alias for the
compatibility list, so a large unordered_map type declaration doesn't
need to be specified all the time (we don't want to propagate the
game_list_p.h include via the main game_list.h header).
2018-10-20 16:31:35 +02:00
Weiyi Wang eadd8b91b2
Merge pull request #4338 from FearlessTobi/port-1490
Port yuzu-emu/yuzu#1490: "citra_qt/main: Simplify OnMenuLoadFile()"
2018-10-20 10:09:41 -04:00
Weiyi Wang 18caa787d2
Merge pull request #4197 from B3n30/spsc_queue_wait
threadsafe_queue: Add PopWait and use it where possible
2018-10-19 19:36:37 -04:00
Weiyi Wang 751ebe55e9 Kernel: pass ref down to Object and wrap ID counter into kernel state 2018-10-18 21:41:36 -04:00
Weiyi Wang 87426b29ff kernel: pass ref to shared memory 2018-10-18 21:41:36 -04:00
Weiyi Wang 2a411bb501 Kernel: wrap resource limit state into kernel state; pass ref to resource limit 2018-10-18 21:41:36 -04:00
Weiyi Wang 13c26b4371 Kernel: pass ref to session pair 2018-10-18 21:41:36 -04:00
Weiyi Wang 1213a298df Kernel: pass ref to port 2018-10-18 21:41:36 -04:00
Weiyi Wang c141657d83 Kernel: pass ref to timer 2018-10-18 21:41:36 -04:00
Weiyi Wang 247249d5d3 Kernel: pass ref to sempahore 2018-10-18 21:41:36 -04:00
Weiyi Wang 181646679c ServiceManager: pass down core reference 2018-10-18 21:41:36 -04:00
Weiyi Wang d940293d32 Kernel: pass ref to thread 2018-10-18 21:41:36 -04:00
Weiyi Wang 9565091fc2 kernel: pass ref in Process 2018-10-18 21:41:36 -04:00
Weiyi Wang 213b259cf1 kernel: pass ref in CodeSet 2018-10-18 21:41:36 -04:00
Weiyi Wang 7449ba85a6 Kernel: pass ref in Mutex 2018-10-18 21:41:36 -04:00
Weiyi Wang eec11a94cb Kernel: pass Kernel ref in Event 2018-10-18 21:41:36 -04:00
Weiyi Wang 734be98966 Kernel: pass Kernel reference into AddressArbiter 2018-10-18 21:41:00 -04:00
Weiyi Wang f446fd1fe5 Kernel: add KernelSystem class 2018-10-18 21:41:00 -04:00
Weiyi Wang 1de63f9b16
Merge pull request #4328 from B3n30/remove_current_module
remove GetCurrentModule() functions in HLE Services
2018-10-18 21:39:24 -04:00
Pengfei Zhu 9458ae0977
Merge pull request #4259 from zhaowenlan1779/game-list
citra_qt: Add Game List configuration
2018-10-18 21:29:33 +08:00
Weiyi Wang ad232efbf0 apply fixes 2018-10-17 18:35:16 +02:00
B3n30 be3bd18c42 Load keys from new3DS native firm 2018-10-17 17:44:54 +02:00
B3n30 15c9db0883 Load keys from the o3DS save mode native firm 2018-10-17 17:44:52 +02:00
Weiyi Wang 53a3498aee
Merge pull request #4193 from B3n30/controller5
Joystick: Allow for background events; Add deadzone to SDLAnalog
2018-10-17 10:49:21 -04:00
B3n30 1849e8b09c HW::AES: add generator_constant 2018-10-17 16:07:11 +02:00
Ben f48157c6ea
Load AES keys stored in boot9.bin (#4335)
* Load AES keys stored in boot9.bin
2018-10-17 10:13:55 +02:00
Lioncash 15ecc38ada citra_qt/main: Apply the [[maybe_unused]] attribute to the parameter of SetDiscordEnabled()
Depending on whether or not USE_DISCORD_PRESENCE is defined, the "state"
parameter can be used or unused. If USE_DISCORD_PRESENCE is not defined,
the parameter will be considered unused, which can lead to compiler
warnings. So, we can explicitly mark it with [[maybe_unused]] to inform
the compiler that this is intentional.
2018-10-16 14:42:48 +02:00
Ben b01b94d843 FileSys::Ticket::Load: Return error if signature type does not match (#4339)
* FileSys::Ticket::Load: Return error if signature type does not match

* fixup! FileSys::Ticket::Load: Return error if signature type does not match
2018-10-15 11:26:35 -04:00
Pengfei Zhu 0df32275a7
Merge pull request #4282 from zhaowenlan1779/frame-advance
core, citra_qt: add frame advancing to framelimiter
2018-10-15 21:25:41 +08:00
Lioncash 7ddfce4a87 citra_qt/main: Simplify OnMenuLoadFile()
We can utilize QStringList's join() function to perform all of the
appending in a single function call.

While we're at it, make the extension list a single translatable string
and add a disambiguation comment to explain to translators what %1
actually is.
2018-10-14 22:31:46 +02:00
zhupengfei 8ecd31db41
citra_qt: use enum classes for the settings 2018-10-14 22:55:28 +08:00
Pengfei Zhu 84ddb1cba0
Merge pull request #4331 from zhaowenlan1779/cemuhook-fix
citra: fix cemuhook module crash
2018-10-14 21:35:38 +08:00
Weiyi Wang 25a370ef19 only redefine 64 bit file operation for MSVC
MinGW provides POSIX functions
2018-10-13 13:21:18 -04:00
zhupengfei b459164c2a
citra: fix cemuhook module crash
fixes #4144. Updated inih to use the newly added GetString function which returns the default value on empty string.
2018-10-12 22:58:30 +08:00
B3n30 eb3af0f16a Add GetModule() helper functions, for HID, CAM, and CFG 2018-10-12 11:50:50 +02:00
B3n30 1b1de23a98 Fixup: Remove unneeded GetUsername 2018-10-11 20:05:45 +02:00
B3n30 9d53136f20 remove GetCurrentModule() functions in HLE Services 2018-10-11 19:23:14 +02:00
Weiyi Wang 0962ab8da9
Merge pull request #4305 from wwylele/fs-global
FS/archive: wrap states into ArchiveManager class
2018-10-11 13:04:02 -04:00
Weiyi Wang 9adc407112
Merge pull request #4304 from B3n30/std_optional
Replace boost::optional with std::optional where possible
2018-10-11 12:40:00 -04:00
Pengfei Zhu efc0d502ed
Merge pull request #4326 from zhaowenlan1779/multiplayer-retranslate
citra_qt/multiplayer: retranslate multiplayer dialogs
2018-10-11 09:44:33 -05:00
zhupengfei 748a9849ec
citra_qt/multiplayer: retranslate multiplayer dialogs 2018-10-10 18:21:22 +08:00
B3n30 ca77be3ac2 remove std::tie in sdl_impl 2018-10-09 23:19:24 +02:00
B3n30 2b46b838f1 fix deadzone max value 2018-10-09 21:23:50 +02:00
NeatNit 4ee914c7a8 implemented touch in Qt and SDL
change TouchToPixelPos to return std::pair<int, int>

static_cast (SDL)

various minor style and code improvements

style - PascalCase for function names

made touch events private

const pointer arg in touch events

make TouchToPixelPos a const member function

did I do this right?

braces on barely-multiline if

remove question comment (confirmed in Discord)

fixed consts

remove unused parameter from TouchEndEvent

DRY - High-DPI scaled touch put in separate function

also fixes a bug where if you start touching (with either mouse or touchscreen) and drag the mouse to the LEFT of the emulator window, the touch point jumps to the RIGHT side of the touchscreen; draggin to above the window would make it jump to the bottom.

implicit conversion from QPoint to QPointF, apparently

I have no idea what const even means but I'll put it here anyway

remove unused or used-once variables

make touch scaling functions const, and put their implementations together

removed unused FingerID parameters

QTouchEvent forward declaration; add comment to TouchBegin that was lost in an edit

better DRY in SDL

To do -> TODO(NeatNit)

remove unused include
2018-10-09 23:10:28 +08:00
zhupengfei 90f9d32f13
citra_qt: Add Game List configuration
This adds a Game List configuration group box which is similar to yuzu's, with features including icon size setting, row 1/2 text, and ability to hide invalid titles (those without a valid SMDH). I also added a UI tab and moved the language and theme settings there.
2018-10-09 22:37:21 +08:00
B3n30 e267377111 More fixes 2018-10-09 10:26:44 +02:00
B3n30 ad8b9c0429 Adressed review comments 2018-10-08 23:28:54 +02:00
Sebastian Valle f405134913
Merge pull request #4306 from Subv/apt_jump
Services/APT: Better implementation of PrepareToDoApplicationJump and DoApplicationJump.
2018-10-08 15:44:38 -05:00
Ben d99b1f581f NWM_UDS: Signal bind_node_event in Unbind (#4321) 2018-10-08 15:44:14 -05:00
BreadFish64 ce823759cc citra-qt: disable directory watcher during CIA installation (#4284)
* disable directory watcher during CIA installation

fixes several errors while installing multiple CIAs

* use braces in if statement
2018-10-08 15:37:44 -05:00
Weiyi Wang 756a3d404a
Merge pull request #4283 from valentinvanelslande/seed-db
Implement SeedDB & Seed Crypto
2018-10-08 14:18:42 -04:00
Weiyi Wang 3480c1d49d
Merge pull request #4242 from citra-valentin/fix-camera-on-linux-pr
Fix camera on Linux
2018-10-08 11:01:59 -04:00
Weiyi Wang 0b7b9a51d6
Merge pull request #4299 from B3n30/uds
NWM_UDS: Fix some issues, cleanups, better PacketHandling
2018-10-07 13:56:59 -04:00
Merry a8155fdf48
Merge pull request #4314 from FearlessTobi/port-1440
Port yuzu-emu/yuzu#1440: "ui_settings: Place definition of the theme array within the cpp file"
2018-10-07 11:14:58 +01:00
Merry aab56c2e20
Merge pull request #4316 from FearlessTobi/port-1442
Port yuzu-emu/yuzu#1442: "Avoid unnecessary string temporary creation in PrintMessage()"
2018-10-07 11:13:48 +01:00
Subv 8ec2a9817c Services/APT: Better implementation of PrepareToDoApplicationJump and DoApplicationJump.
The real console can't launch an Application directly from within another Application so it has to go through the Home Menu. We do not have such limitation and can directly launch the requested title.
2018-10-06 17:08:24 -05:00
Valentin Vanelslande 7b6c5cd988
fix reply header 2018-10-06 16:59:57 -05:00
Subv 1d59c8f792 Logging: Change the TimeStretch::Process log from debug to trace level.
This function is called too many times and makes the debug logging basically unusable due to the spam.
2018-10-06 16:55:05 +02:00
Lioncash cd7596e67e text_formatter: Avoid unnecessary string temporary creation in PrintMessage()
operator+ for std::string creates an entirely new string, which is kind
of unnecessary here if we just want to append a null terminator to the
existing one.

Reduces the total amount of potential allocations that need to be done
in the logging path.
2018-10-06 16:46:02 +02:00
Lioncash 365d8c57c7 ui_settings: Place definition of the theme array within the cpp file
Placing the array wholesale into the header places a copy of the whole
array into every translation unit that uses the data, which is wasteful.
Particularly given that this array is referenced from three different
translation units.

This also changes the array to contain pairs of const char*, rather than
QString instances. This way, the string data is able to be fixed into
the read-only segment of the program, as well as eliminate static
constructors/heap allocation immediately on program start.
2018-10-06 16:22:28 +02:00
Weiyi Wang 389d3d630e fs/archive: wrap states into archive manager 2018-10-06 01:23:03 -04:00
Weiyi Wang 7678327bf2 fs/archive: move file and directory classes to their own files 2018-10-06 01:23:03 -04:00
Weiyi Wang 81657b737f
Remove "#" in the version number (#4311)
So that people can stop using it in issue/pr comments and randomly link some other issue/pr unintentionally.
2018-10-06 00:55:52 -04:00
Valentin Vanelslande dcd6e7f99f movie: fix some checks
Fixes invalid movie error
2018-10-05 17:20:14 -05:00
Weiyi Wang b163502744
Core: pass down Core::System reference to all services (#4272)
* Core: pass down Core::System reference to all services

This has to be done at once due to unified interface used by HLE/LLE switcher

* apt: eliminate Core::System::GetInstance

* gpu_gsp: eliminate Core::System::GetInstance in service

* hid: eliminate Core::System::GetInstance

* nwm: eliminate Core::System::GetInstance

* err_f: eliminate Core::System::GetInstance
2018-10-05 10:59:43 -04:00
Weiyi Wang 794498c33e
Merge pull request #4289 from wwylele/sdl-twice-twice
input/sdl: lock map mutex after SDL call
2018-10-05 10:54:45 -04:00
B3n30 2306af3600 Handle cases when std::optional does not contain a value 2018-10-05 16:51:33 +02:00
Valentin Vanelslande 53afb1cc2d
Move if 2018-10-05 09:27:16 -05:00
Pengfei Zhu 2a90426cb8
Merge pull request #4267 from zhaowenlan1779/movie
movie: Add clock init time to CTM header
2018-10-05 08:20:33 -05:00
Valentin Vanelslande 19ef115f50
Address comment 2018-10-05 07:22:26 -05:00
B3n30 d37a2270d6 Replace boost::optional with std::optional where possible 2018-10-05 13:51:09 +02:00
B3n30 7efe60ed23 Use SPSCQueue::PopWait in Scripting 2018-10-05 11:25:23 +02:00
B3n30 9b49a79a72 threadsafe_queue: Add WaitIfEmpty and use it in logging 2018-10-05 11:09:38 +02:00
Pengfei Zhu 87e16c80ac
Merge pull request #4229 from zhaowenlan1779/open-folder
citra_qt, core: game list "Open XXX Location" improvements
2018-10-05 00:46:43 -05:00
Weiyi Wang cdf8d80c87
Merge pull request #4300 from FearlessTobi/port-1429-1431
Port yuzu-emu/yuzu#1429 and yuzu-emu/yuzu#1431: Minor configuration changes
2018-10-04 19:38:54 -04:00
Weiyi Wang a5daf60e62
Merge pull request #4301 from citra-emu/revert-4241-port-yuzu-1367
Revert "Port yuzu/#1367 from yuzu: "game_list: Handle plurals within setFilterResult() better""
2018-10-04 15:03:03 -04:00
Weiyi Wang eb494c574d
Merge pull request #4244 from wwylele/swap-enum
common/swap: add swap template for enum
2018-10-04 14:51:49 -04:00
Weiyi Wang 4352c6784b
Revert "Port yuzu/#1367 from yuzu: "game_list: Handle plurals within setFilterResult() better"" 2018-10-04 12:04:49 -04:00
B3n30 458346d1e8 Adressed feedback 2018-10-04 12:34:51 +02:00
Lioncash be534b9388 configure_audio: Move combo box index setting to their own functions
Keeps the individual behaviors in their own functions, and cleanly
separate. We can also do a little better by converting the relevant IDs
within the core to a QString only once, instead of converting every
string into a std::string.
2018-10-04 01:39:12 +02:00
Lioncash 2a612f7bd4 configure_audio: Use QString::fromStdString() for converting audio device names
This ensures that the proper codec will always be used no matter what.
It also avoids relying on ASCII conversions.
2018-10-04 01:39:12 +02:00
Lioncash 97e8354fb0 configure_audio: Add disambiguation comment for the volume percentage string
Disambiguates what the string represents to help translators more easily
understand what it is that they're translating. While we're at it, we
can move the code to its own function, so that we don't need to specify
the same string twice.
2018-10-04 01:39:12 +02:00
Lioncash 00af9da245 configure_input: Make analog mapping strings translatable
These strings are user-facing, so they should be specified as
translatable with tr().
2018-10-04 01:39:12 +02:00
B3n30 38f136048e Cleanup NWM_UDS::SendTo 2018-10-04 00:00:49 +02:00
Weiyi Wang ea53b0f795
Merge pull request #4298 from Subv/am_titles
Services/AM: Implemented BeginImportProgramTemporarily, EndImportProgramWithoutCommit and CommitImportPrograms.
2018-10-03 17:41:40 -04:00
B3n30 7e7f17c78d Add filter to PacketHandling; Fix some issues with Disconnect 2018-10-03 23:07:31 +02:00
Weiyi Wang cfa52e2b7b
Merge pull request #4296 from B3n30/service_getter
Give frontend access to the hle service interfaces
2018-10-03 15:58:27 -04:00
Subv 0f6f7cfd95 Services/AM: Implemented BeginImportProgramTemporarily, EndImportProgramWithoutCommit and CommitImportPrograms.
These functions are pretty much identical to BeginImportProgram and EndImportProgram.

We don't need to do anything special in EndImportProgramWithoutCommit and CommitImportPrograms because we don't need to implement the two-phase title installation that the 3DS uses to prevent corruption of the title.db.
2018-10-03 14:48:39 -05:00
B3n30 544eb25c99 fixup! Give frontend access to the hle service interfaces 2018-10-03 20:08:01 +02:00
B3n30 d3694a930e Give frontend access to the hle service interfaces 2018-10-03 19:44:23 +02:00
Sebastian Valle 3790ccc7b2
Merge pull request #4287 from Subv/am_subfile
Services/AM: Support using FS subfiles with the CIA-related service functions.
2018-10-03 10:13:46 -05:00
Subv 5165b63512 Services/AM: Support using FS subfiles with the CIA-related service functions.
FS subfiles are created with File::OpenSubFile, they have a start offset that must be added to all read/write operations.

The implementation in this commit is done using a new FileBackend that wraps the FS::File along with the start offset.
2018-10-03 09:57:05 -05:00
Kyran Butler 7df8c118d4
Slightly changed wording of LOG_ERROR statements.
More grammatically correct.
2018-10-02 13:20:36 -06:00
Weiyi Wang 22df17c303 input/sdl: lock map mutex after SDL call
Any SDL invocation can call the even callback on the same thread, which can call GetSDLJoystickBySDLID and eventually cause double lock on joystick_map_mutex. To avoid this, lock guard should be placed as closer as possible to the object accessing code, so that any SDL invocation is with the mutex unlocked
2018-10-02 11:22:20 -04:00
bunnei 2d116607fe
Merge pull request #4288 from Subv/am_system_mutex
Services/AM: Implement the GetSystemUpdaterMutex function.
2018-10-02 11:14:04 -04:00
Valentin Vanelslande b067b5aa5a Implement SeedDB & Seed Crypto 2018-10-02 10:12:40 -05:00
Subv 7aa97198a3 Services/AM: Implement the GetSystemUpdaterMutex function.
This function just returns a Mutex.
2018-10-02 09:07:00 -05:00
NarcolepticK 32aecd42a2 LLE Mapped Buffer: Corrected behavior 2018-10-01 21:07:25 -04:00
zhupengfei 8cf1132b2e
ncch_container: choose the first id as extdata id when extended save data access is used 2018-10-02 08:15:10 +08:00
zhupengfei cb775eb1ba
core, citra_qt: add frame advancing to framelimiter
Frame advancing is a commonly used TAS feature which basically means running the game frame by frame. TASers use this feature to press exact buttons at the exact frames. This commit added frame advancing to the framelimiter and two actions to the Movie menu. The default hotkey is `\` for advancing frames, and `Ctrl+A` for toggling frame advancing. The `Advance Frame` hotkey would automatically enable frame advancing if not already enabled.
2018-10-02 07:28:58 +08:00
Weiyi Wang fceec34945
Merge pull request #4278 from wwylele/cfg-ptm-direct-fs
cfg, ptm: access FS via backend directly
2018-10-01 18:32:43 -04:00
Weiyi Wang 0e77cd385a
Merge pull request #4277 from wwylele/cecd-direct-fs
cecd: access FS via backend directly
2018-10-01 18:26:51 -04:00
bunnei 4a5a97ab88
Merge pull request #4253 from wwylele/string-util-cleanup
common/string_util cleanup
2018-10-01 17:52:58 -04:00
Weiyi Wang fb720c00b7
Merge pull request #4273 from wwylele/apt-direct-fs
APT: access FS via backend directly
2018-10-01 14:24:06 -04:00
Weiyi Wang 5fb3137bdc
Merge pull request #4181 from wwylele/cia-crypto
Add encrypted CIA support
2018-10-01 14:23:35 -04:00
B3n30 4831095610 fixup! Joystick: Allow for background events; Add deadzone to SDLAnalog 2018-10-01 16:02:19 +02:00
Pengfei Zhu b2bfcfcbd7
Merge pull request #4140 from zhaowenlan1779/input-config
citra_qt/configuration: misc input tab improvements
2018-10-01 03:05:31 -05:00
NarcolepticK 51d53a6281 LLE Mapped Buffer: addressed comments 2018-09-30 23:23:21 -04:00
NarcolepticK 19291ba465 LLE Mapped Buffer: Add unmapping, zero-size, and multiple page handling 2018-09-30 22:34:13 -04:00
bunnei 9f972b9f5c
Merge pull request #4276 from MerryMage/jit_breakpoints
arm_dynarmic: Pass breakpoints to gdbstub
2018-09-30 21:42:00 -04:00
bunnei 27203c0d47
Merge pull request #4274 from wwylele/http-direct-fs
http_c: access FS via backend directly
2018-09-30 21:37:07 -04:00
zhupengfei bbf391abb9
citra_qt, core: game list "Open XXX Location" improvements 2018-10-01 08:42:22 +08:00
MerryMage b4d9d9661a arm_dynarmic: Pass breakpoints to gdbstub
Allow gdbstub to handle execution breakpoints
2018-09-30 19:40:49 +01:00
zhupengfei 9d142f981d
movie: fix default value in StartPlayback 2018-09-30 14:26:38 +08:00
Weiyi Wang 4a30a502a0
Merge pull request #4211 from wwylele/web-cleanup
web_service: stop using std::future + callback style async
2018-09-29 23:02:27 -04:00
Weiyi Wang edc6e419b0
Merge pull request #4232 from wwylele/multi-region
loader, cfg: choose region based on language if multiple regions available
2018-09-29 23:01:36 -04:00
Weiyi Wang fbc36ff63c
Merge pull request #4257 from jroweboy/sdl-globals
Input: Remove global variables from SDL Input
2018-09-29 23:00:12 -04:00
Weiyi Wang f5a3ec18c2
Merge pull request #4072 from B3n30/httpc3
Service::HTTP_C: Implement Client Cert opening and closing
2018-09-29 22:53:49 -04:00
Lioncash d64094a0d2 kernel/object: Remove unnecessary std::move from DynamicObjectCast()
boost::static_pointer_cast for boost::intrusive_ptr (what SharedPtr is),
takes its parameter by const reference. Given that, it means that this
std::move doesn't actually do anything other than obscure what the
function's actual behavior is, so we can remove this. To clarify, this
would only do something if the parameter was either taking its argument
by value, by non-const ref, or by rvalue-reference.
2018-09-29 23:14:10 +02:00
Weiyi Wang 89a5b9b622 qt/configure_system: FS decoupled 2018-09-28 17:34:47 -04:00