| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes since version 1.3.2 (2016-01-20):
1.4.5 (2018-04-27)
* Removed Google Analytics.
* macOS build now supports 64-bit.
* Minor localization fixes.
1.4.4 (2016-09-07)
* XInput now enabled by default on Windows (bypasses some controller
problems with Windows 10 Anniversary).
* Fixed phantom inputs when using XInput.
* Fixed -debuginput launch option not working when XInput is enabled.
* Added -disabledpad launch option to disable default mapping of the
d-pad.
* Updated input device profiles.
1.4.3 (2016-07-22)
* Added debug option to get more information about attached
controllers (available by launching with the argument "-debuginput")
* Updated input device profiles
1.4.2 (2016-07-12)
* Better handling of unrecognized controllers
* Better support for the Steam Controller on Mac
1.4.0 (2016-05-12)
* Four player support!
* New playable character skins
* Difficulty balances
* Automatic support for many controllers (including PlayStation
controllers) with no need to manually remap buttons
* Support for XInput controllers and rumble (Windows only)
* Displays PlayStation button prompts when using PlayStation
controllers
* Better compatibility with non-standard controllers
* Steam Cloud saves are synced cross-platform
* Ability to cap frame rate when vsync is disabled
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
Starbound not only needs libGL but also libGLU, so let's actually
include that dependency in its combined form (libGLU_combined).
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has been changed in NixOS/nixpkgs@6bf1421f13d667c2997b67728cf777c6,
so let's change it here as well.
Quote from the mentioned commit:
Implement libGL as a symlink package which uses libraries from
libglvnd and headers from Mesa (since ones from libglvnd are
outdated).
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* UI: Player colors are changeable in the lobby for the match
* UI: Available powerups can be customized in match setup
* UI: Exported animated GIFs have an end card with the winning hero,
date, and Steam name
Updates:
* PROTEUS: Scanner drone shock count reverted to 3 pulses instead of 2
* CRONUS: Bomb drop speed increased from 10 to 12
* CARMEN: Blocks take 3 bumps to remove the reflector shield instead
of 5
* CARMEN: Max simultaneous blocks reduced from 3 to 2
* CARMEN: Spam detection time window increased from 0.5s to 0.75s
after placing a block
* PHOEBE: Phoebe can't teleport back for 0.25s after teleporting
* RONIN: Spam count reduced from 3 to 2 slashes before cooldown sets
in
* GAME: Guardians deploy from powerup pickup position
* GAME: Land Grab default time limit reduced from 150s to 90s
* GAME: Birds will scatter from Aether's pound and Cronus' bombs
* GAME: More heroes can reliably buffer the next shot during their
ability
* NET: Host join key is persistent for the entire game session if the
region is the same
* NET: Last client join key used is saved for the session
* UI: Guardian shows an indicator over targeted players when they are
visible
* UI: Title & Invisigun electricity FX don't continue forever
* UI: Initial player choice is consistent (always begins on Selene)
* UI: Custom phrases show an indicator on the victory phrase dialog
* UI: Changed training pause label from "Exit" to "Menu"
* UI: Updated victory phrase character presentation
* UI: Lobby hero selectors show a loading spinner until they're ready
for input
* UI: Improved some powerup icons
* UI: Added some icons to options buttons
* UI: Smoother and more accurate replays and exported GIFs
* UI: Even faster animated GIF exporting
* UI: Replay GIFs show connection strength for online matches
* UI: Better mini powerup icons on the scoreboard
* SFX: Updated map loading audio cue
* GFX: Power shots have a subtle animation on the front of the
projectile
* GFX: Softer rolloff for lighting fx
Map updates:
* The Conundrum: layout adjustments
* Polar Express: minor tile swap, fewer ember spawns from the edges
Fixes:
* CARRIER: Fixed some bumping and positioning issues
* SELENE: Selene can't evade scanner drone detection by jumping
anymore
* SELENE: Fixed not being able to buffer a shot after a double jump
* CRONUS: Fixed issues with bomb trail timings when the game is paused
* CRONUS: Fixed drop target stopping when bringing up the match menu
during an online game
* CRONUS: Fixed soot tracks sometimes showing up where a player was
before stepping into soot
* PHOEBE: Fixed proper destruction of projectiles teleported under
mine carts
* PHOEBE: Added some failsafe checks to prevent Phoebe getting shot
immediately after teleporting online
* PHOEBE: Potential fix for getting shot right after teleporting
online
* EPI: Fixed real Epi disappearing from spectator view & replays while
ghost Epi is teleporting
* EPI: Fixed possibility for remote client Epi to teleport to ghost's
position on button mash
* EPI: Fixed ghost Epi not leaving soot prints from Cronus' bombs
* IRIS: More accurate powerup pickups while dashing online
* IRIS: Fixed occasional failure for client dashes to work properly on
remote connections
* IRIS: Fixed occasional inability to dash through proximity doors
* RONIN: Fixed some slash FX not showing up for remote clients
* GAME: Fixed incorrect bot showing victory pose
* GAME: Guardians could destroy the wrong shots if the original target
was already destroyed
* GAME: Fixed potential for mine carts to get stuck against some rocks
* GAME: Fixed conveyor belt speed and player positioning due to
physics timestep changes
* GAME: Potential fix for projectiles sometimes stalling
* GAME: Powerups don't repeatedly drop while the match is inactive
* GAME: Fixed potential for projectiles to sometimes ricochet in
diagonal directions
* GAME: Fixed potential for two orthogonal projectiles to sometimes
create diagonal cluster bombs
* GAME: Fixed players not being able to get hit by their own split
shots
* GAME: Fixed players being invulnerable to their own cluster shots
* GAME: Improved accuracy of cluster bomb spawn location
* GAME: Fix for hitting your own resisted shots if walking into them
with lag
* GAME: Fixed an issue causing short stun times canceling existing,
longer stun times
* GAME: Fixed occasional possibility for players to be invisible
during respawns or round resets
* UI: Navigating back from Match Setup after arriving from Host a
Match returns to Join Scene
* UI: Fixed incorrect "up" controller label on player selectors in
lobby
* UI: Fixed traning pause menu input label when switching between
keyboard and controllers
* UI: Fixed spectator replay controls when switching between keyboard
and controllers
* UI: Fixed flickering UI elements on instant replay following export
of GIF
* UI: Fixed erratic replay lengths, playback, timing and GIF exports
depending on device specs
Full upstream change log:
https://s3-us-west-1.amazonaws.com/sombr-invisigun/messages/ReleaseNotes.txt
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
| |
The first error is that there was a case statement fallthrough which was
actually unintended and is a bug in the ancient wildmidi used here,
while the second one was because of a structure that wasn't initialized
to zero before first use.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I explicitly didn't want to include a \0, but unfortunately with GCC 7 a
check is performed on the size of the format arguments and the build now
fails with:
'__builtin___snprintf_chk' output between 5 and 9 bytes into a
destination of size 4
The dereference of the str pointer gives us one byte, so the size of the
format argument will be 4 in any cases plus the 0 byte at the end. While
we don't need the 0 byte because it will be added later, it doesn't hurt
so let's use a maximum size of 5 to keep GCC 7 silent.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
These are the patches I forgot to add to
77a0f47d06f3d21b78c7f34a129bc3f75d69fbf7.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* Localization: Italian
* New Cerebrus map: Summit
* New Cerebrus map: Yinyang
* New Cerebrus map: Polar Express
Updates:
* CRONUS: Bombs no longer show nearby player indicator
* CRONUS: Bomb impact area powers up the longer the target is left out
* CRONUS: Bombs briefly show the impact area when a target is marked
* CRONUS: Bombs leave soot on the floor which makes players leave a
footprint trail
* PROTEUS: Scanner drone shocks tagged players 2 times instead of 3
* PROTEUS: Scanner drone re-deploy cooldown also applies to
self-destruction
* UI: Simplified lobby host info; better readability and presentation
* UI: "Join Code" is now known as a "Join Key"
* UI: Post-round scoreboard shows Steam nicknames
* UI: Post-match stats table headers changed to icons for localization
space
* UI: Reduced controller vibration in some UI scenes
* GFX: Better tile transitions in maps with very different adjacent
surface types
* GFX: Improved Selene's victory pose sprite
* SFX: Subtle audio cue when you first start moving to another tile, as
input confirmation
Fixes:
* CRONUS: Fixed an issue where the center bomb tiles spawned
simultaneously instead of staggered
* CRONUS: Fixed bomb trails damaging scanner drones by touching their
scan radius
* GAME: Fixed revealer carrying over to the next round
* CARRIER: Fixed carrier ball interactions while players are
teleporting
* UI: Fixed being able to quickly back out of scenes while they are
transitioning in
* UI: Fixed "Player Disconnected" popups when remote clients try to
join an active match
* UI: Fixed spam cooldown indicator still visible when a player dies
* UI: Fixed blank lobby region flag when joining a match in "ANY"
region
* UI: Fixed flag icon showing in lobby when connected via IP
* UI: Long controller names are truncated in lobby player selectors
* GFX: Fixed pit beasts sorting issues with sand piles
* GFX: Fixed y-sorting of Beast Tamer coins
* GFX: Fixed y-sorting of some fence posts on Ice Prison
* GFX: Fixed map objects showing proper bump FX over network
* SFX: Fixed music fade out when exiting challenge mode
Full upstream change log:
https://s3-us-west-1.amazonaws.com/sombr-invisigun/messages/ReleaseNotes.txt
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is quite redundant because autoPatchelfHook already scans all
shared objects and executables for dependencies and bails out with an
error if a dependency isn't found, which is similar to what we're doing
in installCheckPhase.
Removing this should also speed up builds, especially those with lots of
files.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
This is quite straightforward and very similar to most other Mono games
and even uses XDG directories already.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
On some occasions a captcha isn't needed for login (not sure exactly
when this is the case), so we really should just log in without it
instead of bailing out with an error.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we only checked for the source root by checking only one level of
directories, so for example if the source code is unpacked into
something like "a/b/c" and only "c" contains files, the previous
implementation would set the source root to be "a".
In addition we didn't do a check on the type of the contents, so for
example if the archive contains only *one* file, that *file* itself
would be set as the source root and the chdir to that will fail later.
What we do now is recursively search through directories in order to
find the last directory that does not contain *only* a subdirectory.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only fetch the data files from GOG here and use the port from
OpenPandora (https://repo.openpandora.org/?page=detail&app=albion_sr)
for the main game executable.
Instead of using the binaries of the static recompiler, this is
completely compiled from source and comes with a few changes in the form
of a few patches:
config.patch:
Hide the mouse cursor and set the default scaled resolution to
1280x960 (the window can still be resized) in the default
albion.cfg.
error-log-stderr.patch:
Whenever an error happens, the game usually creates a file called
"error.log", which contains the actual error message. This patch
makes sure the file isn't created but the error message is printed
to stderr.
scons.patch:
Fixes a few SConstruct/SConscript files to use the builder's
environment, so that it can find executables such as gcc.
sdl2.patch:
SDL 2 has dropped support for the keysym.unicode field at some
point, so use keysym.sym instead. This has the disadvantage that it
doesn't recognize key modifiers, so we might want to switch this to
use the SDL_TEXTINPUT event.
xdg-paths.patch:
We want to use XDG_CONFIG_HOME and XDG_DATA_HOME instead of writing
everything to one directory, so this patch makes sure that the paths
are correctly read depending on whether its an XDG directory or one
of the store paths of the game.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're in almost the same misery here as with HumbleBundle, because we
can't get stable download URLs with manifests for games that have an
"os" field of either "windows" or "osx".
Unfortunately, this isn't the only hoop we're going to, because similar
to the HumbleBundle fetcher, we need to solve a (re)captcha in order to
login (and I've been annoyed by countless cars, street signs, roads,
busses, store fronts, hills and mountains during development).
I tried looking for a way to get an API key similar to what itch.io is
doing, but the only mechanism in place is a temporary key which needs to
be refreshed using the old key after a while, so it's unsuitable for our
case.
The code currently is very much _not_ DRY, because a lot of it is copied
over and modified from fetchHumbleBundle, especially the captcha solving
application.
It's really a shame to see the same situation that we have for
HumbleBundle in GOG, given that HB is getting less DRM-free games these
days and GOG is DRM-free *only* (which is a very good thing).
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
A few attributes weren't re-added to the actual derivation, so for
example whenever we add buildInputs to buildUnity the attribute would be
completely ignored.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* New Cerebrus map: Back to the Future
Updates:
* RONIN: Slashed players will incur 0.25s of hard stun / push back, and
0.35s of soft stun
* PROTEUS: Scanner Drone won't continue to shock dead players
* PROTEUS: Next Scanner Drone has a 3s cooldown from the time the last
was destroyed (if shot down)
* CRONUS: Drop target movement speed increased from 0.17s to 0.15s per
tile
* CRONUS: Bomb hit time & lingering fire increased from 1s to 1.5s
* AETHER: Ground pound hit window is active for 0.25s instead of 1
frame
* GAME: Arx-515 teleporters are disabled for 1.25s while being used
* GAME: Reduced visibility time after firing from 0.75s to 0.5s
* GAME: Slightly reduced replay recording memory usage
* GAME: Improved presentation of players visible due to Revealer
powerup
* GAME: Players are snapped to the nearest tile when firing
perpendicular to movement
* GFX: Removed FX when revealer ends, which had the potential to reveal
real Epi's position
* GFX: Clarified readability of some boundaries on Aqueduct
* GFX: Powerup parachute drops are slightly transparent until near the
ground
* UI: Hero Profile demos properly show ability cooldown indicators
Fixes:
* EPI: Fixed cluster shots from ghost Epi breaking shields
* CRONUS: Fixed target disappearing on clients after attempting a drop
over a disallowed area
* CRONUS: Better drop target local simulation and feel for remote
clients
* MAPS: Added missing fence posts around holes on Conundrum
* GAME: Slightly increased physics step rate to prevent some
fast-moving collision misses
* GAME: Fixed bumping builder blocks destruction after the reflection
shield is already gone
* GAME: Fixed potential to get shot in your original spot after
teleporting online
* GFX: Fixed projectile collision visuals' positions due to high-speed
physics
* GFX: Fixed projectile collision visuals' positions on network clients
* GFX: Fixed exported GIF speeds due to vsync differences
* UI: Fixed occasional disappearing in-match pause menu
* UI: Fixed Proteus hero profile demo
* UI: Fixed insane speed when changing controller setup types using
analog sticks
* PREFS: custom config file will no longer be reset during updates
(after this release)
* PREFS: custom config file has option to disable fullscreen FX for
strobe-sensitive players
Full upstream change log:
https://s3-us-west-1.amazonaws.com/sombr-invisigun/messages/ReleaseNotes.txt
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
| |
Very similar to other games using Mono, but this has a similar problem
to what Opus Magnum had (see 523dcef1f77251a4cfeb3428a0b13c0ec1d9c342)
but instead of using Cecil for patching I'm using LD_PRELOAD instead
because the number of occasions we need to patch is not only higher but
also there are different constructors in use for System.IO.FileStream,
so patching becomes much much harder.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream changelog summarized:
* Switch to DirectSound on Windows.
* Remove iron-on patch link.
* The Hexstabilized Salt puzzle now requires 18 outputs instead of 6.
* Add a new journal issue that is entirely production puzzles.
* Add a hidden option that will hopefully fix some of the sound issues
that were introduced when we rewrote our audio backend.
* Add a new issue to the journal with some "battlefield medicine"
themed puzzles.
* The game's content files are now opened as read-only, which should
hopefully fix some of the antivirus-related crashes some players have
been experiencing.
* Atom spawn/consume effects on glyphs are now cleared when the
simulation is stopped, which should fix a bug causing "ghost atoms" to
linger on the board.
I've made this summary by picking the relevant parts of the upstream
Steam announcement page at:
http://steamcommunity.com/games/558990/announcements
The best part about the changes is that content files are now opened
read-only, so we can finally drop all that patching. This also is the
first time I can say something positive about AV software, so thanks for
bugging Zachtronics into fixing this issue for Nix as well :-)
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
Having a function in autoPatchelfHook that's unused inside the setup
hook is a bit of weird, because the actual usage is within buildGame and
thus it should stay there for now.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
| |
This is really not game-specific, so let's put it at the top-level and
also make sure we substitute all the commands we're using there, even
though a few of them are in PATH of stdenv so that it will always work
even when the programs available in stdenv should change someday.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we only matched the file name of the dependency but not its
architecture, so if for example there is one shared object for
i686-linux and another one with the same name but for x86_64-linux,
chances are that the wrong architecture is chosen.
Now we're checking the architecture of the shared object file and only
pick it, if it matches the architecture of the file to patchelf.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
This makes sure that ldd doesn't print warnings like if the file isn't
executable and also makes the status messages a bit more clear.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The semantics of adding env hooks has changed in
NixOS/nixpkgs@7f3ca3e21a22fd3101b40cadb86899542dec2e35 so that it's now
broken up into several hook variables (envBuildBuildHook,
envBuildHostHook, envBuildTargetHook, envHostHostHook, envHostTargetHook
and envTargetTargetHook).
Fortunately commit NixOS/nixpkgs@a036473a0a0c6100fce316e1444fc33ec6674b
adds a helper function (addEnvHooks) to deal this without referencing
those hook variables directly and rather just providing an offset.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't want this little helper to leave all kinds of junk on the disk,
so let's enable offTheRecord mode for the default QtWebEngine profile.
This in turn causes all stuff like cache, cookies, local storage and
whatnot to only reside in memory.
For example on my machine I had lots of files like this in
~/.local/share and ~/.cache:
* 014bxyklf1xm99jd5rg8y4q0blmqw6yc-get-captcha
* 18j0knrwrsamsrpwjz741midspxbqmpp-get-captcha
* 4817rvjnj249ifvk7dsvv2p0kxi2jwkg-get-captcha
So if you ran this helper you should probably remove *-get-captcha in
XDG_DATA_HOME (by default ~/.local/share) and XDG_CACHE_HOME (by default
~/.cache).
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch, @Sternenseemann, @layus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* New hero: Cronus
* New planet: Cerebrus (Kickstarter Cartographers' designs)
* New Cerebrus map: Temple Garden
* New Cerebrus map: Triple Trouble
* New Cerebrus map: The Four Seasons
* New Cerebrus map: Aqueduct
* New Cerebrus map: Ice Prison
* New Cerebrus map: Cold Storage
* New Cerebrus map: The Conundrum
* Localization: Spanish (Latin American, ES-419)
Updates:
* UI: Added ability to change the game mode in the post-match menu
* UI: Improved map thumbnails (reflects game-lighting)
* UI: Time-based game modes modifier increment changed from 10s to 5s
* UI: Changed UI title font to support more localization glyphs
* GFX: Cluster bombs match their owner's color
Fixes:
* UI: Fixed "FREE" resolution setting in windowed mode always reverting
back to fixed sizes
* UI: Fixed resolution / bluriness when using Alt+Enter to toggle
fullscreen
Full upstream change log:
https://s3-us-west-1.amazonaws.com/sombr-invisigun/messages/ReleaseNotes.txt
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream URL: http://www.zachtronics.com/opus-magnum/
For this I've ripped apart all of the bundled shared objects including
Mono itself, so we're using Mono from <nixpkgs> instead of the provided
one.
In addition to that I had to patch the intermediate language because the
game really doesn't cope very well when the data files are read-only,
which is the case in the Nix store.
Instead of replacing the CIL, I could have used an LD preloader as well,
but I think this is way less error-prone even though we had to patch a
few internal classes where we couldn't match the name properly.
Compared to this an LD preloader would involve patching several symbols
and also implement some logic to distinguish between files read from the
data directory and files read/written to XDG_DATA_HOME.
The reason why I added $HOME/Desktop to the required sandbox paths is
because the game saves gif images into that directory.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
This is not only useful for packaging games, so let's make it available
from the vuizvui scope, so we can use it from other packages as well.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
| |
For replays and custom phrases, Invisigun Heroes writes them to
"$HOME/Invisigun Heroes", so we need to bind-mount that directory to the
chroot as well.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
|
|
|
|
|
|
|
|
| |
If the saveDir isn't set the game only gets access to all the saveDirs
from other Unity games, so missing that attribute shouldn't be a deal
breaker.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
This is used for sandboxing and instead of letting all Unity games
access the data of every other Unity game we now restrict it to its own
save directory only.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now distinguish between paths that have to exist and paths that are
fine to skip during bind mounting.
So far we had hard failures whenever a path that needed to be mounted
didn't exist, for example something like $XDG_CONFIG_HOME/unity3d failed
whenever the directory didn't exist.
Apart from that we now have a more clean attribute structure for sandbox
parameters, which are now:
* paths.required: Created prior to bind-mounting
* paths.wanted: Skipped if it doesn't exist
* paths.runtimeVars: Extracted from PATH-like environment variables
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
This originally was in the nixgames repository but I accidentally
omitted the attribute emitting the error message during refactoring.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
We're going to add a test for our buildSandbox function, so we need to
have the buildSandbox function available from outside the package scope
and thus within the resulting attribute set.
Signed-off-by: aszlig <aszlig@nix.build>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* New powerup: Cluster Shot
* New powerup: Guardian
Updates:
* GAME: Blizzards vary in intensity, with max intensity slighty reduced
* MAPS: Adjusted Zone Control area on The Long Run
* GFX: Updated frozen player visuals
* GFX: More efficient pooling & performance for sprite trails (dash,
jump, etc)
* SELENE: Added a subtle jump trail
* UI: Updated some sprites to reduce buzzing on contrast-sensitive
monitors
* UI: Updated discord URL to the verified official address:
discord.gg/invisigun
* UI: Minor update to Epi's character image
Fixes:
* GAME: Fixed being able to act on an already-existing shot after
picking up Split Shot
* GAME: Fixed resistance & diagonal shot interactions
* GAME: More reliable slow-motion timing for end-of-round moments
* AI: Fixed several path-finding errors for bots
* AI: Fixed bots staying in place momentarily while soft-stunned
* SELENE: Fixed buffered shots still firing when landing on another
player
* RONIN: Slashing a player shouldn't remove their shield
* MAPS: Fixed asymmetrical issue on Snowergrown
Full upstream change log:
https://s3-us-west-1.amazonaws.com/sombr-invisigun/messages/ReleaseNotes.txt
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a crash when switching between weapons of the same type and also
adds category tags for the Steam workshop. The latter isn't really
relevent for us however.
The full upstream release notes can be found at:
https://playstarbound.com/133-patchnotes/
Tested using the games.starbound VM test.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
We already mount /etc, but it isn't quite enough, because it contains
files symlinked to /etc/static, which in turn is a store path so we need
to mount the closure of that path as well.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
First of all this is to bring down the amount of syscalls we're doing
but it's also useful to avoid errors when we try to mount a path over an
already mounted path.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
This is using buildSandbox with the addition of adding LD_LIBRARY_PATH
to the default runtimePathVars. I've also renamed the attribute to be
called runtimePathVars instead of runtimePathVariables, simply because
it's shorter.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On NixOS the LD_LIBRARY_PATH looks similar to this (depending on the
configuration):
/run/opengl-driver/lib:/run/opengl-driver-32/lib
However, we don't have these paths available within the sandbox, because
so far we've only used exportReferencesGraph to gather the runtime
dependencies after the build has succeeded.
This obviously doesn't take into account runtime dependencies from the
system itself.
We are now taking care of this by using the Nix store library to query
the requisities of all the paths that are contained inside path-like
variables (multiple paths delimited by colons) and mount them during
sandbox setup.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
This leaves sandbox.c with only the main() function and nothing else, so
that whenever we have a lot of binaries to generate, the compilation
time should be much lower now.
The change doesn't change anything in functionality.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
We're now using a makefile for building the sandbox and use pkg-config
to pass in the flags we need for compiling against lib(nix)store.
Right now the sandbox itself doesn't do anything different because we're
not actually using the (incomplete) code for querying the store.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
These paths are things such as /etc and /run but also the .Xauthority
file, which contains the cookie to connect to the X server.
What is still missing is access to the DRI libraries, which is a bit
trickier, because we need to add those store paths at runtime and we
need to also mount all of the dependencies.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've already pointed out in the previous commit that using /tmp for the
root directory isn't a very good idea, mainly because we can't access
sockets from /tmp (eg. the X server sockets).
So what we're now doing is using the store path that contains the
sandbox wrappers, because that very path won't be mounted into the
sandbox anyway, so we get a free directory just as an entry point.
This has the main advantage that we don't need to create any temporary
directories which we later need to clean up nor do we need to assume
that some paths might exist in the system. For example if we'd use /usr
we still have /usr/bin/env on NixOS, but if that's going to go away in
the future or we are on a distro that doesn't have it at all, the
sandbox setup will fail.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far creating the sandbox has been a setup hook, however it's a bit
ugly how we gathered the needed paths for the chroot file system by
recursively searching for store paths.
While I'd like to have the sandbox being built within the main
derivation, it really isn't very practical when the build takes longer
than 10 minutes.
With this implementation however the sandbox builds really fast and we
can also modify the sandbox without needing to rebuild a particular
game.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is basically to make sure various games can't write to whatever
they want in the file system, so it's not a complete sandboxing
solution.
Currently there's a drawback in that we can't easily determine the
runtime dependencies while building a particular game, so we need to
recursively dig through all referenced store paths to look them up.
A better solution for this would be to gather the build time reference
graph prior to building so that we can limit searching for these
references within only the actual build outputs instead of churning
through all inputs.
In addition to that, we currently mount the namespaced root file system
on top of /tmp, which makes the real /tmp unavailable to us. While in
theory this shouldn't be a problem, it actually turns out it is indeed a
problem if the application wants to connect to the X server socket,
which is at something like /tmp/.X11-unix/X0 for display :0.
Apart from these drawbacks we have a working solution for simple
applications (not games, because they usually require X), which now get
its own chroot with only the paths accessible that are strictly
necessary.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New features:
* NET: Join & invite your Steam friends through the in-game lobby menu
or Steam friends list
* GAME: Experimental fallback for unsupported controllers & generic USB
gamepads
* GAME: Added an achievement for completing the training
* UI: Your Steam nickname will show at the top left of the title screen
* UI: New lobby chat message: "I'm going to spectate this match."
* PREFS: Set your own data export path in the "config.json" file in the
game directory
Updates:
* GAME: The shield is only lost when dealt actual damage (not via
stuns, Yeti breath, etc)
* GAME: Lower chance of character repetition when choosing random
heroes
* GAME: More obvious shocked/soft-stun effect and audio
* GAME: Bubble Suit removed
* NET: Online play requires the latest version if there's an update
available
* AETHER: Aether is immobile for 0.3s after a ground pound
* AETHER: Aether's spam cooldown increased from 0.5s to 0.7s
* AETHER: Aether's pound has a circular radius of 2 units from his
center
* AETHER: Pound hard stuns for 1.25s
* AETHER: Pound pushback force is uniform
* CARMEN: Destroyed block rubble remains for 3s instead of 0.5s
* PROTEUS: Tagged players are slowed more (multiplier changed from
0.65x to 0.45x)
* PROTEUS: The Scanner Drone can't be self-destroyed while
pulse-revealing players
* IRIS: Spam allowed reduced from 3 to 2
* EPI: Epi has an ability cooldown of 2s if the ghost is killed (no
self-imposed cooldown)
* UI: "Join Public Match" is now "Quick Match" with an icon update
* UI: Searching for a public match in "Any" region is faster
* UI: More fun title screen news
Fixes
* GAME: Fixed projectiles having no velocity if split while being
reflected
* GAME: Fixed controller lockup in lobby when switching from previously
chosen player slots
* GAME: Fixed perma-visibility after teleporting while revealed
* GAME: Fixed disappearing revealer if it's pursuing a teleporting
player
* GAME: Fixed possibility that a Beast Tamer pit beast could spawn
outside the map
* AETHER: Aether no longer gets stunned if walking into a player that
he pounded
* EPI: Fixed real Epi teleporting to ghost Epi if inputs are triggered
twice in a frame
* UI: Fixed some lobby UI initialization before an online match is
created
* UI: Fixed edge cases that could cause a client to be stuck "waiting
for host" in the lobby
* UI: Fixed pause menu "Return to Lobby" button for Challenge Mode
* UI: Fixed color & bloom values in field guide
Full upstream change log:
http://www.sombr.com/pub/SIG/tools/ReleaseNotes.php
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
Most older games don't cope very well with PulseAudio, so let's add ALSA
so that a fallback is available. This is also very useful if
withPulseAudio is set to false, because this would actually mean "no
audio at all".
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Both of these games weren't working at all. Megabyte Punch was
completely broken and the expression wasn't even finished and Lovers In
A Dangerous Spacetime wasn't up to date (unfortunately we can't pin on a
specific version).
Megabyte Punch now also uses callPackage_i686, because it only comes
with a 32 bit binary.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
So far we only had all the functions within build-support for
builtins.currentSystem, but a few games we have within Vuizvui are still
i686-linux.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|