Some questions about endianness and rgb (Quake)

Post Reply
yummt
Posts: 4
Joined: Fri Mar 08, 2024 4:24 am

Some questions about endianness and rgb (Quake)

Post by yummt » Sat Apr 20, 2024 4:55 pm

Hello,

I've been working on the QuakeGX port and ported over some features from better engines such as HLBSP, Skybox, Fog(I have a lot of questions about fog but I'll save that for later) and now I'm working on porting colored lighting.

https://github.com/tyleryoung88/QuakeGX-Wii

It's been a process for me to port over these features, and along the way I encountered dealing with endianness of the Wii, I have never worked with a Big Endian machine so this was new to me.

It started with half life textures. At first they were red, I eventually realized the RGB values were flipped. So after flipping the rgb values the textures loaded properly. Then encountered the same problem with skyboxes. Every image I loaded into system memory had flipped RGB values. I was able to fix this by flipping the byte order of the entire image after it was loaded into memory.

Now, I'm working on porting .lit support to the engine, and expanding the white light to 3 color RGB. Behold, when I load a lit file and expand the color, the RGB values are flipped yet again.
However, this time I'm not able to flip them back for some reason. I've tried to reverse the byte order of the lit data,but that didn't do anything. I can't seem to extract the correct RGB values from the data, and I'm not sure where to begin. HalfLife lightmaps are also loading into memory incorrectly. I'm not sure if it's related to all of this.

My question is, why is this happening? Is it because of the endianness of the machine, or is it that Wii reads RGB as BGR somewhere in the pipeline?

Has anyone else encountered these issues? I can't find much of anything on the internet. I've researched the Wii as much as I possibly can, used multiple search engines, even found the sdk kit and read through documentation and examples there. At this point I'm stumped and just hoping someone else could have some more understanding of what's going on here. What gives..?

Thank you for taking the time to read this! Cheers.

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests