Quake 2 source code released..
-
- DCEmu Newbie
- Posts: 6
- https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
- Joined: Wed Oct 17, 2001 7:44 pm
- Has thanked: 0
- Been thanked: 0
Ouch, that's 6FPS optimised, and thats with a 206Mhz iPaq. To get it decent speed on Dreamcast would require hardware 3D. Not sure how many OpenGL features Q2 uses, but if its not many it might be able to run under KOS_GL or a future revision.From pocket Matrix board, post by Dan East(the one who ported it to PPC):
I estimate it's around 3 fps, but I expect that to at least double with optimizations, etc.
The only thing that might be a problem is the RAM requirements, 32MB. That may be because it was a windows app and had to fight with other programs and Windows, if so not much of a problem as KOS has very little overhead. If it was mostly for the engine and map, then that's a problem, as the DC has only 16MB of ram. Quake 3 had to use smaller maps to get around the ram problem.
-
- DCEmu Ex-Mod
- Posts: 198
- Joined: Wed Oct 17, 2001 7:44 pm
- Location: College Station, TX
- Has thanked: 0
- Been thanked: 0
- Contact:
I know it has nothing to do with anything but Quake 2 was ported to the Nintendo 64, a platform with 8MB RAM. Granted I think it was with a lot of pain and work, and I don't know how much of that port was based on the original engine code and how much of that port was just using the resources from the game. The case gets much worse when you look at the PSX port of the game.
-
- Psychotic DCEmu
- Posts: 597
- Joined: Thu Nov 08, 2001 10:21 am
- Location: Maryland
- Has thanked: 0
- Been thanked: 0
-
- DCEmu Newbie
- Posts: 2
- Joined: Mon Dec 31, 2001 12:42 pm
- Has thanked: 0
- Been thanked: 0
Quake for DC under Linux
Allright, knowing that more than likely this post will display my ignorance: Quake 2 has already been ported to Linux. There is a version(s) of Linux that can run on the DC. Thusly, would it be possible or more importantly, easier, to run Quake 2 on the DC under Linux than porting Q2 directly to the DC?
-
- DCEmu Respected
- Posts: 577
- Joined: Wed Oct 17, 2001 7:44 pm
- Location: Daventry, UK
- Has thanked: 0
- Been thanked: 0
- Contact:
-
- DCEmu Newbie
- Posts: 2
- Joined: Mon Dec 31, 2001 12:42 pm
- Has thanked: 0
- Been thanked: 0
-
- DC Developer
- Posts: 60
- Joined: Wed Oct 17, 2001 7:44 pm
- Has thanked: 0
- Been thanked: 0
-
- DCEmu Respected
- Posts: 577
- Joined: Wed Oct 17, 2001 7:44 pm
- Location: Daventry, UK
- Has thanked: 0
- Been thanked: 0
- Contact:
-
- DCEmu Junior
- Posts: 46
- Joined: Wed Dec 05, 2001 5:47 pm
- Has thanked: 0
- Been thanked: 0
-
- DCEmu Cop
- Posts: 466
- Joined: Wed Oct 17, 2001 7:44 pm
- Location: Australia Mate!
- Has thanked: 0
- Been thanked: 0
crt0 claimed on consolevision once that he wont port Quake 2.
Although I'd love to see it done, I have severe doubts, considering the original Quake was ported by a proffesional devving team, and met the DC's ram limitations.
Although I'd love to see it done, I have severe doubts, considering the original Quake was ported by a proffesional devving team, and met the DC's ram limitations.
Spiderman! Spiderman! Friendy Neighbourhood Spiderman!
Spins a web... any size..... catches thiefs, just like flies!
WATCH OUT... here comes the Spiderman!
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
In theory, Quake 2 should be portable. I ported it to a PC OS in a few hours. Okay, it's unplayable (no controls) but it seems to work fine. Catch it that, while it would run as a direct port, it would be slow, difficult to play, and have over half of the good features (mod support, network, sound, speed, graphics quality) removed or disabled. You would have to use the DC's 3d hardware, and that would take a long long long time. The OpenGL rendering stuff is really complex, and I can't understand 50% of it. Some OpenGL/Dreamcast guru could probably do it.
That's bad news, probably means direct porting to KOS_GL isn't feasible. Maybe a kind 'wrapper' that uses the KOS_GL features when availible and using OS-Mesa for the other stuff (since OS-Mesa is nearly a full OpenGL implementation, though slow) would be possible.The OpenGL rendering stuff is really complex
-
- DCEmu Cool Newbie
- Posts: 11
- Joined: Wed Nov 14, 2001 9:50 am
- Location: UK
- Has thanked: 0
- Been thanked: 0
- Contact:
Ive just read through some of the code, the only assembler code is for making performance counters from the CPU, the rest is procedure based C code, which would port very nicely.
Quake2 originally supported OpenGL, a software renderer, MiniGL for 3dFX and PowerVR. There is no 'complex' opengl stuff in there, OpenGL is actually a simple to use 3D API and changing the code to KOSGL would not be hard, but there might be some features that Q2 uses in its OGL code that KOGL wont support.
If the code is ported to use OpenGL on the dreamcast it will run fine, look at Soldier of Fortune, thats a modified (to hell) quake2 engine called the Ghoul Engine.
Quake2 originally supported OpenGL, a software renderer, MiniGL for 3dFX and PowerVR. There is no 'complex' opengl stuff in there, OpenGL is actually a simple to use 3D API and changing the code to KOSGL would not be hard, but there might be some features that Q2 uses in its OGL code that KOGL wont support.
If the code is ported to use OpenGL on the dreamcast it will run fine, look at Soldier of Fortune, thats a modified (to hell) quake2 engine called the Ghoul Engine.
-
- DCEmu Cool Newbie
- Posts: 13
- Joined: Sat Jan 05, 2002 1:31 pm
- Location: UK
- Has thanked: 0
- Been thanked: 0
hmmmmm
i think it is still possible, but like you all said.. heck a lot of pain..
no point dissin' it now. lets work, everybody!
(at least, i give my morale support!) :D
no point dissin' it now. lets work, everybody!
(at least, i give my morale support!) :D
i'm cool, especially when i want to be so..
[quote="Chimera-disKord"]
Ive just read through some of the code, the only assembler code is for making performance counters from the CPU, the rest is procedure based C code, which would port very nicely.
[/quote]
not quite eh. You opened the workspace in VC++ and took a peek yeah? :)
that timing code is the only inline asm, but if you look in the ref_soft project, about 25% is assembly. But even then there is (as sombody has already mentioned) a C equivalent for all of that. There is a #define somewhere which switches between the two. (I can't remember what. I just saw it mentioned on flipcode)
This is all pointless tho, because if you're going to port something to a system with a beasty 3d card... you may as well use the damn 3d card. And all of q2's 3d code is contained sweetly inside the ref_gl project.
Ive just read through some of the code, the only assembler code is for making performance counters from the CPU, the rest is procedure based C code, which would port very nicely.
[/quote]
not quite eh. You opened the workspace in VC++ and took a peek yeah? :)
that timing code is the only inline asm, but if you look in the ref_soft project, about 25% is assembly. But even then there is (as sombody has already mentioned) a C equivalent for all of that. There is a #define somewhere which switches between the two. (I can't remember what. I just saw it mentioned on flipcode)
This is all pointless tho, because if you're going to port something to a system with a beasty 3d card... you may as well use the damn 3d card. And all of q2's 3d code is contained sweetly inside the ref_gl project.
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
Right. I've worked out what you've gotta do. First, there is a MAJOR memory problem. I've got Quake 2 to use about 14.5 Mb of ram playing the first demo, but it peaks to about 25Mb while loading. It allocates a lot of extra space that it later frees. You'd have to optimize the whole thing for memory consumption using a PC and a blank port (which is a lot harder than it sounds. I've tried!). When you start the game, it jumps to about 20Mb. During loading, it hits nearly 32Mb. This is without sound, using the software rendering engine. I guess a lot of that is textures and wave files, which I think might still be loaded. You could use the 8Mb vid ram and 2Mb sound ram and free a few megs. Secondly, you have to re-write the whole rendering system. Quake 2 OpenGL uses a lot of tricks and functions that KGL does not support, and it uses Z-buffer tricks all over the place. A direct port is very hard/impossible. If you used a very well written rendering engine, and downsamples/stripped any extra data from the game, Quake 2 should be possible. Not for a long time yet, i guess.
-
- DC Developer
- Posts: 9951
- Joined: Sun Dec 30, 2001 9:02 am
- Has thanked: 0
- Been thanked: 1 time
It is possible. In fact, it could be done in a few weeks IF the dreamcast had 32 Mb of RAM. Alas, it has but a mere 16 Mb of main RAM, so Quake 2 will not load. At all. Not even a little bit. However, it should be possible with some MAJOR modifications to reduce RAM usage. Quake 2 is not very memory or space efficient: it was written to be speed efficient. If we were to sacrifice the loading speed and a few features in the name of memory consumption, it can be done. I'm just not sure how much of the Quake 2 engine would have to be remade before this could happen.
-
- DCEmu Respected
- Posts: 577
- Joined: Wed Oct 17, 2001 7:44 pm
- Location: Daventry, UK
- Has thanked: 0
- Been thanked: 0
- Contact:
-
- DCEmu Newbie
- Posts: 8
- Joined: Sun Dec 23, 2001 9:32 pm
- Has thanked: 0
- Been thanked: 0
- Contact: