Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Libtransistor-Examples Switch: Difference between revisions

From GameBrew
(Created page with "{{Infobox Switch Homebrews |title=libtransistor-examples |image=libtransistorexamplesswitch.png |description=Test NROs for libtransistor |author=reswitched |lastupdated=2018/09/12 |type=Developments |version=2.1.1 |license=ISC |download=https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch.7z |website=https://github.com/reswitched/libtransistor |source=https://github.com/reswitched/libtransistor |donation= }} {{#seo: |title=Switch Homebrew PC Tools (Devel...")
 
No edit summary
 
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=libtransistor-examples
|title=libtransistor-examples
|image=libtransistorexamplesswitch.png
|image=libtransistorexamplesnx.png
|description=Test NROs for libtransistor
|description=Test NROs for libtransistor.
|author=reswitched
|author=ReSwitched Team
|lastupdated=2018/09/12
|lastupdated=2018/09/12
|type=Developments
|type=Developments
|version=2.1.1
|version=2.1.1
|license=ISC
|license=ISC
|download=https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesnx.7z
|website=https://github.com/reswitched/libtransistor
|website=https://github.com/reswitched/libtransistor
|source=https://github.com/reswitched/libtransistor
|source=https://github.com/reswitched/libtransistor
|donation=
|donation=
}}
}}
{{#seo:
{{obsolete}}
|title=Switch Homebrew PC Tools (Developments) - GameBrew
Libtransistor is a userland library for the Nintendo Switch. Binaries should run under Mephisto, Yuzu, Ryujinx, or on hardware with any firmware version via Atmosphère.
|title_mode=append
 
|image=libtransistorexamplesswitch.png
The tests archives contain builds of all of the tests included with libtransistor.
|image_alt=libtransistor-examples
 
}}
==Compatibility==
{{cleanup|article|Needs cleanup}}
Tested working:
Test NROs for libtransistor


==Media==
1.0.0 <br>
<youtube></youtube>
3.0.0 <br>


Expected working:


==Screenshots==
2.0.0 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-01.png
2.1.0 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-02.png
2.2.0 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-03.png
2.3.0 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-04.png
5.0.0 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-05.png
5.0.1 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-06.png
5.0.2 <br>
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-07.png
https://dlhb.gamebrew.org/switchhomebrews/libtransistorexamplesswitch-08.png


==Changelog==
==Changelog==
'''v.1.0'''
'''v2.1.1 2918/09/12'''
* First Release.
*Additions:
**Added <code>trn_recursive_mutex_interrupt_lock</code>.
**Various SVC bindings.
*Changes:
**<code>trn_result_to_errno</code> now uses<code> trn_lookup_result</code>.
**<code>KDebug</code> inherits from <code>KWaitable</code>.
*Bugfixes:
**Waiter deadlocks/delays.
**Lifetime bug in C++ Waiter bindings.
 
'''v2.1.0 2019/08/23'''
*Additions:
**Added support for deferring <code>IPCServer++</code> responses.
**Added support for <code>InHandle</code>, <code>OutHandle</code>, and <code>InObject</code> to <code>IPCClient++</code>.
**Added <code>KTransferMemory</code>.
**Added default constructor for <code>KObject</code>.
**Added <code>_TRN_RUNCONF_STDIO_OVERRIDE_TWILI</code>.
**Added <code>include/libtransistor/cpp/nx.hpp</code>.
**Added <code>trn::svc::MapTransferMemory</code> and <code>trn::svc::MapSharedMemory</code>.
**Added <code>trn::svc::QueryMemory</code>.
**Added <code>env_get_stack_top</code>.
**Added <code>bindings for ITwiliService#CreateNamedPipe</code>.
**Added <code>trn::as::Reservation</code>.
**Added <code>trn_lookup_result</code>.
*Removals:
**Removed some old debug messages.
**Removed <code>ipcClients.h</code>.
*Changes:
**Refactored <code>crt0_common</code>.
**Made <code>include/libtransistor/nx.h</code> more complete.
**When building libtransistor, libtransistor headers are now included with <code>-I</code> so that warnings are not suppressed.
**Makefile object/header listings are now alphabetical.
**Each source file now includes its most relevant header before any others to ensure header files' dependencies are properly included..
*Bugfixes:
**Made <code>trn::ResultError</code> inherit publicly from <code>std::runtime_exception</code>.
**Many warnings.
**Fixed issues with libc++, atomics, and <code><nowiki>[[noreturn]]</nowiki></code>.
 
'''v2.0.0 2019/07/20'''
*Additions:
**Added dynamic linker, <code>dlopen</code>, <code>dlsym</code>, etc.
**Added C++ API (see [https://github.com/misson20000/twili twili] for examples of this API in action).
**Including templated IPC client/server.
**Added 1.0.0 support.
**Added <code>trn_thread</code> and <code>trn_mutex</code> library.
**Added <code>svcMapProcessCodeMemory</code>, <code>svcUnmapProcessCodeMemory</code>, <code>svcSetProcessMemoryPermission</code>.
**Added <code>svcCreateProcess</code>, <code>svcStartProcess</code>.
**Added <code>svcMapPhysicalMemory</code>, <code>svcUnmapPhysicalMemory</code>.
**Added resource limit, debug SVCs.
**Added <code>usb</code> bindings.
**Added <code>as</code> module, for managing address space (replaces <code>find_empty_memory_block</code>).
**Added <code>fatal</code> service bindings.
**Added process handle key to <code>loader_config</code>.
**Added <code>SECONDS_TO_NANOSECONDS</code>, <code>ASSERT_OK</code>, <code>TRACE</code>, and <code>DBG_TRACE</code> macros.
**Added <code>ipc_helpers</code>.
**Added <code>ipc_debug_level</code> (replaces <code>ipc_debug_flag</code>)'.
**Added <code>collections/list.h</code>.
**Added <code>waiter</code>.
**Added [https://github.com/misson20000/twili twili] integration.
**Added <code>runtime_config</code>.
**Added hid_controller button state masks, <code>hid_controller_buttons_down</code>.
**Added <code>nvhost_ioctl_ctrl_syncpt_wait</code>.
**Added <code>surface_wait_buffer</code>.
**Added fsp_srv_open_bis_filesystem.
**Added NRO ASET sections for metadata and icons.
**Added <code>env_get_kernel_version()</code>.
*Removals:
**Removed <code>ace_loader</code>.
**Removed <code>alloc_pages</code> and heap remapping system.
**Removed <code>main_thread = 0xde00</code> hack.
**Removed <code>test_multiple_set_heap_size</code>.
*Changes:
** We now use display layers obtained from <code>am</code> wherever possible (fixes drawing over lock screen and fixes screenshots).
**Redid <code>file_operations_t</code> to not be copied from the Linux kernel, and for consistency with other libtransistor filesystem APIs.
**Moved <code>loader_config</code> functions into their own file.
**We now send type 2 message before closing IPC services.
**Change <code>struct file</code> to <code>trn_file_t</code>.
**Enabled thread safety analysis, and thread safety for a few modules.
**<code>ipc_server</code> now uses <code>waiter</code>.
**<code>sm_force_finalize</code> is now public.
**<code>trn_mountfs_mount</code> takes inode by value.
**Removed <code>restrict</code> from bsd headers.
*Bugfixes.
**Made <code>ipc_server</code> check that it has the SVCs it needs.
**We now initialize all <code>loader_config</code> fields.
**Fixed syscall missing error code number collisions.
**<code>trn_result_to_errno</code> now calls <code>dbg_printf</code> instead of <code>printf</code> when discarding errors.
**Supported ipc messages with raw data sizes that are not multiples of 4.
**<code>svc.h</code> now includes <code>types.h</code>.
**Fixed missing <code>__malloc_lock</code> and <code>__malloc_unlock</code>.
**Fixed uninitialized variable usage in <code>syscalls.c</code>.
**Added missing typedef in <code>graphic_buffer_queue.h</code>.
**Fixed <code>fd_file</code>_put not checking <code>file->ops.release != NULL</code>.
**Fixed PID unpacking in PIC.
**Removed some ancient debug messages.
**Fixed terrible QueueBuffer transactions.
**Fixed bss clearing.
*Misc/CI:
**Moved support libraries into <code>libtransistor-base</code>.
**Run tests with <code>--initialize-memory</code>.
**Use container infrastructure.
**Added instructions to README for installing squashfs on osx.
 
[https://github.com/reswitched/libtransistor/releases Release notes.]


== External links ==
== External links ==
* Gbatemp - https://github.com/reswitched/libtransistor
* GitHub - https://github.com/reswitched/libtransistor
* Github - https://github.com/reswitched/libtransistor
* Reddit -

Latest revision as of 06:20, 3 Haziran 2023

libtransistor-examples
Libtransistorexamplesnx.png
General
AuthorReSwitched Team
TypeDevelopments
Version2.1.1
LicenseISC
Last Updated2018/09/12
Links
Download
Website
Source

Libtransistor is a userland library for the Nintendo Switch. Binaries should run under Mephisto, Yuzu, Ryujinx, or on hardware with any firmware version via Atmosphère.

The tests archives contain builds of all of the tests included with libtransistor.

Compatibility

Tested working:

1.0.0
3.0.0

Expected working:

2.0.0
2.1.0
2.2.0
2.3.0
5.0.0
5.0.1
5.0.2

Changelog

v2.1.1 2918/09/12

  • Additions:
    • Added trn_recursive_mutex_interrupt_lock.
    • Various SVC bindings.
  • Changes:
    • trn_result_to_errno now uses trn_lookup_result.
    • KDebug inherits from KWaitable.
  • Bugfixes:
    • Waiter deadlocks/delays.
    • Lifetime bug in C++ Waiter bindings.

v2.1.0 2019/08/23

  • Additions:
    • Added support for deferring IPCServer++ responses.
    • Added support for InHandle, OutHandle, and InObject to IPCClient++.
    • Added KTransferMemory.
    • Added default constructor for KObject.
    • Added _TRN_RUNCONF_STDIO_OVERRIDE_TWILI.
    • Added include/libtransistor/cpp/nx.hpp.
    • Added trn::svc::MapTransferMemory and trn::svc::MapSharedMemory.
    • Added trn::svc::QueryMemory.
    • Added env_get_stack_top.
    • Added bindings for ITwiliService#CreateNamedPipe.
    • Added trn::as::Reservation.
    • Added trn_lookup_result.
  • Removals:
    • Removed some old debug messages.
    • Removed ipcClients.h.
  • Changes:
    • Refactored crt0_common.
    • Made include/libtransistor/nx.h more complete.
    • When building libtransistor, libtransistor headers are now included with -I so that warnings are not suppressed.
    • Makefile object/header listings are now alphabetical.
    • Each source file now includes its most relevant header before any others to ensure header files' dependencies are properly included..
  • Bugfixes:
    • Made trn::ResultError inherit publicly from std::runtime_exception.
    • Many warnings.
    • Fixed issues with libc++, atomics, and [[noreturn]].

v2.0.0 2019/07/20

  • Additions:
    • Added dynamic linker, dlopen, dlsym, etc.
    • Added C++ API (see twili for examples of this API in action).
    • Including templated IPC client/server.
    • Added 1.0.0 support.
    • Added trn_thread and trn_mutex library.
    • Added svcMapProcessCodeMemory, svcUnmapProcessCodeMemory, svcSetProcessMemoryPermission.
    • Added svcCreateProcess, svcStartProcess.
    • Added svcMapPhysicalMemory, svcUnmapPhysicalMemory.
    • Added resource limit, debug SVCs.
    • Added usb bindings.
    • Added as module, for managing address space (replaces find_empty_memory_block).
    • Added fatal service bindings.
    • Added process handle key to loader_config.
    • Added SECONDS_TO_NANOSECONDS, ASSERT_OK, TRACE, and DBG_TRACE macros.
    • Added ipc_helpers.
    • Added ipc_debug_level (replaces ipc_debug_flag)'.
    • Added collections/list.h.
    • Added waiter.
    • Added twili integration.
    • Added runtime_config.
    • Added hid_controller button state masks, hid_controller_buttons_down.
    • Added nvhost_ioctl_ctrl_syncpt_wait.
    • Added surface_wait_buffer.
    • Added fsp_srv_open_bis_filesystem.
    • Added NRO ASET sections for metadata and icons.
    • Added env_get_kernel_version().
  • Removals:
    • Removed ace_loader.
    • Removed alloc_pages and heap remapping system.
    • Removed main_thread = 0xde00 hack.
    • Removed test_multiple_set_heap_size.
  • Changes:
    • We now use display layers obtained from am wherever possible (fixes drawing over lock screen and fixes screenshots).
    • Redid file_operations_t to not be copied from the Linux kernel, and for consistency with other libtransistor filesystem APIs.
    • Moved loader_config functions into their own file.
    • We now send type 2 message before closing IPC services.
    • Change struct file to trn_file_t.
    • Enabled thread safety analysis, and thread safety for a few modules.
    • ipc_server now uses waiter.
    • sm_force_finalize is now public.
    • trn_mountfs_mount takes inode by value.
    • Removed restrict from bsd headers.
  • Bugfixes.
    • Made ipc_server check that it has the SVCs it needs.
    • We now initialize all loader_config fields.
    • Fixed syscall missing error code number collisions.
    • trn_result_to_errno now calls dbg_printf instead of printf when discarding errors.
    • Supported ipc messages with raw data sizes that are not multiples of 4.
    • svc.h now includes types.h.
    • Fixed missing __malloc_lock and __malloc_unlock.
    • Fixed uninitialized variable usage in syscalls.c.
    • Added missing typedef in graphic_buffer_queue.h.
    • Fixed fd_file_put not checking file->ops.release != NULL.
    • Fixed PID unpacking in PIC.
    • Removed some ancient debug messages.
    • Fixed terrible QueueBuffer transactions.
    • Fixed bss clearing.
  • Misc/CI:
    • Moved support libraries into libtransistor-base.
    • Run tests with --initialize-memory.
    • Use container infrastructure.
    • Added instructions to README for installing squashfs on osx.

Release notes.

External links

Advertising: