PDA

View Full Version : [porting suggestion] Quake 3 for PSP-Slim (with 64Mb RAM)?



Be3f
September 11th, 2007, 07:43
Finally, PSP-Slim (PSP-200X) is avaluable and it runs homebrew - my congratulations to Team C+D (for the Magic Battery) and to Teem m33 (for the Custom Firmware v3.60)! As you know, slim has 2X more main RAM, than "fat" (PSP-100X) - 64 Megs!

Low RAM (32Megs of system memory with only 24Megs avaluable for programms) was the bottleneck of the PSP-100X, that left no chance to port such huge games as Quake 3 to PSP, but now i can't find any reason, that makes Quake 3 port for the PSP-Slim (only) impossible!
McZonk's Quake-2 PSP port seems to run full singleplayer game on Slim too... :rolleyes:

So, does Slim has 56 free megs of the user memory (64 system - 8 Mb kernel memory)?

I've posted this once at the qj forums, just copy-paste here:

I already have a portable Quake 3 on my PocketPC (Dell Axim x51v) - Q3 was ported to WinCE in 2005 by NoctenWare (port is called Q3CE), it features both software and hw rendering (uses OpenGL-ES) - runs at ~15 average FPS on my x51v with max graphics (hardware rendering)... and it's package contains very interisting thing for us - pakconvert tool whitch reduces content in Quake3 *.PAK files: downsizes textures & gfx(2x), level & model geometry, converts sounds and videos to save RAM & increase perfomance - after running pakconvert scripts, main PAK0.PAK downsizes from 450 to 117 Megs and Q3CE runs on PPCs with only 36Mb free RAM! Also, Q3CE partitions memory automaticly, instead of original Q3 (and com_hunkMegs & com_zoneMegs commands do not work in it...).

This is how Q3CE accelerated runs on my PPC:

http://img341.imageshack.us/img341/1961/q3x51veb0.jpg
(Q3DM3 map, 2 bots deathmatch, max graphics (but downsized data), 19 FPS at the moment)

Unfortunetly, NoctemWare website (noctemware.com) is currently dead, but you can find some info about Q3CE on it's offical forum:

http://www.pdaground.com/forum/viewforum.php?f=14

...and download Q3CE v1.1 with sources there, will be useful ;)

yaustar
September 11th, 2007, 09:36
The 64mb increase of 'ram' is the flash memory not system RAM.

Be3f
September 11th, 2007, 10:18
The 64mb increase of 'ram' is the flash memory not system RAM.
I'm not sure, but different news sites say, that PSP-200X has both 64 megs RAM (implemented for cashing more data from UMD) and 66Megs NAND flash (for more advanced firmwares) :confused:

yaustar
September 11th, 2007, 10:50
Ah, my bad, I misread the Wiki's description: http://en.wikipedia.org/wiki/PlayStation_Portable_Slim

Be3f
September 11th, 2007, 11:39
BTW, there are currently some problems with allocating extra memory :( Quote from jimparis (ps2dev.org forum):

Development for the Slim and 3.60 is largely the same. Since it's not 1.50 anymore, you'll want to set BUILD_PRX=1 and PSP_FW_VERSION=360 in your Makefile. Since the executable is now a PRX, the default heap size will be only 64kb and you'll want something like PSP_HEAP_SIZE_KB(25000) in your C file to give malloc() a bigger pool. The extra memory is located in a different partition as described here (http://forums.ps2dev.org/viewtopic.php?t=8932), which newlib isn't set up to use at the moment.
And from kururin:

So it seems at first the new partitions are for kernel mode use, but i guess they can be unlocked for user mode use with the SetDdrMemoryProtection function :)

PSmonkey
September 12th, 2007, 21:55
Wtf, I was just about to say this is not posible due to Q3 beefy use of memory (they had a bitch of a time getting it on the xbox 1 with 64mb of ram.

Is there source to this PPC port?

Be3f
September 14th, 2007, 08:03
Hi PsMonkey :)

Yes - source code is avaluable, but offical site is dead and i can't find the souces in the web using google... But i've sent a e-mail to the q3ce developer, hope he will reupload sources (he replied fast on my previous e-mails...). Btw i have sources of the old q3ce v1.0, but there is no so advanced memory optimisation.

Be3f
September 14th, 2007, 21:06
Finally he replied :thumbup:
Here's q3ce-v1.1b souce code:
http://www.filecrunch.com/file/~euhoj4
:cool:

PSmonkey
September 14th, 2007, 21:20
Finally he replied :thumbup:
Here's q3ce-v1.1b souce code:
http://files.filefront.com/q3ce+11b+srczip/;8553290;/fileinfo.html
:cool:

Thanks
^_^

Safari Al
September 14th, 2007, 21:23
soundds like it would work. If so then i need a slim :P

devdj
September 14th, 2007, 21:38
well they got quake 3 to run on the ps2 so it should be possible to either make a direct port or design a clone version of the original

Be3f
September 15th, 2007, 07:33
@PSmonkey
Ask Ubisoft Monreal to make an offical Q3 port on UMD ^_^

Be3f
September 15th, 2007, 07:35
P.S.

http://img406.imageshack.us/img406/1610/quakeumdiq2petov3.png

:rolleyes:

yaustar
September 15th, 2007, 15:50
@PSmonkey
Ask ******* ******* to make an offical Q3 port on UMD ^_^
When was that public knowledge?

PSmonkey
September 16th, 2007, 06:07
When was that public knowledge?

yeah (somewhat). I mention on my site I now work at ubi.


Anyways i'm currious to look but i dont think a port will be simple since it seems the extra 32mb is locked in kernal mode and might take some hacking to get access to (have to check with a few to see if they found a way to get the mem).

Still it's nice to see an optimised port of quake 3 thats more portable (old one was a mem hog).

Be3f
September 16th, 2007, 08:36
Anyways i'm currious to look but i dont think a port will be simple since it seems the extra 32mb is locked in kernal mode and might take some hacking to get access to (have to check with a few to see if they found a way to get the mem).

Well...

I talked to the guys, and they say they will avoid umdcache module loading when executing homebrew in a future revision. Good to hear, all memory available :)
More here (http://forums.ps2dev.org/viewtopic.php?t=8932)
Let's just wait for the next custom fw for slim :rolleyes:

Be3f
September 24th, 2007, 15:12
Finally, custom FW 3.71 is out and RAM partitions problem is over:

- Psp Slim: umdcache was allocating memory even when homebrew was launched, wasting
memory that homebrew programs may want to use. Now umdcache module is stopped before
it can allocate any memory, only in the case homebrew is launched.

Also, memory is unprotected for user memory usage by M33 core (only when homebrew is launched).
Developer, for a sample of how to use the extra memory, see the extra ram sample of the M33 sdk.

Included is a sample that uses the 32 MB of extra ram of the psp slim.

HardHat
October 6th, 2007, 05:36
Well, I took a quick look at the included COMPILING.txt, and it doesn't look promising to me. Specifically the fact that it requires memory mapped files to make it all work for us. PSP doesn't offer memory mapped files that I've seen, so that doesn't seem like a winner.

Also it doesn't use the VM to do mods. :-(

I'd rather work from the ioquake3 source from what I can tell, but I guess nothing is easy really.

silverstein101
October 8th, 2007, 02:32
quake three would be amazing on the psp. i'm learning how to code now, but its only in lua so i'm afraid i wouldn't be able to help much.