GSoC Week 0: Exploration and Fixes

This blog post is related to my GSoC 2022 project.

This is less of a recap of a week and more of a month. Over the past month, I have been (slowly) exploring ENIGMA’s source code and communicating with the maintainers about the state of the project, what all needs to be done and what they expect from me.

First, I started off by fixing some remaining build errors that were left when merging a new version of the JDI C++ parser into ENIGMA. Then, I also helped fix some bugs that were occuring in the EDL macro handling code.

During this time, I learned about the architecture of the ENIGMA development environment, and how the various IDEs (LGM, RGM) and emake work with the ENIGMA system. To help keep everything as modular as possible, these components communicate with ENIGMA using protobufs from the Google Protocol Buffers library (apart from LGM which uses JNI to communicate using C++ structs directly). I hope to set up or help set up a page on the ENIGMA wiki detailing the architecture within the next 1-2 weeks, depending on when the current issues regarding the wiki are resolved.

With regards to ENIGMA itself, we are currently working towards replacing the existing EDL parser with a new one based on the work done in the AST-Generation branch. If this work takes longer than a week or two, I will also concurrently start working on the first part of my project, which involes finishing the buffer functions in the Universal System. Aside from that, I am also working on tracking down a bug regarding code generation for the Drag’n’Drop tiles supported by ENIGMA, where object IDs are not generated properly.