Mini Skeen Menu
|
Network Links
|
Active Threads
|
|
 |
Quake Wii (Official Release Thread) |
 |

05-26-2008, 07:38 AM
|
 |
member
|
|
Join Date: Apr 2007
Posts: 48
|
|
Quake Wii (Official Release Thread)
Edit: Thank you very much to Eluan for doing such a great job taking over Quake on Wii.
Hello,
Due to some work related stuff I'm not able to continue development on Quake or Quake 2 for GameCube/Wii.
I'd really like it if I could find a person or two to continue the projects, instead of just letting them stagnate.
Quake 2 for Wii in particular would be a cool project to take up due to the Wii's controllers, networking and increased memory.
So please let me know if you (or anyone you know) would be interested in either of these projects!
Thanks for reading,
Peter
Last edited by PeterM; 06-16-2008 at 09:14 AM..
Reason: Changed thread title.
|

05-26-2008, 03:22 PM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
I'd love to continue your work on this.
I'm pretty familiar with the quake engines subsystems, especially quake1. I've hacked through it for many, many years and was JUST thinking in creating my own port when I read this post, talk about good timing!
On the bad side, I don't know much about Wii programming in general, but I know enough about computers to learn it quickly.
I'm going to take a look at your ports right now.
Later,
Eluan
|

05-27-2008, 05:07 AM
|
 |
member
|
|
Join Date: Apr 2007
Posts: 48
|
|
Great! Let me know how you get on, and please feel free to ask me any questions you may have. 
|

05-27-2008, 03:20 PM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
I've played with it all night and added changed the sdgecko functions to the wiisd functions from latest libogc cvs (still using tffs, not libfat yet.)
One thing that intrigued me was the palette, converting to RGB565 it looked extremely low-color and greeny. I'm looking around for ways to do RGBA8 but I can't find it anywhere. Will continue to look around.
|

05-27-2008, 07:17 PM
|
 |
member
|
|
Join Date: Apr 2007
Posts: 48
|
|
Yeah the GameCube texture and palette formats were a bit of a mystery to me. I spent a while just trying to figure out how to upload the palette and what format to put it in.
By the way, if you can send me a PM with your Gmail address, I can add you as a project member so you can commit your changes to SVN.
I added a tag to indicate my last version so don't worry about making any changes you feel are suitable to the source code.
|

05-27-2008, 07:27 PM
|
|
member+
|
|
Join Date: May 2008
Posts: 58
|
|
Quote:
Originally Posted by eluan
I've played with it all night and added changed the sdgecko functions to the wiisd functions from latest libogc cvs (still using tffs, not libfat yet.)
One thing that intrigued me was the palette, converting to RGB565 it looked extremely low-color and greeny. I'm looking around for ways to do RGBA8 but I can't find it anywhere. Will continue to look around.
|
Have you uploaded it anywhere?
|
 |
|
 |

05-27-2008, 09:09 PM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
Quote:
Originally Posted by PeterM
Yeah the GameCube texture and palette formats were a bit of a mystery to me. I spent a while just trying to figure out how to upload the palette and what format to put it in.
By the way, if you can send me a PM with your Gmail address, I can add you as a project member so you can commit your changes to SVN.
I added a tag to indicate my last version so don't worry about making any changes you feel are suitable to the source code.
|
Looking at the libogc includes, it seems that the hardware only supports 3 lookup formats: GX_TL_IA8, GX_TL_RGB565, GX_TL_RGB5A3.
The best thing would be creating a hardware-accelerated GX rendering driver, but it would be kinda *hard* for me without an proper debugging tool.
I've also tried some things with the libogc networking functions, but they crash a lot for now, so I left the port of the udp driver for later, when they are more stable. (Or maybe I did something wrong.)
I've sent my gmail via PM for you.
Quote:
Originally Posted by Dood77
Have you uploaded it anywhere?
|
I still have to diff it against the svn head to do everything the proper way (keeping the gamecube version, ifdef'ing the wiisd functions, etc...)
|

05-27-2008, 09:10 PM
|
 |
playa
|
|
Join Date: Jan 2007
Location: Indiana, USA
Posts: 294
|
|
I'm gonna be following these revisions. Can't wait to see how it all turns out.
|

05-27-2008, 10:34 PM
|
 |
baller, shot caller
|
|
Join Date: Jun 2007
Posts: 362
|
|
Me too...I like Quake quite a bit. 
|
 |
|
 |

05-28-2008, 04:36 PM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
Uploaded a work in progress version to show what I've been doing.
For now:
-It resets properly on the Wii (still not able to return to the loader, though.)
-Reads files from the front Wii SD slot (saving disabled, forgot to reenable it before uploading, but you can remove the return lines on SYS_FileOpenWrite and SYS_FileWrite to make it work.)
-Wiimote suport, tried to map the buttons on the wiimote and nunchuk more or less like the gamecube ones, wiimote IR aiming and nunchuk up-motion jumping.
Bugs:
-Wiimote disconnects too fast, need to read the libogc headers again and determine how to make the idle time longer.
-If the wiimote disconnects, screen turns grey (only the game screen, not the status bar or menu) and stays this way until you reload the game (starting a new game won't help)
-Maybe you'll have to disconnect and reconnect the nunchuk to your wiimote to make it work (again, this is a 1-day, no-prior-experience implementation, it will be fixed)
-Something else I can't remember.
Download it at the quake-gamecube official site: http://code.google.com/p/quake-gamecube/downloads/list
That's it, please don't complain about the wiimote implementation and SD card reading yet. The wiimote code is completely new to me (and I don't know about the real stability of the code on the libogc cvs) and the SD reading doesn't use libfat yet, but use the wiisd functions from the latest libogc CVS.
|

05-28-2008, 06:22 PM
|
|
mad poster
|
|
Join Date: Mar 2008
Posts: 142
|
|
Great work so far, eluan. Just played through a few levels and can see this is going to be a lot of fun. Can't wait for networking so I can get some Wii-DS deathmatch/co-op going.
|

05-28-2008, 07:03 PM
|
 |
playa
|
|
Join Date: Jan 2007
Location: Indiana, USA
Posts: 294
|
|
Great job. Looks and operates exactly as it did first time I played on my PC (way back in the day  ). My only issue is with the aiming, it wants to point up when your cursor goes offscreen.
One question, does this load code externally or is the game code embedded in the elf? Just asking because Team Fortress would kick so much ass on here.
|

05-28-2008, 08:09 PM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
Most of the quake engine is ansi C, including the VM. The only rewritten parts were the already well-isolated (by the enormous number of ports quake has) system-specific modules.
So Team Fortress and any mod is completely possible!
I'm gonna fiz the aiming issue right now, the problem was that I used the IR to aim whenever there were at least 2 dots visible for the camera, but it seems that past the edge of the virtual screen, two dots are still visible and the cursor goes to {0, 0}.
|

05-28-2008, 09:47 PM
|
 |
baller, shot caller
|
|
Join Date: Jun 2007
Posts: 362
|
|
Also, nice work. Sure, the aim may be slightly wonky, but it actually plays really really well. I was only going to play a little bit (to check it out) but I ended up playing through around 3 levels. 
|

05-28-2008, 09:48 PM
|
|
new member
|
|
Join Date: Apr 2008
Posts: 2
|
|
Actually I will help out, tell me what you need me to do, I am a little new to wii probraming, but I will try my best. I will send you a P.M with my Gmail.
|

05-28-2008, 10:41 PM
|
|
new member
|
|
Join Date: Aug 2006
Posts: 6
|
|
Very enjoyable, glad someone has picked up the project and is already running with it.
|

05-29-2008, 09:11 AM
|
|
finish him
|
|
Join Date: Mar 2006
Location: Toulouse, France
Posts: 982
|
|
about the timeout, I used this and this work well:
WPAD_SetSleepTime(60);
on reconnection, IR tracking is disabled so you have to manually enabled it again
current libogc implementation "seems" to be rather stable (I mean I didn't encounter any random crash during the few hour I tested my apps) but you never know
Last edited by eke-eke; 05-29-2008 at 09:14 AM..
|

05-29-2008, 05:35 PM
|
|
member
|
|
Join Date: Oct 2005
Posts: 35
|
|
Quote:
Originally Posted by eke-eke
about the timeout, I used this and this work well:
WPAD_SetSleepTime(60);
on reconnection, IR tracking is disabled so you have to manually enabled it again
current libogc implementation "seems" to be rather stable (I mean I didn't encounter any random crash during the few hour I tested my apps) but you never know
|
Is there a way to re-enable IR tracking? I'm having this issue in my game, thanks!
|

05-29-2008, 09:14 PM
|
 |
mad poster
|
|
Join Date: Mar 2008
Posts: 173
|
|
Yeah... another icon for the homebrew channel thing... Just wanted people to have more than one option. Also, I'm going to play this today 
__________________
the way I type is the way I talk.. and if there is a typo, then there was a typo in my brain/mouth.
peace & love & world domination
|

05-29-2008, 09:55 PM
|
|
finish him
|
|
Join Date: Mar 2006
Location: Toulouse, France
Posts: 982
|
|
Quote:
Originally Posted by scognito
Is there a way to re-enable IR tracking? I'm having this issue in my game, thanks!
|
see WPAD_SetDataFormat function in wpad.c, I am calling this at init and then each time I leave the menu (in case wiimote would have been reconnected)
|

05-29-2008, 10:28 PM
|
|
new member
|
|
Join Date: Oct 2007
Posts: 10
|
|
I actually put this all together earlier if anyone wants it. Updated Readme and whatnot. Also, my own custom icon.
http://www.mediafire.com/?leixsddrxxx

As simple and weird as the icon looks, it actually looks nice in the Homebrew Channel.
|

05-30-2008, 03:42 AM
|
|
new member
|
|
Join Date: Apr 2008
Posts: 3
|
|
i hate to ask im a noob and bad with computers is there any way someone could upload a version that has the saves fixed i tryed for 3 hours and what ever i did it tells me not a valid wii app Thankx
|
 |
|
 |

05-30-2008, 04:47 AM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
Quote:
Originally Posted by RustyNathan
Actually I will help out, tell me what you need me to do, I am a little new to wii probraming, but I will try my best. I will send you a P.M with my Gmail.
|
I would really need some help to port the OpenGL renderer to GX so we can make full use of the Wii. Your USBGecko filesystem for quake-gamecube would be nice too.
Quote:
Originally Posted by eke-eke
about the timeout, I used this and this work well:
WPAD_SetSleepTime(60);
on reconnection, IR tracking is disabled so you have to manually enabled it again
current libogc implementation "seems" to be rather stable (I mean I didn't encounter any random crash during the few hour I tested my apps) but you never know
|
I had seen this function but forgot completely to try it with high values, thanks for the confirmation.
Quote:
Originally Posted by scognito
Is there a way to re-enable IR tracking? I'm having this issue in my game, thanks!
|
Quote:
Originally Posted by eke-eke
see WPAD_SetDataFormat function in wpad.c, I am calling this at init and then each time I leave the menu (in case wiimote would have been reconnected)
|
What I do is check if the wiimote is synced every frame (with WPAD_Probe) and if it is not, call WPAD_SetDataFormat the next time WPAD_Probe is successful.
Quote:
Originally Posted by bgorman
i hate to ask im a noob and bad with computers is there any way someone could upload a version that has the saves fixed i tryed for 3 hours and what ever i did it tells me not a valid wii app Thankx
|
Have you tried the .elf or the .dol? Homebrew Channel Beta 7? Another loader?
|

05-30-2008, 04:58 AM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
I've just uploaded a new version to http://code.google.com/p/quake-gamecube/
Changes from the last WIP:
-Fix the reset buton mistake.
-Fix off-screen-wiimote aiming issues.
-Exiting the game wii now return to the loader.
-Reenable game and config saving/loading.
-Fixed bug when a wiimote disconnects during the game, better wiimote connection handling overall.
-Metroid Prime 3-style aiming and shooting.
Known bugs: The nunchuk isn't detected/used when loading from the homebrew channel (possibly other loaders as well.) To fix this, just disconnect and reconnect the nunchuk (or resync the wiimote, but it takes longer.) The nunchuk is detected fine if you sync the wiimote in-game or quit to the homebrew channel and reload the game.
|

05-30-2008, 05:16 AM
|
|
finish him
|
|
Join Date: Mar 2006
Location: Toulouse, France
Posts: 982
|
|
Quote:
|
Metroid Prime 3-style aiming and shooting.
|
this is awesome, thanks a lot
Quote:
|
Known bugs: The nunchuk isn't detected/used when loading from the homebrew channel (possibly other loaders as well.)
|
have you tried WPAD_Shutdown() before WPAD_Init (no sure about this, the old wiiuse port had this issue also) ?
Quote:
|
Originally Posted by PeterM
The author of this port has become a registered WiiWare developer and cannot continue with Quake
|
well, congratulations to you too 
|

05-30-2008, 05:29 AM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
Actually, I call WPAD_Disconnect() for all four wiimotes, will try calling WPAD_Shutdown()
I've also started to port quake's berkeley sockets network driver to libogc's implementation, some functions are still missing but it seems that it will be possible to connect and play a game, let's see if it is really possible to do it now.
And congratulations to Peter, I forgot to say that 
|

05-30-2008, 05:48 AM
|
|
mad poster
|
|
Join Date: Feb 2008
Location: Florianópolis, Brazil
Posts: 101
|
|
It didn't fix the issue 
When I load it for the first time, the wiimote led goes off, then on again, without the nunchuk. And the nunchuk is detected fine if I exit to the loader and reload the game
New info: Cold-booted the Wii, loaded The Homebrew Channel and let the wiimote timeout, then sent the game via wireless. Worked fine.
It really seems to be a issue with the WPAD interface or The Homebrew Channel.
Last edited by eluan; 05-30-2008 at 05:50 AM..
|

05-30-2008, 06:21 AM
|
|
mad poster
|
|
Join Date: Mar 2008
Posts: 142
|
|
Working great for me, loaded via the homebrew channel. The new aiming is amazing. I wouldn't change it at all. Thanks to all involved.
|
 |
|
 |

05-30-2008, 07:01 AM
|
|
finish him
|
|
Join Date: Mar 2006
Location: Toulouse, France
Posts: 982
|
|
the nunchuk analog stick seems to act weird sometime, here's the functions I added for reading the Sticks values like the old PAD_ library, maybe you would find this useful:
Quote:
#define PI 3.14159265f
static s8 WPAD_StickX(WPADData *data,u8 which)
{
float mag = 0.0;
float ang = 0.0;
switch (data->exp.type)
{
case WPAD_EXP_NUNCHAKU:
case WPAD_EXP_GUITAR_HERO3:
if (which == 0)
{
mag = data->exp.nunchuk.js.mag;
ang = data->exp.nunchuk.js.ang;
}
break;
case WPAD_EXP_CLASSIC:
if (which == 0)
{
mag = data->exp.classic.ljs.mag;
ang = data->exp.classic.ljs.ang;
}
else
{
mag = data->exp.classic.rjs.mag;
ang = data->exp.classic.rjs.ang;
}
break;
default:
break;
}
/* calculate X value (angle need to be converted into radian) */
if (mag > 1.0) mag = 1.0;
else if (mag < -1.0) mag = -1.0;
double val = mag * sin(PI * ang/180.0f);
return (s8)(val * 128.0f);
}
static s8 WPAD_StickY(WPADData *data,u8 which)
{
float mag = 0.0;
float ang = 0.0;
switch (data->exp.type)
{
case WPAD_EXP_NUNCHAKU:
case WPAD_EXP_GUITAR_HERO3:
if (which == 0)
{
mag = data->exp.nunchuk.js.mag;
ang = data->exp.nunchuk.js.ang;
}
break;
case WPAD_EXP_CLASSIC:
if (which == 0)
{
mag = data->exp.classic.ljs.mag;
ang = data->exp.classic.ljs.ang;
}
else
{
mag = data->exp.classic.rjs.mag;
ang = data->exp.classic.rjs.ang;
}
break;
default:
break;
}
/* calculate X value (angle need to be converted into radian) */
if (mag > 1.0) mag = 1.0;
else if (mag < -1.0) mag = -1.0;
double val = mag * cos(PI * ang/180.0f);
return (s8)(val * 128.0f);
}
|
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
All times are GMT -4. The time now is 06:12 PM. |
|
|