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.h
header. -
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/cppdemo
andsystem/timer
have been rewritten completely.cdrom/cdxa
now checks for the end of the file properly rather than relying on it to be encoded in a specific way.sound/cdstream
has 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.h
and fixed some previously wrong kernel-related constants. -
Removed the
PSN00BSDK_LIBGCC
CMake variable and related code, as the GCC toolchain can automatically findlibgcc
on 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.CNF
argument 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_T
suffix (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_MASK
andsetDrawMask()
toDR_STP
andsetDrawStp()
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.h
header. -
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/strvideo
is 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:
elf2x
no longer adds region strings to converted executables, fixing issues with DuckStation's region autodetection. Updatedmkpsxiso
to 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-libstdcxx
option, 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_buf
type. -
psxgpu: Added
SetDrawOpType()
and theGPU_DrawOpType
enum 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/cppdemo
and 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_Channel
andDMA_Channel
enums. -
examples: Refactored and bugfixed all sound examples. Renamed the old
spustream
example tocdstream
and added a newspustream
example 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 theDRAWENV
structure. 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.inc
and updated examples accordingly. -
All projects are now compiled with
-Og
in debug mode and-O2
in 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.h
header 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/system573
with 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
dumpsxiso
command 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_GENERATOR
CMake option to allow the host-side tools to be
compiled with MSVC or Xcode while still using Ninja ormake
to build the
libraries and examples. This is required as neither MSBuild nor Xcode support
custom toolchains. -
Updated
LICENSE.md
with additional license information as well as a full
copy of the GPLv2 and GPLv3 (under whichmkpsxiso
and GCC are licensed
respectively).
These notes have been generated automatically.
See the changelog or commit history for more details.