Posts for GhostSonic


GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
As a bonus, here's the "credits glitch" working on a console by replaying Masterjun's proof with my bot. Link to video The only thing I had to sync it was program the bot to skip 1 frame ahead, which I guess All-Stars wasn't so picky about. (edit: apparently lsnes emulates an extra frame at the start for some reason)
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
This took quite a while to upload, but here it is. Link to video Here's a close up shot of the bot itself (apparently I accidentally plugged the wire for the X button in the wrong spot, luckily the run shown never used it), and here's the Arduino sketch I made, along with the poll dumping Lua script from Ilari, and the converted Lost Levels run. It's programmed to use the pins on the Mega 2560, but I think it could work on the Uno if you use the Analog Input Pins. In a nutshell: Attach SD Card reader to Arduino's SPI pins. Attach Arduino to two 4021 Shift Registers by following this, just attach it to the Arduino pins instead of buttons of course, and make sure the latch pin is attached to pin 2 on the Arduino. Modify Arduino sketch if needed and upload it. Convert movie using the polldump script and put the converted file on a FAT32 formatted card with the name "snestas.txt", then put the card in the SD Reader. Connect the shift registers Latch, Clock, and Data pins to the SNES somehow (I just stuck hookup wire into the controller port). Reset Arduino, then turn on the SNES.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
jlun2 wrote:
GhostSonic wrote:
Ilari wrote:
GhostSonic wrote:
I've successfully verified KFCMARIO's Lost Levels run!
How much did you edit it (the polls sequence)?
I only added frames in the game select screen in order for it to sync on the regular All-Stars rom/cart. Everything else remains untouched.
Does that sync on the regular All-Stars rom on an emulator too?
Yes it does. Here's the fixed LSMV https://dl.dropbox.com/u/16429332/WhatdoIputhere/kfcmario2-lostlevels_edited.lsmv
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
Ilari wrote:
GhostSonic wrote:
I've successfully verified KFCMARIO's Lost Levels run!
How much did you edit it (the polls sequence)?
I only added frames in the game select screen in order for it to sync on the regular All-Stars rom/cart. Everything else remains untouched.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
Good news everyone! I've successfully verified KFCMARIO's Lost Levels run! I haven't recorded yet since I was only testing, but I will get on that ASAP. For now, here's a picture that hardly proves anything by itself. http://i.imgur.com/JONlTSU.jpg
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
Ilari wrote:
GhostSonic wrote:
Looks like it'll sync fine if you add in a few more frames at the game select screen.
Does the same way of modifying it work both on emulator and on the real thing?
I don't know yet, but I just ordered a copy of All Stars from Ebay so I'll test it and share my results as soon as I can!
SoulCal wrote:
I'd like to see Gameboy/GBC/GBA handheld verifications. Those would be the easiest to make a bot for I would think. How accurate is gameboy emulation? Since the GBA plays GB and GBC games, wouldn't a bot on GBA be the best, or are there issues with how GBA handles older games (less lag, faster processing, etc?)
I've considered this, but I'm not sure how to tell when the GBA is polling for input.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
Ilari wrote:
GhostSonic wrote:
Is it possible to have the lost levels run sync on the normal Mario All-Stars rom? And would it still be a valid verification if done on the normal version of All-Stars rom?
Probably won't sync, since that run uses the version with SMW. But if it synced, it would be valid.
Looks like it'll sync fine if you add in a few more frames at the game select screen.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
Thanks for the script! Since I already have the 4021 Shift Registers on me, I decided to just change my sketch to work with my SNES, and I've actually had some success. Literally the only game I own is DKC 2 (1.0), so I just made some test movies and they seem to sync. I should probaly buy Super Mario World since I know Masterjun has already made a movie proving the "credits-glitch" works on lsnes. Is it possible to have the lost levels run sync on the normal Mario All-Stars rom? And would it still be a valid verification if done on the normal version of All-Stars rom?
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
SoulCal wrote:
GhostSonic wrote:
I thought I'd share my attempt at creating a Genesis Bot here. Tried testing it using Aglar's Sonic 2 run, but unfortunately it desyncs at the end of Chemical Plant Act 2, and I can't see any way to fix that. There is some slowdown that doesn't occur on gens, it's hard to notice but it occurs at 2:52-2:54, though it's not until the boss that it actually desyncs.
I would check to see if the Genesis has a constant poll rate, or if it varies based on slowdown. I only got Mario64 running (and some of Mischief Makers) only because those 2 games slow down the poll rate when the console lags, while other games don't. Also check if you're using the correct version number (like V1.0 vs V1.1 or whatever Genesis uses). Also try some of the obsolete runs too, to see if those sync better. Another idea is to check the input file itself at that spot in the run. I could get more and more of Mischief Makers played back by deleting or adding frames here and there. The reason is because sometimes the game didn't poll on some frames, and sometimes it polled twice (which I didn't write code to compensate for). Try deleting or adding an input around the boss section before Sonic dies to see if you can recreate the console playback on the emulator. If you can recreate it, then you found the input you need to edit. Welcome to the verification club! :)
I'm almost positive that the polling rate varies based on slowdown, but I'm gonna have to check that again. I did make sure that the version on the cartridge matched the rom the TAS used. I also did test with obsoleted runs, with the most success coming out of the oldest wherein I actually had it synced all the way until the second to last level (Wing Fortress), and the only way I managed to pull that off was by deleting and adding frames in certain areas until it just started doing what I wanted it to. This run has completely stumped me though, because I tried adding and deleting frames in a couple different areas I thought were troublesome, but only caused it to desync sooner. I might try to take on the SNES as well by seeing if I can get an lsnes movie to playback on a real SNES. Has anyone actually tried that yet? edit: Literally just tested it by spawning a ton of objects in debug mode until the game slowed down and then measuring it, so yes, the polling rate (at least in Sonic 2) does vary based on slow down.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
The only other game I have is Jurassic Park, but it seems to be polling for input in an erratic manner, it can't even get through the menu screen! I might borrow a couple games from a friend. Sonic 1 is out of the question unless I can import the second revision.
GhostSonic
He/Him
Experienced Forum User
Joined: 3/14/2013
Posts: 61
I thought I'd share my attempt at creating a Genesis Bot here. Tried testing it using Aglar's Sonic 2 run, but unfortunately it desyncs at the end of Chemical Plant Act 2, and I can't see any way to fix that. There is some slowdown that doesn't occur on gens, it's hard to notice but it occurs at 2:52-2:54, though it's not until the boss that it actually desyncs. http://www.youtube.com/watch?v=Dnt0-CAui2Y This was made using a Genesis Model 1 VA6, two controller extenders, two DB9 gender changers, a breadboard, an Arduino Mega 2560, an adafruit MicroSD breakout board, two 74HC157 multiplexers, and many jumper wires. The Arduino sketch I wrote myself, but for stripping lag frames I just slightly modified the Lua script made for the NesBot to work for the second controller. Here's the files in case anyone wants to look at them. Hopefully someone who has more of an idea of what they're doing than I do can help. I haven't tested it very much with any other games since my Genesis library isn't very big.