■ このスレッドは過去ログ倉庫に格納されています
究極の8ビット機を妄想するスレ Part 4
- 903 :ナイコンさん:2018/12/10(月) 21:45:06.23 .net
- あの酷い出来のFM-7版ゼビウスでさえ、軌道はちゃんと固定小数使ってるのに。
実座標への変換はスクロール量や処理速度のせいで粗いけどさ。
- 904 :ナイコンさん:2018/12/10(月) 21:58:21.37 .net
- >>901
普通にソフトで書き換えてたけど。
テキストエディタや通信ソフトのプログラムの難易度は、テキストVRAMを使う他機種より高かったわね。
- 905 :ナイコンさん:2018/12/10(月) 22:56:13.93 .net
- >>903
80年代のシューティングなんて整数だけで十分とか言ってる奴は完全に素人だよな
整数で許されるのなんてインベーダーぐらい
- 906 :ナイコンさん:2018/12/11(火) 00:19:37.35 .net
- N88日本語BASICは遅かったよなー
マジで波打つスクロールだったわ。
ナツカシス・・・
- 907 :ナイコンさん:2018/12/11(火) 00:32:02.34 .net
- >>905
天才きたな。PC6001でゼビウス作ってくれ。
- 908 :ナイコンさん:2018/12/11(火) 03:59:44.08 .net
- >>905
天才が一人で必死なスレはここですね?
- 909 :ナイコンさん:2018/12/11(火) 06:49:45.81 .net
- オレはプログラムなんて組めないけど
小数言い出した人の書き込みを素直になるほどー、って読んでたけど
小数否定派がなんでそんなに否定するのかがよくわからない
- 910 :ナイコンさん:2018/12/11(火) 10:17:05.71 .net
- 8ビットCPUで小数点まで使う余裕がないから
- 911 :ナイコンさん:2018/12/11(火) 10:23:06.58 .net
- 俺は叩く気無いけど間違ってる事も書いてるんだわ鵜呑みにするなよ
素人か釣りかってとこ
- 912 :ナイコンさん:2018/12/11(火) 11:38:02.47 .net
- 間違ってる部分があれば冷静に淡々とそれを指摘すればいいのでは
汚い言葉で罵りあっていてはどっちもどっちでしょう
正しい事を言うのであればそこに汚い言葉は必要ないはず
- 913 :ナイコンさん:2018/12/11(火) 12:13:38.09 .net
- >>904だとわかりづらいから追記。
全画面スクロールでいいならハードでスクロール(表示を開始するVRAMのシフト)させて、新たに必要なとこだけ最下行になるVRAMに描けばいい。
問題は情報の表示などで部分スクロールになるとき。VRAMのシフトは使えないから、プログラムでの転送になるけど、大きな面積だと3プレーン転送するのは重いからプレーンを減らすなど工夫が必要。
- 914 :ナイコンさん:2018/12/11(火) 12:20:06.62 .net
- >>910
固定小数点演算は整数演算と変わらないぞ
- 915 :ナイコンさん:2018/12/11(火) 12:23:59.47 .net
- >>912
どちらも半端な知識で半端なことを言ってるんだろうね
- 916 :ナイコンさん:2018/12/11(火) 12:58:32.67 .net
- >>914
ビット数が足りない
- 917 :ナイコンさん:2018/12/11(火) 13:20:27.73 .net
- 12ビットは欲しいよね
- 918 :ナイコンさん:2018/12/11(火) 14:11:46.88 .net
- レジスタペア
- 919 :ナイコンさん:2018/12/11(火) 14:31:37.04 .net
- >>917
PDP-11か
- 920 :ナイコンさん:2018/12/11(火) 14:40:16.46 .net
- 実際にそうやって実装して弾飛ばしているんだから理屈なんかどうでもいいんだわ
- 921 :ナイコンさん:2018/12/11(火) 15:24:24.28 .net
- >>919
PDP-8じゃねーの?
- 922 :916:2018/12/11(火) 15:38:35.83 .net
- あるいは TLCS-12A か、12bit CPU。
Wiki見たら元々、フォード車のエンジン制御用として開発されたのか。知らんかった。
- 923 :ナイコンさん:2018/12/12(水) 01:13:19.52 .net
- 座標計算が必要になる範囲を512ドット以下に抑えれば変数の型が16ビットなら7ビットを小数点以下の桁として扱えるんじゃね?
- 924 :ナイコンさん:2018/12/12(水) 03:47:32.04 .net
- アキュムレータが8bitだし
- 925 :ナイコンさん:2018/12/12(水) 21:53:36.36 .net
- ドット単位で動くゲームなら最低限必要なのは
動くオブジェクトごとに、
○整数部8〜16bit小数部8bitの現在座標x,y
○8bit256段階の方向
○整数部8bit小数部8bitの移動速度
○円を256分割したsincosinテーブル
オブジェクトの方向に対応するsincosinテーブルのx,y値を取得し、それぞれをオブジェクトの移動量とかけ、オブジェクトの座標に加算したものを新たなオブジェクトの座標とする。
表示や当たり判定は整数部のみ使う。
これならZ80でも普通にできるし、実際に多く使われていた。
整数だけしか使わないより、遥かに細かく簡単に調節できてデザインの幅が大幅に広がる。
ホーミングも簡単に実現できるし、タスクシステムと組み合わせれば、多関節などオブジェクトの親子関係もできる。複数のオブジェクトが加速しつつ螺旋を描きながら一点に集まるとか、整数だけじゃ考えるのも嫌になる。
- 926 :ナイコンさん:2018/12/12(水) 23:21:04.41 .net
- 角度別にsinとcosを計算しておいて移動量(加速度)を掛けた値をもつテーブルを作っておけば、データ量おおくなるけど計算量はめっちゃ減るような気がする。
オブジェクトの方向に対応する列の、速度に対応する行の要素からX,Yを取り出せば移動量で掛ける必要がないし。
欠点は速度もパターン化されちゃうってことだけど、シューティングゲームは物理系のシミュレータじゃないんで、「止まってる」「超遅い」「遅い」「普通「早い」「超早い」みたいな感じで速さも10段階ぐらいあれば良いんじゃね?
- 927 :ナイコンさん:2018/12/13(木) 00:28:04.13 .net
- ドット単位で動くゲームなら最低限必要なのは、グラフィックのハード支援。
- 928 :ナイコンさん:2018/12/13(木) 01:33:40.33 .net
- >>925
PCエンジンのようなゲーム用に開発されたハード支援あり、高クロック8bitCPUじゃ話にならないから、
ここはPC6001ベースで可能かどうか検証してくれ。
- 929 :ナイコンさん:2018/12/13(木) 02:05:27.62 .net
- だからPC-6001でもできるに決まってるだろ。何度言われたら分かるんだよ。
固定少数演算はそもそも負荷は軽いし、動く物体の数しかやらない。
お前の大好きなタイニーゼビウスで動く物体が画面に何体出るか数えてみろよ。せいぜい数十個だろ。
1ループで数十回しか通らないところのスピードを気にしても意味ないから。
実行時間の9割は他の何千回も通るようなループで消費される。そこの最内周を削るのが高速化の基本だから。
PC-6001みたいにスプライトのないマシンならそれはグラフィックの書き換えだ。
- 930 :ナイコンさん:2018/12/13(木) 02:19:19.68 .net
- できるってどうやって見積もったんだ?
まずはテーブルを含めた三角関数群と座標計算ルーチンのコードサイズと、
敵機自機の角度計算から座標計算確定までの弾一発につきの必要クロックを挙げてくれないと。
PC6001触ったことないのだろうがおまえが考えるよりおそらく1000倍は要件が厳しいぞ。
- 931 :ナイコンさん:2018/12/13(木) 02:27:43.39 .net
- 究極の8ビット機を妄想するスレでなんで6001が出てくるんだ?
- 932 :ナイコンさん:2018/12/13(木) 02:49:21.86 .net
- できるかってなんだよw
できるかできないかならどんなに遅くてもいいんだからRAMが足りないのでない限りできるだろw
遊んで面白い速さのゲームになるかどうかを問えよw
- 933 :ナイコンさん:2018/12/13(木) 02:50:16.99 .net
- >>931
しかも最初はファミコンみたいな8ビットマシンで固定少数なんかやれない、やってないって言ってたのになw
- 934 :ナイコンさん:2018/12/13(木) 02:55:03.77 .net
- PC-6001は実質2MHzだったな
当時でも超遅マシン,なので小数点以前の問題が山盛りだなw
- 935 :ナイコンさん:2018/12/13(木) 03:13:07.48 .net
- 超遅マシンを使ってると心が貧しくなる
心が貧しいと固定少数なんて一見贅沢なことは怖くて発想の外になる
貧乏人に臨時収入が入っても回る寿司で何千円も食うしかできないようなもん
- 936 :ナイコンさん:2018/12/13(木) 07:30:07.42 .net
- >>お前の大好きなタイニーゼビウスで動く物体が画面に何体出るか数えてみろよ。せいぜい数十個だろ。
タイニーゼビウスで画面に出る動く物体の数・・
数十個じゃなくて数個だと思う
「せいぜい」とつけてもせいぜい十数個かねぇ、と言いたいが
やはり数個だと思う
- 937 :ナイコンさん:2018/12/13(木) 07:48:25.55 .net
- >>936
空中物は同時5個くらいかな
敵弾を含めると最大10個
- 938 :ナイコンさん:2018/12/13(木) 12:25:41.46 .net
- なんで8ビットCPUだと固定小数扱えないって言うんだろう?
8ビットCPUで浮動小数な実数を演算する実装が実在するのに、それより簡単な固定小数の演算が実現できない理由がわからんw
- 939 :ナイコンさん:2018/12/13(木) 13:34:56.02 .net
- 横640ドットの無駄な高解像度は迷惑だった
- 940 :ナイコンさん:2018/12/13(木) 13:38:12.99 .net
- CPUは、DSPじゃないって事が解らないんだろうな。
- 941 :ナイコンさん:2018/12/13(木) 14:48:56.59 .net
- >>938
よくアスペとかコミュ障って言われない?
- 942 :ナイコンさん:2018/12/13(木) 15:39:16.97 .net
- >>941
言われるけど君には関係ないだろ。
俺は単に「なんで8ビットCPUだと固定小数扱えないって言うんだろう?」の答えが知りたいだけだよ。
- 943 :ナイコンさん:2018/12/13(木) 16:53:23.26 .net
- 「誰もそんなこと言ってない。」が答えだけれども納得してくれるかい?
- 944 :ナイコンさん:2018/12/13(木) 17:41:00.22 .net
- ログ見直したけど確かに「8ビットで無理」は言ってないなね。
すまんこったw
質問代えよう。
「なんで8ビットのシューティングゲームは整数で十分なのか?」って。
整数で十分という主張は繰り返されてるからね。
779ナイコンさん2018/12/06(木) 11:13:19.93>>786
8ビット機のシューティングに固定小数点は要らないとか言ってる奴は素人だろ
普通に使われてたわ
781ナイコンさん2018/12/06(木) 12:04:08.15>>788
>>784
普通に使われてたということはほとんど解析して知ってるから言えるわけだよな。
整数使ってたシューティングソフト、固定小数点使ってたシューティグソフトの一覧挙げてくれ。
798ナイコンさん2018/12/06(木) 21:22:15.11>>812
物理系のシミュレータでなく、ゲーム程度の精度でいいなら常識的に考えて画像の座標なんざ固定小数点で計算するだろ。
昔、Dr.デバグに「浮動小数点使うのは遅くなる、固定小数点で十分だ(意訳」って怒られたことがある。
807ナイコンさん2018/12/07(金) 01:13:52.76>>813
>>803
整数で充分だろ。なんで小数点が必要なんだよ。
- 945 :ナイコンさん:2018/12/13(木) 17:47:35.04 .net
- 算数が苦手な人が多いんだね
- 946 :ナイコンさん:2018/12/13(木) 18:04:16.43 .net
- 算数というかプログラムセンスが無い
- 947 :ナイコンさん:2018/12/13(木) 18:23:07.25 .net
- とにかく細かく検証しようぜ。
まずは自機敵機の16bitXY座標から角度出すコード出してくれ。
タイニーゼビウスは単純に8bitx座標を減算してフラグ見るだけの超単純最速コードだが、さて何倍遅くなるだろうか。
- 948 :ナイコンさん:2018/12/13(木) 18:52:42.90 .net
- 整数で充分であっても
小数を使ってはいけない事にはならないよね
- 949 :ナイコンさん:2018/12/13(木) 18:53:36.97 .net
- もう専用スレたててもいいネタかねぇ
- 950 :ナイコンさん:2018/12/13(木) 19:06:48.94 .net
- どうやってatan実装したの? CORDIC?
- 951 :ナイコンさん:2018/12/13(木) 20:01:09.76 .net
- >>950
俺はテーブル化して参照してたな
相対座標1ドット単位だとテーブルが大きくなるので
座標を2ビットシフトして4ドット単位のテーブル
これで敵が自機を狙う敵弾を放つのに十分な精度が出てた
- 952 :ナイコンさん:2018/12/13(木) 21:11:35.47 .net
- もう何のスレか分からないなアルゴリズム甲子園なの?
- 953 :ナイコンさん:2018/12/13(木) 23:05:11.86 .net
- >>947
何バイト使っていいの?
- 954 :ナイコンさん:2018/12/14(金) 00:05:36.14 .net
- 空気読めない奴が雑談するスレあるじゃんそっちでやれば
専用スレ立てるほど伸びるネタじゃあるまいし
- 955 :ナイコンさん:2018/12/14(金) 00:15:21.04 .net
- 元々過疎スレだろ
- 956 :ナイコンさん:2018/12/14(金) 14:43:24.68 .net
- 元々過疎板だし
- 957 :ナイコンさん:2018/12/14(金) 14:55:39.58 .net
- 縦640 x 横480 x 色8bit(256色) / 8(byte) / 1024(kilo) = 300KBだから8bit CPUにはかなり荷が重い
素直に実装するならVGAでも16bit CPUが欲しい
- 958 :ナイコンさん:2018/12/14(金) 16:21:03.25 .net
- 縦長画面とかPC-100かよw
- 959 :ナイコンさん:2018/12/14(金) 21:41:51.15 .net
- オブジェクトの移動が縦横と斜め45度しかないなら整数でもいいけどね。
整数演算だけでギャラガが作れるなら作ってみてほしいわ。
- 960 :ナイコンさん:2018/12/14(金) 22:20:50.95 .net
- セガギャラガがそんな感じ
- 961 :ナイコンさん:2018/12/14(金) 23:17:50.54 .net
- 嘲笑の的だよな
あれこそタイニーギャラガとでも付けるべき
まあ好んでタイニーなゲームを作りたいお人もいるようだけど
- 962 :ナイコンさん:2018/12/15(土) 00:42:55.69 .net
- Wiki見たらギャラガもZ80×3の構成みたいだね。
- 963 :ナイコンさん:2018/12/15(土) 01:13:48.45 .net
- アケ基板って複数CPU構成多いけど制作面倒そうよね
- 964 :ナイコンさん:2018/12/15(土) 01:40:30.37 .net
- 1個はほとんどサウンド専用みたいだからそれほどでもないんじゃない
あとFM-7みたいな構成でも、サブCPUがRAMを64KB目一杯積んでたらそんなに面倒でもないかも?
描画に使うプログラムと絵を16KBに最初から全部置いとけばVDPコマンドがプログラマブルなVDPみたいに使えるのでは
でも16KBでも少ないかもね、320x200x8色の画面モードも用意してVRAMが24KBで済むようにして
自由に使えるRAMの方を40KBにした方が余裕あっていいかも
- 965 :ナイコンさん:2018/12/15(土) 02:37:50.69 .net
- 24bit級CPUはなしで。
- 966 :ナイコンさん:2018/12/15(土) 03:51:27.66 .net
- ファミコンにギャラガ出とるやん
- 967 :ナイコンさん:2018/12/15(土) 05:20:09.05 .net
- 8ビットCPUは少数を扱う余裕なんてないぞw
だから少数が必要な処理してるゲームは8ビットにはないはずww
だからファミコンにギャラガがあるはずがないwww
- 968 :ナイコンさん:2018/12/15(土) 06:11:33.18 .net
- ファミコンのギャラガは敵弾3方向やん
- 969 :ナイコンさん:2018/12/15(土) 06:57:35.90 .net
- ファミコンのギャラガって斜めの弾はまっすぐの弾の1.4倍の速さか?
- 970 :ナイコンさん:2018/12/15(土) 08:38:33.04 .net
- ファミコン版は5? いや、9方向かな。かなり滑らかだぞ
セガギャラガでも敵弾は5方向はある
敵そのものの動きが8方向なので超ガクガクだが
- 971 :ナイコンさん:2018/12/15(土) 08:58:18.18 .net
- でも整数で足りるだろ?
- 972 :ナイコンさん:2018/12/15(土) 09:35:05.65 .net
- そうだね
整数で計算した後割り算してスプライトの座標に割り当てないとね
- 973 :ナイコンさん:2018/12/15(土) 10:05:49.59 .net
- > 整数で計算した後割り算して
少数ありで計算して整数部だけとりだしてるのと同じやんw
- 974 :ナイコンさん:2018/12/15(土) 10:10:19.71 .net
- なんで割り算が出てくるんだろう?
根本的に知能が足りてない人なのかな
- 975 :ナイコンさん:2018/12/15(土) 10:17:31.63 .net
- なんで割り算しないとダメなのが判らないんだろう?
小学校から不登校してたのかな。
- 976 :ナイコンさん:2018/12/15(土) 10:50:55.82 .net
- こんな書き込みばっかでスレ埋まっちゃうな
- 977 :ナイコンさん:2018/12/15(土) 11:40:30.61 .net
- わり算なんか無い
- 978 :ナイコンさん:2018/12/15(土) 12:16:24.42 .net
- >>975
割り算は遅いから、ビットシフトで済むように頭を使うだろ、普通は。小学生じゃないんだから。
- 979 :ナイコンさん:2018/12/15(土) 12:22:27.83 .net
- ビットシフトで割り算するのを割り算と言っているのかと思ったが違うの?
- 980 :ナイコンさん:2018/12/15(土) 12:27:08.44 .net
- 小数点が出てくる割り算をビットシフトでできるの?
- 981 :ナイコンさん:2018/12/15(土) 12:40:03.53 .net
- 1ビットシフトで÷2、2ビットシフトで÷4、3ビットシフトで÷8・・・
- 982 :ナイコンさん:2018/12/15(土) 12:48:49.97 .net
- 少数なんか割り算の前にも後にも出てこない
- 983 :ナイコンさん:2018/12/15(土) 13:22:48.79 .net
- 割り算はやる事でビットシフトはやり方だろ
必要もないのにごっちゃにしてる奴は頭悪すぎ
- 984 :ナイコンさん:2018/12/15(土) 14:01:02.65 .net
- Z80で考える。
LD HL,0
INC HL
とした時、Hレジスタの内容はどうなっているか?
まぁ0なんだが。
ではこの時、INC HLした時の+1を何と捉えるか。
これを +(1/256) と考えるのが固定小数点の基本的な考え方。
現に、256回 INC HL を実行したら H=1となるだろう。
つまり、INC HLは +1 したんじゃなくて、+(1/256)したという事になる。
これは、整数部8bit, 少数部 8bitと言える。
ブレセンハム(線分描画)でよく使うテクニックで、この線分描画のテクニックは
ある砲台から自機に対して発砲する際の軌跡の計算でも使うし、
ビットマップ画像の拡大縮小回転処理でも使われる。
- 985 :ナイコンさん:2018/12/15(土) 14:08:47.03 .net
- 突然どうした
- 986 :ナイコンさん:2018/12/15(土) 15:10:19.77 .net
- >>983
うむ。そうだ
- 987 :ナイコンさん:2018/12/15(土) 15:26:09.78 .net
- 結論:PC6001、PC8801にシューティングゲームを実装するにはCPUパワーは不足していた。
- 988 :ナイコンさん:2018/12/15(土) 15:35:42.76 .net
- PC60やPC88ってどれぐらい遅いんだ?
今まで使った中で一番遅いCPUが8086の5MHzな俺にもわかるように説明してくれ。
- 989 :でぶねこミ,,゚Д゚彡 :2018/12/15(土) 16:40:08.42 .net
- >>988
πの計算に半日かけて十数桁しか出ないとか、そういうレベル。
- 990 :ナイコンさん:2018/12/15(土) 16:50:11.92 .net
- 固定小数点で?
- 991 :ナイコンさん:2018/12/15(土) 22:16:32.71 .net
- しょー・すー・てーん!
- 992 :ナイコンさん:2018/12/16(日) 02:17:43.97 .net
- もうあきらめろw
- 993 :ナイコンさん:2018/12/16(日) 06:47:26.28 .net
- よし、あきらめた
- 994 :ナイコンさん:2018/12/16(日) 17:18:56.06 .net
- 初期のパソコンってディスプレ表示のためにvram読み込むたびにCPU止まるよね。
- 995 :ナイコンさん:2018/12/16(日) 20:14:59.42 .net
- そういやMZ-2200のBASICでLINE引くと
引いてる間他の処理止まってたなw
- 996 :ナイコンさん:2018/12/16(日) 20:35:41.18 .net
- 8ビットの正規ゼビウス移植をタイニー含めて動画をみてきたけど、タイニーとタイニーmk2を除いて固定小数だろうね。
タイニーの作者は中学生ということもあり、いかにも縦横斜めオンリーの動き。
88ゼビウスは空中物白のみにして1プレーンにしたのは成功だね。FM-7版は開き直れなかった。
- 997 :ナイコンさん:2018/12/16(日) 20:46:13.72 .net
- 論点がずれてきてるな。
ファミコンやMSXのようにスプライトを使ってドット単位の動きをハードでできるなら、固定小数点を使うのは8ビットでも当たり前かどうか。そこは多くの証言で肯定されている。
88やFM7のように描画が重いハードだと、最初から滑らかな動きを捨ててる場合が多いので固定小数点は考慮の範囲外。
それでも移植の都合でゲーム性のために固定小数点にしなければいけないときは、プレーンの制限など工夫がいる。
- 998 :ナイコンさん:2018/12/16(日) 20:47:59.99 .net
- >>997
アスペかよw
- 999 :ナイコンさん:2018/12/16(日) 21:03:35.68 .net
- >88やFM7のように描画が重いハードだと、最初から滑らかな動きを捨ててる場合が多いので固定小数点は考慮の範囲外。
それをもっと正確に言うと
88やFM7で固定少数が使われてないゲームはほとんどがプログラマー自身が固定少数というテクニックを知らなかったから使われてなかった、が本当じゃないかな?
「誰にも教わらずに」「スプライトのないPCしか経験せず」「BASICインタプリタ→アセンブラとだけ進んで」固定少数を自力で思いつく人はそうそういないと思う
- 1000 :ナイコンさん:2018/12/16(日) 21:12:07.33 .net
- そんな大そうな話じゃなくてどうせ整数に丸められるから精度も大した差はなくゲーム性も変わらない。
なぜ固定小数点程度でそんなにドヤ顔できるのかが不思議。
- 1001 :ナイコンさん:2018/12/16(日) 21:15:37.98 .net
- いやいやいやいやw
整数に丸められるったって、1ループ毎に丸めた数値で保存するんならそりゃ誤差が蓄積してひどいことになるけど、
そんなことしない、丸める前の数値で保存するんだよ?お前やっぱり分かってないな?
お前はDIYで本棚作るの下手だろ
- 1002 :ナイコンさん:2018/12/16(日) 21:16:27.18 .net
- >>999
なんかのツールでパーセントの表示する時とかでも普通に思いつく程度の事だけど
- 1003 :ナイコンさん:2018/12/16(日) 21:22:20.40 .net
- j>>1001
おいおいおいおいおいw そんなことはわかってるよ。それより分かってなのはおまえの整数での実装方法だよw
方向の数だけ加算テーブル用意するだけだから同じ方向なら固定小数点と結果は同じで高速。
まさかループごとに+1するだけとか思ってやしないだろうな。しかもトータルで三角関数テーブル用意するより容量少なく且シンプルなんだぞ。
- 1004 :ナイコンさん:2018/12/16(日) 21:28:37.06 .net
- 点数の後ろに"00"つけるの禁止な。インフレにもほどがある。
- 1005 :ナイコンさん:2018/12/16(日) 22:35:29.68 .net
- 1000
- 1006 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1006
236 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200