- Protocultor
- Posts: 13
- Joined: Sun Jul 28, 2024 10:39 pm
Quake 2 OpenGL ES 1.0 renderer, for any Pi model, 60+ FPS
This has been asked for years, and I've suceeded in making it:
https://github.com/yquake2/yquake2
(Original pull request: https://github.com/yquake2/yquake2/pull/1128)
To see how it looks: https://youtu.be/eeijJNQFGKo
This reaches 71 fps at 1920x1080 resolution in a Raspberry Pi 3 B+, using Raspbian Buster, when running timedemo 1 and map demo1.dm2.
If you have compiled Yamagi previously, you are ready to go. If you don't, you'll need some packages:
Then, change to the cloned repo (master branch) and run:
Files appear in the release directory. To use the GLES1 renderer, run the game with:
Other OSs may not support GLES1, but if they support GL1, they can use the new gl1_lightmapcopies cvar to improve performance. Just pull down the game's console, type gl1_lightmapcopies 1 and restart the game.
Instructions for RetroPie (automatic compilation and setup, will install the demo if needed):
https://retropie.org.uk/forum/topic/358 ... y-pi-model
If you have a Pi Zero, please test this, I'm interested to see how it behaves in one. I know a Zero 2 W runs it without trouble.
https://github.com/yquake2/yquake2
(Original pull request: https://github.com/yquake2/yquake2/pull/1128)
To see how it looks: https://youtu.be/eeijJNQFGKo
This reaches 71 fps at 1920x1080 resolution in a Raspberry Pi 3 B+, using Raspbian Buster, when running timedemo 1 and map demo1.dm2.
If you have compiled Yamagi previously, you are ready to go. If you don't, you'll need some packages:
Code: Select all
apt install build-essential libgl1-mesa-dev libsdl2-dev libopenal-dev libcurl4-openssl-devCode: Select all
make with_gles1Code: Select all
./quake2 +set vid_renderer gles1Instructions for RetroPie (automatic compilation and setup, will install the demo if needed):
https://retropie.org.uk/forum/topic/358 ... y-pi-model
If you have a Pi Zero, please test this, I'm interested to see how it behaves in one. I know a Zero 2 W runs it without trouble.
Last edited by Protocultor on Sun Oct 20, 2024 12:31 am, edited 1 time in total.
- Protocultor
- Posts: 13
- Joined: Sun Jul 28, 2024 10:39 pm
Re: Quake 2 OpenGL ES 1.0 renderer, for any Pi model, 60+ FPS
This has been updated to add some new performance options, which will be useful even when using normal GL1.
Add these in your autoexec.cfg:
If you're using Arch, Bookworm or Bullseye, also add:
This will give you "roundish" particles, instead of the square ones.
Add these in your autoexec.cfg:
Code: Select all
set g_machinegun_norecoil 1
set aimfix 1
set g_quick_weap 1
set g_swap_speed 2
set ogg_ignoretrack0 1
set s_openal 0
set gl1_discardfb 1
set gl1_lightmapcopies 1
Code: Select all
set gl1_pointparameters 0Re: Quake 2 OpenGL ES 1.0 renderer, for any Pi model, 60+ FPS
how to play new games?
./quake2 +set game xxx, no luck.
./quake2 +set game xxx, no luck.
- Protocultor
- Posts: 13
- Joined: Sun Jul 28, 2024 10:39 pm
Re: Quake 2 OpenGL ES 1.0 renderer, for any Pi model, 60+ FPS
I'm assuming the base game works for you. Otherwise, you'll have to give more info on what you did.
For the expansions/mods, you'll have to clone and compile them separately. These are the ones I've tested:
The Reckoning: https://github.com/yquake2/xatrix
Ground Zero: https://github.com/yquake2/rogue
CTF: https://github.com/yquake2/ctf
Zaero: https://github.com/yquake2/zaero
make on each will generate a different release/game.so; you'll have to copy every game.so to different subdirectories where you have the game installed.
E.g. if you have the game installed in ~/Quake2, and you want to compile xatrix:
Code: Select all
git clone https://github.com/yquake2/xatrix
cd xatrix
make
mkdir ~/Quake2/xatrix
cp release/game.so ~/Quake2/xatrixCode: Select all
~/Quake2/quake2 +set game xatrix
Jump to
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- Raspberry Pi Official Magazine
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Media centres
- Gaming
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Keyboard computers (400, 500, 500+)
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Zephyr
- Rust
- AI Accelerator
- AI Camera - IMX500
- Hailo
- Software
- Raspberry Pi OS
- Raspberry Pi Connect
- Raspberry Pi Desktop for PC and Mac
- Beta testing
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion