Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - time-killer-games

Issues Help Desk / Re: Adding Sound causes "Game returned -1073741819"
« on: October 16, 2020, 07:47:17 PM »
You can get the dll you need here:

But it should already exist in your MinGW installation and the one I uploaded is probably outdated at this point.

I can't speak for DirectSound without more information. I never had issues with it using wav.

run in debug mode and use gdb like mentioned on the wiki. Wait until it crashes and give us a pastebin of the backtrace.

Announcements / Video Player Extension for ENIGMA Early Access
« on: August 12, 2020, 08:21:44 PM »
The pull request will be more up-to-date than the information and download available in this thread.

To get the latest scoop on what progress has been made, please check out the actual pull request:

Finally, official video playback functionality is being added to ENIGMA.

Win32 games need these deps bundled with their games via an installer or self extractor:

MacOSX games need all of these deps in their app bundle's "/Contents/Frameworks" folder:

Linux and FreeBSD users may simply use their package manager as usual to install libmpv.
Android support is also possible since libmpv has an Android port, so that's all platforms.

For early access to this extension, use the installer scripts provided at this repository:


General ENIGMA / Re: OpenSuse Support for Enigma
« on: June 09, 2020, 03:22:07 PM »
yeeeaah boi

Announcements / Cross-Platform External DLL Functions Now Supported
« on: May 03, 2020, 03:22:16 PM »
Hey guys!

Robert fixed our Windows functions for calling DLL's so that they can use strings correctly. I decided to add to this vast improvement by making these functions work on Mac OS X, Linux, and FreeBSD. Mac is still broken so it's not tested on there, but there's no reason why it wouldn't work, once the Cocoa and Mac SDL platforms get patched.

Functions introduced by this extension:
- external_define(dll, name, calltype, restype, argnumb, argtype[0], argtype[1], ...argtype[10])
- external_call(id, args[0...15])
- external_free(id)

Example project demonstrating the use of external functions:

Example DLL source code:

This means nearly all GameMaker extensions for Desktop Platforms should now work in ENIGMA out-of-the-box, whether for GameMaker Studio or older versions of GameMaker. Although you will need to set a compatibility mode for the version of GM your extension is built for in order to get window_handle() working. The only thing to be done is to convert your extension to use scripts with the external functions because we don't support GameMaker's special extension package formats yet. Due to POSIX and/or X11 compliance, a lot of Linux and Mac OS X extensions can be rebuilt and "just work" on FreeBSD in a lot of cases if you have the source code handy.

To get access to these new features, simply update enigma to the latest version and enable the "External Functions" extension like so:

You will also need to install libffi. Windows users should already have this installed because we've included it on our Windows Installation page for a long time now. As for everyone else, the dependency can be installed for your platform using the terminal commands below...

Ubuntu/Debian-Linux based:
Code: [Select]
sudo apt-get install libffi-dev
Arch/Manjaro-Linux based:
Code: [Select]
sudo pacman -Sy libffi
Code: [Select]
sudo pkg ins libffi
Have a wonderful day.

Off-Topic / Re: I just want to express my gratitude to you guys
« on: April 22, 2020, 08:54:57 PM »
Yeah, hopefully things will be more peaceful by the time you get back, and I'll be more proactive at watching my tongue. It's good to hear you haven't forgotten about us, and we all certainly haven't forgotten about you. Thank you for being such a positive person, it helps everyone greatly.

Announcements / Re: Announcing FreeBSD Support
« on: March 27, 2020, 08:18:09 PM »
You're welcome! :)

General ENIGMA / Re: Android Support viable!
« on: March 13, 2020, 02:27:36 AM »

Announcements / Announcing FreeBSD Support
« on: March 12, 2020, 09:15:29 PM »
Hey guys...

Here's a game by community member hpg678 running natively on BSD that was compiled with ENIGMA:

Waiting for Josh to finish some stuff with JDI, in the meantime, you can make games for FreeBSD using my branch; make sure you build with the clang compiler instead of gcc otherwise projects that use sound or audio functions will have a segmentation fault and won't run.

Install instructions:

Here's the pull request that adds support to FreeBSD for those waiting anxiously for it to be merged into master and want updates on it:


Announcements / Re: Regression Testers Wanted
« on: February 23, 2020, 09:03:32 AM »
I noticed a regression with my key to success game.  pressing space to unpause the game will also make the player jump, as though I pressed the spacebar twice in the same step, when i only pressed it once. So well done, you fucked up keyboard input. Also noticed some minor problems with the collision event, specifically once you've climbed up to the top of a ladder in some levels it behaves different than GM now. I'm too lazy to include a small test case reproducible for these two regressions, so feel free to gut away my key to success game yourself to narrow it down.

If you need further details on the collision bug I can provide a video if you aren't able to find out what I'm talking about on your own. The compiled executables are built with an older version of enigma which behave the same as GM, so you may use that as a reference. Ctrl+Enter to skip levels until you get to level 3 and that's where you'll notice the collision regression at the top of the ladder if you pay close attention, at the very beginning of the level..

Also what magical reason did you need to rewrite events for, if they were working just perfect previously, but they are not in this branch of yours?

You get mad at me for causing a so-called "regression" with Robert's game, but in his case it was a bad programming practice of his, not mine. What I did was take a bad implementation and made it a good one. He was using a string where it would make more sense logically by the function's name and purpose to use a number instead. Then you, as the big almighty project lead developer came out here with this big pr that potentially breaks every game made with enigma in existence, with both broken input and collisions, you out of arrogance are too afraid to merge my icon pull request, because of a "regression" I caused, that again, in reality, was just Robert being stupid and something really weird possessed him to put quotes around a number argument, turning it into a string for absolutely no reason. You blame his bad practices on my good practices. get_integer() should take a number, as the name implies, and as the function's intended purposes serve, it would only make natural sense it would take a number argument, yet you call Robert expecting to use a string where a number makes more sense to be used, "a regression".

I question the state your mental health if this is honestly how you feel, even now. Just don't use that crap as a weird-ass excuse to be afraid to merge my icon pr. As this pr of yours clearly demonstrates, you are more prone to killing the entire project than I am, where as I was very lucky to have very loosely-speaking "break" a single game. Do you have any idea how many games even use get_integer()? Robert's might have been the only one in our community that used it. You, on the other hand, broke our entire input and collision systems, in ways that are very specific, quirky, and extremely hard to narrow down, and debug, the root causes for it.

Good day to you, ween.

Announcements / Re: Taking on Xinerama dependency on Linux
« on: February 15, 2020, 11:04:33 PM »
I wonder what idiot whose pull request is responsible for this.

Announcements / Re: Permanently Taking on Yaml-CPP Dependency
« on: February 14, 2020, 12:47:55 AM »
YADPADBM - yet another dialog penetration and domination bondage masterbation

I updated the screenshots to reflect some new functionality that is soon to be added to ENIGMA, and has already been added to my GameMaker extension's equivalent code. Please do not be confused, these are upcoming features, and they are not available yet. But it won't take long because most of the code is already written and will need minimal tweaking. These changes only apply to the macOS Cocoa and Linux X11 Widgets Systems. In the case of Linux, only the KDialog Widgets are effected. I updated the Zenity screenshots too, but only because the older ones were taken on a version of Ubuntu that had problems updating to Bionic Beaver, so there were some visual flaws with it such as using Unity instead of GNOME still, for the desktop environment, which was a huge eye-sore for me.

Changes Include:

- [macOS] A dirty subclass hack which makes some macOS dialogs display as sheets; while normally sheet dialogs are async, the subclass forces them to be modal, (unless you run the async equivalents via the async extension ofc). This relies on a small Objective-C++ *.mm source file that was not originally written by me nor was it written for ENIGMA in specific, however it was licensed under BSD, so it is permissive and compatible with both our GPL and upcoming linking exception. The dialogs that will be displayed as sheets include show_message(), show_message_cancelable(), show_question(), show_question_cancelable(), show_attempt(), show_error(), get_string(), get_password(), get_integer(), and get_passcode(). More information on what exactly a sheet dialog even is and its distinction from a child window dialog may be read in the next bullet point found below.

- [macOS] As for the rest of the macOS dialog functions, they will not be sheets, however, they will be child windows once this update is released. Child windows by Apple's definition is a window that moves when it's parent is being dragged by the title bar to move, relative to where the parent is being dragged. However, the child window will move independent to the parent window's position if the child window is dragged by the title bar to move and the parent window will stay at the same position uneffected. So, these dialogs are child windows, they will inherit this behavior. Sheet dialogs are almost no different except they can't have a title bar so sheet dialogs will always be at a position relative to the window they are attached to, more specifically at the top-center of the window it is attached to, i.e. the parent. The child window dialogs include the file, folder, and color pickers.

- [macOS] The functions widget_get_icon() and widget_set_icon() will be added, which will allow for setting an icon for the dialogs should you want an icon to be displayed that is different from the default, which is the icon you have set for your game in the Info.plist of your macOS App Bundle. This will require you to bundle your game manually as normal. Only *.PNG is supported. You can technically use other formats as well, such as *.ICNS but formats such these won't be compatible with the Linux X11 Widgets; not cross-platform.

- [Linux X11 (KDialog)] Once this update is released you'll notice that KDialog will have a more appealing icon in the title bar of each dialog that will either match the icon used in the client area of the dialog or the game's custom icon if there is no icon in the window's client area. This custom icon can be set once another important update of mine is merged. If you want the dialogs to have a different icon in the title bar than the one used for the game window, this update, as stated in the previous bullet point, will also introduce the new functions widget_get_icon() and widget_set_icon() to get/set the current icon to use for the dialogs. Again, PNG-only. There might be other formats supported but like with Mac they probably aren't going to be supported in a cross-platform manner.

You need to use OpenAL instead of DirectSound for this.

Install instructions can be found there, which will fix the error.

Issues Help Desk / Re: Compile enigma on ClockworkPI GameShell
« on: August 25, 2019, 02:50:16 AM »
Join our discord and I'll help you with emake. It's not that hard once you know what you can use for each command line option, and where you get that info. My username on there is Samuel Venable.

What i was trying to say is this is an obvious bug, and someone should report it if it hasn't been already. No, there is no way to 'turn it off', and no, it has no direct meaning. It needs to be fixed by one of the developers, most likely Josh. I only work on the engine, and don't know anything about how the compiler works. If it bothers you enough, make a GitHub ticket.