Billy Laws
b23779bda1
Implement a block based GPU virtual memory manager
...
The GPU has it's own seperate address space to the CPU. It is able to
address 40 bit addresses and accesses the system memory. A sorted vector
has been used to store blocks as insertions are not very frequent.
2020-07-17 16:21:34 +00:00
Billy Laws
80e7b82bad
Fix the LUT shift in the audio resampler
...
We do not need to shift back as we use a struct to hold the LUT entries.
2020-07-17 14:30:53 +00:00
Billy Laws
a3a2cb682e
Truncate service names to 8 chars maximum
2020-07-17 14:30:53 +00:00
Billy Laws
8684e20a29
Treat GetAudioDeviceServiceWithRevisionInfo as GetAudioDeviceService
2020-07-17 14:30:53 +00:00
Billy Laws
3734599615
Extend the IAudioController implementation with volume stubs
...
This is used by ARMS.
2020-07-17 14:30:53 +00:00
Billy Laws
4cd7502df2
Implement post 4.0.0 language list features in ISettingsServer
2020-07-17 14:30:53 +00:00
Billy Laws
d1c1fa214c
Stub (un)lockExit in ISelfController
2020-07-17 14:30:53 +00:00
Billy Laws
c2fadffe60
Extend time services with support for the steady clock
...
The steady clock has a fixed timepoint that can not change while an
application is running.
2020-07-17 14:30:53 +00:00
Billy Laws
e3313ae731
Use the device sample rate when creating an audio track in audren
2020-07-17 14:30:53 +00:00
Willi Ye
27d7839bcb
MainActivity: Fix snackbar overlapping FABs
2020-07-14 09:15:57 +00:00
Willi Ye
c69e72a12e
services: Add missing audio functions
...
* Those are needed to run playtone and audren from switch homebrew examples
2020-07-13 21:14:57 +01:00
Willi Ye
118b4d8a43
MainActivity: Fix shadows of FABs
...
* Don't cut them off
2020-07-09 20:19:55 +01:00
Billy Laws
6548d4914d
Implement IAudioDevice for accessing audio output properties
...
This is used by Super Mario Odyssey in its init routine.
2020-07-09 18:42:36 +00:00
Billy Laws
f71b54b901
Stub SetRestartMessageEnabled in ISelfController
...
This is used by Super Mario Odyssey.
2020-07-09 18:42:36 +00:00
Billy Laws
2b4adee213
Stub gameplay recording and save data checking functions
...
Gameplay recording does not need to be emulated and EnsureSaveData isn't
necessary for proper save data support.
2020-07-09 18:42:36 +00:00
Billy Laws
2e60b5e60d
Stub play reporting services
2020-07-09 18:42:36 +00:00
Billy Laws
378e494d82
Add an empty ssl service implementation
...
This stubs a single function that is needed for SMO's init.
2020-07-09 18:42:36 +00:00
Billy Laws
a2c6a2a4ff
Add a base socket (bsd) services implementation
...
This stubs enough to pass SMO's socket init.
2020-07-09 18:42:36 +00:00
Billy Laws
2aefb4ae84
Implement network interface services
...
nifm:u is used by applications to enable a connection to the network.
2020-07-09 18:42:36 +00:00
Billy Laws
7102fa910e
Implement nfp services
2020-07-09 18:42:36 +00:00
Billy Laws
4cf7f9288e
Add an empty friend service implementation
...
This is used to access a users friends. It is used by Super Mario
Odyssey.
2020-07-09 18:42:36 +00:00
Billy Laws
ff5dddbd5b
Extend account services to support BAAS and some user operations
...
These are needed by Super Mario Odyssey and several other games.
2020-07-09 18:42:36 +00:00
Billy Laws
80270637c1
Fix the spacing on lm log messages
2020-07-09 18:42:36 +00:00
Billy Laws
dae799dbb5
Implement svcClearEvent
...
This removes a signal from a KEvent. It is used by Mario Odyssey.
2020-07-09 18:42:36 +00:00
Billy Laws
92e3f84242
Stub SetGraphicsFirmwareMemoryMarginEnabled
...
This is used by most retail games released after 3.0.
2020-07-09 18:42:36 +00:00
Billy Laws
ef9760570b
Extend parental control services
2020-07-09 18:42:36 +00:00
◱ PixelyIon
180ba97440
Print the sleep duration before actually sleeping
2020-07-09 14:08:58 +00:00
Billy Laws
c708c353e3
Fix block insertion
...
The subtraction was the wrong way round causing an underflow.
2020-07-09 14:08:58 +00:00
Billy Laws
1383e17341
Mark CodeStatic regions that are writable as CodeMutable instead
...
This is required for applications that attempt to map from the bss.
2020-07-09 14:08:58 +00:00
Billy Laws
2f8a217204
Use the heap size rather than the heap address when calculating the
...
total memory usage
Without this fix allocations are broken in Puyo Puyo Tetris.
2020-07-09 14:08:58 +00:00
Billy Laws
f1a28f7a1c
Fix the behaviour of svcQueryMemory and allow getting the extents of
...
unmapped regions
svcQueryMemory will return a valid descriptor for anything in the
address space, from 0 to 1 << addrSpaceBits, this was handled
incorrectly before and we were only returning descriptors if the
address was in a mapped region.
If an address in an unmapped region is requested then the extents of the
unmapped region up to the address space end are returned. If the address
requested is outside of the address space then the extents of the
inaccessible address space are returned.
To facilitate this support was added to MemoryManager::Get for
generating the extents of unmapped regions using the chunk list.
2020-07-09 14:08:58 +00:00
Billy Laws
670a80d2c4
Create a memory chunk for the stack shared memory
...
As the stack is automatically mapped in the guest by `clone` we do not
need to explicitly map it. This adds a flag to solve the issue.
Also mark the stack as stack rather than reserved.
2020-07-09 14:08:58 +00:00
Billy Laws
7884a60679
Make regions public members of the memory class and drop the type enum
...
There isn't really much benefit in having a getter or an enum, so drop
it.
2020-07-09 14:08:58 +00:00
Billy Laws
eadc016525
Lock the audio buffer lock when reading released buffers
...
This is required to prevent races in Puyo Puyo Tetris and potentially
other games.
2020-07-09 14:08:58 +00:00
Billy Laws
6329537a9e
Correct audren event handling and zero the sample buffer
...
Not zeroing the sample buffer causes issues when a voice is started but
is playing no samples. The system event handling was also reworked
according to Thog's info.
2020-07-09 14:08:58 +00:00
Billy Laws
24d086cbec
Correctly check the usage bits in DequeueBuffer and fix it's result
...
The extra parameters in result are required for retail games to accept
it as valid.
2020-07-09 14:08:58 +00:00
Billy Laws
a96b8eb7a3
Add vi:u and vi:s to service list and fix the result parcel type of OpenLayer
...
vi:u is used by user applications and games and it has the same api as
vi:m.
2020-07-09 14:08:58 +00:00
◱ PixelyIon
9ef25a6beb
IPC bug fixes
...
This fixes two bugs in IPC that were discovered when running Puyo Puyo
Tetris.
The CloneCurrentObject control IPC will now correctly return the handle
of the newly created object through move handles, rather than pushing it
as a result.
The size array of u16s with the sizes of each C buffer is now taken into
account when reading them. Before this change C buffers were entirely
broken.
2020-07-09 14:08:58 +00:00
Billy Laws
6e074d596c
Extend applet manager services for the library applet
...
This commit adds stubs for the library applet and adds support for
writing to an AM IStorage.
2020-07-09 13:57:28 +00:00
Billy Laws
30936ce6dc
Implement an ADPCM decoder for audren
...
This is used by many retail games, it only supports mono sound.
This implementation is based on Ryu's.
2020-07-09 13:56:04 +00:00
Billy Laws
b1e15efbab
Use new android R APIs for hiding insets
2020-07-08 20:11:55 +00:00
Billy Laws
1e484a7766
Update gradle, SDK and build tools to Android R
2020-07-08 20:11:55 +00:00
Billy Laws
7fed6ca73d
Enable -Wall for compilation
...
This gives some useful warnings for less significant issues.
Warnings for reordering are left disabled as they are rather pedantic
and serve little benefit.
2020-07-08 20:11:55 +00:00
Billy Laws
012be0adae
Fix some warnings produced by enabling -Wall
2020-07-08 20:11:55 +00:00
Billy Laws
af709efb15
Kotlin updates for compatibility with the Android R SDK preview
2020-07-08 20:11:55 +00:00
Billy Laws
68fcb2e4e5
Extend account services and add support for PopLaunchParameters
...
This is needed for Puyo Puyo Tetris.
2020-07-07 16:21:13 +00:00
Billy Laws
ff1c0e254f
Add an empty account services implementation
...
This implements the base account service and stubs
InitializeApplicationInfoV0 which is used by Puyo Puyo Tetris. Support
for the entirety of account services will be added in the future.
2020-07-06 21:04:31 +01:00
Billy Laws
3a343d3a48
Implement log services (lm)
...
lm is used by applications to print messages to the system log. Log
messages are made up of a header and then several fields containing
metadata or string messages.
2020-07-06 19:59:26 +00:00
Billy Laws
8985fe705f
Implement IStorage services in Applet Manager
...
In the case of am, IStorage is used to exchange buffers of data such
as application launch parameters or an applets result. It has no
relation to fsp-srv's IStorage.
2020-07-06 19:57:00 +00:00
Billy Laws
162df93870
Add an empty pctl implementation
...
This is required by Puyo Puyo Tetris. It may be stubbed further if
needed in the future.
2020-07-06 20:46:38 +01:00