Update 0.03
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-3#post-367975
Update 0.02 (pkg creation bundle)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-2#post-361812
Update 0.02pre (1st Hardware refresher release)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-2#post-361715
Update 0.01 (1st Software refresher release)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/#post-342788
Original post below
.Hello everyone!
Not small prelude
I'm glad to write my first post here. I've joined PSX-Place at November last year and since then had nothing to say here. You guys are awesome, and the amount of work that was done to make tools to homebrew development for PS3 is astonishing.
My experience in homebrew development is so little, so it's easier to say that I don't have any. And actually I got my hands on softmod to my PS3 SUPER SLIM! only last summer, can you imagine: only to backup my games. Somewhere at mid-October, after watching some MVG's videos, I became interested that scene have made for PS3. I've got surprised how much and the same time how little was done on PS3 compared It's unique interesting hardware (thank you sAnie I guess).
I started learning PSL1GHT, read some papers on original SDK, got amazed seen RSXGL. I started tinkering with ps3toolchain at November (time I've joined PSX-Place). Initial idea was to port PC exclusive game from PS3's era or prior which was never had native version and have source port at nowadays. The first thing came to mind was re3 (GTA3 port) which not so long ago (at the time) was shot down by Rackstar due to the upcoming demastered collection. Yes, I know that GTA3 can be played on early PS3 models, but this is the PS2 version, moreover it's not a subject. The work went not welldue to my complete lack of knowledge of software porting and complexity of re3 project. After about a week I've lowered my ambitions and switched to no so complex game engine - Quake II's and started learning it's source code.
My choice on Quake II was based on my awareness of huge amount of ports and the knowledge of how many game engines were made based on Quake II's engine.And yet it is a fully 3D game with an OpenGL renderer. Looking at RSXGL I've got inspired to make GL game run on PS3. About a month took to learn how idTech2 works. And still working with it I'm amazed at what a good piece of software it is. For target code to port I choose some project called Thenesis Quake II which aimed to port Yamagi's Quake II to systems with embedded graphics (so called OpenGL ES). Everything was going well until I moved to work on rendering in December. I kept getting memory access errors in the render initialization part. I. I couldn't figure out what was wrong then, and even now I don't know what caused these errors. At end of year I abandoned work on it.
Words on RSXGL's shaders part
Returned to work at the last days of April, still focusing on RSXGL and Thenesis's code, but started from scratch focusing on renderer (or refresher if speaking in terms of Quake II). I don't get errors in the initialization part like it used to, but all screws up at shader's binding part, as I figure out it's some kind of error with shader's variables. Even then adding new names to gears example everything breaks, not sure is it problem only in my toolchain or whole RSXGL. I've read several messages from Crystal about RSXGL and decided to abandon it too.
Actual work started
Without RSXGL I'm not attached to the OpenGL and Thenesis's code which actually ruins modular design of Quake 2 and I've switched to recent version of Yamagi's Quake II. I did little work implementing system specific part for PS3 and in about a week of work managed to got it working. Yesterday in process of starting adding client's code (this part responsible for rendering, sound and user input) got it running with image and somewhat playable framerate. Today I've done implementing input part. And the following video is a showcase of playable first level (need to add 6 lines of code to make second level to load I think)
Showcase video
Game runs better then I expected - even at 720p it's around 14-16 fps. In RPCS3 I'm getting numbers around 5-7. Some details I left at video description. TL;DR: I don't plan to release it yet, but I will almost certainly do so in future, actually planning to release it when I start creating renderer module for hardware accelerated graphics.
Things I want you to ask about
1. As I mentioned above I've implemented own input subsystem independent of SDL2's one. Actuallyt wasn't really necessary, SDL2 Input works right out the box, I think it even supports keyboard and mouse, because in RPCS3 I got camera moving by dragging cursor above window and LMB worked as attack button. So I wish to get rid of SDL2 layer (including screen update part) how did you think is it bad idea?
2. Currently I'm aiming my port to be a patch for the Yamagi's Quake II 8.xx source tree as I believe this will make it easier to maintain in the future, but this may lead to disadvantages in terms of optimization. Realistically speaking - does a port of 25 years old game to 16 years old hardware based on fairly new codebase that has been maintained for years needed by someone to be updated further more by someone else rather then me?
Thank you for attention. It will be a pleasure to answer any of your questions and read recommendations.
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-3#post-367975
Update 0.02 (pkg creation bundle)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-2#post-361812
Update 0.02pre (1st Hardware refresher release)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/page-2#post-361715
Update 0.01 (1st Software refresher release)
https://www.psx-place.com/threads/yamagis-quake-ii-port.37215/#post-342788
Original post below
.Hello everyone!
Not small prelude
I'm glad to write my first post here. I've joined PSX-Place at November last year and since then had nothing to say here. You guys are awesome, and the amount of work that was done to make tools to homebrew development for PS3 is astonishing.
My experience in homebrew development is so little, so it's easier to say that I don't have any. And actually I got my hands on softmod to my PS3 SUPER SLIM! only last summer, can you imagine: only to backup my games. Somewhere at mid-October, after watching some MVG's videos, I became interested that scene have made for PS3. I've got surprised how much and the same time how little was done on PS3 compared It's unique interesting hardware (thank you sAnie I guess).
I started learning PSL1GHT, read some papers on original SDK, got amazed seen RSXGL. I started tinkering with ps3toolchain at November (time I've joined PSX-Place). Initial idea was to port PC exclusive game from PS3's era or prior which was never had native version and have source port at nowadays. The first thing came to mind was re3 (GTA3 port) which not so long ago (at the time) was shot down by Rackstar due to the upcoming demastered collection. Yes, I know that GTA3 can be played on early PS3 models, but this is the PS2 version, moreover it's not a subject. The work went not welldue to my complete lack of knowledge of software porting and complexity of re3 project. After about a week I've lowered my ambitions and switched to no so complex game engine - Quake II's and started learning it's source code.
My choice on Quake II was based on my awareness of huge amount of ports and the knowledge of how many game engines were made based on Quake II's engine.And yet it is a fully 3D game with an OpenGL renderer. Looking at RSXGL I've got inspired to make GL game run on PS3. About a month took to learn how idTech2 works. And still working with it I'm amazed at what a good piece of software it is. For target code to port I choose some project called Thenesis Quake II which aimed to port Yamagi's Quake II to systems with embedded graphics (so called OpenGL ES). Everything was going well until I moved to work on rendering in December. I kept getting memory access errors in the render initialization part. I. I couldn't figure out what was wrong then, and even now I don't know what caused these errors. At end of year I abandoned work on it.
Words on RSXGL's shaders part
Returned to work at the last days of April, still focusing on RSXGL and Thenesis's code, but started from scratch focusing on renderer (or refresher if speaking in terms of Quake II). I don't get errors in the initialization part like it used to, but all screws up at shader's binding part, as I figure out it's some kind of error with shader's variables. Even then adding new names to gears example everything breaks, not sure is it problem only in my toolchain or whole RSXGL. I've read several messages from Crystal about RSXGL and decided to abandon it too.
Actual work started
Without RSXGL I'm not attached to the OpenGL and Thenesis's code which actually ruins modular design of Quake 2 and I've switched to recent version of Yamagi's Quake II. I did little work implementing system specific part for PS3 and in about a week of work managed to got it working. Yesterday in process of starting adding client's code (this part responsible for rendering, sound and user input) got it running with image and somewhat playable framerate. Today I've done implementing input part. And the following video is a showcase of playable first level (need to add 6 lines of code to make second level to load I think)
Showcase video
Game runs better then I expected - even at 720p it's around 14-16 fps. In RPCS3 I'm getting numbers around 5-7. Some details I left at video description. TL;DR: I don't plan to release it yet, but I will almost certainly do so in future, actually planning to release it when I start creating renderer module for hardware accelerated graphics.
Things I want you to ask about
1. As I mentioned above I've implemented own input subsystem independent of SDL2's one. Actuallyt wasn't really necessary, SDL2 Input works right out the box, I think it even supports keyboard and mouse, because in RPCS3 I got camera moving by dragging cursor above window and LMB worked as attack button. So I wish to get rid of SDL2 layer (including screen update part) how did you think is it bad idea?
2. Currently I'm aiming my port to be a patch for the Yamagi's Quake II 8.xx source tree as I believe this will make it easier to maintain in the future, but this may lead to disadvantages in terms of optimization. Realistically speaking - does a port of 25 years old game to 16 years old hardware based on fairly new codebase that has been maintained for years needed by someone to be updated further more by someone else rather then me?
Thank you for attention. It will be a pleasure to answer any of your questions and read recommendations.
Last edited: