Rockbox Technical Forums

Rockbox Development => New Ports => Topic started by: aw3se4dr5 on September 21, 2006, 05:11:52 PM

Title: PSP
Post by: aw3se4dr5 on September 21, 2006, 05:11:52 PM
I just had a thought that RockBox could be ported to PSP.   I got the idea when I saw my brother looking up 'psp homebrew hacks'.  So he found a few, and they were all in binary format.  Then i did some research(which took 2 min.  ;)) and found out that PSP has a MIPS processor.

So, Anyway, could we possibly program (or tweak) one of the existing bootloaders (for screen size, hardware i/o codes, etc...) and change some "makefile" or "sources" file so that GCC compiles for a MIPS target.

Then of course, we would take the binary, put it on PSP, and test it with a homebrew hack (however they work ???)

would this work or am i oblivious to some obvious fact that would make this impossible?
Title: Re: PSP
Post by: saratoga on September 21, 2006, 07:31:29 PM

So, Anyway, could we possibly program (or tweak) one of the existing bootloaders (for screen size, hardware i/o codes, etc...) and change some "makefile" or "sources" file so that GCC compiles for a MIPS target.


GCC can do MIPS, but you'll need to write drivers and a bootloader for the PSP, just like any new port.
Title: Re: PSP
Post by: Llorean on September 22, 2006, 11:07:30 AM
Yes, were Rockbox to replace it as a default firmware games and UMDs would be completely out.

In theory, for those who have homebrew-capable firmware (or using the TIFF exploit, depending on what is accessible through that, and whether Rockbox can function without the kernel-mode on a PSP) it might be possible to adapt Rockbox to a stand-alone binary for use as an audio player.

Loading the binary isn't really a big problem since PSP homebrew already has a variety of methods for loading one, so the bootloader step can mostly be skipped. Some SDKs have been created for the PSP as well, so really you have a starting point for a port right there, since there's a good deal of hardware information among that I'm sure. In all honesty though, it'd be much more like running a simulator on the device, since Rockbox *is* structured as an actual firmware.
Title: no need for a complete relacement...
Post by: Darkpower_4 on December 10, 2007, 01:54:59 PM
I wanted to have rockbox on my psp for 2 main reasons the sound doesnt get loud enough and i want my music more organized...here are my idea's for it...

Its needs to be an eboot file, not a complete replacement.
the eboot file can be just a bootstrap.
it can refer back to the .rockbox folder like any other firmware replacement for an MP3 player so it can be easily updatable if the source rockbox code is used...
a .prx file can be made for Custom firmware 3.71 M3-3 and any higher M3 CFW for autoboot in its recovery menu.
The PSP has two 32-bit MIPS32 R4k-based CPU that runs at 333mhz
The rest of the information can be found here... http://en.wikipedia.org/wiki/PlayStation_Portable

There are many engines that can run on the PSP which include:
LUA
C and C++
Python (Stackless)
Java
Basic
many more...

I'm know that a SDK for each is out there for free...although I dont if any of this will help...
Title: Re: PSP
Post by: luka.devnull on April 24, 2020, 07:53:52 PM
heya all! i've recently taken up an interest in trying this port because as of 2020 there is somehow no good homebrew for the PSP for playing media files. there is a built-in media player, but in all honesty it sucks pretty horribly. Rockbox however is pretty great software and seems like a great fit for the system!

currently: the system is broken wide open and you can launch programs from the main menu via the internal/external storage quite easily. since the console is fairly old now, Sony has no interest in patching the system. the current original firmware version is 6.61, and there are two main custom firmwares that work mostly similar but i'm not going to get into those here. the point is: the system can run any unsigned code easily and a bootloader is not needed or desired.
as far as i know, the PSP OS is single threaded non-multitasking. once a program has been handed off, it basically has full control of the system to do what it pleases.

as Darkpower_4 has stated, all models of the PSP have a 32-bit MIPS R4000 processor (single! not dual core) with a maximum clock of 333MHz, downclockable to 20MHz and plenty of steps in between.
the 1000 model has 32MB of RAM, while the 2000/3000/Go/E1000 and the development units have 64MB. all systems share 2MB of video RAM and a 480x272 display.
the DAC in all the hardware revisions is a Wolfson WM8973G. not sure what the DSP is yet, but i do have a data sheet for the WM8973L, which seems to be a similar chip.

controls consist of a 4-way d-pad, an analog joystick nub, a left and right bumper, a "home" key, two volume keys, a display key, a "media" key, a "start and "select" button, four face keys (cross, circle, square and triangle) and a combination power/hold switch. there is also technically two UMD switches for detecting whether the drive bay is open or not and whether a disc is inserted, but we don't really care too much about those :p

all models have removable Memory Stick storage (the largest official memory stick pro duo made is 64GB, it can likely accept larger cards through the use of micro SD adapters but i've never tried larger than 64GB), and the Go model also has an additional 16GB of onboard storage available to it.
on the Go model, both the memory stick and onboard storage are able to be accessed at the same time, which could be challenging for rockbox. i'm not sure how rockbox could handle two different storage areas, but PSP OS plugins can expose both as far as i know.

all models except the E1000 have 802.11b wifi, and the Go also has bluetooth 2.1. the 1000 model also has IrDA. the development units also have a few different serial connections an ethernet for debugging, plus a DVD drive.

to me, it sounds like possibly 3 different ports are needed for most consoles? one for the 1000 with 32MB RAM, one for the 2000/3000/E1000 and dev units with 64MB and possibly one for the Go with it's dual storage system and bluetooth. i currently have one 1000 unit and two 2000 units, but only the 1000 is currently available to me so that's the one i'm going to work on.

there's a wealth of information on the playstation dev wiki (https://playstationdev.wiki/pspdevwiki/index.php?title=Main_Page) that i'll be looking into. there's a homebrew SDK, and the system supports SDL.



Title: Re: PSP
Post by: saratoga on April 25, 2020, 12:41:06 AM
If you have sdl available, you probably want to use the rockbox sdl port since it'll save you the trouble of having to write graphics, storage, sound, etc drivers. 
Title: Re: PSP
Post by: speachy on April 25, 2020, 01:13:45 AM
i'm not sure how rockbox could handle two different storage areas, but PSP OS plugins can expose both as far as i know.

FYI, Rockbox has no problem using multiple storage areas.

I see no reason why you'd need more than one build; surely Sony baked in some sort of runtime model detection routine.

And as saratoga said, the existing SDL port would be an ideal starting point, on top of the existing OS.  No sense reinventing the wheel!