たまりば

  パソコン・インターネット パソコン・インターネット  三鷹市 三鷹市

【訂正・加筆】
2017年11月21日 00:00

2017/04/23, 2017/05/22, 2017/07/24, 2017/11/21ゼルダの伝説ブレスオブザワイルドプレイ日記(ネタバレ有) 更新。
2016/12/06 漢点字一覧表で、別の元データとの間で不一致があったので追記。
2016/09/10 ネット契約を1Mbpsにしてみたの読み込み時間の記述が間違っていたので訂正。
2016/09/04 ファミコンの縦解像度224px説の考察 左8pxを隠す機能の用途が思っていたのと違ったので追記。
2016/06/06 Windows7でのペイントの劣化具合に新しく気づいたバグ情報を追加。
2015/08/29 ベースラインPICの注意点で、型番の間違いを訂正、OPTION2の書き込み方法の間違いを訂正。
2015/08/28 Windows7でのペイントの劣化具合に新しく気づいたバグ情報を追加。
2013/09/26 5×5 ひらがなフォント5×5フォント改 / JavaScriptフォント表示機から5×5ドットフォント完成版に、思えばリンクを貼っていなかったのでリンク。
2013/05/05 最弱のPICマイコンで電子オルガン_前編の単純ミスを1ヶ所修正。
2013/04/27 文字コード表示機が特定の環境で動かない問題を修正、RTL文字での表示崩れを修正。
2013/03/03 5×5ドットフォント完成版が紹介されていたので少々加筆しました。
2012/11/18 ハロウィー?ンの正規表現に訂正・加筆があります。

【このエントリについて】
(2012/11/18)
今まで、記事の内容にミスを見つけた場合はその記事だけ修正していたのですが、最新の記事はともかく古い記事にミスを見つけた場合は直しても気づかれないだろうと思って直すのが億劫になっていました。
これではいけないと、どうするべきか考えた結果、訂正を知らせるエントリを1つ作ることにしました。
記事を訂正した際にはこのエントリを更新して最上位に持ってくるように運用しようと思います。
(2013/03/03)
訂正だけに限らなかったので、エントリ名を【訂正】から【訂正・加筆】に変更しました。  
タグ :お知らせ

  • 【お知らせ】ページタイトル変えました
    2017年08月15日 02:01

    今までページのタイトル(HTMLのtitle要素の中身; ブラウザでタブとかに表示されるやつ)は、
    WentWayUp: WebLog | 記事タイトル
    のようになっていました。これはこのブログサービスのデフォルトの表記だったと思います。
    それを今回、
    記事タイトル-WentWayUp
    のように変えました。
    長いタイトルの記事がGoogleの検索結果で後半が略されて肝心なところが切れてるのを見たので。
    Googleで肝心なところが切れた
    あと「WentWayUp: WebLog」の部分もちょっと長いなって思ったので。
    「 | 」から「-」にしたのは文字数減らしたかったので。

    2017/09/12追記
    それから毎日のように見張っていたのだがなかなか反映されずもしかしてずっとそのままなのかと思っていたが今日見たらやっと反映されていた。
    Googleで肝心なところが切れなくなった
    よし。  

  • ドラクエのカタカナが少ないのはROMの容量が少ないせいではない
    2017年07月31日 09:02

    ファミコンのドラゴンクエストシリーズにおいてカタカナが一部しか使えなかったことは有名だ。
    この理由としてROMの容量が少ないためと言われることが多い。
    試しにGoogleで「ドラゴンクエスト カタカナ」と検索し、上位50ページの中から初代ドラゴンクエスト(以下ドラクエ1)のカタカナが少ない理由を述べていると考えられる文章を(重複を除き)抜粋してみる。
    ・「当時はゲームソフトのメモリ(記憶容量)が少なかったため」「ROMの容量を増やしたこともあり、使用可能なカタカナは徐々に増加していった。」
    ・「64キロバイトしかありませんでした。」
    ・「容量の問題で」
    ・「容量の関係で」
    ・「わずか64KB!」「データ量削減」
    ・「使える容量はわずか64KB」
    ・「64kB」「容量を節約するため」
    ・「64KB」「データ量の削減のため」
    ・「512KB」「容量の節約のため」
    ・「ゲームソフトのメモリ(記憶容量)が少なかったため」
    ・「ソフトの容量が64キロバイト」
    ・「64KB」「容量がかなり少なかったため、データを削減するため…その一環」
    ・「約64キロバイト」「だから」
    ※「文字も1バイト使ってないんですよ。7ビットです。 だからカタカナなんか20文字しか使えない。」
    ・「容量の都合」
    ・「ファミコンカセットの容量は64KB」「だから、カタカナの文字データを全部入れることすらできなくて」
    ・「64KB」(ポートピアのカナ制限に対して「当時のROM容量では厳しく」)「初代ドラクエで使うことができたカタカナも、『ポートピア』と同じ20文字」
    ・「容量の関係で」
    ・「ゲームタイトルごとにフォントデータを持っていました。当然それは容量を食うものなので、いかにその文字数を減らすか」
    ・「64KB」「容量の問題で」

    1件(※)を除き、総合すると「ROM容量が64kBと少なかったため、カタカナを入れる余裕が無かった」とまとめられるだろう。(1件については後述する)
    このような説明に納得していた人は、ちょっと考えていただきたい。
    ドラクエの文字は8×8ドットなので、容量は1文字64bit=8バイト。
    50文字入れて8*50=400バイト。64kBの1%にも満たない。文章に大きな制限を加えてまで削減するような量だろうか。

    また、ドラクエ2ではROM容量が倍増し128kBになっている。本当にROM容量が問題であるならば解決しているはず。
    しかるに2でも多少文字数は増えたものの依然としてカタカナ全ては使えない。さらには3は256kB、4は512kBと倍増を繰り返しているのにやはり同様だ。



    では何が原因か。問題は背景面のタイル種制限だ。

    といって分かる人はそもそも誤解しないと思うので、詳しく説明しよう。
    ファミコンやスーパーファミコンなど多くの2次元ゲーム機の画面表示は内部的に、背景(Background; BG)面と、スプライトと呼ばれる小さい絵を重ね合わせてできている。
    ふつう、画面上を動くキャラクターはスプライトで表示し、背景画像や文章は背景面に表示する。
    スプライトも背景も、8×8ドットのタイルまたはキャラクタと呼ばれる小片を並べて作られる。
    そしてファミコンの場合、ふつうのプログラムでは背景面とスプライトに使えるタイルはそれぞれ別に256種づつとなっている。
    この256個のタイルはカートリッジによっては、マッパーと呼ばれる回路を積むことで大量のROMを何分割かして切り換えたり、RAMを積むことで1つづつ自由に書き換えたりできるものもあるが、一度に256個しか使えないのは基本的には変わらない。
    (なおドラクエ1に使われている「マッパー3」はというと、(背景+スプライトの)256×2個をいっぺんに切り替えることしかできない。)
    よって、背景面に同時に表示される「フィールドの画像」「戦闘時の背景画」「文章のフォント」は、すべて合わせて256種のタイルで賄わなければならないのだ。
    つまり文字を50文字用意するというのは、ROM64kB中の1%弱を使うだけでなく、タイルデータ256個中の50個、約20%という量を占領することになる。これは無視できる量ではない。

    ドラクエ1のタイルデータは次のようになっている。
    ドラクエ1_タイル(元画像はこちらのサイトから拝借した。 http://www.geocities.co.jp/Playtown-Bingo/2392/3syou.html )
    上から109個が文字および罫線、下147個がフィールド画像用である。
    ここから文字を増やせば増やすほど、地形のバリエーションが減っていくわけだ。

    ここで参考に、ひらがな・カタカナが全種類使われている場合の例として初代ポケモンのフィールドでのタイルデータを示そう。ゲームボーイもファミコンと同じく背景に一度に使えるタイルは256種類である。
    ポケモン緑_タイル
    文字だけで5/8が埋まっており、フィールドの表示に使えるタイルはわずか96個である。ドラクエ1の2/3程度しかない。
    これでフィールドを作るのは大変そうだと感じてもらえるかと思う。



    さて、後述すると言った1件。
    文字も1バイト使ってないんですよ。7ビットです。
    だからカタカナなんか20文字しか使えない。
    実は堀井雄二氏の発言である。( http://dq10maru.com/archives/7369365.html より)
    制作陣の中心人物であり、注目すべき発言ではあるが、堀井氏はプログラマーではないことに注意が必要だ。この発言は何を言いたいのかよく分からない。何が7bitなのか。

    1つの解釈としては、文字コードが1文字7bitだったと取れるが、どうもそのようなことはない。

    こちらにドラクエ2と3の文字コードについての情報があった。
    http://www.geocities.co.jp/SiliconValley-Cupertino/7098/
    該当する部分を引用する。
    ・2
    00:1文字
    8D:単語
    EC:数値
    ED:紋章
    EE:濁点
    EF:半濁点
    F0:数値
    F1:数値
    F2:仲間名
    F3:数値
    F4:数値
    F5:呪文名
    F6:名
    F7:繰り返し
    F8:呪文名
    F9:道具名
    FA:区切り
    FB:未使用
    FC:メッセージ終わり
    FD:名
    FE:改行
    FF:区切り
    ・3
    1文字につき6bit使用しています。
    つまり3byteで4文字分を表します。
    仕様:
    00~3B-ひらがなorカタカナ
    3C-ひらがな・カタカナ切替
    3D-圧縮単語+$00 圧縮単語は次の6bitと合わせて全部で192種類
    3E-圧縮単語+$40
    3F-圧縮単語+$80

    説明がなく少々分かりづらいが、おそらく次のような解釈でよいだろう。
    2: 1文字1バイト、00~8Cが通常の文字、残りが制御文字
    3: 1文字6bit、00~3Bが通常の文字、残りが制御文字

    肝心のドラクエ1の情報が無いが、2で1バイトだったのに1でそれより複雑なコードというのは考えづらい。あえて書くほどの事でもないので書いていないだけで、1も7bitではなく1文字1バイトであろう。

    またもう一つ、ドラクエ2と3では文字コードが一変しているのに、使えるカタカナ数は2が33文字、3と4が38文字でほぼ変わらない(2の紋章5つを加えれば全く同一)。これは「文字コードが7bit」を原因とするのでは説明がつかない。

    では堀井氏の発言は何を言っているかだが、これは「フィールド用のタイルを確保すると文字種は7bit分くらいしか取れない」ということではなかろうか。文字コードは1文字1バイトだが、そのうち7bit分128文字しか使われていない、と。
    先述の通り文字と罫線で109文字。これに濁音・半濁音を加えると128文字を超えるが、文章中に使われることのない罫線や英字・記号を抜いたり、濁音・半濁音でも使われていないものがあれば抜けばちょうど128文字程度になりそうだ。
    ただこれを指して7bitと言ったのだとした場合、問題なのは7bitになった原因の方であり、それは先述した通り背景面のタイル種制限だ。  

  • PCが壊れた
    2017年06月20日 22:41

    ある日、休止したPCを復帰させようとキーボードを押すと反応がない。電源を押したら点き、休止時の状態も失われていないので、何かソフト的なものかと思ってそのまま使った。
    そして次にスリープして復帰しようとしたところ、復帰せず、電源を切って入れ直しても電源は付くものの画面が一切出なかった。おかしいと思いつつも、コンセントを抜いて入れ直したところ電源が付き、驚いたことに画面はスリープ時のまま残っていたのでとりあえずそのまま使った。
    翌日あたりも同様の状態。電源を押すと僅かにファンの回る音がするが止まる。この状態では、電源を長押ししてから再度押す、電源ケーブルを抜いて再度挿すといった方法で正常動作することもある。
    また、ファンも回りランプも点いて正常な雰囲気なのに画面だけ出ないこともあった。
    そして次の日あたり、ファンも回りランプも点くが画面が出ない状態に落ち着いた。
    なおディスプレイの異常も疑ったがHDMI接続では画面が出る(PCはDisplayPort接続)。
    画面も出ずエラー音も鳴らないので手掛かりがない。

    何度か試しても状況が変わらないのでとりあえず電源を新しくする事にした。
    なぜなら、おかしくなりかけの時も点いてからの動作は正常だったので、CPU・メモリ・ストレージは正常と考えられる。マザーボードがエラー音を発しないのもCPU・メモリが正常である事を示唆する。
    残るはマザボと電源。ファンが一瞬回るとか電源ケーブル抜くと治るあたり電源っぽい。また、電源はマザボより安く交換も容易。
    というわけでまずは電源を変えよう。

    秋葉原で買ってきて交換。治らない。

    なお電源を買うとき店員が不吉なことを言っていた。曰く、電源が壊れるとマザボやメモリも連鎖的に壊れるらしい。だから電源は早めに変えろと。うーむ、そこまで長く使っているつもりはなかった。

    そういえばPCはHDMI出力も出来るので試す。駄目。

    さてこうなると何が悪いのか分からない。どうしよう。
    まず方向性として、直すか新しいのを買うか。

    直すなら次に怪しいのはマザボだ。しかし直る保証はない。店員の話によればメモリも壊れているかもしれない。
    またWindows10のライセンスが残るかも怪しい。このPCを組んだときも初期不良で交換したがWindows(当時8)は電話認証になった。

    どうせなら買い換えるか。このPCは組んでから4年半経っている。そろそろ買い換えどきかもしれない。(まともに使いだしたのはXPサポート終了からだから使った期間は3年だが)
    買い換えるとして自作するか既製品を買うか。
    今は自作って時代じゃないしたぶん既製品の方が性能の割に安いよな…。
    あ、でも自作ならストレージは流用するから(ライセンスは要るにせよ)OSの再インストールが要らない。これは大きな利点だ。よし自作しよう。

    現マシンと同じくらいの価格で考えると…
    ・CPUはRyzenにGPU統合のが無いので今と同じくCore i5。IvyBridgeからKabyLakeで周波数はさほど変わらず周波数あたりの性能もほとんど変わってない。まあGPU性能は上がってたりAVXが2で整数演算がベクトル幅広かったりはするが。
    ・メモリは安くはなっているが倍の32GBにするほどは安くない。これも変わらず16GBか。
    ・マザボはシリアル・パラレルポートはあきらめた方がいいか。他特に欲しい機能はない。あえて言えばm.2くらい。
    ・Windows10のバージョンは非Proでいいだろう。
    うーむ、なんだかつまらないマシンになるな。性能はほとんど変わらずOSのグレードは落ちシリアルポートは無くなる。
    PCはいつでも買い時でないとはいうが今は特に買い時じゃない気がする。

    ここはいっそのことワンランク上のマシンを組むか。
    CPUをRyzenに。8コアが手の届く値段。
    グラボが要る。そこまで性能いらないけどまあまともな奴で…GTX1050になるのかな。
    メモリは当然32GB。
    あ、なんか楽しくなってきた。プラス数万でこの楽しさはアリだな。よしこれでいくかー。

    …などと思いつつも、やっぱり治す方法は無いかと考えてみる。
    マザボが正常で上に乗っているものが駄目ならエラー音が鳴ってほしい…。
    そういえばこのPC最初に組んだときは内蔵グラフィックから映像が出ず初期不良で交換したっけな。
    あの時はエラー音が出て説明をみるとグラフィック異常で…。
    最初圧電スピーカーを直に付けたら蚊の鳴くような音で抵抗付けてちょっとマシに…。

    !!

    そうだよスピーカー付いてなかったじゃん!
    事ここに至ってやっと思い出す。

    スピーカーを付ける。鳴った。「-・・・」。聞き覚えのあるパターン。グラフィック異常だ。
    先代(2代目)メイン機のグラボを移植する。とっといてよかった。
    GeForce8400GS
    (挿す前に写真撮るの忘れてたので稼働中)

    画面出たー!

    ただし解像度が低い。1024×768かな。まあこれはドライバが入ってないせいだろうからネットで探して落とせば…
    と思っていたらWindowsUpdateでドライバがダウンロードされている。便利。
    ふむふむ、このグラボのGPUはGeForce8400GSというのか。すごいぞ数字がGTX1050の8倍もあるぞ!

    そしてドライバのインストール前だがグラフィックオプションを見ると解像度がいくつか選べる。
    その中で最大の1600×1200にしてみる。
    解像度もアスペクト比も合っておらずさらにゴーストが出る
    うーむ…これはひどい。解像度はともかくアスペクト比も合ってないし、アナログ接続だからゴーストも出てる。

    ああそうそう、なんでアナログ接続かというと、グラボの出力がDVIとアナログ、ディスプレイの入力がDisplayPortとHDMIとアナログなんである。
    DVIからHDMIは頑張ればつなげるのかな…。

    さてそんなこんなでドライバが入った。
    解像度の選択肢も増えたが、最大で2048×1152。まあアナログではそれが限度だろうな。
    ディスプレイのネイティブ解像度である2560×1440には届かず。
    アスペクト比は合ったが解像度は合わず、ゴーストもまだ出る
    まあでもアスペクト比が合っただけでも大分ましになった。解像度合ってないしゴーストもまだ出るけどこれならまだ我慢できる。
    そのうちGTX1050買うけど、なんかしばらくこのままでもいいかなー。

    さてしかし結局原因はなんだったんだろう。
    このマザボは最初組んだときも同様の症状が出た。また、同機種で同様の問題が発生した書き込みが価格.comにあった。
    http://bbs.kakaku.com/bbs/K0000354567/SortID=15218067/#15218067
    何か設計に問題があってグラフィックあたりの回路がダメージに弱いとかあるんじゃなかろうか。
    それが初期不良になったり、電源側の経年劣化で異常な電圧が出た時に壊れたりしたのではないか。  

  • Windows10にフォント消されたけどまあ理解できる
    2017年04月16日 17:31

    Windows8から10にアップグレードして使っていたマシンで、先日(2016/10/12)いくつかのフォントが消えていることに気づいた。

    調べ物をしていて韓国語の字体を見たくなり、文字コード表でフォントをDotumにしようとすると、選択肢に無い。
    Gulimでもいいかと思って探すとこれも無い。BatangもGungsuhも無い。
    有効化していなかったかと思いfontsフォルダを見ると、無効ではなく存在しない。
    この辺で焦りだす。
    他の言語のフォントも怪しいと思い調べてみるとMingLiUもSimHeiも無い。なんだこれは。
    ここまではWindows付属のフォントだがOffice付属のNew Gulimは…? と見るとこれはある。
    すると消えたのはWindows付属のフォントのみなのだろうか。

    ググるとWindows10でMS明朝が無いという投稿が見つかった。→Windows10のフォントにMS明朝がありません
    「設定→システム→アプリと機能→オプション機能の管理」に「日本語補助フォント」のオプションがあるようだ。見てみると他にも各言語の「補助フォント」があり、ここからGulimやSimHeiなどをインストールできた。

    ここにきてやっと何が起こったのか理解できた。
    Windows10になって、各言語のフォントに「補助フォント」という概念ができたようだ。
    そして基本的なフォントはデフォルトで全言語のものがインストールされるが、補助フォントは使用言語のもののみがインストールされるようになったのだろう。
    その判断はまあ問題ないだろう。対応言語も多くなりフォントの容量も馬鹿にならない。

    ここで問題になるのが旧OSからのアップグレードだ。
    旧Windowsでは非使用言語の補助フォント相当も全て入っていたが、Windows10の流儀に合わせるためには存在してはいけない。だから消すと。
    理解はできる。
    消すにあたって、どのフォントを使っているかは判断のしようがないから、すべて消すことになる。
    理解はできる。

    理解はできるが、普通に使っていたファイルが消えるとなると他に何が消されたか分からないのが怖くてたまらない。
    あるはずのファイルが見つからないという経験も何度かあった。まず間違いなく気のせいだろうが、Microsoftは自分の中でもうだいぶ信用を失っているので、本当に消されてもおかしくないと思ってしまう。

    他にも、.NET2.0がWindows10へのアップデートに伴って消えるという問題もあるらしい。ああ嫌だ。
    [note] Win10アップグレード後のVisual Studio 2005起動時エラーの修正について