In Visual Studio. The link to source code is in the first line of the description.
YellowAfterlife
Creator of
Recent community posts
Changing these 3 lines to be
yal_strcat(commandLine, L"\\system32\\rundll32.exe \\"");
yal_strcat(commandLine, dllPath);
yal_strcat(commandLine, L"\\" frame_process");
and re-compiling the extension will probably fix that.
The extension was originally going to be more or less superseded by a better one (which you can see in action in Nova Drift) in March, but due to war breaking out in my country I’m not sure when that’s going to happen at this point.
I’ve seen this a few times on one of my projects - it seems to be a bug in JavaScript runtime itself as no JS error should straight up crash the renderer process (which Developer Tools indicate).
I’ll likely have to update the Electron version for this, but it’s usually a bumpy ride - right now GMEdit uses v11 (2021) while the latest is v18 and there are dozens breaking changes between them.
v9940 has HLSL loading functions (shader_create
, etc. - the 3d mod uses them I think), but I do not know if they will remain available since the extension I used no longer works in current GameMaker versions and my attempts to recreate it had very partial success.
Any “interpreter” for such a thing would be unbearably slow, which is also why integrated graphics cards struggle with shaders.
It is not a mistake - the usual approach is that you rewind the buffer with buffer_seek, write your data (which shifts the buffer position reported by buffer_tell) and then send that exact amount of data. Using buffer_get_size means that you’re sending the whole buffer every time - however large that is.
You have an asset named none
, which breaks an enum in GMLive (gml_thread_status
) that uses none
as one of the options. You’ll have to either rename your asset or edit two lines of code in GMLive script (enum gml_thread_status{none
, globalvar gml_thread_status_none;gml_thread_status_none=[gml_thread_status.none];
).
NTT works with DRM-free builds of Nuclear Throne, in which case it’ll offer to connect by IP-port instead of through Steam.
It is not possible to guarantee compatibility with pirated copies since pirated copies of games more and more often include malware, causing the NTT patcher to fail or degrading performance.
This wasn’t what I thought it would be:
In GMLive, I form a ds_map
for switch-cases that have a constant (number, string) expression for a value for faster lookup.
However, point_direction(0, 0, 1, 0)
isn’t 0
. It’s -0
, which is technically a different value:
I’ll think of what to do with this, but using floor
, round
, or int64(dir)
will indeed work for a workaround - it’s pretty hard to get a -0
outside of math functions.
Auto-completion tries to figure out the context - e.g. if you have
test=1+
<cursor here>
it is clearly an expression so showing repeat
is inappropriate.
Unfortunately, this logic is also not very smart, which isn’t something that is easy to fix.
Perhaps I’ll look into it when the war in Ukraine is over.
A path layer isn’t much of a layer - no points are stored in the room file.
I can potentially add path reloading in future - this doesn’t sound too bad, but there currently is a lot going on with Ukraine so it might take some time.
As a workaround, you can try disabling file system sandbox, loading the path YY file from project directory with a function like this
function file_get_contents(s) {
var b = buffer_load(s);
if (buffer_get_size(b) == 0) return "";
var r = buffer_read(b, buffer_string);
buffer_delete(b);
return r;
}
and then parsing the contents with json_parse
and re-populating path points using the various path_
functions.
I don’t believe GameMaker offers any access to this - sprites marked for use as tilesets are sliced up and padded during compilation (meaning that the tileset counterpart isn’t a “sprite” and can’t be sprite_replace-d), and there isn’t a function to replace tileset images at runtime. It’s hard to think of an elegant way around this.
You’d want to add a script like this
/// @description trace(...)
/// @param ...
function trace() {
var r = string(argument[0]);
for (var i = 1; i < argument_count; i++) {
r += " " + string(argument[i]);
}
show_debug_message(r);
}
However, the actual deal is that a layer isn’t recognized - I thought I’ve had everything covered (including effect layers) in the most recent version, so a sample wouldn’t hurt.