EDIT: Here's a video of my own progress, do these addresses look right?
Hey all,
I've recently started to delve into the world of ROM hacks and scripting. My most recent project involves porting an amazing Lua NEAT (Neuroevolution of augmenting topologies) script for Super Mario World (via Bizhawk emulator), made by SethBling on Youtube. His script uses random inputs plus evolution via rightwards progress to "teach" itself how to play video games. Here is a video sampling his program.
Anyways, I've decided I wanted to port it to work on Sonic the Hedgehog 1. Now, I've considered its limited scope: it won't work on levels like Marble Zone or Labyrinth Zone, it may have trouble on loops, etc. But I kind of wanted to make this script as a proof of concept to play around with the idea of NEAT evolution.
Long story short, I've gotten most functions working, except the "getTile" function. What this function does is update the mini map in the top left corner (see the video.) It is contained in a loop which pass it the relative coordinates to the player that the map is currently updating, and it does so in increments of 16 to create 16x16 "estimates" of the tiles on the map. The problem is, I'm having some trouble understanding the RAM documentation for Sonic 1 and understanding how to obtain the solidity for a tile (I just need to obtain the "SS" flag in the 16x16 tile since the map is just a very rough approximation).
Can someone help a noob out by explaining how, given a set of coordinates, one can determine if there's a solid tile there? I can post the script if it helps.
Thanks!
Hey all,
I've recently started to delve into the world of ROM hacks and scripting. My most recent project involves porting an amazing Lua NEAT (Neuroevolution of augmenting topologies) script for Super Mario World (via Bizhawk emulator), made by SethBling on Youtube. His script uses random inputs plus evolution via rightwards progress to "teach" itself how to play video games. Here is a video sampling his program.
Anyways, I've decided I wanted to port it to work on Sonic the Hedgehog 1. Now, I've considered its limited scope: it won't work on levels like Marble Zone or Labyrinth Zone, it may have trouble on loops, etc. But I kind of wanted to make this script as a proof of concept to play around with the idea of NEAT evolution.
Long story short, I've gotten most functions working, except the "getTile" function. What this function does is update the mini map in the top left corner (see the video.) It is contained in a loop which pass it the relative coordinates to the player that the map is currently updating, and it does so in increments of 16 to create 16x16 "estimates" of the tiles on the map. The problem is, I'm having some trouble understanding the RAM documentation for Sonic 1 and understanding how to obtain the solidity for a tile (I just need to obtain the "SS" flag in the 16x16 tile since the map is just a very rough approximation).
Can someone help a noob out by explaining how, given a set of coordinates, one can determine if there's a solid tile there? I can post the script if it helps.
Thanks!
This post has been edited by er1c1996: 07 July 2015 - 07:23 AM


00