60が30になったら普通にバレるけど、60が一瞬だけ59になるのを体感出来る 人はあまりいないわな。しかし点滅している物体があると話は別で、視覚的 にバレバレなのである。なので、点滅は表示系の方でやってしまうのはどう かと思った次第。 しかしWinX68000の55FPS表示で点滅が気にならないのはどういうことなのか どういうカラクリなのか俺にはわからんのだよ。
下腹部がキリキリ痛みだし、また(食事中の人がふいに見るといけないので バッサリカット)などの症状が現れ、こりゃマズイと、慌てて調べてみたら 十二指腸潰瘍のようだ。胃・十二指腸潰瘍 - goo ヘルスケア風邪を引いてから三日ほど、ブルフェンを限界ギリギリまで投入してきたの で、思い当たる節がありすぎる。一難去ってまた一難だ。身体がやべえ状態 だってのに、オラなんだかすっげえワクワクしてきたぞ!(来週に続け)
ピロリ菌以外の成因として重要なのは、薬剤、とくに非ステロイド性消炎鎮痛薬 (NSAIDs、エヌセッド)です。
Dragon SHMUPS CompoのDragon Dancerが、ゲーム部分はつまらないんだけど 縦画面をサポートしていたり、BGMはFM音源をサンプリングしたMODだったり、 起動時にRAM/ROMチェックが入ったり、と凄く間違った方向に力が入っている ので素晴らしくダメだと思った。いいぞもっとやれ。![]()
![]()
![]()
デバイス初期化 → RAM/ROMチェック → コピーライト表示 → クロスハッチ → タイトルの流れ
薬を飲み丸一日寝ていたにもかかわらず熱が40度から一向に引かず、一瞬、 死を予感したよ。しかしそこで、HDDを整理しなきゃ……と思い至った俺は 本当にダメすぎる。今は38度9分まで下がりました。
http://fabrice.bellard.free.fr/tcc/ ARMv4に対応してるんだそうだ。configure中のbuild_cross="no"を"yes"に 書き換えればarm-tccがビルド出来るので、あとは適当に使うだけ。コンパ イルめっちゃ速い。コードはそれなり。 リンカとかが無いっつーか(あるみたいだけど、なんか、よー分からん) なのでリンカはarm-elf-gcc使わなくちゃいけないみたい。んで、crt0.Sや ldscriptも無いので、結局devkitARMが必要っぽいですよ。
粉骨砕身の覚悟でがんばります - __builtin_expect について 中身がループ脱出だけじゃあまり効果が出ないのではないかしら。あとは、 THUMBだから効果が薄いとか……ARMだと、条件フィールドをガシガシ使って くれるようになる(といいなあ。ジャンプ以外に使っている所をあまり見た ことが無いのだけど)。 試しに自分の使っているミキサーの、最も内側の部分に適用してみました。 ミキシング中に音声サンプルの再生箇所が終端まで来たら、指定のループポ イントまで戻すという処理を行っています。こんなソースがあって、gcc -marm -Sで吐かせると……samp = (snd_dat[pos] * vol); do { *mxr++ += samp; cnt += step; if (cnt > TICK_COUNT) { pos += cnt / TICK_COUNT; cnt &= (TICK_COUNT - 1); #if BUILTIN_EXPECT if (__builtin_expect(pos > size, 0)) { #else if (pos > size) { #endif do { pos -= size; pos += loop; } while (pos > size); } samp = (snd_dat[pos] * vol); } } while (--length); return;
| non-expect | expect |
1: .L2:
2: ldrb r3, [r0], #1
3: add r6, r6, r4
4: add r3, r3, r2
5: cmp r6, #65536
6: strb r3, [r0, #-1]
7: bls .L4
8: add sl, sl, r6, lsr #16
9: mov r2, r6, asl #16
10: cmp sl, ip
11: mov r6, r2, lsr #16
12: bls .L6
13: .L16:
14: rsb r3, ip, sl
15: add sl, r3, lr
16: cmp sl, ip
17: bhi .L16
18: .L6:
19: ldrsb r3, [sl, r9]
20: mul r2, r8, r3
21: and r2, r2, #255
22: .L4:
23: subs r1, r1, #1
24: bne .L2
25: add sp, sp, #4
26: ldmfd sp!, {r4-r9, sl, pc}
|
1: .L2:
2: ldrb r3, [r0], #1
3: add r6, r6, r4
4: add r3, r3, r2
5: cmp r6, #65536
6: strb r3, [r0, #-1]
7: bls .L4
8: add sl, sl, r6, lsr #16
9: mov r2, r6, asl #16
10: cmp sl, ip
11: mov r6, r2, lsr #16
12: bhi .L10
13: .L6:
14: ldrsb r3, [sl, r9]
15: mul r2, r8, r3
16: and r2, r2, #255
17: .L4:
18: subs r1, r1, #1
19: bne .L2
20: add sp, sp, #4
21: ldmfd sp!, {r4-r9, sl, pc}
22: .L10:
23: rsb r3, ip, sl
24: add sl, r3, lr
25: cmp sl, ip
26: bls .L6
27: rsb r3, ip, sl
28: add sl, r3, lr
29: cmp sl, ip
30: bhi .L10
31: b .L6
|
更新履歴兼雑記 - 5x5フォント 別に対抗心を燃やすわけじゃないですが(めっちゃ燃えてるやん)、以前**DSP を作る際に用意した4x4フォントを置いておきます。![]()
4x4.zip (ttf/bdf/fontx2/bmp同梱) 秀丸で使うとXGAで110行表示できます! つーか読めません。ライセンスは OCPL00000 で。 追記:Note - 2x4フォント SubPixelで更に半分になった!これは凄い。 ふと、画素子の配列が横並びじゃなかったら、2x4以上に小さいフォントが 可能になるんだろうなとか妄想してみる。
別に東方クローンでもいいんだ。ウザったい会話シーンも、撃破後に破片と 硝煙をガッツリ出してさえくれれば、許容しよう。それでいい。いや、それ がいい。
統計を取ったわけではないけど、同人・フリーのPC縦シューは横スクロール をしないものが圧倒的に多く俺はそれが非常に残念だと思う。 横スクロールしない縦シューは窮屈だ。まあ、カメラワークでそれを克服し ているものもある、けど。バガンとか斑鳩とか。逆に横画面の縦シューで横 スクロールすると、無駄に広すぎて困ってしまったりもする……蒼穹紅蓮隊 とか蒼穹紅蓮隊とか。 しかし横スクロールは空間の広がりを感じさせる他に、鬱陶しい敵を画面外 に追い出して弾封じといった戦略性を否応無しに作ってしまったりする効果 があるので、そこらへんの調整が厄介だなあと思ったり、思わなかったり、 思わせぶりだったり、えーと、なんだ、オチを考えるのが面倒になったので この話は終わりだ。 とにかく、同人縦シューを作ってる人は一度でいいから横スクロールの有無 を検討してくれ!単なる東方クローンから脱却するチャンスだよ!つーか東方クローンばっかじゃ飽きるでしょ!かといってTOAやSEIBUク それはさておき、超連射68K@GBA(物凄い矛盾オーラを感じる)の横 スクロール方式を検討する。ポイントとしては弾封じの有無とか、スクロー ル基準を自機と背景のどちらにするかとか、あるいは(中略)などがあり、 まあなんだ、検討するとかいいつつ、オプションで選べるように両方実装し てたりするんだけどな。今日は暑いなア。
Sound FX Keychains 誰でも一度は触れたことがあると思う、ボタンを押すとマシンガンや手榴弾 を投擲したような効果音が鳴るおもちゃ。それを改造して(受光素子をハン ダ付けするだけ?)光で音程を変化させるテルミンもどきを作れるらしい。
Echo Keyller opto-Theremin mod (リンク先で改造後の音が聴ける) 俺もこの手のおもちゃは持っているけど、あるがままにしか使っていなかっ たので、目から鱗が落ちる思いだ。
浴室にいる蚊は頭がいいと思う。たぶん顕微鏡で見たら前頭葉が発達してる に違いない。小さい頃、爺さんにねだって買ってもらった顕微鏡は二・三回 使っただけで押入れの肥やしになってしまった。ねだられた爺さんは、子供 のうちから生物に関心を抱くとは感心だと、そう思って買ってくれたに違い ない。ごめんなさい。20年経って孫は立派なゲーム脳に育ちました。いや、 そんなことはどうでもいい。奴らは人間が最も無防備な状態になる場所に、 こうして存在しているのだ。気配を悟られぬよう背後から忍び寄り、ズブリ と一刺し、生娘の生き血をすするというのだ。そんな奴らに対し我々人類が 出来ることはただ浴槽や風呂桶に10円玉を沈めることのみである。孵化した 後じゃ意味が無いじゃないかとか言ってはいけない。飲めば貧血に効くよ。
別にCのタスクシステムでもリストを複数用意すればいいだけの話であって、 STLがヤバいっつー話とは繋がらんよ。ヤバすぎて脳がスパークしてた。 std::vector<std::list<CActor*>> ActorContainer; でリスト配列があっという間に作れてしまう事実に強い衝撃を受けた…ただ それだけの話ですよ。ザンギュラあたまに文明が開花したのよ。
優先順位つきスプライト管理クラスとかID付きキャラクタ管理クラスとか、 ハッシュ管理コリジョンクラスとかが一瞬で作れてしまうのね。 これはヤバいわ。富豪マンセーだわ。プールからメモリを確保するようにすれば、GBA で使ってもいいかもなあ。 キャラクタも union で最大サイズを測ってプール作っちゃえば楽勝だな。 Cのタスクシステムなんか使ってる場合じゃないかもしれん。これはヤバい。 これまでは こんな感じのタスクシステム を使っていて、一本の線形リスト にタスクを全てぶっこんで、優先度でキャラクタの種類を表し、当たり判定 なんかは例えば
こうやって書いてたんだけど、もうちょい簡単に、しかも安全に書けるよう になるわな。マズいなあヤバいなあ。TASKWORK *shot_task = TaskSearch(PRI_SHOT); TASKWORK *enemy_task = TaskSearch(PRI_ENEMY); TASKWORK *enemy_task_first = enemy_task; // ショットループ while (shot_task->priority == PRI_SHOT) { MYSHOT *swork = (MYSHOT*)&shot_task->work[0]; if (swork->status == ALIVE) { // 敵ループ while (enemy_task->priority == PRI_ENEMY) { ENEMY *ework = (ENEMY*)&enemy_task->work[0]; if (ework->status != DEAD) { if ( CheckHit( &swork, &ework ) ) { // ショット死ぬ swork->status = DEAD; // 敵エネルギー減らす if (ework->status == ALIVE) ework->energy--; // 敵死ぬ if (ework->energy <= 0) ework->status = DEAD; // 敵ループ抜ける break; } } enemy_task = enemy_task->next; } enemy_task = enemy_task_first; } shot_task = shot_task->next; }
ムフー(;´ω`)
こんな風になっているのではないかと妄想
123456789012345678901234567890123456789012345678901234567890
(1)101010101010101010101010101010101010101010101010101010101010 60fps
(2)101110101010101010101010101010101010101010101010101010101010 一瞬59fps(4フレーム目が切れた)
(3)101101010101010101010101010101010101010101010101010101010101 一瞬59fps改良版
(4)101010101010010101010101101010101010010101010101101010101010 55fps→60fps変換
0=消灯
1=点灯
(1)普通の60fpsの点滅。
(2)点滅を垂直同期のフレームカウントの奇数(1)・偶数(0)で設定。
処理落ちが発生してもそのまま。
処理落ちしたフレームは前のフレームと同じ状態。
点灯もしくは消灯時間が3フレーム(=0.05秒)あるから目立つとか。
リズムが大きく狂うので違和感がある。
(3)スキップされたフレームに対して点滅を反転させて続行している。
垂直同期とは別の処理用フレームカウントを使用している。
(4)フレームが均等にスキップされているため気付きにくい。
たとえばアニメが24fpsと30fpsで違和感を持つだろうか。
リズムが一定であれば気付きにくいと思う。 (2006/09/01 09:51:32)
均等に振り分けるのがコツなのかな。
WinX68000だと点滅は気にならないですが、スクロールのガタつきは
かなり気になる感じ。スクロールの方に目が行くから点滅はあまり
気にならないのかも。 (2006/09/04 00:24:37)
http://www.liarsoft.org/data/TD_55fps.avi
試しに手製のソフトを、10フレームに一度動作停止することで55fpsになるように改造してみた。
あれースクロールもそんなに気にならないなあ。 (2006/09/04 02:57:42)
エミュの場合、
実機が60fpsでエミュで同じ60fpsでも
表示期間に描画タイミングがずれたら
がたつきますよね。
たぶんそれが見えたのではないでしょうか。
似たようなのに表示期間にスクロールレジスタを操作するとか。 (2006/09/06 08:53:35)
ああ、タイミングがズレてるのはあるかもしれないですね。
けろぴーと高速版でもなんか挙動が違うような。(けろぴーだと
あまりガクガクしないように見える。高速版はblit+flipでもガクガク)
感覚的な話で終わらせずに、本当は録画して検証するべきなんでしょうけど。 (2006/09/07 18:51:20)