Subv
d7459354f5
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16).
...
The current code inserts and deletes elements from the beginning of the audio buffer, which is very inefficient in an std::vector.
Profiling was done using VisualStudio2017's Performance Analyzer in Super Mario 3D Land.
Before this change: AudioInterp::Linear had 14.14% of the runtime (inclusive) and most of that time was spent in std::vector's insert implementation.
After this change: AudioInterp::Linear has 0.36% of the runtime (inclusive)
2017-09-25 18:31:37 -05:00
Subv
774e7deae8
HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently.
...
The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session.
When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc).
3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time.
2017-09-25 09:45:02 -05:00
B3n30
d881dee818
Merge pull request #2952 from MerryMage/page-tables
...
Switchable Page Tables
2017-09-25 08:29:32 +02:00
B3n30
dc6a365337
Merge pull request #2951 from huwpascoe/perf-4
...
Optimized Morton
2017-09-25 08:28:55 +02:00
B3n30
78022b5a79
Merge pull request #2949 from wwylele/fix-tr
...
citra-qt: fix some untranslated strings
2017-09-25 08:23:04 +02:00
B3n30
a21b9deb98
Merge pull request #2948 from Subv/register_service
...
HLE/SRV: Implemented RegisterService.
2017-09-25 08:22:05 +02:00
Max Thomas
c91ccbd0ba
Loader/NCCH: Add support for loading application updates ( #2927 )
...
* loader/ncch: split NCCH parsing into its own file
* loader/ncch: add support for loading update NCCHs from the SD card
* loader/ncch: fix formatting
* file_sys/ncch_container: Return a value for OpenFile
* loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch
* file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked
* file_sys/ncch_container: pass filepath as a const reference
2017-09-25 08:17:38 +02:00
B3n30
d673d508dd
Services/UDS: Added a function to send EAPoL-Start packets ( #2920 )
...
* Services/UDS: Added a function to generate the EAPoL-Start packet body.
* Services/UDS: Added filter for beacons.
* Services/UDS: Lock a mutex when accessing connection_status from both the emulation and network thread.
* Services/UDS: Handle the Association Response frame and respond with the EAPoL-Start frame.
* fixup: make use of current_node, changed received_beacons into a list, mutex and assert corrections
* fixup: fix damn clang-format
2017-09-25 08:16:27 +02:00
Huw Pascoe
903906da3b
Optimized Float<M,E> multiplication
...
Before:
ucomiss xmm1, xmm1
jp .L9
pxor xmm2, xmm2
mov edx, 1
ucomiss xmm0, xmm2
setp al
cmovne eax, edx
test al, al
jne .L9
.L3:
movaps xmm0, xmm2
ret
.L9:
ucomiss xmm0, xmm0
jp .L10
pxor xmm2, xmm2
mov edx, 1
ucomiss xmm1, xmm2
setp al
cmovne eax, edx
test al, al
je .L3
After:
movaps xmm2, xmm1
mulss xmm2, xmm0
ucomiss xmm2, xmm2
jnp .L3
ucomiss xmm1, xmm0
jnp .L11
.L3:
movaps xmm0, xmm2
ret
.L11:
pxor xmm2, xmm2
jmp .L3
2017-09-25 00:54:02 +01:00
MerryMage
67a70bd9e1
ARM_Interface: Implement PageTableChanged
2017-09-24 23:08:25 +01:00
MerryMage
4e5eb2044a
memory: Remove GetCurrentPageTablePointers
2017-09-24 22:43:28 +01:00
MerryMage
c02bbb7030
memory: Add GetCurrentPageTable/SetCurrentPageTable
...
Don't expose Memory::current_page_table as a global.
2017-09-24 22:42:42 +01:00
Huw Pascoe
876aa82c29
Optimized Morton
2017-09-24 22:27:14 +01:00
wwylele
7117fcc024
citra-qt: fix some untranslated strings
2017-09-24 17:53:35 +03:00
Subv
7096f01c14
HLE/APT: Always return an error from PrepareToStartNewestHomeMenu so that the Home Menu doesn't try to reboot the system.
...
As per 3dbrew:
"During Home Menu start-up it uses APT:PrepareToStartNewestHomeMenu. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with APT:StartNewestHomeMenu etc. "
2017-09-24 08:59:31 -05:00
Subv
b57d58c0dc
HLE/APT: Prepare the APT Wakeup parameter when the game calls Initialize
...
We need to know what is being run so we can set the APT parameter destination AppId correctly.
Delaying the preparation of the parameter until we know which AppId is running lets us support booting both the Home Menu and normal game Applications.
2017-09-24 08:59:30 -05:00
James Rowe
93930a966f
Merge pull request #2921 from jroweboy/batch-fix-2
...
GPU: Add draw for immediate and batch modes
2017-09-24 07:57:16 -06:00
Subv
0b33e36292
HLE/SRV: Implemented RegisterService.
...
Now system modules can do more than just crash immediately on startup.
2017-09-24 00:12:58 -05:00
James Rowe
19d41dcc6e
Remove pipeline.gpu_mode and fix minor issues
2017-09-23 09:28:20 -06:00
Yuri Kunde Schlesner
a7758b0b36
Merge pull request #2928 from huwpascoe/master
...
Fixed framebuffer warning
2017-09-22 04:06:38 +02:00
bunnei
6fc123d67c
Merge pull request #2933 from huwpascoe/perf-1
...
Improved performance of FromAttributeBuffer
2017-09-19 13:18:35 -04:00
B3n30
28c726f205
WebService: Verify username and token ( #2930 )
...
* WebService: Verify username and token; Log errors in PostJson
* Fixup: added docstrings to the functions
* Webservice: Added Icons to the verification, imrpved error detection in cpr, fixup nits
* fixup: fmt warning
2017-09-18 21:18:26 -04:00
Huw Pascoe
a234e4c200
Improved performance of FromAttributeBuffer
...
Ternary operator is optimized by the compiler
whereas std::min() is meant to return a value.
I've noticed a 5%-10% emulation speed increase.
2017-09-17 15:56:36 +01:00
Huw Pascoe
6a110ac5f5
Fixed framebuffer warning
2017-09-17 11:57:06 +01:00
Yuri Kunde Schlesner
255fd8768d
Merge pull request #2906 from Subv/ns_new_framework
...
Services/NS: Port ns:s to the new service framework.
2017-09-16 21:13:51 +02:00
Subv
3d86e3afc4
Services/NS: Port ns:s to the new service framework.
2017-09-16 10:52:45 -05:00
Yuri Kunde Schlesner
699c920991
Merge pull request #2900 from wwylele/clip-2
...
PICA: implement custom clip plane
2017-09-16 10:23:00 +02:00
B3n30
813837c5cf
Merge pull request #2842 from Subv/switchable_page_table
...
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
2017-09-15 22:41:45 +02:00
Subv
7a3ab7c63d
CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime.
2017-09-15 14:26:22 -05:00
Subv
3bde97ea05
Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations.
...
This fixes building the tests
2017-09-15 14:26:20 -05:00
Subv
f18a176b60
Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping.
2017-09-15 14:26:18 -05:00
Subv
b178089251
Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.
...
We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions.
2017-09-15 14:26:15 -05:00
Subv
214150f00c
Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer.
2017-09-15 14:26:13 -05:00
bunnei
588077184b
Merge pull request #2915 from wwylele/font-archive-2
...
APT: load different shared font depending on the region
2017-09-11 21:39:56 -04:00
James Rowe
ad0b57f407
GPU: Add draw for immediate and batch modes
...
PR #1461 introduced a regression where some games would change configuration
even while in the poorly named "drawing" mode, which broke the heuristic
citra was using to determine when to draw the batch. This change adds
back in a draw call for batching, and also adds in a draw call in
immediate mode each time it adds a triangle.
2017-09-11 09:21:43 -06:00
Subv
c34ec5e77c
Kernel/Memory: Switch the current page table when a new process is scheduled.
2017-09-10 15:14:31 -05:00
Subv
6d2734a074
Kernel/Memory: Give each Process its own page table.
...
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-09-10 15:13:41 -05:00
bunnei
11baa40d75
Merge pull request #2865 from wwylele/gs++
...
PICA: implemented geometry shader
2017-09-07 23:02:59 -04:00
bunnei
ff4941fb3a
Merge pull request #2914 from wwylele/fresnel-fix
...
pica/lighting: only apply Fresnel factor for the last light
2017-09-05 10:00:49 -04:00
Weiyi Wang
617b6974b9
Merge pull request #2831 from Subv/uds_auth
...
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
2017-09-05 15:03:56 +03:00
mailwl
11f2eff17d
Remove _flag in var names
2017-09-04 12:15:15 +03:00
mailwl
589babbf74
Mii Selector Applet: update Mii structures
2017-09-04 12:04:12 +03:00
James Rowe
79f177c6d2
Fix icon for citra qt
2017-09-03 11:26:10 -06:00
wwylele
59a9aaf388
APT: load different shared font depending on the region
2017-09-03 12:34:11 +03:00
wwylele
12fbc8c8df
pica/lighting: only apply Fresnel factor for the last light
2017-09-03 08:22:03 +03:00
DaMan
40505bc4fc
Add manifest
2017-09-02 20:08:11 -04:00
bunnei
f251b8873a
Merge pull request #2909 from wwylele/telemetry-gas
...
video_core: report telemetry for gas mode
2017-08-31 11:12:55 -04:00
wwylele
e2c41a5891
video_core: report telemetry for gas mode
2017-08-31 12:54:17 +03:00
bunnei
e450a2d2b8
Merge pull request #2858 from MerryMage/interp-on-a-frame-basis
...
interpolate: Interpolate on a frame-by-frame basis
2017-08-30 21:56:43 -04:00
bunnei
f0e461bf6f
Merge pull request #2891 from wwylele/sw-bump
...
SwRasterizer/Lighting: implement bump mapping
2017-08-30 21:07:30 -04:00
bunnei
75cd28a7cc
Merge pull request #2899 from wwylele/touch-refactor
...
Refactor touch input into a TouchDevice
2017-08-29 11:29:10 -04:00
Sebastian Valle
acbd46366c
Merge pull request #2905 from danzel/fix-2902
...
Use recursive_mutex instead of mutex to fix #2902
2017-08-29 09:35:56 -05:00
danzel
8266064796
Use recursive_mutex instead of mutex to fix #2902
2017-08-29 20:39:55 +12:00
MerryMage
933508e2a2
interpolate: Interpolate on a frame-by-frame basis
2017-08-28 10:54:41 +01:00
Weiyi Wang
647f017c6d
Merge pull request #2892 from Subv/warnings2
...
Warnings: Fixed a few missing-return warnings in video_core.
2017-08-28 03:21:51 -05:00
Subv
f64cd87604
Services/UDS: Remove an old duplicated declaration of WifiPacket.
2017-08-27 10:48:15 -05:00
Subv
d088dbfbe1
Services/UDS: Handle the connection sequence packets.
...
There is currently no stage tracking, a client is considered "Connected" when it receives the EAPoL Logoff packet from the server, this is not yet implemented.
2017-08-27 10:48:13 -05:00
Subv
2e9f544ecc
Services/UDS: Store the received beacon frames until RecvBeaconBroadcastData is called, up to 15 beacons at the same time, removing any older beacon frames when the limit is exceeded.
2017-08-27 10:48:11 -05:00
Subv
54411bef4e
Services/UDS: Add functions to generate 802.11 auth and assoc response frames.
2017-08-27 10:48:09 -05:00
bunnei
7698567fc9
web_backend: Fix CPR bug where Winsock is not properly initializing.
2017-08-26 19:45:41 -04:00
Subv
da88f3b8f0
Warnings: Fixed a few missing-return warnings in video_core.
2017-08-26 11:58:22 -05:00
bunnei
c8562b21d9
web_backend: Fix asynchronous JSON post by spawning new thread.
2017-08-25 23:37:47 -04:00
bunnei
04bd0c957e
web_services: Refactor to remove dependency on Core.
2017-08-25 23:10:02 -04:00
bunnei
9f0da33c33
qt: Add an option to view/regenerate telemetry ID.
2017-08-25 23:10:02 -04:00
bunnei
5d7b364a21
default_ini: Use correct telemetry endpoint URL.
2017-08-25 23:10:01 -04:00
bunnei
2e37201c63
# This is a combination of 2 commits.
...
# This is the 1st commit message:
qt: Add web configuration tab.
# The commit message #2 will be skipped:
# fixup! qt: Add web configuration tab.
2017-08-25 23:10:01 -04:00
bunnei
fb17e866aa
qt: Add web configuration tab.
2017-08-25 23:10:01 -04:00
bunnei
41328afb58
web_backend: User config for username and token, support anonymous post.
2017-08-25 23:10:01 -04:00
bunnei
40f417125b
telemetry: Log frontend type.
2017-08-25 23:10:01 -04:00
bunnei
c781aea947
settings: Add enable_telemetry, citra_username, and citra_token.
2017-08-25 23:10:00 -04:00
bunnei
d6a819c7cb
telemetry_session: Log telemetry ID.
2017-08-25 23:10:00 -04:00
bunnei
59ad933022
citra_qt: Show one-time callout messages to user.
2017-08-25 23:10:00 -04:00
ThaMighty90
3cdf854e44
SidebySide Layout ( #2859 )
...
* added a SidebySide Layout
* Reworked, so both screen have the same height and cleaned up screen translates.
* added the option in the UI, hope this is the right way to do it. formated framebuffer_layout.cpp
* delete the x64 files
* deleted ui_configure_graphics.h
* added Option for the Layout in the xml
* got rid of SIDE_BY_SIDE_ASPECT_RATIO because it was useless. pulled translate into variables
* changed shift variables to u32 and moved them in their respective branch. remove notr="true" for the Screen layout drop down
* reworked intends :). changed function description for SideFrameLayout
* some description reworking
2017-08-25 17:53:07 -04:00
wwylele
417cb45e3f
SwRasterizer/Clipper: flip the sign convention to match PICA and OpenGL
2017-08-25 07:26:45 +03:00
wwylele
addbcd5784
gl_rasterizer: implement custom clip plane
2017-08-25 07:26:45 +03:00
wwylele
ea51a3af26
SwRasterizer: implement custom clip plane
2017-08-24 15:34:27 +03:00
wwylele
2617de1fe6
EmuWindow: refactor touch input into a TouchDevice
2017-08-24 15:00:56 +03:00
wwylele
c84e60b470
HID: use TouchDevice for touch pad
2017-08-24 13:56:43 +03:00
James Rowe
61442d6afb
Merge pull request #2839 from Subv/global_kernel_lock
...
Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
2017-08-23 18:17:44 -06:00
bunnei
2bbff9fa96
Merge pull request #2893 from Subv/not_schedule_main_thread
...
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
2017-08-22 17:45:47 -04:00
Subv
f484927ed0
Kernel/Memory: Acquire the global HLE lock when a memory read/write operation falls outside of the fast path, for it might perform an MMIO operation.
2017-08-22 09:30:58 -05:00
Subv
bca8916cea
Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
...
This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
2017-08-22 09:30:55 -05:00
James Rowe
a8675f4287
Merge pull request #2888 from Subv/warnings
...
Fixed some warnings in the core project.
2017-08-22 08:09:09 -06:00
wwylele
4d058cfb76
motion_emu: fix initialization order
2017-08-22 11:43:44 +03:00
wwylele
17c6104d2a
gl_rasterizer/lighting: more accurate CP formula
2017-08-22 09:34:44 +03:00
wwylele
b5aa570354
SwRasterizer/Lighting: implement LUT input CP
2017-08-22 09:34:44 +03:00
wwylele
3e478ca131
SwRasterizer/Lighting: implement bump mapping
2017-08-22 09:34:44 +03:00
Subv
fa228ca637
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
...
This is necessary for loading multiple processes at the same time.
The main thread will be automatically scheduled when necessary once the scheduler runs.
2017-08-21 20:54:29 -05:00
Subv
8a9a4e2c42
GPU/Warnings: Explicitly cast the screen refresh ticks to u64.
2017-08-21 08:34:30 -05:00
Subv
65f19b51c4
Warnings: Add UNREACHABLE macros to switches that contemplate all possible values.
2017-08-21 08:34:28 -05:00
Subv
145a7293a3
HLE/Applets: Fixed some conversion warnings when creating the framebuffer shared memory objects.
2017-08-21 08:34:27 -05:00
Subv
d237a89048
CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions.
2017-08-21 08:34:25 -05:00
Subv
9d0841b48b
Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.
...
Fixes a few warnings.
2017-08-21 08:34:23 -05:00
Subv
d3fb1d6c38
Dyncom: Fixed a conversion warning when decoding thumb instructions.
2017-08-21 08:20:36 -05:00
wwylele
63b6e802cd
swrasterizer: remove invalid TODO
...
This function is called in clipping, before the pespective divide, and is not used in later rasterization. Thus it doesn't need perspective correction.
2017-08-21 08:03:07 +03:00
wwylele
72b26ac32f
swrasterizer/clipper: remove tested TODO
...
hwtested. Current implementation is the correct behavior
2017-08-21 08:03:07 +03:00
wwylele
5a4af616c6
gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader
2017-08-21 08:03:07 +03:00
wwylele
1eca380886
gl_rasterizer: add clipping plane z<=0 defined in PICA
2017-08-21 08:03:07 +03:00
Yuri Kunde Schlesner
46d1ca768d
Merge pull request #2872 from wwylele/sw-geo-factor
...
SwRasterizer/Lighting: implement geometric factor
2017-08-20 17:49:42 -07:00
James Rowe
bbfa9d0635
Merge pull request #2861 from wwylele/motion-refactor
...
Refactor MotionEmu into a InputDevice
2017-08-19 23:43:01 -06:00