[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 06/19 22:43 / Filesize : 104 KB / Number-of Response : 490
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ファミコンってC言語でプログラムされてるの?



1 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:24:30 ]
プレステ2もC言語でつくれる?

409 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 06:24:45 ]
>>405ってCやC++も高級言語だと思ってるんだろうなぁw

410 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 13:47:45 ]
>>405
6502自体に癖があるんだから当たり前。

411 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 14:04:36 ]
>>405
X68kのCコンパイラ1.0には「ポインタをゼロ比較すると正常に動作しない」というバグがあった。
原因は、
move.[bwl] addr, dn
はゼロフラグ変化するのに、
movea.[wl] addr, an
は変化しないのだが、作成者がその仕様をうっかり忘れて、後者でも
beq foo
などというふうにコーディングしてしまったのが原因なのだが、これって美しいと思うか?
(何でアドレスレジスタへの代入ではフラグが変化しないのかの理由もちゃんとあるが、ここでは伏せておく)

また、リロケータブルな実行コードを出力したいとき、
move.w d(pc, rn), dn
は出来るが、逆は出来ないため直交性と言う観点からは美しくないが、これについてはどう思う?
(こっちも理由あるけど同上)


412 名前:デフォルトの名無しさん [2008/08/18(月) 19:28:05 ]
おっさんクセースレだな

413 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:31:59 ]
なんかいつの間にか68kの話になってる。

68kはニーモニック覚えた程度でついぞ大きなプログラムは書かなかったんだけど、
確かに俺も言われてるほど綺麗なアーキテクチャだとは思わなかったな。

まあ実際使ってみないとわからない機能美って奴があるのかもしれないけど。

414 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:33:55 ]
今の技術についていけないジジイどもの思い出スレ

415 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:38:18 ]
ジジイつったってせいぜい40代だと思うぞw

416 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 19:47:59 ]
今の技術 ^_^

417 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 20:26:30 ]
>>409
普通は高級言語ですね。それ。



418 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:20:54 ]
>>411
無論、データとアドレスを明確に区別する68000のアーキテクチャは美しい。
moveと同じようなフラグ変化が起こる事を期待してmoveaを用いるのがおかしい。
アドレスの転送やアドレスの増減で、データ演算結果を示すCCRが変化するべき理由がどこにもないし、変化するべきではない。
アドレスに対して何らかの比較が必要なら、cmpaを用いてば済むだけだ。その方が可読性も増す。
データとアドレスの区別をつけるという概念が欠如していたプログラマの方に問題がある。

インデックス付きプログラムカウンタ相対がdestに指定出来ないのも美しい。
PCを介するということは、プログラム領域が対象になるということ。
プログラム領域は参照専用のメモリ領域であり、値を変更できる必要がどこにもない。
変更が必要になるデータはデータ領域に配置して、アドレスレジスタ間接でアクセスするのが正しい。

419 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 01:22:24 ]
>>418
うるさい

420 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:14:53 ]
>>418
100点。
だがそれはあくまでも「アセンブラとしての美しさ」であり、それなら6502にもそれなりの
ポリシーがあり、68000は美しく6502は癖があるという主張の裏づけにはならないが、
そこの説明はどうする?

421 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:09:00 ]
いわゆる16bitと8bitのMPUのアーキテクチャを比較して何がしたいんだこの人は?w

422 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:14:53 ]
・人間を無視したリトルエンディアンを採用。この時点でかなり美しくない。
・汎用レジスタが1本しかない。あるシステム上で動かすプログラムを設計する時、
 システムが食い残したゼロページの使い方に頭を悩ませる必要がある。そして、
 大抵は、足りなくて泣く事になる。
・ADD・SUBを用意せず、計算前にCLC・SECを使わせる不自然さ。
・なぜか無条件分岐命令がない。
・etc...

6502の設計の割り切り方は潔い。ハードウェアはシンプルで高性能だ。職人芸に挑む
楽しさもある。だが、美しくはない。良くできた6502のプログラムは、芸術的なまでに醜い。
真に美しいMPUのプログラムは、人間が読んで美しく、人間が書いて美しい。

ごえんなさい6502は使った事ありません。すいまえんでした;;

423 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:41:48 ]
結局また知ったかぶりの王様か


424 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:53:19 ]
一行糞レス素敵ですね^^

425 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 09:58:19 ]
>>422
無条件分岐命令が無いとか妄言書くなら
6502使ったことが無いなんて明白な事をわざわざ書く必要は無い

426 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:08:17 ]
>>425
無条件相対分岐のBRA命令は無いよね。
絶対番地を指定するジャンプなJMP命令はあるけど。

427 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:37:34 ]
PCエンジンのCPUにはBRAあるんだね。



428 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:46:24 ]
>>422が言う「美しい」の定義を是非知りたいんだが(笑

429 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:56:35 ]
>>427
6502から拡張された65C02をさらにカスタマイズしたチップだからね。
6502そのものではないよ。

430 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 10:59:34 ]
6502は [zz],Y のアドレッシングモードがなかったら
これほど流行らなかったよな。

431 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 11:05:06 ]
え?6502が流行った?

432 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 11:06:15 ]
また無知の馬鹿が一人・・・・

433 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 12:49:22 ]
6809>Z80>6502

434 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 13:17:27 ]
6502ってApple][とPET2001とVIC1001と他にあったっけ?
とても流行ったとは...

435 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 15:34:21 ]
Apple][が今のMacの礎になったんだが・・・・
まあ今もMacはPowerPCを捨ててx86になっちゃったけどね

436 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 15:42:39 ]
>>433
性能ならこうだべ?
6809>6502>Z80


437 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 15:52:39 ]
Macの礎はLisaじゃね
つかMacって68000だし6502関係ねーし



438 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 15:57:04 ]
それを言うならPowerPCだって68000関係ねーだろ

439 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 16:20:45 ]
↑お前バカだろw

440 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 16:26:45 ]
設計思想がApple][とMacは正反対な気がする。

あと、OSだけでなくアプリケーションまでスーパバイザモードで動くように設計した奴を
殴ってやりたい。よくも68000を汚したな、と。

441 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 16:26:56 ]
↑お前が馬鹿な事はよくわかった

442 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 16:30:10 ]
もっと具体的に。
馬鹿というだけなら馬鹿でもできる。

443 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 20:32:52 ]
>>422
ビッグエンディアンの利点って何だっけ?
なんか直感的には無茶苦茶不便そうだけどなあ。

ビット幅が違う値同士の演算とかこんがらがりそう。

444 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 00:40:11 ]
ミドルエンディアンじゃなきゃどっちでもいいよ。

445 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 10:40:23 ]
>>443
ビッグエンディアンの利点は人間にとって直感的で自然な配置であること。
あとはTCP/IPのネットワークバイトオーダはビッグエンディアンだったと思うんで、
そっち方面では有利。UTF-16も標準ではビッグエンディアン。68000にはほぼ関係なさそう
だけど。

> ビット幅が違う値同士の演算とかこんがらがりそう。
簡単なやつは簡単。適当に書いたから動かないかも知れない。
;例)メモリ上の128bit値と8bit値の加算(知らない人でも読めるしつこいコメント付き)
.text
LEA V128,A0 ;V128の実効アドレスをロード
MOVEQ #0,D0 ;ADDXで使うために0をセットしておく
MOVEQ #0,D5 ;ゴミ消し
MOVE.B V8,D5 ;V8から8bit値を取得
MOVEM.L (A0),D1-D4 ;A0が指すメモリから128bit値をD1-D4に読込む
ADD.L D5,D4 ;最下位から順に
ADDX.L D0,D3 ;条件分岐して加算しない場合を作るよりも
ADDX.L D0,D2 ;素直に加算しちゃった方が早いので
ADDX.L D0,D1 :最上位まで0+Xフラグを加算していく
MOVEM.L D1-D4,(A0) ;計算結果をA0が指すメモリに書き戻す
;未完 あるいは NEVER END
.data
V128: DC.L $12345678 ;最上位
DC.L $9ABCDEF0
DC.L $FFFFFFFF
DC.L $FFFFFFFF ;最下位
V8: DC.B $88

446 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 11:00:01 ]
ゼロクリアされた領域に1オクテット単位で1を書き込んだのに
同じアドレスで2オクテット単位で読み出すと256が得られるのは
直感的な配置とは考えられない

447 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 11:09:44 ]
> 人間にとって直感的で自然な配置であること

www

つーか大文字で書くなよ気持ち悪い…



448 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 13:39:52 ]
…まあ、お前だけだ。

449 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 14:29:54 ]
ビッグエンディアンだからネットワークに強いって何時の話?
68000の頃?

450 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:11:36 ]
今のCPUはメモリよりCPUのクロックの方が数倍速いから
リトル点ディアンであってもtcp/ipに不利にはなってないよwww

451 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 15:22:24 ]
ネットワーク機器に使われてるCPUを知っての発言か?

452 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 16:06:45 ]
PowerPCかARMでも使ってりゃいいよ組み込みは

453 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 16:17:37 ]
ネットワーク機器だとMIPSとかPPCあたりが多い気がする。あとARMとかColdfireか?
PCIとか(S)ATAみたいなPC由来のやつらがリトルエンディアンなのはデメリットにならないの?

最近は変換load/storeを持ってるのとか、ページ単位とかでエンディアンを
切り替えられたりするから、あんまり関係ないんじゃないかね。

454 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 19:38:40 ]
>>445
丁寧に説明してくれたのにケチつけるようで言いにくいけど、
やっぱり最下位の値がD4で最上位がD1とか直感的じゃない気がするよ。

っていうか大概の演算でも何でもMSBよりLSBが重要な場合がほとんどなのに
ビッグエンディアンだとラベルはMSB指すんでしょ?
慣れればなんでもないのかも知れんがバグの温床になりそう。

455 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 23:43:39 ]
>>454
ならないよ。両方やってきたけど、人間はどちらにも馴れることができると判っただけ。

456 名前:デフォルトの名無しさん mailto:sage [2008/08/20(水) 23:56:29 ]
ビッグエンディアンは使いにくいね
大体、ビッグエンディアンが見やすいとかっていうのも、人間が
「上位桁から書く」という習慣があるってだけで、
本来なら低いアドレスに低い桁が書かれているリトルエンディアンの方が合理的なんだけどな。


457 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 00:03:06 ]
しばらく68000使ってたけど別に慣れればリトルエンディアンでも
ビッグエンディアンでもどっちでもいいや



458 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 03:15:32 ]
Interface9月号にColdFire基盤が付属してるから、使いにくいかどうか確かめてみれば?
フリースケールが第二回コンテストやってるし。

459 名前:デフォルトの名無しさん [2008/08/25(月) 12:11:27 ]
>>454
慣れたら一緒。
機械語やアセンブリ言語のレベルなら、直前の命令を見れば、数字の桁は把握できるわけで。
それなら、単にどっちから文字の塊を読み始めるかの違いしか無いんだから。

リトルはよくてビッグはダメって言い張ってる奴は、お寺の門の上に掛かってる看板見たいに、右から左に文字が書いてあったら読めないのか?
「昔は、右から左に文字を書いていた」って予備知識があったら普通に読めるだろ。なんでコンピュータの数字は読めないんだよ。
リトルは読めるけどビッグだと本当にダメってなら、脳の障害を疑ったほうが良いぞ。
実際に、脳の障害で、左右のどちらか一方側から読んだ時しか、文字の塊を単語として認識できないって人は居るから。

確かに、リトルエンディアンの方が、CPUの回路の実装は、ちょっとシンプルになるが、結局は、それ以外の点は、単なる慣れの問題だよ。

460 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 12:53:23 ]
>リトルはよくてビッグはダメって言い張ってる奴は、お寺の門の上に掛かってる看板見たいに、右から左に文字が書いてあったら読めないのか?

>リトルは読めるけどビッグだと本当にダメってなら、脳の障害を疑ったほうが良いぞ。

なにこの馬鹿丸出しの飛躍っぷり

461 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 13:34:34 ]
ていうか仮定が馬鹿丸出し。

「リトルはよくてビッグはダメって言い張ってる奴は」「右から左に文字が書いてあったら読めないのか?」
なんでそうなるの?意味ワカリマセーン(笑)


462 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 16:55:19 ]
>>459
ご高説に茶々を入れるようで申し訳ないが
「昔は、右から左に文字を書いていた」んじゃなくて、
あれは一行一文字の縦書きなんだよ・・・

予備知識がなくてもちゃんと辻褄はあっているのさ

463 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 17:14:50 ]
敢えて茶々を入れるが、「一行一文字の縦書き」なんて知識なしにそう認識する奴はいないと思うよ。

464 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 17:25:11 ]
ああ
日本語は縦書きが基本という予備知識は必要だな
横書きという概念自体輸入物だ

465 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:37:40 ]
言語学板でやれ

466 名前:デフォルトの名無しさん [2008/08/29(金) 06:11:11 ]
PCエンジン版のツインビーなら仕事で作った事あるぜ

467 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:01:44 ]
ツインビーで最も良いのは出たな!!とヤッホー!。
X68000版の出たな!!の移植度は賞賛に値する。

だがPCエンジン版は音も絵もよろしくない。絵はまあ仕方ないものと我慢しよう。
だが音はROM2にしとけば劣化回避できたはずなのに。
ローディング時間なんて飾りです。偉い人にはそれがわからんのです。

PCエンジン用のゲームとしてはよく遊べる部類だが、移植として見た時にはつらいクオリティ。
よくもやりやがったなコノヤロウ!という出来だった。




468 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:37:23 ]
すぐ俺が俺が!になるから
ちょっと頭冷やして過疎ればいいよ

469 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 21:19:24 ]
プログラムに触れていると
昔昔、ファミコンやスーファミ時代の記憶が蘇ってしまう。
ああ、今になってあの頃を思い出す事になるとはなぁ…

470 名前:デフォルトの名無しさん [2008/12/03(水) 09:45:11 ]
おにゃん子タウンとか
ファンキーモンキー西遊記とかあれ高度なプログラマーなの?




471 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 10:08:27 ]
>>470
高度かどうかは兎も角、少なくとも“プログラマー”ではありません。

472 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 17:59:29 ]
今来た。こんなスレあんだね。
元FCPGだけど覚えてる範囲で書き込んでみる。

アセンブラでつくられるのは容量もあるけど速度のため。
リアルタイムのアクションゲームには速度が必要。

>>265
そんな感じ。キャラエディタはもちHu(ry

>>270
そんな感じ。機材というかライセンス+公開資料。

>>309,310,313
プログラムエリアは16kだったと思う。8kだったかも?
マリオぐらいまでのゲームは最大32kバイト。16kのタイトルも沢山あった

>>314
ファミコンにいわゆる「グラフィック」は無い。なので塗ったり線を引いたりできない。
2bitカラー(3色+透明)の256個のキャラとそれを使った64枚のスプライトしかない(マリオのサイズは2x2=4枚)
葉っぱと雲はパレットを変えてるだけでパレットは全52色の中から指定。

長文スマソ


473 名前:デフォルトの名無しさん [2009/01/22(木) 01:38:36 ]
こんなスレがあるとは初めて知った。


昔、1回だけファミコンの仕事したことがあるが、

・PC-9801でソース書いてコンパイル
    ↓
・出来上がったバイナリをROMライタに焼く
    ↓
・ROMカセットの基板のソケットにROM挿してファミコンにセット
    ↓
・ICEのホストマシン(PC-9801)で制御ソフトを立ち上げてシンボルテーブルを読み込ませる
    ↓
・ICEのスイッチ(確か、ICEモードとCPUモードがあったような?)をICEモードに切り替えて走らせる
    ↓
・デバッグ

というような流れだった。

何でいちいちROMを焼かなければならないのかは、今となってはよくわからないや。
ROMエミュータが無かったか、あるいはICEにエミュレーションメモリが無かったせいかも?
(あるいは、その機能はあったけどその存在を知らなかったので使っていなかっただけ、という可能性もあるw)

あと、ICEモードにすると、音が出ないがシンボリックデバッグが可能になって、
CPUモードにすると音が出る代わりにデバッグが不可能になったような気がする。

多分、6502エミュレーションモードと、ファミコンから引っこ抜いたCPUで直接動かすモードの切り替えスイッチだったのだと思う。

あと、サウンドドライバは既に社内で用意されていたライブラリを使っただけなので、音源関係のデバッグはやったことが無い。

サウンドデータ(楽譜)はMMLで作ってパソコンのPSG音源であらかじめ確認してから、
そのデータをファミコンに持ってくるだけだったような気がする。

474 名前:デフォルトの名無しさん [2009/01/22(木) 01:43:19 ]
組み込みはだいたいLinuxじゃないか?
gccだと思うが。

475 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 02:24:17 ]
誰に対するレスだよw

476 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 03:06:43 ]
ファミコンの時代にLinuxは存在しないどころか、開発すら始まっていません。

gccはあったけど、ファミコン中期〜後期の頃に
最初の安定版がやっと出てきた頃じゃなかったかな?

正直、スレを間違えているとしかw

477 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 03:47:03 ]
なんで突然Linuxの話が出てくるのかが分からん



478 名前:デフォルトの名無しさん [2009/01/22(木) 06:02:57 ]
バンクの切り替えで死にそうになった



479 名前:デフォルトの名無しさん [2009/01/22(木) 06:28:00 ]
ゲーセンにある3Dのガンダムseed destinyってC++でしょ?
あんな早い動きC++でなきゃ無理でしょ?
ガンダムクラスからデスティニーとかフリーダムとかnewしてるんでしょうか?

480 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 07:51:27 ]
アホかい。

481 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 09:42:56 ]
PICのCとかも使えないというんだろうな。
目的次第でしょうが・・・。

482 名前:デフォルトの名無しさん [2009/01/23(金) 01:30:22 ]
ガセのアーケードは、Linux

まんまLinux。

Linux上でゲームが動いてる。

483 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 02:39:27 ]
そりゃ、AT互換機ベースのハードだからな。

484 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 05:00:04 ]
>>479
ワラタ

485 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 08:24:55 ]
>>479
おい、νをそんながらくたと並べんな。

486 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:50:45 ]
昔はCでゲーム作るのは珍しかったって聞いたけど。
ドラッケンはその珍しいゲームのうちのひとつ。ファミコンじゃないけど。

487 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 10:26:10 ]
ハック、ハック、ドラッケン



488 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 04:26:26 ]
スーパーマリオの、残機を、たくさん増やすと、王冠がついて、その後ろに、
キャラクタがつきますが、可読性に、欠陥なので、せめて、16進数でよいので、誰か、
ハックしてください、ワールドも、同様です、、、

489 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 11:41:41 ]
句読点の使い方から覚えましょう。せめて中学生レベルまで。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<104KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef