Commit graph

146 commits

Author SHA1 Message Date
Thomas Guillemard
9b19ea3c87 Remove IFileSystem::OpenDirectory extraneous check (#459)
A directory can be open more than one time. This fix issues with
homebrews opening the same directory multiple time.
2018-10-16 23:55:10 +00:00
Thomas Guillemard
ac1a379265 Fix some issues with UserId (#455) 2018-10-14 02:07:56 +00:00
Ac_K
3561062bc6 Update IAccountService and IManagerForApplication (#454)
* Update IAccountService and IManagerForApplication

`IAccountService`:
- Add symbols.
- Fix some mistake.
- Add `IsUserRegistrationRequestPermitted` and `TrySelectUserWithoutInteraction`.

`IManagerForApplication`:
- Add symbols.
- Add Uuid args.
- Little improvement of `GetAccountId`
2018-10-14 01:16:02 +02:00
Ac_K
824d4b74d0 Update UInt128.cs (#453)
Fix invalid Write implementation.
2018-10-13 23:29:49 +02:00
Thomas Guillemard
b2063be597 Implement IResolver (#442)
* Implement IResolver

- GetAddrInfo & GetNameInfo still need to be implemented.

* Address comments

* Use MakeError
2018-10-10 01:15:07 +02:00
Thomas Guillemard
d5c0de8362 Implement IRoInterface (#445)
* Implement IRoInterface

This is required by Super Mario Party.
This commit also adds MapProcessCodeMemory and UnmapProcessCodeMemory functions in KMemoryManager. Those two calls might not reflect what the SVC of the same names do.

* Fix some code style issues

* Use MakeError to clarify error code

* Add NRR and NRO constants

* Fix some codestyle issues

* Fix InvalidMemoryState error code
2018-10-10 01:01:49 +02:00
Thomas Guillemard
65c67bb4a5
Break: don't crash when bit 31 is set (#444) 2018-10-08 20:53:08 +02:00
emmauss
625fc8c0e0 Stubs Again (#439)
* stub/implement audren commands

* stub ISelfController get/set IdleTimeDetectonExtension

* stub irs

* add irs logclass, stub mmu:u irequest 1

* style fixes, addressed comments
2018-10-07 17:12:11 +02:00
emmauss
caa181edf2 Save Common implementation (#434)
* save common implementation

* remove zero userid check

* Renamed UserId to UInt128

* fix index in hex conversion
2018-10-07 15:13:46 +02:00
Ac_K
5b8ccb717f Implement ISslContext (#440)
This PR implement an empty `ISslContext` and update `CreateContext` and `SetInterfaceVersion` inside `ISslService`
2018-10-07 00:16:42 +02:00
Alex Barney
5821ff675d Misc content loading improvements (#432)
* Misc content loading improvements
2018-10-06 18:11:47 +03:00
emmaus
0ada047eaf fix out of handles error 2018-09-28 10:47:53 +00:00
Ac_K
40282da93a Implement friend:a IFriendService: 10101 (#429)
* Implement friend:a IFriendService: 10101

* Update Profile Picture

* Update IFriendServiceTypes.cs

* Update IFriendServiceTypes.cs

* Update IFriendService.cs

* Update IFriendServiceTypes.cs

* Update IFriendServiceTypes.cs

* Update IFriendService.cs
2018-09-25 19:59:29 -03:00
ReinUsesLisp
2562ca6c3f Fix multiple rendertargets (#427)
* Simplify render target bindings

* Implement multiple viewports

* Pack glViewportIndexed calls into a single glViewportArray

* Use ARB_viewport_array when available

* Cache framebuffer attachments

* Use get accessors in OGLExtension

* Address feedback
2018-09-26 00:55:30 +02:00
gdkchan
7de7b559ad Improve kernel events implementation (#430)
* Improve kernel events implementation

* Some cleanup

* Address PR feedback
2018-09-23 20:11:46 +02:00
Ac_K
a76660eac5
Fix IHidServer code style 2018-09-21 06:30:58 +02:00
Ac_K
e77c1560e6 Full 5.X stubbed IHidServer (#428)
* Full 5.X stubbed IHidServer

Since we can't support all those Hid calls in the right way, we can stub them with more information as possible in the logs.
I have added all symbols in it to be more revelant as possible.
It's remove some Hid spam in few games too, because we assign some var as the game want.

* Fix issues

* Fix code according to review
2018-09-21 02:08:35 +02:00
gdkchan
6d65e53664
Remove cold methods from the CPU cache (#224)
* Remove unused tracing functionality from the CPU

* GetNsoExecutable -> GetExecutable

* Unsigned comparison

* Re-add cpu tracing

* Config change

* Remove cold methods from the translation cache on the cpu

* Replace lock with try lock, pass new ATranslatorCache instead of ATranslator

* Rebase fixups
2018-09-19 17:07:56 -03:00
gdkchan
99b2692425
Fix performance regression caused by the new scheduler changes (#422)
* Call interrupt less often, remove some leftovers from the old scheduler code

* Remove unneeded attribute
2018-09-19 12:16:20 -03:00
emmauss
fae097408e Show Game Title on Titlebar (#408)
* support reading control data

* show game info on titlebar

* use first language is default is not available

* use seperate language enums for titles

* fix hex display
2018-09-19 14:09:49 +02:00
gdkchan
b8133c1997
Thread scheduler rewrite (#393)
* Started to rewrite the thread scheduler

* Add a single core-like scheduling mode, enabled by default

* Clear exclusive monitor on context switch

* Add SetThreadActivity, misc fixes

* Implement WaitForAddress and SignalToAddress svcs, misc fixes

* Misc fixes (on SetActivity and Arbiter), other tweaks

* Rebased

* Add missing null check

* Rename multicore key on config, fix UpdatePriorityInheritance

* Make scheduling data MLQs private

* nit: Ordering
2018-09-18 20:36:43 -03:00
gdkchan
d6fba62f8a
Misc fixes on the arena allocator (#364) 2018-09-18 12:28:28 -03:00
gdkchan
d4187aaa9d
Allow "reinterpretation" of framebuffer/zeta formats (#418)
* (Re)Implement format reinterpretation, other changes

* Implement writeback to guest memory, some refactoring

* More refactoring, implement reinterpretation the old way again

* Clean up

* Some fixes on M2MF (old Dma engine), added partial support for P2MF, fix conditional ssy, add Z24S8 zeta format, other fixes

* nit: Formatting

* Address PR feedback
2018-09-18 01:30:35 -03:00
Thomas Guillemard
46a11460d4 Rewrite the C++ Demangler (#416)
* Rewrite the C++ Demangler

This new Demangler provides support to almost every possible mangled
symbols and should behaves like GNU c++filt.

It works on 98.9% of the sdk's symbols and 99.5%
of Puyo Puyo Tetris's symbols.

* Fix code style

* Fix noexcept enclosed expression parsing issues

* fix code style issues
2018-09-15 15:29:18 +02:00
Ac_K
476ebf5b03 Update IStorage.cs (#415)
Lock the stream fix a multithreading error when a XCI game try to access to the RomFs.
2018-09-13 13:45:59 +02:00
emmauss
db1a759c59 Lock GbpQueueBuffer till Vsync is signalled (#367)
* Initial Framerate limit implementation

* use seperate event for limiter

* check for vsync signal after queue up framebuffer

* removed ingame toggle

* fix nits
2018-09-10 01:38:56 +02:00
emmauss
fc77b089a6 Implements proper save path (#386)
* initial save path implementation

* fix savedatatype offset, remove incomplete createsavedata implimentation

* address nits

* fix crash if npdm is not found

* made saveinfo readonly, other stuff

* remove context param from saveinfo contructor

* fix style

* remove whitespace
2018-09-08 19:04:26 -03:00
Alex Barney
3227218114 Add XCI, NSP and NCA loading support (#404)
* Add XCI and NCA loading support

* Code style changes

* Add NSP loading

* Changes from code review

* Read XCIs with patches. Code style

* Add KEYS.md file

* Make file extension matching case-insensitive
2018-09-08 15:33:27 -03:00
ReinUsesLisp
ce1d5be212 Move GPU emulation from Ryujinx.HLE to Ryujinx.Graphics and misc changes (#402)
* Move GPU LLE emulation from HLE to Graphics

* Graphics: Move Gal/Texture to Texture

* Remove Engines/ directory and namespace

* Use tables for image formats

* Abstract OpCode decoding

* Simplify image table

* Do not leak Read* symbols in TextureReader

* Fixups

* Rename IGalFrameBuffer -> IGalRenderTarget

* Remove MaxBpp hardcoded value

* Change yet again texture data and add G8R8 flipping

* Rename GalFrameBufferFormat to GalSurfaceFormat

* Unident EnsureSetup in ImageHandler

* Add IsCompressed

* Address some feedback
2018-09-08 14:51:50 -03:00
emmauss
675f3f6f81 Implement loading of profile image (#391)
* implement loading of profile image

* rename icon to profilepicture

* rename icon file
2018-09-01 19:04:20 -03:00
gdkchan
b549daed03
Fix exception throw message for unimpl texture formats (#398) 2018-09-01 18:51:51 -03:00
HorrorTroll
bf28d8f1aa Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format (#377)
* Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format

* Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format

* Revert "Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format"

This reverts commit aea5c9db3a.

* Conflicts fix

* Wrong fix

* E

* e
2018-09-01 18:25:49 -03:00
gdkchan
35778afef9
Improve handling on QueryGet on the gpu (#397) 2018-09-01 11:54:56 -03:00
HorrorTroll
27023e7afc Add R32_G32 texture format (#383) 2018-08-27 11:18:21 -03:00
ReinUsesLisp
a42ab2e40c Implement vertex instancing (#381) 2018-08-25 01:16:58 -03:00
emmauss
da7e702751 Update BSD service implementation (#363)
* Update BSD service to handle libnx's 'smart IPC buffers' for address info

* Use existing "GetBufferType0x21" for certain BSD socket methods

* Parse address port as unsigned short

* Fix bounds check on reading the IPC buffer

* Implement Read, Write methods

* rebased and cleaned

* addressed nits

* remove unused swap method

* fixed alignments
2018-08-24 14:20:42 -03:00
ReinUsesLisp
624e813cd3 Implement multiple rendertarget attachments and depth writting (#375)
* Add depth writting

* Implement multiple attachments

* Address feedback
2018-08-23 02:07:23 -03:00
gdkchan
9977acad0f
Fix BinarySearchLt to return less than rather than less than or equal value (#372) 2018-08-23 01:54:59 -03:00
ReinUsesLisp
1cd7aaf504 Avoid querying and setting texture bindings in hot code (#376) 2018-08-23 01:54:32 -03:00
Thomas Guillemard
57dfa09e3a Improve LM implementation (#373)
- Manage end of the log packet correctly.
- Add drop count, time, and program name parsing.
- Use the correct buffer type. (0x21 not 0x9)
- Prefix unknown fields with "Field"
2018-08-22 18:06:29 -03:00
Thomas Guillemard
b08d889f95 SvcSetHeapSize: match kernel check for invalid size (#374)
This fix games like DK Country
2018-08-21 13:05:12 -03:00
ReinUsesLisp
726de8c46a Rendertarget attachments, texture and image changes (#358)
* Add multiple color outputs for fragment shaders

* Add registers and gal enums

* Use textures for framebuffers and split color and zeta framebuffers

* Abstract texture and framebuffer targets as an image

* Share images between framebuffers and textures

* Unstub formats

* Add some formats

* Disable multiple attachments

* Cache framebuffer attachments

* Handle format types

* Add some rendertarget formats

* Code cleanup

* Fixup half float types

* Address feedback

* Disable multiple attachments in shaders

* Add A4B4G4R4 image format

* Add reversed section for image enums
2018-08-19 22:25:26 -03:00
gdkchan
056c2840b1
Fix MapPhysicalMemory when block position is less than map position (#359)
* Fix MapPhysicalMemory when block position is less than map position

* Only try to free pages that are actually mapped

* Only unmap after freeing the memory
2018-08-17 10:39:35 -03:00
gdkchan
521751795a
Code style fixes and nits on the HLE project (#355)
* Some style fixes and nits on ITimeZoneService

* Remove some unneeded usings

* Remove the Ryujinx.HLE.OsHle.Handles namespace

* Remove hbmenu automatic load on process exit

* Rename Ns to Device, rename Os to System, rename SystemState to State

* Move Exceptions and Utilities out of OsHle

* Rename OsHle to HOS

* Rename OsHle folder to HOS

* IManagerDisplayService and ISystemDisplayService style fixes

* BsdError shouldn't be public

* Add a empty new line before using static

* Remove unused file

* Some style fixes on NPDM

* Exit gracefully when the application is closed

* Code style fixes on IGeneralService

* Add 0x prefix on values printed as hex

* Small improvements on finalization code

* Move ProcessId and ThreadId out of AThreadState

* Rename VFs to FileSystem

* FsAccessHeader shouldn't be public. Also fix file names casing

* More case changes on NPDM

* Remove unused files

* Move using to the correct place on NPDM

* Use properties on KernelAccessControlMmio

* Address PR feedback
2018-08-16 20:47:36 -03:00
gdkchan
182d716867
Remove artificial call count limit for EndGl (#357) 2018-08-16 20:45:00 -03:00
gdkchan
c393cdf8e3
More flexible memory manager (#307)
* Keep track mapped buffers with fixed offsets

* Started rewriting the memory manager

* Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks

* MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks

* Rebased

* Optimize the map/unmap physical memory svcs

* Integrate shared font support

* Fix address space reserve alignment

* Some fixes related to gpu memory mapping

* Some cleanup

* Only try uploading const buffers that are really used

* Check if memory region is contiguous

* Rebased

* Add missing count increment on IsRegionModified

* Check for reads/writes outside of the address space, optimize translation with a tail call
2018-08-15 15:59:51 -03:00
emmauss
76d95dee05 Implement ITimeZone 201, 202 (#327)
* Implement ITimeZone 201, 202

* fix alignment

* fix array count

* fix mismatching datetime kind and timezone
2018-08-15 15:53:23 -03:00
ReinUsesLisp
0673dc183a Reset cache on command buffer execution instead of sync calls (#341)
Also resets const buffer cache on CbData calls.
Non-const buffer data might also change while a command buffer is
executing but that's very unlikely.
2018-08-14 22:27:05 -03:00
gdkchan
9ac5583513
Better support for user accounts (#349)
* Better support for user accounts

* Nits

* Check for invalid ids
2018-08-14 19:02:42 -03:00
emmauss
17f54b5d78 Implement IProfile Get and GetBase (#266)
* implement IProfile Get(Base)

* use default user

* changed userid
2018-08-13 21:13:01 -03:00