CALENDAR
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     
<<  2024 - 04  >>

PROFILE
同人誌 電子書籍版
Re:ゼロから始める
ゲームシナリオ


ライトニング伝説


さよならハドソン


ドラクエとFFと
ToHeart


誰得ゲームライフ


ときめきメモリアル
の時代

イースI・II製作メモ

頒布ページ
LINKS
NEW ENTRIES
CATEGORIES
COMMENTS
    イースⅠ・Ⅱ通史(3):『リグラス』から『ロマンシア』
  • タムロ (02/03)
    イースⅠ・Ⅱ通史(1):PC88MkⅡSRの発売
  • tamuro (01/05)
  • おお! (01/03)
TRACBACKS
OTHERS
SEARCH BOX
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート

続・PCエンジン版R-TYPEの話
遥か遠い昔、PCエンジン版R-TYPEのコトという記事を書いたのだけど、最近、これについてTwitterで聞かれて「どうしてオーバークロックになるのか?」という説明がうまく出来なくて、ずっと考えていたのだけど、どうしてこれがオーバークロックになるのか、うまい(と思う)説明を思いついたので、説明してみたい。

まず縦1ドット、横Nドットの紐のように細い横長の画面があると考えて欲しい。
当時のゲームマシンは今のように複数画面分のフレームバッファを持たず(持てるわけもないメモリ事情だった)、この1ドットの横長の線を水平帰線期間毎に、1ドットずつ下に下りながら、だいたい250回ほど描くことで画面を作っていた。
この1ドットの線をラインバッファと呼ぶ。ここで1本のラインバッファを作るのではなく、スプライト用のラインバッファバックグラウンド(背景画面)用のラインバッファがあり、この2つを水平帰線期間毎に描画して、合成して画面を作っている…と想像して欲しい(この説明は正確には違うのは百も承知だ)。

ブラウン管テレビの原理や垂直帰線期間・水平帰線期間といったコトについての説明は勘弁していただきたい。
ココとかココとか、なんか比較的わかりやすいと思う。


そしてPCエンジンが横256ドットモードで動いているとする。
バックグラウンド(背景画面)のラインバッファは当たり前だけど256ドット。
次にスプライトはというとPCエンジンのスプライトは最大横が32ドットになるので、32ドット*16個が最大になり、512ドット分ということになる。
つまりPCエンジンの256ドットモードでは、256+512=768で、水平帰線期間毎ごとに最大768ドット分の絵を描くことになる。

では、これが320ドットモードになるとどうなるのか?
バックグラウンドが320ドットになるので320+512=832ドット。
832ドット分の絵を描くことになり、256ドットモードより、64ドット増えることになる。
ところが水平帰線期間は一定の長さで変わらない。
だから追加の64ドット分を描くために、832/768=1.08で、8%ほど速いスピードで描画することが要求される。すなわち8%ほど速いスピードでVRAMやイロイロなところにアクセスすることになる。
そして、8%ほどいろんなところに速くアクセスする(可能性がある)のは、当時使われていたRAMの保証の範囲を超えていた。
だからNECに「使っちゃダメ!」と、怒られたわけだ。

ここでスプライトの幅が32ドット最大だったことを思い出して欲しい。増えた64ドットはスプライト2つ分。なので横に並ぶスプライトの数を最大14個に設定すると…768ドット分の描画になり、256ドットモードと同じ描画量で済むことになる。

かくして、PCエンジンの320ドットモードではスプライトは14個しか並ばなかったわけである。

|| 18:59 | comments (0) | trackback (0) | ||

このエントリーをはてなブックマークに追加
ファミコンのスキャンラインのこと
たまたま見つけたサイト http://gikofami.fc2web.com が面白懐かしくて読んでしまったのだけど、この中にラスタースクロールのことが載っていた。

それで以下、サイトより引用。
ちなみにVBlank割り込みは240ラインまで描き終えて画面外の仮想の241ライン目を描くタイミングで発生します。 そして仮想の262ラインまで描いてから0に戻ります。(私が調べた限り262までのようですが、なぜ262なのかは、わかりません)

上のように書かれていて「ああ昔は遠くなりにけり」だなあと思ってしまった。

まず、仮想の241ライン目ではない。
ファミコンが接続されていたNTSCのテレビはスキャンライン=ラスターは525ラインある。
そして本来のNTSC信号では525ラインをインターレース描画で上から下に2回描くことで秒30フレームの画像を作るのだけど、ファミコンなどのテレビゲームマシンはテレビを騙して1フィールド(と表現する)の240ラインを(2回)使うことで、1/60秒毎に絵を作っていた。

では525÷2は? 答え=262.5

お分かりだろうが、仮想の262ライン目ではなく、NTSCで規定された走査線数までラスターを描画して、フィールドを終了していたわけだ。

こんなものはプログレッシブ当たり前、dot by dot当たり前な、この時代にはなんも意味が無いことだから、わからないのも当たり前なのだけど、いやはや昔は遠くなりにけりだよと笑ってしまったのだった。

※追記。
「仮想」のスキャンラインどころではなく、実在してたのは、昔のアナログテレビを見ていた人ならわかる。
電波が弱かったり、意図的に垂直同期をズラして、ゆっくりとスキャン位置がズレるようにすると、本来ならテレビに映らないVBLANKの領域まで実際に見ることが出来たのである。

|| 21:48 | comments (0) | trackback (0) | ||

このエントリーをはてなブックマークに追加
8ビット時代のグラフィックについて
twitterで、X1やSMC-777などのVRAMがI/Oポートの先にある設計おかしいハードだと書かれていたので「あー、今の目で見るとわからんか」と思うと同時に、それがゼンゼンおかしいどころでなく、とてもリーズナブルな設計の一つであったのだ、という話をここに書いておこうと、突然思ったので書く。

まず、当時のパソコンでとても主流だったグラフィックスを解説すると640x200。
RGB1ビットずつのデジタル8色。縦横8で割るとわかるが80x25。つまり当時のキャラクタ画面のドットに1:1対応するグラフィクスだ。
これRGB、それぞれのプレーンのサイズをKBで表すと16KB。
今から見ればカスのようなサイズだけど、アドレスバスが16ビットしかない8ビットマシンでは大問題になる。

続きを読む▽
|| 22:57 | comments (7) | trackback (0) | ||

このエントリーをはてなブックマークに追加
PCエンジンの開発システム(補足2)
質問に答えをコメントしてたんだけど、それだと読みづらいし、書きたいことも書ききれないので、一つの記事になると思うものをまとめておくことにした。
20年も前のゲームマシンの開発環境のこと書いて、思い出すのに一生懸命になるとは想像もしてなかったw
なお、コメントされた方の名前は今回は省略させていただくことにした(見られるのでw)。

まず、なにより一番大きな補足がTwitterで教えてもらったこと。
この『ハドソン全科』は小学館の月刊PCエンジン、90年5月号の付録だそうだ。
飛田さんが作ってくださったPDFには奥付らしきものが全くなかったために、推測でしかなかったのだけど、一応裏づけが取れた格好だ。


続きを読む▽
|| 11:23 | comments (4) | trackback (0) | ||

このエントリーをはてなブックマークに追加
PCエンジンの開発システム(DF)
というわけで、前のアーティクルで書いたとおり、今回はDFの話。
ところで、ちょっと聞かれたのでここに載せておくけれど、ハドソン全科の小冊子の表紙はこれ。
どこにも月刊PCエンジンとは書いていないのだけど、どうして小学館と思ったかというとレイアウトが徳間のPCエンジンファンでも角川のマル勝PCエンジンでもないから。結構、それぞれの出版社で個性があって、これは間違いなく小学館だと思う。

関連記事
PCエンジンの開発環境(ROM)
PCエンジンの開発環境(CDROM)
PCエンジンの開発環境(補足)
PCエンジンの開発環境(写真)

続きを読む▽
|| 20:08 | comments (8) | trackback (0) | ||

このエントリーをはてなブックマークに追加