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.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »
421
Third Party / Java 8 Nashorn Script Engine
« on: July 31, 2015, 01:12:40 am »
For a side project I am developing in Java I needed a good JavaScript parser but the publicly documented Nashorn interface is all about compiling when I only needed an intermediate representation. It is currently possible as of JDK8u40 to use the parser to get the AST as a JSON encoded string either from a JS file being executed by the ScriptEngine or from within Java using the non-public Nashorn API.
An abstract syntax tree is produced by a parser after the lexer phase breaks code into a stream of tokens. The below image should convey to you how a simple assignment statement is broken into a stream of tokens then an AST is generated as JSON on the right. This is why symbols like * + - are called binary operators because they take two operands, ! is the logical negation and an unary operator becaues it takes only one operand. The operands can also be expressions because expressions are defined recursively in terms of expressions which can be literals, terms, or other expressions. This is how we end up with tree's and these tree's coupled with semantic information such as keywords and identifiers help us do code generation which can let the whole process take in one language, say GML, and spit out a completely different one like C++ and if you don't already know this is exactly what ENIGMA's compiler does.

Wikipedia has additional information on abstract syntax trees if you would like to know more.
https://en.wikipedia.org/wiki/Abstract_syntax_tree
The following StackOverflow post provides clarification between an AST and a parse tree.
http://stackoverflow.com/questions/5026517/whats-the-difference-between-parse-tree-and-ast
My first example here is the standard example on the web of how you can get the JSON tree for any arbitrary JavaScript parsed by a JS script that is being actively executed in Nashorn. You can take this AST and print it or traverse it in JS or pass/return it up to Java through a binding. This example was taken from the following link.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/nashorn/file/bfea11f8c8f2/samples/astviewer.js
This example shows you how to get the AST as JSON from Java. This was my own discovery from studying the Nashorn source code.
Both of the above two examples should give the following JSON encoded AST. This JSON encoding provided by Nashorn is compliant with the community standard JavaScript JSON AST model popularized by Mozilla.
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API
This example code shows you how to get the AST as a Java object representation however the interface is poorly documented and I could not for the life of me figure out how to traverse the children of the function node. This solution is adapted from a StackOverflow post.
http://stackoverflow.com/questions/6511556/javascript-parser-for-java
You should get the following output on the Java Console from the above code.
It is important to note however that this interface may change because it's not well documented and is new to the JSE. Additionally the OpenJDK project is developing a public interface for Java 9 that allows AST traversal in a more standard and user friendly way.
http://openjdk.java.net/jeps/236
Limited documentation for the existing public Nashorn classes in Java 8 can be found below.
https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/allclasses-noframe.html
The following link provides a list of all of the parser and compiler options that I set above. However it is important to note that the syntax is different when setting the options inside Java where - is replaced with a period.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/nashorn/file/tip/docs/DEVELOPER_README
The Nashorn source code can be found on GitHub and also on BitBucket. I prefer the BitBucket version as the GitHub version seems to be missing some classes.
https://github.com/uditrugman/openjdk8-nashorn
https://bitbucket.org/adoptopenjdk/jdk8-nashorn/src/096dc407d310?at=default
An abstract syntax tree is produced by a parser after the lexer phase breaks code into a stream of tokens. The below image should convey to you how a simple assignment statement is broken into a stream of tokens then an AST is generated as JSON on the right. This is why symbols like * + - are called binary operators because they take two operands, ! is the logical negation and an unary operator becaues it takes only one operand. The operands can also be expressions because expressions are defined recursively in terms of expressions which can be literals, terms, or other expressions. This is how we end up with tree's and these tree's coupled with semantic information such as keywords and identifiers help us do code generation which can let the whole process take in one language, say GML, and spit out a completely different one like C++ and if you don't already know this is exactly what ENIGMA's compiler does.

Wikipedia has additional information on abstract syntax trees if you would like to know more.
https://en.wikipedia.org/wiki/Abstract_syntax_tree
The following StackOverflow post provides clarification between an AST and a parse tree.
http://stackoverflow.com/questions/5026517/whats-the-difference-between-parse-tree-and-ast
My first example here is the standard example on the web of how you can get the JSON tree for any arbitrary JavaScript parsed by a JS script that is being actively executed in Nashorn. You can take this AST and print it or traverse it in JS or pass/return it up to Java through a binding. This example was taken from the following link.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/nashorn/file/bfea11f8c8f2/samples/astviewer.js
Code: (JavaScript) [Select]
#// Usage: jjs -scripting -fx astviewer.js -- <scriptfile>
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
if (!$OPTIONS._fx) {
print("Usage: jjs -scripting -fx astviewer.js -- <.js file>");
exit(1);
}
// Using JavaFX from Nashorn. See also:
// http://docs.oracle.com/javase/8/docs/technotes/guides/scripting/nashorn/javafx.html
// This example shows AST of a script file as a JavaFX
// tree view in a window. If no file is specified, AST of
// this script file is shown. This script demonstrates
// 'load' function, JavaFX support by -fx, readFully function
// in scripting mode.
// JavaFX classes used
var StackPane = Java.type("javafx.scene.layout.StackPane");
var Scene = Java.type("javafx.scene.Scene");
var TreeItem = Java.type("javafx.scene.control.TreeItem");
var TreeView = Java.type("javafx.scene.control.TreeView");
// Create a javafx TreeItem to view a AST node
function treeItemForASTNode(ast, name) {
var item = new TreeItem(name);
for (var prop in ast) {
var node = ast[prop];
if (typeof node == 'object') {
if (node == null) {
// skip nulls
continue;
}
if (Array.isArray(node) && node.length == 0) {
// skip empty arrays
continue;
}
var subitem = treeItemForASTNode(node, prop);
} else {
var subitem = new TreeItem(prop + ": " + node);
}
item.children.add(subitem);
}
return item;
}
// do we have a script file passed? if not, use current script
var sourceName = arguments.length == 0? __FILE__ : arguments[0];
// load parser.js from nashorn resources
load("nashorn:parser.js");
// read the full content of the file and parse it
// to get AST of the script specified
var ast = parse(readFully(sourceName));
// JavaFX start method
function start(stage) {
stage.title = "AST Viewer";
var rootItem = treeItemForASTNode(ast, sourceName);
var tree = new TreeView(rootItem);
var root = new StackPane();
root.children.add(tree);
stage.scene = new Scene(root, 300, 450);
stage.show();
}
This example shows you how to get the AST as JSON from Java. This was my own discovery from studying the Nashorn source code.
Code: (Java) [Select]
String code = "function a() { var b = 5; } function c() { }";
Options options = new Options("nashorn");
options.set("anon.functions", true);
options.set("parse.only", true);
options.set("scripting", true);
ErrorManager errors = new ErrorManager();
Context contextm = new Context(options, errors, Thread.currentThread().getContextClassLoader());
Context.setGlobal(contextm.createGlobal());
String json = ScriptUtils.parse(code, "<unknown>", false);
System.out.println(json);
Both of the above two examples should give the following JSON encoded AST. This JSON encoding provided by Nashorn is compliant with the community standard JavaScript JSON AST model popularized by Mozilla.
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API
Quote from: Java Console
{"type":"Program","body":[{"type":"FunctionDeclaration","id":{"type":"Identifier","name":"a"},"params":[],"defaults":[],"rest":null,"body":{"type":"BlockStatement","body":[{"type":"VariableDeclaration","declarations":[{"type":"VariableDeclarator","id":{"type":"Identifier","name":"b"},"init":{"type":"Literal","value":5}}]}]},"generator":false,"expression":false},{"type":"FunctionDeclaration","id":{"type":"Identifier","name":"c"},"params":[],"defaults":[],"rest":null,"body":{"type":"BlockStatement","body":[]},"generator":false,"expression":false}]}
This example code shows you how to get the AST as a Java object representation however the interface is poorly documented and I could not for the life of me figure out how to traverse the children of the function node. This solution is adapted from a StackOverflow post.
http://stackoverflow.com/questions/6511556/javascript-parser-for-java
Code: (java) [Select]
String code = "function a() { var b = 5; } function c() { }";
// parser options including anonymous functions
final Options options = new Options("nashorn");
options.set("anon.functions", true);
options.set("parse.only", true);
options.set("scripting", true);
ErrorManager errors = new ErrorManager();
Context contextm = new Context(options, errors, Thread.currentThread().getContextClassLoader());
// get a source handle for arbitrary javascript code passed as a string
final Source source = Source.sourceFor("<unknown>", code);
// get the global function node to traverse the parsed AST
FunctionNode node = new Parser(contextm.getEnv(), source, errors).parse();
System.out.println(node.getKind().name());
for (Statement stmt : node.getBody().getStatements()) {
System.out.println(stmt.toString());
}
You should get the following output on the Java Console from the above code.
Quote from: Java Console
SCRIPT
function {U%}a = [<unknown>] function {U%}a()
function {U%}c = [<unknown>] function {U%}c()
It is important to note however that this interface may change because it's not well documented and is new to the JSE. Additionally the OpenJDK project is developing a public interface for Java 9 that allows AST traversal in a more standard and user friendly way.
http://openjdk.java.net/jeps/236
Limited documentation for the existing public Nashorn classes in Java 8 can be found below.
https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/allclasses-noframe.html
The following link provides a list of all of the parser and compiler options that I set above. However it is important to note that the syntax is different when setting the options inside Java where - is replaced with a period.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/nashorn/file/tip/docs/DEVELOPER_README
The Nashorn source code can be found on GitHub and also on BitBucket. I prefer the BitBucket version as the GitHub version seems to be missing some classes.
https://github.com/uditrugman/openjdk8-nashorn
https://bitbucket.org/adoptopenjdk/jdk8-nashorn/src/096dc407d310?at=default
422
General ENIGMA / Re: ENIGMA progress
« on: July 31, 2015, 01:07:26 am »
Very nice work Harri I like seeing the contributions you have been making. I am still too stressed out for ENIGMA development. I am working on something very cool right now on my vacation that I hope you will all enjoy very much, a lot simpler than ENIGMA but something you may not be thinking of. However some of the ideas are based on previous prototypes which I am not sure if I've shared.
And for anybody afraid to contribute you shouldn't be, ENIGMA is a great way to not only learn game development but to learn game engine development. I had never used Java before I joined the forums and most would say I really turned LateralGM around. I was not completely new to C++ either but I was fairly novice and managed to accomplish a number of tasks in the engine. It really only takes the perseverance but it is still a lot of work regardless of how much you know.
What's a better way to learn game development than GameMaker? I'll tell you the answer and it's by building GameMaker itself. The opportunity has presented itself, it's right here and it's called enigma-dev.org
And for anybody afraid to contribute you shouldn't be, ENIGMA is a great way to not only learn game development but to learn game engine development. I had never used Java before I joined the forums and most would say I really turned LateralGM around. I was not completely new to C++ either but I was fairly novice and managed to accomplish a number of tasks in the engine. It really only takes the perseverance but it is still a lot of work regardless of how much you know.
What's a better way to learn game development than GameMaker? I'll tell you the answer and it's by building GameMaker itself. The opportunity has presented itself, it's right here and it's called enigma-dev.org
423
Function Peer Review / Re: Lua Extension
« on: July 31, 2015, 12:59:36 am »
Was this merged into the main repo?
I've moved this temporarily down to Function Peer Review as I am not quite sure where it belongs on the board.
I've moved this temporarily down to Function Peer Review as I am not quite sure where it belongs on the board.
424
Programming Help / Re: How are instances working?
« on: July 31, 2015, 12:58:05 am »
Just a note if you do not mind I am going to move this topic to Programming Help along with your topic regarding ENIGMA templates since they don't directly pertain to active ENIGMA development/projects.
Here is also the location of your other topic I moved to this board:
http://enigma-dev.org/forums/index.php?topic=2443.0
Here is also the location of your other topic I moved to this board:
http://enigma-dev.org/forums/index.php?topic=2443.0
425
Issues Help Desk / Re: Some Fervi's Question
« on: July 07, 2015, 07:01:12 pm »
Yeah basically what Josh said, though I am kind of diverging myself in a lot of different directions. I've so overloaded with school work but I have a really amazing prototype of some of my new ideas and a lot of great ones that I am not going to drop on this forum because I want to retain them. Some people I've been keeping in the loop about some of these things I've been working on it, but it is too early for me to say much. But I am basically behind what you are saying Harri and we're pretty much on all the same page. I am hoping that I may actually come up with something for the interim that will put us back on the right track until Josh solidifies his ideas and plans.
426
General ENIGMA / Re: What's next for Enigma?
« on: June 13, 2015, 10:49:41 pm »
I figured I'd post just so I don't leave you all hanging on a limb. Sorry if I've been AWOL for quite a while, college and life has had me extremely busy. Josh is still working on his new compiler TheExDeus, I haven't really gone anywhere and we all still hang out in #enigma-dev IRC on freenode. I haven't been doing much work on ENIGMA because I don't find it very useful at this point in time. I've been focusing what efforts I can into side projects such as an IDE that both me and DaSpirit are too busy to develop full-time. However we have actually made progress this time instead of just building GUI's and going crazy announcing new platforms, it follows a proper MVC 3-tier architecture and we've been following Dreamland's guidance on its design. Essentially the plan is to build a modular IDE much like how the engine is where everything can be swapped in and out, this was our original focus but we didn't really have any idea, but with college and all our research we've been improving a lot, especially me.
The problem now is that this IDE project in and of itself is a monumental task. But one of the hopes of it is to make it modular enough that more people can contribute to it, and the project is maintained primarily by DaSpirit and however we structure any contributors around it in addition to it being a newer framework with a modern GUI and all the other little themeing and customization tidbits. Another present interest of mine is developing JEIE for the web with HTML5. The main purpose of JEIE to begin with was that there are few Microsoft Paint applications of good quality for Mac and Linux. I don't like the structure of JEIE and I'm really starting to hate Java as a platform, not because it's interpreted, but because Oracle likes to stick crapware in the installer and security exceptions like to be a pain. At any rate I am really interested in bringing this image editing program to the web, but I haven't even had time to begin the project and I don't exactly know what I have in mind yet.
Also with YoYoGames having just killed GameMaker 8.1 support a few weeks back I think it's safe to leave the ENIGMA project where it currently is at the most stable release we have. We'll go from here and see how things develop into the future, but we're all still here and working on different things related to the project.
The problem now is that this IDE project in and of itself is a monumental task. But one of the hopes of it is to make it modular enough that more people can contribute to it, and the project is maintained primarily by DaSpirit and however we structure any contributors around it in addition to it being a newer framework with a modern GUI and all the other little themeing and customization tidbits. Another present interest of mine is developing JEIE for the web with HTML5. The main purpose of JEIE to begin with was that there are few Microsoft Paint applications of good quality for Mac and Linux. I don't like the structure of JEIE and I'm really starting to hate Java as a platform, not because it's interpreted, but because Oracle likes to stick crapware in the installer and security exceptions like to be a pain. At any rate I am really interested in bringing this image editing program to the web, but I haven't even had time to begin the project and I don't exactly know what I have in mind yet.
Also with YoYoGames having just killed GameMaker 8.1 support a few weeks back I think it's safe to leave the ENIGMA project where it currently is at the most stable release we have. We'll go from here and see how things develop into the future, but we're all still here and working on different things related to the project.
427
Developing ENIGMA / Re: MinGW 64
« on: January 22, 2015, 11:12:03 pm »
That's a possibility and yes it would be relatively straight forward Harri.
I think I will just recompile the libs for 64bit and get a 64bit Portable out first and then we can discuss restructuring the ZIP's.
On side a note I had to push another fix to make it build for Mingw32 again, so it builds for both now, it should work for both 32bit and 64bit GCC on Linux now as well. In addition the compiler now builds with C++11 support.
https://github.com/enigma-dev/enigma-dev/commit/5b99151173b1dad9acb059f9e99a75974801d42b
This was to fix the issues reported in the other topic.
http://enigma-dev.org/forums/index.php?topic=2422
Edit: Just a quick update here I managed to get the basic engine compiling with Mingw64.
Thanks to Rusky for making a 64bit zlib and me finding a 64bit FFI lib, the basic engine and graphics now build. What you see in the following screenshot is the first 64bit ENIGMA game built with Mingw64 with LateralGM running in a 64bit JVM and a 4GB memory capacity. It can build at least Project Mario with DirectSound so far.
Note: If you try setting -xmx to larger than 1GB in the regular Portable the OS will probably not allow LGM to launch, I've tried it myself.

There are only 3 things left to do, build a 64bit OpenAL, Box2D, and Bullet and we can release a 64bit Portable. OpenAL will be the bulk of the work because we have to rebuild vorbis and a bunch of other libs to support all the audio formats.
I think I will just recompile the libs for 64bit and get a 64bit Portable out first and then we can discuss restructuring the ZIP's.
On side a note I had to push another fix to make it build for Mingw32 again, so it builds for both now, it should work for both 32bit and 64bit GCC on Linux now as well. In addition the compiler now builds with C++11 support.
https://github.com/enigma-dev/enigma-dev/commit/5b99151173b1dad9acb059f9e99a75974801d42b
This was to fix the issues reported in the other topic.
http://enigma-dev.org/forums/index.php?topic=2422
Edit: Just a quick update here I managed to get the basic engine compiling with Mingw64.
Thanks to Rusky for making a 64bit zlib and me finding a 64bit FFI lib, the basic engine and graphics now build. What you see in the following screenshot is the first 64bit ENIGMA game built with Mingw64 with LateralGM running in a 64bit JVM and a 4GB memory capacity. It can build at least Project Mario with DirectSound so far.
Note: If you try setting -xmx to larger than 1GB in the regular Portable the OS will probably not allow LGM to launch, I've tried it myself.

There are only 3 things left to do, build a 64bit OpenAL, Box2D, and Bullet and we can release a 64bit Portable. OpenAL will be the bulk of the work because we have to rebuild vorbis and a bunch of other libs to support all the audio formats.
428
Issues Help Desk / Re: sprite_add not working?
« on: January 22, 2015, 09:13:39 pm »
Haha, no I was merely pointing out that it is really easy to add new functions, just like you would in your own self contained game or C++ program, it's extremely trivial.
On a side note I also managed to get the latest 32 bit branch working again with sorloks gif fixes and my 64 bit compiler fixes, and the image loaded fine for me from the working directory simply calling it "file.png"
So Darkstar2's version probably just got broken or out of sync somehow.
On a side note I also managed to get the latest 32 bit branch working again with sorloks gif fixes and my 64 bit compiler fixes, and the image loaded fine for me from the working directory simply calling it "file.png"
So Darkstar2's version probably just got broken or out of sync somehow.
429
General ENIGMA / Re: ENIGMA compiled EXE detected as virus!
« on: January 22, 2015, 06:23:47 pm »
This isn't new this is exactly what you reported last time and it hasn't changed.
Most reliable source I can find says that it could be related to using AppData, though I didn't think our exe's use that at all, only the compiler.
http://greatis.com/cleanvirus/remove-malware/behaveslike-win32-pwszbot-fh-usubucip-exe.htm
It could also be some of the extensions because those load DLL's, one of the reasons the old GM games still get flagged is because of DirectPlay, which is obsolete. Studio also does not handle resources the way the old GM did, its executables are essentially self-extracting 7zips, you can actually use 7zip to extract the audio from any standalone exe made with Studio, just extract it like a 7zip, though I haven't tested on the standalone installer. This is what my attempted decompiler originally did besides scanning for png and bmp files.
I'll run the test myself before and after disabling some extensions. Either way I am not really concerned with what some silly virus scanner on the internet says, we know for a fact it's not a virus.
Edit: Oddly enough switching off all systems and disabling every extension except paths gets it flagged by a different scanner, but still 1/57
Qihoo-360 Malware.QVM20.Gen 20150123
Using only Direct3D9 the same way but instead of OpenGL with no extensions flags it twice.
CMC Packed.Win32.Katusha.1!O 20150120
McAfee-GW-Edition BehavesLike.Win32.PWSZbot.ch 20150122
For why you shouldn't care what this scanner thinks either, read the following:
http://www.cplusplus.com/forum/beginner/67634/
Most reliable source I can find says that it could be related to using AppData, though I didn't think our exe's use that at all, only the compiler.
http://greatis.com/cleanvirus/remove-malware/behaveslike-win32-pwszbot-fh-usubucip-exe.htm
It could also be some of the extensions because those load DLL's, one of the reasons the old GM games still get flagged is because of DirectPlay, which is obsolete. Studio also does not handle resources the way the old GM did, its executables are essentially self-extracting 7zips, you can actually use 7zip to extract the audio from any standalone exe made with Studio, just extract it like a 7zip, though I haven't tested on the standalone installer. This is what my attempted decompiler originally did besides scanning for png and bmp files.
I'll run the test myself before and after disabling some extensions. Either way I am not really concerned with what some silly virus scanner on the internet says, we know for a fact it's not a virus.
Edit: Oddly enough switching off all systems and disabling every extension except paths gets it flagged by a different scanner, but still 1/57
Qihoo-360 Malware.QVM20.Gen 20150123
Using only Direct3D9 the same way but instead of OpenGL with no extensions flags it twice.
CMC Packed.Win32.Katusha.1!O 20150120
McAfee-GW-Edition BehavesLike.Win32.PWSZbot.ch 20150122
For why you shouldn't care what this scanner thinks either, read the following:
http://www.cplusplus.com/forum/beginner/67634/
430
Issues Help Desk / Re: sprite_add not working?
« on: January 19, 2015, 11:10:25 pm »
I don't know, I plugged it into my last Project Mario build and it seems to work fine. I can't build an exe right now because I have the 64 built configured right now but I haven't updated the libraries. An executable would be helpful.
431
Issues Help Desk / Re: sprite_add not working?
« on: January 19, 2015, 09:54:52 pm »
Do you have the PNG? I'll test myself, Project Mario uses extensive BMP and PNG loading. Also the code that you are trying to load it with.
432
Issues Help Desk / Re: Extension .egm does not match EGM?
« on: January 19, 2015, 07:34:14 pm »
Yeah this is a known bug, when adding multiple constants support I temporarily broke EGM format. Basically me and Josh really aren't sure what to do at this point.
Josh hates the EGM format, it saves rooms as binary blobs like the GMK format and it's barely extensible at all. What he would like is to basically rewrite the whole format with a proper spec and implement everything properly. We have a GitHub ticket filed on this:
https://github.com/enigma-dev/lgmplugin/issues/29
For now you can just use the old LGM if you want, though I don't think it will work with ENIGMA anymore. We really need to get this fixed ASAP but I specifically don't know what to do, I'll have to talk to Josh.
http://enigma-dev.org/docs/Wiki/LateralGM:_Revisions
Josh hates the EGM format, it saves rooms as binary blobs like the GMK format and it's barely extensible at all. What he would like is to basically rewrite the whole format with a proper spec and implement everything properly. We have a GitHub ticket filed on this:
https://github.com/enigma-dev/lgmplugin/issues/29
For now you can just use the old LGM if you want, though I don't think it will work with ENIGMA anymore. We really need to get this fixed ASAP but I specifically don't know what to do, I'll have to talk to Josh.
http://enigma-dev.org/docs/Wiki/LateralGM:_Revisions
433
Issues Help Desk / Re: Linux Unable to load library 'compileEGMf' (SOLVED!)
« on: January 19, 2015, 06:49:41 pm »
No problem, I had to fix it because it was actually me that just broke it lol. And because now I accomplished what I wanted, 32bit and 64bit support for JDI and the compiler. As usual let us know if you have any more problems!
434
Issues Help Desk / Re: after i call game_end game process stuck
« on: January 19, 2015, 05:36:44 pm »
What operating system and version are you running this on? It seems like you need to debug your drivers, I really don't see how OpenAL could be failing to close.
435
Issues Help Desk / Re: Linux Unable to load library 'compileEGMf'
« on: January 19, 2015, 05:33:06 pm »
Don't worry I fixed it and this time made sure to build for both Mingw64 and 32.
https://github.com/enigma-dev/enigma-dev/commit/5b99151173b1dad9acb059f9e99a75974801d42b
Just undo all your changes, cd to enigma-dev git reset --hard and then git fetch and git pull. Then it should build, you don't need to run python install.py
https://github.com/enigma-dev/enigma-dev/commit/5b99151173b1dad9acb059f9e99a75974801d42b
Just undo all your changes, cd to enigma-dev git reset --hard and then git fetch and git pull. Then it should build, you don't need to run python install.py
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 »