2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

究極の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