Commit graph

750 commits

Author SHA1 Message Date
Xpl0itR
098f76a695
all requested changes marked as resolved have been changed 2019-08-08 21:06:40 +01:00
Xpl0itR
607fd55624
fixed some minor issues 2019-08-08 21:06:39 +01:00
Xpl0itR
d0ff8f44ae
updated nuget package with missing dlls and changed emmauss' requested changes 2019-08-08 21:06:39 +01:00
Xpl0itR
e42b68977f
New features 2019-08-08 21:06:38 +01:00
Xpl0itR
55eba3087f
Added 'Open Ryujinx Folder' button to the file menu and did some small fixes 2019-08-08 21:06:37 +01:00
Xpl0itR
a42993d11d
Moved Files
moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui
2019-08-08 21:06:37 +01:00
Xpl0itR
bf82c5f5d5
Large changes
Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs
2019-08-08 21:06:36 +01:00
Xpl0itR
fd5853fc24
caught an exception when ryujinx tries to load non-homebrew as homebrew 2019-08-08 21:06:36 +01:00
Xpl0itR
504199394f
did some more bug testing and fixed another 2 bugs 2019-08-08 21:06:35 +01:00
Xpl0itR
9518dc831c
Did some testing and fixed some bugs
Im not happy with one of the fixes so i will do it properly an upcoming commit
2019-08-08 21:06:35 +01:00
Xpl0itR
708a518e10
Added LastPlayed and TimePlayed columns to the game list 2019-08-08 21:06:34 +01:00
Xpl0itR
e1ba904108
fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash 2019-08-08 21:06:34 +01:00
Xpl0itR
6c814accbe
put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads 2019-08-08 21:06:34 +01:00
Xpl0itR
982215c66f
requested changes have been changed 2019-08-08 21:06:33 +01:00
Xpl0itR
da3d3f040e
add nuget package which contains gtk dependencies 2019-08-08 21:06:33 +01:00
Xpl0itR
9435231878
Game icons and names are now shown in the games list 2019-08-08 21:06:33 +01:00
Xpl0itR
3fbaf43d4e
added spin button for new option and tooltips to settings 2019-08-08 21:06:32 +01:00
Xpl0itR
f04f5bcd52
new about window added, still needs styling 2019-08-08 21:06:31 +01:00
Xpl0itR
248ef8ce6b
minor edits 2019-08-08 21:06:30 +01:00
Andy Adshead
74ee0ad452
Cleanup settings ui 2019-08-08 21:06:30 +01:00
Xpl0itR
be8b57bc66
3rd wave of changes 2019-08-08 21:06:30 +01:00
Xpl0itR
86191d78bb
2nd wave of changes 2019-08-08 21:06:29 +01:00
Xpl0itR
8b2781c578
1st wave of changes 2019-08-08 21:04:52 +01:00
Xpl0itR
f225c48ea9
minor changes 2019-08-08 21:04:52 +01:00
Xpl0itR
454ef62ee6
Added Control Settings
one day done feature :P
2019-08-08 21:04:51 +01:00
Xpl0itR
a97fcd3859
aesthetic changes to General Settings menu 2019-08-08 21:04:51 +01:00
Xpl0itR
03274fea09
big rewrite 2019-08-08 21:02:30 +01:00
Xpl0itR
38155b747a
general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir 2019-08-08 21:02:30 +01:00
Xpl0itR
6672b6c1de
some more edits and a bug fix 2019-08-08 21:02:29 +01:00
Xpl0itR
910f9a1abc
Added GTK to process path, fixed a bug and minor edits 2019-08-08 21:01:25 +01:00
Xpl0itR
8ca2f16686
Added custom GUI theme support and changed the defualt theme to one I just wrote 2019-08-08 21:01:25 +01:00
Xpl0itR
a0fe3401df
Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs 2019-08-08 21:01:24 +01:00
Xpl0itR
cf3a6cd993
Added support for loading icon from .nro files and cleaned up the code a bit 2019-08-08 21:01:24 +01:00
Xpl0itR
d50204c108
Updated to use Glade
Also added scrollbar and default dark theme
2019-08-08 21:01:24 +01:00
Xpl0itR
f364337e58
Added GUI to Ryujinx 2019-08-08 21:01:24 +01:00
gdkchan
a731ab3a2a Add a new JIT compiler for CPU code (#693)
* Start of the ARMeilleure project

* Refactoring around the old IRAdapter, now renamed to PreAllocator

* Optimize the LowestBitSet method

* Add CLZ support and fix CLS implementation

* Add missing Equals and GetHashCode overrides on some structs, misc small tweaks

* Implement the ByteSwap IR instruction, and some refactoring on the assembler

* Implement the DivideUI IR instruction and fix 64-bits IDIV

* Correct constant operand type on CSINC

* Move division instructions implementation to InstEmitDiv

* Fix destination type for the ConditionalSelect IR instruction

* Implement UMULH and SMULH, with new IR instructions

* Fix some issues with shift instructions

* Fix constant types for BFM instructions

* Fix up new tests using the new V128 struct

* Update tests

* Move DIV tests to a separate file

* Add support for calls, and some instructions that depends on them

* Start adding support for SIMD & FP types, along with some of the related ARM instructions

* Fix some typos and the divide instruction with FP operands

* Fix wrong method call on Clz_V

* Implement ARM FP & SIMD move instructions, Saddlv_V, and misc. fixes

* Implement SIMD logical instructions and more misc. fixes

* Fix PSRAD x86 instruction encoding, TRN, UABD and UABDL implementations

* Implement float conversion instruction, merge in LDj3SNuD fixes, and some other misc. fixes

* Implement SIMD shift instruction and fix Dup_V

* Add SCVTF and UCVTF (vector, fixed-point) variants to the opcode table

* Fix check with tolerance on tester

* Implement FP & SIMD comparison instructions, and some fixes

* Update FCVT (Scalar) encoding on the table to support the Half-float variants

* Support passing V128 structs, some cleanup on the register allocator, merge LDj3SNuD fixes

* Use old memory access methods, made a start on SIMD memory insts support, some fixes

* Fix float constant passed to functions, save and restore non-volatile XMM registers, other fixes

* Fix arguments count with struct return values, other fixes

* More instructions

* Misc. fixes and integrate LDj3SNuD fixes

* Update tests

* Add a faster linear scan allocator, unwinding support on windows, and other changes

* Update Ryujinx.HLE

* Update Ryujinx.Graphics

* Fix V128 return pointer passing, RCX is clobbered

* Update Ryujinx.Tests

* Update ITimeZoneService

* Stop using GetFunctionPointer as that can't be called from native code, misc. fixes and tweaks

* Use generic GetFunctionPointerForDelegate method and other tweaks

* Some refactoring on the code generator, assert on invalid operations and use a separate enum for intrinsics

* Remove some unused code on the assembler

* Fix REX.W prefix regression on float conversion instructions, add some sort of profiler

* Add hardware capability detection

* Fix regression on Sha1h and revert Fcm** changes

* Add SSE2-only paths on vector extract and insert, some refactoring on the pre-allocator

* Fix silly mistake introduced on last commit on CpuId

* Generate inline stack probes when the stack allocation is too large

* Initial support for the System-V ABI

* Support multiple destination operands

* Fix SSE2 VectorInsert8 path, and other fixes

* Change placement of XMM callee save and restore code to match other compilers

* Rename Dest to Destination and Inst to Instruction

* Fix a regression related to calls and the V128 type

* Add an extra space on comments to match code style

* Some refactoring

* Fix vector insert FP32 SSE2 path

* Port over the ARM32 instructions

* Avoid memory protection races on JIT Cache

* Another fix on VectorInsert FP32 (thanks to LDj3SNuD

* Float operands don't need to use the same register when VEX is supported

* Add a new register allocator, higher quality code for hot code (tier up), and other tweaks

* Some nits, small improvements on the pre allocator

* CpuThreadState is gone

* Allow changing CPU emulators with a config entry

* Add runtime identifiers on the ARMeilleure project

* Allow switching between CPUs through a config entry (pt. 2)

* Change win10-x64 to win-x64 on projects

* Update the Ryujinx project to use ARMeilleure

* Ensure that the selected register is valid on the hybrid allocator

* Allow exiting on returns to 0 (should fix test regression)

* Remove register assignments for most used variables on the hybrid allocator

* Do not use fixed registers as spill temp

* Add missing namespace and remove unneeded using

* Address PR feedback

* Fix types, etc

* Enable AssumeStrictAbiCompliance by default

* Ensure that Spill and Fill don't load or store any more than necessary
2019-08-08 21:56:22 +03:00
emmauss
1ba58e9942 Use the Joystick interface for game controller input. (#737)
* switch gamepad input to joystick

* fix style nits

* modify config.md to reflect new changes
2019-08-05 20:58:27 +02:00
Thomas Guillemard
54b79dffa8 Implement time:* 4.0.0 commands (#736)
* Abstract SteadyClockCore to follow Nintendo changes in 4.x

This is the ground work for 4.0.0 support

* Implement TickBasedSteadyClockCore

Preparation for the ephemeral clock.

* Refactor SystemClockCore to follow 4.0.0 changes

* Implement EphemeralNetworkSystemClock

* Implement GetSnapshotClock & GetSnapshotClockFromSystemClockContext

* Implement CalculateStandardUserSystemClockDifferenceByUser & CalculateSpanBetween

* Remove an outdated comment & unused import

* Fix a nit and GetClockSnapshot

* Address comment
2019-07-25 11:44:51 -03:00
emmauss
d254548548
Little rewrite of HID input (#723)
* change hid sharedmem writing to use structures
2019-07-22 20:15:46 +03:00
Thomas Guillemard
1f3a34dd7a Implement time:* 2.0.0 & 3.0.0 commands (#735)
* Finish ISteadyClock implementation

* Implement IsStandardNetworkSystemClockAccuracySufficient

Also use signed values for offsets and TimeSpanType

* Address comments

* Fix one missing nit and improve one comment
2019-07-15 19:52:35 +02:00
Ac_K
d8424a63c6 Update IpcService.cs (#734)
Remove `BindingFlags.NonPublic` Flag
2019-07-14 23:30:47 +02:00
Ac_K
d5cc919369 Fix private on some call (#733)
Since the reflection code didn't take care about `private`, this cause regression, so I have added the flag just in case and fix calls who are declared with `private` to `public`.
2019-07-14 23:22:53 +02:00
Thomas Guillemard
97d0c62423 Accurately implement steady & system clocks (#732)
* Improve SteadyClock implementation accuracy

* Rewrite system clocks to be accurate

* Implement IStaticService 100 & 101

* Add time:* permissions

* Address comments

* Realign TimePermissions definitions

* Address gdk's comments

* Fix after rebase
2019-07-14 22:50:11 +02:00
Ac_K
4ad3936afd Refactoring result codes (#731)
* refactoring result codes

- Add a main enum who can handle some orphalin result codes and the default `ResultCode.Success` one.
- Add sub-enum by services when it's needed.
- Remove some empty line.
- Recast all service calls to ResultCode.
- Remove some unneeded static declaration.
- Delete unused `NvHelper` class.

* NvResult is back

* Fix
2019-07-14 16:04:38 -03:00
Thomas Guillemard
4926f6523d Fix bsd recvfrom implementation (#730) 2019-07-14 01:47:18 +02:00
Ac_K
560ccbeb2d Refactoring commands handling (#728)
* Refactoring commands handling

- Use Reflection to handle commands ID.
- Add all symbols (from SwIPC so not all time accurate).
- Re-sort some services commands methods.
- Some cleanup.
- Keep some empty constructor for consistency.

* Fix order in IProfile
2019-07-11 22:13:43 -03:00
Alex Barney
f723f6f39a Update to LibHac 0.5.0 (#725)
* Update to libhac 0.5

* Catch HorizonResultException in IFileSystemProxy

* Changes based on feedback
2019-07-10 19:20:01 +02:00
Ac_K
596b61ce1f IPC services refactoring (#726)
* IPC services refactoring

- Use custom Attributes to handle services.
- Add a way to set the permissions and fix the bsd service to use it.
- Little cleanup.
- C#7.1 is required.

* fix var name

* fix syntax

* Change Permission to Parameter

* Delete BsdServicePermissionLevel.cs

* Fix Linq
2019-07-10 12:59:54 -03:00
LDj3SNuD
e5b88de22a Add Saddlv_V Inst. Improve Cnt_V, Dup_Gp & Ins_Gp Tests. Tuneup Cls_V & Clz_V Tests. (#720)
* Update PackageReferences.

* Improve Cnt_V Test. Tuneup Cls_V & Clz_V Tests.

Nit.

* Nit.

* Improve Dup_Gp & Ins_Gp Tests.

* Update for Saddlv_V Inst.

* Update for Saddlv_V Inst.

* Update for Saddlv_V Inst.
2019-07-08 11:55:37 -03:00
Thomas Guillemard
708620252e ITimeZoneService rewrite (#722)
* Clean up ITimeZoneService

Add error codes and simplify parsing

* Add accurate timezone logic

TOOD: LoadTimeZoneRule and location name cmds.

* Integrate the new TimeZone logic

* SCREAMING_UNIX_CASE => PascalCase

* Address comments

* Reduce use of pointer in the LoadTimeZoneRule logic

* Address comments

* Realign tzIfStream logic in LoadTimeZoneRule

* Address gdk's comments
2019-07-04 17:20:40 +02:00