I am developing a reinforcement learning agent using Python that would learn to play the arcade Tekken games which are emulatable by MAME (Multiple Arcade Machine Emulator) [[login to view URL]] as part of a research.
My project is based upon the MAME Reinforcement Learning Toolkit [[login to view URL]], a Python framework which makes communication between the Python AI agent and MAME easy by providing the necessary data, most importantly the frame/image data, which is what the AI would "see". The MAME Toolkit communicates with a modified version of MAME [[login to view URL]], which is written in C++ and compiled. It is the only reinforcement learning framework solution for arcade games, as far as I am aware.
While using the MAME Toolkit, I stumbled upon a limitation which caused it to hit an exception and return the message "MAMEToolkit only supports RGB32 and ARGB32 frame bit format games". I checked the Toolkit's Python source code and it receives an empty list from the modified MAME implementation.
In the modified MAME C++ implementation, I found out the functions responsible for gathering the game's image data (typically RGB32, 8 bits for each color for each pixel value) are located in [login to view URL] and will only collect any data if either a RGB32 or ARGB32 format encoding is detected. Unfortunately, I tried all Tekken games from various regions and none has the compatible frame format. The only solution to make the MAME Toolkit support the Tekken games is to detect the frame encoding format and convert it to RGB32 or add functionality for it to be handled.
The problem is I am a novice in C++ and it is hard to debug and rebuild a complex project, even if the fix may be simple. I would need help modifying and recompiling MAME's C++ code. It is worth noting that because the modified MAME implementation and the MAME Toolkit communicate using FIFO pipes, it is only compatible with GNU/Linux. It also contains a makefile.
I am not sure how much time it may take but please suggest to me any quotes if you believe you can help.
Thanks in advance!