ファミリーベーシック活用テクニック Part2
エート? エート? コトシハ ショウワ94ネンデス >>114 スーパーゼルダメーカーじゃねえか…。 オリジナルの試練の祠のプログラミングも、アイコンやマウスで視覚的に操作して作れる。 ファミリーベーシックをNintendo Switchでリメイクしたら…。 Switch版はマウスが使えるから、視覚的にプログラミングができる。 ※プロコンのスティックでマウスポインターを動かして操作する。 リメイクしたファミベーのキーボードは、ふつーのUSB日本語キーボードとして使える。 Windowsのパソコンのキーボードにもなる。 ポケモンタイピングのキーボードがふつーのBluetoothキーボードになるのと同じ理屈だ。 >>90 playbox basic v1.0のスクショ CRCは一致しているみたいです。 https://i.imgur.com/8wuvzVK.jpg Family BASIC v1.0 vs Playbox BASIC v1.0 https://i.imgur.com/SZfDwTx.gif Playbox BASIC v0.0 vs Playbox BASIC v1.0 https://i.imgur.com/UAp4Thj.gif せめてファミコンのメインメモリが8KBあって、クロックが8MHzだったら。 PCエンジン要らんかったなw >>99 補足しておくとベーシックではCHR$(0)からCHR$(31)までが表示されませんので、一覧になっているのはキャラクターコードの32番(スペース)からです。 >>125 ファミコン発売時のスペックがRAM8キロバイト、クロック8MHzだったとしたら ふつうに数十万円になってしまうのでは。 ファミコンが1983年で1985年のSun-3で16.67MHzか。 >>125 前提:メインメモリが8KBあって、クロックが8MHz 結論:PCエンジン要らんかったなw 何故、結論としてPCエンジンが要らないのか論理的に判らない。 >>127 君も話を複雑にしてくれる人だな。クロック周波数8MHzで メモリが64KバイトPCは13万円弱で1983年には発売されてた。 ただ改めてファミコンの仕様を考察すると当時のゲーム機として秀逸。 当時よく1万5千円で製作したな、と驚愕する。しかも親を説得(騙)して 購入させるためにBASICも用意した。ゲーム機能だけなら親は買わない可能性大。 任天堂のマーケット能力と技術は凄いし仕事を貰いに行ったHAL研究所の社員も凄いと思う。 △)当時よく1万5千円で製作したな ○)当時よく1万5千円で販売できたな >>127 もしかしてCPUの動作周波数を8MHzと解釈したと言うことかな? 基点がファミコンでメモリが8KBと言うことからクロック周波数が8MHzと解釈すべき。 当時メモリが8KBで、CPUの動作周波数が8MHzならチグハグ過ぎるでしょう。 それとも知っていながら話を広げるために意図的にチグハグを書いたとか。 >>128 > 君も話を複雑にしてくれる人だな。クロック周波数8MHzで > メモリが64KバイトPCは13万円弱で1983年には発売されてた。 機種名教えて PCエンジンの強みは、7.16MHzの高クロックだけではなく、 オールSRAMで高クロックを活かせるところにある ファミコンで同じことをやるならCPUとメインRAMだけでなくPPUとVRAMも高速化しないとね ROMやMMCの方も8MHz対応だ。こりゃたいへん >>131 前提が「昔のPC板」なので、パソコンと言う視点から「FM-7」が条件を満す。 >>132 「PCエンジンは要らなかった」と言うレスは、「PCエンジン」の自慢で煽りだったのか? 煽りなら目的が明確になるように少し工夫が必要。ゲーム機としては同じ価格帯で後発なので 機能が上回ることは当然だけど、ユーザーがプログラミングできるPCとしては五十歩百歩かと。 少しだけしかできないファミコンと全然できないPCエンジンと言う意味で。 FM-7を8MHzと言っていいものか… 供給クロックとCPU動作クロックが違うCPUは表現に悩むな ROMやRAMの周辺も8MHzで動いてるわけじゃないしな 127です。 ちょっとずれたネタですがスレが活性化してよいですね。 >> せめてファミコンのメインメモリが8KBあって、クロックが8MHzだったら。 >> PCエンジン要らんかったなw 125で8MHzだったらと書いてるけど、ファミコンはCPUに入れてるクロックは 21MHz(12分周して使ってるのかな)だからファミコンが4倍速ぐらい速ければ と言ってるようにとるのが自然なのでは? あと68系8ビットとf80系8ビットで68系2MHzと80系4MHzがメモリアクセス速度が 同じくらいというのも考えて、80系で16MHzで使えるメモリと考えると あの時点だとかなり高くつくし、グラフィック回りも全部ハイスペックなものに しないといけないから高くつくと考えました。 >>136 ご指摘は理解します。1983年の時点で、「7.16MHz」で動作する「6502互換CPU」はなく 「7.16MHz」で動作する「6502互換CPU」(Hu6270の完成)は1985年末と言うことです。 そもそもハドソンがファミコンのソフトを開発した背景で「6502」に慣れていって結果、 「PCエンジン」が登場した経緯があるのにファミコンの発売時に「PCエンジン(1987年発売)」 並みの(仕様の)ゲーム機が存在すればとか、背景を知りながら無茶苦茶な前提を言ってる訳で。 >>133 > 少しだけしかできないファミコンと全然できないPCエンジンと言う意味で。 ユーザーがプログラミングできることを言っているなら、PC エンジンには「でべろ」がありましたな。 本体のほかに PC が必要だったけど。 >>138 どちらも、とりわけPCエンジンはクロス開発でアプリを作っていてので ゲーム機本体では、少し作成できる、全然できないと言う趣旨です。 もちろん、ファミコンは純正オプションの「ファミリーベーシック」が必要です。 「でべろ」の存在は1996年の「ゲームラボ」4月号で知りました。 接続端子がプリンター端子接続用とRS232端子接続用がありますが 「PCエンジン」とは、どちらの端子に接続するのか判りますか? >>139 開発環境は PC98 か MSX を選択できて、PC98 は RS232、標準でシリアル通信がない MSX は プリンタポートとジョイスティック入力に別けて接続じゃなかったかな。 PC エンジンとはパッド入力につなぐで接続あってそれで接続してたような。 買ってはみたけど、そこまで PC エンジンのプログラムを覚えようというモチベーションがなかった。 >>140 レス、どうもです。 MSXではプリンタポートが出力でジョイスティックが入力と判りました。 PCエンジンの次世代機と言われた「PC-FXGA」の初版には開発環境があったようですが 無くてもGNUを利用し開発環境を構築できるとありましたが失敗しました。内容は下です。 ttp://hp.vector.co.jp/authors/VA007898/pcfxga/ それにしても2019/01/01から2020/12/25までのレス数が10個とは過疎り過ぎ。 開発環境は最強の割れツールと言うのは>>79 氏が指摘する通りだけど、今更 ファミコンで不正コピーとか意味ないでしょ。ハドオフでソフトは100円均一。 それよりは板的にファミベで作成したソフトが動作するとか6502のソフトが 動作するとかの話題が面白い。↓とかは、どのような感じでしょうか。 「ファミコンで始める ~ 6502マシン語ゲームプログラミング」 ttps://github.com/suzukiplan/mgp-fc ファミコンのディスクシステムからデータを抜いてWinに転送したり、 Winからディスクシステムに書き込みする自作ツールに目処が立って ファミリーベーシックをディスクシステム上で動作させたいと考えていますが 下の「エミュ」はWin上でテキストから中間言語に変換する機能がありましたか。 ttp://takeda-toshiya.my.coocan.jp/familybasic/index.html 中間言語に変換する機能があればキーボードでテキストを作成して インタープリタと中間言語をディスクシステムに書いて実機(互換機)で ベーシックを動作させることを目指しています。フリーエリアも広がりますし。 そこまで作る能力があれば中間言語変換なんて簡単にできそうだが・・・ >>145 詳しくは書きませんでしたけど、一から全てを自分で制作した訳ではありません。 自分でも制作した部分はありますが結構な時間がかかりました。動かなくなった ディスクシステムのメンテナンスから始まり、やっと目処が立ったと言う所です。 能力が高くない割に目標だけは高いので利用可能な部分は流用させて頂く方針です。 >>146 リンクのエミュを試してみましたが、テキストを直接中間言語にするわけではないようです コピーしたテキストをエミュ上で打ち込んでくれる機能ですね 他のエミュでも同等の機能があったものが存在した記憶・・・ただ不明瞭 >>147 動作報告ありがとうございます。中間言語への変換機能はなく BASICテキストをそのまま解釈してる可能性もあると考え質問しました。 6502エミュレータにファミリーBASICファームを組み込み、 「テキスト → 中間言語」ルーチンのコールを検討します。 レガシー・コード活用プロジェクト 6502エミュレータ ttps://www.vector.co.jp/soft/winnt/util/se519921.html ふと思ったがディスクに読み書きするだけならすでにあるような 部分的ではなく全体になるけども ファミコンのディスクシステムでは、途中の一部だけを読み込むことは可能ですが 途中の一部だけを書き変えることは不可能です。なので既にあるツールでは一部だけ 変える目的でも全部を上書きすることにより実現してます。また抜いたデータをPCに 転送するツールも既にありました。しかし「ディスクイメージをディスクに書き込む」 となると「ほとんど成功したという事を聞いたことがありません」と報告されています。 ttps://bakutendo.net/blog-entry-95.html 自分も成功したと言うより「目処が立った」と、この辺りは曖昧にしてます。と言うのは 「ディスクシステムに読み書き」するツール(動作確認済み)と「データをPC間で転送」 するツール(動作確認済み)とを組み合わせて動作してる程度です。実は取り敢えず 組み合わせて制作したソフトで期待した結果になっていません。この辺り、現在は詳細に 原因を究明してませんので、詮索せず宜しくお願いします。試してないことがあるので、 試行錯誤を予定してます。ファミコンのディスクシステムで何点かの機能を追加したい 構想はありますが全部は無理かも知れません。 ディスクシステムファミリーベーシックなら、バックアップ活用テクニックでやってるが、 それを御存じなのかどうなのか…まあ自力で作りたいというなら >>151 >まあ自力で作りたいというなら その思いはないです。存在するツールは使う主義です。前スレでも話題になっていたので 知ってはいますがリアルタイムではスレにいませんでした。今なら@はwindowsで取り込み Aはwindowsからキーボード入力Bは手元にあるツールでwindowsから転送しQDメディアに 書き込みことを予定してます。ただし実機のファミコンでコーディングするのではなくて、 「windowsで中間言語に変換したコード」とベーシックの実行部分をメディアに書き込み ことによりディスクから自動起動することを目論でいます。尚、Aはバッ活の年度、号数、 ページが判れば国会図書館のコピーサービスを予定してます。 165 :157:2006/03/23(木) 22:39:36 >>164 三十路の私が中学か高校の頃に出た、相当古いバッ活ですw 10〜19ぐらいだったような…ちょっと記憶が曖昧です。 ・作成方法 @ ファミベから、ファミベのROMデータをテープに出力するBASICプログラムを実行。 テープに”ピーガガガー”とえんえん30分ぐらい録音する。 A トンカチエディターを使い、@で作成したテープを読み込むプログラム(アセンブラ)を入力して、 ディスクに保存。(>>162 さんの部分です) B Aで作成したディスクを起動し、@で作成したテープをロードする。 読み込み終わると画面が変わり、ディスクベーシックを書き込むディスクを挿入。 ディスクベーシックが書き込まれて完成! 号数不明か… なら、ファミコン改造マニュアルVol3には載ってる。これが最終版だと思うけど間違いがある バックアップ活用テクニック8号160ページにある「ディスクシステムで実行しかもフリーエリアが8Kバイトに」って記事かね >>155 情報提供ありがとうございます。 多分>>153 氏が紹介したくれた内容と同じだと思います。 >>157 fdsstickで読み書き可能は知ってますが一部だけの書き換えは可能ですか? そもそもfdsstick使った時点でディスクは無くても・・・ではある >>159 そうだと思いました。全体のバックアップ機能も当然として、ゲームなり、 ファミベの中間コードに的を絞った、一部だけの書き換え機能も考えてます。 具体的にはRPG等でシナリオの差し替え、ファミベの中間コードを差し替えて ファミベ用ゲーム自体の改変等。尚、自分自身はゲーム製作でなくゲームを 改変する時のユーティリティの製作と考えてます。新作だと大変ですけど 自分でもキャラ変更やゲームの流れを変更できたら、まだ少しは遊べるかと。 >>161 の補足(スレの大半の方には釈迦に説法ですし、一部>>150 の繰り返しかなと) 一部だけの書き換え機能と言っても簡単な例として「A」、「B」と言うファイルが 順に並んでいた時、「A」を書き変えた時に「B」は上書きは必要です。更に「B」 以降にあるファイルの上書きも必要になります。周知のようにファミコンの ディスクシステムにはFDにあるセクタに該当するものはなく、フォーマットは 決まっていますが固定長でないファイルもあります。詳しくは下を参考にして下さい。 ttp://www43.tok2.com/home/cmpslv/Famic/Famdis.htm 実はディスクシステムはセーブする時、前半の途中にあるブロック数データを書き換えている。 >>163 >ディスクシステムはセーブする時、前半の途中にあるブロック数データを書き換えている。 初耳です。 1)ゲーム用のデータをセーブする時でしょうか? 2)「前半の途中にある」とは非常に曖昧ですが、先頭から何Kバイト辺りですか? 3)何故、書き換えるのでしょうか? ブロック数が変わらなければ書き換える必要はないかと。 >>164 ゲームタイトルにて途中経過をセーブする時、 >>162 のリンク先のディスクフォーマットの所の、ブロックコード$02(ファイル数が記されている) が書き換えられる。 セーブする時2回ディスクアクセスするけど、 1回目のセーブ動作の時セーブデータ本体を入れないファイル数が記録される。 理由は知らない >>165 その仕様のゲームがあったか否かは知らないけど途中ファイルの内容を変えると 以降のファイルの内容は同じとは限らない(読めなくなる可能性もあり)と言うのが ディスクシステムの仕様と考えてる。ブロックコード$02もフォーマットを合わせるための、 お飾りで、ここの数値(ファイル数)と実際のファイル数を違えたプロテクトも存在した。 途中経過をセーブする領域は、最初から最後尾にダミー(データ)で持って置けば良いし。 例えば新品か使用品かを識別するため等で、ゲームが読めなくなるリスクがあるのに、 ブロックコード$02を書き換える動機があったのかなと思う。書き換えを全否定はしないけど。 できれば、>>163 の内容が全般的に通じることか、一部のゲームだけなのかソースがあれば助かります。 ファミコンなら当時の最強ゲーム機だけど 今更ファミリーベーシックを活用するとして何に使うのか 率直に言って実用性はないと思うけど、少ないリソースで工夫をする 頭の体操にはなるかな。 久々に使ったら、スムーズに使えなくなった ctr+dとか忘れてたぜ ファミリーベーシックって、なんでCALL命令実装してくれたのかな あれのおかげでめっちゃ解析されたとは思うけど、同時に無数の技術者を輩出できたと思う ライセンスしてないハッカー系のソフトが生まれやすくなったり、実害はあるよ ファミコンはカセットに色々と入れたからハックされても実害無かったから ROMコピー商売が日経新聞に載ってた時代だがコピー廃れたくらいだし カセットに色々入れたりしなくなったゲームボーイからだな なんでコピーの話になるんだよどこにもコピーなんて書いてない ハッカー系での実害ってコピー以外何だ? ネットも無いから情報解析しても拡散される前に攻略されるし >>176 開発担当のハドソンが勝手に仕込んだという話もある 結果的にあの環境でゲーム作成を続けてたゲームフリークみたいな集団が ファミコンゲームの開発に入れたのでメリットはあったが 反面無許可のエロゲーとかを勝手に販売する連中が出てきてその対応に追われたのがデメリットだったな そう、非ライセンス品のソフトウェアの進出を許す一因だったのではないかと思ってる ちなみにファミリーBASICはトリッキーなプログラム量の圧縮が行われていて、 まじめにディスアセンブルすると何ヶ所かアドレスの衝突が起きる >>178 実害なんて何一つ無かっただろ。 そもそも、それだってファミリーベーシックのせいじゃないし、適当なこと言いすぎ。 >>183 全く関係がない。 そもそもファミコンはファミリーベーシックが発売される前に完全解析されてるから。 ナムコが何の資料も貰わず勝手にギャラクシアンとゼビウス作ったのなんて有名な話だろ。 ファミリーベーシックで解析ガーなんてわめいてるのはロクに技術もないド素人の妄想でしかない。 後にポケモンを生み出すゲームフリークの連中がファミリーベーシックで解析したと言ってるんだがw 実際、ハッカーインターナショナル辺りの奴らはファミリーベーシックで解析したし ディスクシステムと組み合わせてコピーツールやら改造ツールを売り始めたからな ディスアセンブルだけではなくて、解析結果が正しく動作することをプログラミングによって確認できたファミリーベーシックは、解析能力が高くない会社にもファミコンのハードウェア仕様が漏れる原因にはなっていると思う。 >>186 ハッカーインターナショナルあたりの奴らがファミリーベーシックで解析したなんてソースどこにもないし、ハッカー誌でのインタービュー記事でもそんな話出てなかったけど? 妄想で適当書くの止めたら?ほんとお前らみたいな奴らってデマしか書かないよな。 あと、ゲームフリークがゲーム作ったのなんてバッ活に解析結果記事が掲載された後だろ。 ファミリーベーシックでやったなんてのは機能の検証程度の話。解析なんてレベルじゃねえわ。 >>187 そもそも市販ゲームを作る為はROMで動くコードを作れないといけないんだから、ファミリーベーシックで解析ガーなんて低次元こと言ってる奴らに作れるわけないんだけど。 5chでイキってる無名のバカより桜井の方を信用するよw >>188 ディスクシステムの中身はクイックディスクそのものだったから ROMで動くコードとか必要ない どっちが低次元やらw ここで意見の異なる人を不必要に叩いている人は当事者だったの? それにしたって一方的に断言できる立場なんか存在するわけないだろ >>187 >解析能力が高くない会社にもファミコンのハードウェア仕様が漏れる原因 解析能力が高くない会社(者)にファミコンのハードウェア仕様の解析は難しい また、6502と判ってるなら解析用ソフトは扱い難い6502コードにする必要はない 尚、満足なソフトやハードを持ってなくても「バッ活」あたりの知識から 根性・能力・時間はあったのでソフトを6502コードで作成した者はいるようだ >>190 >ROMで動くコードとか必要ない その指摘は正しいが、ディスクシステムの解析をした者はROMの解析もしてる youtubeにCommodore 64 BasicをNES(MMC5)に移植した動画があったな NES 64: Commodore 64 KERNAL + BASIC port Post by calcwatch » Tue Feb 15, 2022 7:43 am Hi everyone, I'm new to these forums, but I've been messing around with 6502 assembly for decades... A few years ago, I got the crazy idea to try porting the Commodore 64 KERNAL and BASIC ROMs to the NES, since their CPUs are mostly the same. But I gave up when things got complicated with the PPU. Then a couple weeks ago, I saw that someone ported it to the Atari 1200XL, so I decided I'd give it another shot. This time, I was able to make a (mostly) working system. :) Here are some videos of it in action: Booting up, running BASIC, and showing tab stop and scrolling support: https://www.youtube.com/watch?v=G2APi8KVKGc Running a benchmark maze generator program: https://www.youtube.com/watch?v=ETx8FjbXT_0 Running a benchmark that calls a machine language subroutine: https://www.youtube.com/watch?v=CrPb3mq1qwM Writing to the APU to play a C major scale: https://www.youtube.com/watch?v=KKzs_-WQxlI I can't test it on hardware, but it seems fine in emulation. Since it requires Family BASIC keyboard support, I think I'm limited to just FCEUX and BizHawk, though I can't get BizHawk's keyboard support working at all. FCEUX 2.6.2 seems a bit buggy too, so I had to write some workarounds for it. キーボードとファミリーベーシックだけでファミコン本体がない状態で20年以上 ジャンク扱いのファミコン本体買ってキーボード繋いでやってみたが バッテリー交換直後はバックアップSWをOFFにしないと画面が進まないとか メモリーバックアップで保存するときはSYSTEMコマンドでメニューに戻ってから終了しないとだめとか すっかり使い方忘れてた バッテリーバックアップしても、 消えやすいからな、あまり使わなかった 飽くまでカセット側のバッテリーバックアップは入力途中のプログラムの一時保存の為の物で 完成プログラムの保存はデータレコーダー若しくは1200ボー対応のモノラルラジカセで対応しろというスタンスだったからな あとフォーマットの仕様の都合だろうけどBGグラフィック面のセーブ時間にちょっと面喰らう BG画面を別にセーブって、もろぴゅう太のパクリだよなと思った当時 ゲームパソコンのパイオニア、ぴゅう太があればこそファミべもPV−2000もあったんだよな、系統的には SC−3000やMSXの元祖はm5かもしれんが ぴゅう太は、結果的には真似されてないけどな。 本体とキーボードは別売にされたし、CPUは8ビットだし、グラフィック仕様も全然違うし、日本語BASICじゃないし。 ハード的にもソフト的にも反面教師にされましたというのなら分かる。 元々ファミコンは1981年暮から開発検討が始まってるから、ぴゅう太の出現(1982年8月)に触発されてファミコンが開発されたわけでもない。 ファミリーベーシックはハドソン製なのでファミコンの開発とは全くの無関係 ハドソンにファミコンの開発機が来たのは1983年なので、 ぴゅう太を参考にしたのはありえる話 ファミリーベーシックのBGのセーブは、VRAMにある内容を256バイトずつ4回に分けて処理しないといけないので長くかかる。 ファミリーベーシックのインタプリタの開発はハドソンだが、そもそもファミコンにパソコン的な機能を用意するのか、用意するとすればどんな形態でリリースするのかを考えたのは任天堂だから、ファミコンとファミリーベーシックの開発は当然関係がある。 拡張端子一つをとっても、そこにキーボードを繋ぐ前提で設計しなければならないのだから。 ロードの「ピー」部分は省略出来る。 なにかのファミべプログラム雑誌のテープの録音がピー部分が短くカットされていた 先に出たのがぴゅう太である以上、ぴゅう太のパクリと言われてもしゃーない そのぴゅう太もハードウェアは海外PCのパクリなんだけどね ぴゅう太はBASICの中間コードまで一致してるくらいそのものなので、丸ごとTIから権利を買い取ってるのでは 自作部分は今の話題なキャラ編集部分くらいだろう ハドソン伝説ゼロを読んでいると、MOVE命令はATARI800(?)のBASICを参考にしたとは書いてある。 それ以外は開発期間の短さから言って、他所のBASICをパクっている余裕は少なかったのでは。 V3のメモリマップをネット上で探したが意外にも見つからない >>214 &h6000以後が違うだけ RAMの開始アドレスがV1系は&h7000からだがV3は&h6000から read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる