Hardware Homebrew Homebrew app PSPStreamer - Plex/JellyFin/DLNA for your Handheld (including SteamMaster external WIFI "Card"

dreimer

Member
Newcomer
Joined
Feb 1, 2015
Messages
9
Reaction score
1
Trophies
1
Age
40
Location
Bavaria
Website
www.dreimer.de
XP
115
Country
Gambia, The
Greetings,

I almost forget that I have a account here... After I posted about my little project at Reddit for a while now I wondered where I could post about it, too. And here I am ;D
I still need some feedback and Reddit did not really give me much of it yet.

So... what do we have here you might ask...

- An PSP App which works together with a Server component installed via Docker or as Home Assistant Add-In App.
- Multi language support (Well, German and English right now...)
- Playback of whatever audio or video file FFMPEG can work with. This includes online radio with ICY protcol.
- Plex, JellyFin and DLNA Servers can serve as a media source, too. It even syncs the playback and watch status!
- VIdeo playback has support for the perfect resolution for LCD or TV-Out, different audio tracks, different subtitles (Text and image based ones) and you can select two different fps settings (20 fps or 23.976 fps).
- Audio Playback allows different CBR or VBR settings which you can choose to your liking (and WIFI strength).
- Audio playback has three different kinds of virtualization included. A 12->64 band Spectrum Analyzator, MilkDrop (a custom ported variant with quite solid compatibility compared to the original) and new an easter egg infested decompilation and port of Monkey! All three integrated into the UI or as full screen.
- Quite stable power savings by using different clock speeds for different things.
* Music clocks lower than video or media select menu etc...etc...
* These values can be edited in 1 MHz steps if you want to.
* The always on LCD mode is now possile to be enabled or disabled.
* That way you can play music and with lower clocks and LCD off.... for ages ❤️

BEWARE: MilkDrop right now has everything included what the official engine supports EXCEPT shaders. These are absolutely impossible to be ported over as the PSP hardware does not know the concept of shaders at all and thus these are implemented by ignoring the parameter completely... It's possible that some .milk proflies will not work and not just because of shaders. The PSP version was ported to be as precise as possible and is still getting fixes and optimizations, but the hardware has it's limits and some very complex presets might fail to work.
Currently my test case consists of 2267 (1715 custom and 552 original included to WinAMP Setup ones) presets and it can load ALL of them (100 % load). But load does not mean much and thus the test has a 150 frames pass goal, too. And guess what... By now ALL OF THEM reach that, too! Thus the current compatibility is around 100%!! Only flaw... missing shaders can end with a preset loading and running fine, but... showing a black screen only :P But these are just a few that you can count on two hands. So you most likely will find your favorites running fine here. Maybe a bit slow depending on complexity, but fine! I tried to optimize the hell out of it and many even quite complex presets run fine by now.

If you find one not working preset: Create an Issue report over there at GitHub or we talk about it in here. Same goes for feature requests or issues of all kind.

And the new toy added recently:
After my PSP Media Player starts to become quite useful recently I thought I'd try out something different. Something that allows you to use newer WIFI standards and allows more speed than the former one did. Thus project StreamMaster was born. The PSP allows only to connect to a USB Host and can not behave like one itself. So attaching a normal WIFI USB stick is not possible, but who cares? There are ESP32 which can do WIFI and handle USB Host. Thus I created a ESP32 firmware and soldered a Power cord and a Micro USB cable to a USB Hub. The PSP is plugged into the Hub and the ESP32 is plugged as Host to the Micro USB cable. As both need power from somewhere I added the USB cord for a Powerbank. End result? You can configure the WIFI inside PSPStreamer, save it to the ESP32 and it connects to the network. That you even can do with up to FIVE different connections which are selected automatically if only one is available or stronger than the rest. And yes you can disable the auto connect, too. You switch network source from internal WIFI to StreamMaster and feel the speed boost!!

Before: ~280 kiB/s with internal WIFI next to the small 802.11b router.
After: ~485 kiB/s with StreamMaster. Somewhere around the house.

The bottleneck is not just WIFI anymore, now it is CPU and Memory Card.
Some more might even be possible with higher CPU speed and faster SD card.
UPDATE (v2.1): Now with updated Download/Validate speed to 333 MHz we are at about 560 KiB/s!!

Not just speed is now better, you can select ANY WIFI as long as it's 2.4 GHz. Here I used WPA3 ONLY 802.11ac and all is super fine.

I only had these boards lying around. If you wonder what these are... Onju voice PCB (https://github.com/justLV/onju-voice) to replace the PCB inside a Google Nest Mini to create a Home Assistant voice Assistant. As these are outdated I tried to use these and now the LEDs even show stuff like connection and WIFI strength.

My cable solutions can be seen below.

---------------------------------

Download link of PSP App, Overclocking Plug-In ESP32 FIrmware and DOcker/Home Assistant Add-In Containers:
https://github.com/dreimer1986/PSPStreamer

Download link of Home Assistant Integration to control the Playback by Home Assistant:
https://github.com/dreimer1986/PSPStreamerHA

Want more photos?
https://photos.app.goo.gl/QrS4Bqp8cXNWPusu9
------------------------

Most of the lower level stuff was made with support of GPT-6-Astra aka with AI, but of course not with just blindly trusting it. I am no noob in coding matters, but in PSP coding I am and thus I made this app with AI support.

1790723083186.png

The server component with included remote control features

1790723101267.png

Music Playback with Spectrum Analyzator and YES the VU meters do work!

1790723116384.png

Music Playback with MilkDrop

1790723129352.png

Music Playback with MilkDrop in Full Screen

1790723141740.png

VIdeo Playback with Subtitles activated

1790723243311.png

The OC Plugin doing it's job

1790723294985.png

Monkey Virtualization

1790723311463.png

The new 64-band Spectrum Analyzer

1790723354196.png

The basic Adapter cable for USB connection to an ESP32 WIFI Adapter.

1790723414442.png

The USB Hub based Adapter cable for USB connection to an ESP32 WIFI Adapter.

1790724437991.png

As you can see the normal USB ist just for Power and the micro USB connects to the ESP32 which handles USB Host.
 
Last edited by dreimer,
  • Like
Reactions: Doblete
First post is mine!
Btw, if you don't want to use Docker or use Home Assistant, but just want to try the app for some first tinkering:
- Download the source code from Github as ZIP, extract it somewhere...
- Install Python3...
- Run server.py
Now it's running on localip:8091 and can be confgured there in a web browser with http://localip:8091 and used as source inside the app, too.
 
New stuff in progress... Bluetooth Controller Support now is a plugin for CFW aka it works everywhere! I just played a few sessions Soul Calibur 4 with a BT controller on TVOut! The plugin got a new name btw. PSP Consolizer! Why? Well.. 1st you can enable Auto swtch to TVOut when a BT Controller is connected OR when starting the app. And there is another nice feature that was well known in the past around Firmware 5 CFW times made by some guy called FuSa... My internal test version already has a overhauled and WORKING new version of that feature. We are very close to a real PSP console mode with wireless Controller, TVOut and portable mode auto selection and FULL SCREEN GAMES!

P.S, I am planning to try getting digital audio off the device, too. And as all my changes are... Software ONLY on the PSP itself.
 
New stuff all done and even MORE:
Bluetooth Controller support EVERYWHERE aka even in VSH menu, PSP and PS1 games. And while we are at it... I added live hacking of the POPS emulator to claim to have a Dual Shock Controller plugged in and the resulting motor data is sent to a rumble supporting BT Controller. Means: You have Rumble support in PS1 games! And not just that. I added a MEM watch utility inside PCPConsolizer. You find the right value, like from a life bar in a fighting game and it waits for changes there aka you got hit. It even allows to rumble more or less if you got hit worse or less worse. I added a example profile for Soul Calibur Broken Destiny and it works like it was always meant to behave that way :D
And how do I get that MEM address you ask? GwCheats for infinite health are a nice try and worked fine for Soul Calibur. You even can paste such a code inside the setup GUI inside PSPStreamer and it translates it to a profile you can try out then.

And I did not just do stuff that originated from tinkering I made inside PSPStreamer... FuSa made a full screen plugin in the past as some might still know. This one does not work for a while by now. Well... Now it does again :D Try the build I released and have some fun with full screen PSP games on a big TV Screen WITH BT Controller and rumble ^^ I had quite some fun to fix as many compatibility problems I was able to. PSPConsolizer has a auto TVMode switch feature, too. If you plug in a TVOut cable it will switch to it a) on BT controller pair/connect or b) on app start.

I think this was everything. Now go and have FUN with your PS (not sooo) P(ortable) Console :D
 

Attachments

  • pspfs1.png
    pspfs1.png
    2.2 MB · Views: 1
  • pspfs2.png
    pspfs2.png
    2.9 MB · Views: 1
Oh, I forgot to mention one last thing. WIFI transfer speed over ESP32 now reached about 700 KiB/s! Now the logs speak another language... WIFI buffers are still always full, but now USB buffers are, too. Means that now the PSP itself is the bottleneck that cannot handle more data at once and more optimization won't do any good anymore. We reached the limit on normal Clock speeds.
 

Site & Scene News

New Hot Discussed User Submitted