Hullo thar, 'tis Kousu here. After conquering the horrible trials of the interlaced PNG bug I submit something much more useful: a mockup of PSP-Python in pygame. This was done once before but the maintainer mysteriously disappeared along with his code, so instead we have this which after months of waffling finally came out in under 5 hours. It is incomplete as of yet but it can display pictures and grab user input and sound probably works. Oh, it seems either the old code has come back or the site was just down temporarily. Hah. See: https://shuya.ath.cx/~neocool/code/ppop/ . It's okay though, some pieces of my code are better than his, and some pieces of his are better than mine (in particular, he knew how to do alpha properly). I'll probably work on merging the code on and off to make one uber PSP-Pygame.
To use, simply put psp2d.py, pspsnd.py, pspnet.py and SFont.py somewhere on your PYTHONPATH. The fastest place is in the same directory as the game files, though $PYTHONDIR\site-packages\ is good if you want to share the files across multiple games. Oh, and install python and pygame, those would help too. Then at the top of your game files, just do: import psp2d, pspsnd, pspnet just like normal. Running your game will open a pygame window with your app showing in it.
Using this mockup is much nicer than editing files, transfering to PSP, waiting for it to crash, and reading through trace.txt. With this you can simply dump to the console like other python programs.
SFont is needed by psp2d to load the font files used by PSP Python. It is a reimplementation of the SFont module from http://www.linux-games.com/sfont/ in pure python (well, unless using pygame makes it count as unpure). You likely won't be touching it directly but if you do don't use render() it is very very very slow (quadractic run time at least!), use write(). psp2d.Font uses write() so normal usage will get the full speed of it.
Screenshot
This screenshot shows off _PSP Pygame_ running Spider Solitaire and our own (unreleased and probably never-to-see-the-light-of-a-monitor-again) Rollershoot!
Controls
(can be changed in psp2d.Controller.__init__()):
- mouse = joystick, click to start moving and a line appears to show you how far you've dragged it. It's not scaled very well, right now 100px = 127 [the max the joystick can go], play with it and suggest better scaling.
- wasd = D-pad
- ijkl = triangle/square/circle/cross
- F1 = Start, F2 = Select
- left & right shift = left & right trigger
Missing
- Mouse control is VERY BAD!
- The controls in general should be considered first-draft quality. Also, you can change the mappings in psp2d.Controller.__init__ if you don't like my choices.
- Transformations
- Sound is untested
- Certain constants do not have the proper values, although you shouldn't be looking inside their values anyway
One last thing, if you use this I'd appreciate an email.

