Homebrew ioQuake3-Wii

  • Thread starter Thread starter Mayo1990
  • Start date Start date
  • Views Views 6,321
  • Replies Replies 85
  • Likes Likes 16
My main focuses are the Quake 3 ports I'm working on, and some Quake-related projects. I have no plans in working on other things once I'm done with that.

The microcode is only half the equation. If you want a Nintendo 64 port of things on Wii you'd still have to port the renderer calls in GX. As I mentioned earlier, the only reason I was fast enough on my Quake3-Wii project was because I'm using OpenGX (which is a wrapper for the OpenGL renderer). This will ensure that I don't have to bash my head with the main renderer at the cost of performance.
Post automatically merged:

This weekend I should be able to push another release.
First of all, the one for the only user that has an issue through his D1 Wii needs a bit more tinkering than expected... and lots of debugging. I'll start testing on my Wii Mini and see if there are differences.

For everyone else:

I should have fixed the issue regarding Open Arena with the TGA files.
I also fixed many of the missing graphic effects (ex. mirror in the tutorial, the skyboxes) so they will load fine now. The menu also has the logo in all its glory again.
I also tried to push the framerate to 60 FPS, the game can achieve it in low maps, but in bigger maps and with 3-4 bots the framerate tanks a lot. I'd rather keep it locked at 30.

For Team Arena, at the moment I managed to get to the main menu, but I can't boot any map yet. I'm hitting a lot of roadblocks because the memory is just not enough. This upcoming release won't feature a dol for it, but whoever can tinker with the tools, has some time to spare and wants to investigate I'll leave the changes in the commit, since they will only affect Team Arena and not Open Arena and Quake 3.


View attachment 575065

I would be very interested in a 60fps build, a lot of Quake 3 matches tend to be just 1v1s on small maps and having 60fps would be a huge benefit for that.
 
  • Like
Reactions: Mayo1990
This weekend I should be able to push another release.
First of all, the one for the only user that has an issue through his D1 Wii needs a bit more tinkering than expected... and lots of debugging. I'll start testing on my Wii Mini and see if there are differences.

For everyone else:

I should have fixed the issue regarding Open Arena with the TGA files.
I also fixed many of the missing graphic effects (ex. mirror in the tutorial, the skyboxes) so they will load fine now. The menu also has the logo in all its glory again.
I also tried to push the framerate to 60 FPS, the game can achieve it in low maps, but in bigger maps and with 3-4 bots the framerate tanks a lot. I'd rather keep it locked at 30.
Great work, thanks for bringing yet another great PC game, natively ported to the Wii. I'm adding your port to The Wii Ports ultimate thread.

It is working great with the Wii U Pro Controller, thankfully.

Couple of minor requests:
- The Look sensitivity bar does nothing for the right stick, and right now it is painfully touchy.
- Invert mouse also doesn't work, so I couldn't test much.

Other than that, it's so, so cool running Quake III on this little console.
 
  • Like
  • Love
Reactions: JorgeV and Mayo1990
I would be very interested in a 60fps build, a lot of Quake 3 matches tend to be just 1v1s on small maps and having 60fps would be a huge benefit for that.
It only works in very specific case scenarios. You can manually set it at 60 FPS through the console command, but expect the game to not be constant with it. Rather than being a GPU/Memory issue, that's a CPU one. Not much can be achieved with it for now.
Great work, thanks for bringing yet another great PC game, natively ported to the Wii. I'm adding your port to The Wii Ports ultimate thread.

It is working great with the Wii U Pro Controller, thankfully.

Couple of minor requests:
- The Look sensitivity bar does nothing for the right stick, and right now it is painfully touchy.
- Invert mouse also doesn't work, so I couldn't test much.

Other than that, it's so, so cool running Quake III on this little console.


I guess this is slowly turning into an actual port now uh? Anyway, thanks a lot! I should make a new video for each port now that they're all in a much better shape. The one I posted was one that was made just to showcase the very first early stages of it (not even bots could work lol)


Can you give me more details on the look sensitivity issue?
And I'll investigate che config file issue. It shouldn't be difficult to fix.
 
It only works in very specific case scenarios. You can manually set it at 60 FPS through the console command, but expect the game to not be constant with it. Rather than being a GPU/Memory issue, that's a CPU one. Not much can be achieved with it for now.



I guess this is slowly turning into an actual port now uh? Anyway, thanks a lot! I should make a new video for each port now that they're all in a much better shape. The one I posted was one that was made just to showcase the very first early stages of it (not even bots could work lol)


Can you give me more details on the look sensitivity issue?
And I'll investigate che config file issue. It shouldn't be difficult to fix.
Your contribution is wonderful, and the documentation will also be useful for others to make future ports. Unfortunately, I know nothing about programming.
 
Can you give me more details on the look sensitivity issue?
And I'll investigate che config file issue. It shouldn't be difficult to fix.
The problem is that right now, it is waaaay too sensitive, headache inducing, and even with the bar at zero, it has no effect on slowing down camera look :ohnoes:. Coupled with the fact that the camera look can't be inverted on the Y axis, both things basically render it impossible for me to play for more than a minute.

I guess this is slowly turning into an actual port now uh? Anyway, thanks a lot! I should make a new video for each port now that they're all in a much better shape. The one I posted was one that was made just to showcase the very first early stages of it (not even bots could work lol)
Yeah, I used that video for the moment, I'll make an update whenever you upload a new one showcasing your now improved builds. Thanks for your cool port, kinda wish you were also doing Quake II & I, as these are in dire need of a refreshment for the Wii.
 
Last edited by niuus,
The problem is that right now, it is waaaay too sensitive, headache inducing, and even with the bar at zero, it has no effect on slowing down camera look :ohnoes:. Coupled with the fact that the camera look can't be inverted on the Y axis, both things basically render it impossible for me to play for more than a minute.


Yeah, I used that video for the moment, I'll make an update whenever you upload a new one showcasing your now improved builds. Thanks for your cool port, kinda wish you were also doing Quake II & I, as these are in dire need of a refreshment for the Wii.

You should check out QRevPak, it was a new port from a while ago for Quake, Quakeworld and Quake 2 plus it's expansion packs
 
You should check out QRevPak, it was a new port from a while ago for Quake, Quakeworld and Quake 2 plus it's expansion packs
Yeah, I played it many years ago. I think I remember it missing Wii U Pro Controller support and stopped using it, as it was made way too long ago, as Homebrew wasn't this advanced, thank god for OpenGX and WUPC support.
 
The problem is that right now, it is waaaay too sensitive, headache inducing, and even with the bar at zero, it has no effect on slowing down camera look :ohnoes:. Coupled with the fact that the camera look can't be inverted on the Y axis, both things basically render it impossible for me to play for more than a minute.


Yeah, I used that video for the moment, I'll make an update whenever you upload a new one showcasing your now improved builds. Thanks for your cool port, kinda wish you were also doing Quake II & I, as these are in dire need of a refreshment for the Wii.
This is why I more than often need user feedbacks for improvements. I can't just sit and say "Works on my machine" and call it a day.

In the weekend I'll see if I get some time to make a much longer video showcasing everything the port can do.

As I wrote in a previous post, I'll mainly focus in my Quake 3 Arena ports (MAYBE and I mean JUST MAYBE the PSP port because It's very outdated and does need some sharpening), Sonic Robo Blast 2 since It's been commissioned privately by someone and a port of Lilium Arena Classic to have a compatible client with Quake 3 on Dreamcast. I don't plan in working on anything else as of now. If someone does want to work on them though, I did post how I achieved my ports, so It's just a matter of someone actually wanting to sit, debug 99% of the sessions and craft solutions. By the end of the day, these were just some projects of mine to improve in prompting.

Yeah, I played it many years ago. I think I remember it missing Wii U Pro Controller support and stopped using it, as it was made way too long ago, as Homebrew wasn't this advanced, thank god for OpenGX and WUPC support.
Still legit surprised that my port is the best use-case of OpenGX as of now.
 
  • Like
Reactions: niuus
As I wrote in a previous post, I'll mainly focus in my Quake 3 Arena ports (MAYBE and I mean JUST MAYBE the PSP port because It's very outdated and does need some sharpening), Sonic Robo Blast 2 since It's been commissioned privately by someone and a port of Lilium Arena Classic to have a compatible client with Quake 3 on Dreamcast. I don't plan in working on anything else as of now. If someone does want to work on them though, I did post how I achieved my ports, so It's just a matter of someone actually wanting to sit, debug 99% of the sessions and craft solutions. By the end of the day, these were just some projects of mine to improve in prompting.
Yep, I read the whole thread before posting the first message, and saw that you are going to do some other punctual stuff and that's it. Hence why I specifically said "kinda wish", so don't ever feel obliged, it is just a thought, as your port is already very good and up to date with input options.

Good luck with your other projects. I love Wii homebrew so I'll be testing your new builds whenever those happen.
 
The controller behaves the same way in all variants. I can try and tune down the sens a bit more in the next patch, though

I'm gonna DM you a debug build tomorrow. It will make some log files that you must send me back. You can add me on Discord for further testing since this bug has only happened to you
Hey mate I'm getting "wii fatIniDefault() failed no SD Card FATAL could not mount SD. Halting"

Maybe it's the cluster partition of the SD, any recommendations or something that I can try.
 
Hey mate I'm getting "wii fatIniDefault() failed no SD Card FATAL could not mount SD. Halting"

Maybe it's the cluster partition of the SD, any recommendations or something that I can try.
Check your SD card. It's probably an issue with it.
 
Still legit surprised that my port is the best use-case of OpenGX as of now.

Quake 3 was the showcase for OpenGL gaming at release and for years afterwards was used as a tech demo to showcase all kinds of cards and embedded devices being able to do OpenGL, so to see it on the Wii is maybe the ultimate example of how far OpenGX has come for portability. The fact that you also used AI to port this over and it actually works fantastically makes it also the best showcase for what AI can do for Wii homebrew!

As far as memory usage is concerned, is it possible to use a virtual memory solution like what some other Wii homebrew projects use?
 
Quake 3 was the showcase for OpenGL gaming at release and for years afterwards was used as a tech demo to showcase all kinds of cards and embedded devices being able to do OpenGL, so to see it on the Wii is maybe the ultimate example of how far OpenGX has come for portability. The fact that you also used AI to port this over and it actually works fantastically makes it also the best showcase for what AI can do for Wii homebrew!

As far as memory usage is concerned, is it possible to use a virtual memory solution like what some other Wii homebrew projects use?
Such as?
 
I'll take a look. Either today/tomorrow I'll plug back my Wii and work on the port again, as well as release the latest fixes I mentioned.
Post automatically merged:

I checked, and apparently I can't implement that virtual memory support to Q3. What I have right now is the correct approach.

New update:

This release can boot into Team Arena's main menu but can't enter any game. The make all-flavors will also compile TA in case someone wants to tackle or investigate what's going on with it.
  • Fixed some graphics-related issues. Skyboxes, mirrors, logos and such will now display correctly.
  • Each controller will now have their respective input configurations. This means that if someone wants to change some bindings to the Wiimote+Nunchuck, and then hotswap to Classic Controller or GC's, they will have their respective configurations.
  • Stability improvements. This was a discovery I made while optimizing everything for Team Arena. It still was beneficial to Q3 Arena so it was worth to keep.

Latest release
 
Last edited by Mayo1990,
I'll take a look. Either today/tomorrow I'll plug back my Wii and work on the port again, as well as release the latest fixes I mentioned.
Post automatically merged:

I checked, and apparently I can't implement that virtual memory support to Q3. What I have right now is the correct approach.

New update:

This release can boot into Team Arena's main menu but can't enter any game. The make all-flavors will also compile TA in case someone wants to tackle or investigate what's going on with it.
  • Fixed some graphics-related issues. Skyboxes, mirrors, logos and such will now display correctly.
  • Each controller will now have their respective input configurations. This means that if someone wants to change some bindings to the Wiimote+Nunchuck, and then hotswap to Classic Controller or GC's, they will have their respective configurations.
  • Stability improvements. This was a discovery I made while optimizing everything for Team Arena. It still was beneficial to Q3 Arena so it was worth to keep.

Latest release

Awesome release! I tried your suggestion to uncap the FPS and I think it actually runs quite nicely, if you have one or two bots it really only drops to about 40 while maintaining 60 most of the time. Assuming someone is using this on a WiiU with the homebrew CPU overclocking option I imagine it will run at a full 60 at all times. The look sensitivity on the gamecube controller is still at full max though, the joystick sensitivity option doesn't do anything.
 
Last edited by Disorarara,
  • Like
Reactions: Mayo1990
Awesome release! I tried your suggestion to uncap the FPS and I think it actually runs quite nicely, if you have one or two bots it really only drops to about 40 while maintaining 60 most of the time. Assuming someone is using this on a WiiU with the homebrew CPU overclocking option I imagine it will run at a full 60 at all times. The look sensitivity on the gamecube controller is still at full max though, the joystick sensitivity option doesn't do anything.
Yeah that was my expectations. I'd rather keep it at stable 30 than see it dancing between 40-60. But this is a CPU issue rather than a memory issue at this point. I didn't think about the overclocked vWii part on WiiU. I may check it out.

I will check and fix the slider sensitivity in the next patch.
Post automatically merged:

Awesome release! I tried your suggestion to uncap the FPS and I think it actually runs quite nicely, if you have one or two bots it really only drops to about 40 while maintaining 60 most of the time. Assuming someone is using this on a WiiU with the homebrew CPU overclocking option I imagine it will run at a full 60 at all times. The look sensitivity on the gamecube controller is still at full max though, the joystick sensitivity option doesn't do anything.
Apparently, you can set the sensitivity from the Mouse aim slider.

...Even with the controller.
 
Last edited by Mayo1990,
  • Like
Reactions: Disorarara
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.
 
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.
When you're finished, put the resources on Github so that anyone who wants to port more things to the Wii/Wii U can follow, and it's clear from the performance that the best way is OpenGX, which ports OpenGL directly.
 
When you're finished, put the resources on Github so that anyone who wants to port more things to the Wii/Wii U can follow, and it's clear from the performance that the best way is OpenGX, which ports OpenGL directly.
I already prepared an AGENTS.MD file aimed toward AIs who want to analyze the technical standpoints of the port.

And no, the best way is to drop OpenGX and make native GX calls. OpenGX just adds extra loads to the CPU.

The port won't contribute much to the WiiU scene, but Wii's could have some benefits from it.
 

Site & Scene News

Popular threads in this forum