Commit graph

482 commits

Author SHA1 Message Date
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
Merry b233ae964f AInstEmitSimdCvt: Half-precision to single-precision conversion (#235) 2018-07-12 15:51:02 -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
Ac_K 09c53fe06f
Update README.md 2018-07-12 00:08:20 +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 0a36bfbf92
Fix ZIP/UZP/TRN instructions when Rd == Rn || Rd == Rm (#239) 2018-07-09 22:48:28 -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
Merry 0f8f40486d ChocolArm64: More accurate implementation of Frecpe & Frecps (#228)
* ChocolArm64: More accurate implementation of Frecpe

* ChocolArm64: Handle infinities and zeros in Frecps
2018-07-08 16:54:47 -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
Merry af1516a146 ASoftFloat: Fix InvSqrtEstimate for negative values (#233) 2018-07-08 12:41:46 -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 c99b2884e4
Remove broken adds/cmn with condition check optimization (#218) 2018-07-03 21:54:05 -03:00
gdkchan c206239d28 Fix formatting on ISettingsServer 2018-07-03 21:45:41 -03:00
ReinUsesLisp 9cbf908cf5 Add FaceAttr in GLSL, unmanaged case in EmitTex and ConstantColorG80 blend factor (#207)
* Add FaceAttr (0x3fc) input attribute in GLSL

* Implement unmanaged case in EmitTex

* Add ConstantColor for 0xC001 (G80) from PR #145
2018-07-03 20:06:13 -03:00
gdkchan 741773910d
Add SMAXP, SMINP, UMAX, UMAXP, UMIN and UMINP cpu instructions (#200) 2018-07-03 03:31:48 -03:00
LDj3SNuD c228cf320d Add Rbit_V instruction. Add 8 tests (Rbit_V; Rev16_V, Rev32_V, Rev64_V). Improve CountSetBits8() algorithm. (#212)
* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update AInstEmitSimdLogical.cs

* Update AVectorHelper.cs

* Update ASoftFallback.cs

* Update Instructions.cs

* Update CpuTestSimd.cs

* Update CpuTestSimdReg.cs

* Improve CountSetBits8() algorithm.

* Improve CountSetBits8() algorithm.
2018-07-03 03:31:16 -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
LDj3SNuD 53934e8872 Add Saba_V, Sabal_V, Sabd_V, Sabdl_V, Uaba_V, Uabal_V; Update Uabd_V, Uabdl_V. Add 16 tests. (#204)
* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update AInstEmitSimdHelper.cs

* Update Instructions.cs

* Update CpuTest.cs

* Update CpuTestSimd.cs

* Update CpuTestSimdReg.cs
2018-06-30 12:40:41 -03:00
ReinUsesLisp edfd4bc860 Explicit GLSL "position" attribute location (#199) 2018-06-28 22:01:58 -03:00
gdkchan 4c7c21634e
Add Sse2 fallback to Vector{Extract|Insert}Single methods on the CPU (#193) 2018-06-28 20:52:32 -03:00
gdkchan bc26aa558a
Add support for the FMLA (by element/scalar) instruction (#187)
* Add support for the FMLA (by element/scalar) instruction

* Fix encoding
2018-06-28 20:51:38 -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
ReinUsesLisp af5f059d4e Fix GL.CreateBuffers -> GL.GenBuffers (#189) 2018-06-26 02:30:46 -03:00
ReinUsesLisp 09dfefed1f Implementation of UBOs instead of uniform constant arrays (#186)
* Sort uniform binding to avoid possible failures in drivers fewer bindings

* Throw exception for Cbuf overflow

* Search for free bindings instead of using locked ones

* EnsureAllocated when binding buffers

* Fix uniform bindings

* Remove spaces

* Use 64 KiB UBOs when available

* Remove double colon

* Use IdentationStr and avoid division in Cbuf offset

* Add spaces
2018-06-26 02:10:54 -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
LDj3SNuD c818093528 Add Sqxtun_S, Sqxtun_V with 3 tests. (#188)
* Update AInstEmitSimdArithmetic.cs

* Update Instructions.cs

* Update CpuTestSimd.cs
2018-06-25 23:36:20 -03:00
LDj3SNuD 8f6387128a Add Sse Opt. for Cmeq_V_2D, Cmgt_V_2D (Reg). Add Sse Opt. for Crc32cb, Crc32ch, Crc32cw, Crc32cx. Add 10 simple tests for Fcmgt, Fcmge, Fcmeq, Fcmle, Fcmlt (S, V) (Reg, Zero). Add 2 Cnt_V tests. (#183)
* Add files via upload

* Add files via upload

* Add files via upload

* CPE

* Add EmitSse42Crc32()

* Update CpuTestSimdCmp.cs

* Update Pseudocode.cs

* Update Instructions.cs

* Update CpuTestSimd.cs

* Update Instructions.cs
2018-06-25 22:32:29 -03:00
gdkchan 37a6e84fd4 Add REV16/32 (vector) instructions and fix REV64 2018-06-25 18:40:55 -03:00
gdkchan 8f4cd35ade Fix GetLastOpenedUser stub returning an invalid account id value 2018-06-25 17:12:59 -03:00
Rygnus 0bec9d8439 Add opcodes SQXTUN_S and SQXTUN_V (#184)
* Add SQXTUN_S and SQXTUN_V

Part 1/2 of commit

* Add SQXTUN_S and SQXTUN_V (2/2)

Part 2/2 of commit
2018-06-25 14:23:46 -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