⚠️ NOTICE #1: I am looking for the QC quake code source files to Halo Revamped (r17?) for N3DS! Without this, I must use decompilation of lost code to preserve the firefight features.
⚠️ NOTICE #2: This port is starting from scratch. See the original release here. The old version was built ontop of vitaQuake. While this new version is built ontop of Quakespasm-spiked.
QuakespasmSolitude is a port of Solitude for the vita, built ontop of Quakespasm-spiked (a Quake engine ported to Vita by Rinnegatamante). Solitude was originally made for the PSP and released in 2010 by FlamingIce. The forums went down and the game & assets became shareware. Since then several projects started with a goal of releasing on new platforms or improving the base game. This port is still a work in progress.
The goals of this project are to:
- Have fun.
- Make Solitude on PS Vita be a game we actually enjoy playing. Not just a demo of what is possible.
- Upgrade old PSP maps and create new maps. I want to have a solid map pack of maps we actually enjoy playing on.
Game | State | Started In | Last Update | Target Platforms | Authors | QuakeC Source | Engine Source |
---|---|---|---|---|---|---|---|
Solitude | 2008 | 2010 | PSP, Windows | FlamingIce | |||
Solitude Reborn | 2014 | 2018 | Vita | Jukki, Ghost_Fang, Dr_Mabuse | |||
Halo Revamped | 2017 | 2017 | 3DS | TCPixel | |||
(Quakespasm) Solitude Vita | 2020 | 2022 | Vita | mattthw |
**Once released publicly on now dead forums. Now shareware.
Search issues for existing bugs and feature requests before submitting a new one.
NOTICE: This game is not yet released. Consider these instructons for developers at this point in time.
- Download the latest release: releases
- Extract the archive
- Install
quakehalo.vpk
on the Playstation Vita - Copy the
/Solitude
folder to<ux0 or alternative:>/data/Quakespasm/
.- You will also need the original quake files or shareware files as a .PAK filetype inside
<ux0 or alternative:>/data/Quake/id1/
. You should be able to use the data files from VITADB for vitaQuake.
- You will also need the original quake files or shareware files as a .PAK filetype inside
The end result will look something like this:
/data/Quakespasm/
./id1/*.PAK # Legally acquired PAK files from original quake game
./Solitude/*
- Install the VitaSDK and set up building with the instructions here; https://vitasdk.org/
- Install VitaGL (https://github.com/Rinnegatamante/vitaGl) with "make" then "make install"
- Run the following command in this repository's
./Quake/
directory, which should produce a working quakehalo.vpkmake clean && make -f Makefile.vita && curl
- (Optional) After installing quakehalo.vpk for the first time, you can install the changes faster by enabling FTP on the vita then running:
curl --ftp-method nocwd -T ./build/eboot.bin ftp://<local IP of your vita>:1337/ux0:/app/SOLITUDE0/
- Install FTEQCC (mac) to compile or decompile QuakeC code.
- Navigate to the `qcc-src`` directory.
- run
fteqcc
command. - Copy
progs.dat
andprogs.lno
to your vita directoryux0:/data/Quakespasm/Solitude/
.
Example:
fteqcc && curl --ftp-method nocwd -T "/Users/matt_1/workspace/projects-vita/project-solitude/project-workspace/QuakespasmSolitude/{progs.dat,progs.lno}" ftp://192.168.50.148:1337/ux0:/data/Quakespasm/Solitude/ || fteqcc | grep -B 2 -A 2 "error"
- Skyboxes
- extract using SLADE
- place all 6 images under /gfx/env/. If they are called skybox-day_[left | right | etc].tga then set
sky
toskybox-day_
in trenchbroom's worldspawn entity.
- Download WAD pack for map editing
- Use Wally to edit textures and build/package/unpackage the WAD
- Quake Level Design Starter Kit
- Trenchbroom
- Quakespasm, alt silicon build
- ericw-tools
NOTE ericw-tools did not build for me on macOS 12.1 (Silicon). The issue was resolved by changing the build script: ericwa/ericw-tools#329
- quake-cli-tools: used for managing WADs
- pak: Add files to a PAK file.
- unpak: Extract files from a PAK file.
- wad: Add file to a WAD file.
- unwad: Extract files from a WAD file.
- bsp2wad: Create a WAD file from a BSP file.
- qmount: Mount a PAK file as a drive.
- image2spr: Create an SPR from image files.
- spr2image: Extract frames from an SPR.
- bsp2svg: Create an SVG file from a BSP file.
- For decompilation of maps, use WinBSPC, or bsp2map
- Parsing of old solitude maps
- Frank's Craptacular House of Mac Quake Stuffs - Tools for quake on macOS
- Marco's Quake Tools C programs for Targa <-> Lmp format
- the programs are rehosted in this repository under
/solitude/artwork
in case the website goes down.
- the programs are rehosted in this repository under
- https://quakewiki.org/wiki/Getting_Started_Mapping
- Map Icon creation:
- must be .tga and size 200x117. filename must match map name. Save from photoshop using Save as Copy... -> Targa ->
<mapname>.tga
- code in menu.c must be updated to use image and image must be placed in
Solitude/gx/maps/
- must be .tga and size 200x117. filename must match map name. Save from photoshop using Save as Copy... -> Targa ->
- Frikbot waypointing
- How to take screenshots (so I remember later):
r_drawviewmodel 0;viewsize 120;fov 120;noclip 1;crosshair 0;bind , screenshot
Note: you must launch trenchbroom from the terminal with command
cd /Applications/TrenchBroom.app && ./Contents/MacOS/TrenchBroom
(or run directly with/Applications/TrenchBroom.app/Contents/MacOS/TrenchBroom
. Otherwise the compilation tools will fail. This is because they rely on terminal variables.
- Install Quakespasm, alt silicon build to some location
- Make sure to add
./id1/
andpak1.pak
to<your game directory>/Quake/id1/
. I cannot provide pak1.pak, you can get it from Quake source code by purchasing a retail copy.
- Make sure to add
- Create a folder inside
Quakespasm
called./maps/
if it does not yet exist. This is where Quake looks for maps. - Create a folder inside
Quakespasm
called./working/
. This is where we will create/edit/save maps - Create
wads
folder inQuakespasm/working/wads
and add project wads. These are used by TrenchBroom to load textures - Install ericw-tools in
Quakespasm/working/
- Setup TrenchBroom
- Go to preferences and click on Quake 1
- point the engine to the
./Quakespasm/
directory which contains./id1/maps/
,./working/
etc.
- point the engine to the
- In the map editor, go to Faces, then at the bottom right click on Texture Collections. Add wads from
Quakespasm/working/wads
. - Edit and save your map
- Go to Run -> Compile Map....
- Use the following settings:
- Working directory:
${GAME_DIR_PATH}/working/
- Export Map:
${WORK_DIR_PATH}/${MAP_BASE_NAME}.map
- Run Tool:
${WORK_DIR_PATH}/ericw-tools/build/qbsp/qbsp
- Parameters:
-wadpath ${WORK_DIR_PATH}/wads/ ${MAP_BASE_NAME}
- Parameters:
- Run Tool:
${WORK_DIR_PATH}/ericw-tools/build/vis/vis
- Parameters:
${MAP_BASE_NAME}
- Parameters:
- Run Tool:
${WORK_DIR_PATH}/ericw-tools/build/light/light
- Parameters:
<your settings> ${MAP_BASE_NAME}
- example
-bounce -bouncescale 2 ${MAP_BASE_NAME}
- docs: http://ericwa.github.io/ericw-tools/doc/light.html
- examples: http://ericwa.github.io/ericw-tools/
- example
- Parameters:
- Copy Files: source:
${WORK_DIR_PATH}/${MAP_BASE_NAME}.bsp
, target:${GAME_DIR_PATH}/id1/maps/
- Copy Files: source:
${WORK_DIR_PATH}/${MAP_BASE_NAME}.lit
, target:${GAME_DIR_PATH}/id1/maps/
- Working directory:
- Click Launch...
- use the parameters
-basedir ${GAME_DIR_PATH} +map ${MAP_BASE_NAME}
- use the parameters
- Use the following settings:
- Go to preferences and click on Quake 1
- idSoftware for winQuake sourcecode
- MasterFeizz for ctrQuake sourcecode i studied to understand how winQuake works
- EasyRPG Team for the audio decoder used for CDAudio support
- Ch0wW for various improvements and code cleanup
- JPG for ProQuake and some various fixes.
- Cuevavirus for 1920x1080 rendering
continued...
- Credit to Rinne for porting Quake to Vita
- Credit to FlamingIce team for the original Solitude and Solitude Revamped
- Ghost_Fang for menu & scoreboard inspiration
- Credit to TCPixel for the N3DS port, which was the only place I was able to obtain the source code
- Also credit to all the unnamed and unknown contributors to Solitudes several maps and many assets