A repository of PSP programs performing several tests on the PSP platform.
The main idea behind this is having several files per test unit:
If you just want to run the tests, you just need to run your emulator on the PRX files and compare with the .expected files. PPSSPP has a convenient script for this called test.py.
If you want to change tests, you'll need to read the rest. This tutorial is focused on Windows but can probably be used on Linux and Mac too, you just don't need to install the driver there.
The rest of this tutorial will assume that you installed the PSPSDK in C:\pspsdk.
Tip: If you see PSP Type A, you've connected the PSP in "USB mode". Disconnect, and run the PSPLINK game instead.
brew install libusb-compat
to install libusb.You are now ready to roll!
In a command prompt in the directory that you want the PSP software to regard as "host0:/" (normally pspautotests/) if it tries to read files over the cable, type the following:
cd pspautotests
usbhostfs_pc -b 3000
Then in a separate command prompt:
pspsh -p 3000
If you now don't see a host0:/ prompt, something is wrong. Most likely the driver has not loaded correctly. If the port 3000 happened to be taken (usbhostfs_pc would have complained), try another port number.
Now you have full access to the PSP from this prompt. You can use gentest.py to run tests (e.g. gentest.py misc/testgp
) and update the .expected files.
You can run executables on the PSP that reside on the PC directly from within this the pspsh shell, just cd to the directory and run ./my_program.prx.
Note that you CAN'T run ELF files on modern firmware, you MUST build as .PRX. To do this, set BUILD_PRX = 1 in your makefile.
Also, somewhere in your program, add the following line to get a proper heap size:
unsigned int sce_newlib_heap_kb_size = -1;
For some probably historical reason, by default PSPSDK assumes that you want a 64k heap when you build a PRX.
Maybe join .expected and .input file in a single .test file?
Random Ideas for .test file:
EXPECTED:CALL(sceDisplay.sceDisplayWaitVblank)
ACTION:BUTTON_PRESS(CROSS)
EXPECTED:OUTPUT('CROSS Pressed')
EXPECTED:CALL(sceDisplay.sceDisplayWaitVblank)
ACTION:BUTTON_RELEASE(CROSS)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。