Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

PSP Quake 1

From GameBrew
Revision as of 02:39, 5 September 2024 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
PSP Quake 1
Pspquake1juraj.png
General
AuthorJuraj Styk
TypeShooter
Version1.1
LicenseGPL-2.0
Last Updated2008/01/14
Links
Download
Website
Source

This is a port of ID Software's Quake 1 to the PSP.

Based on PSP Quake port by Peter Mackay and Chris Swindle.

Features

  • Music playback through MP3 implemented with MAD audio library (can be switched on/off from options menu).
  • Software and Hardware rendering.
  • Single player game.
  • Sound.
  • Save/Load.
  • Console commands.
  • Command line params (through 'quake.cmdline' file).
  • Multiple screen resolutions in software rendering (through command line params).
  • User-made maps loading (from console or command line params).
  • User-made mods loading (through command line params).
  • Demo recording and playback (from console).
  • On Screen Keyboard (available from console and from text input boxes in Multiplayer menus).

Installation

Note: A shareware version or full retail copy of Quake is required to play. For running mods you will need files from full version of Quake.

Package options

Four different packages are provided.

  • PSP_Quake1_HW_KM.zip
  • PSP_Quake1_HW_UM.zip
  • PSP_Quake1_SW_KM.zip
  • PSP_Quake1_SW_UM.zip

Definitions:

  • HW - Quake client using hardware rendering.
  • SW - Quake client using software rendering.
  • KM - Compiled in kernel mode (kernel plugins like JoySens won't work).
  • UM - Compiled in user mode.

HW specifications:

  • Display resolution used: 480x272.
  • Default CPU clock is 222 MHz (can be raised to 333 Mhz from commandline).
  • Memory usage: 19 MBytes total (14 MBytes used for Quake heap).
  • Faster than software client.
  • Smaller Quake heap means worse mod compatibility then software client.
  • Transparent water in maps that support water transparency.

SW specifications:

  • Display resolution used: configurable (from command line) in range from 320x200 to 480x272 (default is 320x200 stretched to 480x272).
  • CPU clock is 333 MHz.
  • Memory usage: 19 MBytes total (17 MBytes used for Quake heap).

Instructions

Unzip the package PSP_Quake1_HW_UM (PSP_Quake1_SW_UM).

Copy the PSP_Quake1_HW_UM (PSP_Quake1_SW_UM) folder to the PSP/GAME folder on your PSP.

Copy the ID1 folder from the shareware or full version of Quake to inside your PSP/GAME/PSP_Quake1_HW_UM folder.

Create a file named quake.cmdline and put any command line params you wish to use there.

Music playback

If you want to use music playback in Quake 1, create a subdirectory named MP3 in the same directory as the ID1 directory.

Put files named 01.mp3, 02.mp2, 03.mp3 and so on into this directory.

(Any mp3 should work / tested with mp3 with constant bitrate of 96 and 192 kbps and sampling rate of 22khz and 44khz)

Using mods/data discs

Copy directory with mod files into the same directory as the ID1 directory.

Add command -game modname into quake.cmdline file where modname is the name of directory that contains mod files.

Using custom maps

Go to ID1 directory and create directory named maps there.

Put any map you wish to use into this directory (map files end with .bsp extension).

Add command +map mapname into quake.cmdline.

Alternatively you can load a map from quake console with map mapname command.

Water transparency

Quake client using hardware rendering can render transparent water however only on maps that are compiled with water transparency option. Maps compiled without this option (like original quake maps) must be reprocessed to make this feature work correctly.

For this you will need to apply 'vis' and 'bsp2prt' utility on each map. First you need to extract map files from pak file ( with PakExplorer or QuArK editor ) . Then apply first 'bsp2prt' and then 'vis' utility on map. After that use PakExplorer to copy updated map back into pak file.

'bsp2prt' and 'vis' are command line tools so run them from command line window or create batch file which will contain these two lines for each map you wish to process (e1m1 map in this case):

  • bsp2prt.exe e1m1.bsp
  • vis.exe e1m1.bsp

There are patches available for original quake maps as well as some user made maps that will add water transparency without the need to reprocess the map.

Patches and tools mentioned above can be downloaded from here for example.

Tested mods and maps

Tested data discs:

  • Dissolution of Eternity Data disc [Rogue]: works fine

Tested user created mods:

  • Frogbot bot: works fine with SW client but is unstable with HW client
  • DMSP mod: works
  • Prydon Gate mod: works
  • Operation: Urth Majik mod: works
  • The Cassandra Calamity mod: works

Tested user created maps:

  • Contract Revoked: works
  • Moonlight Assault: works
  • The Terracotta Terror: works with SW client (but not with HW client)
  • Fall Cleaning: works (Require raising value of r_maxsurf and r_maxedges in SW client)

(Works means that it did not crash while testing but was not tested very much.)

User guide

Command line options

If you want to start Quake with some specific command line options create file named 'quake.cmdline' in Quake directory (the same directory that contains eboot.pbp) and put command line option here. Examples:

-condebug -rwidth 368 -rheight 272 -swidth 368 -sheight 272 +map e1m1

(will start Quake in map e1m1 with console logging and with render and screen resolution set both to 368 x 272)

-cpu333  -gamedir ms0://Psp/Game150/PSP_Quake1_HW_KM

(will start Quake with cpu clocked to 333 MHz and instruct it to look for quake files in directory ms0://Psp/Game150/PSP_Quake1_HW_KM)

-game frogbot -zone 1024

(will start Quake with FrogBot bot)

-game rogue +map start

(will start Quake with Dissolution of Eternity data disk)

Extra command line options

  • rwidth
  • rheight
  • swidth
  • sheight
  • cpu333
  • gamedir

'-rwidth' and '-rheight' set resolution at which is game rendered internally (SW rendering only) (default: 320x200).

'-swidth' and '-sheight' set resolution at which is internally rendered image displayed (SW rendering only) (default: 480x272)

Any resolution between 320x200 and 480x272 will work as long both width and height is multiple of 8.

'-cpu333' will force game to run with cpu clocked to 333 Mhz (HW rendering only , SW rendering runs at 333 MHz by default).

'-gamedir' will make game to look for quake files in directory other then the current directory (both relative and absolute paths works).

Controls

The PSP buttons are connected to the following keys during the game and when the menu is shown, you will need to set to your desired action in the game options screen.

Select - Toggle console

Start - Show menu

Up/Down - Move forward/backward

Left/Right - Turn left/right

On screen keyboard:

Square - Activate OSK, finish typing and return to console

D-Pad - Select character

Cross - Type

Triangle - Erase last typed character

Circle - Cancel output and return to console

To input 'space', move cursor to empty space and press Cross (cursor will change to 'X')

Console:

Cross - Execute command

Right - Auto complete

L/R - Scroll console output up/down

Up/Down - Browser through previously entered console commands

Screenshots

pspquake1juraj6.png

pspquake1juraj4.png

pspquake1juraj8.png

Compatibility

Developed and tested on PSP with FW 3.40 OE.

Known issues

  • Some mods or maps might not work due to memory constrains or might not work correctly.
  • timerefresh command disabled in hardware rendering (stability issue).
  • Some maps require raising 'r_maxsurfs' and 'r_maxedges' to render correctly in SW client (can be done from command line or console).

Credits

Big thanks go out to:

  • ID Software, for releasing Quake source code.
  • Peter Mackay and Chris Swindle for creating PSP Quake port.
  • Underbit Technologies for MAD audio library and John_K for porting it to PSP.
  • Makers of PSPDev Environment for Win32.

External links

Advertising: