aboutsummaryrefslogtreecommitdiff
path: root/changelog.txt
diff options
context:
space:
mode:
Diffstat (limited to 'changelog.txt')
-rw-r--r--changelog.txt605
1 files changed, 0 insertions, 605 deletions
diff --git a/changelog.txt b/changelog.txt
deleted file mode 100644
index 3efa7a0..0000000
--- a/changelog.txt
+++ /dev/null
@@ -1,605 +0,0 @@
-PSn00bSDK changelog
-
-Items that are lower in the log are more recently implemented.
-
-11-19-2021 by spicyjpeg:
-
-* libc: Removed STACK_MAX_SIZE and added _mem_init() back. RAM and stack size
- can now be set by calling _mem_init() manually before allocating any memory.
-
-* libc: sprintf() now supports fixed padding when using %@ (binary integer).
-
-* psxapi: Added wrapper around BIOS function GetSystemInfo().
-
-* examples: Added pads example. Also added CMake build script to cartrom, which
- is now built alongside all other examples.
-
-* Deprecated malloc.h and removed all references to it (stdlib.h should be used
- instead). Moved int*_t and uint*_t types to stdint.h.
-
-* Fixed file permission errors when attempting to install the SDK on macOS.
- Made some small updates to INSTALL.md.
-
-
-10-31-2021 by spicyjpeg:
-
-* Added tinyxml2 and mkpsxiso as git submodules and removed the (admittedly
- short-lived) SKIP_* options completely. CMake's ExternalProject is no longer
- used to download dependencies at build time.
-
-* Added CMake presets file with presets for building installer packages.
-
-
-10-25-2021 by Lameguy64:
-
-* Made a very tiny change in the readme file.
-
-* Included some of the indev directory from the SVN repository.
-
-
-10-17-2021 by spicyjpeg:
-
-* Added SKIP_TINYXML2 and SKIP_MKPSXISO build options in place of the old
- SKIP_DOWNLOAD option, and a new BUNDLE_TOOLCHAIN option for building packages.
- Updated INSTALL.md accordingly and fixed git branch error when downloading
- mkpsxiso during build.
-
-* Rewritten toolchain.txt (which is now TOOLCHAIN.md) and added proper Windows
- toolchain build instructions.
-
-* Added safety checks in CMake scripts to ensure elf2x/mkpsxiso are installed
- before attempting to build an executable or CD image.
-
-* examples: Added CMake build script to (and removed makefile from) vagsample.
-
-
-10-06-2021 by Lameguy64:
-
-* psxspu: Fixed register typo in SpyKeyOn causing unpredictable instability.
-
-* psxspu: Fixed bug where SpuKeyOn does not set the key-on bits for voices 16 to 23.
-
-* examples: Added vagsample SPU example.
-
-
-09-27-2021 by spicyjpeg:
-
-* liblzp, tools: Fixed tools not building on MSVC and cleaned up LZP API
- declarations (replaced meaningless void* pointers with proper types).
-
-* libpsn00b: Added missing PSN00BSDK_VERSION CMake variable.
-
-* examples: Fixed childexec (parent.exe) example crashing due to the child
- executable not being relocated in the new build script. Patched n00bdemo to
- suppress liblzp pointer type warnings.
-
-* Fixed another MSVC linker error when building tinyxml2 automatically, as well
- as various toolchain/compiler test errors sometimes thrown by CMake. Updated
- INSTALL.md with more details.
-
-
-09-13-2021 by spicyjpeg:
-
-* Migrated libpsn00b, tools, examples and template to CMake, added a top-level
- CMakeLists.txt and the libpsn00b/cmake directory for CMake setup scripts, got
- rid of the old makefiles and installation method.
-
-* Updated docs to match the new build system, moved installation instructions
- to INSTALL.md and added doc/cmake_reference.md describing the SDK's CMake
- API and variables.
-
-* mkpsxiso: Added rules to automatically download, build and install mkpsxiso
- (as well as its dependencies) as part of the SDK.
-
-* cpack: Added initial CPack support and created the cpack directory containing
- branding assets for installers built through CPack. A shell script is
- provided to regenerate the assets from their source SVGs.
-
-* liblzp: Copied library headers to libpsn00b/include/lzp.
-
-* psxetc: Fixed a random typo in a javadoc comment (those should be eventually
- rewritten into proper documentation anyway).
-
-* Added CMake, VS Code and DLL related entries to .gitignore.
-
-
-08-16-2021 by spicyjpeg:
-
-* psxetc: Added dynamic linking APIs (dl*, DL_*), implemented in dl.c and
- _dl_resolve_wrapper.s. The APIs can be accessed by including dlfcn.h, while
- another header (elf.h) provides structs and enums to help with manual parsing
- of library headers.
-
-* libc: Removed _mem_init.s, improved heap initialization code. Added support
- for setting how much RAM to use for the stack (by defining STACK_MAX_SIZE)
- and for overriding/replacing the default memory allocator.
-
-* psxapi: Added wrapper around BIOS function FlushCache().
-
-* psxspu: Fixed wrong bounds check in SpuSetTransferStartAddr().
-
-* examples: Added an example showing how to compile dynamically-loaded
- libraries (DLLs) and load them at runtime using the new dynamic linker.
-
-* libpsn00b: Added libpsn00b/ldscripts directory and linker scripts for both
- executables and DLLs. Also fixed several broken header files (psxgpu.h not
- including sys/types.h, missing scanf() declarations, ...).
-
-* Rewritten most makefiles (both for libraries and examples) and centralized
- all compiler flags into a single psn00bsdk-setup.mk file for consistency and
- easier editing. Added flags to build libpsn00b without gp-relative addressing
- for compatibility with the dynamic linker. Also added nm commands to generate
- symbol maps required by the linker.
-
-
-07-01-2021 by Lameguy64:
-
-* Libpsn00b: Added int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t,
- uint32_t and uint64_t variable types in sys/types.h.
-
-* psxgte: Replaced unsigned int variable types with u_long to further
- improve compatibility with code written for the official Sony SDK and
- to make my tutorial examples easier to compile on PSn00bSDK. Example
- programs have been updated to account for this change.
-
-* psxcd: Changed type of 2nd argument of CdRead() from u_int to u_long,
- as well as changing the type of the size element in CdlFILE from u_int
- to u_long.
-
-
-02-17-2021 by Lameguy64:
-
-* Improved build instructions in readme file and fixed some typos.
-
-* Improved toolchain.txt instructions.
-
-* tools: Added experimental elf2cpe converter for executing PSn00bSDK
- programs in official development units. No debug symbols however.
-
-* Fixed prefixes to allow SDK libraries and examples to be built
- with mipsel-none-elf.
-
-* examples: Fixed typo in plasma_tbl.h causing multiple definitions when
- compiling with newer versions of GCC in n00bdemo.
-
-* examples: cartrom example now marked as obsoleted, but still kept for
- reference purposes.
-
-* Includes alextrevisan's GTE macros in inline_c.h.
-
-* Added makefile template.
-
-
-01-05-2021 by Lameguy64:
-
-* psxgpu: Added struct names to many primitives.
-
-* psxgte: Defined SquareRoot0() and SquareRoot12().
-
-* psxgte: Added gte_lddp() C macro.
-
-* examples: Added C++ demo.
-
-* Updated readme a bit.
-
-
-11-29-2020 by Lameguy64:
-
-* libpsn00b: Defined MDEC hardware and related DMA registers in hwregs_a.h file.
-
-* psxgte: Fixed entry typo in table of squareroot.s (pointed out by SoapyMan).
-
-* libc: memmove updated to account for forward-looped memory move (by ckosmic).
-
-* examples: Removed redundant toolchain executable definitions in the makefiles.
-
-* examples: Included HDTV example for Github repo.
-
-
-09-19-2020 by Lameguy64:
-
-* Revised makefiles for building the libraries and examples in a way to make
- building with different toolchain versions easier with the PSN00BSDK_TC
- environment variable. Library installation and linking is also made easier
- with the PSN00BSDK_LIBS environment variable. See readme in the libpsn00b
- directory for details.
-
-* examples: Fixed libgcc not found error when compiling some of the examples.
-
-* libc: Added strtok().
-
-* libc: Added support for command line arguments. Pass arguments via
- SYSTEM.CNF BOOT= string or a string array with Exec(). Arguments can
- be read via argc/argv[] in main() or __argc/__argv anywhere else.
-
-* libc: Added SetHeapSize().
-
-* psxgpu: Moved ISR and callback subsystem to psxetc. You'll have to link
- psxetc after psxgpu and psxapi after psxetc in your library string.
-
-* psxetc: Moved debug font functions (FntInit(), FntOpen(), etc) to psxgpu.
-
-* psxetc: Fixed stack management in RestartCallback().
-
-* examples: Added argument passing in childexec example.
-
-* psxcd: Fixed crashing on PSIO and possibly some emulators by implementing
- a response buffer read limiter.
-
-* psxgpu: Interrupts are now disabled before setting up ISR and callbacks
- in ResetGraph(), as LoadExec() still has interrupts enabled when jumping
- to the loaded PS-EXE's entrypoint. Fixes programs made with PSn00bSDK
- crashing at ResetGraph() on PSIO when loading from the Menu System and
- possibly some emulators.
-
-
-07-25-2020 by Lameguy64:
-
-* psxgte: Added ScaleMatrixL().
-
-* doc: Corrected documentation for CdReadSync() function.
-
-* psxcd: Added new define: CdlIsoLidOpen.
-
-* psxcd: Updated media change detection logic, media change is checked
- by lid open status bit in all CD-ROM file functions. CdControl() calls will
- also trigger the media change status on lid open.
-
-* psxcd: Fixed bug in CdGetVolumeLabel() where it constantly reparses the file
- system regardless of media change status.
-
-* examples: Updated cdrom/cdbrowse example slightly.
-
-* psxcd: Added CdLoadSession().
-
-* psxcd: Fixed bug where CdReadDir() locks up in an infinite loop when it
- encounters a NULL directory record, and the parser has not yet exceeded the
- length of the directory record.
-
-* doc: Replaced library version numbers with SVN revision numbers in the
- introduced fields.
-
-* doc: Started work on CD-ROM library overview.
-
-
-04-24-2020 by Lameguy64:
-
-* Refined toolchain instructions a bit.
-
-* psxcd: Added automatic read retry for CdRead() operations, as long as
- CdReadSync() is called until read completion.
-
-* psxapi: Added BIOS atoi() and atol() calls. Temporary, may be replaced with
- a faster implementation
-
-* psxsio: Added ioctl() support for FIOCSCAN to probe for pending input in
- serial tty driver.
-
-* examples: Reorganized examples, added new tty and console examples.
-
-
-03-11-2020 by Lameguy64:
-
-* psxcd: Fixed CdInit() syntax (there should be no arguments).
-
-* psxcd: Fixed CdlFILE, loc variable renamed to pos.
-
-* documentation: Improved and updated toolchain instructions a bit.
-
-
-02-28-2020 by Lameguy64:
-
-* documentation: Added docs for CdOpenDir(), CdReadDir() and CdCloseDir().
-
-* psxgpu: Added GetODE().
-
-* psxspu: Fixed SpuKeyOn() bug where only 16 of the 24 channels can be
- activated, due to channel bits being written as a 16-bit word.
-
-* psxcd: Added CdOpenDir(), CdReadDir() and CdCloseDir() for parsing directories.
-
-* psxcd: Issuing CdlNop (GetStat) commands now triggers the media change flag
- internal to the libraries when CD lid is opened, so file system functions can
- update the cached ISO descriptor when the disc has been changed.
-
-* psxcd: Made internal variables and functions for iso9660 parsing static.
-
-
-02-25-2020 by thp:
-
-* libc: Added abs and labs() functions.
-
-
-01-06-2020 by Lameguy64:
-
-* libpsn00b: Renamed libpsxcd directory to psxcd to match with other libraries.
-
-* examples: Added obligatory hello world example.
-
-* documentation: Added CD-ROM library documentation.
-
-
-11-22-2019 by Lameguy64:
-
-* psxapi: Added root counter or timer functions and related definitions.
-
-* examples: Added timer example.
-
-* psxgpu: Added DR_AREA, DR_OFFSET and DR_TWIN primitives and accompanying
- setDrawArea(), setDrawOffset() and setTexWindow() macros.
-
-* psxgpu: Added parenthesis to argument value in setlen(), setaddr() and
- setcode() macros, preventing addPrims() from being used in a more
- sensible manner (ie. addPrims(ot, sub_ot+3, sub_ot)).
-
-* examples: Added render2tex render to texture example.
-
-* psxspu: Fixed typo in spuinit.s on section specifier specifying a data
- section instead of text section, resulting to jump to
- non-instruction-aligned linker errors.
-
-* psxgpu: Increased ISR stack size to 2048 bytes.
-
-* psxsio: Added kbhit() to poll keyboard input asynchronously and stdin
- is now buffered with an IRQ handler.
-
-* psxapi: Added AddDummyTty() (for psxsio DelSIO() fix).
-
-* psxsio: DelSIO() now calls AddDummyTty().
-
-* libc: Fixed bug in strncpy() not placing a NULL byte at end of string.
-
-* libc: Fixed strchr() and strrchr() declarations commented out in string.h.
-
-* libpsn00b: Added the long awaited libpsxcd library with cdxa example.
- Documentation will come soon but existing libcd docs should be good
- enough for awhile.
-
-* psxgpu: Fixed non functioning GPU DMA wait in DrawSync().
-
-* LibPSn00b run-time library is now officially 0.15b.
-
-
-10-11-2019 by Lameguy64:
-
-* psxetc: Added FntOpen(), FntPrint() and FntFlush() functions.
-
-* psxgpu: Fixed typo in termPrim() macro (value too long).
-
-* examples: Added billboarding sprites example.
-
-* psxapi: Transferred putchar() BIOS function to libc.
-
-* libpsn00b: Updated makefiles adding -fdata-sections and -ffunction-sections
- so unused functions will be stripped out, which yields smaller executables.
-
-* libc: Fixed negative integers not displaying properly in vsprintf()/vsnprintf().
-
-* libc: Fixed zero padding not working in vsprintf()/vsnprintf().
-
-* fpscam: Added debug text using FntOpen(), FntPrint() and FntFlush(). Also added
- _boot() call for returning to CD based serial loaders.
-
-
-09-23-2019 by Lameguy64:
-
-* libc: Added strcat() function.
-
-* Included PSn00bSDK logo vector.
-
-* psxgte: Added gte_stsz() macro.
-
-* psxgpu: Fixed typos in setUVWH() macro.
-
-* Added _boot() BIOS function (A(A0h) aka Warmboot, useful for CD based
- serial loaders).
-
-
-08-17-2019 by Lameguy64:
-
-* LibPSn00b run-time library is officially version 0.13b.
-
-* examples: updated balls and n00bdemo examples for the setDrawTPage()
- correction.
-
-* psxgpu: Fixed error on setDrawTPage() syntax and removed setDrawTPageVal()
- macro (not needed).
-
-* psxapi: Added event handler definitions related to memory cards.
-
-* psxapi: Added BIOS memory card functions.
-
-* examples: Added childexec example demonstrating a parent executable
- transferring execution to a child executable and back.
-
-* elf2x: s_addr no longer set on PS-EXE header, console BIOS already sets it
- by STACK value in SYSTEM.CNF and allows child executables to return to
- parent if left zero.
-
-* psxapi: Renamed _InitPad(), _StartPad() and _StopPad() to InitPAD(),
- StartPAD() and StopPAD() respectively. Fpscam example updated to new
- syntax.
-
-
-07-18-2019 by Lameguy64:
-
-* Added fpscam example.
-
-* Gave examples small descriptions.
-
-* Updated readme a little.
-
-
-07-17-2019 by Lameguy64:
-
-* LibPSn00b run-time library is officially version 0.12b.
-
-* libc: Added basic C++ support (many thanks to ijacquez).
-
-* libc: Updated start function that should make it possible for a child
- executable to return to a parent executable, return logic automatically
- calls EnterCriticalSection().
-
-* libc: Updated build method which takes libgcc from the compiler and adds
- its own object files into it, eliminating linker problems caused by having
- to order libc and libgcc libraries in a specific manner.
-
-* psxgpu: Added RestartCallback().
-
-* psxgpu: Added StoreImage() function.
-
-* psxgpu: Fixed bugged setRECT() macro.
-
-* libc: Added assert.h.
-
-* examples: Balls example now has 166% more balls.
-
-* psxgpu: Increased ISR stack size to 1024 bytes so printf can be used in
- callbacks safely.
-
-* libc: Removed int64 (long long) printing in vsprintf() for better
- performance, as the R3000 does not support 64-bit arithmetic natively
- so its emulated like floats. int64 still used for processing floats and
- doubles and old vsprintf.c file is still included for those who really
- want int64 support for whatever reason.
-
-* libc: Removed stdarg.h which is part of GCC and not license compatible
- with MPL. The toolchain compiled with libgcc provides stdarg.h and other
- standard headers.
-
-* examples: Updated sdk-common.mk variable convention for better flexibility.
-
-* libpsn00b: Added common.mk file containing global values for all libraries.
-
-* Updated library and toolchain build instructions.
-
-* psxgpu: Fixed bug in DMACallback where the internal DMA handler would fail
- to install due to GetInterruptCallback() retrieving the callback value
- immediately in the branch delay slot of a jr instruction, which resuls to
- an inconsistent return value. This also broke DrawSyncCallback().
-
-* psxsio: Done fixes on _sio_control() from the aformentioned issues with load
- instructions in delay slots.
-
-* psxgte: Added DVECTOR struct.
-
-* psxgpu: Added setLineF2(), setLineG2(), setLineF3() and setLineG3()
- primitive macros.
-
-* Added more functions in documentation.
-
-
-07-01-2019 by williamblair:
-
-* Fixed FntLoad() Y coordinate not working properly for debug font (due to
- Y coordinate not being specified for the getTPage() macro.
-
-
-06-23-2019 by Lameguy64:
-
-* LibPSn00b Run-time Library is officially version 0.10b.
-
-* Reworked readme file with improved build instructions.
-
-* libpsn00b: Added missing C extern groups for C++ compatibility in
- psxapi.h, stdlib.h and string.h.
-
-* libpsn00b: Removed changelogs in the readmes of each libpsn00b library
- as its much easier to keep track of changes in a single changelog than
- scattering them across multiple changelogs.
-
-* psxapi: Added Exec() function and EXEC struct.
-
-* psxgpu: Added DrawPrim() function (uses direct I/O).
-
-* psxgpu: VSync() function completely overhauled. Logic is now based on
- Sony's code but more efficient and can return total number of vblanks
- elapsed, number of hblanks since last call and wait up to n vblanks
- specified by an appropriate argument value. It will also generate a
- timeout when vblank interrupt stops working and would attempt to
- restart it.
-
-* psxapi: Added gets() and getc() BIOS functions.
-
-* psxapi: Corrected a putc()/putchar() discrepancy. putc() puts a character
- to a file stream, putchar() puts a character to stdout.
-
-* Completely revised library reference manual with better formatting and
- more functions documented.
-
-* psxgpu: Added DrawSyncCallback().
-
-* psxgpu: Implemented DMA interrupt callback system with DMACallback()
- allowing to handle DMA interrupts very easily.
-
-* libpsn00b: Implemented Serial I/O library (psxsio) with serial tty device
- (installed using AddSIO) and serial callback support. Serial library
- is also fully documented.
-
-* psxgpu: Implemented IRQ callback system with InterruptCallback() allowing
- to set interrupt callbacks very easily.
-
-* psxgpu: Implemented proper IRQ handler installed using HookEntryInt or
- SetCustomExitFromException() for handling VSync and other interrupts.
- ChangeClearPAD(0) must now be called after _InitPad() or vsync timeout
- will occur.
-
-* libpsn00b: Started making local labels prefixed with .L instead of . making
- them not appear in symbol lists resulting in a cleaner symbol dump. Still
- not possible to do function-scope local labels like in ASMPSX because GAS
- syntax is ASS (or ASS GAS which is farts, GAS is farts).
-
-* psxgpu: DrawSync() function now waits for DMA completion and GPU transfer
- ready instead of simply waiting for GPU transfer ready which is the likely
- cause of subtle GPU related timing issues, it also sets GPU DMA transfer
- mode to off afterwards. It can also read number of words remaining in DMA
- transfer if a0 is non-zero but it likely only returns the correct value on
- VRAM transfers. Exact way how DrawSync() returns the count in the official
- SDK is currently unknown.
-
-
-06-07-2019 by qbradq:
-
-* lzpack: Swapped a buffer length litteral with sizeof operator, fixing a
- stack overflow bug in some instances.
-
-
-05-23-2019 by Lameguy64:
-
-* Added dev notes.txt file in docs that includes notes about the many
- quirks about the console discovered during the development of this
- SDK project.
-
-* Updated libn00bref.odf a little.
-
-* Added turboboot example.
-
-* Added rgb24 example.
-
-* Got custom exit handler set using SetCustomExitFromException() (BIOS
- function B(19h)) working. Currently used to acknowledge VSync IRQ but
- actual VSync handling is still done with events and needs to be
- transferred to the custom exit handler. At least it lets BIOS
- controller functions to work now. See doc/dev notes.txt for details
- on how this handler behaves.
-
-* Made stack usage in ResetGraph() less wasteful. You only need to
- allocate N words on stack based on N arguments of the function
- being called.
-
-* VSync IRQ handling now done using a custom exit from exception handler.
- Actual VSync handling is yet to be moved to the custom exit handler
- though.
-
-* Made stack usage in start.s of libc a lot less wasteful.
-
-* Implemented controller support via BIOS functions (use _InitPad(),
- _StartPad() and _StopPad()). BIOS memory card functions may also
- work as well but its not tested yet.
-
-* Removed duplicate initpad.s and initcard.s functions in psxapi.
-
-* Added _InitCd() function to psxapi which is a safer version of _96_init()
- as it preserves other DMA channel settings. Use BIOS file functions such
- as open(), read() and close() with path names starting with cdrom:/ to
- access files from CD after calling _InitCd().