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
オッサンの話を聞け!!いにしえの開発話!!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
sapi_kawahara
March 23, 2018
Business
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オッサンの話を聞け!!いにしえの開発話!!
俺の話を聞け!!LT大会 in Tokyoの発表資料です。
https://orehanatokyo.connpass.com/event/82057/
sapi_kawahara
March 23, 2018
More Decks by sapi_kawahara
See All by sapi_kawahara
EzSignという 電子ペーパー
sapi_kawahara
2
75
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
330
プログラミング言語において文字列を複数行にわたって だらだらと記載するアレ
sapi_kawahara
0
180
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
750
今から始める8bits CPU アセンブラ言語
sapi_kawahara
0
1.7k
執筆テーマの決め方
sapi_kawahara
2
440
LTの禁じ手
sapi_kawahara
2
1.3k
||とorの違いは登壇して解決した
sapi_kawahara
0
410
Macintosh talk / Macintoshの話
sapi_kawahara
0
260
Other Decks in Business
See All in Business
2026.7_中途採用資料.pdf
superstudio
PRO
5
120k
スマサテでの日々 -Sumasate Tour Deck-
sumasate
0
430
WDB株式会社エウレカ社会社説明資料
eureka01
0
3.7k
ClaudeCode × Hubspot 営業・マーケティングAI段階的成長ロードマップ
nagatsu
0
780
unname_会社概要資料 2026.06.25 update
unnameinc
2
6k
自分を知ることから始まる生存戦略
peacemaker07
2
470
エムスリーキャリア エンジニア採用資料 / M3C Engineer Guide
m3c
2
120k
成功を追わない起業と経営 〜環境や立場を活かす戦略(Homing 2026)
kuranuki
2
1.3k
「AIを入れたのに変わらない」を脱する。ツール導入から文化定着まで、1年間の実践知を公開
ncdc
0
150
顧客の信頼を感じるのは、どんなときだろう? / When do you feel a customer's trust?
tanaken0515
0
400
Railsガイド協賛プランの概要
yasslab
PRO
2
14k
AIネイティブな組織を問い直す
smiyawaki0820
15
5.8k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Scaling GitHub
holman
464
140k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
640
KATA
mclloyd
PRO
35
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Paper Plane
katiecoart
PRO
2
52k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
230
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Amusing Abliteration
ianozsvald
1
240
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Transcript
オッサンの話を聞け!! いにしえの開発話!! カワハラ ヒデアキ
自己紹介 川原 英明(0x31歳) Twitter @sapi_kawahara Facebook kawahara.hideaki.0204 働いて、来月でいよいよ30年目に突入です、この激動の中で、多くの経験をしてきました。 Web系の仕事では、Perlから始まり、Java、PHP、Pythonなどを駆使し、現在、小さな会社で契 約社員をやり、とある所で仕事してます。
いにしえの開発? みなさんは、 何を思い浮かべますか?
こんなのですかね?
これかな?
唐突ですが、オッサンあるある! 1. フロッピーディスクの話をする。 2. カセットテープの話をする。 3. ハードディスクがMBしか無い時代の話をする。 4. メモリーがMBしか無い時代の話をする。 5.
総称してPC-9801の話をする。 6. インターネットに接続する「モデム」の話をする。 7. パソコン通信時代の話をする。 8. テレホーダイの話をする。 9. 技術系の話では16進数の話をする。 10. DOS(Windowsが登場する前のOS)の話をする。
それを聞いて面白 く無いですよね?
だから、面白くないので、 オッサンあるあるの話はしま せん。
じゃあ? どんな「いにしえの開発話」を するのか?その前に!
自己紹介に追加します Web系の仕事をする前は、コンシューマーゲームのアプリ開発をしていました。 アセンブラでの開発は、6502(ファミコン)、GB80(ゲームボーイ)、Hu6502(PCエンジン)、65816 (スーパーファミコン)、68000(メガドライブ)、SuperH(セガサターン)、R3000(プレイステーショ ン)でしてました。 C言語での開発は、セガサターン、プレイステーションでしてました。 C++での開発は、プレイステーション2でしてました。
と言うことで、 コンシューマーゲームの 開発話をします。
アジェンダ 若い人が多いので、プレイステーションの話をします。 1. 開発側から見た環境についての説明です。 2. バグ多いぞ!プレイステーション! 3. 倍速CDで快適な読み込み、そんなもん夢です。 4. モーションJPEGの悪夢。
プレイステーション開発環境 1. DOS/V機で、OSはWindows95です。 2. IDEは、Visual Cを使ってました。 3. 開発マシンは、ISAバスを2本使います、CD-ROMエミュレーターを合わせると、ISAバスは3 本使います、お値段150万円です。 4.
C言語は、意外と思われますが、gccです。 5. ライブラリーは、ソニー提供です。 6. 基本的なところから、パッドの入力、CDコントロール、音楽再生、動画、2D画像ライブラリー、 3D画像ライブラリー、ほとんどをC言語から呼び出すことが出来ました。 7. ライブラリーマニュアルは、辞書並みに暑くて、タオルを巻いて枕にしてました。
バグ多いぞ!プレイステーション! 1. 盛りだくさんのライブラリー、当然ながらバグも多かったです。 2. バージョン2になるまでは、全てのライブラリーにバグが有ると言っても過言では無いです。 3. 小さなバグでは、音声ボリュームで、音量を下げるというプログラミングすると、音量が上が ると言うシャレみたいなバグまで有りました。 4. 3D画像ライブラリーでは、テクスチャーの裏面とか表示しなくて良いところも、表示するとか
処理速度的にクソな実装が有りました。 5. 一番インパクトが有るバグは、glibcにバグが有りました、なぜインパクトが有るのかと言うと、 glibcはプレイステーション本体のBIOS ROMに焼かれているからです。 6. Glibcのバグで、mfreeが行えないと言うバグは、最初は冗談かと思いました。(Java開発的 に言うと、GCしてもフリーメモリーが増えません)
倍速CDで快適な読み込み、そんなもん 夢です 1. CD−ROMの仕様で最大の欠点は線速度一定(CLV)です、常にCD-ROMの回転速度を変え るためキュルキュル音が鳴り、読み込める速度になるまで、アプリは待たないといけない。 2. セガサターンのGD-ROMはCD-ROMを容量増やして角速度一定(CAV)にしたのでよ読み込 みだけは早かったです。 3. 基本的なCD-ROMのフォーマットで作られておりFATも有り、PCエンジンのCD-ROMのよう
にFATが無い構造よりは、作りやすかったのです。 4. しかし、バグが多いプレイステーション!ここにも罠が有りました!
FATをキャッシュしない! FAT: FILE ALLOCATION TABLE
FATにキャッシュが無いと、どうなる か? 1. アプリがファイル名を指定して、ファイルをオープンする。 2. プレイステーションが、FATを読み見に行く。キュルキュル! 3. アプリがオープンしたファイルのデータを読む。キュルキュル! 4. アプリがファイルをクローズする。
5. アプリが別のファイルをオープンする。 6. プレイステーションがFATを読みに行く。キュルキュル! 7. アプリがオープンしたファイルのデータを読む。キュルキュル! 8. アプリがファイルをクローズする。 9. 以下、ファイルを読みたびに、これの繰り返しです。
この罠の対処方法 1. 初期アプリは、対応してないのが多いので、画面切り替え時、遅くなかったですか?原因は、 これです。 2. 自分は、しょうがないので、独自のFATを持ち、独自のファイル関数を作成して対応しました。 3. 多くの会社で、このような対処をしていたと聞いていますが、ソニーさんは最後まで、この問 題は仕様として対処はしないまま、プレイステーションの歴史が閉じられました。
モーションJPEGの悪夢 1. プレイステーションの動画はモーションJPEGです。 2. 簡単に説明すると、JPEG画像を高速に切り替える、それだけの仕様です。 3. 読み取り速度は、倍速なので、1秒間で0.3MB、300,000B / 30 =
10,000B が一コマに使え ます。 4. ちなみに、今のスマホで写真撮影すると、2MBぐらいです。 5. 320 x 240 の解像度と言っても、かなりタイトなサイズです。 6. 更に、ここにも罠が有りました!
ソニー提供のツールが 使えない!
ソニーは、高圧縮ツール 1. ソニーのツールは、1コマを10,000Bに収めるため、一番圧縮しにくい画像を基準に、圧縮率 が決めらていました。 2. つまり、静止画でも、物凄い高圧縮されます、そのためモアレがひどかったです。 3. 自分たちは、解析の結果、プレイステーションの再生側の圧縮パラメータが可変であること に気づきました。 4.
画像にあった圧縮パラメータで圧縮するツールを作成しました! 5. でも、ツールを作ったのは良いのですが「画像にあった?」と言う部分は、どうしたのか?
時は1996年の春
20世紀の話 1. 1996年当時、今から20年以上の前の話です。 2. 当然ながら、AIとか機械学習なんていう時代の前です。 3. 一応、努力して画像判定などはやりましたが、半分ぐらい、うまくいくぐらいでした。 4. しかも、この当時は、アナログキャプチャーの時代で、どうしても取り込みノイズが出てしま い、これがモアレの原因になりました。
5. そんな時、大人の事情で発売が半年伸びました。 6. せっかくだから、動画をもっと綺麗にしようということなりました。 7. しかし、自分は、既に別のプロジェクトの作業なので、画像判定は、そのままで、どうしても 綺麗にならないところを!
人海戦術で対処!
人海戦術のレシピ 1. 画像1枚1枚を見て、キャプチャーノイズを手作業で除去! 2. 作成された動画と比較して、モアレが出ているところも、手作業で平坦な色に塗り替える! 3. 画像1枚ごと、圧縮後のサイズが最大10,000Bになるように、圧縮パラメータを変更して圧縮 を行う。 4. 1秒30枚なので、3分動画だと、3
x 60 x 30 = 5,400枚 を人海戦術でクリアしました。 5. 自分は、土日に手伝ったなー。
まとめ 1. こんな苦労をして、ゲームのアプリは世の中に出てます。 2. プレイステーション時代は、多人数で開発してたので、人海戦術とか使えました。 3. 今は、自分はゲームは作っておりませんが、恐らく今も変わらないでしょう。