pspdev / psplinkusb Goto Github PK
View Code? Open in Web Editor NEWGeneral purpose homebrew/debugging toolkit for PSP
Home Page: https://pspdev.github.io/debugging.html
License: BSD 3-Clause "New" or "Revised" License
General purpose homebrew/debugging toolkit for PSP
Home Page: https://pspdev.github.io/debugging.html
License: BSD 3-Clause "New" or "Revised" License
The 'c' gdbserver command is deprecated, and it is recommended that vCont packets are used for multithreading support . I tried updating psp-gdb a while back so I could get it to support Rust, but I ran into issues with psplink losing track of the current thread.
This fails to compile using https://github.com/pspdev/pspsdk with the following error:
$ podman run --rm -v "$PWD:/build" bmaupin/pspdev:gcc-4.6.4 make release
...
main.o: In function `initialise':
(.text+0x1b4): undefined reference to `sceSysconGetPommelVersion'
I don't even see sceSysconGetPommelVersion
in https://github.com/pspdev/pspsdk/blob/master/src/kernel/pspsyscon.h
A workaround is to replace:
int t_result = sceSysconGetPommelVersion(&t_pommel);
with:
int t_result = sceSyscon_driver_E7E87741(&t_pommel);
in usbgdb/main.c
Thanks!
It can happen that the $sp register is inside a protected memory area.
This will avoid that the memory can be read by psp-gdb, and therefor makes tracing complicated (You have to use pspsh to disable the protection and peek the value manually, then use it inside gdb).
(gdb) bt
#0 0x08835630 in _free_r ()
Cannot access memory at address 0xbebfc5c
host0:/> memprot off
Checking $sp+c
host0:/> peekw 0x0BEBFC5C
0x0BEBFC5C: 0x08809AB0
host0:/> memprot on
Looking up the symbol with gdb
(gdb) info symbol 0x08809AB0
intraFontUnload + 40 in section .text
EDIT: After further investigation I found the culprit, I think. Inside usbgdb/main.c a check assures only available memory is being read. On the PSP Fat (32MB) the regions are correct. But the PSP Slim features more RAM (64 MB). Which is why the size probably has to be adjusted:
if((addr >= 0x08800000) && (addr < 0x0A000000))
Becomes
if((addr >= 0x08800000) && (addr < 0x0C000000))
For the Slim.
I'm not experienced in that stuff, which is why I would like someone else to confirm this and maybe patch it.
However this patch makes gdb work for me.
I have issues compiling this because the pspsh makefile uses the out of date -lcurses
library, which my linker can't find even though I have all the development packages. Changing it to -lncurses
fixes it. Is there any reason not to change this?
I also have problems with the libusb requirement. This software uses libusb 0.1, but my os only has the dev package for libusb 1.0 which is not backwards compatible.
When I try to start pspsh.exe or usbhostfs_pc.exe I have an error saying "cygncursesw-10.dll" is missing, someone knows why?
Well, it is documented in the PDF, but not on the github pages site, which should be changed.
I'm seeing an awful lot of prebuilt object files and binaries in the repo, that seem poorly fit in a source code repo. Can I remove these while I'm anyways fixing some compiler errors and warnings?
Currently we build pspsh and usbhostfs_pc using Cygwin, because the code is so reliant on Linux specific libraries that it does not build with MinGW. We should address this and switch.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.