<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>ファミコン on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%95%E3%82%A1%E3%83%9F%E3%82%B3%E3%83%B3/</link>
		<description>Recent content in ファミコン on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Thu, 02 Sep 2021 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%95%E3%82%A1%E3%83%9F%E3%82%B3%E3%83%B3/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>嘘から出たドラクエ風Google Maps</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/</link>
				<pubDate>Thu, 02 Sep 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/</guid>
				<description>&lt;p&gt;グーグルが&lt;a href=&#34;https://japan.googleblog.com/2012/04/google-8.html&#34;&gt;ドラクエ風Googleマップを発表&lt;/a&gt;したのが 2012年のエイプリルフール。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/google-april-fools-nes-google-map.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/google-april-fools-nes-google-map_hu_4a22f7b3f9802845.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/google-april-fools-nes-google-map_hu_a9b02e6722b155e1.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/google-april-fools-nes-google-map_hu_b1e08532ffd27e17.webp 828w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/google-april-fools-nes-google-map.png&#34; width=&#34;828&#34; height=&#34;443&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;その時はエイプリルフールのネタでしかなかったのですが、このファミコン風Google Maps を自作した人が現れました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map_hu_ccaaa67f2c967ae.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map_hu_e966a6e924c24eba.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map_hu_12c9dbc3e26a8e15.webp 920w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map.png&#34; width=&#34;920&#34; height=&#34;511&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-yokohama.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-yokohama_hu_a27a6be6dd15c191.webp 410w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-yokohama.png&#34; width=&#34;410&#34; height=&#34;210&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ファミコン/ドラクエの祖国に敬意を表してか、&lt;a href=&#34;https://www.youtube.com/watch?v=5vcPnk-6saw&#34;&gt;デモ動画&lt;/a&gt;の中では東京周辺から川崎、横浜を訪れています。(3:20頃)&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-making-tiles.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-making-tiles_hu_15155ff6dd79fb1b.webp 378w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/nes-google-maps/real-nes-google-map-making-tiles.png&#34; width=&#34;378&#34; height=&#34;374&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;元の衛星動画をグリッドで切り、グリッド内の色の多さをカウントし、色に合わせたファミコン風のタイル地形を割り当てるという形で8bit地形図を作り、それをタイルサーバとして動かしているということ。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/5vcPnk-6saw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;現在はラズベリーパイ上などを外に置いたままNESにつないでの動作ですが、NESのカートリッジの形に収めるようがんばりたいそう。&lt;/p&gt;&#xA;&lt;p&gt;via Hacker News&lt;/p&gt;</description>
			</item>
			<item>
				<title>ConnectedNES - 高橋名人を越える連射でファミコンにツイッターの新着を表示するプロジェクト</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/</link>
				<pubDate>Wed, 11 May 2016 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://www.nobadmemories.com/about/&#34;&gt;レイチェル・シモーネ・ウェイルさん&lt;/a&gt;(Rachel Simone Weil &lt;a href=&#34;https://twitter.com/partytimeHXLNT&#34;&gt;@partytimeHXLNT&lt;/a&gt;)が作ったのは、ツイッターの新着をファミコンで表示させるシステム &lt;a href=&#34;http://www.nobadmemories.com/connectednes/&#34;&gt;ConnectedNES&lt;/a&gt; (NES = Nintendo Entertainment System はファミコンの米国名)。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;Happy to announce ConnectedNES, a ~super-cute~ WiFi-enabled NES + 8-bit twitter client. &lt;a href=&#34;https://t.co/vhQ48Cnyc1&#34;&gt;https://t.co/vhQ48Cnyc1&lt;/a&gt; &lt;a href=&#34;https://t.co/eWjj0SkQKu&#34;&gt;pic.twitter.com/eWjj0SkQKu&lt;/a&gt;&lt;/p&gt;&amp;mdash; @HXLNT@merveilles.town (@partytimeHXLNT) &lt;a href=&#34;https://x.com/partytimeHXLNT/status/729792813072687104?ref_src=twsrc%5Etfw&#34;&gt;May 9, 2016&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;ファミコン用に自作したツイッタークライアントを使って、特定の条件で検索したツイートをブラウン管テレビに表示させています。&lt;/p&gt;&#xA;&lt;p&gt;その創意あふれる構成はというと、&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;ファミコン&lt;/li&gt;&#xA;&lt;li&gt;小型ボードコンピュータキット&lt;a href=&#34;https://www.particle.io/&#34;&gt;Particle Photon&lt;/a&gt; で作った「モデム」&lt;/li&gt;&#xA;&lt;li&gt;Azure上で動くNode.jsで書かれたサーバ&lt;/li&gt;&#xA;&lt;li&gt;ファミコン上の独自ツイッタークライアントを焼いたカスタムROM&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;3.を使ってツイッターAPIから検索したツイートを、2の「モデム」を使ってファミコンに送り、それを4のカスタムアプリで表示させているということになります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://developer.cybozu.co.jp/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/connectednes-board/&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/connectednes-board_hu_e538ef8f83a53e48.webp 480w, https://labs.cybozu.co.jp/blog/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/connectednes-board_hu_2a381050fda4c56f.webp 685w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2016/05/connectednes-sends-tweets-into-famicon-via-button-push/connectednes-board.png&#34; width=&#34;685&#34; height=&#34;906&#34; alt=&#34;connectednes-board&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ここでの肝が「モデム」の部分。ファミコンにデータ入力用のインターフェースなんてあったっけ? キーボードつなげるコネクタ(エキスパンドコネクタというそうです)を頑張って使ったのかな? と思うかもしれませんが、そうではなく、普通のコントローラを使っています。&lt;/p&gt;&#xA;&lt;p&gt;コントローラーのボタンを押し、離すたびに本体へ信号が送られているので、ボタンのスイッチ部分を改造し、Particle Photon からの信号をカスタムROM内に収めたアプリで受信させることで、ツイートの文字データを送り込ませたようです。&lt;/p&gt;&#xA;&lt;p&gt;# ものすごい速さで連射をさせてるわけですね。&lt;/p&gt;&#xA;&lt;p&gt;6502アセンブラでツイッタークライアントを書く前には、スーパーマリオブラザーズのゲーム中にツイッターの新着が画面上部現れる、という「ソーシャルメディア・ブラザーズ」というのも作られています。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;twitter-tweet&#34;&gt;&lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;ConnectedNES was born out of a funny li&amp;#39;l hardware hack called &amp;quot;Social Media Bros.&amp;quot;&lt;a href=&#34;https://t.co/vhQ48Cnyc1&#34;&gt;https://t.co/vhQ48Cnyc1&lt;/a&gt; &lt;a href=&#34;https://t.co/NonftezPej&#34;&gt;pic.twitter.com/NonftezPej&lt;/a&gt;&lt;/p&gt;&amp;mdash; @HXLNT@merveilles.town (@partytimeHXLNT) &lt;a href=&#34;https://x.com/partytimeHXLNT/status/729856582612176897?ref_src=twsrc%5Etfw&#34;&gt;May 10, 2016&lt;/a&gt;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://platform.x.com/widgets.js&#34; charset=&#34;utf-8&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;p&gt;プレイ中に画面の上端に文字が表示されているのがわかるでしょうか。この改造は、ルイージを削った場所に突っ込まれたそうです。&lt;/p&gt;</description>
			</item>
			<item>
				<title>MarI/O - ニューラルネットワークと遺伝的アルゴリズムでマリオの早解き</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2015/06/fastrun-super-mairo-by-program/</link>
				<pubDate>Mon, 15 Jun 2015 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2015/06/fastrun-super-mairo-by-program/</guid>
				<description>&lt;p&gt;ニューラルネットワークと遺伝的アルゴリズムの組み合わせにより、ゲーム「スーパーマリオブラザーズ」の一面を教師無し学習で解かせている&lt;a href=&#34;https://www.youtube.com/watch?v=qv6UVOQ0F44&#34;&gt;動画&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2015/06/fastrun-super-mairo-by-program/mario-neural-network.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2015/06/fastrun-super-mairo-by-program/mario-neural-network_hu_3df873c59dbcfc70.webp 408w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2015/06/fastrun-super-mairo-by-program/mario-neural-network.png&#34; width=&#34;408&#34; height=&#34;352&#34; alt=&#34;mario-neural-network&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;最初に学習が十分済んだ状態のプレイが実演されますが、1面を46秒で解いています。世の中には41秒で解いてる動画もあるようですが、かなり早い部類と言えるでしょう。&lt;/p&gt;&#xA;&lt;p&gt;0:46 からは、今回の解法についての解説です。マリオを含む画面上の地形やキャラクターのスプライトを入力に、どのボタンを押すかを出力としたニューラルネットワークをランダムに作り、うまくいったネットワークを組み合わせて次の世代のネットワークを作り試行させます。これを繰り返し、この例では34世代目でマリオが46秒でゴールに到達する組み合わせが出来ています。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/qv6UVOQ0F44?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;a href=&#34;http://pastebin.com/ZZmSNaHX&#34;&gt;luaのソースコードがPastebinで公開されている&lt;/a&gt;ので、追試も可能かもしれません。NESエミュレーター(Bizhawk Emulator)とマリオ本体が必要だと思いますが。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://sethbling.com/&#34;&gt;SethBling さん&lt;/a&gt;は、マインクラフトなどゲームを扱った多数のヒット動画を持つ人気ユーチューバーでもあり、今は抜かれました(この記事執筆次点で歴代9位)が&lt;a href=&#34;http://deanyd.net/smw/index.php?title=Leaderboards&#34;&gt;スーパーマリオの早解き&lt;/a&gt;で世界一を取ったこともあります。もしかすると早解きのルートはこのようなプログラムの解析を参考にしたのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;# あるいはその早解きプレイ動画自体がこうしたプログラムによるものだった可能性もあるのかも&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;http://thenextweb.com/insider/2015/06/14/watch-this-learning-neural-network-annihilate-super-mario-world-with-ease/&#34;&gt;TNW&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
