pspsdk | An open-source SDK for PSP homebrew development

 by   pspdev C Version: Current License: Non-SPDX

kandi X-RAY | pspsdk Summary

kandi X-RAY | pspsdk Summary

pspsdk is a C library. pspsdk has no bugs, it has no vulnerabilities and it has low support. However pspsdk has a Non-SPDX License. You can download it from GitHub.

The PSP Software Development Kit (PSPSDK) is a collection of Open Source tools and libraries written for Sony's Playstation Portable (PSP) gaming console. It also includes documentation and other resources developers can use to write software for the PSP. PSPSDK is distributed under a BSD-compatible license, with the exception of the files located in tools/PrxEncrypter. The files located in the tools/PrxEncrypter directory are subject to the terms of the GNU General Public License version 3. See the LICENSE files for more information.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              pspsdk has a low active ecosystem.
              It has 721 star(s) with 127 fork(s). There are 67 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 5 open issues and 31 have been closed. On average issues are closed in 227 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of pspsdk is current.

            kandi-Quality Quality

              pspsdk has 0 bugs and 0 code smells.

            kandi-Security Security

              pspsdk has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              pspsdk code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              pspsdk has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              pspsdk releases are not available. You will need to build from source code and install.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pspsdk
            Get all kandi verified functions for this library.

            pspsdk Key Features

            No Key Features are available at this moment for pspsdk.

            pspsdk Examples and Code Snippets

            No Code Snippets are available at this moment for pspsdk.

            Community Discussions

            QUESTION

            how can i further understand the compilation process used by gcc?
            Asked 2020-Jan-24 at 09:50

            I was trying to reverse engineer some psp programs developed using the free pspsdk

            https://sourceforge.net/projects/minpspw/

            I noticed that i created a function to see how MIPS handles more than 4 arguments (a0-a4). Everyone i know has told me that they get passed onto the stack. To my surprise, that 5th argument was actually passed to register t0 and to compiler didn't even use the stack!

            it also inlined a function without even having used a jal or jump to it. (obvious optimization). Altough there was indeed a space a memory and you could double check by using print with function pointer argument. That actual code that was executed was automatically inlined without the need of a function call instruction.

            ^^ but that doesn't really benefit me for a reverse engineer attempt...

            there is a man page for this version of gcc. and it takes seconds to install if anyone is able to provide it's man for compilation if there is one. It's so long i don't even know how to reference information reliably

            ...

            ANSWER

            Answered 2020-Jan-24 at 09:50

            How arguments are passed is specified by the ABI (application binary interface). So you have to find respective documents.

            Moreover, there is more than one such ABI, namely n32 and n64. In the case of mips-gcc, some of the decisions are commented in the GCC sources like in ./gcc/config/mips/mips.h

            Source https://stackoverflow.com/questions/59892138

            QUESTION

            how do you intercept the address of an instruction that is writing to a segment of memory?
            Asked 2020-Jan-23 at 12:30

            Imagine we have a usual instruction such as this one

            ...

            ANSWER

            Answered 2020-Jan-23 at 12:30

            Intercepting an instruction that writes to a particular address is not a normal activity in programs.

            It is a feature provided by some debuggers. There are at least three ways debuggers may be able to do this:

            • A debugger can examine the program code and find where a particular instruction writes to a particular address. This is actually a hugely complicated activity that requires interpreting the instructions. Often, a debugger cannot do it completely; as doing so in general is equivalent to completely interpreting and executing the program the same way the computer processor does, and it is very slow to do in software. Instead, the debugger may plan part of program execution and put in a breakpoint at a spot where it is unable to easily continue, such as at a branch instruction that depends on a value the debugger is not prepared to compute. A breakpoint is a special instruction that interrupts program execution and, in this case, results in the operating system transferring control to the debugger. At that time, the debugger removes the breakpoint, requests that the instruction be single-stepped (that the processor execute the single instruction and then interrupt program execution immediately), examines the result, and continues.
            • A debugger can mark the page of memory containing the desired address as no-access. Then, whenever the program accesses that memory, the hardware will interrupt program execution, and the operating system will transfer control to the debugger. The debugger examines the instruction that caused the interruption. If the instruction is accessing the target address, the debugger acts on that. If it is not, the debugger changes the memory protection to allow access, requests that the instruction be single-stepped, changes the memory protection to disallow access, and resumes the program to wait for the next interruption. (Instead of single-stepping the instruction, the debugger might just emulate it, since that might avoid changing the memory protection twice, which can be expensive.)
            • Some computer processor models have features to support this sort of debugging feature. The debugger can request that a portion of memory be monitored, so that the hardware interrupts program execution when a particular address is accessed, instead of when any part of a whole memory page is accessed.

            I cannot speak to the Sony platform you are using. You would have to check its documentation or ask others regarding the availability of such features. Since this is a feature most often used by debuggers, investigating the documentation regarding debugging could be a way to find out whether the system supports such a feature.

            Source https://stackoverflow.com/questions/59872367

            QUESTION

            what is implied by using the -L in gcc flag in gcc post-ceded by a dot
            Asked 2020-Jan-21 at 02:11
            psp-gcc -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150  -L. -LC:/pspsdk/psp/sdk/lib   main.o  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o controller_basic.elf
            
            ...

            ANSWER

            Answered 2020-Jan-21 at 02:11

            The . (dot) refers to the current directory. Therefore these options are specifying that the current directory should be searched for any required header files (-I.) and any required libraries (-L.).

            From the GCC manual:

            Source https://stackoverflow.com/questions/59833274

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install pspsdk

            PSPSDK is distributed in both source and binary packages. If you only want to use the PSPSDK tools and libraries to develop your software you'll want to grab the binary distribution of PSPSDK specific to your development platform. If you need fine-grained control over how PSPSDK is installed on your system, or if you would like to modify PSPSDK then grab the source distribution. You can also install PSPSDK from Git, see "Installation from Git" below for details.
            Download the PSPSDK binary package specific to your development system. For example, if you are using Windows, you will want to download the file pspsdk-1.0-win32.zip. Extract or unzip the package into the folder where the PSPDEV toolchain is installed. For example, on a Windows system you may have installed the PSPDEV toolchain to C:\pspdev. You would then unzip PSPSDK into C:\pspdev. Update your PATH environment variable to point to the PSPSDK tools directory. In the above example, if you installed PSPSDK to C:\pspdev, you would add C:\pspdev\bin to your PATH.
            PSPSDK uses the GNU autotools (autoconf and automake) for its build system. To install PSPSDK from a source distribution, run the following commands after unpacking it:. If you haven't installed Doxygen or don't want to build the library documentation, you can skip the third step.
            PSPSDK can be found in the Git repository located at https://github.com/pspdev/pspsdk. If you are using the command line version of the git client, you can the following command to download PSPSDK:.

            Support

            If you find a bug in PSPSDK, open an issue at GitHub. If possible, include any code or documentation that can be used by the PSPSDK developers to recreate the bug.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/pspdev/pspsdk.git

          • CLI

            gh repo clone pspdev/pspsdk

          • sshUrl

            git@github.com:pspdev/pspsdk.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link