2040年01月01日

目次

 元々はPC-6001をFPGAで実現しよう、のページだったのですが、P6のハード/ソフト関連全般を扱っています。

 当ブログ内の解析記事、製作記事、改造記事などに関しては、素人によるものです。記事が誤っている可能性もありますので、使用する際には使用する方の責任でお願いします(当方では責任を持ちません)。


 PC-6001F(FPGA版P6)関連
 Ver.0235-0053
 Ver.0234-0052

 RGBコンバータ関連
 RGBコンバータ(10)(リリース)
 RGBコンバータ(11)(リリース)
 RGBコンバータ(1版の注意事項)

 SD6031/SD6031WIF/SD6031Air関連
 SD6031Air用ファーム変更(3)
 イメージファイル選択プログラムver2.0
 マルチディスク対応
 マルチディスク対応追記
 SD6031コマンド一覧

 88→P6変換ソフト関連
 上海
 ハイドライド3
 ウィザードリィ1/2/3 / ウィザードリィ4 / ウィザードリィ5
 PALADIN
 MELT DOWN / MELT DOWN(PC-6001mk2/PC-6601用)
 魔法使いの妹子 / 魔法使いの妹子U
 ザナドゥ / ザナドゥユーザデータコピー
 ファンタジー / ファンタジー2 / ファンタジー3
 マイトアンドマジック
 イシターの復活
 ポッキー
 リトルバンパイア / イントルーダー / ランス / D.P.S. / あぶない天狗伝説
 OLION80
 ログイン版ドラゴンスレイヤー
 表参道アドベンチャー

 P6ソフト関連
 CARRYGAME改造
 CARRYGAME でばぐ
 OLION 2トリガ化
 QUEST ディスク起動
 66用ロードランナーの外付けドライブ起動
 66用コロニーオデッセイをmk2などで動かす
 XOR でばぐ
 HEARTMONS でばぐ
 アステロイドチューブ でばぐ
 南青山アドベンチャー カラー化

 その他の記事は、カテゴリーから検索して下さい。

posted by えすび at 00:00| Comment(0) | カテゴリ無し | このブログの読者になる | 更新情報をチェックする

2018年10月16日

開発途中案件(2)

  その5のプログラムですが、たなむさんのブログで紹介されていた Colossal Cave Adventure をいうゲームです。

https://tms9918.hatenablog.com/entry/2012/10/15/034427


  日本語パッチ版を作られている方がいて、それを利用させて頂こうと思っています。

http://ver0.sakura.ne.jp/pc/index.html#advent


  とりあえず、元の英語版を、SDCCでコンパイルして、P6上で動作するようにはなりました。
  思ったより、SDCC がすんなり動きました(手間が多いですが)。

  このままでも十分遊べるんですが、入力した文字が消せないとか、セーブできないなどの問題があります。
 (それ以前に英語ですが)


  元のソースを余り理解していないのですが、うまく行けば英語版は拡張メモリなし、日本語版は、64K拡張だけで済みそうです。

  うまく行かなければ、英語版:64K拡張、日本語版128K拡張(戦士カートリッジmk2)が必要になりそうです。

posted by えすび at 00:06| Comment(0) | カテゴリ無し | このブログの読者になる | 更新情報をチェックする

2018年06月30日

動作速度算出(3)

  P6月間特別企画(その30)

  処理時間を求める、の続きです。


 4.実際に処理時間を求めてみる

  まず各命令のサイクル数を横に書いてみます。

180630_01_TESTasm1.png


  ループ/分岐/サブルーチンコールがあるので、それを考慮してサイクル数を算出します。


 ・10〜24行目まで、DJNZでループするので、96回繰り返しになる。
  CALL先以外の合計サイクル数 = 132
  → 132x96 = 12672

 ・25行目のDJNZは、95回ジャンプ、1回スルー
  → 14x95+9 = 1339

 ・34行目のLDIRは、31回ジャンプ、1回スルー
  → 23x31+18 = 731

 ・37行目のLDIRは、6111回ジャンプ、1回スルー
  → 23x6111+18 = 140571

 ・42行目のLDIRは、31回ジャンプ、1回スルー
  → 23x31+18 = 731

 ・31行から44行までのサイクル数の合計
  → 142122

 ・1行目〜27行目までのサイクル数の合計
  → 13+12672+1339+16+142122*96*2 = 27301464


  MODE2なので、平均クロックは 1.96MHz

  処理時間は、27301464 * 1 / 1.96MHz = 13.929s


  128x192のSCREEN3の画面を1ドットずつスクロールさせるだけなんですが、1画面分スクロールするのに大体14秒かかります。

  サイクル数の計算は結構面倒なのですが、大抵は繰り返し数が多い所だけの概算で事足ります。



  ちょっと遅いので、速くなる工夫をしてみます。

  38行の LDIR の部分が少ないサイクル数で動かすと速くなるので、こんな感じ↓に変更してみます。
 (CPY_LDIRの中身のみを変更)

180630_01_TESTasm2.png


  LDIR → LDI×32 に展開しています。
  この変更で、通常は1バイト当たり、23クロック掛かっていたのが、18 + 0.34 クロックで済みます。
  LDIの個数を多くすると、+0.34クロックの部分を減らす事が出来ます。


  二つのプログラムを連続するものを作りました↓
  目に見えて速度が違うと思います。

test2p6.zip


  mk2以降で test2_p6.d88 をセットして起動させて下さい。
  画像データは、前回と同じ、Hashiさんの所のデータを使用させて頂きました。感謝です>Hashiさん


  さらに速度を上げるには...いろいろ考えましたが、まだ出来そうですが........

  続きます(^^;)


posted by えすび at 21:00| Comment(0) | カテゴリ無し | このブログの読者になる | 更新情報をチェックする