gotta love that MAC interface.
Sounds cool. wasn't there something similar to this for the PC, called KOSine? But I don't think it had the PVR emulation incorporated into it.
I was debating with myself whether this should go in the PC/Mac emulator section or the development section, but I figure in the long run it's a lot more applicable to the latter... so here it is
For those who aren't on the KOS devel list, I've been working on a "port" of KOS to Mac OSX. It started out as a port of Parallax, my DirectX-like graphics lib I've used for FoF and future projects. It's evolved a little past that though, and when it's more complete it may be a very interesting way to dev for the DC without most of the normal pains of cross-compiling and debugging.
It uses OpenGL to emulate a PVR (approximately) and will soon emulate the snd_stream and sndsfx_* APIs using CoreAudio. I've got an OGG player going, just haven't integrated the thunking functions in yet.
I've been able to get it running about 4 Parallax demos and 1 Tsunami demo so far, with more on the way. Some screen shots in case anyone is interested:
http://gamedev.allusion.net/softprj/parallax/osx/
I'll be posting all the code for it when it's a little more complete as well, and some of it will be integrated back into the trunk since it's beneficial even for DC (like endian-agnostic font loading for Parallax).
I should also say that it's not out of the realm of possibility that someone could take this and make it a basis of a Win32 KOS port. You'd have to rip out some of the "boilerplate" code, the audio code, etc... but it'd probably be easier than starting from scratch.
Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
gotta love that MAC interface.
Sounds cool. wasn't there something similar to this for the PC, called KOSine? But I don't think it had the PVR emulation incorporated into it.
Yeah, I remember KOSine. It was a little different though, I think the goal there was to actually make it where you could more or less compile KOS programs without changes and have them run. My efforts aren't focused on that as much as on speeding the ports of the 3D and sound, and soon the controller inputs. Which covers the bulk of the code in an average game anyway.
In KOSX I'm not providing a PVR compat layer really, it's a Parallax port. Parallax is very similar to the PVR API but it's got some important differences that factor out some of the DCisms.
A lot of KOSisms like the threading functions are defunct now anyway -- you can now use pthreads (or a lot of them anyway) in the latest KOS. Just wish there was an easy, portable way to hijack libc functions like fopen consistently... one of the pieces I'd really love to port over is the VFS :\
Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
would this enable mac users to code for Dreamcast or is it to enable KOS to have Mac Releases.
sorry if i misunderstood the topic :P
been a long day
[quote author=Vorrtexx link=board=Dev;num=1101259752;start=0#1 date=11/25/04 at 07:59:59]gotta love that MAC interface.
Sounds cool. wasn't there something similar to this for the PC, called KOSine? But I don't think it had the PVR emulation incorporated into it.[/quote]
Yes - KosINE was the thing I was working on - and, as Dan says, it was mainly intended to allow for re-compilation of DC apps for the PC.
BlackAura was taking it one stage further a while ago - not sure what happened to that project.
Read my blog: http://unrational.blogspot.com
KOSX is mainly a porting tool for getting DC programs over to OSX in a reasonable amount of time. But by "reasonable" I mean "if written correctly, instantaneously", so one can do most or all of the development work for a game or app on a Mac, and then recompile under regular KOS to get DC support.
It's not quite so straightforward or easy as that of course...But that's the theory.
I now have the snd_stream and oggvorbis functions ported over to the newest version. If the previous screen shots didn't set anyone on fire, try these
http://gamedev.allusion.net/softprj/parallax/osx/fof/
EDIT: Err.. I should also say, since screen shots don't have sound, that these also have proper audio as well. Not 100% smooth and still has some GL artifacts (see the logo screen) but getting there!
Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
I've posted 9 more screen shots to the above URL that show pretty much all of FoF working almost flawlessly. The biggest problems remaining now are weird GL translucency layering bugs. It has full bgm and sound effect support now, and is actually playable on typing mode. I'm going to have to go back and add in some code to let you play normal controller mode with a keyboard since I don't have any sort of joystick, pad, or controller to test it with
Anyway, as a proof of concept, I'd say this KOSX thing is almost ready for a preliminary source posting
Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
Looks awesome! I guess I'll look into switching to parallax sooner than I thought.. hehe
-Sam
I miss the red / green / blue buttons from the cocoa OpenGL example :P I was looking at the original in XCode today while trying to make DCSquares more "maccy". Now I have a menu bar, and an option that pops up an alert panel! w00t! Obj-C is scary, i've never seen so many []'s before :-/
Heh, I tried to get the OpenGLView to work with the new method of driving the window but it wasn't giving me any love.
I agree about ObjC. I used to really like ObjC back when all we had was C and the bad old almost-original C++ dialect. I played around with it quite a bit under Linux. In some ways it is still highly superior to C++, but it's showing its age. For example there is no automated garbage collection and no way to emulate it. In C++ you can at leasy use auto-destructing smart pointers and such, but in ObjC all you have is 'autorelease'. I'll give them that they have ref counting in NSObject (the main base class) but the way they handle the actual garbage collection is to create an AutoreleasePool around usages and release everything that's marked autorelease. Like taking a sledge hammer to fix a watch or somethingThere's like a 10-20 line doc about the semantics for memory management in ObjC, and I'm sorry but you just shouldn't need to worry about that sort of thing in a modern development environment.
And exceptions only make it worse. I hear that they have some weird special case rules where if you throw an exception, it'll release AutoreleasePool objects when it unwinds the stack, but nothing else.
I dunno though, I just use it to set up and get out as quick as possible into C++ land. That and for input event handling. KOSX actually has a full maple-compatible system
Cryptic Allusion Games / Cryptic Allusion, LLC
http://www.cagames.com/
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks