tikevin83

Pokemon Crystal TAS Console Verification

Jun 3rd, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. A combination of efforts from TASVideos members and Pokemon Speedrunners has allowed MrWint's Pokemon Crystal TAS to be verified on original hardware using Game Boy Interface.
  2.  
  3. MrWint's original submission to TASVideos can be found here:
  4. http://tasvideos.org/6395S.html
  5.  
  6. Emulator Accuracy
  7. Console verification efforts require perfect emulation of the target console. When the Pokemon Speedrunning community needed perfect emulation of Gen 2 to verify specific RNG patterns, Gifvex improved their Gambatte-Speedrun emulator to perfectly handle the different cartridge model used in Gen 2 (MBC3) which includes a real time clock. MrWint was able to port Gifvex's RTC improvements from the emulator used in the speedrunning community (Gambatte-Speedrun) to BizHawk so that it can be used for TASing. Many other improvements were ported from Sinamas's emulator, the original Gambatte which was recently resurrected and which Gambatte-Speedrun is built on.
  8.  
  9. Console Playback
  10. With the new improvements in hand, MrWint exported a TAS for TiKevin83 to test using Extrems' Game Boy Interface. But nothing ever works perfectly the first try. Over the course of 32 minutes, the Real Time Clock in TiKevin83's original Crystal Cartridge drifted enough to cause differences in Crystal's RNG, desyncing the run. MrWint, TiKevin83, and Gifvex were able to reverse engineer an idea of how far off the clock was by analysis of the gift Spearow Kenya's random stats. In doing so they also discovered that this Crystal Cart's dead battery caused the values in SRAM (save data) to match BizHawk defaults by sheer coincidence. MrWint was then able to update the TAS file with an offset to correct for the drifting RTC and build a new prototype run around the drift. This massively improved the length of syncing to almost two hours. Some minor issues were found in the conversion factors used for Game Boy Interface to time inputs on console by exact Game Boy CPU clock cycles. The conversion assumed inputs would be noticed at the start of each frame, but this assumption failed for one of the over six hundred thousand frames in the TAS. Extrems also suggested tuning an offset in the conversion which accounts for a mode switch in the GBA BIOS. After correcting those conversions, the run was able to be verified in its entirety.
  11.  
  12. https://youtu.be/1FBJHVGfStY
  13.  
  14. This shows the first successful full sync of Crystal Glitchless, which is longer than any other published console verification on TASVideos by more than an hour. MrWint used rapid prototype TASes to iteratively tune our real time clock estimate, so we're waiting to produce higher quality console capture until fully satisfied with the optimization of the TAS.
  15.  
  16. Thanks again to MrWint, Gifvex, and Extrems for their work on this retro TAS project.
Add Comment
Please, Sign In to add comment