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 - SonicMastr

Pages: [1]
1
Welp, this has been a highly requesting thing for years at this point. This was started around the same time we first found the piglet module months ago and put on hold for a few months, but it's finally here.

The Python 2.7 interpreter is now running and mostly functional on the PSVita.



Some small features have been stripped, but most IO functions, Networking functions, and module importing function are present, with support for Cython modules by building along with the Python 2.7 library.

This will allow devs to be able to integrate a Python interpreter in their previous or new projects with an easy to use C library, and can be easily used to create a full vita specific python module for even more advanced control over the Vita from the comfort of a python script.

Included in the repo is a simple example of a Youtube-dl (not included in the repo modules) python script to download Rick Astley's "Never Gonna Give You Up". But you may find that you can actually edit the python file within the VPK to download a video of your choice or even write your own simple Python programs. Give it a shot.

For devs, building is a simple as installing DolceSDK and running the build_vita.sh script. Make sure you also have python 2.7.18 (Latest version) installed.

You can see the source, contribute, and get the example here: https://github.com/SonicMastr/cpython-vita


Again, big thanks to Cuevavirus for the base that he laid out for the entire port. More to come.

2
PS Vita / [Release] Sonic CD Vita | Demo Footage at the end
« on: January 02, 2021, 10:55:22 AM »
It is what it says. The Sonic CD 11 Decompilation ported to the Vita.

This was only a 30 minute port. I'm sorry, it's 3:30AM

OVERCLOCK TO THE MAX

Normal levels are playable. Menus and Special stages will be pretty laggy. Will have to wait for Hardware Renderer to be added to the main repo.




Installing:

Install the VPK from here https://github.com/SonicMastr/Sonic-CD-Vita
Take the Data.rsdk file from your legit copy of Sonic CD and put in the ux0:data/SonicCD folder


That's it!

Known Issues:

  • In the menu only Time Attack Appears. This is a visual bug - Fixed
  • Selecting Sonic after a new game may cause a crash
  • Pressing D-pad buttons cause an immediate crash (Use the Analog Stick instead) - Fixed
  • Performance issues in Wacky Workbench Zone acts 1-2 (Coils Activating), Stardust Speedway Zone Act 3 Bad Future (Lightning Flashes), and the light-bug section of Metallic Madness Act 3. This is simply due to the way transparency works and should be fixed with a Hardware Renderer in the future
  • Main Menu and Special Stages are really slow, with normal levels in a playable state with a Max overclock. This should be fixed with a Hardware Renderer

Demo Videos: https://twitter.com/BigBlackOniiSan/status/1345299084895252481?s=20 https://twitter.com/BigBlackOniiSan/status/1345302033855885312?s=20

3
PS Vita / [Release] Pigs In a Blanket - GLES 2.0 Library for the PS Vita
« on: December 09, 2020, 09:51:11 AM »
For original info, look here: https://forum.devchroma.nl/index.php/topic,294.0.html

Pigs in a Blanket - The full GLES 2.0 Library for the PS Vita

We're on v2.0 now. Pretty exciting stuff, and we brought a few new tweaks and big features to enhance the overall experience.


What's new

System Application Support - This is the big one this update. PIB now has the ability to utilize the SharedFB framebuffers to be able to draw as System Applications. This means the potential to create applications that run the background using the Piglet OpenGL ES 2.0 library. The only thing you have to do to enable System App Mode in PIB is use the PIB_SYSTEM_MODE flag. There are a few caveats:
  • Minimum System Application budget HAS to be 32MB. This means that games that use 109MB+ mode will require the System Application to be closed
  • This patch makes it so Piglet can only create TWO sync objects. This is a limitation of System Applications. All normal main drawing functionality will be intact, but things such as mipmaps/FBOs may not work the way you want it to
  • Currently, EGL_SCE_piglet_vita_pre_swap_callback and EGL_SCE_piglet_vita_vsync_callback do not work in System Mode

Fully Enabled Sony EGL Extensions (Common Dialog Support!) - Yes. You can FINALLY use the Sony EGL Extensions as intended. A list of these extensions and what they do:
  • EGL_SCE_piglet_sync - Gives you functionality to create and manage EGL sync objects
  • EGL_SCE_piglet_vita_pre_swap_callback - Vita specific extension to allow you to render Common Dialog Prompts in your Piglet apps (IME/Save Dialog/Message Boxes/etc.) (DOES NOT WORK IN SYSTEM MODE)
  • EGL_SCE_piglet_vita_vsync_callback - Vita specific extension that returns the framebuffer data right before a swap. This includes the pointer to the framebuffer data, width, height, pitch, and SceDisplayPixelFormat of the framebuffer (DOES NOT WORK IN SYSTEM MODE)

MSAA x4 Support (Anti-Aliasing to the rescue)(Experimental) - You can now enable MSAA x4 support in any application (System Mode Apps fully supported) by simply using the PIB_ENABLE_MSAA flag. It's that easy! This is in an experimental state, and FBOs may suffer. Feel free to open up an Issue on Github.
Note: System Applications will need a light overclock for even simple things. By light, I mean a bump from 111MHz on the GPU to 166MHz

Bugfixes:
  • Fixed incorrect usage of EGL 1.5's eglGetProcAddresss. Using EGL 1.5 features now has to be manually enabled using the PIB_GET_PROC_ADDR_CORE flag
  • Fixed glGetBooleanv always returning GL_FALSE when using GL_SHADER_COMPILER as the symbolic constant and ShaccCg is enabled
  • Fixed eglSwapInterval would always be locked to 1 no matter what value was entered
  • Fixed Libc and FIOS2 always attempting to be started no matter what
  • Fixed ability to double initialize/terminate and added new error codes to reflect the error messages

Enjoy the update! Will be in the Dolce SDK packages when available. In the meantime, you can always build it yourself from the repo.

Pigs in a Blanket Repo: https://github.com/SonicMastr/Pigs-In-A-Blanket

4
Full GLES 2.0 Support, Finally on the Vita

After 2 months of Reverse Engineering and working to make this Library the best it could be, it's finally here.

Thanks to the efforts of GrapheneCt and dots-tb with Vita Piglet, and to Zer0xFF and masterzorag with the PS4 Piglet, we have finally obtained the first full OpenGL GLES 2.0 Compliant graphics library for the Vita. Yes. Graphene found the mythical libScePiglet module.

What does this mean?

Developers who already have vast knowledge in standard GLES 2.0 will have no issue applying their knowledge to the Vita. You no longer have to remember Vita specific functions. You can just code without a worry. The only difference is that libScePiglet uses CG formatted shaders instead of GLSL. For info, check the CG resources provided at the end of the Github README.

GLFW support

I ported GLFW for the Vita that exclusively uses Piglet. The only things that are wrong are keybinds (Yes. They will be changed). That is all.

What does this do for ports?

GLES 2.0 is a common Graphics Library that is present in almost anything you can think of, most notably in mobile devices like phones and tablets, for a cross-platform, accurate and consistent experience. I know some of the normal users will want to know what this means for games. Ports utilizing standard GLES 2.0 should see little to no modifications needed, no questions asked. This makes ports much easier on the graphics side of things, resulting in less visual bugs, less translations issues, and overall better support for the Vita. This was the purpose of Piglet in PSM, and it can can easily be applied to your favorite ports using GLES 2.0. And speaking of PSM...

How is this different from PSM?

As I said, I ditched PSM. This was the alternative that we were working on for a few months now. PSM was missing quite a lot of functions, which was a pain when trying to put something together for an example. Piglet includes every function according to the GLES 2.0 standard without the PSM bloat. This in turn reduces the memory usage of a simple triangle from 54MB to just 25MB by eliminating PSM all together.

Piglet
PSM
Why this over VitaGL?

VitaGL was, and still is an ambitious project to create an Open Sourced OpenGL wrapper from the ground up. It has been running the porting scene for quite a while due to being the closest thing to OpenGL on the Vita as possible, although its identity is not solid. It tries to be both GL1 and GLES2, and because each function has to be manually recreated, it is still missing a lot functionality that a developer may expect. The accompany this, it utilizes a host of custom extensions to try to restore functionality where it was lost. With these though, VitaGL-specific functions and the lack of in-depth documentation of those functions further hinders its ability to be adopted easily.

Piglet will remove the confusion of VitaGL and give developers a simpler, easier time with porting and its overall usage, allowing developers to use many existing GLES 2.0 resources. Piglet is a certified OpenGLES 2.0 standard, and as such, strives to be as accurate as possible, while also providing better memory utilization and performance by utilizing SceLibc and PTLA (Present and Texture Load Accelerator), an asynchronous hardware 2D processing unit, used for texture copy and format convertion/transfer. Its identity is GLES 2.0 and will always be, so there will be no guesswork in how the pipeline will function.

We want to give the developers the tools to make their homebrew the best they can be without the frustration of wondering if it could work.


To start using Pigs in a Blanket for your projects today, just head on here.

Ghidra project file provided

5
Reverse Engineering / PSM GLES Function Offsets
« on: October 16, 2020, 11:50:08 PM »
Quite a while ago (Back in July actually), me and dots spent some time looking into the PSM module and found out that there are quite a few GLES related functions present. We did more digging and in no less than 3 days were able to get all the offsets for EGL and GL Functions present in the module. Here are the offsets. Keep in mind, the base address used is 0x83180a10 so you'll have to do the offset calculations yourself.

Keep in mind, while these do work, PSM is quite frankly absolute shit and there's a painful process to get everything working, with the cost of 50MB of user memory being used at idle, but this does show that native GLES 2.0 support is at least possible on the Vita, and we are one step closer to a finally fully featured VitaGL. Never lose hope.

How did we have even the obscure names? The PSM DLL that's part of the PSM SDK has all symbols and the decompilation is structurally similar to the PSVITA PSM. We simply had to compare functions by structure, and we were able to find those pesky to figure out names.


PS: This requires a fully decrypted PSM package, and you need to initialize the PSM modules in the same order the PSM eboot does. After PSM is loaded, you can unload system module dependencies. DolceSDK is also REQUIRED due to VitaSDK lacking the proper SceLibc support, something PSM relies on.

Update: Not so sure if VitaSDK has added proper SceLibc support, but it does seem to have recent changes to the way SceLibc works. So you can go ahead and try that if that's more comfortable for you

6
PS Vita / [Release] Mad Bomber Vita
« on: January 14, 2020, 07:15:37 AM »
A PSVITA port of Bill Kendrick's Mad Bomber



Thanks to dots-tb for helping with compiling errors and getting graphics output working.



Download
Join the CBPS Discord

7
A simple PS Vita homebrew that returns a random hentai picture from Konachan.

That's really it. Do I need to say any more?



Source updated from the original with extra features.

Still uses Rinnegatamante's LPP-VITA.
Uses Konachan as an image source.

Controls:

L Trigger/R Trigger - Save current image (By ID)

Up/Triangle - Auto next timer toggle/reset

Right/Circle - Increase timer duration (up to 60 seconds)

Left/Square - Decrease timer duration (down to 5 seconds)

Down/X - Next image

For src and other info: https://github.com/SonicMastr/Random-Hentai
Release: https://github.com/SonicMastr/Random-Hentai/releases/latest

Pages: [1]