
ああ、余談。コンパイルではIR80とかいうアセンブラを使ってて、これ本来Z80用なんだけど、マクロ機能が強力だったので他のCPU用のアセンブラをでっちあげる事が出来たのです。
2014-12-15 21:49:54
さすがに16bit以上のCPUは無理だけど。定数が扱えないから。それにあくまで64KBのメモリ空間が前提なので、メガロムを直接扱えないのね。分割してどうにか辻褄合わせるしかなかった。(Z80用のメガロム対応のアセンブラって結局当時あったの?)
2014-12-15 21:50:01
他にないので最初はそれで6502のアセンブルをしてた。いや純正の6502のアセンブラもあったんだけど1パスアセンブラなのよ。リンクできないの。私そっちを使ってたんだけど、微妙に不便。IRも一種のスクリプトみたいな感じでアセンブルするから速度が遅い。
2014-12-15 21:50:08
ところが! 実は本来は6502用じゃない、ある機材用のアセンブラが設定変更すると6502用に流用できる事が判りまして! しかもメガロムにも余裕で対応! 具体的に言っていいのかどうか判らないのでボカすけど、あれは真剣に助かりました!
2014-12-15 21:50:15
@jeminilog それはハドソン版のASのことですねwwww ハドソン版のASは飛田さんが元はファミコン用に書いたもので、それをPCエンジン用に修正したわけですが「公式の開発キット」には、ファミコン用のオプションが含まれていませんw
2014-12-16 13:13:32
当時を知らない人のために説明すると、当時ハドソンのエースプログラマの1人だった飛田さんがファミコン用にアセンブラとリンカを一から作る。それがasとlk。これは後にPCエンジン用に改修される。やはり名前は変わらない。(続く
2014-12-16 13:15:53
このときハドソンはPCエンジンが主力なので、ファミコン、すなわち65c02モードがサブの扱いになり「ファミコンモード」でアセンブル&リンクすることになった。つまりハドソンの社内のASとLKは「ファミコンとPCエンジンの両方に使えた」。(続
2014-12-16 13:17:32
ところが、サードパーティにNECから渡されるキットが「ファミコンでも使えます」では困るので、NECから渡される公式バージョンはファミコンモードが潰してある。なので、as/lkは「ファミコンも開発できるハドソン版」と「PCエンジンしか開発できない公式版」があったわけだ。(続
2014-12-16 13:19:07
@snapwith そうでしたか!あれは真剣に役に立ちました。なんせ元がメガロム前提なので、「同じ物理アドレスのプログラムが同時に存在できる」とか「物理アドレスと論理アドレスが別」とか、その機能が有るとないとで開発効率にめっぽうな差が!
2014-12-16 13:19:15
そして当時ハドソンに合宿にくるようなサードパーティにハドソンが渡していたのは、ハドソン版だったので、コンパイルが持っていた版はファミコンにも対応していたわけであるw もちろんメガロム対応、MMC対応だ。という25年前のトリビアであったw(終
2014-12-16 13:20:45
そしてこういう話を書くと、僕はファミコン版の初代桃鉄を作っていた時、MMCのバグを発見して任天堂に電話して、対策を聞いてブチ切れていた25年前の飛田さんを思い出すのであるw いや、まああんなこと言われたらブチ切れるよねw
2014-12-16 13:22:05
@snapwith MMC1の話だとすると、うちでは石丸君の編みだした、ROMの各バンク先頭に数値を書いておいて、ためしにバンク切り替えて正しい数値が見えたら正解、間違ってたら正しくなるまでやり直すっていう力技を聞いていますが、その辺りでしょうか?
2014-12-16 13:25:29
飛田さんがブチキレてのは88年だから26年前か・・・w 思えば遠くへきたもんだw
2014-12-16 13:26:52
@snapwith バンク数値をシリアルにしたのはいいけど、書き込み中にNMIで割り込まれるのを想定してなかったみたいですね。それ以後任天堂のメガROMで、数値のシリアル書き込みは2度と使われる事はなかったという・・・(完)
2014-12-16 13:29:28
@jeminilog そして初代ゲームボーイではデータの消える通信が登場するわけですよw
2014-12-16 13:31:28
@jeminilog 僕はボンバーボーイをゲームデザインするとき、全く知らず脳天気にリアルタイムバトルを入れて、本当に心の底から後悔しましたwww
2014-12-16 13:34:54
さっきの会話の補足。ゲームボーイの通信に関しては2月くらいにもやってるので省略しといて、メガロムの話。MMCってのは任天堂の純正のメガロムの規格で、1、3、5とかがある。2や4は社内のみで使って外には出してない模様。(ファミコンウォーズが2だっけかな)
2014-12-16 17:27:41
ただこれが任天堂最初のメガロムって訳じゃなくて、UN-ROMってのがあった。1メガのROM(単位はbitなので128KB)と64KのRAM(同じく8KB)を組み合わせてある。後にROMが2メガのUM-ROMも出たそうだ。
2014-12-16 17:27:49
そもそもファミコンはメガロム登場前には64-64、128-64、256-64があった。前の数値がプログラム部、後ろの数値が画像部。ファミコンはもともと画面に出てくる各種キャラクタは固定(ROM)のみで、プログラムとこみでカートリッジに載せてる仕様だった。
2014-12-16 17:27:58