Giter Club home page Giter Club logo

vitaquake's Introduction

Introduction

vitaQuake is a Quake engine source port for PSVITA.

An official channel to discuss the development of this source port can be found on Vita Nuova discord server.

Features

  • Hardware accelerated GPU rendering
  • Native 960x544 resolution
  • Rendering resolution up to 1920x1080 on the PSTV with Sharpscale
  • MSAA 2x and MSAA 4x support
  • Dual analogs support
  • Native IME for inputing commands/text
  • Sounds and Musics (CDTracks) support in OGG, MP3, WAV formats
  • Gyroscope and touchscreen support for camera movement
  • Custom arguments support and mods support
  • Support for both official missionpacks
  • Support for transparent surfaces (.alpha and .renderamt)
  • Increased Quake Engine limits (max vertices, max entities, max static entities, etc...)
  • LAN Multiplayer support (locale and online)
  • AdHoc Multiplayer support
  • ProQuake net protocol support
  • Savegames fully working
  • Support for colored lights with .lit files support
  • Support for Half-Life BSP
  • Supprt for BSP2 and 2BSP formats
  • Smooth animations thanks to interpolation techniques
  • Crosshair and custom crosshairs support
  • Mirrors support
  • Specular mode support
  • Fog support
  • Cel Shading support
  • Bilinear filtering support
  • Dynamic shadows support
  • Several different improvements in the renderer quality
  • Several different miscellaneous features (eg: transparent statusbar, benchmark feature, working gamma, etc...)
  • Map downloader support if you try to join an online server and you don't own the running map

Supported DarkPlaces extensions

  • DP_CON_SET
  • DP_CON_SETA
  • DP_EF_BLUE
  • DP_EF_NODRAW
  • DP_EF_RED
  • DP_ENT_ALPHA
  • DP_GFX_EXTERNALTEXTURES
  • DP_GFX_EXTERNALTEXTURES_PERMAPTEXTURES
  • DP_HALFLIFE_MAP
  • DP_LITSUPPORT
  • DP_QC_ASINACOSATANATAN2TAN
  • DP_QC_COPYENTITY
  • DP_QC_CVAR_STRING
  • DP_QC_EDICT_NUM
  • DP_QC_ETOS
  • DP_QC_FINDCHAIN
  • DP_QC_FINDCHAINFLOAT
  • DP_QC_MINMAXBOUND
  • DP_QC_NUM_FOR_EDICT
  • DP_QC_RANDOMVEC
  • DP_QC_SINCOSSQRTPOW
  • DP_QC_TRACEBOX
  • DP_SND_FAKETRACKS
  • DP_SV_MODELFLAGS_AS_EFFECTS
  • DP_SV_NODRAWTOCLIENT
  • DP_SV_DRAWONLYTOCLIENT
  • EXT_BITSHIFT
  • FRIK_FILE

CDAudio Support

vitaQuake supports all soundtrack packs for Quake and its two official mission packs, "Scourge of Armagon" and "Dissolution of Eternity." In order for the soundtrack to work, files must be placed in a folder named /cdtracks/ in each campaign folder (main game for example will be ux0:data/Quake/id1/cdtracks).

By default, the music folder has tracks named as track02, track03, etc. For vitaQuake, add an extra "0" after "track" in order for them to be loaded properly and in order. Ex.: track02 -> track002

You can find the official soundtrack for the main campaign in .ogg format here.

Loading Expansions and Mods

vitaQuake supports the official Quake expansions, "Scourge of Armagon" and "Dissolution of Eternity." These were offical expansions, so they can be found usually wherever the full base game is sold (GOG, Steam). In order to get them to load properly, place them in the "ux0:/data/quake/" folder alongside "id1".

Both official mission packs support their own soundtracks as long as they are placed properly in their respective "/cdtracks/" folder.

Mod compatibility is varied, but as a general rule of thumb, mods compatible with winQuake will be compatible with vitaQuake.

Here's a list of some popular mods and their actual working state:

Expansion/Mod Link Status
Dissolution of Eternity Official Expansion #007f00 Fully Working
dopa Free #007f00 Fully Working
Halo Revamped Free #d0d000 Boots, lots of bugs
Kurok Free #007f00 Playable with glitches
Nazi Zombies Portable Free #ff0000 Not Working
Quake Rally Free #007f00 Fully Working
Scourge of Armagon Official Expansion #007f00 Fully Working
Slayer's Testament Free #ff0000 Crash on models loading
SUPERHOT Quake Free #007f00 Working without monochromatic graphics
SUPERQOT Free #ff0000 Not Working
YPOD Free #007f00 Fully Working

Credits

  • 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

vitaquake's People

Contributors

ch0ww avatar icelaglace avatar jakebriggs avatar masterfeizz avatar merlev avatar nhellfire avatar rinnegatamante avatar rsn8887 avatar tiduscrying avatar xyzz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vitaquake's Issues

Add support for overbrights and fullbrights (Enhancement) (EDIT: Fullbrights are already done)

It would be extremely cool if Vitaquake could support both Overbrights and Fullbrights, which are used in Quake level data.

These are two features supported by vanilla software Quake and several Quake GL ports (Fitzquake and a few others), but not originally supported by vanilla GLQuake:

  • Overbrights: This causes highlights to show up even in bright rooms (light value can go to 200%).

Overbrights off:
overbright_sm139_spd_off

Overbrights on:
overbright_sm139_spd_on

Overbrights off:
overbright_start_off

Overbrights on:
overbright_start_on

  • Fullbrights: some texture colors should appear at full brightness even in the shadow (switches, red arrows, lamps etc.)

fullbrights off:
fullbrights_e1m1_off1

fullbrights on:
fullbrights_e1m1_on1

fullbrights off:
fullbrights_start_off

fullbrights on:
fullbrights_start_on

(taken from https://www.quaddicted.com/engines/software_vs_glquake )

Missing PSVita inputs

Whenever you start a new game for the first time, everything works flawlessly.
However, if you try another time to start a new game, it gives the following message:

Are you sure to start a new game?

No button can be pressed, meaning all you can do is to restart vitaQuake.

EDIT: Also reported by Hoshi:

danzeff keyboard doesnt startup when you want to change a nick

Implement "texture smoothing" option in menu

The engine currently defaults to "gl_texturemode gl_linear" for the texture mode, however some people (myself included) like the crunchy look of "gl_texturemode gl_nearest". Maybe a quick toggle to choose between "linear" and "nearest" could be implemented in the options menu? I would try adding it to the menu.c file myself, but I don't know much about doing so and I wouldn't want to mess anything up...

no backround image and icons

I have the problem that my Vita with your homebrews shows nothing as bubble even if I tap on the bubble is just a blank picture and then I can start

how do i get pictures in the empty fields?
I find nothing under ur: appmeta

I would like to use my pictures and change the Title id

i use the google translator -.-

gl_flashblend is broken

Setting it to "0" to get lightmaps dynamic lights results in no dynamic lights at all.
Setting it to "1" causes no "bubble lights" too.
That bug got introduced with the recent .lit lights support.

Could you compile a seperate build for me?

Okay, I have no idea how to compile this to ".VPK" format on windows for use with HENkaku.
Using ProQuake in VHBL is plain too slow. Whilst using vitaQuake 1.3 the performance is more or less the same.
So I was wondering whether you could create a separate build with the video resolution scaled down to 480x272 in vid_psp2.c and a reduced audio sample rate in snd_psp2.c.
If you could do that much would be appreciated.

Crashes with retail PAKs

Steps to reproduce:

  • Install vitaquake VPK via molecularShell
  • Place PAK0.PAK and PAK1.PAK from current retail release (downloaded via Steam) in ux0:
  • Start game

Results in a black screen. Pressing START results in:

An error has occurred in the following application.
(C2-12828-1)

4.0 Crashes on startup

Log file says:
W_LoadWadFile: couldn't load gfx.wad
This is using files from the previously working version, tried erasing and reloading them, same issue.

Paths in makefile

I see the makefile has been modded, however for some reason vpk's no longer pack correctly due to forward slash being changed for backslash in the paths.

Example:

This builds correctly
7z a -tzip ./$(TARGET).vpk -r ./build/sce_sys/* ./build/eboot.bin ./build/shaders/*

This doesn't
7z a -tzip ./$(TARGET).vpk -r .\build\sce_sys* .\build\eboot.bin .\build\shaders*

Also in linux (ubuntu), this needs changed from:
vita-make-fself -s $< build\eboot.bin

to

vita-make-fself -s $< build/eboot.bin

Or else the eboot file doesn't get put in the build directory - a file called buildeboot.bin gets created instead.

Aim is hard to control, switches from "no motion" to "fast" motion at any sensitivity

This is an enhancement.

Observed behavior: When moving the right analog stick at any sensitivity, the aim either moves quite fast or not at all. The deadzone is also quite large. It is impossible to move the camera very slowly, even when moving the stick only by a very small amount across the deadzone.

Expected behavior: When moving the right analog stick just a tiny bit over the deadzone, the aim should move very slowly, at any sensitivity.

I tested the code and a simple reduction of the aim deadzone does not fix this.

I believe this is due to the integer nature of x_cam and y_cam variables in the source that get multiplied by two factors, and one of the factors is 0.008. So the integers jump from 0 (no motion) to 1 (fast motion) at some pretty large stick tilt, and then to higher integers that move the camera even faster. A simple change of x_cam and y_cam from integer to float should fix this issue. The game engine accepts float values.

I made a PR to fix this issue, improve the deadzone by making it radial and scaled instead of axial, and increase the analog joystick range. The PR is here:
#36

Optimizing renderer

At the moment glQuake renderer suffers in certain zones, several things can be done to improve the framerate.
According to some shader performance tests, i can say the biggest bottlenecks came not from them:

  • First off, disabling in Options Menu the Dynamic Shadows setting can boost 4-5 FPS. Probably it's better to leave this as disabled as default.
  • After some tests with corrupted mipmaps images, it seems like mipmaps are used not for every single entity/world element (Reference: http://rinnegatamante.it/mip.jpg Black strided textures = mipmapped). Finding out why this happens could greatly boost fps.
  • glQuake uses several slow arithmetic functions to calculate vertices and similars. There's for example a good amount of sin/cos calls that could be replaced with pre-generated sin/cos values with a lookup table. This could give a great framerate boost.

Bringing vita from sleep with game open causes instability

When leaving the game open then sleeping the vita, the sound will sometimes begin to crackle and that's basically a sign the game became unstable. Finishing a level, saving, or doing a lot of things at that point will crash the game.
It also seems to affect Wolfenstein.
I can replicate and attach a dump, but I'm not sure if those dumps created by crashes actually help at all. I'm no dev. :)

Settings are not persistent

Hi, thank you for this Quake port, probably the best handheld version thanks to your dual analog nubs support.

I encounter an issue, however, as settings seems to be non-persistent (inverted cam, screen brightness, always run on, etc), just like if some config file could not be written/modified.
When VitaQuake is stopped and executed again, I have to set it all back.

Tested on a "fat" 3G Ps Vita with the latest Henkaku homebrew enabler.

Sorry for my english.

Ugly Mode!

Implement this please. It gives the needed fps boost for extremists.
In the console if you type r_drawflat 1 and r_fullbright 1 you can near 60 fps at native resolution at the cost of visuals.

[Bug either in VitaQuake or VitaGL] Gun and shotgun blast too low (EDIT: FIXED)

When compiled with latest version of VitaGL, the gun and the shotgun blasts are now "too low". the gun is almost completely hidden by the status bar now. The shotgun blast particles are also too low, 2 cm below crosshair. It is hard to even see the gun. Maybe the crosshair is too high? Hard to tell.

I found that this was caused by this recent commit to VitaGL, so this maybe a bug in VitaGL only:
Rinnegatamante/vitaGL@2f30aa6

It is fine in VitaQuake release 2.8, because that was compiled with the earlier VitaGL version.

Brightness adjustment to make game darker? [enhancement]

The brightness adjustment slider in VitaQuake can only make the game brighter, not darker, compared to default.

Is it possible to make the game darker in general to make it more atmospheric? Maybe adjust the brightness slider range?

Options menu refactor

Some options menu not work anymore cause refer to soft rendering only features (eg. Depth of Field).
Could be nice to replace them with glQuake renderer features.

Entities/Lightmaps clipping with world models

In some specific spots, moving parts of scenario are clipping with static world models causing a sort of texture flickering effect when moving camera.

Noticeable in Episode 1 Level 1 with the elevator that leads to the secret Quad damage.

System crash: An error has occured. The PS vita system will be powered off

With vitaQuake v2.6 I am having fairly regular crashes to a black screen with the message 'An error has occurred. The PS vita system will be powered off'.

I have had the issue on both my vita 2000 with sd2vita and 200gb microsd, and my pstv with official sony 32GB mem card.

It occurs after 5-10 minutes of playing, the most recent occurrence was after I started a new game, normal difficulty, first world. Part way through the second level while shooting an enemy the system crashed.

I had played a few hours of v2.5 with no crashes, just the inability to see underwater which is now fixed.
I'm using the same ID1 folder (from steam) as I did with previous versions of vitaquake.
Uninstalling vitaquake then reinstalling v2.6 did not resolve the issue.

Crash dumps from vita2000: https://mega.nz/#F!xtdUALJb!a0SpUy18W7ndIBWbrg0T_w
The two 'GPUCRASH' files are from when this has occurred.
The other 77-78KB crash dumps in that link are from starting up V2.6 with the official quake expansions being present in ux0:data/quake which causes an application crash (different issue).

Crash dump from PSTV: https://mega.nz/#!451zQS6K!B-fYZo8J3I2LIxXyJ6dFqzOG011odlJh_Apyab3sOyY

Bad particles rendering

It seems some particles (blood for example) are missing or are rendered with incorrect colors.

Small issues

Here are those issues, reposted from the Wololo thread!

  1. If you have the console output too many things (such as executing many cfg files, as one may have to do when playing team fortress on a handheld console,) it will crash the game. This isn't too big of a problem because you can just put the clear command in each of your configs so that it clears the console.
  2. If you type a command that changes the map into the console, it will leave the keyboard in the corner and not let you use any controls, leaving you frozen there.
  3. If you look out of bounds, the game will immediately crash.
  4. If you attempt to start a new game while a game is already running, you will be locked in an infinite loop asking if you want to start a new game.
  5. For some reason it doesn't seem to understand some console commands from the mod when loaded (doesn't understand temp1 from Team Fortress?)
  6. Occasionally, without warning, it will crash when trying to do too many things at once. This can happen when trying to change settings while hosting a game but more often just happens for no discernible reason.

Mp3 playback from cd tracks.

Currently ogg files work fine but mp3 in the cd tracks don't:

Code error in: source/audiodec/cd_psp2.cpp

Line 186 needs changed:
from: FILE* fd = fopen(tmp,"rb");
to: fd = fopen(tmp,"rb");

Then both ogg and mp3 can work.

Entities have missing triangles

Not sure why this happens (may be some slight difference in primitives rendering between sceGxm and openGL for TRIANGLE_STRIP / TRIANGLE_FAN), however entities are drawn with missing polygons (flying pickups like armors/quad damage, etc, viewmodel (aka the current in-use weapon), enemies).
Noticeable in this picture in the in-use weapon: http://rinnegatamante.it/mip.jpg

Dead Zones

Can you add a dead zones for sticks?
Left stick on my Vita sometimes tilts right with out any reasons, I found its a popular problem.

Make file - missing backslash

On line 65 where you added the: source/gl_fullbright.o, you forgot to add the back slash to the line above, ie: it should be - source/gl_vidpsp2.o \

This results in the game not compiling, please can you add that. Thanks.

vitaQuake online play

I messed around a bit, and was able to connect to a few servers. But the quake screen never went up so I could see the game. Now I've never played quake, so I know very little about how online should work. I definitely connected, as I could see the chat, and was even killed once.

This could very easily be an error on my side, I'll do my best to troubleshoot if you have any advice.

Crashes with full Quake PAK files

Hey,

vitaQuake is crashing when starting new game or starting benchmark after I've replaced pak0.pak with full Quake pak0.pak file and put pak1.pak next to it.

Desktop clients like Darkplaces and Quakespasm run fine with these files.

Also when I put pak1.pak file inside ID1 without replacing pak0.pak it works to the moment when I select non-shareware episode, after that it crashes like with replaced pak0.pak.

Gives me error c2-12828-1 on startup.

I've downloaded all 3 vitaquakes, and all 3 give me this error. Everything else on my vita works perfectly fine, so I don't think it's the console.

Henkaku enso 3.65, psvita slim with sd2vita

Adding ur0:/ support for "data" directory

It will be cool to have possibility to use ur0:/ partition as source for data directory - it takes most of the space that homebrew uses, and many users will be glad to have that option

Version cee35f9

This change to the git breaks textures from displaying in the orignal game - after this the game is in black and white.

Request - not an issue

Sorry if this is posted in the wrong place, but I couldn't see where to do a request.

Currently Dopa and Abyss-Of-Pandemonium expansions seem to also work. I know I can strat these by bringing up the console and typing 'game impel' or 'game dopa' then start the game as normal. Would it be possible at some point to add a shortcut to the menu, or add a menu command so these can be selected from the main menu or vita icon screen?

Thanks.

v2.6 crashing on start

vitaQuake Dumps.zip

Vita: PCH-1006
OS: 3.60 Henkaku

Installed over top of 2.5: Crashed after console messages finish scrolling
Deleted and reinstalled via Homebrew Browser, same issue. Rebooted in between uninstall and reinstall for good measure.

Not sure what else to add. Crash dumps attached.

Starts into console instead of title screen

When I start the game, it doesn't go to the title menu. Instead it shows a console with the following messages:
EXECING QUAKE.RC
EXECING DEFAULT.CFG
"ALT" ISN'T A VALID KEY
"ENTER" ISN'T A VALID KEY
"ESCAPE" ISN"T A VALID KEY
UNKNOWN COMMAND "GAMMA"
EXECING CONFIG.CFG
COULDN'T EXEC AUTOEXEC.CFG
EXECING CONFIG.CFG
] {blinking cursor}

I have to press start to make the title menu show and then I can play.

unable to compile now.

I updated vitagl and vitasdk (via vdpm). Now for some reason I am unable to compile this now. I went to older versions of vitasdk + vitagl and still got errors, so I reinstalled mysys2 and all the required stuff + vitasdk and vitagl. Each time I try and build I get the following errors:

c:/msys32/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/8.2.0/../../../../arm-vita-eabi/bin/ld.exe: C:\msys32\tmp\ccigDhpAd ebugobjtem: file not recognized: file truncated
collect2.exe: error: ld returned 1 exit status
lto-wrapper.exe: fatal error: C:\msys32\usr\local\vitasdk\bin\arm-vita-eabi-g++.exe returned 1 exit status
compilation terminated.
c:/msys32/usr/local/vitasdk/bin/../lib/gcc/arm-vita-eabi/8.2.0/../../../../arm-vita-eabi/bin/ld.exe: error: lto-wrapper fail ed
collect2.exe: error: ld returned 1 exit status

LTO-wrapper fails because the files are truncated, what would cause this, even after a fresh install of everything? (same errors as before reinstalling).

Is there 3.65 support?

Last time I installed an incompatible app, mem card died. Insight would be appreciated.

Broken particles rendering

Sometimes particles get rendered as full black. Still not happened to detect the trigger however is clearly visible during the whole Level 1 in Episode 1. Disappears in Level 2.

Crashes when loading official Mission Paks

I know that the mission packs worked in the past, as I distinctly remember loading them up.
However, only the core game works now.

When selecting the Live Area shortcuts for either mission pak, the terminal loads fine, but then crashes, giving an error message:
"An error has occurred in the following application..."
And proceeds to save a Core file.

It appears that the program crashes upon trying to download assets.
As the last line of code in the games terminal screen reads:
"WEB DOWNLOADING: PROGS/EMFORCER.MDL FROM HTTP://BIGFOOT.SERVEQUAKE.COM/PROGS/ENFORCER.MDL"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.