Commit graph

291 commits

Author SHA1 Message Date
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
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
jduncanator
76a3172f17 Asynchronously log messages to the Console window (#395)
* Logging: Asynchronously log messages to the Console window

Writing to the Console blocks until the write completes. This has the potential to block any code path that logs to the application logger.

By queuing up log messages in an asynchronous queue and returning without blocking, we can speed up code paths that heavily log to the console (for example stubbed services like ServiceHid).

From testing this results in a roughly 8% time decrease between Ryujinx startup and the splash screen in Super Mario Odyssey on my system - 00:03:19.591 down to
00:03:04.354. Depending on your system, YMMV.

* Logging: Resolve code styling issues
2018-09-04 02:15:41 +02: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
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
ReinUsesLisp
7a308d9e73 Window related changes (#308)
* Use integer math for touch screen

* Sleep polling thread

* Rework host input

* Add fullscreen with F11 or Alt+Enter

* Address feedback
2018-07-29 01:35:36 -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
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
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 6cc56bfe7ed473fedf8dfe79c7a888bbe7cfe147.

* Revert "Revert "Added Extra Configuration Options""

This reverts commit 4809e5effe7f54cdb67bc5e2b4f01315ae34efc5.

* 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
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
ReinUsesLisp
a4020bb398 Port from OpenTK.NETCore to OpenTK.NetStandard (#176)
* Minor code changes

* Forgot to remove a method
2018-06-21 18:10:19 -03: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
gdkchan
a8ba340dde
Improved logging (#103) 2018-04-24 15:57:39 -03:00
gdkchan
b9af34f3dd [HLE/Kernel] Somewhat improved sync primitives 2018-04-18 23:52:36 -03:00
gdkchan
494e6dfa1e [GPU] Set frame buffer texture size to window size 2018-04-14 01:31:27 -03:00
emmauss
bbcad307bd Add logclass, made changes to logging calls (#79)
* add logclass, made changes to logging calls

* made enum parsing case insensitive

* enable logclass on partial or complete match
2018-04-13 22:02:24 -03:00
gdkchan
435f9ffad8 [HLE] Fix hid issues on some games 2018-04-13 17:39:45 -03:00
gdkchan
c8c86a3854
Fix for current framebuffer issues (#78)
[GPU] Fix some of the current framebuffer issues
2018-04-13 15:12:58 -03:00
gdkchan
b9aa3966c0 Merge shader branch, adding support for GLSL decompilation, a macro
interpreter, and a rewrite of the GPU code.
2018-04-08 16:41:38 -03:00
gdkchan
081ede2a9a Support the .romfs extension aswell 2018-04-06 02:02:13 -03:00
gdkchan
d4a3e8267b Allow enabling/disabling memory checks on config file 2018-03-20 18:42:13 -03:00
gdkchan
4314a8f3e5
[WIP] Add support for events (#60)
* Add support for events, move concept of domains to IpcService

* Support waiting for KThread, remove some test code, other tweaks

* Use move handle on NIFM since I can't test that now, it's better to leave it how it was
2018-03-19 15:58:46 -03:00
gdkchan
79a5939734
Improvements to audout (#58)
* Some audout refactoring and improvements

* More audio improvements

* Change ReadAsciiString to use long for the Size, avoids some casting
2018-03-15 21:06:24 -03:00
gdkchan
3777fb44cf Allow to enable/disable memory checks even on release mode through the flag, return error for invalid addresses on SvcMap*Memory svcs, do not return error on SvcQueryMemory (instead, return reserved for the end of the address space), other minor tweaks 2018-03-10 20:39:16 -03:00
emmauss
4038e63de1 Implement basic performance statistics (#53)
* implement basic frame time stats

* added game frame time

* made performancestatictics class non-static

* report average framerate instead of current framerate
2018-03-06 17:18:49 -03:00
gdkchan
344fc8a55d Try fixing NvFlinger rotation with scaling, return correct error code on WaitSignal timeout, always display window at the center of the screen 2018-03-04 20:32:18 -03:00
gdkchan
8dcffe6a51 Fix hid touch screen timestamp, add more log info 2018-03-04 00:06:44 -03:00
gdkchan
c14c69a10c
Refactor HID, fix issues (#48)
* Refactor HID, fix issues

* Fix on touch screen code with wrong offset

* Don't use magic values

* Replace more magic values with actual variables, fix touch screen coordinates on different window sizes
2018-03-02 22:49:17 -03:00
gdkchan
3936c93448 Map heap on heap base region, fix for thread start on homebrew, add FCVTMU and FCVTPU (general) instructions, fix FMOV (higher 64 bits) encodings, improve emit code for FCVT* (general) instructions 2018-02-23 21:59:38 -03:00
gdkchan
2ed733b1d5 Somewhat better NvFlinger (I guess) (fixes #30) 2018-02-23 18:48:27 -03:00
emmauss
1b33e2f1d4 implement single tap touchscreen (#34) 2018-02-22 10:28:27 -03:00
gdkchan
b2f733da78 FspSrv improvements, also fix ImageEnd for NROs without a MOD0 section 2018-02-21 18:56:52 -03:00
emmauss
62b827f474 Split main project into core,graphics and chocolarm4 subproject (#29) 2018-02-20 17:09:23 -03:00
Merry
dff28df84e Resize display to window size (#27) 2018-02-20 07:52:35 -03:00
gdkchan
f35d286c8d Rename ARegisters to AThreadState 2018-02-18 16:28:07 -03:00
gdkchan
5a0396efaf Minor cpu fixes 2018-02-18 16:01:21 -03:00
gdkchan
1c44d9f66d Fix for some SIMD issues 2018-02-18 01:57:33 -03:00
Ac_K
f469b968a8 HID Implementation (#20)
* Basic HID Implementation

* Basic HID Implementation in Config

* HID Corrections

* HID Corrections 2
2018-02-17 20:54:19 -03:00
gdkchan
ebddc40550 Add events to shared memory, make it work better with direct memory 2018-02-17 18:36:08 -03:00
Merry
1bfe6a9c22 Add some tests (#18)
* Add tests

* Add some simple Alu instruction tests

* travis: Run tests

* CpuTest: Add TearDown
2018-02-15 21:04:38 -03:00