修理屋稼業! 先月のPSOはどうって事なかったろ? 道場主 2009/08/01 01:25:43 ├続き(その1)。 道場主 2009/08/01 01:26:00 │└続き(その2)。 道場主 2009/08/01 01:26:18 ├息抜き仕事の方が捗る?先月のPSOはどうって... 道場主 2009/09/01 07:40:19 │└続き。 道場主 2009/09/01 07:40:55 ├あなたは今までに何人の仲間を救ったか?先月... 道場主 2009/10/01 02:56:34 ├宇宙の孤児!先月のPSOはどうって事なかった... 道場主 2009/11/02 14:48:19 ├宇宙の戦士!先月のPSOはどうって事なかった... 道場主 2009/12/01 00:48:46 (修正2回) └ラストサバイバー!今年のPSOはどうって事な... 道場主 2009/12/31 19:04:18
修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
既にご存知の通り、バージョンアップのため、 かなり以前からDCPSOのディスアセンブルなぞをしてるわけです。 が、プログラマが馬鹿なのか、コンパイラ(リンカ)の最適化がでたらめなのか、 プログラムの内容はというと、とてもお粗末なコードが山盛りなワケです。 んで、折角なので、その一部というか、 頭を傾げざるを得ないようなサブルーチン等を紹介していこうかと思ったワケで。 一応、連載になるかもしれないし(笑)。 で、今回のサブルーチンはH'8c01354e。 ニモニックは以下の通り。 H'8c01354e: mov.l @(H'8c013590), R3 H'8c013550: mov.l @(H'8c013598), R2 H'8c013552: mov.l R4, @R3 H'8c013554: rts H'8c013556: mov.l R5, @R2 H'8c013590: H'fff0 H'8c013592: H'8c00 H'8c013598: H'fff4 H'8c01359a: H'8c00 BASICで表記すると、 LET R3 = &H8c00fff0 LET R2 = &H8c00fff4 LET (R3) = R4 LET (R2) = R5 RETURN つまり、実際には、 LET (&H8c00fff0) = R4 LET (&H8c00fff4) = R5 RETURN という事をしてるだけ。 ペアレントルーチンに組み込むより、2サイクル遅くなっている。 度々使うルーチンで、メモリ節約のためにサブルーチンにしてある ……というなら有り得るのだけど、 実はこのサブルーチンをコールしているのは1箇所しか無い。 そのため、2ロングワードもメモリを余計に消費している。 ……まぁ、このルーチンに限らず、このプログラム、 1箇所からしかコールしてないサブルーチンがやたらと多いんだけどね。 なかなかに謎なルーチンだ。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
続き(その1)。 07/15、 ウチにもついに試験的に(安物)地デジチューナを導入。 んで、作ったのがこれ。 http://www004.upp.so-net.ne.jp/Lt_Kelly/TEST/ANTENA01.jpg どうみてもハンガーなんだけど、実は、地デジ用のアンテナ。 早い話、ダイポールアンテナなんだけど、 こんな程度の物でもバッチリ映る(ウチは東京タワーから10km無いトコなので)。 ハンガーと針金とセロテープ(試作しただけなので、半田付けさえしてない)は 有り物だったので、制作費は\0。 ウチはUHF用のアンテナ付いてるんだから、ソレを使えって話もあるんだけど(笑)。 07/28、 ちょっと前に壊れた、(相方が使っていた)貰い物のキーボードを修理。 利かないキーを調べていくと、どうやらマトリクス関係だけど、 変な文字が入力されるわけではないので、マトリクスICの不良ではなさそう。 これなら直せる可能性が有る。 しかし、こういう安いキーボードに限って、ネジ止めではなくて鉤止めが多くて、 開けるのがやたらと面倒。 ともかく開けてマトリクスプリントを見てみると、 上側のマトリクスの右手前側に錆らしき腐食が見られる。 テスタで調べてみると、やはりその部分が通電していない。 利かないキーのマトリクスから考えても、この部分が原因と思われる。 さて、問題は修理法。 マトリクスはセルロイドにプリントされているので、 普通に半田付けをしようとすると、溶けてしまって台無しになる。 そこで使用したのはアルミテープ、アルミホイルとセロテープ。 アルミテープでショートラインを作り、 アルミホイルを端子としてセロテープで貼り付け、 腐食した部分をショートして通電してやると、見事に正常動作。 今回も有り物ばかりで\0の修理。 | ||
|
▼ Re: 続き(その1)。 [返事を書く] | ||
続き(その2)。 07/30、 今日は相方のキッチンタイマーの修理。最近はすっかり修理屋稼業。 キッチンタイマーなんて、今時は100均で売ってるだけに、 修理する必要があるのかどうかという疑問は有るけど、 修理する事自体に意味が有る。 ちなみに、エコかどうか自体には興味は皆無(笑)。 内部を開けてみると、複数の断線と、木ネジの緩みが見られる。 リード線を半田付けし直して、木ネジの締め具合のバランスを調整。 こうした物の多くの液晶パネル部分の端子は、 半田付けやコネクタでの接続はされておらず、 木ネジ等で押し付けられているだけなので、締め方のバランスが重要になる。 そんなわけで、締め方を調整して、無事に修理完了。正常動作を確認。 07/31、 壊れて放置されていた枝切狭の修理。 太い枝を無理に切ろうとしたのか、柄のアルミパイプが割れてしまっている。 なので、金鋸で割れた部分を切除して、樹脂部の亀裂をエポキシで固め、 パイプに新しく穴を開け、ビスで留め直す。 修理としては完全とは言えないけど、取り敢えずはこれで試しに使ってもらおうか。 民主党の、 「一度、政権を任せていただけないでしょうか?」 という言い方、どっかで聞いた事あると思ったら、 ゲームのギャラリーが言う(ゲームセンターCXでの名言とも言う)、 「一機やらせて」 にそっくりなんだよね。 その場合は大抵、一機やらせても悲惨な結果になるんだけど(笑)。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
息抜き仕事の方が捗る? 先月のPSOはどうって事なかったろ? 一応、連載のヤツ(笑)。 今回のサブルーチンはH'8c013cc0。 ニモニックは以下の通り。 H'8c013cc0: mov.l @(H'8c013cdc), R0 H'8c013cc2: rts H'8c013cc4: nop H'8c013cdc: H'4c10 H'8c013cde: H'8c03 BASICで表記すると、 LET R0 = &H8c034c10 RETURN と、これだけ。 ペアレントルーチンに組み込むより、6サイクルも遅くなっている。 度々使うルーチンで、メモリ節約のためにサブルーチンにしてある ……というなら有り得るのだけど、 このサブルーチンもやはり、コールしているのは1箇所しか無い。 そのため、7ロングワードもメモリを余計に消費している。 なかなかに謎なルーチンだ。 08/15、 久しぶりのオフラインミーティング。 最近、半可通が多くて、マトモにゲームの話をする事がまず無いので、 こういったゲームの話が出来る機会はとても貴重。 さらに、プリクラジャンクマシン2号機を導入。 CPUは2.8G、メモリ2G、HDDは80+40+80G。 17インチ液晶モニタ×3台もついて、しめて\5,000ナリ。 DVD-ROMドライブとCD-ROMドライブもついてたんだけど、 CD-ROMはこないだゴミから拾った40x12x48 CD-RWに換装。 さらにゴミから拾った組のSCSIボードと、ビデオキャプチャも装備。 どれもちゃんと動作してる。 でも、このマシンの用途としては、 ビデオキャプチャとかにしか使わないんだよね。 贅沢な話。 08/21、 近所を歩いていたら、選挙カーが通って、佐藤ゆかりの本物(笑)が乗ってた。 本物はやっぱり美人だったよ。 | ||
|
▼ Re: 息抜き仕事の方が捗る?先月のPSOはどうって... [返事を書く] | ||
続き。 08/22、 相棒がUSB用のジョイスティックが欲しいと言うので、 汎用ジョイスティックをUSBに繋ぐためのアダプタを作ろうと思い立つ。 とは言え、USB用のインターフェースを作るよりは、 既存のUSBジョイパッドを改造してアダプタにした方が安いし楽だと思い、 安いジョイパッド(2軸8ボタンと3軸9ボタン)を2個購入(\500+\580)。 2軸8ボタンの方は特に問題も無く改造完了。 しかし、3軸9ボタンの方は2系列のボタンマトリクスになっているので、 そのままでは正常動作しない。 なので、ジョイスティック側の配線を変えて、正常動作するようにした (勿論、汎用性を失わないように、だけど)。 取り敢えず、選挙にはちゃんと行ったんだけど。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
あなたは今までに何人の仲間を救ったか? 先月のPSOはどうって事なかったろ? さて、連載の方。 今回のサブルーチンはH'8c01829a。 ニモニックは以下の通り。 H'8c01829a: rts H'8c01829c: nop BASICで表記すると、 RETURN ある意味、究極のルーチン。 09/27、 何故か主宰の自転車のブレーキ修理。 リアのブレーキワイヤが錆びて切れたらしいので交換。 交換用のワイヤのタイコが若干厚かったので、鑢で削ってから装着。 BMXなので、途中のフレーム沿いに アウタワイヤの代わりにポリ樹脂パイプが使ってある場所があるんだけど、 これが経年劣化でバラバラになっていたので、ついでに模型用の真鍮パイプに交換。 古傷の腰痛が再発したんだけど、歳のせいか治りが遅いのが悲しい。 昔は遅くても1週間あれば治ったのに、今回は2週間経っても治らない……。 あぁ、フリーランスで良かった。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
宇宙の孤児! 先月のPSOはどうって事なかったろ? さて、連載。 今回のサブルーチンはH'8c0199d8。 ニモニックは以下の通り。 H'8c0199d8: mov R5, R0 H'8c0199da: rts H'8c0199dc: sub R4, R0 BASICで表記すると、 R0 = R5 - R4 RETURN なんでサブルーチンになってるんだか……。 10/01、 こっそりとハロウィンイベント開催。 10/17、 こっそりと特別イベント開催。 それなりに人が集まったね。 10/31、 こっそりとハロウィンイベント終了。 とてつもない喪失感って味わったことある? 気が付いていなかったとは言い切れない。 勘違いなら、それに越した事は無いと思っていた。 気が付く勇気が無かっただけなのだろうけど、それでも事実は変わらない。 そして、その事実は非情にも確認されてしまった。 見えない笑顔を見るために頑張ってきたはずなのに……。 そんな喪失感。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
宇宙の戦士! 先月のPSOはどうって事なかったろ? 今更ながら、「未来へ向かって」のランク条件等を掘り出したりしてたり。 んでもって、ようやく正確なところが確定したので、 一応書き出しておこうと。 SSランクの条件は、以前に書いた通りで殆ど合ってるんだけど、 正確なランク条件は以下の通り。 まず、ランク評価の元となる基礎点が、死亡数、所要時間、エネミー撃破数の 3要素それぞれで計算され、合計される (所要時間要素には、実はエネミー撃破数も関係する)。 それぞれの要素の基礎点計算は以下の通り。 死亡数基礎点 死亡数 基礎点 0 10 1〜4 5 5〜8 2 9以上 0 所要時間基礎点 エネミー撃破数が197以上の場合 基礎点 2 エネミー撃破数が196以下の場合 所要分 基礎点 45未満 10 45以上60未満 5 60以上75未満 2 75以上 0 エネミー撃破数基礎点 撃破数 基礎点 120以上 10 119〜100 5 99〜80 2 79〜21 0 20以下 2 で、これらの基礎点の合計を元に、ランクが決まる。 ノーマル/ハードランクの場合 基礎点合計 評価 15以上 A 14〜6 B 5以下 C ベリーハード/アルティメットランクの場合 エネミー撃破数が197以上か20以下の場合 基礎点合計 評価 22以上 SS 21以下 S エネミー撃破数が196〜21の場合 基礎点合計 評価 22以上 S 21〜15 A 14〜6 B 5以下 C というワケ。 ついでにラブラブ指数の計算。 一般にラブラブチェッカー中に撃破したエネミー数と言われているコレ。 ほぼ正しいんだけど、実は若干違う。 正しい計算式は、この通り。 ラブラブ指数 = チェッカー中敵撃破数 - FRD(チェッカー中1匹撃破あたりの所要秒数/ 30秒) そう。時間が関係してたんだね〜。 | ||
|
▼ Re: 修理屋稼業! 先月のPSOはどうって事なかったろ? [返事を書く] | ||
ラストサバイバー! 今年のPSOはどうって事なかったろ? 人は死ぬわ猫は死ぬわ、またしてもロクでもない年だったね。 本人も体調崩すし、治らないまま越年っぽいし。 12/03、 メトセラのHDDがスピンナップ不良を起こしたので、予備のHDDと交換。 ついでに、OSをWindows95にダウングレードしてみた。 PSOサーバとしてはこっちの方が良いかも知れないので。 12/19、 ついに仕事部屋にコタツ展開。 人のためというより、猫のため。 さて、今回もクエストの話。 公式時代は、いくつかのクエストが中途半端だと評されていたけど、 「消えたマラカス」もその一つ。 最後のコンソールと岩に塞がれた通路等、なんとも尻切れトンボ気味に終わる。 で、最近、必要に追われて、クエストスクリプトをディスコンパイルしてるんだけど、 それで分かった事は、本当に作りかけのクエストだったという事。 実際に、スクリプト内には使われてないイベントルーチンや、 ジャンプ先の存在しないジャンプ命令なんかが有ったりする。 「消えたマラカス」の場合は、本来ならば、 どうやら通路を塞いでいる岩が除去されるイベントが有ったらしい。 但し、そこから先は作られていないので、飽くまでも作りかけだったラシイ。 さて、来年こそ以下略。 | ||
|