Commit graph

289 commits

Author SHA1 Message Date
greggameplayer 652238f526 Add SetScreenShotImageOrientation (#310)
* Add SetScreenShotImageOrientation

* add a stubbed print
2018-08-08 03:00:54 -03:00
gdkchan 0cec4cbee5
Fix race condition on IdDictionary (#333) 2018-08-07 23:32:24 -03:00
Thomas Guillemard eeb626947e Implement Shared Fonts (#215)
* Implement Shared Fonts

This fully implements shared fonts.
This commit is provided without fonts.
This commit also add Size to HSharedMem.Positions to be able to add fonts to shared zones when RequestLoad is called.

* Require the user to provide fonts in RyuFS/system

* Use File.Exits instead of relying ona try/catch and change system resource exception format a bit

* Make sure that font sum doesn't exceed 17MB

Also rename font data dictionary for coherence.
2018-08-04 18:38:49 -03:00
AboodMadridista c68bca5396 Use the more specific NotImplementedException type instead of just Exception (#322) 2018-08-02 21:58:48 -03:00
emmaus a9a2c0c2f5 moved metadata to process 2018-08-02 23:33:28 +03:00
emmauss d137405e94
Merge pull request #298 from Cyuubi/npdm
Add Npdm parsing into Ryujinx.HLE
2018-08-02 22:59:14 +03:00
greggameplayer ce96a45685 Implement A2B10G10R10 TextureFormat (#248)
* add A2B10G10R10 TextureFormat

* return correct PixelFormat & PixelType

* return correct texture size

* return correct Bytes Per Pixel
2018-07-29 01:41:02 -03:00
Starlet e07b0265c6 Add 5.0.0 IPCs (#300)
* Implement 5.0.0 IPC

* Align ControlWithContext
2018-07-29 01:40:02 -03:00
ReinUsesLisp 3208173620 Cache changes (#302)
* Skip repeated cache tests between same sync

* Skip some checks for regions where just one resource is resident

* Dehardcode residency page size

* Some cleanup
2018-07-29 01:39:15 -03:00
gdkchan fdda67d476
Some fix to IRequest on NIFM, support sending objects to services (#294) 2018-07-29 01:36:29 -03:00
emmaus 4a3ed0cec7 implemented ListDisplays 2018-07-24 21:38:55 +00:00
ReinUsesLisp 1344a47c77 Blit framebuffer without shaders (#229)
* Blit framebuffer without shaders

* De-hardcode native size values

* Adapt to dehardcoded framebuffers and address feedback

* Remove framebuffer rebinding
2018-07-23 16:21:05 +02:00
greggameplayer ed29982f9b Link BCAT:U & BCAT:A & BCAT:M & BCAT:S (#257)
* Link BCAT:U & BCAT:A & BCAT:M & BCAT:S

* delete unneeded using

* delete unneeded spaces

* delete unneeded using

* Add comment (1/2)

* Add comment (2/2)

* delete unneeded using
2018-07-23 16:20:16 +02:00
Ac_K ed075ae3cd
Update ITimeZoneService.cs
Fix typo
2018-07-22 19:38:29 +00:00
Starlet 4b8a65fd84 Add Npdm parsing into Ryujinx.HLE 2018-07-20 17:53:06 -04:00
Rygnus 241b46540d Stub AppletOE UnlockExit (#279)
* Implement AppletOE UnlockExit
2018-07-19 20:27:50 -03:00
ReinUsesLisp 5fe0bc584b Send data to OpenGL host without client-side copies (#285)
* Directly send host address to buffer data

* Cleanup OGLShader

* Directly copy vertex and index data too

* Revert shader bind "cache"

* Address feedback
2018-07-19 16:02:51 -03:00
Thomas Guillemard c9fc52edb6 Fix SystemPathToSwitchPath platform issues and make sure to delete temporary NRO after sessions dispose (#293) 2018-07-19 15:44:52 -03:00
gdkchan 60f2198a1e
Support deswizzle of sparse tiled textures and some frame buffer fixes (#275)
* Attempt to support deswizzle of sparse tiled textures

* Use correct frame buffer and viewport sizes, started to clean up the copy engine

* Correct texture width alignment

* Use Scale/Translate registers to calculate viewport rect

* Allow texture copy between frame buffers
2018-07-19 02:30:21 -03:00
Ac_K 8b685b12f0 Implement SvcWaitForAddress 0x34 (#289)
* Implement SvcWaitForAddress 0x34

Currently needed by Sonic Mania Plus

* Fix mistake

* read-decrement-write locked
2018-07-19 01:03:53 -03:00
Ac_K 6a69001aa2
Update IGeneralService.cs
Fixed little mistake on the debug string.
2018-07-19 03:10:51 +02:00
simonmkwii-dev 2795af038d Implement GetCurrentIpAddress() and stub GetCurrentNetworkProfile() (#271)
* Implement GetCurrentIpAddress()

...and stub GetCurrentNetworkProfile()

* Update IGeneralService.cs

* Actually implement it properly this time...

* <snip>

* Made some requested changes

* Added requested changes.

* Added more requested changes.

* oof

* Local > Address

* Cyuubumped

* Change PrintInfo > PrintDebug

* Revert change
2018-07-19 03:06:45 +02:00
greggameplayer 120fe6b74a Implement BF10GF11RF11 TextureFormat (#246)
* add BF10GF11RF11 TextureFormat

* return correct PixelFormat & PixelType

* return correct texture size

* return correct Bytes Per Pixel

* correct PixelType
2018-07-19 01:26:28 +02:00
greggameplayer 0a13900bc9 Implement Z24S8 TextureFormat (#247)
* add Z24S8 TextureFormat

* return correct PixelFormat & PixelType

* return correct texture size

* return correct Bytes Per Pixel

* Correct PixelType
2018-07-19 01:19:37 +02:00
emmauss 2236f4b2c3 Implement IFileSystem:CleanDirectoryRecursively (#283)
* implement ifilesys:cleandirectoryrecursively

* clean up Ifilesystem
2018-07-18 21:05:17 +02:00
gdkchan 98223b0e7d Fix wrong assignment and allow null FilePaths on Executable 2018-07-17 17:28:41 -03:00
Thomas Guillemard c2c765b30f hbabi: Implement argv (#272)
This commit implements the argv config key in Ryujinx (by creating a temporary copy of the homebrew executable in the sdmc VFS) to make it possible
to load libnx's "romfs" files.

This commit also call Os.Dispose in Ns.OnFinish to dispose all resources when exiting
2018-07-17 16:14:27 -03:00
greggameplayer e71da4fb74 Implement BC6H_SF16 & BC6H_UF16 Texture Formats (#255)
* Implement BC6H_SF16 & BC6H_UF16

* correct coding style (1/5)

* correct coding style (2/5)

* correct coding style (3/5)

* correct coding style (4/5)

* correct coding style (5/5)
2018-07-16 15:09:34 -03:00
gdkchan 50b706e2ba Fix RevMagic on audren 2018-07-15 00:42:59 -03:00
gdkchan a48ed788bf Remove outdated comment 2018-07-15 00:37:30 -03:00
gdkchan 8652dbb57c Small nit on GetAudioRendererWorkBufferSize 2018-07-15 00:34:12 -03:00
gdkchan 21e590c3ab
Add support for ioctl2, SetTimeout and KickoffPbWithAttr (#261)
* Add support for ioctl2, SetTimeout and KickoffPbWithAttr

* Call UnloadProcess on NvHostChannelIoctl aswell
2018-07-15 00:04:46 -03:00
gdkchan 98c6ceede5
Audio Renderer improvements (#210)
* Partial voice implementation on audio renderer

* Implemented audren resampler (based on original impl)

* Fix BiquadFilter struct

* Pause audio playback on last stream buffer

* Split audren/audout files into separate folders, some minor cleanup

* Use AudioRendererParameter on GetWorkBufferSize aswell

* Bump audren version to REV4, name a few things, increase sample buffer size

* Remove useless new lines
2018-07-14 23:57:41 -03:00
gdkchan fc12fca962
Allow using ulong max value as yield (#263) 2018-07-14 13:53:44 -03:00
gdkchan 2f37583ab3
Some small shader related fixes (#258)
* Some small shader related fixes

* Address PR feedback
2018-07-14 13:08:39 -03:00
Starlet 494f8f0248 Implement CSRNG (Cryptographically Secure Random Bytes) (#216)
* Implement CSRNG (Cryptographically Secure Random Bytes)

* Compliant with review.

* Dispose Rng
2018-07-13 23:36:57 +02:00
Thomas Guillemard 37bf02f057 TimeZone implements cmd 0, 1, 2, 3, 4 and 100 (#250)
The implementation of the TimezoneRule isn't matching hardware but
doesn't need to be accurate (games are only passing the value)
2018-07-13 23:35:19 +02:00
greggameplayer 3b00333b0c Add return of Texture Size and Bytes Per Pixel of ASTC2D 5x5, 6x6, 8x8, 10x10 and 12x12 (#249)
* return correct size of ASTC 5x5, 6x6, 8x8, 10x10 and 12x12

* return correct Bytes Per Pixel

* Use method in order to get CompressedTextureSize

* Add Read16BptCompressedTexture method

* add Bpb integer argument
2018-07-12 21:27:59 -03:00
ReinUsesLisp cd18ab29df Loop GLScreen with custom method (#244)
* Loop GLScreen with custom method

* Fix deadlocks

* Fix screen resizing

* Change event to bool

* Try to fix quitting error

* Set title from main thread

* Queue max 1 vsync, fix high FPS after a slowdown
2018-07-12 14:03:52 -03:00
David 37071285bc NvGetConfig with production/non production swapping (#243)
* GetConfig should return 0x30006 in production mode

* GetConfig will now check settings only if nv!rmos_set_production_mode is set to "0"

* Code formatting, TryGetValue

* Slight fixup

* dont forget the setting

* Implemented non production mode setting grabbing

* format issue

* style changes
2018-07-12 03:41:35 +02:00
gdkchan 1968386808
Add locking methods to the ogl resource cache (#238)
* Add locking methods to the ogl resource cache

* Remove some unused arguments

* Add the ZF32 texture format
2018-07-09 23:01:59 -03:00
gdkchan 791fe70810
Allow sample rate of 0 on OpenAudioOut, fix 5.1 sound output (#240) 2018-07-09 22:49:07 -03:00
gdkchan 095db47e13
Query multiple pages at once with GetWriteWatch (#222)
* Query multiple pages at once with GetWriteWatch

* Allow multiple buffer types to share the same page, aways use the physical address as cache key

* Remove a variable that is no longer needed
2018-07-08 16:55:15 -03:00
ReinUsesLisp 6479c3e484 Implement GPU primitive restart (#221) 2018-07-08 13:14:35 -03:00
gdkchan dc04b5465f
Improvements to IAudioOutManager (#232)
* Improvements to IAudioOutManager

* Make implementation private
2018-07-08 12:42:10 -03:00
ReinUsesLisp 0bec547b9d Disable front facing and face culling to avoid regression (#226)
* Disable tests for framebuffer blitting
2018-07-06 23:40:12 -03:00
ReinUsesLisp 97ca974213 Implement some GPU features (#209)
* Implement stencil testing

* Implement depth testing

* Implement face culling

* Implement front face

* Comparison functions now take OGL enums too

* Fix front facing when flipping was used

* Add depth and stencil clear values
2018-07-05 15:47:29 -03:00
gdkchan c206239d28 Fix formatting on ISettingsServer 2018-07-03 21:45:41 -03:00
John Clemis d24ea0d51b Add Controller Support (#196)
* Added Basic Controller Support

* Added Extra Configuration Options

Added a GamePad_Enable option and GamePad_Index option

* Revert "Added Extra Configuration Options"

This reverts commit 6cc56bfe7e.

* Revert "Revert "Added Extra Configuration Options""

This reverts commit 4809e5effe.

* Forgot to change the Gamepad Index

* Added Configuration for the A B X Y Buttons

* Added Button Configuration for all other Buttons

* Added Basic Joystick Configuration

* Fixed Joystick Axis Problems

Fixed Joystick Axis Problems when switching around the Joysticks (Left Stick is Right and Right stick is Left)

* Refactored all of the button mapping code

* Changes in compliance with review

* Changes in compliance with review

* Fixed problems in the configuration file with different regions

* Changes in compliance with review
2018-07-02 19:08:54 -03:00
Thomas Guillemard 0c96e22d40 Some things for time:* (#211)
- Fully implement ISystemClock
- Implement ISteadyClock 1.0 cmds
- Add cmd 300 to IStaticService
- Add EphemeralNetwork to SystemClockType
2018-07-02 02:03:05 +02:00
Lordmau5 e913d56fdc Implement GetReleasedAudioOutBufferAuto properly (#206)
* Implement GetReleasedAudioOutBufferAuto properly

* Also implement AppendAudioOutBufferAuto properly
2018-06-30 12:53:04 -03:00
Thomas Guillemard 2f25b34941 Add linux-x64 to RID property to make tests works on linux (#205) 2018-06-30 12:43:04 -03:00
gdkchan 3e81421b2f
Add support for vertex base on indexed draws, fix index buffer first (untested) (#197) 2018-06-28 20:48:18 -03:00
greggameplayer 3262fd13da add the forgotten mm:u link (#190) 2018-06-28 23:32:07 +02:00
gdkchan 22f138628b Somewhat better ClearBuffers implementation 2018-06-28 00:11:49 -03:00
gdkchan e6eeb6f09f
Add support for Vertex Program A and other small shader improvements (#192)
* Add WIP support for Vertex Program A, add the FADD_I32 shader instruction, small fix on FFMA_I encoding, nits

* Add separate subroutines for program A/B, and copy attributes to a temp

* Move finalization code to main

* Add new line after flip uniform on the shader

* Handle possible case where VPB uses an output attribute written by VPA but not available on the vbo

* Address PR feedback
2018-06-27 23:55:08 -03:00
gdkchan 900a84ae0a Fix vertex buffer size on the gpu when the draw vertex count is less than the buffer size, added a few more registers (currently not implemented) 2018-06-27 01:32:28 -03:00
gdkchan b8be89ab2d Relax GetThreadContext3 by allowing it to get the context of a running thread 2018-06-26 01:26:21 -03:00
gdkchan 2f29894d9f Set PC value on SvcCall aswell 2018-06-26 01:14:18 -03:00
gdkchan 65105c2a3b Implement SvcGetThreadContext3 2018-06-26 01:10:15 -03:00
gdkchan 8f4cd35ade Fix GetLastOpenedUser stub returning an invalid account id value 2018-06-25 17:12:59 -03:00
gdkchan 7c7ee8f8ca Aways write voice state as finished playing while proper audren support is not in place 2018-06-25 02:04:19 -03:00
gdkchan e7559f128f
Small OpenGL Renderer refactoring (#177)
* Call OpenGL functions directly, remove the pfifo thread, some refactoring

* Fix PerformanceStatistics calculating the wrong host fps, remove wait event on PFIFO as this wasn't exactly was causing the freezes (may replace with an exception later)

* Organized the Gpu folder a bit more, renamed a few things, address PR feedback

* Make PerformanceStatistics thread safe

* Remove unused constant

* Use unlimited update rate for better pref
2018-06-23 21:39:25 -03:00
gdkchan 69697957e6 Workaround for recent audren regression 2018-06-23 03:17:07 -03:00
gdkchan c26ddd6259
Fix 3 graphics related issues (#180)
* Fix 3 graphics related bugs

* OGLShader shouldn't be public (yet)
2018-06-23 02:00:44 -03:00
Starlet 5182361f4b Better audren implementation (#179) 2018-06-23 02:00:14 -03:00
gdkchan 3e6afeb513
Fix some thread sync issues (#172)
* Fix some thread sync issues

* Remove some debug stuff

* Ensure that writes to the mutex address clears the exclusive monitor
2018-06-21 23:05:42 -03:00
Jules Blok 35e695552e NvGpuEngine3d: Fix uploading vertex arrays without index buffers. (#173) 2018-06-18 10:59:03 -03:00
gdkchan 46f18af6be Do not read or write macros to main memory, use a separate memory instead (as this apparently what the real thing does) 2018-06-18 01:32:11 -03:00
Ac_K 4e430760b4 Implement NPDM files parser (#169)
* Implement NPDM files parser

(Currently not used in Ryujinx)

* Add credits

* Add Swap32

* Update Npdm.cs

* Update ACI0.cs

* Update ACID.cs

* Update Npdm.cs

* Update EndianSwap.cs

* Update ACI0.cs

* Update ACID.cs

* Update KernelAccessControl.cs

* Update NpdmInfo.cs

* Update ServiceAccessControl.cs

* Update NpdmInfo.cs
2018-06-17 23:28:11 -03:00
Ac_K 3c4dafff3f
Merge pull request #152 from greggameplayer/patch-5
Implement ListAudioOutsAuto & OpenAudioOutAuto
2018-06-17 04:16:16 +00:00
greggameplayer 5a3449f5d9
delete mixed tabs & spaces & use void for methods 2018-06-15 17:54:18 +02:00
greggameplayer e40db09bed
add a new Method for OpenAudioOut & OpenAudioOutAuto 2018-06-15 17:41:07 +02:00
greggameplayer 4397049c6a Implement ListAudioOutsAuto & OpenAudioOutAuto 2018-06-15 17:24:02 +02:00
Ac_K e581abb2f5
Merge pull request #160 from greggameplayer/patch-7
Implement GetAvailableLanguageCodes2 with a method
2018-06-13 15:40:37 +00:00
greggameplayer 644a328b88
change places of the args of GetAvailableLanguagesCodesMethod 2018-06-13 17:38:19 +02:00
gdkchan 36827c2355
Partial GPU DMA support (#158) 2018-06-13 10:55:01 -03:00
greggameplayer 940de631ab
correct whitespaces 2018-06-13 15:12:03 +02:00
greggameplayer d70ed99fb1
Implement GetAvailableLanguageCodes2 with a method 2018-06-13 15:08:11 +02:00
Ac_K f1e866e248
Merge pull request #157 from Cyuubi/pctl-initialize-and-without-initialize
[PCTL] Add CreateServiceWithoutInitialize and Initialize
2018-06-13 00:53:54 +00:00
Starlet c646a00918 Compliant with review. 2018-06-12 20:51:59 -04:00
Lordmau5 5b9ce52108 Remove comment 2018-06-13 01:29:39 +02:00
Lordmau5 e6f6c6ad57 Merge branch 'master' into ICommonStateGetter 2018-06-13 01:28:49 +02:00
Starlet 8442a5917f [PCTL] Add CreateServiceWithoutInitialize and Initialize 2018-06-12 14:28:45 -04:00
Lordmau5 98e6a34608 Implement R16 texture format (#147) 2018-06-12 09:29:44 -03:00
DatBoiJay3 274c996ff1
Neatness counts 2018-06-11 19:53:44 -07:00
DatBoiJay3 39b8e6bc37
Fix input in SMO
Unsure if this will break other games though.
Please test. :)
2018-06-11 19:29:12 -07:00
Lordmau5 c636c74dd2 Merge branch 'master' into ICommonStateGetter 2018-06-11 06:03:37 +02:00
gdkchan 76f3b1b3a4 Rename Ryujinx.Core to Ryujinx.HLE and add a separate project for a future LLE implementation 2018-06-10 21:46:42 -03:00