It looks like Homeworld was a good idea. The game has an almost complete support for big endian platforms. It only took me an afternoon to get a working version. Not everything is perfect though, there's no sound, saving/loading is broken and there are some graphic glitches in the menu. It's unlikely that I can fix the latter, so I appriciate any help from the Warp3D/MiniGL guys. Once I fixed the former issues I'll upload the game for testing.
This is just like television, only you can see much further.
Good for you, but I'm talking about the the OS4 port I'm working on, not the MorphOS version.
edit: A small update: the Save/Load issue only happens with saves from the tutorial mission. It's not OS4 specific, I had the same issue on Linux too. Since the tutorial isn't very long I might leave fixing this to later. This leaves me with the no sound issue.
Edited by BSzili on 2014/4/20 13:04:46
This is just like television, only you can see much further.
More updates on Homeworld. Since the fix was simple enough, I've dealt with the save game issue on the tutorial mission. The sound is mostly working too, after I fixed the endianness issues. They have just disabled it for the PPC Mac build.. neat. There's one remaining issue, the sound mixer thread won't stop at exit. After I've dealt with this one, I'll upload a debug build for testing.
This is just like television, only you can see much further.
Either way here's a debug build for testing: http://bszili.morphos.me/ports/homeworld-os4.lha It's full of debugging junk, so it's going to be slow. This is not the final version! If you want to test it, you need the data files (Update.big, HW_Music.wxd, Homeworld.big, HW_Comp.vce) from Homeworld patched to v1.05.
edit: Reuploaded the archive with a couple of bugs fixed: no speech, audio crackling, startup in window mode only.
Edited by BSzili on 2014/4/21 17:25:22 Edited by BSzili on 2014/4/22 8:58:08
This is just like television, only you can see much further.
@BSzili Tested on peg2/real warp3d : so far all seems works, and sound, and window (default) and fullscreen when specify /fullscreen (fullscreen also seems faster with same settings). Sounds also works, run/quit works without crashes, etc.
The only problems i notice is those missing triangles. They happens and when loading screen , and , when i just start mission, rotate a bit in few sides, and then press "esc" for options.
I know about the missing triangles. I have the same issue, but I don't know the dos and don'ts if MiniGL, and the same code works on MorphOS, Linux, etc. Unless someone knows how to debug this, it's going to stay this way. You were lucky not to get any crashes, the code which picks random unit sounds is broken. Eventually it will pick a huge value for the variation, try to play a non-existent sound, and crash. I more or less fixed it, but I still have no unit sounds, so it needs some more work before I upload it.
edit: Contrary to my previous post, the debug versions are hardcoded to run in a window, so I can always see the console output.
This is just like television, only you can see much further.
I know about the missing triangles. I have the same issue, but I don't know the dos and don'ts if MiniGL, and the same code works on MorphOS, Linux, etc. Unless someone knows how to debug this, it's going to stay this way.
What type of primitives is it rendering at that point? How is it being rendered? Using vertex arrays?
MiniGL can be compiled with debugging output enabled. The debug output does slow things down a lot, though. With simple scenes it can give you an idea as to what's going on. Personally, I prefer trying to isolate the source code in the game/app, but compiling a debug version is an option. You can do this by checking out the code from the svn. See this page for the svn's URL.
@Hans Thanks, I'll try to build a debug version of MiniGL if everything else fails. The loading screen uses glDrawArrays, which is kind of a waste for a single quad. Here's the code which does the loading screen:
I tried running the game using a debug build of minigl, but all the debug output slowed things down to a crawl. I couldn't even pick an option from the menu. Before I start to cherry-pick which prints I want from the library, I'll wait for Hans' answer, maybe there's some obvious problem with the way HomeWorld renders the 2D primitives.
edit: These random unit sounds are starting to really piss me off. After a few instances it thrashes the mixer's memory, what a mess. No wonder they didn't bother fixing the sound engine for the PPC Mac port.
Edited by BSzili on 2014/4/22 20:05:59
This is just like television, only you can see much further.
I suspect that backface culling might be misbehaving. It may be treating one triangle as being clockwise and the other as being anti-clockwise. If so, then this is a MiniGL bug that needs fixing.
Are you sure that you have the right function now? Kas1e's screenshot #1 has the triangle edge going from bottom-left to top-right, but that code renders it the other way roung (top-left to bottom-right).
Also, the background on the menu screen is fine; it's the menu itself that's messed up.