110
dwangoAC TASBot the perfectionist The amazing life & achievements of... Twitch.tv/dwangoAC twitter @MrTASBot

TASBot - the perfectionist

Embed Size (px)

Citation preview

Page 1: TASBot - the perfectionist

dwangoAC

TASBotthe perfectionist

The amazing life & achievements of...

Twitch.tv/dwangoAC twitter @MrTASBot

Page 2: TASBot - the perfectionist

Allan 'dwangoAC' Cecil

http://acbit.net

Presented and written by...

Page 3: TASBot - the perfectionist

Allan 'dwangoAC' Cecil

President of the North Bay Linux Users’ Group

http://nblug.org

http://acbit.net

Presented and written by...

Page 4: TASBot - the perfectionist

Allan 'dwangoAC' Cecil

President of the North Bay Linux Users’ Group

Senior Engineer at Cyan Ciena

http://nblug.org http://www.ciena.com/

http://acbit.net

Presented and written by...

Page 5: TASBot - the perfectionist

Allan 'dwangoAC' Cecil

President of the North Bay Linux Users’ Group

Senior Engineer at Cyan Ciena

http://nblug.org http://www.ciena.com/ http://tasvideos.org/DwangoAC.html

http://tasbot.nethttp://acbit.net

Presented and written by...

Page 6: TASBot - the perfectionist
Page 7: TASBot - the perfectionist

SpeedrunningHuman limits

Page 8: TASBot - the perfectionist

Playing games fast

http://speeddemosarchive.com/

Page 9: TASBot - the perfectionist

Playing games fast

http://speeddemosarchive.com/

● Inspiration: in-game completion timers

Page 10: TASBot - the perfectionist

● SpeedDemosArchive.com and others track fastest completion times

● Strict rules + peer review: no cheats, no macros

● Typically highly entertaining

● Many categories, ranging from "any%" to "low% no major glitches"

Playing games fast

http://speeddemosarchive.com/

● Inspiration: in-game completion timers

Page 11: TASBot - the perfectionist

Games Done Quick

Page 12: TASBot - the perfectionist

Games Done QuickSpeedrunning marathons for charity streamed live on Twitch

Classic GDQ (2010), Awesome GDQ (2011-), Summer GDQ (2011-)

Page 17: TASBot - the perfectionist

Even 1-handed,

blindfolded...

Beyond standard

limits!Punch-Out blindfolded by Sinister1 - AGDQ 2014https://www.youtube.com/watch?v=CvzIb53Lcno

https://www.youtube.com/watch?v=JXtUwIW7cL8Momodora by Halfcoordinated - SGDQ 2016

Page 18: TASBot - the perfectionist

TAS verb / noun ~ TASer noun“I’m a TASer working on Tetris.” / “I’m TASing Tetris.”“I TAS’ed Tetris.” / “They made a TAS of Tetris.”

Page 19: TASBot - the perfectionist

TAS verb / noun ~ TASer noun“I’m a TASer working on Tetris.” / “I’m TASing Tetris.”“I TAS’ed Tetris.” / “They made a TAS of Tetris.”

Tool-Assisted SuperplaysSpeedruns

From human limitsTo hardware limits

Page 20: TASBot - the perfectionist

TAS verb / noun ~ TASer noun“I’m a TASer working on Tetris.” / “I’m TASing Tetris.”“I TAS’ed Tetris.” / “They made a TAS of Tetris.”

Tool-Assisted SuperplaysSpeedruns

From human limitsTo hardware limits

Page 21: TASBot - the perfectionist

Harder Faster Better Stronger

Page 22: TASBot - the perfectionist

Harder Faster Better Stronger● Early PC game TAS’s: Savestates, slow motion, and recording tools

Page 23: TASBot - the perfectionist

Harder Faster Better Stronger● Early PC game TAS’s: Savestates, slow motion, and recording tools

● ~1999: Doom Done Quick in 19:41

Page 26: TASBot - the perfectionist

● Tools meant hardware limits became the only limits

Inhuman skill on display

http://tasvideos.org/WelcomeToTASVideos.htmlhttps://web.archive.org/web/20060511210906/http://bisqwit.iki.fi/nesvideos/

Page 27: TASBot - the perfectionist

○ Competitors should admit to doping

○ Videos made with TAS tools should be labeled

● Tools meant hardware limits became the only limits

● TASing looked like the Doped Olympics

Inhuman skill on display

http://tasvideos.org/WelcomeToTASVideos.htmlhttps://web.archive.org/web/20060511210906/http://bisqwit.iki.fi/nesvideos/

Page 28: TASBot - the perfectionist

● NESVideos created by Bisqwit in 2004

○ Competitors should admit to doping

○ Videos made with TAS tools should be labeled

● Tools meant hardware limits became the only limits

● TASing looked like the Doped Olympics

Inhuman skill on display

http://tasvideos.org/WelcomeToTASVideos.htmlhttps://web.archive.org/web/20060511210906/http://bisqwit.iki.fi/nesvideos/

Page 29: TASBot - the perfectionist

● NESVideos created by Bisqwit in 2004

○ Now at TASVideos.org with runs for many platforms

○ Competitors should admit to doping

○ Videos made with TAS tools should be labeled

● Tools meant hardware limits became the only limits

● TASing looked like the Doped Olympics

Inhuman skill on display

http://tasvideos.org/WelcomeToTASVideos.htmlhttps://web.archive.org/web/20060511210906/http://bisqwit.iki.fi/nesvideos/

Page 30: TASBot - the perfectionist

the birthof TASBot

Page 31: TASBot - the perfectionist

the birthof TASBotConsole verified

Pushing hardware limits

Page 32: TASBot - the perfectionist

the birthof TASBotConsole verified

Pushing hardware limits

Page 34: TASBot - the perfectionist

Rerecording frameworks

Hourglass

NetHack specific tools

http://tasvideos.org/EmulatorResources/Hourglass.html

http://tasvideos.org/GameResources/DOS/Nethack.html

Page 35: TASBot - the perfectionist

Emulation accuracy evolution

Page 36: TASBot - the perfectionist

● Clean room reverse engineering

○ or stolen manuals

● Early emulators: highly inaccurate

Emulation accuracy evolution

Page 37: TASBot - the perfectionist

● bsnes: extreme accuracy, poor usability

● Clean room reverse engineering

○ or stolen manuals

● Early emulators: highly inaccurate

Emulation accuracy evolution

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/https://web.archive.org/web/20120915125144/http://byuu.org/bsnes/accuracy

Page 38: TASBot - the perfectionist

● bsnes: extreme accuracy, poor usability

● Clean room reverse engineering

○ or stolen manuals

● Early emulators: highly inaccurate

Emulation accuracy evolution

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/https://web.archive.org/web/20120915125144/http://byuu.org/bsnes/accuracy

http://byuu.org/emulation/higan/

higan

Page 39: TASBot - the perfectionist

● bsnes: extreme accuracy, poor usability

● Clean room reverse engineering

○ or stolen manuals

● Early emulators: highly inaccurate

⇒ match actual hardware, frame for frame

Emulation accuracy evolution

http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator/https://web.archive.org/web/20120915125144/http://byuu.org/bsnes/accuracy

http://byuu.org/emulation/higan/

higan

Page 40: TASBot - the perfectionist
Page 41: TASBot - the perfectionist

Memory searching, Lua scripting, disassembly

https://www.lua.org/

Page 42: TASBot - the perfectionist

● More than just frame advance and savestates

Memory searching, Lua scripting, disassembly

https://www.youtube.com/watch?v=RtaS4KEl4Qc

https://www.lua.org/

Page 43: TASBot - the perfectionist

● More than just frame advance and savestates

● Find a specific value: save, reset memory search, run

○ Search based on conditions, repeat

Memory searching, Lua scripting, disassembly

https://www.youtube.com/watch?v=RtaS4KEl4Qc

https://www.lua.org/

Page 44: TASBot - the perfectionist

● More than just frame advance and savestates

● Find a specific value: save, reset memory search, run

○ Search based on conditions, repeat

Memory searching, Lua scripting, disassembly

● Disassembly of RAM or ROM for complete understanding

https://www.youtube.com/watch?v=RtaS4KEl4Qc

https://www.lua.org/

Page 46: TASBot - the perfectionist

Abusinghandwriting recognition

Editing memory livedirectly in the game

SGDQ 2016 https://youtu.be/EHfw-BEuRO8?t=12m28s

https://youtu.be/mSFHKAvTGNk?t=29m53s AGDQ 2016

Page 47: TASBot - the perfectionist
Page 48: TASBot - the perfectionist

TAS ⇔ Infosec equivalents

● Savestate = VM snapshot

● Frame advance = VM CPU step / tick

● Glitch = Vulnerability

● Arbitrary Code Execution = Exploit

● Console verification = Evil maid attack

⇒ TAS = fun, technical, educational

Page 49: TASBot - the perfectionist

AGDQ 2016 https://youtu.be/pj7RE2DcRgc?t=50m23s

SMB3 Total Control Glitchfest by Lord Tom

Page 50: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

Page 51: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

plays

Page 52: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

plays

Page 53: TASBot - the perfectionist

Early console verification devices

Page 54: TASBot - the perfectionist

Early console verification devices

● 2009

○ a PIC to press NES buttons [true]

Page 55: TASBot - the perfectionist

● 2011

○ NESBot [micro500]: first replay of SMB1

■ Used at SGDQ 2011 on SMB2 and W&W 3

Early console verification deviceshttps://www.youtube.com/watch?v=KQXVgMKJEDY

● 2009

○ a PIC to press NES buttons [true]

Page 56: TASBot - the perfectionist

● 2011

○ NESBot [micro500]: first replay of SMB1

■ Used at SGDQ 2011 on SMB2 and W&W 3

○ Droid64 [SoulCal]

● 2012

○ N64 [micro500]

Early console verification deviceshttps://www.youtube.com/watch?v=KQXVgMKJEDY

● 2009

○ a PIC to press NES buttons [true]

Page 57: TASBot - the perfectionist

● 2013

○ SNES and Genesis Arduino bot [GhostSonic]○ NES/SNES replay device [true]

■ Streaming capable and inexpensive but limited datarates

Page 58: TASBot - the perfectionist

● 2013

○ SNES and Genesis Arduino bot [GhostSonic]○ NES/SNES replay device [true]

■ Streaming capable and inexpensive but limited datarates● 2014

○ Nintendo R.O.B + board + legos: "TASBot"

Page 59: TASBot - the perfectionist

● 2013

○ SNES and Genesis Arduino bot [GhostSonic]○ NES/SNES replay device [true]

■ Streaming capable and inexpensive but limited datarates● 2014

○ Nintendo R.O.B + board + legos: "TASBot"

● 2015○ Multireplay device [true]: self-contained ⇒ faster datarates

Page 60: TASBot - the perfectionist

● 2013

○ SNES and Genesis Arduino bot [GhostSonic]○ NES/SNES replay device [true]

■ Streaming capable and inexpensive but limited datarates● 2014

○ Nintendo R.O.B + board + legos: "TASBot"

● 2015○ Multireplay device [true]: self-contained ⇒ faster datarates○ Game Boy Player Player [endrift] (GBA on GameCube)

Page 61: TASBot - the perfectionist

TASBotthe perfectionist

Page 62: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

Page 63: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

plays

Page 64: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

plays

Page 65: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

playsin

Page 66: TASBot - the perfectionist

SuperMario World

SuperMario Bros.

TASBot

playsin

SMB in SMW by p4plus2 and Masterjun

Page 67: TASBot - the perfectionist

http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/https://www.youtube.com/watch?v=YHyaTCuZRzM

credits: p4plus2, MasterjunTASBot plays the SNES classic...

Page 68: TASBot - the perfectionist

http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/https://www.youtube.com/watch?v=YHyaTCuZRzM

credits: p4plus2, MasterjunTASBot plays the SNES classic...

Exploits it via input...

Page 69: TASBot - the perfectionist

http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/https://www.youtube.com/watch?v=YHyaTCuZRzM

credits: p4plus2, MasterjunTASBot plays the SNES classic...

Exploits it via input... A homemade port of the NES classic is sent as payload...

Page 70: TASBot - the perfectionist

http://arstechnica.com/gaming/2015/01/pokemon-plays-twitch-how-a-robot-got-irc-running-on-an-unmodified-snes/https://www.youtube.com/watch?v=YHyaTCuZRzM

credits: p4plus2, MasterjunTASBot plays the SNES classic...

Exploits it via input... A homemade port of the NES classic is sent as payload...

A 8-bit game, on a 16-bit system!

Page 71: TASBot - the perfectionist

https://www.youtube.com/watch?v=vAHXK2wut_I&index=1&list=PLZctv-xoGbfUolvrW5YTi9J1KnY0l0Xch

dotsarecool

You can write specific sequences in the Object Attribute Memoryby using specific objects at specific coordinates,

Page 72: TASBot - the perfectionist

https://www.youtube.com/watch?v=vAHXK2wut_I&index=1&list=PLZctv-xoGbfUolvrW5YTi9J1KnY0l0Xch

dotsarecool

Since CPU instructions are made of specific binary sequences...

Page 73: TASBot - the perfectionist

https://www.youtube.com/watch?v=vAHXK2wut_I&index=1&list=PLZctv-xoGbfUolvrW5YTi9J1KnY0l0Xch

dotsarecool

Since CPU instructions are made of specific binary sequences...

...we can take over execution the way we want.

Page 74: TASBot - the perfectionist

https://www.youtube.com/watch?v=vAHXK2wut_I&index=1&list=PLZctv-xoGbfUolvrW5YTi9J1KnY0l0Xch

dotsarecool

Since CPU instructions are made of specific binary sequences...

...we can take over execution the way we want.

So, just via input...

Page 75: TASBot - the perfectionist

https://www.youtube.com/watch?v=vAHXK2wut_I&index=1&list=PLZctv-xoGbfUolvrW5YTi9J1KnY0l0Xch

dotsarecool

Since CPU instructions are made of specific binary sequences...

...we can take over execution the way we want.

So, just via input...

...you can directly trigger the credits sequence!

Page 76: TASBot - the perfectionist

TASLink~184 Kbps

was too limitinghttp://taslink.org

Page 77: TASBot - the perfectionist

32Mhz FPGAPapilio Pro's Spartan 6 LX

max poll rate ofthe serial port (2Mb/s)

http://papilio.gadgetfactory.net/index.php?n=Papilio.PapilioPro

Page 78: TASBot - the perfectionist

SMB1+2+3+Lost Levelsplayed simultaneously

during SGDQ 2016

https://youtu.be/EHfw-BEuRO8?t=58m29s

Page 79: TASBot - the perfectionist

Anatomy of an Arbitrary Code Execution

Page 80: TASBot - the perfectionist

1. Input exploit

Anatomy of an Arbitrary Code Execution

Pokemon Red

Page 81: TASBot - the perfectionist

1. Input exploit

2. Take overthe Super GameBoy

Anatomy of an Arbitrary Code Execution

Pokemon Red

Page 82: TASBot - the perfectionist

1. Input exploit

2. Take overthe Super GameBoy

3. Gain full access tothe Super Nintendo

Anatomy of an Arbitrary Code Execution

Pokemon Red

Page 83: TASBot - the perfectionist

1. Input exploit

2. Take overthe Super GameBoy

3. Gain full access tothe Super Nintendo

4. Anything is possible

Anatomy of an Arbitrary Code Execution

Pokemon Red

Page 84: TASBot - the perfectionist
Page 85: TASBot - the perfectionist
Page 93: TASBot - the perfectionist

Call to actionJoin the chat for Q&A athttp://twitch.tv/dwangoAC

Page 97: TASBot - the perfectionist

https://youtu.be/EHfw-BEuRO8?t=1h13m50s

credits: total_ ais523From boot...

...to ending, in 16 frames!

Some glitches are expected!

6000 buttons per second!

Page 98: TASBot - the perfectionist

DPCM memory↕

game controllerFlood weak controller code

to abuse raster interruptand take over execution

conflict

http://www.qmtpro.com/~nes/chipimages/#rp2a03http://arstechnica.com/gaming/2016/07/how-to-beat-super-mario-bros-3-in-less-than-a-second/

Page 99: TASBot - the perfectionist

TAS'ers lethal weapon● More flexible than IDA● Graph view, low level IL and annotation support● Python scripting● NES support: ability to add new mappers

Page 100: TASBot - the perfectionist

♫♪ Am I…

Page 101: TASBot - the perfectionist

cheating?♫♪ Am I…

Page 102: TASBot - the perfectionist

cheating?♫♪ Am I…

♬ No

Page 103: TASBot - the perfectionist

cheating?technical challenge &visual entertainment!

♫♪ Am I…

♬ No, I'm just looking for...

Page 104: TASBot - the perfectionist

cheating?technical challenge &visual entertainment!

♫♪ Am I…

♬ No, I'm just looking for...

♩ And I'm not the only one… ;)

Page 105: TASBot - the perfectionist

Medecins sans FrontièresDoctors without borders

♩♬ But more importantly….

Page 106: TASBot - the perfectionist

Medecins sans FrontièresDoctors without borders

Prevent Cancer Foundation

GamesDoneQuickRaised for

charity!

over $200k USD♩♬ But more importantly….

http://tasvideos.org/forum/viewtopic.php?p=437688#437688

Page 107: TASBot - the perfectionist

micro500 IlariThanks to:

Page 108: TASBot - the perfectionist

micro500 IlariThanks to:

p4plus2 Masterjun true total_ psifertex rusty

Page 109: TASBot - the perfectionist

micro500 IlariThanks to:

p4plus2 Masterjun true total_ psifertex rusty TheAxeMan ange_ greenfly ais523 and many, many others

Page 110: TASBot - the perfectionist

In collaboration with Ange Albertini

? @MrTASBotTwitch.tv/dwangoAC