Commit Graph

801 Commits

Author SHA1 Message Date
fincs
75a7312e40
Add romfsMountFromTitle and refactor os-versionbin.c to use it 2020-07-03 20:20:26 +02:00
fincs
24dded1c79
Remove long-since obsolete hb:HB code 2020-07-03 18:09:14 +02:00
fincs
da529aed21
romfs_dev: Backport proper multimount system from libnx with some tweaks 2020-07-03 00:24:32 +02:00
fincs
3e1d03aecd
Fix typo in osKernelConfig_s 2020-07-03 00:23:42 +02:00
fincs
4e387679f7
Add structs for kernel/shared pages + related refactor, see details:
- Added osKernelConfig_s/osSharedConfig_s structs
- Added OS_KernelConfig/OS_SharedConfig macros for accessing the pages
- Replaced 0x1FF8nnnn hardcoded addresses with struct accesses
- Added osIsHeadsetConnected function
- Refactored and rewritten RTC time support with the correct algorithm
  (many thanks to @TuxSH for reverse engineering the PTM sysmodule):
  - Fully added and documented the osTimeRef_s structure
    - This replaces the previous internal datetime_t struct type
  - Added osGetTimeRef function:
    - This replaces the previous internal getSysTime function
    - Added missing barrier to the lock free reading algorithm
  - osGetTime rewritten to implement the drift-correction algorithm
    - **This introduces a dependency to __aeabi_ldivmod**
  - __libctru_gtod rewritten to reuse osGetTime
2020-07-01 21:02:22 +02:00
fincs
53cbfc231f
Replace magic numbers with defines for Arm11 userland memory regions; clean up and enhance osConvertVirtToPhys 2020-07-01 20:48:18 +02:00
fincs
dfbfc1564f
os.h: Move MemRegion to svc.h; move osGetMemRegionUsed to header; correct osGetMemRegionUsed/Free return type 2020-07-01 18:11:31 +02:00
fincs
64f29fa024
Fix osStrError (previously it was completely broken...) 2020-07-01 00:21:40 +02:00
fincs
41d0d615f5
ndm: Add NDM_ prefix to enum members in order to avoid name collisions 2020-07-01 00:20:42 +02:00
fincs
19fd446ac5
Add and use svcArbitrateAddressNoTimeout (minor ABI optimization) 2020-06-30 18:45:03 +02:00
piepie62
9974ed1aa3 Add LightSemaphore_TryAcquire and fix Acquire 2020-06-24 00:03:13 +02:00
fincs
2ff08fbac8
synchronization.h: Add __dmb() intrinsic 2020-06-22 22:08:21 +02:00
fincs
b93e7f19bf
Refactor DSP<->APT interaction, see details:
- DSP wrapper is now in charge of handling sleep/awake/cancel events
  - Added DSP hook mechanism (similar to APT hook)
  - The DSP component now gets automatically unloaded/reloaded as needed
- NDSP now uses DSP hook instead of APT hook to manage lifetime
  - Moved sleep/wakeup component management logic into NDSP
- APT now calls into DSP wrapper in order to arbitrate access to the DSP
  - Launching libapplets no longer relinquishes DSP rights - this means
    music can now be played in the background during libapplet activity
2020-06-22 00:34:38 +02:00
fincs
bf55423903
gspgpu: Add gspHasGpuRight 2020-06-14 01:19:13 +02:00
fincs
d521c99769
gfx: Add support for the top screen's 800px high resolution mode (!!!) 2020-06-13 22:48:36 +02:00
fincs
09d629aa85
gspPresentBuffer: stride is u32 2020-06-13 21:57:09 +02:00
fincs
6ef91576ae
Overhaul gspgpu/gfx code, see details:
- GSPGPU changes:
  - gspInit now properly initializes the event queue, GSP shared memory
    and first-time initialization - previously this was done in gfxInit.
  - Removed gspInitEventHandler/gspExitEventHandler in line with above.
  - Added gspPresentBuffer for pushing a framebuffer to the internal
    GSP swap queue (previously this was an internal function in gfx.c).
  - Added defines for screen IDs and screen dimensions.
  - Removed sharedGspCmdBuf param from gspSubmitGxCommand (now uses
    the correct GSP shared memory address automatically).
  - Removed gxCmdBuf global variable (no longer needed as per above).
  - Removed GSPGPU_REBASE_REG (leftover from early 3DS homebrew).
- GFX changes:
  - Documentation overhaul and code cleanup.
  - Simplified implementation using the enhanced GSPGPU service wrapper.
  - Top left/right framebuffers now form a single allocation instead of
    being split into two separate allocations.
  - Fixed LCD configuration mode when framebuffers are on VRAM.
  - Removed the ability to forcefully swap the screens: gspPresentBuffer
    is now always used (i.e. GSP shared mem). The 'immediate' parameter
    of gfxConfigScreen now does nothing, and gfxSwapBuffers/Gpu now do
    the same thing.
  - Removed gfx{TopLeft,TopRight,Bottom}Framebuffers global variables
    (please use gfxGetFramebuffer instead as originally intended...)
2020-06-13 20:08:37 +02:00
fincs
9c1c847388
Introduce syncArbitrateAddress/WithTimeout (replaces __sync_get_arbiter) 2020-06-12 20:40:47 +02:00
fincs
528f8feb0b
Add gspGetBytesPerPixel (replaces internal function)
Also fixes GSPGPU_FramebufferFormat's name
2020-06-12 19:24:15 +02:00
fincs
6c0f7ac99c
threadCreate: correct misleading parameter name 2020-06-12 14:31:42 +02:00
fincs
ea57fb8821
apt: Revamp chainload handling, see details:
- Added aptClearChainloader (clears pending chainloads)
- Added aptSetChainloaderToSelf (reboots to self, i.e. "soft-reset")
- Internal refactoring
2020-06-11 16:28:57 +02:00
fincs
5986713066
apt: Refactor sleep/home state handling to be more intuitive, see details:
- Added functions for checking APT state:
  - aptIsActive
  - aptShouldClose
  - aptShouldJumpToHome
  - aptCheckHomePressRejected (replaces aptIsHomePressed)
- Added functions for handling incoming requests:
  - aptHandleSleep
  - aptHandleJumpToHome
- Added aptJumpToHomeMenu (callable anytime) because why not
- aptMainLoop is now aptHandleSleep/JumpToHome + return !aptShouldClose
- APTHOOK_ONEXIT is now called during aptExit
- Internal refactoring
2020-06-11 03:02:24 +02:00
fincs
b48b5da211
apt: Add APT_LockTransition, use it in aptWaitForWakeUp 2020-06-10 21:46:48 +02:00
fincs
6ce690828c
apt: Remove aptLaunchLibraryApplet's return value/hidden aptMainLoop call 2020-06-10 20:14:01 +02:00
Glazed_Belmont
2e48185aed
Fix the typo for consoleClear() (#460)
Changed screan to screen
2020-05-26 01:48:11 +01:00
TuxSH
0053d8d076 Add ptm rtc time commands 2020-05-17 22:24:15 +02:00
TuxSH
e3be4b8678 Add sleep state FSM handling service commands 2020-05-17 17:45:52 +02:00
TuxSH
1bafb08f34 Add hidKeysDownRepeat 2020-05-14 22:25:16 +02:00
TuxSH
69483a473a Revamp mappableAlloc 2020-05-14 00:30:53 +02:00
TuxSH
c9326f6bce
hid: add hidWaitForAnyEvent, allow user to override irrst usage check (#454) 2020-05-13 23:09:55 +02:00
TuxSH
9d27eb80de APT workaround when Home Menu is not launched, etc. 2020-05-10 00:06:50 +02:00
fincs
b03b64dd09
Add MEMPERM_READWRITE and MEMPERM_READEXECUTE 2020-05-08 03:16:30 +02:00
Chris Feger
750bceebf2
Add FSPXI interfaces (#446) 2020-05-08 02:20:48 +02:00
TuxSH
b161b7e578 Add GSPGPU_ResetGpuCore 2020-05-07 00:14:02 +02:00
TuxSH
6f34257b57 Make initSystem and __ctru_exit weak. Use asm macros 2020-05-06 21:50:20 +02:00
Chris Feger
175dd62a90
Add archive STDIO device driver (#443) 2020-04-15 23:06:36 +01:00
LiquidFenrir
8acc1871bc Add AC commands that allow forcing a wifi connection (#438) 2019-09-21 02:49:41 +02:00
TuxSH
ed7674626e Implement Luma3DS gdb hio (#433) 2019-06-23 18:06:47 +01:00
Chris Feger
309c3f1d7b Fix a possible null pointer issue (#434) 2019-05-14 11:03:24 +01:00
Oreo639
d3ea737071 Add miiSelector configuration functions (#429) 2019-05-04 01:40:00 +02:00
Oreo639
59b71196ac Fix blocking and add aptIsHomePressed 2019-04-25 02:52:00 +02:00
LiquidFenrir
9b4ac1118d Allow blocking HOME button
Signed-off-by: Alex Taber <alexftaber@gmail.com>
2019-04-25 02:52:00 +02:00
hax0kartik
d0b6343342 Do not include 3ds.h within ctrulib headers 2019-04-01 17:38:14 +02:00
hax0kartik
d4036d97ef Add Mii struct 2019-04-01 17:38:14 +02:00
Chris Feger
2750c4a70b Rework font API to support loading fonts other than the shared system font (#416) 2019-03-28 02:32:07 +01:00
TuxSH
09688ea6fc PM services overhaul 2019-03-28 01:04:02 +01:00
TuxSH
8ffc9461ea LOADER_RegisterProgram: use FS_ProgramInfo 2019-03-28 00:44:43 +01:00
TuxSH
0ed1f2beb2 IPC_Desc_CurProcessHandle => IPC_Desc_CurProcessId 2019-03-28 00:44:32 +01:00
TuxSH
7663a701c0 Add undocumented N3DS PM launch flags 2019-03-24 23:26:43 +01:00
TuxSH
ffba52bcd0 Add PM launch flags 2019-03-17 20:46:04 +01:00
TuxSH
79ee260c15 Implement PxiPM 2019-03-11 21:06:34 +01:00
TuxSH
dacacfa403 Implement fs:REG 2019-03-11 21:06:34 +01:00
fincs
550793b262 Minor text fixes 2019-03-10 21:14:25 +01:00
Slattz
67f10f0ba9 Fix frdGetSessionHandle declaration 2019-02-12 12:28:10 +01:00
Dave Murphy
79a77cd862 add SO_BROADCAST 2019-01-18 15:23:53 +00:00
Joel
a482822fb8 Fix a few FRD commands and minor consistency changes (#411) 2019-01-02 00:35:12 +01:00
fincs
56d3b0b76e Add gas-related GPU definitions 2019-01-02 00:18:47 +01:00
Sean Purcell
64bdf022a8 Fix missing include <3ds/types.h> (#414) 2018-10-23 16:04:00 +01:00
Lázaro Vieira
3810a5586b FRD update (#409)
Fix Mii struct padding + some changes for consistency
Documentation update
2018-08-09 15:08:41 +02:00
Kartik
c579e745a8 Add more friend functions (#408) 2018-08-05 15:56:26 +02:00
Pirater12
2c1f84406e UTF16-to UTF8 Translation 2018-07-21 17:18:09 +01:00
Joel16
18267ef6fb Initial bring up of the Friend Service 2018-07-21 17:18:09 +01:00
Michael Theall
cc22550296 Add decompressHeader 2018-05-12 13:56:29 +02:00
Michael Theall
1165b4cb8b Add decompression routines 2018-05-12 13:56:29 +02:00
fincs
74b8aa00cd Const correctness in osTickCounterRead 2018-03-17 18:11:36 +01:00
Sono
c1cee4a115 Added and adjusted clock speed constants 2018-03-17 18:09:14 +01:00
Pirater12
555f31b35e Add more PM:App functions 2018-03-10 17:04:38 +01:00
Joel16
8840ebf813 Add ACU_Proxy* functions as welll as error code functions 2018-03-10 17:03:25 +01:00
Pirater12
a087e33414 Add NS_RebootSystem 2018-03-09 12:22:38 +01:00
Joel
6dcbee7f4c Add more CFGI SecureInfo functions (#393) 2018-02-16 01:48:31 +01:00
Kartik
29418f4d3d Add NS_TerminateTitle() (#390) 2018-01-22 02:08:36 +01:00
Kartik
2158f71eb2 Add timeout in NS_TerminateProcessTID() (#389) 2018-01-15 12:45:05 +01:00
TuxSH
c598c445cd Implement per-thread non-blocking behavior for srvGetServiceHandle...
implement srvWaitForPortRegistered and srvIsPortRegistered as well.
2018-01-14 21:18:01 +01:00
Joel16
abf8064771 Add missing enums 2018-01-13 18:47:25 +01:00
Joel
52be537b48 Add more ndm:u functions. (#386) 2018-01-12 13:34:56 +01:00
TuxSH
fdf31f7556 Multiple srv:pm bugfixes 2018-01-07 01:35:19 +01:00
Joel
3bbd2dca16 MCU service consistency and a couple more functions (#381)
Also added MCUHWC_GetFwVerHigh and MCUHWC_GetFwVerLow
2018-01-01 16:42:46 +01:00
Lioncash
c941b0d2d2 services: Add missing void keyword in parameter lists to signify no arguments 2018-01-01 16:41:45 +01:00
Joel
6f64dee330 Add a few more ACU functions (#379) 2017-12-01 17:58:08 +01:00
Kartik
65673fd3f3 Added more mcuHwc functions. (#378) 2017-11-16 00:18:07 +01:00
Kartik
8e2d82ae9a Fix page being not built by doxygen 2017-11-16 00:13:41 +01:00
Joel
632f9866e6 Add a few more CFGI functions (#380)
* CFGI_SecureInfoGetSerialNumber
* CFGU_IsNFCSupported (IsFangateSupported)
* CFGI_GetLocalFriendCodeSeed
* CFGI_GetLocalFriendCodeSeedData
2017-10-28 12:12:16 +03:00
fincs
7c348aa3ad Add missing examples to 3ds.h 2017-09-23 18:10:46 +02:00
Joel
25123ba057 Add more CFGI functions (#376) 2017-09-23 18:07:50 +02:00
Joel
04bde1de19 More AM_Delete functions (#375) 2017-09-23 17:42:37 +02:00
Kartik
d6a628b7d3 Add mcu::HWC service (#373) 2017-09-23 16:03:37 +02:00
phijor
aaa92f619c Add Mii selector applet (appletEd) (#372) 2017-09-23 15:48:08 +02:00
Joel
fa6eb5db9e More GSPLCD and GSPGPU functions. (#371) 2017-09-23 01:59:26 +02:00
LIT
8196e383c3 Typo. 2017-09-13 14:37:17 +01:00
fincs
0d950af680 Remove deprecated GPUCMD functions 2017-08-29 00:39:56 +02:00
fincs
967b0223ad Correct error in GPU_LIGHTPERM (reported by @wwylele) 2017-08-27 12:25:32 +02:00
TuxSH
010dde085b Add Loader service commands (#370) 2017-08-21 15:55:54 +01:00
TuxSH
f132a7a2a9 Implement light semaphores (#369) 2017-08-01 14:35:45 +01:00
TuxSH
4dafd78e26 Fix const-correctness (#368)
make svcWaitSynchronizationN and svcReplyAndReceive const correct
2017-07-31 14:33:20 +01:00
TuxSH
6a6dc3be4a Add and use enum ResourceLimitType (#367) 2017-07-31 14:21:03 +01:00
TuxSH
532fbef44f Fix srv:pm handling for pre-7.x system versions (#365) 2017-07-31 14:12:51 +01:00
TuxSH
e1ddc74c1c Add exheader.h (#366) 2017-07-31 14:12:16 +01:00
Joel
f05c56435d Implement GSPLCD_SetBrightness and GSPLCD_SetBrightnessRaw (#363) 2017-07-29 22:55:52 +01:00
TuxSH
bc87466400 srv: code bugfixes:
- Fix srvPublishToSubscriber documentation
- Fix handling of service/named port names of length 8
- Fix srvRegisterPort
2017-07-13 16:12:09 +01:00
Michael Theall
41c1fee88e Fix warning when compiling with C89/90 2017-07-10 23:43:10 -05:00