[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Descriptive Modding: The PSP Engine

Descriptive Modding: The PSP Engine

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

Moderator: InsideQC Admins

Descriptive Modding: The PSP Engine

Postby Baker » Tue Jan 12, 2010 5:16 pm

I've been examining the PSP Quake engine and the Kurok engine and testing features and looking at various things ...

Here are some notes about the experience using the Sony Playstation Portable with Quake and/or Kurok.

and point out differences and making notes:

Image

The PSP

The PSP needs hacked to run Quake. Generally you buy a Pandora battery and it comes with instructions on how to do this. That isn't so hard. I bought mine from here for $24 +/- ( http://www.pandorasales.com/ )

The PSP has a small "memory stick" and with a USB to 5-pin cable plugged into the PSP, you can use it like a USB thumb drive.

Image

To run Quake or Kurok, you access the memory stick in the menu under Games and select the game and press "X".

Note: Whatever command line you want to use is controlled by a cmdline file.

Input

The Sony PSP runs Quake very well. It's like a mini-laptop. Since I'm also writing this for the benefit of people who don't have one.

Features:

1. No keyboard obviously
2. No mouse
3. Analog joystick built-in, effectively works as a substitute for the mouse.
4. Four directional buttons.
5. "Left" and a "Right" button at the top that you can't really see in a picture (sort of a Nintendo GameCube controller L and R buttons).
5. A set of 4 buttons: triangle, square, circle and cross ("X"). The Cross button is essentially Enter. The circle button is essentially escape. The Triangle button is often used for options.
6. Sound +/- buttons, start and select. And a couple of other ones.

Using the analog stick and whatever 4 directional buttons you choose to use for control, playing Quake on the PSP isn't bad at all. You won't be able to take on in nightmare difficulty settings but fighting the monsters on easy is fine. Navigation is sub-mouse ease of use, but due to the analog stick, you can get around quite well.

Experience

Console. The Sony PSP has no keyboard but Kurok has a popup keyboard. It works, is functional but is not convenient but far better than no ability to type letters at all. Every PSP engine desperately needs a command history like JoeQuake (and Qrack and ezQuake).

Network. I connected Kurok to my PSP and vice-versa. Works both as client and as server. No current PSP engine is NAT fixed. The PSP has wireless and only wireless; wireless uses routers; routers use NAT. Ugh! (). Desperately needs a server browser for sure (a is a good start, but that'll suck quick enough.) Fortunately, there is libcurl for the PSP so a type server browser should be within reach.

Image

(But unlike DarkPlaces and Quakeworld's true serverbrowser via heartbeat, the ProQuake 4.10 draws from a URL and actually requires infrastructure-- aka it pulls from the QuakeOne.com server feed developed by ).

Music. Kurok has MP3 support via hardware.

Network Notes. The Sony PSP can either connect PSP to PSP or via a wireless access point (your router) via "Infrastructure". Kurok has a nice little built in thing to active this.

Graphics

It looks like GLQuake and you wouldn't be able to tell the difference. Except the resolution is going to be 480x272.



The Differences From a Code Standpoint

Different floating point math functions, uses PSPGU instead of OpenGL, you have about 20 MB to play with on the PSP 1000 series since it has 32 MB but about 12 MB is overhead. The 2000 series "Slim" has 64 MB total so maybe about 40-50 MB.

Texture memory is a concern. I noticed in Kurok it deletes unused textures on each new level. Not surprising.

Input controls obviously. The network code is Linux-like/OS X-like in the non-operating system specific parts, obviously.

Other than that, is for me (as someone who likes Windows the best for coding due to and hating OS X cursor keys) is easier with the PSP in Cygwin than anything short of MSVC6.

No doubt some PSP by-products will be forthcoming soon. Plus I'm going to help the make their engine available in the same or similar form on Windows [Mac OS X version will probably automatically happen too] and I intend to hit ProQuake then Kurok and then Solitude to do this in the best manner.
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 12, 2010 8:43 pm

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 12, 2010 8:44 pm

Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Baker » Tue Jan 12, 2010 11:17 pm

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 12, 2010 11:58 pm

Last edited by Team Xlink on Tue Jan 19, 2010 9:19 pm, edited 1 time in total.
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Baker » Wed Jan 13, 2010 12:04 am

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 » Wed Jan 13, 2010 12:18 am

Last edited by Baker on Wed Jan 13, 2010 12:51 am, edited 1 time in total.
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 13, 2010 12:33 am

Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby Baker » Wed Jan 13, 2010 12:44 am

Revision 3: ()

FitzQuake style cvar system with operator callback, sorted cmdlist and cvarlist.

Operator callback is very important, without it you have to write a lot of crappy little places to detect if a cvar has changed.

Plus the FitzQuake style cvar system actually allows you to have the "Reset to Defaults" in the menu actually do exactly that. As far as I know, the only NetQuake that resets all cvars properly to the default value as specified in the quake.rc values is DarkPlaces. Well, and after discovering that ... ProQuake 4.

@XLink: I'll take a look at the Adhoc support, but ironically have no way of testing it since I don't have 2 PSPs :? Would you have the ability of testing Adhoc support?

(For those that don't know, Adhoc network support allows 2 PSPs to play each other peer-to-peer without the need for a wireless access point.)
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 13, 2010 12:49 am

The Adhoc support fully works.

All changes are commented except for the makefile (reason stated above) and two files were renamed, the infrastructure files were renamed to network.psp because it is no longer just for infrastructure.

Also, you can play adhoc with more then two PlayStation portables.

EDIT: Well I was going to wait until you reply to post more stuff but I will just edit this post.

I have tested the adhoc support and it fully works.

I have noticed you are using Quakev2 as your base, I noticed thsi because of the lack of the osk code in the engine.

You see, even tho the onscreen keyboard isn't that good and efficient, it is a must and a modder and a person who wants to do any console commands must have some way of test input.

As for this, if I setup an svn somewhere mind if I upload each source base separately so its easy to keep track of the changes?

The problem I for see is this:

Somewhere down the road someone is going to find this thread and want the source code in an svn way, some of these links might be dead or this may be long forgotten or surpassed by greater things for the same concept.

Also, since you plan on finishing this project tonight, do you mind if I continue to work on it after your done?
Team Xlink
 
Posts: 368
Joined: Thu Jun 25, 2009 4:45 am
Location: Michigan

Postby MDave » Wed Jan 13, 2010 3:24 am

User avatar
MDave
 
Posts: 76
Joined: Mon Dec 17, 2007 7:08 pm

Postby Downsider » Wed Jan 13, 2010 3:32 am

User avatar
Downsider
 
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Postby Baker » Wed Jan 13, 2010 3:46 am

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 » Wed Jan 13, 2010 5:40 am

Revision 4:

Revision 5:

Revision 6:

Some of this is coming along slower than I would prefer. Mostly because I ended up with an unexplained "blackscreen" boot with a revision when I made seemingly a trivial change [twice as odd that I have a version with the change from last week that runs fine].

Oh well ... that's how it goes sometimes ... I'm sure as I proceed that little mystery will unravel itself.
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 r00k » Wed Jan 13, 2010 5:54 am

Oh sweet! PSPQrack! :P

R_simpleitems style 24bit hires sprites, remake of original quake models.
r00k
 
Posts: 1111
Joined: Sat Nov 13, 2004 10:39 pm

Next

Return to Engine Programming

Who is online

Users browsing this forum: No registered users and 1 guest