Forum

Descriptive Modding: The PSP Engine

Discuss programming topics for the various GPL'd game engine sources.

Moderator: InsideQC Admins

Postby MDave » Sat Jan 16, 2010 5:20 am

mh wrote:GLQuake is also incredibly wasteful on textures: it doesn't actually need to store the texels with the tx struct, so drop that. You'll need to use (byte *) (mt + 1) for your load texture data, as well as modify R_InitSky to take mt instead of tx.


The PSP port of GLQuake had a lot of totally rewritten code for handling textures and such, because of the large differences in how you have to handle memory on the PSP compared to a PC. Check this out, start from the middle of the file and go down from there, looks pretty alien like compared to PC quake code eh? :P

http://bladebattles.com/kurok/SVN/psp/v ... e_draw.cpp
User avatar
MDave
 
Posts: 76
Joined: Mon Dec 17, 2007 7:08 pm

Postby Baker » Sun Jan 17, 2010 1:20 am

Revision "KurokQuake 1": source

This is the first beta quality download in this thread ... except for "Revision 22" (except that doesn't have lightmaps). This source version actually has little to do with Revision 22; this one is a code-merge from the opposite side of the equation.

This isn't perfect: I need to remove the ProQuake aim stuff from Kurok (so I can add it back in later) to make it compatible with Quake servers for connecting [unless it somehow is, but it shouldn't be].

No one reading this thread will understand what I am doing here, and that's fine (because it only matters to me ;) ) but I'm spinning 3 or 4 slightly different engines together here with the goal of:

1. A final cross-platform ProQuake, so I can maintain the PSPQuake going forward with the minimum reasonable feature set ... which is mostly defined by Kurok.

2. An "add-on" define in the build to make a Kurok build from ProQuake on any platform. This will let me maintain a modified Kurok engine off the ProQuake build as I continually add features to ProQuake. Plus I want to see Kurok hosted on servers, so I am likely to have stealth Kurok support in ProQuake. And if I ever attempt to combine ProQuake and ZQuake (the Quakeworld engine) into a single engine ... maybe late the in year ... the modified Kurok engine can take that ride too automatically. [Did I mention I *really* like Kurok and all the ideas that MDave put into that? :P ]

/I never do anything strange to ProQuake, I'm very conservative. I largely focus on better multiplatform support and keep upgrading the guts of the engine to be "better" and occasionally add optional features to it or features that never interfere with backwards compatibility.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Sun Jan 17, 2010 2:30 am

Revision "KurokQuake 2": source

Can connect to regular Quake servers; NAT fixed.

Rather stable.

Now I should be able to more quickly integrate all of the rest of this together. The "revision 22" and this are sort of opposites of each other.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby ceriux » Sun Jan 17, 2010 5:07 am

is that quake 2? o.O or like an updated Kurok? the names a bit confusing.
User avatar
ceriux
 
Posts: 2223
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Postby Baker » Sun Jan 17, 2010 12:02 pm

ceriux wrote:is that quake 2? o.O or like an updated Kurok? the names a bit confusing.


PSPQuake drifting towards final goal ----> revisions 1 thru XXX
KurokQuake drifting towards final goal ---> revisions 1 thru 2 so far

I'm merging 3 engines together with ProQuake being the third, and then I'm going to try to merge some of more recent ProQuake builds together into a single project file with essentially the Kurok engine as an optional ProQuake type of build.

End result or perhaps I should say, eventual result: ProQuake on 5.2 platforms with identical features and Kurok on 5.2 platforms with identical features. (.2 = the two types of Direct3D builds supported: MH D3D8.1 and classic Direct3Quake style).

[No doubt it is the Solitude engine's destiny to become part of this as well].
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Jan 19, 2010 6:22 am

3rd Revision "KurokQuake": source

/Note: default the idlesway to off sometime
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Jan 19, 2010 9:02 am

4rd Revision "KurokQuake": source

More improvements. Working through some of the network code oddities of original Quake -- the mess of bad stuff in it.

Case in point, I connected to rage.quakeone.com with 3rd revision and voted practice-mode. This restarts the map, which causes a "reconnect".

Original Quake likes to do a reverse DNS lookup that takes 6 seconds (for what reason?).

In those 6 seconds, the Rage servers figures I'm not there and resets to default mode that occurs when all players leave. So I can't actually vote practice mode because it won't stay on.

And these great network code features of original Quake get ported to every platform every time. :D
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Jan 19, 2010 6:37 pm

KurokQuake repair dock:

1. Make Kurok's idlesway off by default.
2. Keep most of the float operations (these are mostly true optimizations) and move into ProQuake prime where applicable. Do them as defines to be able to change your mind on compilation if need be the case.
3. ProQuake actually had some sprintfs (I hate!); kill them all (except the complex one in networking).
4. Kurok's On-Screen Keyboard ... port it to ProQuake prime.
5. R&D fun for the future: make the lmp file for the on-screen PSP menu embedded into the engine and throw that into the PSP operating system files folder
6. Don't remove Kurok's texture manager or down-sample code, but remember it for in the future when you add a texture manager to ProQuake.
7. I like Kurok's Cvar_SetValue handling of int; keep
8. I've been using CRC on textures, Kurok uses lhsum. Use lhsum.
9. Kurok doesn't drop the loading screen when connected on a map change. Fixor.
10. Kurok doesn't stop MP3 playback on disconnect
11. Add command history to KurokQuake!
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Jan 19, 2010 7:04 pm

To MDave:

I have to say, looking through your engine code is a real pleasure.

Several times, I have found some code and wondered "what's that do" and then booted up Kurok to test it.

Maybe back in the golden days of Quake, people did things with the Quake like what you did ... but I personally have not seen a dedicated modified engine invested with as much of a strive for getting every little thing right as what you have done.

Case in point, the scr_disabled_for_loading to prevent the console from showing. I've run across several of these small tweaks that make Kurok such a great engine.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Baker » Tue Jan 19, 2010 9:18 pm

6th Revision "KurokQuake": source

This revision is pretty solid.

ip:port connecting works, NAT fixed.

Many more changes to go (still no ping in scoreboard) but this ProQuake/Kurok/PSPQuake 2.0 combo revision is very nice.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Team Xlink » Mon Jan 25, 2010 2:17 am

I thought I might mention this since you are using combining Kurok with it.

When you get to the end of a song the engine just locks up. I don't know why but I suspect it might still be trying to play the song when there are no bytes left to play. I am probably totally wrong about this.
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Baker » Mon Jan 25, 2010 2:39 am

Team Xlink wrote:I thought I might mention this since you are using combining Kurok with it.

When you get to the end of a song the engine just locks up. I don't know why but I suspect it might still be trying to play the song when there are no bytes left to play. I am probably totally wrong about this.


I noticed that too! :)

I have an informal list of little nagging things and that's one of them. There are some network things too.

A few more revisions and recombinations and a very solid PSP Quake engine will emerge with all of the advantages of Kurok and ProQuake. It's closing in.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Team Xlink » Tue Jan 26, 2010 1:34 am

Are you going to eventually completely combine the PSP Quake with ProQuake? I suspect you would achieve this by doing #ifdef PSP just like you do for the Windows, Mac OSX, and Linux builds.

Also, if that is the case after it gets fully integrated are you planning on doing more PSP specific parts or such continue working on ProQuake as a whole?

Thank you, I look forward to the next revision.
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Baker » Tue Jan 26, 2010 1:53 am

Team Xlink wrote:Are you going to eventually completely combine the PSP Quake with ProQuake? I suspect you would achieve this by doing #ifdef PSP just like you do for the Windows, Mac OSX, and Linux builds.

Also, if that is the case after it gets fully integrated are you planning on doing more PSP specific parts or such continue working on ProQuake as a whole?

Thank you, I look forward to the next revision.


I'm going for one engine, same features on all platforms with considerations for things that have to be different.

And then build on top of that. Haven't planned out anything beyond that. I'm getting closer.
The night is young. How else can I annoy the world before sunsrise? 8) Inquisitive minds want to know ! And if they don't -- well like that ever has stopped me before ..
User avatar
Baker
 
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

Postby Team Xlink » Wed Jan 27, 2010 9:31 pm

I found something when I was using your latest revision of this.

If you go into the console and push the right arrow it starts listing commands but if you push the left arrow it backspaces.

The PSP can't type so there is no need for the backspace because you have to call the on screen keyboard to type at all.

So why not make the left arrow cycle commands the other way so it would go to the previouse and the right arrow goes to the next (The right arrow already does this).
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

PreviousNext

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest