1 2 3 4 5 6
17 18
Emulator Coder, Player (69)
Joined: 10/4/2005
Posts: 197
NESBot: SMB2 <-- Now featuring a virtual controller!
Ferret Warlord wrote:
How feasible would it be to transfer this over to handheld systems? It would obviously require some invasive surgery, but it should be simple enough, correct?
I'm hoping to try a few super gameboy games when I get the SNES version of this working too. I don't know enough about how gameboys work yet to give you a definite answer, but I'm not crossing out the possibility of it working. I'll research it more, but of course I'll have to buy a gameboy to hack eventually if I do it. I am curious if it works though!
Joined: 11/15/2004
Posts: 804
Location: Canada
Until now there was always that bit of doubt in my mind: do emulators really emulate consoles well enough that a TAS movie would work on a real machine? There was no way to know for sure that this stuff would really sync up. That FCEUX emulates even the lag of a real NES is a testament to how great that emulator is. I was kind of hoping to see a robotic hand or two pressing buttons on a real controller, but this is still an amazing accomplishment. Well done! Maybe as those Japanese robohands improve, we'll someday get one that can press buttons 60 times per second. I totally want to see Data pwning some old video games!
TASing or playing back a DOS game? Make sure your files match the archive at RGB Classic Games.
Active player (434)
Joined: 9/27/2004
Posts: 650
Location: Canada
I'm glad I finally clicked on this thread. These videos are amazing.
micro500 wrote:
I hope I can get this bot out to more people with bigger collections so we can test even more games.
I know 2 collectors with near-complete nes collections who live pretty close to me, and I myself have about 400 games. I will gladly help in any way I can! Keep in mind, however, I am not technically inclined so things would have to be fairly idiot-proof.
Joined: 7/25/2007
Posts: 109
Derakon wrote:
So much for SDA's "verified no cheating", huh? :) Very nice work!
Personally I approve of this just because of this. Maybe it's just a desire to see the fallout/things they'll demand, maybe it's to shut up their general headstronginess with that.
Warp wrote:
And again ignorant people can't help but to show their idiocy publicly in the comments: "That’s neat, but it totally doesn’t count as playing it through on an NES in 5 minutes. Look at 3:54–my NES doesn’t let me wall-jump like that! Or look at 5:10!"
Funnily enough, there's actually a pretty simple way to demonstrate that the walljump is possible even on the cartridge. It involves the first pipe and the bricks above it, but I forgot the exact technique.
hopper wrote:
Maybe as those Japanese robohands improve, we'll someday get one that can press buttons 60 times per second. I totally want to see Data pwning some old video games!
Imagine if SDA made you proof you're not an android during those times. >_> Also, if I didn't go to the john a few minutes before I first read about this, I think I'd shit my pants over the sheer awesomeness that is this device.
Joined: 2/23/2011
Posts: 21
I don't want to claim that I'm someone important over there and I wouldn't say there's a lot of anti-sda sentiment. That was a poor choice of words , but
Maybe it's just a desire to see the fallout/things they'll demand, maybe it's to shut up their general headstronginess
this isn't the first time I've seen this come up since the nesbot debuted. I'm not trying to start a sda vs tas fight especially since there's so much overlap and collaboration between the two, but it's business as usual over on our front. If anything people are excited to see if glitch X really works on console or if it's emulator only. Except maybe for andrewg who has/had runs on 4 out of the 5 games proven to work.
That "verified no cheating" blurb in the SDA logo has always struck me as slightly indefensible for the consoles with accurate TAS-capable emulators.
as far as this goes, it's possible that we might miss some stuff on more obscure games, but it's highly unlikely that the most contested runs would be able to dupe verifiers if some random guy shows up with perfect luck and execution. Maybe if you submit a crappy TAS with bad luck or some screwups, but why would you do that? That will show us? The verified no cheating thing is the same to me as "This movie is a tool-assisted run played on an emulator." It's just a shorter way of saying "This speedrun underwent peer review and to the best of our ability has been determined that it was played in realtime on the original unmodifed hardware (or official emulator such as Wii Virtual Console) with a standard controller. As far as carts that I own and will be eventually loaning to micro500, I've got: Blaster Master Castlevania 2 Castlevania 3 (tas uses J rom so will this sync?) Cobra Triangle Contra (tas uses J rom) Donkey Kong Donkey King Jr Dragon Warrior Faxanadu Goonies 2 Jackal Karnov Kid Icarus LoZ 1 (not needed) LoZ 2 (not needed) Lunar Pool (tas use J rom) Megaman 1-6 (mm1-3 use J rom) Paperboy Rush'n Attack SMB (not needed) Solstice Super C TMNT Wizards & Warriors 2 Ironsword I've been looking to expand my nes collection, so any suggestions? :D
Skilled player (1651)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
dballin wrote:
I don't want to claim that I'm someone important over there and I wouldn't say there's a lot of anti-sda sentiment. That was a poor choice of words , but
Maybe it's just a desire to see the fallout/things they'll demand, maybe it's to shut up their general headstronginess
this isn't the first time I've seen this come up since the nesbot debuted. I'm not trying to start a sda vs tas fight especially since there's so much overlap and collaboration between the two, but it's business as usual over on our front. If anything people are excited to see if glitch X really works on console or if it's emulator only. Except maybe for andrewg who has/had runs on 4 out of the 5 games proven to work.
That "verified no cheating" blurb in the SDA logo has always struck me as slightly indefensible for the consoles with accurate TAS-capable emulators.
as far as this goes, it's possible that we might miss some stuff on more obscure games, but it's highly unlikely that the most contested runs would be able to dupe verifiers if some random guy shows up with perfect luck and execution. Maybe if you submit a crappy TAS with bad luck or some screwups, but why would you do that? That will show us? The verified no cheating thing is the same to me as "This movie is a tool-assisted run played on an emulator." It's just a shorter way of saying "This speedrun underwent peer review and to the best of our ability has been determined that it was played in realtime on the original unmodifed hardware (or official emulator such as Wii Virtual Console) with a standard controller. As far as carts that I own and will be eventually loaning to micro500, I've got: Blaster Master Castlevania 2 Castlevania 3 (tas uses J rom so will this sync?) Cobra Triangle Contra (tas uses J rom) Donkey Kong Donkey King Jr Dragon Warrior Faxanadu Goonies 2 Jackal Karnov Kid Icarus LoZ 1 (not needed) LoZ 2 (not needed) Lunar Pool (tas use J rom) Megaman 1-6 (mm1-3 use J rom) Paperboy Rush'n Attack SMB (not needed) Solstice Super C TMNT Wizards & Warriors 2 Ironsword I've been looking to expand my nes collection, so any suggestions? :D
dballin, I hope my post at SDA wasn't seen as negative - I was just trying to let them know about the possibility of cheating. I appreciate SDA, and would one day love to see the communities have more contact than just sharing members. I tried to clean up this thread as much as possible. Anyway, thank you for loaning micro500 games. This is a very exciting time for TASvideos. P.S. This thread is for talking about the device NESbot, what games sync, how the technology can be improved, i.e. the TECHNICAL ASPECTS of the NES Bot. This thread is NOT NOT NOT for debating the legitimacy of aspects of TASing, the effect this device will have on SDA, or any other debate worthy topic, or whether or not I'm over-modding this thread. Start a new thread if you want to raise these issues. I will continue to purge that stuff from this thread.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 6/23/2009
Posts: 150
Do any NES games use any kind of noise to run it's RNG? I'm not familiar enough with the technical aspects of the NES to know if that is even possible as an RNG technique.
Joined: 7/2/2007
Posts: 3960
Apparently Blades of Steel reads uninitialized memory to set its RNG state, or something along those lines. There's a thread around here somewhere about it being "impossible to accurately emulate". I'd assume that any TAS of the game would therefore not play back correctly on an actual machine.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 10/20/2006
Posts: 1248
Couldn't you make all of these games work if you had a device that initializes any game's memory with all zeros? Edit: Ok, the ram is obviously inside the NES, not the games, lol.
Skilled player (1651)
Joined: 11/15/2004
Posts: 2202
Location: Killjoy
ObadiahtheSlim wrote:
Do any NES games use any kind of noise to run it's RNG? I'm not familiar enough with the technical aspects of the NES to know if that is even possible as an RNG technique.
To answer this question, we need a lua function called memory.registerread( ) to compliment memory.registerwrite( ). Create a boolean table of all possible ram addresses, and flag every address on its first write, and check every address on read. If a read comes up with a false - the NES read from uninitialized memory.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Emulator Coder, Player (69)
Joined: 10/4/2005
Posts: 197
DarkKobold wrote:
To answer this question, we need a lua function called memory.registerread( ) to compliment memory.registerwrite( ). Create a boolean table of all possible ram addresses, and flag every address on its first write, and check every address on read. If a read comes up with a false - the NES read from uninitialized memory.
If that gets implemented it would be a nice addition to a script I'm working on. I'm hoping to collect some metadata on games, things like if they use PCM, if they do sub-frame polling and how many polls it typically does or at least the max and min number, does it start from initialized memory, etc. Info like this may make getting runs to sync easier in the future.
Joined: 6/23/2009
Posts: 150
Yes I know games read from uninitialized ram as a source of entropy for the RNG, but do any get from outside noise like how I could use the noise off a Zener diode. In know there was an unused expansion slot on the NES could that have been used to get some sort of signal noise for the RNG?
Joined: 7/2/2007
Posts: 3960
I suppose such a thing would be possible, but I've not heard of a game doing it. It would seem excessively paranoid given the ready availability of basically random data in the form of uninitialized memory. Googling about tells me that the expansion slot in the NES was used for an aborted gambling peripheral but otherwise ignored.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 10/20/2006
Posts: 1248
upthorn
He/Him
Emulator Coder, Active player (391)
Joined: 3/24/2006
Posts: 1802
Kuwaga wrote:
Couldn't you make all of these games work if you had a device that initializes any game's memory with all zeros? Edit: Ok, the ram is obviously inside the NES, not the games, lol.
I believe this is correct, if you had a passthrough device that initializes all the NES memory with 0s, then simply acts as a transparent passthrough for the actual game cartridge, it should render all those games deterministic. (Basically this would work like a game genie on the hardware level, but the programming would be completely different.)
How fleeting are all human passions compared with the massive continuity of ducks.
Joined: 10/20/2006
Posts: 1248
Why would it have to be a passthrough device though? Wouldn't a normal cartridge that just writes all zeros to the NES' RAM be enough? You'd just have to insert it prior to the actual game. [URL=http://www.raphnet.net/electronique/nes_cart/nes_cart_en.php]Here's[/URL] a tutorial on how to make a reprogrammable NES cartridge.
upthorn
He/Him
Emulator Coder, Active player (391)
Joined: 3/24/2006
Posts: 1802
Because the way in which RAM degrades while unpowered is not well understood, so if you have to turn the system off to swap out cartridges the states that were written prior are not guaranteed. I don't see why a 0 would flip to a 1 while unpowered, but it is conceivable that it could be possible, hence I'd recommend a passthrough to remove the necessity for turning the system off in between the initialization and the game running.
How fleeting are all human passions compared with the massive continuity of ducks.
Joined: 1/13/2007
Posts: 340
The deal with blades of steel is the DMC controller starts in an unknown state, and thus steals cpu cycles randomly. AS for the walljump test, it's simply the minus world trick. It proves the possibility of walljump. Also, people have walljumped in a certain super mario brothers 3 level in real time. Nintendo power guide even says it's possible. SUCK IT, haters. :) As for proof that the console is unmodified, it's simple. Boot up blades of steel twice before playing back the intended game. :)
Editor, Reviewer, Experienced player (978)
Joined: 4/17/2004
Posts: 3109
Location: Sweden
>I've been looking to expand my nes collection, so any suggestions? :D Excitebike!
Skilled player (1736)
Joined: 9/17/2009
Posts: 4979
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
How many times would a movie be tested before it is "invalid"?
Joined: 6/23/2009
Posts: 150
Well that isn't a fair thing to say. Some games use uninitialized ram to seed teh RNG. Those would be very hard if not impossible to verify on the console. It's just because we cannot force the RNG to act like it does on the emulator.
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
As I stated earlier, I'd love to do testing for SNES if / when that time comes. I have a lot more SNES games than NES games, so I don't know if I'd be of any use to volunteer for NES.
All the best, Brandon Evans
Joined: 2/23/2011
Posts: 21
jlun2 wrote:
How many times would a movie be tested before it is "invalid"?
As far as I'm concerned, you can't. You can only fail to prove that it works. The limiting factor of course is time and how much you want to bash your head into the wall that is a particular run. The reasons some of them don't work are already known and others may become apparent when the videos are uploaded. The suspense is killing me! Can't wait for the DK run...
Joined: 2/1/2008
Posts: 347
The only way you could consider a TAS invalid is if the run does not sync on hardware due to an inaccuracy in the emulator. For example, there was a Mario Land 2 TAS that was rejected because a special area of the virtual RAM that was rarely ever used was not emulated properly, and the TAS abused memory such that the game accessed that part of RAM when it normally would not. In that case, it is the emulator's fault, not the TAS's fault. In a perfect world (i.e. not Mupen), the emulator would be fixed soon after and a new run can be made that will not fail a real hardware test due to an inaccuracy. Naturally, using uninitialized RAM for the psudorandom number generator would make all efforts to duplicate the TAS on real hardware futile, unless the hardware was modified so the RAM would be powered and initialized to all 0's (or all 1's, which are both likely what deterministic emulators use) before turning on the console. The uninitialized RAM problem is not an emulator inaccuracy.
<ccfreak2k> There is no 'ctrl' button on DeHackEd's computer. DeHackEd is always in control.
Emulator Coder, Player (69)
Joined: 10/4/2005
Posts: 197
I borrowed a bunch of games (thanks dballin!), and none of them synced. Some definitely needed the Japanese cart (Lunar Pool, MM2 and 3), some needed two players. I tried as many movies for each cartridge as I could without having to deal with Famtasia (which I doubt would work anyway). Some didn't work in the emulator after converting the fcm. Any that did work in the emulator though I tried on the console, and below are the results. I did get my own Tetris cartridge to sync movies. Interestingly though one of the movies does not sync, and I'm not too sure why that is Console Verified: Youtube - [1596] NES Tetris "maximum score" by Acmlm in 03:11.78 Youtube - [924] NES Tetris "maximum score" by Baxter in 03:29.67 Youtube - [399] NES Tetris "maximum score" by Acmlm in 03:41.90 Youtube - [239] NES Tetris "maximum score" by Acmlm in 04:06.07 Youtube - [1502] NES Tetris "playaround" by Baxter in 02:17.36 Youtube - [925] NES Tetris "Mode B" by Baxter in 00:38.85 Youtube - [920] NES Tetris "Mode B" by Chef Stef in 00:50.53 Desyncs: Youtube - [386] NES Tetris "maximum score" by nico in 03:56.42 Youtube - [365] NES Blaster Master (USA) "all bosses" by namflow in 33:17.52 Youtube - [1348] NES Excitebike by Lord_Tom in 05:29.44 Youtube - [1070] NES Excitebike by JXQ in 05:31.37 Youtube - [517] NES Excitebike by Luke in 05:35.38 Youtube - [297] NES Excitebike by nesrocks in 05:57.93 Youtube - [1164] NES Jackal "1 player" by klmz in 07:25.98 Youtube - [1444] NES Mega Man 4 by GlitchMan in 34:00.02 Youtube - [545] NES Mega Man 4 by AngerFist & DeHackEd in 34:34.38 Youtube - [442] NES Mega Man 4 by AngerFist & DeHackEd in 35:11.48 Youtube - [1549] NES Mega Man 5 by GlitchMan in 31:41.68 Youtube - [1241] NES Mega Man 6 by Shinryuu in 30:46.78 Youtube - [1686] NES Mega Man by Shinryuu & finalfighter in 12:23.34 Youtube - [726] NES Mega Man by Bisqwit & finalfighter in 15:38.07 Youtube - [715] NES Mega Man by Bisqwit & AngerFist in 15:48.33 Youtube - [515] NES Mega Man by Bisqwit & AngerFist in 16:09.82 Youtube - [1695] NES Mike Tyson's Punch-Out!! by adelikat in 17:47.71 Youtube - [749] NES Paperboy by Randil in 11:30.78 Youtube - [1103] NES Mega Man by Deign in 15:29.27 I get the feeling Excitebike is not emulated correctly, since any of the movies that tapped the throttle to match the game's 4 cycle read loop didn't work correctly. I tried shifting the input on those movies one frame and the game finally saw it and the player moved, but other things didn't work (opponents weren't in the right place, crashing after jumps, etc). It seems like the race starts one frame too early in the emulator compared to the console. I also borrowed Donkey Kong and Donkey Kong Jr., both of which desynced repeatedly. After returning the games we realized it may have been the cartridge's fault (oxidized contacts). I shot some videos of them, but I feel like they're not worth uploading. Let me know if you guys think differently though!
1 2 3 4 5 6
17 18