Suche senden
Hochladen
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
•
4 gefällt mir
•
2,820 views
Takashi Toyoshima
Folgen
オリジナルのSION2に手を加えずにハイレゾ化してウェブブラウザで遊べるようにしたお話。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 16
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
Summercamp2020 group2
Summercamp2020 group2
openrtm
Summercamp2020 group3
Summercamp2020 group3
openrtm
第2回html5jゲーム部勉強会 Oh! JavaScript 夢の続きを語ろうよ〜emscriptenの逆襲 - html5編
第2回html5jゲーム部勉強会 Oh! JavaScript 夢の続きを語ろうよ〜emscriptenの逆襲 - html5編
Takashi Toyoshima
z-music.js - AudioProcessorNode can do it
z-music.js - AudioProcessorNode can do it
Takashi Toyoshima
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Sho Hosoda
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
Web Audio API, Web MIDI API - 2015 html5 conference
Web Audio API, Web MIDI API - 2015 html5 conference
Ryoya Kawai
Empfohlen
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
Summercamp2020 group2
Summercamp2020 group2
openrtm
Summercamp2020 group3
Summercamp2020 group3
openrtm
第2回html5jゲーム部勉強会 Oh! JavaScript 夢の続きを語ろうよ〜emscriptenの逆襲 - html5編
第2回html5jゲーム部勉強会 Oh! JavaScript 夢の続きを語ろうよ〜emscriptenの逆襲 - html5編
Takashi Toyoshima
z-music.js - AudioProcessorNode can do it
z-music.js - AudioProcessorNode can do it
Takashi Toyoshima
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
Sho Hosoda
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
Web Audio API, Web MIDI API - 2015 html5 conference
Web Audio API, Web MIDI API - 2015 html5 conference
Ryoya Kawai
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
IGDA Japan
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
IGDA Japan
日本ゲーム産業史概説
日本ゲーム産業史概説
Shibaura Institute of Technology
チームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作り
IGDA Japan
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
KLab Inc. / Tech
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
IGDA Japan
開催趣旨・00年代イントロ・パネルディスカッション資料
開催趣旨・00年代イントロ・パネルディスカッション資料
IGDA Japan
20180330 ガチラボ
20180330 ガチラボ
Satoshi Fujimoto
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
Web Technology Corp.
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
Matsushita Laboratory
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
Game Tools & Middleware Forum
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
Unity Technologies Japan K.K.
マリオシーケンサをポケミクに対応した
マリオシーケンサをポケミクに対応した
jingbay
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Satoru Takai
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem
monochrojazz
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめ
Takeshi HASEGAWA
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
UnityTechnologiesJapan002
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
CineSoft
楽しいロリコン
楽しいロリコン
Takashi Toyoshima
Audio Context+ at WebAudio.tokyo #1
Audio Context+ at WebAudio.tokyo #1
Takashi Toyoshima
Web & sound
Web & sound
Takashi Toyoshima
Chrome Web MIDI 2015
Chrome Web MIDI 2015
Takashi Toyoshima
Weitere ähnliche Inhalte
Ähnlich wie Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
IGDA Japan
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
IGDA Japan
日本ゲーム産業史概説
日本ゲーム産業史概説
Shibaura Institute of Technology
チームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作り
IGDA Japan
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
KLab Inc. / Tech
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
IGDA Japan
開催趣旨・00年代イントロ・パネルディスカッション資料
開催趣旨・00年代イントロ・パネルディスカッション資料
IGDA Japan
20180330 ガチラボ
20180330 ガチラボ
Satoshi Fujimoto
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
Web Technology Corp.
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
Matsushita Laboratory
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
Game Tools & Middleware Forum
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
Unity Technologies Japan K.K.
マリオシーケンサをポケミクに対応した
マリオシーケンサをポケミクに対応した
jingbay
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Satoru Takai
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem
monochrojazz
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめ
Takeshi HASEGAWA
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
UnityTechnologiesJapan002
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
CineSoft
Ähnlich wie Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
(18)
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
日本ゲーム産業史概説
日本ゲーム産業史概説
チームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作り
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
開催趣旨・00年代イントロ・パネルディスカッション資料
開催趣旨・00年代イントロ・パネルディスカッション資料
20180330 ガチラボ
20180330 ガチラボ
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
CEDEC2014 セッション資料「ヘキサドライブ流 OPTPiX SpriteStudio 最適化術!」
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
JSAI コミック工学SS 招待講演「機械学習で eBookJapan を加速できるか?」
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
GTMF 2016:『刺青の国』 ~SpriteStudioとUnityで開く背徳の宴~ 株式会社ウェブテクノロジ
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来
マリオシーケンサをポケミクに対応した
マリオシーケンサをポケミクに対応した
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
Cocos2d-xとSpriteStudioを使った音ゲー開発のお話
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめ
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
Mehr von Takashi Toyoshima
楽しいロリコン
楽しいロリコン
Takashi Toyoshima
Audio Context+ at WebAudio.tokyo #1
Audio Context+ at WebAudio.tokyo #1
Takashi Toyoshima
Web & sound
Web & sound
Takashi Toyoshima
Chrome Web MIDI 2015
Chrome Web MIDI 2015
Takashi Toyoshima
子供と使う便利ツール
子供と使う便利ツール
Takashi Toyoshima
Web MIDI API update
Web MIDI API update
Takashi Toyoshima
Web MIDI API - the paster, the present, and the future -
Web MIDI API - the paster, the present, and the future -
Takashi Toyoshima
USB MIDI - DMX bridge
USB MIDI - DMX bridge
Takashi Toyoshima
Mehr von Takashi Toyoshima
(8)
楽しいロリコン
楽しいロリコン
Audio Context+ at WebAudio.tokyo #1
Audio Context+ at WebAudio.tokyo #1
Web & sound
Web & sound
Chrome Web MIDI 2015
Chrome Web MIDI 2015
子供と使う便利ツール
子供と使う便利ツール
Web MIDI API update
Web MIDI API update
Web MIDI API - the paster, the present, and the future -
Web MIDI API - the paster, the present, and the future -
USB MIDI - DMX bridge
USB MIDI - DMX bridge
Kürzlich hochgeladen
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Kürzlich hochgeladen
(9)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
1.
夢の続きを語ろうよ Emscriptenの逆襲
2.
sun6925 とよしま ウェブ大好きっ子 低レイヤー大好きっ子 レトロPC大好きっ子 X68000大好きっ子 大丈夫、ウェブ業界の人です。仲良くしてください。
3.
知ってますか? ● なぜか 編集部が作ったゲーム ○
創刊10周年記念 PRO-68K に収録 (雑誌付録ディスク) ○ 編集部制作の強力インフラ ■ MAGIC2 - 3D描画ライブラリ ■ Z-MUSIC - サウンドドライバ ○ ゲーム自体、普通に面白い
4.
実演 原作@エミュレータ
5.
あれ?ショボい! 256 x 256
ドット 16 色 ワイヤフレーム ・ ・ ・ んじゃ、高解像度化しますか
6.
実演 ハイレゾ@ウェブ bit.ly/sion2
7.
原作をウェブで Powered by Emscripten run68
(in C) sion2.x (Binary for X68k) 実行 JavaScript VM 実行 互換レイヤー (in JavaScript) DOS/IOCS MAGIC Z-MUSIC GVRAM I/O <iframe> zmusic.x (Binary for X68k) 非同期RPC化 ここで気合 ハイレゾ化するぞ! X68Sound.dll (in C++) run68 (in C)
8.
高解像度+16:9化 256 pixel 256 lines ピクセル アスペクト比 4:3
1080 lines 1440 pixel 4:3 1920 pixel 16:9 アスペクト比補正+ベクトル拡大 +本来見えていなかった部分の表示 ワイヤーフレームは楽勝
9.
ビットマップ文字のベクターフォント置き換え 一部の文字(4×6サイズ)が画像だった ● 仕方ないのでGVRAMのアクセスパタンから文字推定 { “111010101110101010100000”:
64, ... } 文字コード64 A
10.
内部で使ってる主な技術 ● HTML5 Canvas(2D) ○
WebGLは使わずにJavaScriptで座標変換計算 ● Web Audio API ○ FM音源と音響処理(リバーブ) ● Web App Manifest ○ モバイルでホームスクリーン追加 ● Gamepad API / TouchEvent ● WebFonts
11.
Emscriptenまめ知識〜その1 描画ループにrequestAnimationFrameを使う ❏ emscripten_set_main_loop()を使いましょう void emscripten_set_main_loop(em_callback_func
func, int fps, int simulate_infinite_loop) ❏ fpsに0を指定するとrequestAnimationFrameが使われる ❏ それ以外の値だとsetTimeoutを使うので注意 ❏ 失敗談:知らずにsetTimeoutを書き換えて中からrAF呼んでた ❏ simulate_infinite_loop=1でこの関数から戻らない
12.
Emscriptenまめ知識〜その2 常駐するサービス・ライブラリを作る ❏ emscripten_exit_with_live_runtime()で常駐 void emscripten_exit_with_live_runtime(void) ❏
ひとまず実行終了 ❏ ただしatexit()系やリソース解放処理は走らない ❏ JavaScriptからC/C++の関数を継続して呼び出し可能 ❏ 空のmain()から呼べば共有ライブラリっぽい物が作れる
13.
Emscriptenまめ知識〜その3 JavaScriptから呼び出せる関数を(確実に)作る ❏ リンク時に-s EXPORTED_FUNCTIONS="..." ❏
"..."にはmainを含めた関数のリストを渡す 例:"['_main', '_myAPI1', '_myAPI2']" ❏ 関数名は"_"のプレフィクスが付くので注意 ❏ 数値以外は直接渡せない点に注意 ❏ C/C++側のメモリ空間はModule.HEAPU8等でアクセス ❏ Module.cwrap()やWebIDL-Binderなどの道具はある
14.
Emscriptenまめ知識〜その4 JavaScriptのライブラリを呼び出す ❏ リンク時に--js-library myLibrary.jsで組み込む ❏
渡すJavaScriptは特定の方法で記述されている必要がある mergeInto(LibraryManager.library, { myFunc: function(a, b) { // ここから外の世界は直接触れる(this==Window) console.info(‘hello my func’); return a + b; }, // 以下、同様に関数を定義 }); ❏ 登録なしでCから呼ぶとundefined symbolで実行時abort
15.
Emscriptenまめ知識〜その5 実行開始を遅延させる ❏ preInit内でaddRunDependency()を呼ぶ ❏ 対応するremoveRunDependency()が呼ばれるまで待つ ❏
WebFonts読み込みを待つ例 preInit: function() { Module.addRunDependency("fonts"); document.fonts.ready.then(function() { Module.removeRunDependency("fonts"); }); },
16.
質問など
Jetzt herunterladen