Releases: Lameguy64/PSn00bSDK
v0.24
New in version 0.24 (contributed by spicyjpeg):
-
libc: Fixed various mistakes in the GTE leading zero count intrinsics and the
setjmp.hheader. -
psxgpu:
PutDispEnv()no longer requires manual adjustments in order to center the screen in PAL mode.FntSort()now supports printing multiple lines. -
smd: The .SMD model parser code from n00bdemo has been split off into its own library, usable from any PSn00bSDK project.
-
examples:
beginner/hello,beginner/cppdemoandsystem/timerhave been rewritten completely.cdrom/cdxanow checks for the end of the file properly rather than relying on it to be encoded in a specific way.sound/cdstreamhas been refactored to use a ring buffer in main RAM and includes a reusable SPU audio streaming library. -
Added some missing register macros (
SPU_CH_ADSR_VOL) tohwregs_c.hand fixed some previously wrong kernel-related constants. -
Removed the
PSN00BSDK_LIBGCCCMake variable and related code, as the GCC toolchain can automatically findlibgccon its own.
These notes have been generated automatically. See the changelog or commit history for more details.
v0.23
New in version 0.23 (contributed by spicyjpeg):
-
libc: Fixed bugs in some string manipulation and number parsing functions. Added
memccpy(). Removed theSYSTEM.CNFargument parser as it would interfere with manual argc/argv passing in some edge cases. -
psxgpu: Added
IsIdleGPU()and fixed a bug inSetVideoMode(). Added new "tagless" primitive structures with the_Tsuffix (e.g.POLY_FT4_T,SPRT_T, ...) and related macros (setPolyFT4_T(),setSPRT_T(), ...) that can be used to group multiple primitives into a single display list packet for better performance. Fixed some macros not working properly with negative values. RenamedDR_MASKandsetDrawMask()toDR_STPandsetDrawStp()respectively for consistency with the official SDK. -
psxcd: Added
CdUnlock(). Improved reliability ofCdGetRegion()on early Japanese console models. -
psxetc: Added
SetDMAPriority()andGetDMAPriority(). -
psxapi: Added PCDRV (host file I/O) API, declared in the
psxsn.hheader. -
psxpress: Fixed bugs in the MDEC API. Added support for bitstream version 3 to the GTE-accelerated decoder. Replaced
DecDCTvlcCopyTable()withDecDCTvlcCopyTableV2()andDecDCTvlcCopyTableV3()for better control over how much of the scratchpad is used for lookup tables. -
examples:
mdec/strvideois now (finally) functional on real hardware and can properly detect the end of a video file even if immediately followed by another video on the disc. Added previously missing CD image dependencies to the CMake scripts of the examples that make use of CD images. -
tools:
elf2xno longer adds region strings to converted executables, fixing issues with DuckStation's region autodetection. Updatedmkpsxisoto 2.03 in order to fix a bug with its thread pool implementation on Linux. -
Updated binutils and recompiled the GCC toolchain with the
--disable-hosted-libstdcxxoption, allowing a subset of the C++ STL to be used in PSn00bSDK projects. -
libc: Added some missing C++ STL headers (
cassert,cctype,cstdint,cstdio,cstdlib,cstring). Addedsetjmp()andlongjmp()as well as thejmp_buftype. -
psxgpu: Added
SetDrawOpType()and theGPU_DrawOpTypeenum for more flexibility when using custom drawing queue callbacks withEnqueueDrawOp(). Added GPU IRQ variants of all display list sending APIs (DrawOTagIRQ(),DrawOTagEnvIRQ(),DrawBufferIRQ()and so on). -
examples: Cleaned up
beginner/cppdemoand updated it to use the new STL headers. -
docs: Added
drawing_queue.md, a reference on the internals of the GPU library's drawing queue implementation.
These notes have been generated automatically. See the changelog or commit history for more details.
v0.22
New in version 0.22 (contributed by spicyjpeg):
-
psxspu: Fixed bugs in
SpuInit()and inSpuWrite()when using manual transfer mode (SPU_TRANSFER_BY_IO). AddedSpuWritePartly(). -
psxetc: Added
IRQ_ChannelandDMA_Channelenums. -
examples: Refactored and bugfixed all sound examples. Renamed the old
spustreamexample tocdstreamand added a newspustreamexample demonstrating SPU audio streaming from main RAM. Both streaming examples now make use of the interleaved .VAG file format. -
libc: Fixed
assert()macro and removed redundant type definitions. Added GTE-accelerated leading zero count intrinsics (__builtin_clz()). -
psxcd: Rewritten some parts of the library in pure C. Added
CdCommand()andCdCommandF()for advanced usage of the CD-ROM, as well asCdReadRetry(),CdReadBreak()andCdGetRegion(). -
psxgpu:
PutDrawEnv()andDrawOTagEnv()now properly apply the texture page and window attributes in theDRAWENVstructure. RECTs passed toLoadImage()andStoreImage()are now copied into a private buffer. AddedsetColor*()macros. -
psxspu: Fixed setting of bus wait states when using
SpuRead(). -
psxetc: Fixed several critical bugs in the dynamic linker. GOT relocation and linking of variables and objects are now handled properly.
-
psxapi: Added
FastEnterCriticalSection()andFastExitCriticalSection()inline macros for quick enabling and disabling of interrupts. -
Renamed some registers in
hwregs_c.h,hwregs_a.incand updated examples accordingly. -
All projects are now compiled with
-Ogin debug mode and-O2in release mode by default. CD images created usingpsn00bsdk_add_cd_image()are now only rebuilt if necessary (i.e. if any of their dependencies change).
These notes have been generated automatically. See the changelog or commit history for more details.
v0.19
New in version 0.19 (contributed by lameguy64, spicyjpeg):
-
examples: Replaced sample image of mdec/mdecimage with different artwork.
Original image: http://lameguy64.net/?page=drawings&post_id=9 -
examples: Updated readme file in examples directory to reference the new
mdecimage example program. -
psxsio: Added dummy hooks to unsupported device functions for tty device.
-
docs: Minor corrections on dev_notes.md.
-
docs: Updated documentation for CdGetSector() and CdReadCallback()
functions in libn00bref.odt.
2022-02-27:
-
libpsn00b: Added
hwregs_c.hheader and renamed some registers in
hwregs_a.h. Addedassert()as a proper macro. -
libpsn00b: Added new MDEC library; psxpress.
-
psxspu: Fixed critical bug in
SpuSetReverb(). -
psxetc: Fixed minor typos and bugs in
dlfcn.h. ReplacedDL_CALL()macro
withDL_PRE_CALL(). -
psxapi: Rewritten all BIOS API stubs using a Python script and a JSON list,
both of which are included in the library's source directory. -
examples: Updated
io/system573with bugfixed I/O board code and separated
the APIs into a separate source file. Fixed timing bugs inio/pads. -
mkpsxiso: Switched back to the master repository. The
dumpsxisocommand is
now included in PSn00bSDK installations. -
Added
psn00bsdk_target_incbin()andpsn00bsdk_target_incbin_a()CMake
functions for quickly embedding binary files into executables and libraries.
The examples have been modified to use this function where applicable. -
Added
LIBPSN00B_GENERATORCMake option to allow the host-side tools to be
compiled with MSVC or Xcode while still using Ninja ormaketo build the
libraries and examples. This is required as neither MSBuild nor Xcode support
custom toolchains. -
Updated
LICENSE.mdwith additional license information as well as a full
copy of the GPLv2 and GPLv3 (under whichmkpsxisoand GCC are licensed
respectively).
These notes have been generated automatically.
See the changelog or commit history for more details.