News | Forum | People | FAQ | Links | Search | Register | Log in
QuakeDroid - Quake For Android
QuakeDroid is Android Quake that should run on any Android phone made in the last 5-6 years, but has only been tested on 2 phones (one 32-bit, one 64-bit).

Designed to have controls similar to popular mobile games (/cough Minecraft). Went deep on the documentation to try to empower the user.

Does not require Quake to install, it downloads Quake shareware on startup.

* How to put your TrenchBroom/J.A.C.K map on your phone
* Where is your Quake folder?
* Difference between shareware vs. registered Quake
* Put registered Quake pak1.pak from Steam/GOG on your phone
* How to set a startup command line.

The menu has 2 methods of navigation, you can touch items like "Single Player" or manually slide the volume slider bar or use the menu nav buttons.

* Tap-fire (double tap on an Ogre to shoot it)
* Drag-look (like Minecraft)
Cool Stuff Baker! 
Worked right away on my redmi note 3 (64-bit arm) and mi note2 (x86_64 tablet). It's software rendered!

Two control suggestions:
- if you hold the "move forward" touch area and tap the "jump" button, you stop moving forward.
- currently if you press the "move forward" onscreen button and move your finger to the "move back" area, without lifting it up, it keeps walking forward 
is it capable to handle sepulcher? 
There Goes My Weekend 
Excited to test this out 
For Those On Mobile Chrome 
I had to touch hold the links and open in a new tab or else it is just black. FYI. 
Works On My S7!! 
And Baker becomes an instant Quake legend. 
@ericw - I'll check that out. Never noticed during testing. This has been tested to death on the 2 phones available. (With tons and tons and tons of coop played). It has also been refined to death, but I can think of some more refinements.

@pulsar - I haven't had time to add Sepulcher support yet. But it is on my list. Now that I have this big project out (it's a relief, I hate have major modifications on my hard drive) --- I can focus on things like that.

@dumptruck_ds - I think you'll love it. ;-)
@QMaster - Thanks! My worst fear is that I have had only 2 devices available for testing and Android is a diverse ecosystem. 
I had to touch hold the links and open in a new tab or else it is just black. FYI.

Could you explain this in detail like I'm not sure what you mean? My mind is sapped from this project. 
I'm slightly surprised it worked on your x86_64 tablet. But also happy. I think I only compiled for ARM, so the x86_64 must translate somehow.

(I also did some hasty Googling and concluded x86/x86_64 Android was a rather rare beast -- but apparently I am wrong?). 
currently if you press the "move forward" onscreen button and move your finger to the "move back" area, without lifting it up, it keeps walking forward

That is proper operation.

When you touch the surface, the "down" checks what it hit. The button is the "owner". And that button remains down until that finger is lifted.

Windows does this as well.

If I went full overboard Minecraft style, I would make the virtual arrow keys a singular directional zone. I considered doing that, but want to hold off for now. 
Quake1 On An IPod Touch Would Be Insane! 
Rendering would be incredible on the Retina screen, running AD and all the modern maps.

Is there a chance that may happen? 
I did a lot of the QuakeDroid testing playing coop with -- an iPad!!!!

I am not going to rule out putting some sort of iPhone Quake on the Apple App Store.

I want to gauge the interest with this first.

There is, in fact, an iPhone build in the source that has not been tested on a Retina display (I used an iPad 2 for testing, I have some sort of iPad Air 3 (?) sitting 12 feet away (3 meters for non-USAians, haha) but I'd have to upgrade my XCode and deal with new fussiness.

My main concern is I care more about mappers and putting maps on an iPad/iPhone/iPod Touch is a real PITA.

The iPhone + friends offers a superior experience, has the better development environment, but from a mapper perspective the file system is locked down in a rather cruel way. Android, while perhaps protecting the users less, enables them to have enough convenience.

Anyway, I'll meditate on this in the coming weeks.

I want Quake everywhere, because mapping is an enlightening and enjoyable experience and Quake makes it happen. 
Webpage Woes 
On my S7 Edge, using Google Chrome mobile app. Touching links above goes to an all black webpage. Website says it's loaded and address at the top is correct but nothing shows on the page.

Touch and hold, popup with link options comes up, touch "open link in a new tab" and webpage loads fine i the new tab. Not sure why the links are being wierd. Oh well.

Now to see about finishing playing DM4Jam on my phone. Yay! 
The touch keyboard for entering your name in setup is AMAZING! 
I'll see if I can fix the links, after you post I tried Chrome on mobile it acted weird.

I thought after years and years of Acid-2 and Acid-3 tests and such, that the mobile Chrome would behave like the desktop Chrome, but stupidly it is not true. 
I should have the web site rendering for mobile Chrome resolved, let me know if it works properly for you. 
works fine on my huawei p10 plus (64bit)

good job! 
Cool! Android has many different models + different processors. 
QuakeDroid has been updated resolving the jump + forward bug ericw reported.

(The single changed source file is available in builds folder where the source code can be downloaded.) 
Sansung Galaxy J5 Prime 
Works with no issues so far. I'm away from my pc for the weekend but will get pak1 when I go home again. 
Sansung Galaxy J5 Prime 
Works with no issues so far. I'm away from my pc for the weekend but will get pak1 when I go home again. 
Working Fine On My Apollo Lite (Mediatek Helio X20) 
Wow, software rendering Quake on a phone! I suggest an option to hide the Android navigation bar, to use all the screen. 
Anyone Other Than Mgtroyas Seeing Android Navigation Bar? 

I suggest an option to hide the Android navigation bar, to use all the screen.

It is supposed to be fullscreen. It is on both the devices I have tested on.

I'll check some Android dev forums and see if I can find any info on that kind of issue in apps. 
@ OGkspAz 
Thanks for feedback. 
Is the Android navigation bar on your device a screen rendering of the (<--) (Home) (==) buttons that on other phones are physical buttons?

Like your device doesn't have physical buttons but they are instead rendered on the screen? 
This runs smooth as butter on my mediocre Samsung from 2015. I'll see how it fares on a Huawei once it gets finally shipped (fucking TNT).

I was going to say "tapping to shoot isn't too responsive" but then I remembered it's double tap, and it worked fine. A single tap would be more intuitive for the user though, I think?

Quitting doesn't actually shut down the app - it resets the game and minimizes the window.

All in all, a great Easter gift! 
Baker: If you want to be a big boy developer, you need to wear big boy developer pants and use proper version control software.

In 2018, putting the source code in a series of timestamped RAR archives is effectively making the application closed source.

Bite the bullet and put the code on a public repository so it can be actively grown and developed by others, who I guarantee have no patience for dealing with .rar files.

This has the potential to be actual gaming news, anything else than a public repository would be an embarrassment if it hits the headlines. 
Good Job! 
Works greate on my huawei acsend g630. I like the software rendering with lerping and other fixed, looks really good. I have one suggestio: make weapon icons clickable on hud to enable quick weapon switch 
Good Job! 
Works greate on my huawei acsend g630. I like the software rendering with lerping and other fixed, looks really good. I have one suggestio: make weapon icons clickable on hud to enable quick weapon switch 
Apologies For The Double Post Up Top 
A buddy of mine enquires about controller support possibly. Something called wamo pro. 
Bug Report 
If quake_command_line.txt is blank, the app crashes immediately on startup. 
If you go to the console using the options menu, then touch the console, you can type in commands using quake keyboard!!

This is beyond awesome! 
Bug Report 
When a level exceeds the limits, e.g. Aristical's Profaned Place has 82421 leafs which is greater than max 65535, then after it returns to console, the touch areas no longer work and neither does touching the menu. Only the escape triangle in the corner works to bring up the menu overlay.

How to reproduce: attempt to play Aristical's firat map for dm4jam. 
A Great Accomplishment 
Works well enough on my phone (LG v20), but I spent a good while trying to figure out how to open the menu (well, 30 seconds... but that's way too long!) when I first launched the game.
I'll admit that I barely play games on my phone, but really... having the controls be so hard to see (the pause/menu button especially) is really painful.

Also can report that the game doesn't support immersive mode, as others have mentioned. Forcing it through System UI Tuner works well enough, even if it is a bit impractical.

My god do I suck at aiming on a touchscreen... 
Feature Request 
After touching and holding down the shoot button, allow for mouselook to work as the touch moves around still. 
Bug Report 
Can't change resolution...feature? 
Notes On S7 Edge 
Folder location - perfect! Right out in the open, easy to find using My Files app.
Landscape by default - the phone still thinks it is in portrait mode...and doesn't care if I flip it sideways! This is great!! The top swipe-down menu is on the side then, but it is consistently so which is nice.
Resolution - stuck at 426x240 I think, says 2560x1440 x 6?. Old school though.
Touch works really well. No complaints there. Control scheme is very hard though. Multi-touch works fine, but it is like trying to play with keyboard and mouse except you only have one finger on each hand. Circle strafe is nigh on impossible. More than 2 projectile enemies at a time is rather difficult....makes me want to play on coop so when I die I come back...which takes me back to how I played it when I was 5 which is very I kinda like this in a way. 
Feature Request 
Add underscore button to console touch keyboard.

P.S. sorry for multiposting, bht each item feels distinct and I'm testing as I go. 
Feature Request. 
Record demos directly to .mp4? 
Yes, my phone has "software" navigation bar as it hasn't got any physical buttons.

Some apps effectively hide the bar, other don't, I suppose it's something the app has to request.

I can hide the bar with a xposed module, but for non-rooted phones there's usually no option to configure it on a per-app basis. 
Touch Issues On G4 Plus 
The demo works like a charm but menu won't show up when touching the screen. Brilliant work though and thank you. 
Feature Request... 
send SMS and make calls via quake 
Did you try touching the top left corner? There is a hard to see faint brown triangle touch button there. 
Ok I feel dumb now. Working superbly. Thanks a lot. 
Thanks! Shooting has to be a double tap, if it were single tap you can't drag look.

The traditional way to play Minecraft is to have your hands holding the screen and you use your right thumb as the mouse, drag looking on the screen.

svn/github/etc - At this time, I don't want the extra work of maintaining an a source depot. I have finite time. Plus the source code is not fully "cleaned up" everywhere because I spend most of my time writing very difficult features instead of going over it with a fine tooth comb finessing it. But maybe when I get the time in the future ... 
@qmaster - Re Blank Command Line 
Awesome catch! Thanks! I'll check it out. 
@mgtroyas, @negrostrike 
@@mgtroyas - Someone else beat me to it. It's "immersive mode" that I need to add the capability for.

@negrostrike - glad you figured it out. I tried to make the triangle subtle so it wasn't a distraction. 
@MilkeyWilkey (Status Bar Press!) 
make weapon icons clickable on hud to enable quick weapon switch

I considered doing that, but on a phone that is going to be quite small.

At this time, I decided instead to make it so if you click the HUD/Status bar it shows "Monsters 12/29 Secrets 0/3" (progress). 

I have a UI niggle: of the 3 touch areas on the right of the screen, I feel the FIRE button should be the center one, and the JUMP button should be the top one (because you jump or swim upward, and you fire a lot more than you jump). I tried customizing the controls through the menu, but even though it seems to accept the input, it doesn't actually change them.

And how about a tiny triangle in the top right corner for messagemode? Though when I manually enter messagemode in the console, the onscreen keyboad doesn't appear, and I'm stuck there looking at "say:" on the screen while inputs are disabled, except the menu triangle in the top left to esape messagemode.

And how about a touch area in the top center (or if you swipe down from the top center) to lower the console.

There could be two touch area for weapon cycling -- one to cycle forward, one to cycle back. They could fit next to each other. And maybe have it change to a weapon if you touch that weapon in your status bar.

If I sit and don't touch anything for a couple minutes my device turns off the screen, which causes quake to minimize and restart. It should be a simple matter to disable the android sleep thing when the app is running. But on sleeping, the app also shouldn't restart. Hm, though it looked like if I woke up the device right away, it went right back to Quake without resetting.... Two other times it did reset. 
@otp - "Quitting The App", @pritchard, @qmaster, @oGkspAz 
@otp Quitting doesn't actually shut down the app - it resets the game and minimizes the window.

It does quit on mine.

I'll do some checking around and see if I am quitting in the truly proper way that works on all phone models.

@pritchard - Yeah, if you haven't played mobile 3D games, it takes a few minutes to get the swing of it. I didn't want to make obtrusive controls or menu navs so I went for subtle over explicit.

@qmaster - Doesn't have "Sepulcher support" yet, so 65536 is the limit right now. But yeah, I'll check into what happens on a "Quake Error". Right now resolution changing isn't supported.

@qmaster (again) - re:console ... the console is the area where I would most like to improve the experience, but I'll have to meditate on that.

@oGkspAz - Thanks! It does have External BlueTooth Keyboard Support. At some point controller support would be nice to have. 
If I sit and don't touch anything for a couple minutes my device turns off the screen, which causes quake to minimize and restart.

Android silent shuts down and restarts apps sometimes, especially on sleep.

I am dependent on SDL2 handling of that (QuakeDroid uses SDL2 library to handle video and system interaction).

On my phone, when it sleeps --- when it resumes, I am back in the same place. However, I have seen what you describe about the restart. 
@onetruepurple - "gaming News" 
This has the potential to be actual gaming news, anything else than a public repository would be an embarrassment if it hits the headlines.

Well, you see my source code isn't refined or cleaned up. I expended all my time and energy getting the features to work and writing documentation to make it mapper friendly.

I agree with your sentiment about this being "Actual Gaming News" level -- thanks!

I was going for that level of quality. 
Plays flawlessly on my Motorola XT1575 Moto X Style (a.k.a. Moto X Plus in US).

2 issues: it "flips" to the opposite orientation when entering into landscape mode so I need to turn my phone "upside down" compared to other apps.

also upon Quit > Yes the app does not close on my phone either 
Quake1 On IOS? WOW! 
I can't believe there's a chance that in the near future, I could be playing Quake 1 and all its awesome custom maps on my iPod Touch!

Frankly, that would be an amazing jaw dropping experience!

Baker, you're the guy that is making this possible? You're a real life hero! 
"Quitting doesn't actually shut down the app - it resets the game and minimizes the window."

That sounds like standard Android behavior. When you "quit" an app, it still appears in the "recent apps" list, and that app will run again if you tap it in that list. Apps in that list are sometimes "paused" in the background, but other times they are only there because you recently ran them.

If you truly want to SERIOUSLY QUIT an app, you can swipe it out of the "recent apps" list, and then you won't see it any more. 
@dumptruck, @barnak 
@dumptruck - "flips to wrong landscape". Well at least it is rendering correctly. I'll have to meditate on that one. I thought that should not happen with the configuration I used.

+extra example of device where "Quit" doesn't close the app.

@barnak - The iPhone version is buildable in the source code, but only tested on one device (hasn't been tested on Retina, nor an iPhone X, nor IOS 10 let alone IOS 11) but the main issue is mapper friendliness -- loading maps and such isn't easy at all like an Android USB connection -- it is very hard and awkward. I'll think about over the coming weeks and we will go from there. 
I have two Android apps for audio that actually do quit entirely if it prompts for an exit. So Yes most apps to behave this way it should be expected that an app terminates completely if you run thru a prompt. not sure if there is a performance impact or not but anything that potentially drains battery should be at least tested. 
Bug Report 
{fence textures just show their ugly pink, no cutout. 
Bug Report 
Can't save a coop game 
@qmaster - QuakeDroid Can Save Co-op Games! But Menu Denies 
It will in a week or so, haha.

QuakeDroid can actually save co-op games, but the menu is wired like classic Quake to not save multiplayer games.

If you are desperate to save a co-op game, go to console and do "save mygame".

To load a co-op game, first have players connect and go to console and do "load mygame".

*Should* work.

I had to strike that from the initial release todo list due to lack of time.

I plan to make it user-friendly.

Alpha support in the software render is something I want but I have not been able to yet successfully implement (go figure).

I assume the server browser (MultiPlayer->Join Game->Local Games) is working ok for you?

/Nice catch on the underscore being needed in the on-screen keyboard. I went to great effort to try to make sure all the needed keys were there, but I clearly missed an important one! 
Bug Report 
Transparent water has wierd lines:

Um and screenshots are sideways lol 
I'll look into modifying the transparent water draw algorithm to reduce the likelihood of it looking like that.

It may just be bad luck of the draw with your device's screen resolution, but I'll check it out and see what I can do. 
Feedback On Right Side Control Order 
Gunter pointed out something I think does need changed.

Right side order (NOW):
"Change weapon"

But in order of usuability should be (???)

Right side order (SHOULD BE):
"Change weapon" (the least used of the 3)

How About 
A Doom-like weapon wheel in top right? 
Looks at screenshot of feature. That gives me some different thoughts on some nicer solutions. 
Mt preference is for

Change (possibly both directions: < change > Or instead of two buttons, have an area that reads the direction of your swipe -- swipe left or right to change weapons in that direction)

I find it more natural to stretch my thumb upward to hit a jump button. Bending my thumb downward is slightly less easy, so better suited for the less-used buttons.

I notice that if I press a button (like Attack) and slide my thumb to a different button (Jump), it acts as though Attack is still held down and it doesn't trigger a Jump. Prefferd functionality would be:

When finger slides out of Attack button zone, stop attacking, and when finger enters Jump button zone, jump.


Keep attacking even if finger slides out of Attack button zone, AND still Jump when finger enters Jump button zone.

Either of these behaviors would be preferable for the movement keys as well -- you could slide your finger back and forth across the move keys to alter your movement without having to puck your finger up off one button before you can press another.

Actually, with the layout of the move keys, only the first option would work -- the sidestep keys would need to be next to the Forward key instead of the Back key...

Probably a better option is to have a circle onscreen for a virtual joystick, and the movement is determined by your finger position within the circle. If you slide your finger to the top of the circle, you move forward. Bottom of the circle is move back. Left and right edges of the circle are sidestep. And you can move your finger to like the top right position of the circle to be moving forward + sidetep right at the same time, for example. This could just have virtual button triggers at certain points around the circle, or it could actually emulate an analog joystick allowing for movement at varying speeds. If you go outside the circle, then it would just continue your movement unless you lift your finger off the screen.

To enhance the "button" control method (without also having to touch the screen to aim, because you will be using the virtual Fire button), you could have the accelerometer control turning left and right, so you just tilt your device left and right (like holding a steering wheel) to turn left and right. The turning speed would be determined by how far you are tilting. 
Agree with Gunter, sliding finger from one touch zone to another should change button effect...EXCEPT FOR SHOOTING..which should let you continuously aim while shooting otherwise I need two fingers to do that.

Movement needs 4 zkmes added for combinations of wasd keys...wa, wd, as, and ad combos in a 9 square pattern. These could be invisible and only work on slide. 
Stupid phone...zlnes...argh i hat this...zones. 
Hey, that's a good idea: once you put your finger on the Fire button, any sliding you do with that finger should act as aiming, as long as you don't lift your finger (and you still keep shooting).

I've gotten a few crashes with Cache_MakeLRU: active link

I'm trying it out with a little bluetooth keyboard now, on -- where everyone else should be trying it, since it's coop and you can sit around and chat if you want while everyone else kills the monsters ;) 
Probably a better option is to have a circle onscreen for a virtual joystick, and the movement is determined by your finger position within the circle.
I'm not one to stare a solid mobile version of Quake in the mouth (so to speak) but since Gunter has brought it up:

If there was this virtual thumb stick scheme I would play this on my phone often as opposed to just testing this out and playing occasionally. The current style of control is too difficult to get used to to play for long stretches.

I agree that this code should be brought into a repository as well for those who'd like to assist in development. 
Oh yeah, forgot was I was going to say about bluetooth controls: when you detect input from a bluetooth keyboard (or gamepad - do those work? I'll find out later), you should remove the onscreen control overlay, because it's not being used.... If someone touches the screen, then you draw it again until you detect bluetooth input.

... and you really need to disable the android Sleep mode, heh... While I wtas typing this, my table fell asleep, and Quake go bye bye. 
Is there any way to add original soundtrack? 
I Had An Epiphany 
If I use 3 fingers on the left like I do on a keyboard, it's actully not bad. I still can't steer and shoot at the same time though. 
"Quitting" An Android Application Is Impossible

Android apps are not automatically unloaded even after the onDestroyed() callback, e.g. when they are in the destroyed lifecycle state. They will only be removed from memory if more recently started apps would require memory themselfes.

You cannot completely "exit" an Activity on Android (like on Windows or other OSes where exit() resp. return from main unloads the program from memory). Android will decide for itself whether and when to remove an Activity from memory.

Now I understand why I end up with an accumulation of several apps in the "Multitasking Screen" pic after I closed them.

The reason behind this design is the fast restart of applications (caching). 
@gunter, @dudeq - Bluetooth Keyboard Hide 
@dudeq - Not yet, but it'll be coming.

@gunter - I have seen that happen on rare, I also know how to fix it.

As far as detecting a Bluetooth Keyboard, I don't know that SDL2 provides a method for that, but I think what would work just as well is that ...

1) opening the menu with the keyboard causes the in-game controls to hide

2) opening the menu by touch would unhide the game controls

After all is quite possible to not want to use the keyboard for playing, just entering console commands.

This scheme would satisfy all preferences and not require a setting, so it would be real convenient. 
Getting Maps On Iphone 
What about using quaddicted? 

(Requires registered Quake and QuakeDroid doesn't check to see if registered vs. shareware)

In the console

1) type "install rapture"
2) type "game rapture"
3) Do Single Player->New Game

I have installed 6-7 mods with it -- things like (kinn_marcher, nihilore, rapture), but would prefer to test it more and think more about the structure on Android. Also johnny law provided me an example or 2 were unexpected file structure in a map jam confused the unpack a bit.

So "Should work, unsupported, use at own risk" because I want to exhaustively review it. 
@fifth - Oops You Said IPhone 
Yeah that isn't a problem on iPhone, but you can't really mess with your own Quake folder on a iPhone, like put map from your hard drive on it. 
I guess the only solution for mappers for iphone would be to design with a controller in mind and release as normal. 
Excellent Port, I Can Play AD (with Broken {alpha Textures) On My S8 
The controls leave something to be desired. As was said, it'd be nice if jump/attach were switched so attack is in a more naturally reachable position, maybe the ability to manually place the buttons.

Also the icons are a little faint, and the movement buttons are not very easy to use.

Any chance of a Quake-Touch type radius where on the left side is like a trackpad (like the aiming?)

As crappy as Q-touch is the controls are actually very natural and it's pretty easy to move around, whereas with this setup the individual buttons and binary movement make phone play much less enjoyable 
Here are my current thoughts on control options:

So you have possibly an onscreen graphic of a circle on both the left and right side of the screen. Left circle is movement, and right is aiming. Each circle would necessarily have a dead zone in the center, but as you move your finger around in the circle you would just measure the distance from the center and the direction of the line. These pretty much emulate analog joysticks. If you move your finger outside the circle it just reads as the maximum value which is the same as touching the edge of the circle, since you are noting the line from center to your finger position.

Ok, so left circle is move forward, back, left, right. Right circle behaves the same way for aim up, down, left, right. But if you double tap the right circle, you start firing and you keep firing as long as you don't lift your finger, and you can still aim using that circle while firing.

Just above the left movement circle there is a virtual Jump button, so that if you slide your finger up to it (outside the move circle) you keep moving forward and you jump.... These should probably also still be a virtual jump button above the right circle for tapping, because "jump while aiming up would not work well, but it could still be tappable if you aren't aiming.

Now you could get fancy, and not draw set cirle areas, but within a fairly large area on the left and right of the screen, you just detect the first place a touch occurs, and set that as the center of the circle (and then possibly draw it once a touch occurs). The movement controls would work the same as I described, just by measuring the distance and direction of the finger starting at that first touch point. When someone lifts their finger, you just forget the last touch start point and make a new one when they touch the screen again.

You may need a permanent jump tap button somewhere on the right to go with this scheme, but that button could also be dynamically relocated to just above the wherever the touch occurs and the circle is positioned when that happens.

The move circle could optionally respond to a double tap to toggle to walk mode, or to trigger a jump, or something else.

I also do think the weapons in the status bar do need to be touchable to select a gun (actually, to trigger impulse 1-9), abut if you swipe left or right along the weapon area, it will cycle weapons left or right. Touching the player face could activate messagemode. 
Any chance of a Quake-Touch type radius where on the left side is like a trackpad (like the aiming?)

Sure. I check that out and see the scheme there. 
I'm considering some of those kinds of concepts. I feel if I can just get the controls more tuned ... 
Any Possibility For Alpha Texture Support? 
AD works great aside from that 
I have something in the works ;-) Might take a few days or perhaps I'll be very lucky and it could go faster. 
QuakeDroid Updated 
New Version :Just Reinstall
(Will show 1.92 in console)


* Switched attack + change weapon position (everyone)
* Sepulcher support (pulsar)
* Underscore shows in on-screen keyboard (qmaster)
* Bluetooth keyboard use auto-hides in-game controls (gunter)
* Empty quake_command_line.txt doesn't hang. (qmaster)
* Water alpha vertical lines fixed (qmaster)

Looked into
* Immersive mode - Not seeing clear-cut SDL2 support in a stable SDL2 release. But will keep and eye on it.

Other issues/suggestions pointed out are on the list, I hope to get some more done in a new version in a few days.

Thanks for the feedback/suggestions/bug reports, Android is diverse in device variety and it has been greatly helpful! 
Hm, the onscreen control overlay doesn't seem to go away when I use my bluetooth keyboard(s). The overlay does vanish when I'm using messagemode though.


is not a good layout. Your default finger position is on Attack. Other buttons should be within one button of that finger position. With Attack all the way at the bottom, it's a large motion to get all the way up to that Change button. That's why I think it should be:


With thumb resting on or over the Attack button, it's easy to get to either Jump or Change.

So, it seems many mini bluetooth keyboards (like mine) have no Escape key. I can bind some other key to togglemenu, but it doesn't work like Escape, in that it won't cancel messagemode, for example. Luckily you have the little top-left triangle that acts just like an Escape key.

My little bluetooth keyboard has tougher problem though. Pressing Func+Up or Func+Down should give me PageUp or PageDown. But this keyboard is some weird generic thing (I have a different one that does work correctly in this regard), and instead it triggers Windows+Up and Windows+Down, so I can't scroll up and down in the console. So how about allowing me to swipe up and down in the console? A tap on the console should obviously trigger the onscreen keyboard, buy an up or down swipe could instead trigger PageUp/PageDown to scroll the console.

I also have a almost full-size Mircosoft bluetooth keyboard, and while it does have an Escape key, it doesn't even have Functionable PageUp/PageDown, yet it has Functionable Home/End.... So no console scrolling with this onn either. Though if I were going to use a large keyboard, I may as well just use my XP Netbook, heh. 
Looks like I needed to provide more detail.

Do you have a tidle/backquote key? That will trigger the console and cause the keyboard to hide.

Let me know.

Working on game controls come takes time, I did not have time to do anything with control. 
Oh, maybe we are talking about a different thing.

I had suggested that the onscreen control overlay be completely hidden in-game if a keyboard is being used.

Yeah, I can effectively use the tilde key and pull down the console -- the onscreen overlay doesn't show on top of that.

I'm wanting a way to hide the overlay during game play. Like if input is being detected, but no screen touches are being detected, that should indicate that someone is not using the touch screen controls, so the overlay can be hidden. 
Yeah, probably so but that thought didn't cross my mind at the time, haha.

So for now, press tilde and it will hide the touch controls. ESC to the menu will cause them to reappear.

Next time, I'll have any keypress hide the controls. 
Bugsmashing Feedback 
Underscore on console touch keyboard works great!
Empty command line file fix confirmed. (I like to keep it empty for vanilla.)

BUT water alpha no longer works. I tried different values of r_wateralpha but no luck.

Bug report:
When the player camera is looking too far up or too far down past about +/- 80 deg, the turn direction flips and rotates the view the opposite way. Expected:slide thumb right looks right, slide thumb left looks left. The wierd part is that it only seems to happen if I make one continuous thumb swipe that looks up/down and to the side in a sweeping thumb arc such that the view moves past a certain threshhold angle for pitch and only then does the yaw reverse. If I make quick single swipes it works correctly regardless of view pitch. 
Galaxy S9 
Very excited for this, but when I run it I get a blue screen tint to the screen as the opening demo plays. I can't access any menus at that point so the demo keeps playing with a blue tint to everything. I am testing with a Galaxy S9- any ideas? Thanks and congrats to Baker. 
Just to clarify: Can you open the menu? There's a small triangle on the upper left side of the screen that opens the menu.


One other control suggestion to think about: Double-tap forward to jump. I think this would be a very elegant option. When I release forward I still have a tiny bit of momentum. That gives me a little time to jump by double tapping. Even if you use the radial / virtual joystick control scheme I think this would work. Would eliminate the need for 3 buttons on the left side of screen. 
Meant to type "eliminate the need for 3 buttons of the right side of the screen down to 2" 
That's unfortunate. This was tested on a Galaxy Prime (64-bit) before release.

My only ideas are reboot the phone, make sure you aren't out of storage -- but that is probably not much help.

Sorry that it isn't working on your phone. 
re: water alpha ... are you sure? Type r_novis 1 in the console.

The looking down beyond your feet -- you can't look down more than all the ways nor can you look up more than all the way. That kind of behavior is baked into Quake on client side, server and input side. I know what you mean though.

@dumptruck - I'll be getting around to controls. The double tap to jump for instance sounds right. 
I don't know that this would help, but I think what I will do is make it so any tap opens the menu during the start demos.

I'm not sure that this will help with what you described.

I'll be doing another update in a few days. 
Blue Screen Tint 
I've seen something similar mentioned in the SDL bug tracker/forums, = not sure if it's relevant: 
Wierd, wateralpha is working now.

Looking up/down: the issue occurs before the pitch ever reaches full 90/-90. It is a matter of swipe right/left during up/down inverting once the pitch changes around 80 or so during the same swipe. Inverting = swipe left to look left actually stops turning left and starts turning right within the same continued touch if you look far enough up or down within that same continued touch.

Bug report: if a console command fails, e.g. map not found, the full screen console no longer registers the touch and does not bring up the touch keyboard. You have to start a new game before the console registers touch again. 
@ericw, @qmaster 
@ericw - Thanks for the link. According to that, it seems to imply that specifying the color format RGBA 565 might solve virto's tint problem.

SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 6);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 5);

@qmaster - Another great catch -- yeah, I'll check to make sure console forced up allows access to the on-screen keyboard in the next version. Quake thinks it is in the game, but it isn't. 
@Virto - Special Build For You Try 
QuakeDroid Virto Blue Screen Fix Attempt

If it works, ericw is your hero!

I attempted to locate matches to the symptoms of your problem but never would have found that link. 
Blue Screen Fix Worked! 
Just tried it- works perfectly now! Great work! 
Great! Glad to hear it! We're batting 1000% again.

My greatest fear on release was the diversity of the Android platform from models to Android versions to processors.

/Mega-thanks to ericw! It could have been weeks before I came across that kind of information! 
Sepulchre Support? 
I suppose your support implementation differs than Quakespasms, because I still can't play aristical's map in dm4jam because it is greater than 80000 verts. I haven't actually tested AD itself yet though. 
I didn't go full dynamic. I want to see if a minimal skinny implementation worked first. I'll go full dynamic next version so there is effectively no cap. 
Neither Mark V nor QuakeDroid can load Artisitical's map. We even put a "this map requires Quakespasm" warning in the dm4jam start menu before the teleporter to this level. 
I Know 
I just wanted to test it after Baker added sepulchre support to QuakeDroid, something MarkV doesn't have yet either.

I'm trying to get my Gunter badge for the month ;) 
Bug Report V2.0 
Just downloaded the new version this morning and reinstalled. It did update as the console now has an underscore.
I am still getting the lines on transparent water mentioned in posts #60 and #85.

Samsung J5 Prime still running Android 6.01 
Congrats On The Release! 
On my phone, the Huawei P9 lite Quakedroid works perfectly fine.
I wondered if my Kindle Fire HD tablet from 2012 could handle Quake, and the shareware downloaded perfectly fine, then it just got stuck on a white screen. Don't really bother about, only maybe. I bet you can find issues more important, I bet it will lag the hell out of the Kindle (1.2 Ghz Dual-Core, 1GB of total RAM) 
I'm glad it works well on your phone!

should run on any Android phone made in the last 5-6 years

For the 2012 Kindle, it might not have enough RAM or might be out of storage space. It could also be that the version of Android is too old. Also it is my understanding that Amazon rolled their own (outdated) Android especially on older Kindle Fire tablets.

Thanks for letting me know about the 2012 Kindle Fire. I think I know someone with one of those sitting around and I might be able to get ahold of it in a few weeks (at a minimum to satisfy my curiosity to see if I can get it to run).

You might be able to free up some space on it and still get it to work. 
I'm Fine On Storage 
Got at least 10GB of free space. Of the 1Gb RAM, it should still have 400 Mb free. Maybe. Just guessing, cause Amazon patched out the task-view. I can run a N64 Emulator though 
Yeah, sounds like you are fine on storage. My Android phone, storage is more of an issue (4 GB) and during testing I managed to run myself out of space a few times.

If you posted Quakeid1qconsole.log off your device folder pic via USB, I might be able to learn something useful about the crash.

(You usually need to restart the device first to see the file. Android uses MediaStore to keep track of files and rescans on boot, Quake doesn't have a good way to update MediaStore because it is a low-level native C application.)

1) You might try the APK for Virto I made in post #100 to see if that works. It tells the device the desired color format.

2) Seems from your description that video works (download flashes the screen, changing the shading as it downloads) and that download works.

Barring that, I have a friend of friend who I know had a 2012 Kindle Fire, but it won't be quick to get ahold of it. 
I'll have to play around. I'm hoping it isn't "luck of draw" depending on screen resolution. I modified the algo but apparently on some resolutions the draw stretches favoring certain columns more of liney look on the transparent water. 
I am pretty sure I have a 2012 Fire. Will confirm with you. This project is so cool I want to help out where possible. I can also test on other models. I have access to a Pixel and a 1st and 2nd gen Moto X. I'll report back. 
Could you check if your 2012 Fire has the problems that brassbite does? 
Yep. Will report back this evening. 
I Have An Old Fire Too 
Can't revall the year, 2013 maybe 2012. 
Unfortunately, my Kindle is from 2011 and gave the error: There is a problem parsing the package. Most likely the OS is way too old.

My wife has a much newer model. I will steal it and report back if I have any luck. 
Have A Log File 
And Another One 
This time I installed virto's build and got the same error 
Looking at the log, it appears the engine thinks everything loaded ok and it proceeds to start playing the demo.

Does it make sound in the background and just show a white screen while doing it?

Either way, I'll try to eventually get my hands on a 2012 Kindle Fire from a friend I know, just to satisfy my curiosity and see if I can get it to work. 
@Baker fantastic job, but would it be possible in the next release to rise The step left / right icons at the same level of the fwd icon. In my opinion this would lead to an increased playability. What do you think? 
I'm about 80% I know what's up with your Kindle and can fix it if it is playing the sound. I saw something in the log you posted that made me think.

@icaro - Thanks! I tried to make it very nice. Yeah, the controls need some tuning and it'll come. I've got a little bit of a queue at the moment. 
ICARO is right about the position of the move icons -- at least util a better control option comes along.

But while we're still using the current setup, I'll also mention, in addition to my previous preference for:


that the buttons along the right could be positioned like:

. . . . . . Jump
Change Attack

with the buttons grouped around the bottom right corner. That still puts all buttons close to the Attack button for easy access. 
Sorry, I'm A F K Until Friday Afternoon 
Away from Kindle

Have fun with other issues meanwhile 
Lol, Guess That Meams I'm AFK Too Until Saturday 
Feature Request 
When touching the hud bar at the bottom of the screen, still let the camera move with continuously held thumb swipe.

Have you been able to reproduce the camera reversing effect? 
@qmaster - I know what you mean about the "camera reversing", I haven't developed a plan to properly "clip the drag look" if someone attempts to look beyond where Quake will let them. And other one will be a yes. 
Hey, Baker! 
Good News! It's only a drawing bug! When I turned up the volume, I heard the familiar sounds of Romero blowing up the Zombies... 
Great! That's why I mentioned if it was playing sound.

The reason it is rendering white is your Kindle doesn't have an OpenGL extension allowing non-power of 2 textures.

When I had checked the source, I found I had commented out a couple of lines of code I wrote in the video section upsizing to a power of a 2 size. 
Doesn't Work On My Phone 
I'm getting the error: 'Not enough memory free; check disk space' but I have almost 2GB of free device space on the phone. It's a Galaxy Note 3.

Anyone have any ideas? I'm mot very good at reading code but that error message comes from here:

Could this be related to RAM instead? The phone only has 1GB of memory. 
It's RAM. It is also asking for more RAM than it needs. I'll reduce the RAM it asks for in the next release which I am hoping for Sunday.

If you don't want to wait, you could alter the command line how to set command line just putting "-heapsize 256000" without the quotes in the quake_command_line.txt or if that still didn't work, putting "-heapsize 192000" 
I've tested on some retired phones. What info would be most helpful? Model numbers? Frame rates? Happy to take some time and collate data for you. They are mostly older Motorola phones but all shapes and sizes.

I horde all our older phones for some reason. 
Ah! Thanks dude! Had a feeling a simple command line would fix it but didn't know how to do access it. Heapsize 256000 worked like a charm.

Btw, are the controls setup set in stone? Reason why I ask is coz I played almost the entire Quake II campaign on my Android phone ( ) and those controls felt much better and extremely smooth compared to the ones you chose. I'm mostly referring to the movement + mouselook. Also, they were customizeable. Maybe something to look into!

Great port btw. Thanks for making it! 
I'll work on the controls until everyone here is satisfied. I'll check out the QII4A link you provided.

I knew going into this that the controls would be the #1 that needed refinement. The touch-driven menu that allows things like touch slider dragging was the hardest part.

Controls will take a few revisions to satisfy everyone.

@dumptruck - I'm satisfied with the feedback we have on existing devices, we have quite a range of feedback on devices. 
I Had Q4A On My Old Motorola Moto G 
But it stopped working when I updated from Android 4 to 5. likely it counts for Q2A and Q3A too. All made by the same guy. 
I see the weird lines in the water surface only when I am actually inside the water.

And using a bluetooth keyboard, lookspring and "centerview" (bound to a key) just stop working sometimes, then they start working again, then they stop working again.... I can't really tell under what circumstances they stop working or start working again. 
As you are a power user, you don't have +mlook/-mlook anywhere in your config or binds do you?

Without checking, I do not believe "centerview" works with mouselooking on.

Since mouselooking doesn't apply to QuakeDroid, I haven't considered the possible interaction between the controls and +mlook/-mlook.

If this doesn't have anything to do your setup, let me know ... I'm thinking aloud a bit.
On the other hand, lookspring was extensively tested. Should work anytime you start moving. Again, interaction with +mlook/-mlook has not been considered -- if that applies. 
@gunter - Force Centerview 
You might try a bind like "-mlook; force_centerview; +mlook" and see what happens.

I give centerview some thought. On a desktop, there is no way to improve centerview but on mobile there actually is because on mobile you know if a look operation is in progress because it requires a specific action to occur (which is a drag has started obviously). 
I haven't touched mlook. And I can't replicate the problem again, after Quakedroid crashed and I restarted it. If it happens again, I'll try the force_centerview 
Upcoming ... 
Delayed some due to adding game controller support, which proved to be a few steps harder than expected.

(Required SDL2 upgrade which happened to require an entirely different Android build system than the version I had been using (no fault of SDL2, Google changed the Android SDK/NDK) then discovering desktop SDL2 and Android SDL2 aren't really the same when it comes to game controllers -- so a series of experiments was required discovering differences until it worked.) 
Any Update? 
On when dual thumbstick style touch controls will be added? 
I'd like to try to have controls "right" by the end of this week. 
QuakeDroid With Gamepad Support 
Download: QuakeDroid w/Controller Support source: here

* Gamepad support (oGkspAz, Gunter asked for)
* Rare blue screen tint issue RGB565 (virto)
* RAM issue (brassbite)

Features the controller support implemented identically to Quakespasm, adapting the battle-tested controller code written by ericw (who supplied a reference on how to it efficiently).

This beta is to get the gamepad support out the door while a much more comprehensive update is in the making, hopefully out late this week.

Button names LTHUMB, RTHUMB, LSHOULDER, RSHOULDER, ABUTTON, BBUTTON, XBUTTON, YBUTTON, LTRIGGER, RTRIGGER. The DPad acts as arrow keys (and also supports diagonal movement), left stick moves, right stick looks (swappable). 
Glad to hear you got it working! I can test an Xbox 360 controller on my tablet later today. 
I would test this... but... my little Dell Venue 7 tablet has decided that it is dead now. :u

I shall have to acquire another Android device.

Also, you need to add that gamepad support into Mark V as well. 
@ericw, @gunter 
@ericw -- I ended up writing a short story about it on the SDL2 forums explaining how it behaves differently on Android vs. desktop, perhaps for the benefit of someone else using SDL2 on Android.

I'm approaching QuakeDroid from a "perfect prototype" mentality from a user perspective. Or at least trying to. I'm only human.

Butane provided a link to q2 android (qii4a) and I saw that the DPad worked with my controller so I wouldn't accept the DPad not working in QuakeDroid -- a small addition beyond what your existing code did.

@gunter - aw that sucks. Sorry to hear that :( 
Controller Would Make All The Difference. 
Hi guys,

I like this project a lot, and would love to get all my fav quake mods up and running on my android. But its damn near impossible to play without a controller.
I have a MOGA hero controller, is there any way this can qork with quakedroid? What to I have to do so set it up? 
Make sure you installed the special build a couple posts up.
Pair your bluetooth input device.
Go into Quakedroid
At this point I was able to use the DPad and LStick (A- and B-Buttons) for Menu Navigation.
Ingame the walk and look stick were working.
Then I went to options and to controller options and rebound all the necessary buttons.
My gamepad: Gamesir G3s, can recommend, really noice 
My setup:
R2: shoot
L2: jump
L1: last weapon
R1: next weapon
Had a blast playing, much more fun than touch. Don't get me wrong because I got along quite well with the touch controlls.

Sadly the Kindle still shows a white screen whilst playing the demo with sound. I'm looking forwards to the other graphics of Mark V coming to Quakedroid soon, or what I think I saw in the screenshot. :D 
"@gunter - aw that sucks. Sorry to hear that :( "

Heh, thanks.
Ya know, it really does suck! Hah, it's way more stressful than it should be when one of our little tech devices kills over.... But it served me well, daily, for the last 4 years. I think something in the hardware gave out, because factory resets do nothing.

In any case, I've found a nice little 7" RCA Voyager Pro Android 6 tablet on for just under $50. Gets high reviews. And comes with a nice little keyboard case and free 2-day shipping, so I should be back up and testing Quakedroid in a couple days. 
@apm - Thanks! Always nice to have more interested parties. Like brassbite said, should work.

@brassbite - I only added controller support in that beta but I think I'll do another incremental and throw that in plus, if I am fortunate, a 2nd with what you correctly saw in a screenshot :D

@gunter - Awesome! That's funny that it comes with a keyboard too for under $50. 
I didn't have any luck with my Xbox 360 wired controller. (no buttons/axes had any effect). Here is the qconsole.log:

It doesn't look like it was even detected as a joystick? 
Hmmm. Does it show as a bluetooth device in Settings->Bluetooth?

I suspect it is not showing as a joystick to SDL, but in the next incremental I'll add a warning for devices that cannot be opened (I can't entirely rule this out, I'll have it print unopenable devices in the next incremental).

I posted a code block @ insideqc code that shows what it does when considering a device. Note it always prints something and didn't for your XBox 360 controller.

I have the number of buttons check to exclude the accelerometer.

By the way, should you ever be interested in compiling, it is rather straightforward and I'd be happy to assist. 
GL QuakeDroid Beta - Fog, Alpha Textures, Mirrors, ... 
Download: GL QuakeDroid
Screenshots: Rubicon 2 Honey QMB Option

Suggested: if QuakeDroid has been loaded before ...

1) Settings->Video Options->Brightness: Texture Gamma
2) Settings->Preferences->Autoscale: Auto Large
3) (Option) If you want QMB particles Preferences->Effects: QMB

The above are new default settings but would be off in an existing config.cfg. 
Re: Xbox Controller 
It's a wired USB controller connected to a "USB->USB C on the go" adapter. I actually don't have any other games to test it with so I need to do some more testing on my end, and I'll try compiling myself this week and see what's happening. I'm worried that the SDL "Joystick" api won't be compatible across different joysticks. As I understand it, they added the "Game Controller" api's to SDL2 as a layer on top of the Joystick API to give a consistent view of joysticks, so when the API says "left stick" or "A button" etc., it's actually that stick or button on the joystick.

Whoah - GL support! Nice! 
Runs well for me, but can the GL error pop-ups during startup be suppressed please? At least for second and subsequent runs? Having to click through 4 or 5 of them every time gets old real fast. 
Whoa! I get zero GL errors during run, but I did the build in debug mode in the event someone had issues.

I'll suppress those in the next incremental and instead record them to log, but I want to know what they are. 
See the Butane qii4a post/link for an APK download for a different game with controller support.

Regarding the SDL2 joystick API ---

This is all new to me -- that being said, I looked at the SDL2 2.0.8 source code and it leverages native Android controller support which is extremely robust and standardized and mature.

So I am thinking the controller support is going to work almost universally.

Nonetheless, this is the thread where we find these things out ... 
@mh - Part 2 
I want to see more feedback, but the fact you have GL errors already annoys the hell out of me. I spent time studying the OpenGLES specs and was under the impression that it was pretty damn standardized.

/Pioneers, arrows in the back -- this is the whole purpose of exploring engine developing and killing these kinds of things, but damn ... 
GL Errors 
Here's what I get; it's an el-cheapo Nokia 5 btw.

First is "Alert: GL_EXT_texture_filter_anisotropic" but no other info.

Then a 1280 at line 221 in GL_Evaluate_Renderer_CheckExtensions.

Then another 1280 at line 222, same function.

Then a 1280 at line 223.

Finally one more 1280 at line 224.

Following which it loads and runs fine. LIT files work, and VIS files also seem to do so; I have a bunch of them in a pak2.pak so I'm assuming it's getting them (I've deliberately avoided reading the code for feedback purposes). 
Alright, well -- gives me an action plan.

And I'll act on it and address in the next build. 
Still Trying To Get My Moga Hero Controller To Work 
which is unfortunate because i really want to have quake (and all the expansions) on the go.

the controller can controll the phone in the moga pivot app so its not a bluetooth thing, the controller works, but does nothering in qd.

please could you suggest a controller which you think is best to use for quakedroid. (im willing to pay for a new one just for this project).

I dont think my moga hero can work with quakedroid, i sure cant get it to work. I dont even know if it works outside of moga pivot games, confusing.

If anyone does mange to get this working with a moga controller please let me know so i can know if its worth persisting with this controller.

Might be worth considering moga support for quakedroid, seeing as i think it's a popular controller? Let me know what you think. 
brassbite suggested a controller.

My controller, a ERO VR was $19.98 at Walmart. 
Make that EVO VR.

/Typo corrected 
You might try to see if your controller works with

When I was setting up my controller, the greatest initial difficulty was correctly pairing it with the device. I had to hit a certain combination of buttons to cause it pair as Android vs. pair as iPhone and my initial pairing was wrong.

I had to unpair the device entirely and then pair it again to get it to work right.

While the device was paired improperly, it still showed as a bluetooth device, but didn't work in any game.

GL QuakeDroid Slight Tweak (resolving Mh Startup) 
Download: GL QuakeDroid April 18 2018

@mh/GL_EXT_texture_filter_anisotropic glerrors and notification no longer happen. 

Won't be able to test until 6+ hours time at the earliest (it's the warmest day of the year and I have seasides to walk along, beer to drink and pizza to eat!) 
warmest day of the year

It was literally like December at 7 am this morning in Ohio with light snow. I'm a "cold weather coder" so that actually is quite ok by me. 
Having Issues With PS4 Controller 
Both Bluetooth and wired connections are fucked. HOWEVER, it's not QuakeDroid. There are 3rd party options to solve it but I'm not rooting my phone to play Quake or any other game.

I tried the Steam controller had a little bit of luck but the right pad acts as a mouse cursor. Sadly the orientation is for portrait and the mouse doesn't work as an input device for the software anyway.

Any suggestions would be appreciated. I'd like to buy a Steel Series controller for this but a bit gunshy at this point. 
@dumptruck - PS4 Controller Android Article 
This article may help you:

There was a dark time, long, long ago (six years or so), when Android was still a platform in its nascent stage, and to really unlock its best features, you had to root your device. Well no more. One of the many things you can do now without rooting is connect your PS4 controller to your Android phone or tablet via Bluetooth.

This is also this article: 
@apm - Mogo "hid Mode" 
Some reading/researching around ... you might look into trying to set HID mode.

HID refers to the gamepad protocol inherently supported in Android™ devices running 3.0 and higher.

Both my EVO VR gamepad and my external bluetooth keyboard use HID mode.

MOGA's Pivot app has yet to be updated for Android 5.0 compatibility

However, certain MOGA gamepads (not all) have a HID mode switch on them that let you use HID mode with games.

"How to connect moga pro controller thru hid mode" 
Thanks for the links. I've been able to pair the devices as shown in the links above. I believe the PS4 is defaulting to HID mode already as I can navigate the phone's UI as the guy showed in the video.

What happens is that I can use the X button IIRC on the controller and the analog sticks do work - which is a great start - but as soon as I press the other buttons the whole thing blows up. The view pans up and the QuakeDroid menu behaves as if the up button is held down.

I think re-configuring the buttons is probably the fix I need but the app you linked is out of date and unstable per the developer. I am going to keep searching and will report back.

There are other apk's that are out there that require rooting my phone to fix all this that I won't even bother with. I'll probably just get a different controller eventually. But I'm tantalizingly close on the Ps4 Dualshock. 
@dumptruck - Made For Android 
The SDL2 library controller support is for the gamepads that were designed to support Android out-of-the-box.

I guess it is natural that some users with existing PS4/XBox/Steam Controllers are going to try to use those with their phone/tablet, but those aren't the "Works With Android" controllers that the SDL2 library supports.

They may work or not, may require Google Play button remapping apps or what not. The mileage on that is going to vary.

The best I can probably do with that if someone like yourself gets it to work with, say, a PS4 controller, is to make note of your post and perhaps eventually throw a link on QuakeDroid page. 
Obviously, I do hope you get it to work. 
And if you do, I'll accomodate the info on a "using PC/console info" page or similar on the QuakeDroid page. 
@apm - "B Mode" 
“B” mode works with Android devices running Android OS 3.1 (Honeycomb) or higher.

According to this link, you may need to switch your MOGO to "B" mode. 
2 things. I was really only attempting it because I read that you can use PS4 controllers on Android and thought "what the heck." But as with everything it's a rabbit hole, time-suck thing to get working.

Even Sony's Android specific streaming solution is limited to specific phones OR you need to root the phone (and *then* you sign into your PSN account --- fuck that noise.)

The other reason I'm trying this is to just add to the knowledge base here on the thread. So, please don't research too much on my account!! I asked earlier as I was hoping against hope there was somethin I was missing.

After work I'll hit Fry's and see what they have for Android controllers. I had a Steel Series for iPad and I do think their products are excellent overall.

Anisotropic Filtering/GL Error Pop-ups 
Confirming that everything starts up clean now.

An interesting observation is that the texture filtering options don't work either. My guess is that there's a bug with glTexParameter calls on this device, and that your code is otherwise fine. 
When I was trying to get it to run, if I recall correctly OpenGLES 1.1 doesn't support the texture filtering options docs.

In head, I was planning OpenGLES 1.1 first and then convert to OpenGLES 2.0 using RMQ engine GLSL as a guide.

But getting OpenGLES 1.1 to work was more time consuming than anticipated. Also I was met with challenges like non-supported draws like GL_POLYGON (easy --> GL_TRIANGLE_FAN) but more complex ones (GL_QUAD_STRIP) slowed me down a bit.

Plus limitations like the typical mobile NPOT extension GL_APPLE_texture_2D_limited_npot (despite the name Android uses this commonly) can't be used with clamp to edge textures (if I recall).

So more can definitely be done on the rendering side of things over time. 
Hrm. Trying the latest version on my new Android 6 tablet, the screen does not auto-rotate (flip). That's a problem because my keyboard case connects to one side of the tablet, which means UP is a certain direction, but QuakeDroid does not agree that this direction should be the UP!

But my bluetooth gamepads work flawlessly with no problem. I use an iPega 9023 v2 (suitable for tablets 7" and larger) and an iPega 9055 (suitable for smaller phone-size devices). These controllers actually hold the device, basically converting your phone or tablet into a portable game console. 
Is it upside down from what you need?

I could add a setting possibly in video options to flip it.

dumptruck also said for his phone it was "upside down".

/Awesome your gamepad works flawlessly. 
All the phones I tested QuakeDroid on are "flipped" like this. They are all Motorola phones from the past few years.

Moto X Pure (aka Style)
Moto Mini
Moto X (1st Gen)
Motorola RAZR 
That second one should read Droid Mini - but it's still a Motorola. 
GL QuakeDroid Alternate Landscape Build 
Download: GL QuakeDroid Alternate Landscape

I'll end up making this a setting in video options later. 
I can't speak with certainty for whatever tools you are using to build this, but with Android development stuff, auto-rotate should be a simple switch somewhere, along with limiting it to either portrait or landscape modes. I mean, it's basically built-in functions in Android to detect which direction is UP and rotate the screen accordingly; you just have to set the game to allow it when developing. Of course, I have played games where it is locked to one position... so it may not be something that is easily set in all development tools. I just know that when I made my little android games ( ), it was a very simple setting to allow auto-rotate in landscape modes only.

If that's not an option, then I guess a menu setting would suffice! 
I think I'll default the landscape to the "gunter/dumptruck" preferred kind. Looks like that should be normal. And then I'll put an option in video options to flip it. 
The alternate landscape build should solve you issues for now. Let me know. 
I guess it's cold out today! :) 
Btw, Baker I did get it to build in Android Studio with no issues - nice!

Double checked the joystick initialization code and SDL is just returning the accelerometer and no joysticks for my setup. I think my tablet may just lack the Xbox driver, as it's a running a customized android, so I probably can't help test at the moment. 
I'm glad compiling went easy. I try to make things easy to compile :) I did a reinstall clean compile, but hadn't tested fresh on a different machine.

I actually don't use Android Studio (it must be installed for the toolchain).

I go to the Android folder where there are several .bat files I made ...
1) (Done just once) make_symlink.bat (hooks up SDL2 folder)

2) gradle_assembleDebug.bat (compiles)
3) adb_install.bat (installs apk to phone)
4) (optional) adb_debug.bat (open a window with live log prints as it runs)

Because the Android compile process is rather slow ... I typically make sure Visual Studio will compile the Windows version of the engine (in 3 seconds Visual Studio will tell me if I am missing a semicolon, the Android process will take 2 minutes to tell me such a thing). I also have a "Fake Android" configuration in Visual Studio with the right preprocessor defines for Android so I can easily work with the code.

/And as time moves on, I want to see if I can speed up the Android compile. Sadly the gradle build system documentation for use with the Android NDK (native C/C++ dev kit) is basically non-existent. 
Well, I played for a little while on FvF and got the same crash as my old device:

Cache_MakeLRU: active link

Also, I feel like the "Invert Mouse" setting should also invert the look axis on the gamepad (right joystick).

Other than that, gamepad control feels really good. Perhaps the "Dead Zone" (the amount you can move the joystick before it counts as moving the joystick) for looking up and down should be a little larger as compared to the dead zone for looking left and right. Most of the time you don't want to look up and down but it's not too hard to accidentally let the joystick drift up or down a bit when you're looking left and right.

When hiding the onscreen controls (from keyboard use), there's no need to disable touchscreen aim. 
Check this out for a picture of my awesome Quake rig running QuakeDroid: 
I've been focused on getting the OpenGL build up and running, so I haven't had the time yet to hit the everything on the todo list (especially a lot of qmaster items). But they'll happen ...

For the "active link" I either have to acquire the Quakespasm SDL sound mixing code that they acquired from ioQuake3 or read mh's cache system redesign tutorials and redesign the sound cache system.

For deadzone and company, the following cvars are available and they all save to config.


Since I use adapted ericw/Quakespasm controller support, I would prefer to leave the default values unchanged. 
So I Dug Up Some Old SonyXperia Phones 
And you know what?, it is working perfectly here.
Great thank you Baker, this is nothing short of awesome!

My smile starts to hurt already.

Thx again. 
Re: #186 Alternative Landscape Build 
Just a few things I noticed while messing around with it this morning:

In Options when Autoscale is set above "Auto Small" setting (medium and large) the white test descriptions do not match the currently selected item. So the Crosshair description reads: "Screenblend underwater, powerup..."

My screen resolution is defaulted to 2392x1440 BTW.

Another thing I noticed in Video Options changing Pixelation settings has no effects. It remains set to default GL smoothed regardless of what the selection reads.

While I was typing this I had QD looping through the demos so I could type the right settings for you. While on one of the demos the app gave error:

Chache_UnlinkLRU: Null link

When I touched okay the app crashed to home screen. 
Typo Above 
should read: Cache_UnlinkLRU: Null link  
Hey It's Mfx! 
@mfx - Thanks!

@dumptruck - another fine catch! Shall be addressed. The LRU link active deal will be fixed either tomorrow (if time permits) or late Sunday.

The next release will have a QuakeDroid (GL version) and a QuakeDroid WinQuake and I'll have to reorg the QuakeDroid page some to reflect the new changes. 
Post A Reply:
Website copyright © 2002-2017 John Fitzgibbons. All posts are copyright their respective authors.