Homebrew ioQuake3-PS4

  • Thread starter Thread starter Mayo1990
  • Start date Start date
  • Views Views 3,171
  • Replies Replies 34
  • Likes Likes 6
First actual release:
  • Touchpad aim (swap between right stick/touchpad mode with L3+R3)
  • Optimised available memory (thanks again AmeliaFox for testing!)
  • Added the Insert Key skip (yet, thanks again Ameliafox!)

Latest release

Users will still need to include libSceShaccVSH.sprx and libScePigletv2VSH.sprx in /data/self/system/common/lib/
 
Last edited by Mayo1990,
Second release, now featuring Open Arena and Team Arena:
  • Fixed an issue tied to cinematic playback
  • Touchpad aim now moved L3+Touchpad
  • Initial gyro aim support. Enable it with R3+Touchpad. It needs lots of feedbacks to get it right.
  • ogg audio support
  • Rumble support (disable with L3+R3)
  • Mod support

Like the first release, users will still need to include libSceShaccVSH.sprx and libScePigletv2VSH.sprx in /data/self/system/common/lib/


Latest release
 
Last edited by Mayo1990,
  • Like
Reactions: AmeliaFox
There is a sample piglet project/app in the OpenOrbis Toolchain that does not seem to use those sprx files. Not sure if it could be of any use to you but thought I would mention it. The pkg it produces is IV0000-BREW00071_00-PIGLETEXAMPLE000
 
There is a sample piglet project/app in the OpenOrbis Toolchain that does not seem to use those sprx files. Not sure if it could be of any use to you but thought I would mention it. The pkg it produces is IV0000-BREW00071_00-PIGLETEXAMPLE000
That was my first approach
Post automatically merged:

Third release. This is probably going to be the latest update to the PS4 Quake 3 side. Future updates will address OA/TA specific bugfixes.

Features:​

  • Added a splash screen when booting each game.
  • On initial boot each game will automatically place a custom pak file in its respective folder that aims to bugfix some issues.

Menus​

  • Controls menu trimmed to PS4-relevant entries only.
  • Instead of showing keyboard bindings or JOY1, JOY2 etc it now correctly display Dualshock 4 controls.
  • Add to Favorites button in the server browser. D-pad scrolls the server list. L3 stops server refresh.
  • Various bugfixes to the menu
  • OSK support for all text fields: player name, server address, hostname, frag/time/capture limits, CD key, config filename. Cross opens the PS4 keyboard when a field is focused.
  • Console: right stick scrolls line by line, D-pad Up/Down scrolls 5 lines, L1+R1 jumps to top/bottom, Circle closes, Cross opens OSK to type and execute a command

Controller​

  • Removed Gyro aim support.
  • Improved rumble feedback. Strength will now depend on weapons.
  • Health-based lightbar: pulsing red when critical (1–25 HP), dim red when low (26–50 HP), dark red when dead. Returns to aim-mode color when healthy.

Other​

  • OSK no longer causes stuck keys or phantom camera movement after closing.
  • Fixed a music playback issue


Latest release
 
Last edited by Mayo1990,
  • Like
Reactions: Happy1337

Version 1.4

Features:​

  • New build: Quake 3 Classic
This unique build enables crossplay with Dreamcast and Quake 3 1.16n clients. Thanks to Zack's Protocol 43 reverse engineering and his Lilium Arena Classic custom build as well as granting me permissions to use his work, I was able to adapt it to this PS4 port. To get it running, you will also need the dc-mappack.pk3 available here.

More infos​

Quake 3 Classic will automatically install a file named zpack-classic.pk3 in the baseq3 folder. Since this pak is gonna affect the UI and some hotfixes that can't be addressed otherwise, it will be automatically ignored by the other builds here. Same goes for the opposite, Quake 3 Classic will only read the required pak files, zpack-classic and dc-mappack.

Other​

  • Team Arena UI OSK fixes.
  • Fixed an issue where the username would reset itself when rebooting any client.

Latest release
 
New release.

New build: Star Trek Voyager: Elite Force (Holomatch)
Build that will let you play Star Trek Voyager: Elite Force (either single player or online)

Features:

  • User doesn't need to provide Piglet and ShaCC anymore. Just install the PKG files in your console, follow the installation instructions at the top and you're set!
  • Fixed an issue related to Quake III Classic

Download
 
New release.

New build: Star Trek Voyager: Elite Force (Holomatch)
Build that will let you play Star Trek Voyager: Elite Force (either single player or online)

  • Improved loading times
  • Fixed an issue related to Elite Force
  • Added MP3 support (Elite Force needed this for some audio files)

Download
 
New update.

New features, bugfixes:

  • Fixed a crash tied to Elite Force
  • Restoring default settings will now set the User's account name instead of "Unnamedplayer"
Download
 
  • Like
Reactions: snuffbot1
In ioquake3 for ps4 I am trying to use the urban terror mod and whn loading I am getting this error:Hunk_Alloc failed on 16238488 code/renderergl2/tr_model.c line 560 (sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames)

In the code you have this line:
surf->verts = v = ri.Hunk_Alloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames), h_low);

It seems all maps load properly and so do weapons and other assets, it's just failing drawing the models - maybe running out of memory, which it shouldn't since you hard coded hunk megs. PC version also gives errors unless you use a custom launcher instead of loading as a mod, so maybe that information can be of some use.
 
In ioquake3 for ps4 I am trying to use the urban terror mod and whn loading I am getting this error:Hunk_Alloc failed on 16238488 code/renderergl2/tr_model.c line 560 (sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames)

In the code you have this line:
surf->verts = v = ri.Hunk_Alloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames), h_low);

It seems all maps load properly and so do weapons and other assets, it's just failing drawing the models - maybe running out of memory, which it shouldn't since you hard coded hunk megs. PC version also gives errors unless you use a custom launcher instead of loading as a mod, so maybe that information can be of some use.

If Urban Terror is a standalone mod (like Open Arena) that's most likely it. It's so strange that it can't allocate the memory given the fact that Q3PS4 already allocates 256 MB to the Hunk.
 
If Urban Terror is a standalone mod (like Open Arena) that's most likely it. It's so strange that it can't allocate the memory given the fact that Q3PS4 already allocates 256 MB to the Hunk.
I'll try building a standalone launcher. It could be the when the mod is loaded via ioquake3 mod menu then the memory isn't being flushed properly and backgound stuff is still loaded which is causing the memory issues. I have the same issue on a laptop with hunk meg crashes, so I guess it's launching from mod menu which is causing the issues rather than the renderer code. Issues go away on laptop when launching via it's own exe file.

EDIT: OK I created a standalone and had to copy q3config.cfg from ioquake3 into the mod folder to get it to launch, I adjusted the com_hunkmegs to 310 + zonemegs is at 48, I still get the issues so I guess the PS4 just doesn't have enough memory to run this mod - looking at the default config gennerated by the standalone it sets this to 800 which is probably why it doesn't work on PS4 (not enough memory). Ah well never mind.
 
Last edited by snuffbot1,
  • Like
Reactions: Mayo1990
I'll try building a standalone launcher. It could be the when the mod is loaded via ioquake3 mod menu then the memory isn't being flushed properly and backgound stuff is still loaded which is causing the memory issues. I have the same issue on a laptop with hunk meg crashes, so I guess it's launching from mod menu which is causing the issues rather than the renderer code. Issues go away on laptop when launching via it's own exe file.

EDIT: OK I created a standalone and had to copy q3config.cfg from ioquake3 into the mod folder to get it to launch, I adjusted the com_hunkmegs to 310 + zonemegs is at 48, I still get the issues so I guess the PS4 just doesn't have enough memory to run this mod - looking at the default config gennerated by the standalone it sets this to 800 which is probably why it doesn't work on PS4 (not enough memory). Ah well never mind.
I'm not even sure if hunkmeg could get this much allocation on PS4. Still worth a shot though
 
I'm not even sure if hunkmeg could get this much allocation on PS4. Still worth a shot though
No, It crashes with anything over 310 + 48MB zone megs, so I bypassed it like this:

In code/renderergl2/tr_model.c


surf->verts = v = ri.Hunk_Alloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames), h_low);

Replaced it with:

surf->verts = v = ri.Malloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames));

This moves the allocation from the hunk pool (capped at 310 MB) into the PS4's general heap, which has much more breathing room. However instead of getting the hunkmeg warning it would load so far and then crash the ps4 when the memory was full with no warning error, I put it back to original code after testing. I've binned the idea for now as PS4 just doesn't have enough memory to run that mod.
 
No, It crashes with anything over 310 + 48MB zone megs, so I bypassed it like this:

In code/renderergl2/tr_model.c


surf->verts = v = ri.Hunk_Alloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames), h_low);

Replaced it with:

surf->verts = v = ri.Malloc(sizeof(*v) * (md3Surf->numVerts * md3Surf->numFrames));

This moves the allocation from the hunk pool (capped at 310 MB) into the PS4's general heap, which has much more breathing room. However instead of getting the hunkmeg warning it would load so far and then crash the ps4 when the memory was full with no warning error, I put it back to original code after testing. I've binned the idea for now as PS4 just doesn't have enough memory to run that mod.
Hilarious and unlucky at the same time.
 
  • Like
Reactions: snuffbot1

Site & Scene News

Popular threads in this forum