Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[WIP] SFC Controller Emulation
Search
naari3
October 08, 2017
0
560
[WIP] SFC Controller Emulation
製作中のコントローラの話
naari3
October 08, 2017
Tweet
Share
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Thoughts on Productivity
jonyablonski
57
3.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
154
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
How to name files
jennybc
64
93k
The Pragmatic Product Professional
lauravandoore
24
5.8k
Designing with Data
zakiwarfel
95
4.8k
GitHub's CSS Performance
jonrohan
1024
450k
Building Better People: How to give real-time feedback that sticks.
wjessup
354
18k
Clear Off the Table
cherdarchuk
83
310k
Writing Fast Ruby
sferik
620
60k
Transcript
[WIP] SFC Controller Emulation ٙࣅεʔϑΝϛίϯτϩʔϥʔͷ࡞ ͳ͋Γ
໊༗Γ • Twitter: @naari_ • Github: @naari3 • Pythonͱ͔Rubyͱ͔ •
Α͘രഁ͞ΕΔຊࣾΛ࣋ͭاۀʹ͍Δ
͋͐͡Μͩ • Ͳ͏͖ • ͭ͘ΔͷͷͤͭΊ͍ • Ή͍ͣ • ͓ΘΓʹ
ಈػ
ͳΜͰεʔϑΝϛʁ
͖͔ͩ͢Β
ͱ͜ΖͰ
TASͬͯͬͯ·͔͢
TASͱ • Tool-Assisted Speedrun • ࠷ΫϦΞΛࢦ͢ • ΤϛϡϨʔλͰ࡞ΒΕΔ • εϩʔͰϓϨΠ
• QS, QL, LuaʹΑΔBot… • ࠶ݱੑ͕͋Γɺཧ্࣮ݱՄೳ
TASͱ • Tool-Assisted Speedrun • ࠷ΫϦΞΛࢦ͢ • ΤϛϡϨʔλͰ࡞ΒΕΔ • εϩʔͰϓϨΠ
• QS, QL, LuaʹΑΔBot… • ࠶ݱੑ͕͋Γɺཧ্࣮ݱՄೳ
ཧ্࣮ݱՄೳ
ΕͰ͖Δ
Ͱ͖Δ
TASBOTͭ͘Γ͍ͨ • TASΛ࣮ػͰಈ͔͢ԿΒ͔ͷஔͷ૯শ • εʔϑΝϛͱͯ͠ • sramͷཧָ͕ͬΆͦ͏ ??????? (ະ֬ೝ) •
ٖࣅཚͷ੍ޚRTAͰߦΘΕ͍ͯΔ
੍࡞ରͷઆ໌
SFCίϯͷઆ໌
SFCίϯͷઆ໌ • Input to Controller • Ϙλϯ × 12 •
3ϐϯ from SFC • VCC 3.3V • LATCH ͍ • CLOCK ܹ͍ ↑LATCH CLOCK VCC↑ ↑
SFCίϯͷઆ໌ • Output from Controller • 1ϐϯ • DATA •
12+αͷೖྗ͕CMOS4021Λհ͠ 1ϐϯͷΈʹΑΓग़ྗ͞ΕΔ DATA↑
SFCίϯͷಈ͖ํ
SFCίϯͷಈ͖ํ 1. LATCH͕1fʹ1ճ RISING (LOW -> HIGH) 2. ࣍ͷLATCH RISING·ͰʹCLOCK͕ͨ͘͞Μ
RISING 3. CLOCK16ճ ϘλϯʹԠͯ͡DATAϐϯ͔Β HIGH or LOW 16ճҎ߱ͣͬͱLOW 4. 1ʹͲΔ
ͳΜͰ16ճͳͷʁ • B Y Se St ↑ ↓ ← →
A X L R 1 2 3 4 • 1, 2, 3, 4ࣝผූ • εʔύʔείʔϓ • Ϛε • ௨ৗίϯৗʹແೖྗ
ܗ ཧ
SFCίϯͱͯ͋͠Δ͖ܗ • SFCͷίϯτϩʔϥʔૠೖޱʹͯ͠ಈ࡞ • ԿΒ͔ͷೖྗʹରͯ͠Ԡ • (ཧ|Ծ)Ϙλϯ • γϦΞϧ௨৴ 2
* 4 (by tap) * 16 (by 1 controller) • 128 bit per frame (7680bps)
Ή͖͍ͣͯͭ͘
None
ଥڠ ʬ໊ɾεࣗʭओு͕ରཱ͍ͯ͠Δ߹ɺޓ͍ͷओுΛز ͔ͣͭৡΓ߹ͬͯɺҰͭͷ݁ɾऔܾΊΛಋ͖ग़͢͜ͱɻɹ ʮݱঢ়ͱʕ͢Δʯ
ࠓճ • ௨ৗίϯτϩʔϥͱͯ͠ಈ࡞͢Δ • 1234ແೖྗ • ݻఆͷΛग़ྗ͢Δ • LνΧͷSFC൛ •
ྫ) ελϯόΠঢ়ଶ, શԡ͠, ϑϨʔϜຖʹೖྗ͕ΓସΘΔ ↑1Pࣦഊঢ়ଶ
࡞ͬͨॴͷઆ໌
SFCͱܨ͛Δ෦
SFCͱܨ͛Δ෦ • ຊͷίϯτϩʔϥΛόϥ͢ • ϚϧνλοϓΛόϥ͢ • ԆέʔϒϧΛΔ
ຊͷίϯτϩʔϥʔΛόϥ͢ • Pros • ຊͷίϯτϩʔϥ έʔϒϧ৭͓ͳͬ͡Ά͍ • ͔Θ͍͍ • Cons
• ࢮ͵΄ͲԚ͍ • ωδͷαϏ͕͍
ϚϧνλοϓΛόϥ͢ • Pros • ܨ͛Δ෦1ͭ, ૠೖ෦4ͭʂʂʂʂʂ • ͔Θ͍͍ • Cons
• ߴ͍
ԆέʔϒϧΛΔ • Pros • ͍҆ • ೖग़ྗͲͬͪखʹೖΔ • Cons •
ِ
4021Λ͢
4021Λ͢ • Arduino uno • ͖ͯͱ͏ʹͬͦ͡͏ • attachInterrupt ʹґଘ͍ͯ͠Δ •
͖͍ͭ
Ͱ͖ͯΔͷ
None
None
None
ͬͯΉΓͦ͏ͩͬͨͷ
Raspberry pi • తʹͪΐͬͱ… • Python͕͓͍ͦ • C++Ͱͭͬͨ͘όΠφϦ͓͍ͦ • ͍ͯͳͦ͞͏
ͷ͍ͬͯ͜Δ
֤छϐϯͷଓ͕ෆ҆ఆ • ϓϦϯτج൘ͭ͘Γ͍ͨ • ͖ͪ͠ͳ͍ • ॳظࢿͦ͏ • ͪΌΜͱͨ͠ࢠΛ͚͍ͭͨͰ͢Ͷ
USBܨ͙ͱෆ҆ఆ • Կނ͔Θ͔͍ͬͯͳ͍ • όεύϫʔ͕ࡶڕʁ • SFC͔Βͷిݯͩͱ҆ఆ͢Δ • γϦΞϧ௨৴͕͍ͨ͠ͷͰ͕͢ʂʂʂʂ
૯ׅ
SFCArduinoܹ͍ • ेφϊඵͷੈք͜Θ͍ • ΫϩοΫઅΛҙࣝ͢Δίʔυ
ॿ͚स͕ग़ͤΔ૬ख͕ډͳ͍ • ք۾(?)ͷҧ͍ • ͻͱΓͰΈଓ͚Δͷͩ… • ͦͦجૅ͕͔ࣝͬ͠Γ͍ͯ͠ͳ͍͔Β? • ॿ͚ͯ
͓ΘΓ