WIP ioquake3-nx - an ioquake3 port

Discussion in 'Switch - Emulation, Homebrew & Software Projects' started by fgsfds, Sep 20, 2018.

  1. fgsfds
    OP

    fgsfds GBAtemp Regular

    Member
    5
    Aug 28, 2018
    Russia
    ioquake3 on the Switch.
    Github repo: /fgsfdsfgs/ioq3
    Latest version: 0.2.0 (Mar 18, 2019)
    Download link

    Warning: Spoilers inside!

    Some of the features of the port:
    • hardware accelerated rendering;
    • sound and music via OpenAL-Soft;
    • multiplayer (I think it works?);
    • analog controls and shit.
    To install it, unzip ioquake3nx_020.zip to the root of your SD card, then copy the baseq3 folder from your Quake III installation to /switch/ioquake3/. DO NOT overwrite any files if asked.
    Your baseq3 folder has to have 1.32 Point Release patch data in it (.pk3 files pak1.pk3 through pak8.pk3). ioquake3 will complain and crash if they're missing. If you don't have those files, you can get them here.
    For more information on how to install and run ioquake3, including how to use it with the Quake III demo, visit their wiki, just keep in mind that your "game directory" is /switch/ioquake3.

    Some notes:
    • if it crashes and exits back to HBL/Horizon silently, check /switch/ioquake3/crashlog.txt to find out what caused it;
    • you can change the resolution in System options, but real 1080p is currently not supported;
    • you can rebind controls in the Controls menu, analogs are also bindable;
    • in menus, A acts as the Left Mouse Button, B acts as the Right Mouse Button and the left analog moves the cursor;
    • you can bring up swkbd in menus by pressing L, but it works slightly weird: stuff you enter will just get added to the end of the input field, to edit it you have to move the in-game cursor and use R to delete characters;
    • you can also bring up swkbd by entering showosk in console, you can also bind the command to a button in q3config.cfg and use it in-game;
    • you can host and connect to servers from the serverlist or by entering the IP ("Specify" button);
    • you might notice that this is an almost exact copy of the NXQuake, Quakespasm and NXQuake2 threads, because I really can't be arsed to come up with something new;
    • right analog sensitivity is controlled by the console variables j_pitch (up/down) and j_yaw (left/right), you can edit their values in q3config.cfg;
    Known issues:
    • mods are probably supported, but only ones that have q3vm files, as the port cannot load dynamic libraries;
    • sometimes exiting the game via the Exit menu button hangs it, feel free to exit using the Home button when that happens;
    • Q3VM runs in interpreter mode, since it has no JIT compiler for aarch64, which means it's pretty slow;
    • some stuff, like connecting to modded online servers, requires more memory than is provided in applet mode, meaning it will crash the game unless you run it from NSP hbmenu, make a standalone NSP out of it or properly set up hbloader in Atmosphere.
    Credits:
    • these people for ioquake3;
    • fincs, Armada651, Subv and probably others for their work on the OpenGL/mesa/libdrm stuff;
    • jfenton for PRing libnx 2.0-related changes;
    • some nice people in the ReiSwitched Discord for help and testing;
    • id Software for the game itself.
     

    Attached Files:

    Last edited by fgsfds, Mar 18, 2019 at 2:24 PM
  2. Milenko

    Milenko GBAtemp Advanced Maniac

    Member
    9
    Oct 16, 2017
    Australia
    You're a madman, awesome work!!
     
  3. Conex

    Conex Advanced Member

    Newcomer
    2
    Jul 21, 2018
    Australia
    Shit i cant wait for this one to fully work online..... so good
     
  4. sj33

    sj33 GBAtemp Psycho!

    Member
    12
    Oct 22, 2013
    Japan
    :D Fast work, amazing!

    We're reaching the point where we should be recommending the hbmenu nsp for extra RAM.
     
  5. Milenko

    Milenko GBAtemp Advanced Maniac

    Member
    9
    Oct 16, 2017
    Australia
    Or installing these as nsps
     
  6. sj33

    sj33 GBAtemp Psycho!

    Member
    12
    Oct 22, 2013
    Japan
    Personal preference of course, but when homebrew is distributed as a .nro then it's simpler for end users to recommend hbmenu itself.
     
    Milenko likes this.
  7. kikongokiller

    kikongokiller GBAtemp Advanced Fan

    Member
    8
    Jan 12, 2017
    Australia
    My God, you're really on a roll with these. Keep it up.
     
  8. sj33

    sj33 GBAtemp Psycho!

    Member
    12
    Oct 22, 2013
    Japan
    By the way, does Team Arena work yet or will this require more work?
     
  9. Milenko

    Milenko GBAtemp Advanced Maniac

    Member
    9
    Oct 16, 2017
    Australia
    Any reason why it doesn't show up in the sx os menu?
     
  10. fgsfds
    OP

    fgsfds GBAtemp Regular

    Member
    5
    Aug 28, 2018
    Russia
    I don't actually know. It might?
    I have no idea.
     
  11. Admiral-Purple

    Admiral-Purple Member

    Newcomer
    3
    May 25, 2018
    United States
    Works great using reinx and hblauncher as an nsp. Getting steady 60fps with 720p resolution and high quality skies turned off.
    Would it be possible to map the d pad buttons to navigate the menu options in addition to the left joystick?
     
    Last edited by Admiral-Purple, Sep 20, 2018
  12. Milenko

    Milenko GBAtemp Advanced Maniac

    Member
    9
    Oct 16, 2017
    Australia
    Now no controls work when the match starts?
     
  13. fgsfds
    OP

    fgsfds GBAtemp Regular

    Member
    5
    Aug 28, 2018
    Russia
    Kind of sounds like your q3config. cfg got reset or corrupted. You can overwrite it with the one from the release zip, or rebind stuff manually in the menu. Keep in mind that the game is subject to exFAT corruption when you close it with the Home button instead of quitting using the menu option.
    Yeah, it's possible. I kind of forgot to do that, I'll add dpad controls in the next release.
     
  14. Brunz514

    Brunz514 Member

    Newcomer
    2
    Sep 4, 2018
    Canada
    Cant wait to try this, amazing work keep it up dude! Hopefully Half Life is next on the list!
     
    sj33 likes this.
  15. TimeDevouncer

    TimeDevouncer Advanced Member

    Newcomer
    3
    Jun 7, 2018
    Spain
    Amazing! I can't wait to play this great game.

    Maybe Marathon 1&2, Heroes of might and magic 2&3, Abuse...?:grog:
     
    Last edited by TimeDevouncer, Sep 20, 2018
    Idaho likes this.
  16. Brunz514

    Brunz514 Member

    Newcomer
    2
    Sep 4, 2018
    Canada
    Just playtested on sx os 1.7 starting the game from hbmenu. Looks, plays and runs great, 60 fps for the most part with sum dips to the 40s here and there. Would having the nsp hbmenu unlock a little more power too keep it and future homebrew at higher fps?
     
  17. sj33

    sj33 GBAtemp Psycho!

    Member
    12
    Oct 22, 2013
    Japan
    It would allow access to 3GB RAM which surely has an effect on framerates.
     
    szczuru and Brunz514 like this.
  18. Brunz514

    Brunz514 Member

    Newcomer
    2
    Sep 4, 2018
    Canada
    Once I start installing nsp files are they tied to the nand in someway? So far i have just used my switch for emulation, homebrew, modding skyrim and a couple back ups. No freeshop or other nsp files ever installed, will this increase my risk of being banned?
     
  19. ShadowOne333

    ShadowOne333 GBAtemp Guru

    Member
    18
    Jan 17, 2013
    Mexico
    Oh what the fuck?
    I wasn't expecting Quake 3 to appear out of nowhere for the Switch haha.

    AMAZING!
    The Switch will for sure become the ultimate machine :D
    Can't wait for that impending Doom 3 port :P
     
  20. x0x0

    x0x0 GBAtemp Regular

    Member
    6
    Nov 15, 2017
    Poland
    Inside the code
    Awesome port :D
    Thank you for that.
    Question: Can you port Enemy Territory PLEASE :D
     
    Risingdawn likes this.