mirror of
https://github.com/devkitPro/wut.git
synced 2026-04-25 07:58:39 -05:00
13 KiB
13 KiB
wut 1.1.1
Important changes
- Changed license to zlib to avoiding licensing issues when linking against wut in non-GPL projects. (#257)
Important bug fixes
- Fixed stack alignment to match PPC EABI requirements and avoid undefined behaviour (#248)
- Fixed lseek implementation which caused undefined behaviour on SEEK_CUR (#253)
- Added fix to prevent file-offset overflow in seek implementation (#254)
- Fixed lseek implementation to work correctly on files opend with O_APPEND (#256)
- Fixed and improved usage of atomics (#258)
New features
- Added a trapword to the crt in case a debugger is initalized to allow debugging .rpx compiled with wut (#249)
- Added support for the O_EXCL fopen flag and the following flag combinations:
O_WRONLY | O_CREAT,O_WRONLY | O_APPENDandO_WRONLY | O_TRUNC(#250)
CafeOS related changes
- Fixed invalid ACPInitialize function declaration (#247)
- Fixed order of arguments for FSOpenFileExAsync (#260)
Thanks to @exjam, @fincs, @GaryOderNichts and @Maschell for their contributions to this release.
wut 1.1.0
Important bug fixes
- Added wut_load_bounds section to prevent loader bug (thanks @GaryOderNichts)
- Make sure to always read into/write from a properly aligned buffer in the devoptab to avoid heap corruption (thanks @WinterMute, @Maschell)
- Impovements of the devoptab to properly support time and mode information and many more fixes (thanks @Maschell, @Crementif)
Major new features
- Moved CMake machinery to devkitPro CMake (thanks @fincs)
- Replaced the CafeOS default heap with a custom one (thanks @GaryOderNichts)
Minor new features
- Added support for the Logging Module (thanks @Maschell)
- Added support for nn::erreula library (thanks @exjam)
Minor bug fixes
- Fixed potential memory leaks in nn::swkdb. (thanks @exjam)
- Fixed return types and arguments for several sysapp functions (thanks @Maschell)
- Fixed memalign to ensure the size is aligned (thanks @Maschell)
- Added missing FSUnmount on fini (thanks @Maschell)
- Only call FSUnmount if FSMount was successful in devoptab (thanks @Maschell)
- Replaced dynamic allocation of OSMutex with static table to avoid memory leaks (thanks @fincs)
- Fixed syscall_clock implementation (thanks @Maschell)
- Fixed FSError enum (thanks @Maschell)
- Fixed setting the correct directory/file flag in devoptab (thanks @Maschell)
- Enforce ACPGetTitleMetaXml parameter alignment requirement. (thanks @Maschell)
- Fixed OSThreadLink struct (thanks @Maschell)
Breaking changes
- The CMPTLaunchTitle function declaration has changed to use uint64_t for the title id (thanks @Xpl0itU)
- Removed nlibcurl
- Added missing parameters to multiple functions (e.g. SYSSwitchTo*/ _SYSLaunch*, FSChangeMode/FSChangeModeAsync, HIDSetIdle) (thanks @Maschell)
- Renamed SYSTEM_APP_ID_HOME_MENU to SYSTEM_APP_ID_WII_U_MENU (thanks @Maschell)
CafeOS related changes
- Added FSA structs and function declarations (thanks @Maschell)
- Added mic function declarations (thanks @NessieHax)
- Added missing parameter to FSChangeMode/FSChangeModeAsync (thanks @Maschell)
- Added more coreinit function declarations (thanks @Maschell, @LRFLEW, @NessieHax, @Crementif)
- Added more gx2 function declarations (thanks @GaryOderNichts)
- Added more nn::acp function declarations (thanks @Maschell)
- Added more nn::act function declarations (thanks @Maschell)
- Added more nn::ccr function declarations (thanks @Maschell)
- Added more nn::swkdb function declarations (thanks @Fangal-Airbag, @NessieHax)
- Added more nsyshid function declarations (thanks @Maschell)
- Added more nsyshid function declarations (thanks @Maschell)
- Added more nsysnet function declarations (thanks @Maschell)
- Added more nsysuhs function declarations (thanks @GaryOderNichts)
- Added more padscore function declarations (thanks @LRFLEW)
- Added more procui function declarations (thanks @GaryOderNichts)
- Added more sysapp function declarations (thanks @Maschell)
- Added more vpad function declarations (thanks @Maschell)
- Added nn::cmpt function declarations (thanks @GaryOderNichts)
- Added nn::erreula function declarations (thanks @exjam)
- Added nn::fp function declarations (thanks @NessieHax)
- Added nn::nfp function declarations (thanks @GaryOderNichts)
- Added nn::save function declarations (thanks @GaryOderNichts)
- Added nn::sl function declarations (thanks @Maschell)
- Added nn::spm function declarations (thanks @GaryOderNichts)
- Added nn::temp function declarations (thanks @exjam)
- Added nsyskbd function declarations (thanks @Maschell)
wut 1.0.0-beta12
Important bug fixes
- Numerous improvements to linking rpl/rpx which fixes C++ exceptions and static constructors not working correctly (thanks @fincs)
- Fix
gettodimplementation returning incorrect time (thanks @GaryOderNichts) - Fix
nn::Resultto work correctly on big endian (thanks @luigoalma)
Major new features
- Add Makefile build system support for producing .wuhb files, a new homebrew app bundle format intended to streamline distribution of ancilliary assets (icons, content files) and compatibility with future homebrew loading solutions (thanks @fincs, @Maschell)
- New POSIX compatible socket implementation which aims to make porting existing code to Wii U seamless (thanks @rw-r-r-0644, @GaryOderNichts, @fincs)
Minor bug fixes
- Add missing cleanup of filesystem clients in WHB (thanks @Maschell)
- Optimise
fread,fwritewhen the provided buffer is already aligned (thanks @Maschell)
CafeOS related changes
- Fix names for
IM{Get,Set}DimEnable{DRC,TV}(was previously incorrectly capitalised Drc and Tv) - Add missing enum values in gx2 and improve usage of enums from C++ by adding operator| (thanks @fincs)
- Add missing
FSErrorFlagtype for all filesystem functions (thanks @Maschell) - Add more coreinit function declarations (thanks @Maschell)
- Add more nn_ac function declarations (thanks @Maschell)
- Add some nsysuhs function declarations (thanks @Maschell)
- Add more sndcore2 function declarations (thanks @GaryOderNichts)
- Add more vpad function declarations (thanks @Crayon2000)
wut 1.0.0-beta10
Breaking changes
- libwhb's network command server (
WHBCommandServer) functions and the associated<whb/commandserver.h>header have been removed.
Deprecations
- The CMake macro
wut_create_rplhas been re-implemented. The new version doesn't create a build target for the rpx/rpl binary, and only regenerates the rpx/rpl when actually necessary. The new syntax iswut_create_rpl(<TARGET>). Deprecated calls in the formwut_create_rpl(file.rpx <TARGET>)will fall through to the old implementation.
API additions
- Cafe functions
inet_ntoa_r,inet_ntop, andinet_ptonhave been added to<nsysnet/socket.h>(thanks @Crayon2000!) - Cafe functions
VPADGetTPCalibratedPointEx,VPADGetTPCalibrationParam, andVPADSetTPCalibrationParamhave been added to<vpad/input.h>. - Cafe functions
OSGetOSIDand__OSGetProcessSDKVersionhave been added to<coreinit/systeminfo.h>(thanks @Maschell!) - Cafe function
_SYSGetSystemApplicationTitleIdhas been added to<sysapp/title.h>(thanks @Maschell!) - Cafe functions
SYSGetCallerPFID,_SYSGetSystemApplicationTitleIdByProdArea, andSYSGetCallerTitleIdhave been added<sysapp/title.h>. - Cafe functions
OSReportVerbose,OSReportInfo, andOSReportWarnhave been added to<coreinit/debug.h>. - New libwhb functions
WHBGfxGetTVColourBuffer,WHBGfxGetTVDepthBuffer,WHBGfxGetTVContextState, and equivalents for the DRC, have been added to<whb/gfx.h>. - Helper functions have been added to
<gx2/shaders.h>which can look up shader uniforms by name. - A new header file,
<nn/acp.h>, has been added for nn_acp's meta.xml functionality (thanks @Maschell!) - Cafe structure
KPADStatus(from<padscore/kpad.h>) has been documented, had accelerometer data added, and had nunchuk-specific values added (thanks @Crayon2000!) - Various Cafe structures in
<coreinit/mcp.h>have been updated with newly-discovered members (thanks @Maschell, again!) - Cafe enum
GX2PrimitiveModehas been updated to include theLINES_ADJACENCY,LINE_STRIP_ADJACENCY,TRIANGLES_ADJACENCY,TRIANGLE_STRIP_ADJACENCY,RECTS, andLINE_LOOPprimitives.
Other changes
- Cafe functions throughout the GX2 headers have had
constapplied as appropriate, allowing for better compiler optimisations. - libwhb's Console and graphics helpers have been refactored to better support Cafe's multitasking and home menu overlay. Applications using WHBConsole can now be backgrounded and resumed without issue.
- Cafe's KPAD library has been documented, WPAD has been partially documented, and various fixes were made to the VPAD documentation (thanks @Crayon2000!)
- CMake now searches for libraries in internal devkitPPC folders, allowing
find_library(m)(and CMake pkg-config equivalents) to work as expected. - CMake now sets the pkg-config binary to
powerpc-eabi-pkg-config, installable from thedkp-libsrepo aswiiu-pkg-config. Application scripts no longer need to setPKG_CONFIG_EXECUTABLE. - wutstdc++'s threading implementation has been changed to behave more like a pre-emptive scheduler, yielding a thread after 1ms runtime. This applies to
std::threadand<threads.h>, not applications working withOSThreaddirectly.
wut 1.0.0-beta9
Breaking changes
- coreinit's
exitis no longer defined in<coreinit/exit.h>. Please use<stdlib.h>instead, which pulls in newlib's exit. - RPL import sections (
.fimport_coreinitetc.) are now garbage-collected when using wut-tools 1.1.0 or above (required). Code relying on weak links to Cafe functions may exhibit different behaviour. snd_coreandsnd_userare no longer linked, due to naming conflicts withsndcore2andsnduser2. wut has never shipped headers for these libraries, but if you are using them, please switch tosndcore2andsnduser2.- Changes to CMake's linker flags may cause existing build trees to fail. Please delete any old build files and re-run CMake.
- Two new symbols,
__rpx_startand__rpl_start, are now used internally by the toolchain, while_startis now undefined. As usual, applications are strongly discouraged from prefixing any symbol with two underscores, in order to avoid conflicts of this type.
Deprecations
WUT_ROOTshould no longer be defined in the user's environment, and will be set to$DEVKITPRO/wutinternally. CMake lists and makefiles that use$WUT_ROOT/shareto findwut.mkorwut.toolchain.cmakeshould be changed to$DEVKITPRO/wut/share.- All of wut's static libraries (
-lcoreinit,-lwhb, etc.) have been merged into a singlelibwut, which gets automatically linked in for all builds. While empty static libraries have been provided for CMake builds to ease the transition, these will be removed eventually. Applications should remove the build flags to link any of wut's libraries. - Similarly, wut's build configuration options (devoptab, wutmalloc, newlib) are now integrated into
libwut. For CMake builds, thewut_enable_*macros will now log a deprecation warning, and should be removed as soon as possible. - Use of
wut.mkas a build system is now deprecated. Applications should move towut_rulesand devkitPro-style makefiles, such as those in the samples.wut.mkwill not be updated further, and will be removed in a future release.
Other changes
- Builds refactored: wut now uses Makefiles to build itself, as well as providing a devkitPro-style
wut_rulesfile - see thesamples/makefolder. The cmake samples are now insamples/cmake. - A new linking feature,
__rplwrap, was added to help deal with conflicts between newlib's and Cafe's functions. Because of this, wut 1.0.0-beta9 requires wut-tools 1.1.0 or newer. - Using rplwrap, newlib's
exitis now correctly chained with coreinit's - calls likeatexitshould work; whether callingexitor just returning frommain. Applications using coreinit's_Exitare encouraged to migrate to a normalexitcall. - A new header file,
<coreinit/codegen.h>, has been added and documented for OSCodegen functionality.