diff options
Diffstat (limited to 'libpsn00b/readme.txt')
| -rw-r--r-- | libpsn00b/readme.txt | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/libpsn00b/readme.txt b/libpsn00b/readme.txt new file mode 100644 index 0000000..c5fee34 --- /dev/null +++ b/libpsn00b/readme.txt @@ -0,0 +1,101 @@ +LibPSn00b, PSn00bSDK software libraries +2019 Lameguy64 / Meido-Tek Productions + +Licensed under Mozilla Public License + +LibPSn00b make up the majority of PSn00bSDK as it provides the functions +necessary for developing software for the PSX. Most libraries, mainly the +GPU and GTE libraries are written mostly in assembly language. + + +Brief library overview: + + libc - Standard C library. Contains only a small subset of the full + standard C library, mostly string and memory manipulation + functions. + + psxgpu - GPU library for video and graphics control. Most of the + important functions are implemented. + + psxgte - GTE library for GTE accelerated vector transformations. Most + important functions are implemented. + + psxapi - Provides access to most of the BIOS functions calls of the + PSX BIOS. + + psxetc - Provides some misc functions such as debug font. + + psxspu - SPU library. Basic functions such as hardware init, uploading + data to SPU RAM via DMA transfer and playing sound playback + are fully working but is currently lacking a number of + important functions, especially reverb. + + Each library has its own readme file that contains its changelog, todo + list, credits and some additional details of the library. + + +Compiling: + + Compiling the LibPSn00b libraries requires GCC and binutils targetting + mipsel-unknown-elf built with libgcc. The path to those binaries must be + specified in your PATH environment variable and the binaries must be + prefixed by the target architecture (ie. mipsel-unknown-elf-gcc). + + Simply run the Makefile in this directory using make (or gmake if you're + in a BSD environment). The Makefile should parse though each library + directory and run the makefile in it. + + +Documentation: + + Documentation of all the libraries are found in libn00bref.odf and it features + the same formatting as the official library documents. The document can be + exported in PDF format for easier viewing with a web browser or PDF viewer. + + +Contributing: + + Contributions are open for this project. Just obey the following rules + when making a contribution: + + * If you add new functions to libpsn00b make sure you document them in + libn00bref.odf. Documentation using Doxygen is discouraged. + * This project desires functions that interact with hardware registers to + be written in assembly language. If you decide to write your functions + that interact with hardware registers in C make sure you define your + register pointers as volatile and they must work properly when compiled + with -O2 optimization. + * Functions must work flawlessly on both emulators and real hardware. + * Don't forget to put your user name in the readme file of the library + you've made a contribution on and details of what you've added/modified. + * New functions that are not originally in the official SDK must be marked + as original code in both the library headers and the libn00bref document. + + +Library to-do list: + + Since the PSn00bSDK project still a work in progress, essential libraries + for CD and controllers support are not yet created but are high priority. + + libc - Yet to include a complete C standard function + + psxcd - CD library. Not much progress as getting the CD controller to + cooperate has been one heck of a force to be reckoned with. + Gave up with my repeated attempts with no success. Absolutely + huge props to anyone who can figure out how to use the CD + controller properly! -Lameguy64 + + psxpad - Pad/tap/gun library. No work has been done on it currently. + Supporting the Konami Justifier can be ignored as the way how + that lightgun works is pretty crude and likely going to be + awful to implement. Namco's Guncon is a lot simpler to + implement. + + psxpress - MDEC library. No work has been done on it currently. libpress + from the official libraries also contains functions for + encoding SPU compatible ADPCM data from raw PCM samples. + + Before implementing CD and controller support a better interrupt handling + scheme must be implemented as it would save a lot of trouble. Details + regarding this interrupt handler implementation can be found in psxgpu's + readme document.
\ No newline at end of file |
