summaryrefslogtreecommitdiff
path: root/Changelog
diff options
context:
space:
mode:
authorXavi Del Campo <xavi.dcr@tutanota.com>2020-01-31 10:32:23 +0100
committerXavi Del Campo <xavi.dcr@tutanota.com>2020-01-31 10:32:23 +0100
commit7c24e9a9b02b04dcaf9507acb94091ea70a2c02d (patch)
treec28d0748652ad4b4222309e46e6cfc82c0906220 /Changelog
parenta2b7b6bb1cc2f4a3258b7b2dbc92399d151f864d (diff)
Imported pristine psxsdk-20190410 from official repo
Diffstat (limited to 'Changelog')
-rw-r--r--Changelog268
1 files changed, 268 insertions, 0 deletions
diff --git a/Changelog b/Changelog
new file mode 100644
index 0000000..a7a08dd
--- /dev/null
+++ b/Changelog
@@ -0,0 +1,268 @@
+2019-04-10 (0.6.2):
+- Included GTE library by LameGuy64/Meido-Tek as 'libmeidogte'
+- New example: gtecube. Demonstrates libmeidogte
+- The 'rottest' and 'puzzle' examples always set a PAL video mode regardless of the setting in Makefile.cfg
+ Fixed.
+- Removed unused macro code from spasm
+
+2018-01-15 (0.6.1) :
+- Fixed bug where LO and HI registers were not saved and restored by the NoBIOS exception handler
+- Some definitions (like the ones for the interrupt controller and the GPU) moved out of
+library source code to public headers, so they are available to all applications that may need them
+- Fixes in pad.c so that compiler optimizations do not generate code with bad behavior
+- Fixed crash when using a GCC 7.x+ compiler when calling static constructors during initialization.
+- Static constructors are now called in backwards order. (as they are on most systems)
+- Fixed bug where the __ctor_list symbol wouldn't have the address of the constructor list,
+but would have its address offset unpredictably (leading to the crash mentioned above).
+- Integrated upstream changes from F3M in libf3m
+- Removed all references to Composer 669 music format in the sources and
+ documentation of libmodplay, as support for the format was never
+ implemented.
+- Added psxs3m example. Mostly the same as psxmod but using libf3m
+instead of libmodplay
+- Fixed some issues in the psxmod example.
+
+2016-06-03 (0.6):
+- size_t and ssize_t definitions moved from stdio.h to types.h, and types.h is included automatically by stdio.h
+- Added strcoll() - as a wrapper to strcmp()
+- File device enum is now public and moved to stdio.h
+ It was incorrectly private and in libpsx/src/libc.c before
+- fopen(): path argument is now const char*
+- rename() and remove(): both arguments are now const char*
+- open(): filename argument is now const char*
+- get_real_file_size() and get_file_size(): argument is now const char*
+- firstfile(): name argument is now const char*
+- Added stdin, stdout and stderr FILE structures
+- Implemented fwrite(). Only works with stdout and stderr
+- Implemented fputs(). Only works with stdout and stderr
+- Implemented freopen()
+- Implemented clearerr(), feof(), ferror() and fileno()
+- Implemented placeholders for strerror() and strerror_r()
+- Added libf3m, to playback S3M module files, adapted to PSXSDK from GreaseMonkey's F3M
+- libm/k_rem_pio2.c: fixed misleading indentation at line 188.
+ libm/e_asin.c: fixed misleading indentation at line 89.
+ libm/w_exp.c: o_threshold and u_threshold variables only defined when
+ _IEEE_LIBM is not defined
+ Fixed warnings with GCC 6.1.0
+- Compilation warnings fixed for some tools, and some cleanup in spasm/parser.c
+- Fixed warnings with psxgte.h - specifier was put after and not before enumeration
+- Fixed warnings in the examples
+
+2015-07-29 (0.5.99):
+- Added PSX_WarmReboot()
+- Fixed extern directive for GsCurDrawEnvH: was wrongly specified for GsCurDrawEnvY
+- NORMAL_LUMINOSITY is now an alias for NORMAL_LUMINANCE: "luminosity" is an incorrect term for the meaning
+- Added PRFONT_RL(f), PRFONT_GL(f), RLFONT_BL(f) attributes to GsSetFontAttrib(). These allow to adjust the luminance factor for the color components used when drawing the font: in few words, when used correctly, the attributes can be used to change the color of the font on the fly, without using another color look-up table.
+- Added set_cop_register(), get_cop_register() and run_cop_instruction().
+ set_cop0_register() and get_cop0_register() are now aliases for set_cop_register() and
+ get_cop_register() respectively.
+- Added set_cop_ctrl_register() and get_cop_ctrl_register()
+- Fixed some bugs in the Makefiles, thanks to rsoft and Missingno_force for providing patches
+- Fixed a bug in bmp2tim where 4-bit images with a width not a multiply of 4, or 8-bit images with a width
+ not a multiply of 8 were erronously generated and thus contained invalid data.
+ It should not have been possible to generate such images in the first place.
+- Fixed a bug in bmp2tim where unnecessary debug messages were printed on screen when converting an image.
+- The path for objcopy hardcoded inside elf2exe is now taken from the OBJCOPY variable specified in Makefile.cfg,
+ and not from the OBJCOPY_PATH define in the source code itself
+- Added -fno-strict-overflow flag by default to Makefile.cfg and to the psx-gcc and psx-g++ scripts
+- Multiplication registers HI and LO are now saved and restored by the vblank and root counter handlers -
+ this could give problems if any division or multiplication instruction was used inside a handler.
+ Fortunately no such instructions are used inside handlers most times.
+- Greatly improved nv-SPASM - now it should be fully compatible (maybe save some quirks)
+ with the Hitmen assembler
+- Added GsVPrintFont()
+
+2014-04-22 (0.4.99):
+- Fixed the Makefile for the tools, now it considers the HOST_* variables and removes executables
+ correctly under Windows
+- added --enable-languages=c to the command line to build GCC, in toolchain.txt
+- Added abort() to libc
+- Fixed Makefile for misc directory
+- Fixed genscript.sh: generated link script playstation.x now correctly
+ includes libgcc and does not rely on EXTERN directives
+- New SsUpload() implementation contributed by Shendo, which contains workarounds for emulators.
+ Also works on ePSXe.
+- Fixed wrong return value for McWriteSector()
+- Introduced debug build, that can be built by specifying the PSXSDK_DEBUG
+ flag at compile time - it has more verbose messages, diagnostics, etc.
+- Very verbose messages are now only compiled in for the debug builds.
+- Added support for the 1KB scratchpad, which is the data cache that went
+ unused in the PlayStation - it acts as a kind of "fast RAM";
+ it is accessible as the byte array __scratchpad
+- Added RemoveRCntHandler()
+- Removed the InitCARD() - StartCARD() - StopCARD() sequence in PSXSDK_Init() when using BIOS mode,
+ so that the vblank handler would not crash - the fix was acknowledging the interrupt in psxsdk's internal handler
+ (in start/start.s). Thanks to Shendo for reporting this.
+- The shell to use when executing scripts can now be specified in Makefile.cfg by changing the HOST_SHELL variable
+- Moved the prototypes for index(), rindex(), strcasecmp() and strncasecmp()
+ from string.h to strings.h, to be more standard
+- Implemented the ffs*() and the popcount*() family of functions
+ (the prototypes are in string.h or strings.h)
+- string.h now includes strings.h for backward compatibility - advice: do not rely on this.
+ when you use something whose prototype is in strings.h, ALSO include strings.h!
+- implemented bitstring.h, bit string manipulation macros
+- implemented memccpy()
+- index() and rindex() were wrongly implemented both in libpsx/src/libc/string.c and as
+ macros in strings.h; now they are only implemented as macros in strings.h
+- added swab()
+- added defines for EXIT_SUCCESS and EXIT_FAILURE in stdlib.h
+- __PSXSDK__ is now defined by psx-gcc, this makes easier for code
+ to detect it is being compiled for the PSXSDK
+- added defines for O_RDLOCK, O_WRLOCK, O_SCAN, O_RCOM, O_EXCL, O_ASYNC, O_NOWAIT
+ and O_NOBUF, and corrected define for O_APPEND (it is now correctly 256, not 8) in fcntl.h
+- Added a very simple implementation of stat().
+ Only the st_size, st_blksize and st_blocks fields are available in struct stat (sys/stat.h)
+- Added exit() and atexit() (stdlib.h)
+- Added vprintf()
+- Added GsSetListEx()
+- Added C++ support. Thanks to Mauro Persano (fzort) for contributing this the initialization code.
+- Fixed linked list corruption bug in GSTPoly3()
+- Added GsPolyLine() and GsGPolyLine() to draw non-graduated and graduated poly lines.
+- Added GsGTPoly3() and GsGTPoly4() to draw graduated (shaded) textured 3-point and 4-point polygons
+- Added nv-SPASM to PSXSDK, a free and open source implementation of the Hitmen's spASM assembler, written by nextvolume.
+ It will be installed as `spasm'.
+
+2013-11-09 (0.3.99):
+- Added GsRotateVector(). It is a wrapper to internal libpsx functions.
+- Added prototype to nextfile() in psxbios.h, it was missing.
+- Added documentation for SetVBlankHandler(), it was missing.
+- Fixed bug in modplay where instruments with an empty sample were played
+ with the sample of the immediately next instrument; now they are not
+ played at all, which is the correct behaviour.
+- libmodplay and its tools now ignore "useless" samples (less than 32 bytes)
+ when loading MOD files.
+- Added Doxygen documentation for libmodplay.
+- Removed division by zero bug in the MOD playing code in libmodplay.
+ Fixes crashing on real hardware.
+- libmodplay now supports only MOD files, as the old saying goes
+ "do one thing and do it well".
+- Implemented ctype completely in the libc. The is*() family of functions was
+ notably missing.
+- Implemented atoi() and atol() in the libc.
+- Fixed the issue of strtol() returning 0 for strings beginning with whitespace.
+- Added PRFONT_UNIXLF attribute to built-in font rendering functions.
+ With PRFONT_UNIXLF, the writing goes to the new line and *also* to the beginning of the new line.
+ When not using PRFONT_UNIXLF, the '\r\n' sequence has the same effect as '\n' when using PRFONT_UNIXLF.
+- Carriage return was ignored by GsPrintFont(). This is now fixed.
+- Fixed bad code in libc/string.c
+- Added strcasestr(), stpcpy(), stpncpy(), strnlen(), memrchr() to libc
+- Added and adapted serial port library by Shendo.
+- Added and adapted new pad reading code and memory card code by Shendo.
+ The memory card filesystem is not yet implemented! You can only use raw sector reads and writes for now.
+- libadpcm is now at least eight times faster. There were some implicit floating point operations left which have been removed.
+- SsAdpcmPack() now supports non-ending and non-looping samples, useful to generate sound data at runtime.
+- Added experimental "NoBIOS" mode, where no BIOS calls and exception handlers are used.
+ It is accessed by passing the PSX_INIT_NOBIOS flag to PSX_InitEx(). Support for many things is missing or doesn't work as well
+ as the "BIOS" mode.
+- [REALLY IMPORTANT]
+ The compiling and installation phases are now separate; i.e. to build and install the new SDK libraries and tools,
+ use "make" then "make install", instead of just "make" like it used to be.
+- Added support for 'j', 't', 'z', 'q' length identifiers to vsnprintf()
+- vsnprintf() now honors the space flag.
+- [vsnprintf()]
+ The behavior when handling an unknown character in the format after '%' is now correct,
+ i.e. the character is added to the output string, and the format specification is escaped.
+ The previous, incorrect behavior was ignoring the character and staying in format
+ specification until the character for a known type was found.
+- Added missing prototypes for strdup() and strndup() to string.h
+- Now string functions use size_t instead of int for lengths and counts
+- Added memmem(), lltoa(), ltoa(), itoa(), ulltoa(), ultoa() and utoa() to libc
+
+2013-05-14 (0.2.99):
+- Changed internal version to 0.2.99 (was 0.1.99)
+- Implemented PSX_PollPad() which is similar to PSX_ReadPad() but much more advanced.
+ Analog sticks and NeGCon are now supported.
+- Updated information about reading CD-RWs in the readme.
+- Added --showoffset option in cdcat
+- Added -removelogo option in lictool
+- Added runexe.h and prototype for PSX_RunEXE(), which was missing
+- Added GsDrawListPIO(), that uses GPU port I/O access instead of GPU DMA to transfer primitive data to the GPU.
+- Added GsInitEx(), which allows to specify flags for GPU initilization.
+ GsInit() is now a wrapper to GsInitEx(), and it is the same as calling GsInitEx(0)
+- srand() and rand() are now implemented in the C library and the BIOS versions are no longer used.
+- Changed joypad reading code, now it should work better.
+- Beginnings of XM music file support in libmodplay. Support doesn't really work yet, though.
+- Added Coprocessor 0 register manipulation functions get_cop0_register() and set_cop0_register()
+
+From 0.1 to 2013-01-14:
+- Added several math constants (such as M_PI) to math.h
+- Added GsSetDispEnvSimple() and GsSetDrawEnvSimple() prototypes to psxgpu.h. The functions already existed in 0.1 but they were not prototyped and a warning was given by the compiler when they were used in a program.
+- Added sys/types.h
+- [SERIOUS] Fixed GsSpriteFromImage() - the v value when the pixel mode was 4-bit or 8-bit was incorrect
+- Added GetSystemRomVersion() function
+- [SERIOUS] As many functions provided by the BIOS which handled memory did not work correctly or at all,
+ memcmp(), memcpy(), memmove(), memcmp(), memchr(), bzero(), bcopy() and bcmp() have been implemented in
+ PSXSDK's libc. This fixes a lot of problems.
+- Fixed GsPrintFont(), the x position was incremented before drawing a character.
+ Now it is incremented after drawing a character.
+- Now the joysticks/joypads are read using low-level routines instead of using BIOS routines.
+ This is more versatile and allows the implementation of things such as vibration.
+ On the other hand, this can cause conflicts with the BIOS' memory card handling routines.
+ If you don't do directly file manipulation calls on the memory card there should be no problem, however,
+ as the PSXSDK functions to read/write the memory card take care of that already.
+ The functions added are: QueryPAD(), pad_read_raw(), pad_escape_mode().
+- Implemented vibration for DualShock-compatible controllers.
+ The functions added are: pad_enable_vibration(), pad_set_vibration()
+- The PSXSnake example now vibrates your joystick when you die.
+- Fixed calculate_real_padding_hex() in libc.c. This should fix padding with hexadecimal
+ numbers in vsnprintf based functions (sprintf() / GsPrintFont() / etc.).
+- SetVBlankHandler() and SetRCntHandler() now change handler if they're called after an handler
+ has already been set. In 0.1, they did not change handler and kept the old handler.
+- bmp2tim now also supports setting magic pink as transparent (like Allegro).
+- scalex and scaley in the GsSprite structure now act like PsyQ or Blade Libs when they are
+ higher than eight. When they are lower than eight they act like in 0.1.
+- Added scaling, wrapping, and justifying support to GsPrintFont()
+ Attributes can be set by using GsSetFontAttrib()
+- In 0.1 bmp2tim crashed if it didn't find or couldn't read the source bitmap, this is fixed now.
+- Fixed endianness issue for wav2vag on big endian machines.
+- Added GsScreenW and GsScreenH global variables which report the size of the screen
+ in the current video mode so you don't have to keep track of that yourself
+- Added is_load_delay_ok(). This checks if the load delay slot behaves as it does on real hardware.
+ Many emulators do not emulate the load delay slot and show inaccurate behavior.
+ You really need to know this only if you are doing interesting things with opcodes yourself, otherwise the compiler and the assembler will take care of this for you.
+- After returning from main() the empty endless loop wasn't running. This is now fixed.
+- Added %f format to vsnprintf(). This adds floating point support to all functions using the *sprintf() family of functions, including GsPrintFont
+- Added '@' conversion to vsscanf and vsprintf(). It is a base-2 (binary) conversion and it is a psxsdk specific extension.
+- Added support for 64-bit integers in vsnprintf() for binary, decimal, octal and hexadecimal formats.
+- Added 2d rotation support to sprites.
+- Added long file name support (via TRANS.TBL) to fopen() using the cdromL: virtual device
+- Added gs_get_tpage_num, gs_get_tpage_u and gs_get_tpage_v macros to psxgpu.h, with which
+ you can obtain the tpage, u and v parameters for textures knowing the coordinate in the framebuffer
+- Added GsIsWorking() alias for GsIsDrawing()
+- Removed useless jr $ra, nop instruction sequence which was never executed in system calls, and fixed CriticalSection system calls
+- Added GsScreenM to store current video mode (NTSC or PAL)
+- Removed -O0 from the psx-gcc script, you can now specify optimizations on the compiler command line.
+ PSXSDK library code is still compiled without optimizations, though.
+- Fixed a really nasty bug when checking if (input image width + x origin) and (input image height + y origin)
+ were out of boundary in bmp2tim
+- GsPrintFont() now recognizes TAB ('\t') and prints it accordingly (eight white characters)
+- Added the low-level CDROM library.
+- Added PSX_InitEx(). It allows to more strictly control what is initialized compared to PSX_Init()
+- Added -mpink option to tim2bmp. Transparency is rendered as "magic pink" in the output bitmap file.
+- GsSetFont() now keeps the old value for the item related to the argument if -1 is passed as the value of the argument.
+ i.e: GsSetFont(-1, -1, 30, 40) will just change the font clut x and y to 30 and 40, and will keep the font origin x and y unchanged.
+- Fixed some bugs in the huff program which were pointed out by Gemini ages ago, but were never fixed (really).
+- Fixed vsnprintf buffer overflow.
+- Fixed floating point printing bug in vsnprintf.
+- Fixed the bug with GsGPoly4 that happened because the arrays of the colors in the structure were three bytes long
+ instead of correctly being four bytes long. Thanks to Xavier Del Campo Romero for reporting this.
+- Implemented index(), rindex(), strspn(), strcspn(), strtok() and strsep() in the libc.
+- Implemented strlwr() and strupr() in the libc.
+- Implemented qsort() in the libc.
+- Implemented realloc() in the libc.
+- Implemented optional auto-waiting in GsDrawList(). If GsSetAutoWait() is called at any time in the program,
+ after that moment you will not need to wait for the GPU to finish working in your code, everything will be done
+ automatically. Auto-waiting needs to be enabled as it is disabled by default.
+- Removed a totally wrong comment in start.s which said "this might now work on PSOne".
+ It made its way through despite being about some strange things happening when PSXSDK was
+ began to be programmed??
+- Fixed stupid bug in SsUploadVag()
+- Readded abs() to libc.
+- Added PSX_INIT_SAVESTATE flag to PSX_Init() to save the state
+ of the BIOS before initializing the library
+- Added PSX_RestoreBiosState()
+- Added PSX_RunExe() to easily load another exe to run instead of the currently running one
+- Changed the prototype and return value for PSX_GetButtonName() to something sane.
+- GsUploadImage() now has a void return type. It was int before but it never returned anything.
+- Fixed a lot of warnings when compiling libpsx.
+- Fixed an array initialization out of bounds problem in libmodplay.