PS3 RSX rendering issue PSL1GHT

fewnity

Member
Hello,
I'm currently adding PS3 support to my game engine. I saw weird vertice explosion when I was close to my 3D objects.
I tried the RSX sample from PSL1GHT to see if the problem was here too and looks like it's here, I just added a way to move the camera to go near the object.
Does someone have an idea how to fix that?
For some reason it's append only on hardware, not on emulator.

Link to the code: https://github.com/ps3dev/PSL1GHT/tree/master/samples/graphics/rsxtest/source

RSX sample video:

 
I don't know if this will be helpful, but I just compiled it, and I tested it on rpcs3, since I don't have a cfw or hen system.

upload_2024-10-16_23-0-17.png


upload_2024-10-16_23-0-59.png


you could try mine if you want to see if you still have the same problem. I'm using a somewhat older version of psl1ght. lots of things have gotten broken over the years with psl1ght, so it could be that yours is too new. mine doesn't seem to do that glitchy thing yours in the video seems to (if that's what you're referring to), but like I said, I can only test in rpcs3:

edit: nm, I didn't realize you had tested it in an emulator, but I guess you could still test it, just in case.
 

Attachments

Last edited:
I don't know if this will be helpful, but I just compiled it, and I tested it on rpcs3, since I don't have a cfw or hen system.

Do you think you can add this code to the sample, compile it and send it back?
Because to reproduce the glitch the camera has to be close to the object and with this code I can move the camera.

Add this in the while loop after the ioPadGetData call:

if(paddata.BTN_LEFT)
eye_pos.setX(eye_pos.getX() + 0.1f);

if(paddata.BTN_RIGHT)
eye_pos.setX(eye_pos.getX() - 0.1f);

if(paddata.BTN_UP)
eye_pos.setZ(eye_pos.getZ() - 0.1f);

if(paddata.BTN_DOWN)
eye_pos.setZ(eye_pos.getZ() + 0.1f);
 
Do you think you can add this code to the sample, compile it and send it back?
Because to reproduce the glitch the camera has to be close to the object and with this code I can move the camera.

Add this in the while loop after the ioPadGetData call:

if(paddata.BTN_LEFT)
eye_pos.setX(eye_pos.getX() + 0.1f);

if(paddata.BTN_RIGHT)
eye_pos.setX(eye_pos.getX() - 0.1f);

if(paddata.BTN_UP)
eye_pos.setZ(eye_pos.getZ() - 0.1f);

if(paddata.BTN_DOWN)
eye_pos.setZ(eye_pos.getZ() + 0.1f);

sure thing. I never looked at the code, so I didn't know you could move it with the controller:

upload_2024-10-17_7-49-26.png
 

Attachments

Thanks, sadly with your build I have the glitch on real hardware too.
Look like it's a clipping issue but now idea how to fix this...
Damn, that sucks. I know the RSX code specifically has been broken with psl1ght for quite some time. It would often result in black screens on hardware with many homebrew, but it would work fine in rpcs3. Maybe try @bucanero 's precompiled PS3 toolchain from 2020? It's on his GitHub repo's iirc.
 
Damn, that sucks. I know the RSX code specifically has been broken with psl1ght for quite some time. It would often result in black screens on hardware with many homebrew, but it would work fine in rpcs3. Maybe try @bucanero 's precompiled PS3 toolchain from 2020? It's on his GitHub repo's iirc.

Yeah I will try an older version of PSL1GHT to see any difference.
I tried Tiny3D, a rendering library for the PS3 and I had the exact same issue.
 
Hello,
I'm currently adding PS3 support to my game engine. I saw weird vertice explosion when I was close to my 3D objects.
I tried the RSX sample from PSL1GHT to see if the problem was here too and looks like it's here, I just added a way to move the camera to go near the object.
Does someone have an idea how to fix that?
For some reason it's append only on hardware, not on emulator.

Link to the code: https://github.com/ps3dev/PSL1GHT/tree/master/samples/graphics/rsxtest/source

RSX sample video:


Ok i tried compiling and testing on my ps3, using the open source 2020 toolchain by Bucanero, it works mostly but a couple of times it did still break up, just not everytime, not sure what the exact conditions are, here is a video it it
and im posting my build below, i had to make 2 changes for it to compile (the MinMax command is just the rsx control command).
 

Attachments

Ok i tried compiling and testing on my ps3, using the open source 2020 toolchain by Bucanero, it works mostly but a couple of times it did still break up, just not everytime, not sure what the exact conditions are, here is a video it it
and im posting my build below, i had to make 2 changes for it to compile (the MinMax command is just the rsx control command).

Thanks for testing, so it confirms that the problem is here even 4 years ago...
 
Thanks for testing, so it confirms that the problem is here even 4 years ago...
yeah it doesn't seem as bad as your build though, give it a try and see how it runs, it only broke up a couple of times, the other 8/10 times it seemed to zoom in and out just fine with no breaking up
 
yeah it doesn't seem as bad as your build though, give it a try and see how it runs, it only broke up a couple of times, the other 8/10 times it seemed to zoom in and out just fine with no breaking up

I just tried your build and if you hold the up button for few seconds to go behind the sphere, it will happens a lot like on my build. So to me it's still not usable for a game :/
 
I just tried your build and if you hold the up button for few seconds to go behind the sphere, it will happens a lot like on my build. So to me it's still not usable for a game :/
damn, maybe try a even earlier build, like ps1lght v2 or something, is it possible its the rest itself that is the issue ? or is it a distance thing ? or a passing through a object issue ? either way it should probably be investigated further, good luck with your project, i wonder if there is another 3d render type you could use, maybe some sort of opengl ? (or was that only on the official sdk ?)
EDIT:- Also i dont think Crystal is around anymore, atleast not actively.
 
Last edited:
It may be the PS3 software if it's only happening when the z axis is close to the user. The reason I suggest this is that iirc, a vertical wave on the xmb also sometimes breaks up when the z location is too close to the user. I wasn't really able to test it on hardware though, so maybe you could check if it fluctuates and glitches out.
 

Attachments

I found the problem!!!
I compared the RSX sample with a sample from the official SDK and in the PSL1GHT sample we have this line:

rsxSetZMinMaxControl(context, 0, 1, 1);

and to fix the issue I have to change the line to

rsxSetZMinMaxControl(context, 0, 1, 0);

I LOST DAYS just for a 1 to set to 0??? lmao but I'm so happy that my engine works on PS3 now.

Thanks guys for the help :) I will make a pull request for the fix.

Screen from my PS3 (not emulator)
upload_2024-10-17_21-0-56.png
 
I don't have the cell sdk, but it's probably not something I would've thought of, but ironically I did compare the official lines with one that was vertical to figure out what was changed to make vertical. It was the z axis in that case too. It sucks when hardware doesn't play the file(s) correctly, since it is so much easier to test on PC. I had this problem for a long time with sonic mania, but in that case, it was sdl2 causing the black screen on hardware only.
 

Similar threads

Back
Top