-
-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
support double dragon Neo-Geo(MAME Emulator) ? #4
Comments
@dota2heqiuzhi I integrated a Sega 32x emulator along with Virtua Fighter (in 3D) and made a guide on how to integrate a core in stable-retro: Emulator integration Guide I am working on integrating the mame2003plus emulator but meeting some roadblocks, it crashed when opening a rom in the integration tool, also crashed in the basic tests. I have tried FBNeo (the supports your game as well) and same issues as with the mame2003plus one |
Thank you very much! It seems that this thing is quite difficult, as you couldn't handle it, and as a beginner, I should be even less able to handle it. However, when I have some free time, I will try it myself. |
@dota2heqiuzhi I have maybe good news for you, I integrated FBNeo emulator (alternative to MAME) that supports your game. You can access it in the fbneo branch. I haven't merged in master yet since I still need to make the integration cleaner but it works |
The "gym-retro-integratioin" tool does not support zip format(FinalBurn Neo rom data type),How did you integrate the game? |
@dota2heqiuzhi It does support zip files in the fbneo branch where I integrated FBNeo: |
thank you very much. I have now successfully opened the game I need (doubledr) using "Integration UI". Next, I will try to integrate this game and start learning reinforcement learning. I'll come back and ask you if I have any problems. |
Hello, @dota2heqiuzhi! if you're a beginner at RL, I highly recommend starting with much simpler environments so you can get a grasp on it, like some Atari games (Pong and Breakout) or maybe even take a step back from stable-retro and go directly with pure gymnasium (CartPole and Pendulum). I also highly recommend the RL bible to learn what is actually happening under the (at first seemly) complicated algorithms that you might use. |
thanks for your advice. I have some basic knowledge of computer algorithms, and I would be more motivated to learn RL using my favorite games. I will also look for videos to learn the specific algorithms of RL. Doubledr is a fighting game and the operations it can do are limited. I think I can handle it. If it's really difficult, I'd consider starting with the simple game you mentioned. Thanks again for your advice. |
I'm having trouble again. I watched your video and successfully found the memory of some variables (such as ratings 4200). Numerical variables displayed directly on the screen are easier to find, but there is no specific value for doubledr's blood volume. Can you provide some ideas for searching? In addition, although the countdown is also a number, it cannot be found using traditional methods. Could it be that the time is actually a relatively high-precision value, and only the first few digits of precision are taken when displayed. How to find such a variable? |
Here are some resources that may help you with your goal: |
Do I need to find all the key variables (such as the x-axis and y-axis of the character), or do I only need blood volume, victory or defeat, and countdown? |
@victorsevero |
@dota2heqiuzhi You don't need positions of fighters because the information is in the image, provided you feed your model with the game frame (as opposed to feeding it with ram values) and you don't need these information for the reward function |
@MatPoliquin @victorsevero At present, the brute algorithm can defeat computer AI. I will learn about the PPO algorithm later. |
@dota2heqiuzhi For audio, I made it work with an old version of gym and retro but I would need to adapt it to the current version which I plan to do in the following months. Meanwhile you can check /stable-retro/retro/scripts/playback_movie.py as an example to access audio data |
I'd recommend making a local copy of that retro.data.Integrations.add_custom_path(PATH_TO_YOUR_CUSTOM_ROM_INTEGRATION) after the imports (actually I think that this path could be an optional parameter of this script so people wouldn't need to copy/paste it. What do you think @MatPoliquin?). After that, just follow this, but pointing to you local script |
@MatPoliquin @victorsevero
This is the script I usepython3 model_trainer.py --env=Doubledr-Arcade --num_env=8 --num_timesteps=80_000_000 --play |
I want to integrate mame2003-plus-libretro emulator in stable-retro.
So I can train an AI on the game Double Dragon (there are many versions of this game, but I'm looking for the 1995 fighting game released on Neo-Geo and PS1).
Can someone provide some tutorials or give step-by-step instructions? For example, do I need to modify the source code myself, or compile the source code?
Thank you very much! I am a beginner and really don't know what to do. I really want to use this game to train an AI and get started with reinforcement learning.
Double Dragon ROM: https://archive.org/details/MAME_2003-Plus_Reference_Set_2018.
The lib is available at https://github.com/libretro/mame2003-plus-libretro.
I see that Gym Retro supports the Libretro API, and MAME 2003-Plus is also developed based on Libretro. So there may not be much that needs to be changed, right?
The text was updated successfully, but these errors were encountered: