Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - teakhanirons

Pages: [1]
PS Vita / Incomplete PoC LaiNES port
« on: May 28, 2020, 10:12:49 PM »

Converted the SDL video output and controls to native Vita and was working on audio. Then I realized it was very, very slow. Even without the audio. Then I realized there was a better version of it with more mappers ( At that point, I gave up. Not worth it in my opinion.

Working on this was very fun though. Kudos to Rufis_, cuevavirus, CreepNT, skyl4nk, Princess of Sleeping and dots-tb for their help getting this to run.

Needs fnblit to build, you can use ddpm from DolceSDK to install it. No binaries as it's clearly not in an usable state.

No standalone fully working NES emulators on Vita is frusturating. Maybe I'll take a look at this problem later.

General / Hello World programs
« on: May 28, 2020, 07:07:54 PM »
I managed to make this without crying:
I also included a binary in case a Team CBPS member can't compile it and feels bad and starts crying.
As always, Team CBPS is the most inclusive group of misfits hacking scenes have ever seen.

Nakanaide kudasai.

Reverse Engineering / Detecting SceShell initialization
« on: May 18, 2020, 10:39:54 AM »
vshKernelSendSysEvent  -> prints "vshbridge : shell ready", shell is completely loaded (thanks to Princess of Sleeping)
sceAudioOutOpenPort -> audio initialization, shell is not completely loaded (thanks to GrapheneCt)

Attemping to use anything that is not loaded will result in a crash.
Hook to the one you need to detect these events before you use them.

PS Vita / [release] CustomBootSplashBMP
« on: May 17, 2020, 08:42:24 PM »
What is this?
This plugin can display a 960x544 24 bit RGB BMP (BMP with no alpha) as custom boot splash on PS Vita / PS TV at boot.
The boot logo that is displayed in the beginning can not be hidden with this plugin.
This is a fork of the original PSP2-CustomBootSplash by Princess of Sleeping.

How do I make a 24 bit RGB BMP?
It should be the default Paint option as seen here:

Place the plugin to:
Code: [Select]
Place your 960x544 24 bit RGB BMP (BMP with no alpha) as:
Code: [Select]
Look for the line "load os0:kd/clockgen.skprx" in "ur0:tai/boot_config.txt" and add this line one line fore that:
Code: [Select]
- load ur0:tai/custom_boot_splash.skprx
Code: [Select]
- load ur0:tai/custom_boot_splash.skprx

load os0:kd/clockgen.skprx
#load os0:kd/syscon.skprx
#load os0:kd/rtc.skprx

Any pre-made logos I can use?
We will be posting some in this thread as replies but we highly recommend making your own since it's more fun that way.

To Enso 3.65 users:
If a "ur0:tai/boot_config.txt" exists in "vs0:tai" and the plugin doesn't load even if plugin path is written to "ur0:tai/boot_config.txt", please update Enso to the latest version:

To do:
Adding 32 bit or other BMP variants support should be trivial. Currently, a header size of 54 bytes is hard coded.
Hardware accelerated JPG support is possible.
PNG support is a possibility.
CreepNT wants a randomized boot logo selection feature.

Princess of Sleeping for the original code and helping me a ton with this release despite me being very bad at C.


Reverse Engineering / Extracting PS Vita's boot logo
« on: May 16, 2020, 07:59:14 AM »
PS Vita boot logo is located in display.skprx which is located in os0:kd.
Prototype firmwares that are lower than 1.00 have a different boot logo, different than that of retail firmware.
To extract the boot logo, you have to get a decrypted copy of it by either using VitaShell or
On firmwares higher than 1.00, the boot logo is gzip'd. Anything lower, it's zlib'd.

gzip format has a header starting with the magic number of 1F 8B in hex. After those two bytes comes the byte that represents the compression method, in our case 08 which represents "deflate".
You can locate size indicator and manually find the end offset of the gzip file or you can just look for bytes 00 E0 1F 00.
Copy that stream including the header to another file (I prefer HxD for this job) so that our new file starts with the header and save it with .gz extension. Not tarball'd like usual so no .tar.gz.
When you extract the gzip, resulting file will be the raw framebuffer with the size of 960x544 in RGB32 format.

zlib format has a bunch of different headers:
  • 78 01
  • 78 5E
  • 78 9C
  • 78 DA
The one we're looking for is 78 9C (which indicates that it's compressed with the default compression level of 6).
Copy the rest of the file including the header to another file (I prefer HxD for this job) so that our new file starts with the header and save it.
After that, you can just use offzip on the new file and the resulting file will be the raw framebuffer with the size of 960x544 in RGB32 format.

After extracting the raw framebuffer, you can load it in your viewer of choice (with the size set to 960x544 and the format set to RGB32), mine is

Thanks to Princess of Sleeping and SKGleba.

Graphical / Kumiko chewing
« on: May 15, 2020, 09:20:26 AM »

rotate your head instead of the photo, you'll get some workout

PS Vita / [release] CoolBoardPlaysSounds
« on: May 03, 2020, 03:01:03 AM »
A homebrew PlayStation Vita soundboard application, as requested by yasen.

Place OGG or WAV files in ux0:data/CBPS/


yasen (for being yasen!!!)

General / [UNOFFICIAL TUTORIAL] Compiling VitaQuake
« on: April 27, 2020, 08:38:04 PM »
Compiling can be hard. I saw some people having problems compiling VitaQuake (both official and unofficial) (and possibly other works using VitaGL) so I decided to make this tutorial.

This guide assumes you have official unofficial VitaSDK installed and configured. If you do not know how to do that, you can visit the official unofficial vitasdk official site for an unofficially better official tutorial.

First you'll need to clone unofficial math-neon port for Vita:
Code: [Select]
git clone

Then you need to obtain VitaGL and VitaQuake sources. I will be using the unofficial modded ones by cuevavirus but you can also use the official sources by using the same command you used to obtain unofficial math-neon port for Vita, just change the repository name. If you want to use the unofficial modded ones, just extract them (VitaGL to a folder called VitaGL, VitaQuake to a folder called VitaQuake).

Then we need to build unofficial math-neon port for Vita:
Code: [Select]
cd math-neon
make install
This will build and install unofficial math-neon port for Vita. Compiling can take some time, please be patient.

Then you need to exit the directory using
Code: [Select]
cd ..
Then we need to build VitaGL. Be careful, this one needs some special attention!
Code: [Select]
cd VitaGL
make HAVE_SBRK=1 install
See that? We don't use "make install", we instead use a special command! Please be careful of that! I should also mention that the above command apply to both unofficial and official VitaGL sources.
Compiling can take some time, please be patient.

Then you need to exit the directory using
Code: [Select]
cd ..
Then we can build our VitaQuake. Official or unofficial? Does not matter! They both use the same command!
Code: [Select]
cd VitaQuake
Compiling can take some time, please be patient.

Hopefully, you will have VitaQuake built! Do you not know which one is the built file? It should be called VitaQuake.vpk.

Have a good compile!

Having to launch VitaShell or BGFTP annoyed me. I only turn my Vita's Wi-Fi on when I want to use FTP so I don't have any security issues. Here's an always running background FTP server plugin, like how PS3 CFWs do it. So I edited vitacompanion to take command and logging abilities out and made this.

Installing the plugin:
  • Add ftpeverywhere.suprx under *main to your taiHEN config (most likely at ur0:/tai/config.txt):
Code: [Select]
  • Copy ftpeverywhere.suprx to location specified in your taiHEN config (in this example, ur0:tai/ftpeverywhere.suprx).   
  • (OPTIONAL) Install and run SilicaAndPina's NoSleep.vpk for a better experience.
  • Reboot your console.

Using the plugin:
This plugin sets up a FTP server on the port 1337. You can connect to it using your FTP client of choice.
If the Wi-Fi connection on your Vita gets interrupted, the FTP server will come back online in some time after the connection is reestablished.

Building the plugin:
Requires you to have DolceSDK installed.
Code: [Select]
cmake .


yasen (for being yasen!!!)

General / [TUTORIAL] Compiling xerpi's PS2 emulator Play!
« on: April 01, 2020, 10:24:55 PM »
With the release of the PS2 emulator Play! on Vita, ported by xerpi, many have wondered... Is it real?
The problem stems from there not being precompiled binaries, instructions being somewhat lacking and issues stemming from VitaSDK (especially the Windows build) having issues accepting certain GCC arguments. Of course, not to mention it being posted on April Fools.

However, working with xerpi, we have found a way to circumvent the issue.

These building instructions only work with Linux for now.
EDIT: It seems it is broken with WSL too since it apparently can't run 32 bit applications. WSL2 apparently fixes that.

This guide assumes you have VitaSDK installed and configured.

First you'll need to clone this repo which contains the emulator source code, alongside the submodules required to build Play!:
Code: [Select]
git clone --recurse-submodules
Then you must install Wine and obtain “psp2cgc.exe” and place it in:
Code: [Select]
In the same folder, create a file called in the same folder. In that newly created file, put the following:
Code: [Select]
wine $VITASDK/bin/psp2cgc.exe $*

You must then add execute privileges to using your shell, execute the following:
Code: [Select]
chmod +x $VITASDK/bin/
Then this code to your .bashrc:
Code: [Select]
export PSP2CGC=$VITASDK/bin/
Navigate to the location of the source code, then you need to use a special cmake command:
Code: [Select]
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$VITASDK/share/vita.toolchain.cmake -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES=$VITASDK/arm-vita-eabi/include/ -DBUILD_TESTS:BOOL=OFF && make Play_Vita.vpk

This should produce a VPK in the newly build directory.

I should also note that the current version as of writing this post only loads ux0:Play/cube.elf. Please keep this in mind.

Also here's a nice teapot demo:

We have a Discord server if you want any help, want to contact us or simply want to have FUN!

Please remember, I just wrote this tutorial for this amazing work.
All thanks go to xerpi for helping me sort out this issue and actually making the port!!

Pages: [1]