Homebrew ioQuake3-Wii

  • Thread starter Thread starter Mayo1990
  • Start date Start date
  • Views Views 6,900
  • Replies Replies 92
  • Likes Likes 17
As far as updates go, I'm getting to the end toward this project. There's some new stuff though:

First of all, the bad news:
  • I tried to drop the interpreter and make it run with actual Wii instructions - I already did this and there wasn't much gain. Quake 3 does have a "fallback" in case it can't run in JIT and runs back in Interpreter. I managed to make it run in JIT and the performance stayed pretty much the same and the real bottleneck is OpenGX here.
  • Even without the Interpreter the highest the game can reach during busy action is 45 FPS, even with lower LoDs, effects and such. 60 FPS just seems a bit difficult to pull off until I ditch OpenGX for an actual GX renderer. I'd rather let it stay capped at 30 because I'll be sure that it won't go lower than that and provides enough stability.
  • Still no Team Arena support. It can't load a map, no matter how hard I trim. There isn't enough memory for it to hold both Q3 and Team Arena at the same time.
But not everything is bad, I also put some new QoL changes:
  • Menus will run at 60 FPS from now on. It was pointless to make them run at 30.
  • Since last update each controller had their own config file, but now they will also display their respective button key in the menu. This will let players know whatever key they bound to a certain button on the controller.

I will investigate if vWii with patches can run the port at 60, or try more optimization approaches. The most impactful of them all would be to drop OpenGX entirely, but I'm not ready for that yet.

I think you're being too harsh on yourself as far as the FPS goes, even 45 FPS is quite nice and playable during heavy fire, I've been playing this port of Quake 3 as is with keyboard and mouse and having a blast. For comparison the dreamcast port will frequently drop to even the 20s and 10s without losing playability, observe:

Plus also you're doing tests with bots and bots are always going to have a huge performance impact on limited hardware no matter what, I had the same issue on my old laptop. The important thing in this case is how well it performs with just rendering the game itself during heavy scenes, bots can always be offloaded to a server instead of running on the same machine.
 
  • Like
Reactions: Mayo1990
I think you're being too harsh on yourself as far as the FPS goes, even 45 FPS is quite nice and playable during heavy fire, I've been playing this port of Quake 3 as is with keyboard and mouse and having a blast. For comparison the dreamcast port will frequently drop to even the 20s and 10s without losing playability, observe:

Plus also you're doing tests with bots and bots are always going to have a huge performance impact on limited hardware no matter what, I had the same issue on my old laptop. The important thing in this case is how well it performs with just rendering the game itself during heavy scenes, bots can always be offloaded to a server instead of running on the same machine.


I'm also doing tests connecting online, most of the weight was made by OpenGX (which was expected, but at that point I started excluding everything so testing out JIT over Interpreter was also a good approach). I still stand by the opinion that I can reach 60 by ditching OpenGX or reducing its calls to the bare minimum.

Until then I'd rather keep it stable at a framerate (30) rather than see it dance between 30s and 40s
 
  • Like
Reactions: Disorarara
I'm also doing tests connecting online, most of the weight was made by OpenGX (which was expected, but at that point I started excluding everything so testing out JIT over Interpreter was also a good approach). I still stand by the opinion that I can reach 60 by ditching OpenGX or reducing its calls to the bare minimum.

Until then I'd rather keep it stable at a framerate (30) rather than see it dance between 30s and 40s

Excellent work either way as always, this port has been stellar so far and I'm looking forward to the next release! Really the only issues for me are the sensitivity on the gamecube controller (and presumably others?) still not being correct, regardless of what the sliders are set to. I guess I should elaborate it's not really a sensitivity issue so much as it seems like there's a lack of sensitivity at all, regardless of how little you're pushing the stick it will behave as if it's being pushed at full tilt which makes aiming very difficult. That and I'm not sure what's going on with certain textures not being loaded and instead just showing a flat shaded gourad polygon, memory related issues perhaps? It's especially noticeable in the player skin selection screen where certain skins will not load completely but it also shows up every now and again on some levels.
 
  • Like
Reactions: Mayo1990
Excellent work either way as always, this port has been stellar so far and I'm looking forward to the next release! Really the only issues for me are the sensitivity on the gamecube controller (and presumably others?) still not being correct, regardless of what the sliders are set to. I guess I should elaborate it's not really a sensitivity issue so much as it seems like there's a lack of sensitivity at all, regardless of how little you're pushing the stick it will behave as if it's being pushed at full tilt which makes aiming very difficult. That and I'm not sure what's going on with certain textures not being loaded and instead just showing a flat shaded gourad polygon, memory related issues perhaps? It's especially noticeable in the player skin selection screen where certain skins will not load completely but it also shows up every now and again on some levels.
Yeah some textures aren't being fully loaded due to memory. Which should TECHNICALLY get fixed the moment I drop OpenGX. The controller issue may be a deadzone issue at this point. I should try adding making the controller less sensible but the risk of it being too slow is huge.
 
Yeah some textures aren't being fully loaded due to memory. Which should TECHNICALLY get fixed the moment I drop OpenGX. The controller issue may be a deadzone issue at this point. I should try adding making the controller less sensible but the risk of it being too slow is huge.

I know you said mods don't work right now but some skins and custom maps do work, not all of them of course you don't want to load maps or skins that take up a lot of memory but the skins and maps that are lean on resources run fine actually!
 
I know you said mods don't work right now but some skins and custom maps do work, not all of them of course you don't want to load maps or skins that take up a lot of memory but the skins and maps that are lean on resources run fine actually!
That's quite good to know! Although I only tested Team Arena and Open Arena and the latter didn't load properly sadly. I know there's a Simpsons map that is widely known to be too heavy

Also, I tried two more things:

First one is to start replacing GX calls overriding OpenGX rendering and it straight up murdered the performance. I have to value whether It's a viable choice to drop OpenGX for a theoretical performance gain.
Second one is that I hooked my WiiU because I'd like to get it working on the Wii U gamepad as well as making it use the higher clock speeds to make it reach 60 FPS.
Post automatically merged:

As another band aid fix the port will now support the Wii U Gamepad. Just because I hit a lot of walls with my WiiU port. It should TECHNICALLY run at 60 stable FPS with c2w, but I'm not physically home enough to sit and test.

I will release another update this weekend.
This will mark its 1.0 release. Everything I've made is mostly QoL:
  • WiiU gamepad support (on vWii's only, as VC Wii title)
  • Controller sens improved
  • Controllers will now show their correct buttons in the controller setup
  • Menus will now run at 60 FPS (in game I'll still stick to 30 FPS by design choice)

The next big thing would be rewriting the graphic renderer. This is a huge task and requires skills I don't have at all.

Also, I decided to shelve my Wii U port, since I hit lots of walls. In case someone wants to tackle on it, feel free to DM.
 
Last edited by Mayo1990,
  • Like
Reactions: Disorarara
That's quite good to know! Although I only tested Team Arena and Open Arena and the latter didn't load properly sadly. I know there's a Simpsons map that is widely known to be too heavy

Also, I tried two more things:

First one is to start replacing GX calls overriding OpenGX rendering and it straight up murdered the performance. I have to value whether It's a viable choice to drop OpenGX for a theoretical performance gain.
Second one is that I hooked my WiiU because I'd like to get it working on the Wii U gamepad as well as making it use the higher clock speeds to make it reach 60 FPS.
Post automatically merged:

As another band aid fix the port will now support the Wii U Gamepad. Just because I hit a lot of walls with my WiiU port. It should TECHNICALLY run at 60 stable FPS with c2w, but I'm not physically home enough to sit and test.

I will release another update this weekend.
This will mark its 1.0 release. Everything I've made is mostly QoL:
  • WiiU gamepad support (on vWii's only, as VC Wii title)
  • Controller sens improved
  • Controllers will now show their correct buttons in the controller setup
  • Menus will now run at 60 FPS (in game I'll still stick to 30 FPS by design choice)

The next big thing would be rewriting the graphic renderer. This is a huge task and requires skills I don't have at all.

Also, I decided to shelve my Wii U port, since I hit lots of walls. In case someone wants to tackle on it, feel free to DM.
Y axis inverting is on the cards?
 
That's quite good to know! Although I only tested Team Arena and Open Arena and the latter didn't load properly sadly. I know there's a Simpsons map that is widely known to be too heavy

Also, I tried two more things:

First one is to start replacing GX calls overriding OpenGX rendering and it straight up murdered the performance. I have to value whether It's a viable choice to drop OpenGX for a theoretical performance gain.
Second one is that I hooked my WiiU because I'd like to get it working on the Wii U gamepad as well as making it use the higher clock speeds to make it reach 60 FPS.
Post automatically merged:

As another band aid fix the port will now support the Wii U Gamepad. Just because I hit a lot of walls with my WiiU port. It should TECHNICALLY run at 60 stable FPS with c2w, but I'm not physically home enough to sit and test.

I will release another update this weekend.
This will mark its 1.0 release. Everything I've made is mostly QoL:
  • WiiU gamepad support (on vWii's only, as VC Wii title)
  • Controller sens improved
  • Controllers will now show their correct buttons in the controller setup
  • Menus will now run at 60 FPS (in game I'll still stick to 30 FPS by design choice)

The next big thing would be rewriting the graphic renderer. This is a huge task and requires skills I don't have at all.

Also, I decided to shelve my Wii U port, since I hit lots of walls. In case someone wants to tackle on it, feel free to DM.

I'm a bit tardy to mention this but there's also actually a way to get 256MB of RAM usage on the WiiU on vWii homebrew, the port of NT to the Wii does this as well as a rockband mod apparently although I don't know the specifics. It might be worth looking into for this project to make Quake 3 run better on WiiU (overclocked + extra RAM usage)

Here's the posts talking about it:
https://labyrinth.zone/notice/AtLQ1csJawfncDYlV2
https://labyrinth.zone/notice/At1SqM5s3qkr5J1FjM
 
Last edited by Disorarara,
I'm a bit tardy to mention this but there's also actually a way to get 256MB of RAM usage on the WiiU on vWii homebrew, the port of NT to the Wii does this as well as a rockband mod apparently although I don't know the specifics. It might be worth looking into for this project to make Quake 3 run better on WiiU (overclocked + extra RAM usage)

Here's the posts talking about it:
https://labyrinth.zone/notice/AtLQ1csJawfncDYlV2
https://labyrinth.zone/notice/At1SqM5s3qkr5J1FjM
The memory at the moment is the right approach for Q3/OA. But not for TA. Sadly this is not applicable to this port.

Anyway, latest release:
  • Each controller will now display their correct buttons
  • Improved controller feedbacks (invert aim, aim slider will now work as intended)
  • Added Wii U Gamepad support (vWii on Wii U only)
  • Menus will now run at 60 FPS. Gameplay will still be locked at 30.

Latest release
 
The memory at the moment is the right approach for Q3/OA. But not for TA. Sadly this is not applicable to this port.

Anyway, latest release:
  • Each controller will now display their correct buttons
  • Improved controller feedbacks (invert aim, aim slider will now work as intended)
  • Added Wii U Gamepad support (vWii on Wii U only)
  • Menus will now run at 60 FPS. Gameplay will still be locked at 30.

Latest release

Awesome update! The Gamecube controller now feels so much better to use and I was able to actually win bot matches with it! Although I still have the issue of the menu not responding to button presses when trying to change inputs on the GCC, I think it's because there are certain menu actions that are hardmapped on the controller? Like for example if you try and remap the A button on the GCC on the menu, instead of A it says you mapped "ENTER", and in order to actually move the slider around on the menu the A button doesn't work but using the R trigger does because it's mapped to MOUSE1

EDIT: Also the deadzone could be adjusted a bit too, it's playable and feels fine to me but there is a bit of an empty zone that could be a bit smaller. Also it might just be me but adjusting the "joystick threshold" doesn't seem to actually do anything at least on the GCC, again though as is right now it's definitely far more playable than before and I can now actually play the game using just the controller which is fantastic :D

EDIT 2: Aha, changing the mouse speed is what actually changes the speed of the look movement.
 
Last edited by Disorarara,
Awesome update! The Gamecube controller now feels so much better to use and I was able to actually win bot matches with it! Although I still have the issue of the menu not responding to button presses when trying to change inputs on the GCC, I think it's because there are certain menu actions that are hardmapped on the controller? Like for example if you try and remap the A button on the GCC on the menu, instead of A it says you mapped "ENTER", and in order to actually move the slider around on the menu the A button doesn't work but using the R trigger does because it's mapped to MOUSE1

EDIT: Also the deadzone could be adjusted a bit too, it's playable and feels fine to me but there is a bit of an empty zone that could be a bit smaller. Also it might just be me but adjusting the "joystick threshold" doesn't seem to actually do anything at least on the GCC, again though as is right now it's definitely far more playable than before and I can now actually play the game using just the controller which is fantastic :D
Because you need to adjust the mouse sensitivity! That's where you can set the sens for the analogs


I'll investigate the buttons but when I tried remapping them it did work.
 
Last edited by Mayo1990,
  • Like
Reactions: Disorarara
Because you need to adjust the mouse sensitivity! That's where you can set the sens for the analogs


I'll investigate the buttons but when I tried remapping them it did work.

I tried changing them manually in q3config.cfg (I'm trying to make JOY11 "+moveup" so I can jump with the left trigger) but it seems like it's hard coded to always default to a certain button layout at least on the gamecube controller, I wiped all the inputs in the menu with backspace and restarted the game, did the same thing of restoring the default gamecube button layout but not anything else.
 

Site & Scene News

Popular threads in this forum