Commit graph

138 commits

Author SHA1 Message Date
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
emmauss 6e48312052 Implement AcquireNpadStyleSetUpdate event (#306)
* implement get npad set event

* move npad style set event to hid service

* fix spacing

* change event to field

* dispose event
2018-08-13 18:31:09 -03:00
gdkchan 09593ae6d8
Add partial support to the TEX.B shader instruction (#342)
* Add partial support to the TEX.B shader instruction, fix for mixed indexed and non-indexed drawing

* Better exception
2018-08-13 18:22:09 -03:00
Unknown 1f983d981e fix DockedMode variable
delete unneeded spaces

fix DockedMode variable

fix DockedMode variable

change PerformanceMode cast to int
align ICommonStateGetter Commands
2018-08-11 15:31:34 +02:00
emmauss 8482e16dcc
Merge pull request #304 from emmauss/listdisplays
Implemented IApplicationDisplayService:ListDisplays
2018-08-11 15:32:56 +03:00
emmauss 402a143ae1
fix dock mode style issues 2018-08-11 12:24:55 +00:00
greggameplayer 1fd4311e12 Add the ability to set or not docked mode via config file (#227)
* Add a toggleable DockedMode bool
2018-08-11 15:12:28 +03:00
ReinUsesLisp 25dd5f4238 Low level graphics API prerequisites (#319)
* Add GalPipelineState and IGalPipeline

* Separate UploadVertex call

* Add ConstBuffer cache

* Move Vertex Assembly into GalPipelineState

* Move Uniform binds to GalPipelineState

* Move framebuffer flip into a buffer

* Rebase

* Fix regression

* Move clear values from VertexEndGl to ClearBuffers

* Rename obscure names O->Old S->New
2018-08-10 01:09:40 -03:00
greggameplayer 652238f526 Add SetScreenShotImageOrientation (#310)
* Add SetScreenShotImageOrientation

* add a stubbed print
2018-08-08 03:00:54 -03:00