Skip to content
Quake for iOS and tvOS for Apple TV
C C++ HTML Swift Objective-C GLSL Other
Branch: master
Clone or download
Latest commit 10a6c48 Apr 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Quake-iOS Upgraded to Swift 5 Apr 13, 2019
Quake.xcodeproj Upgraded to Swift 5 Apr 13, 2019
Quake eliminated or renamed last of the glvr variables Jul 17, 2018
QuakeTV Updated for Xcode 10/Swift 4.2 Sep 17, 2018
.gitignore updated gitignore to remove xcuserstate Dec 5, 2018
README.md Sprucing up README Apr 10, 2019
folders.png README updates Jul 12, 2018
icon_quake.png Sprucing up README Apr 10, 2019
ss_quake.png Sprucing up README Apr 10, 2019

README.md

Quake for iOS and tvOS for Apple TV

 

This is my port of Quake for iOS, running in modern resolutions including the full width of the iPhone X. I have also made a target and version for tvOS to run on Apple TV.

screenshot

Features

  • Tested and builds without warnings on Xcode 9.4.1.
  • Runs single player campaigns at full screen and full speed on iOS
  • MFi controller support (reccomended) and on-screen control options
  • Capable of launching Quake, it expansions and the new episode from MachineGames
  • Quick save/load support per-game (Quake or expanion packs separate)
  • Music support for original soundtrack via ogg files.
  • EXPERIMENTAL support for tilt aiming (enable it via the pause menu)
  • Second project target for tvOS that takes advantage of focus model and removes on-screen controls.

This commit does not need any placeholder resources as it is not an update of an existing id Software port.

You will need to provide your own copies of the id1 (Quake), hipnotic (Mission Pack #1) and rogue (Mission Pack #2) directories from an existing instalation of Quake. You can grab the whole thing with expansions on GOG or individually on Steam (Quake, XP1, XP2). Quake for iOS also supports the dopa directory for the 2016 "fifth episode" Dimension of the Past from MachiineGames.

You will need to drag your directories into the project and select "Create Folder References" and add them to both the Quake and QuakeTV targets. The folders will be blue if you've done it right:

folders

Place the music in .ogg file format in a subdirectory of each folder called "music". The music for at least the original game can be found here. They need to be named track02.ogg, track03.ogg, etc. They have to start at 2 because the engine thinks track 1 is the data of the game. NOTE: Mission Pack #1 (hipnotic) plays track 98 in the prerecorded demo for some reason so duplicate track02.ogg as track98.ogg to hear it.

NOTE: iOS is case sensitive, so the filenames for the data (i.e., pak0.pak, pak1.pak, etc.) need to be in lower case because that's what the engine is looking for. It has come to my attention that some digital retailers such as GOG install the files with upper case filenames. If you run into issues with the game this may be the cause. If you see an error message to the effect of couldn't load gfx.wad but you can verify the pak files are in place this may be the cause.

You can read a lengthy blog article on how I did all this here.

This repo was based on the Google Cardboard port contained in this Quake For OSX port by Izhido on GitHub. Background music support came from QuakeSpasm. On-screen joystick code came from this repo by Brad Howe. Quake font DpQuake by Dead Pete available here

Video of Quake running on an iPhone X

Video of Quake running on an Apple TV

I have also made apps for Wolfenstein 3-D, DOOM, DOOM II and Final DOOM, Quake II, Quake III: Arena, Return to Castle Wolfenstein and DOOM 3.

Have fun. For any questions I can be reached at tomkidd@gmail.com

You can’t perform that action at this time.