I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Which would mean that we ironically had it right all along, lol.
I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
edit: Also, where is this source code you speak of? I can read assembly language.
I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
edit: Also, where is this source code you speak of? I can read assembly language.
I honestly have no idea and may have screwed up the terminology. I called him friday night when I was doing run after run. I thought he said he'd check the source code and call me back. He called back pretty quick, so he may have just googled it. I think he said its an rng, which means they appear at random. He said that there could be conditions on that (for example, I have always thought you are more likely to get a wand if you have lost a life - he said that's possible, but you wouldn't be able to find out).
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
Yep... like how speed runners manipulate the location of the Technodrome in TMNT by pressing start when a certain musical note plays.
I wish this discussion would go further into better hypothesis and further advancement in understanding how the wands work.
Though, honestly, I think that the very restrictive way to perform in this game (the best path is finite) can't really be combined successfully with the relatively and surely randomness of the wands distribution. Pragmatically, someone would have stumbled on something that gives some sort of advantage at this point, yet, everybody who play the game at high level are still clueless.
Well, I would say at this point the only way the Best Run and Best Wands can be combined is old-fashioned tenacity, i.e. be good enough at and enthusiastic enough about the game that you can try many runs, and once you get that ideal run, have the skill to pull off a "perfect" run instead of blowing it.
I know I'm not delivering groundbreaking news here, just saying that we've seen favorable wands in logical spots on the course, areas your marble actually would be traveling in, so I don't think it's crazy to think the perfect run isn't technically possible given enough time.
Well, I would say at this point the only way the Best Run and Best Wands can be combined is old-fashioned tenacity, i.e. be good enough at and enthusiastic enough about the game that you can try many runs, and once you get that ideal run, have the skill to pull off a "perfect" run instead of blowing it.
I know I'm not delivering groundbreaking news here, just saying that we've seen favorable wands in logical spots on the course, areas your marble actually would be traveling in, so I don't think it's crazy to think the perfect run isn't technically possible given enough time.
Exactly, you can't be more spot on about it. The perfect run exist with our valid experience of the wands randomness and rewards effect. That is, to date, the best comprehension of it to apply gaming-wise, and maybe the best even after debunking the exact functionning of the wands' distributon in the game itself as a 'code = not 100 % random'.
I will have some two weeks off at the end of April to recover from a surgery.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy buy pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Exactly.
I will be able to dump memory per tick and observe what is happening, then roll back to that point, add entropy to the scenario and observe how it unfolds till I have a good understanding of what is going on.
Then you can move to fresh scenarios to see if the data behaves in the same way.
With those save states, I believe we will finally figure out how those wands are spawned.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Would you want to do it sir? This would be rad.
EDIT : Not trying highjack Bea on it, but having two heads on this wouldn't be too much for peer validation.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Would you want to do it sir? This would be rad.
EDIT : Not trying highjack Bea on it, but having two heads on this wouldn't be too much for peer validation.
Bea will have to take point, but I am happy to cheer and lend ideas. My 6502 is horrible and my time is low. Getting 20 min together to spend on a complicated problem is very hard. As a scientist, however, I can see how big of a gift that save file is.
Final standing have been tallied. What a crazy week. The competition was very intense with the top 10 all being 170k+! Congrats to all 40+ members who participated!
Looks like that was the tall guy's first win in 7 years
The scoreboard reminds me of Rad Racer from last year where you were bumped down to 9th place and there was about a 1000 points difference between 8th and 9th. And the top scores were very close.
Regarding Rad Racer, there were several score posts within the last hour of that contest. I remember thinking yeah I've got 3rd or 4th and then I got bumped to 6th.
This is a world record Marble Madness speed run. His score would have been good enough for 8th place in this contest, lol. Of course he could have easily increased his score to over 177k had he been playing for score instead of speed.
I will have some two weeks off at the end of April to recover from a surgery.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I too want to see a 180K+ plus score in this.
You may or may not be in my area of expertise now (IT/programming/data streams and file formats)...
In Linux, use the 'file' command. 'file' will give you basic information on the ROM by using a local database of known formats.
I'm not exactly following what you're wanting to do based on what you said above. I've worked with the 6502 debugging maybe once, but I've done my share of x86 debugging. One would probably want to load it into the debugger and set breakpoints during specific behavior to observe the changes to system state. I imagine there will be a default offset to load the program into memory. For some reason, 0x4000 comes to mind, but don't quote me on that (it may be 0x0400, or something else entirely ).
I'm happy to help, contribute, or sit back and have drinks and make funny comments. 8)
I will have some two weeks off at the end of April to recover from a surgery.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I too want to see a 180K+ plus score in this.
You may or may not be in my area of expertise now (IT/programming/data streams and file formats)...
In Linux, use the 'file' command. 'file' will give you basic information on the ROM by using a local database of known formats.
I'm not exactly following what you're wanting to do based on what you said above. I've worked with the 6502 debugging maybe once, but I've done my share of x86 debugging. One would probably want to load it into the debugger and set breakpoints during specific behavior to observe the changes to system state. I imagine there will be a default offset to load the program into memory. For some reason, 0x4000 comes to mind, but don't quote me on that (it may be 0x0400, or something else entirely ).
I'm happy to help, contribute, or sit back and have drinks and make funny comments. 8)
Well, the way I will start is by setting up a memory sniffer on the emulator that allows me to dump the memory to file with a single key stroke.
Then take several memory dumps, tick by tick, first of the wand appearing.
After that, I will add a direction key input as entropy and save the same amount of memory dumps so I can compare.
After I have a direction, I will start looking for the PRG to disassembly and study what is affecting the memory to study and determine what is happening.
Then no one knows. But in the end, we will know what conditions cause the wands to spawn.
Comments
Originally posted by: NESfiend
Originally posted by: Krunch
I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Which would mean that we ironically had it right all along, lol.
I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
edit: Also, where is this source code you speak of? I can read assembly language.
I was hoping Bea would become more naturally interested in this game, because if any of us could solve the enigma of the wands' programming, she could.
My brother is a programmer and I asked him to check the source code. He said its an RNG, which he said means they appear at random.
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
edit: Also, where is this source code you speak of? I can read assembly language.
I honestly have no idea and may have screwed up the terminology. I called him friday night when I was doing run after run. I thought he said he'd check the source code and call me back. He called back pretty quick, so he may have just googled it. I think he said its an rng, which means they appear at random. He said that there could be conditions on that (for example, I have always thought you are more likely to get a wand if you have lost a life - he said that's possible, but you wouldn't be able to find out).
Except that the NES doesn't have a RNG. It has to be dependant on some sort of timer. Even if it's the amount of frames on the title screen before start is pressed.
Yep... like how speed runners manipulate the location of the Technodrome in TMNT by pressing start when a certain musical note plays.
Though, honestly, I think that the very restrictive way to perform in this game (the best path is finite) can't really be combined successfully with the relatively and surely randomness of the wands distribution. Pragmatically, someone would have stumbled on something that gives some sort of advantage at this point, yet, everybody who play the game at high level are still clueless.
I know I'm not delivering groundbreaking news here, just saying that we've seen favorable wands in logical spots on the course, areas your marble actually would be traveling in, so I don't think it's crazy to think the perfect run isn't technically possible given enough time.
Originally posted by: Krunch
Well, I would say at this point the only way the Best Run and Best Wands can be combined is old-fashioned tenacity, i.e. be good enough at and enthusiastic enough about the game that you can try many runs, and once you get that ideal run, have the skill to pull off a "perfect" run instead of blowing it.
I know I'm not delivering groundbreaking news here, just saying that we've seen favorable wands in logical spots on the course, areas your marble actually would be traveling in, so I don't think it's crazy to think the perfect run isn't technically possible given enough time.
Exactly, you can't be more spot on about it. The perfect run exist with our valid experience of the wands randomness and rewards effect. That is, to date, the best comprehension of it to apply gaming-wise, and maybe the best even after debunking the exact functionning of the wands' distributon in the game itself as a 'code = not 100 % random'.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I too want to see a 180K+ plus score in this.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy buy pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Exactly.
I will be able to dump memory per tick and observe what is happening, then roll back to that point, add entropy to the scenario and observe how it unfolds till I have a good understanding of what is going on.
Then you can move to fresh scenarios to see if the data behaves in the same way.
With those save states, I believe we will finally figure out how those wands are spawned.
Originally posted by: Xerxes
Originally posted by: Bea_Iank
Originally posted by: Krunch
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Would you want to do it sir? This would be rad.
EDIT : Not trying highjack Bea on it, but having two heads on this wouldn't be too much for peer validation.
Originally posted by: guillavoie
Originally posted by: Xerxes
Originally posted by: Bea_Iank
Originally posted by: Krunch
I have two save states, both from the same run, where the marble is parked with approx one second before a wand is granted (end of Aerial Race, and end of Silly Race). In both cases, if you start the save state and leave the marble sitting, you will get the wand at a specific time 100% of the time. But also in both cases, if you move the marble even in the slightest, you will not get the wand. Doesn't really put me closer to solving the wands but thought I would share this tidbit.
Can you send me those save states for memory sniffing at some point in the future?
They will be of a great help to decipher this.
This is actually a lot to start with.
It provides a method of easy observation. You can enter a debugger and step through the whole process and watch it happen.
It provides a test bed for hypotheses. For example I could easily eliminate the hypothesis that it is reading all button inputs as a source of entropy by pressing a and seeing if the wand still comes. Also you have already eliminated the hypothesis of wands at a specific place at a specific time.
It also provides a direction for searching. You could move the marble, move it back, and then creat a second save file and note the time. Let the clock run to the same time and create a third save file. By comparing all three you may be able to find where critical data is stored.
Would you want to do it sir? This would be rad.
EDIT : Not trying highjack Bea on it, but having two heads on this wouldn't be too much for peer validation.
Bea will have to take point, but I am happy to cheer and lend ideas. My 6502 is horrible and my time is low. Getting 20 min together to spend on a complicated problem is very hard. As a scientist, however, I can see how big of a gift that save file is.
This is surreal and out of this world.
Looks like that was the tall guy's first win in 7 years
The scoreboard reminds me of Rad Racer from last year where you were bumped down to 9th place and there was about a 1000 points difference between 8th and 9th. And the top scores were very close.
http://nintendoage.com/forum/messageview.cfm?catid=31&threadid=159866
Looks like that was the tall guy's first win in 7 years
Blind squirrel finds a nut every once in a while.
Wow, there were some seriously amazing scores this week! Congratulations to all of the high rollers!!
Seriously. Not even 171k was good enough to get top 8. None of the previous Marble Madness contests were this ridiculous.
Oddly enough though, in the 2009 contest, at least 2 (if not 3, it's close) scores were higher than this year.
Man, I can't believe you can get 177k in Marble Madness but you have trouble with a super easy game like Road Blasters.
Oddly enough though, in the 2009 contest, at least 2 (if not 3, it's close) scores were higher than this year.
Man, I can't believe you can get 177k in Marble Madness but you have trouble with a super easy game like Road Blasters.
I'm a man with a very limited and specialized skill set. I didn't even make participation in Mario 3.
It's either that or I only really get into it when it's a game I love, and Marble Madness is probably my favorite NES game across the entire platform.
THE TOP 10 SCORES ARE ALL 170K+.
This is a world record Marble Madness speed run. His score would have been good enough for 8th place in this contest, lol. Of course he could have easily increased his score to over 177k had he been playing for score instead of speed.
That guy is a beast! Playing for points he could do the best score ever (maybe he has?).
Final Elipsis replied back and said that he doesn't play for high score. I guess he's only into the speed running aspect.
Oddly enough though, in the 2009 contest, at least 2 (if not 3, it's close) scores were higher than this year.
Man, I can't believe you can get 177k in Marble Madness but you have trouble with a super easy game like Road Blasters.
I'm a man with a very limited and specialized skill set. I didn't even make participation in Mario 3.
It's either that or I only really get into it when it's a game I love, and Marble Madness is probably my favorite NES game across the entire platform.
I'm gonna use the motivation from this contest to have another run at the AVS scoreboard. I hope you, guillavoie and mog do the same.
And the rest of you fools need AVS's so we can take this contest outside the weeklong contest and push this game as far as we can.
I will have some two weeks off at the end of April to recover from a surgery.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I too want to see a 180K+ plus score in this.
You may or may not be in my area of expertise now (IT/programming/data streams and file formats)...
In Linux, use the 'file' command. 'file' will give you basic information on the ROM by using a local database of known formats.
I'm not exactly following what you're wanting to do based on what you said above. I've worked with the 6502 debugging maybe once, but I've done my share of x86 debugging. One would probably want to load it into the debugger and set breakpoints during specific behavior to observe the changes to system state. I imagine there will be a default offset to load the program into memory. For some reason, 0x4000 comes to mind, but don't quote me on that (it may be 0x0400, or something else entirely ).
I'm happy to help, contribute, or sit back and have drinks and make funny comments. 8)
I will have some two weeks off at the end of April to recover from a surgery.
Pester me about this then and I will take a look at it. I need to figure out how the map is stored in memory and work from there.
I know enough of 6502 Assembly to figure a thing or two how it works as well. It will be a matter of finding out the offset where the PRG is stored in this rom.
I too want to see a 180K+ plus score in this.
You may or may not be in my area of expertise now (IT/programming/data streams and file formats)...
In Linux, use the 'file' command. 'file' will give you basic information on the ROM by using a local database of known formats.
I'm not exactly following what you're wanting to do based on what you said above. I've worked with the 6502 debugging maybe once, but I've done my share of x86 debugging. One would probably want to load it into the debugger and set breakpoints during specific behavior to observe the changes to system state. I imagine there will be a default offset to load the program into memory. For some reason, 0x4000 comes to mind, but don't quote me on that (it may be 0x0400, or something else entirely ).
I'm happy to help, contribute, or sit back and have drinks and make funny comments. 8)
Well, the way I will start is by setting up a memory sniffer on the emulator that allows me to dump the memory to file with a single key stroke.
Then take several memory dumps, tick by tick, first of the wand appearing.
After that, I will add a direction key input as entropy and save the same amount of memory dumps so I can compare.
After I have a direction, I will start looking for the PRG to disassembly and study what is affecting the memory to study and determine what is happening.
Then no one knows. But in the end, we will know what conditions cause the wands to spawn.