■履歴■ ------------------------------------------------------------------------------ [Release 6b38] Ver. 6.b.78 2013.08.09 ------------------------------------------------------------------------------ ・コンソール出力 抑制 ・88FR/MR 修正 ・SPEEDスイッチ有無がおかしくなっていたので修正した ------------------------------------------------------------------------------ [Release 6b37] Ver. 6.b.77 2013.08.07 ------------------------------------------------------------------------------ ・全般 ・漢字ROMのアクセスに「おまじない」が必要な「旧タイプ」を復活させた 80系すべて, 88系は88SR/TR世代までの機種で「第一水準」をアクセスする際に 「おなじない」が必要になります 機種とソフトの組み合わせによっては漢字が豆腐になる現象が再発しますので、 ご注意ください 88SR の ROM を 88FR/MR に載せても問題なさそうなので、 細かな点に煩わされたくない方は cfg で「後期モデル」を指定してください ・80SR ・画面更新ミスを修正した R6b33 でエンバグしていました ・8801系全般 ・メニューを調整した 専用のメニューがある項目は「ディップスイッチ等」の一覧から除外した ・88V2(4MHz)機 ・RAM の初期パターンを変更した (微妙な部分は暫定です) パターン採集はくれゆにさん作成のツールを使用させていただきました http://www7b.biglobe.ne.jp/~crazyunit/pc88.html kitahei88 さんには 88SR実機の詳細な調査をしていただきました http://kitahei88.dtiblog.com/ ありがとうございました ※今までのバージョンで動いていたソフトが動作しなくなることがあります j80 の機種設定を「8MHz機」とすることで、回避できるかもしれません ・「88V2 4MHz機」を「前期モデル」と「後期モデル」に分けた j80cfg:ENHANCE で指定してください ・ENHANCE 0 : 前期モデル (PC-8801mkIISR/TR) ・漢字ROMのアクセスに「おまじない」が必要 ・ENHANCE 1 : 後期モデル (PC-8801mkIIFR/MR) ・漢字ROMのアクセスに「おまじない」が不要 ・88V2(8MHz)機 ・速度調整 今回は積極的な調整ではありません 試行錯誤していて、本番用に戻し忘れていたパラメータの修正です ------------------------------------------------------------------------------ [Release 6b36] Ver. 6.b.76 2013.07.31 ------------------------------------------------------------------------------ ・88(V2機) 動作速度調整&ロジック変更 前回までに引き続き、くれゆにさんにご協力いただきました。 ありがとうございました。 ・8MHz 動作時の WAIT を一部修正した ・88系 GVRAM まわりのコストを調整した ・NormalSPD系モードでは 高速TextVRAM を選択できないようにした ・NormalSPD/HiSPEED変更時、TextVRAMの参照(ポインタ)を切り替える際に データを引っ越す処理を復活させた ・RAMの初期パターンを調整した (お手数をおかけしました) ・80mkII ・RAMの初期パターン(前半32K)を調整した (悩み中) ・80SR ・RAMの初期パターン(前半32K)を調整した ・8801/mkII ・RAMの初期パターン(前半32K)を調整した (暫定的に80mkIIと同じとしています) ・ディスクアクセスの時間コスト調整方法を変更した 1. 最初のセクタを見つけるのにかかる時間(%)   ディスク一回転に要する時間に対する割合で指定します   ディスクの回転はシミュレートしていないので「平均的な時間」を設定します  「シルフィード」のような特殊なアクセスは想定していません   連続するセクタの最初の1byteの待ち時間は内部で決定しており変更できません 2. ディスクアクセス(Read/Write)中にCPUが作業している時間(state)   CPUがFDCからデータを受け取ったりする時間です   アクセス時間 = HALTしていた時間 + 解除後に作業してHALTするまでの時間   Read/Write で作業時間が異なるかもしれませんが、区別して設定できません ------------------------------------------------------------------------------ [Release 6b35] Ver. 6.b.67 2013.06.29 ------------------------------------------------------------------------------ ・88系「メモリウェイト」のロジックおよびパラメータを変更した(主に8MHz動作時) 前回までに引き続き、くれゆにさんにご協力いただきました。 ありがとうございました。 ・88/V2モードの GVRAM まわりのコストを調整した ・コードを整理した ------------------------------------------------------------------------------ [Release 6b34] Ver. 6.b.64 2013.06.22 ------------------------------------------------------------------------------ ・88系「メモリウェイト」のロジックおよびパラメータを変更した 「Crazy Unit」のベンチマークを参考にさせていただきました。 http://www7b.biglobe.ne.jp/~crazyunit/pc88.html また、追加調査にもご協力いただきました。 ありがとうございました。 ・88/V1(S)系の GVRAM まわりのコストを調整した (前回よりさらに遅くしました) ・88@8MHz動作時の GVRAM まわりのコストを調整した ・CRTCの出力条件を調整した ・リズム音源の初期化バグ(RTL)修正 ------------------------------------------------------------------------------ [Release 6b33] Ver. 6.b.63 2013.06.15 ------------------------------------------------------------------------------ ・cfg:OPTION -test1[=[n]] -test2[=[n]] を廃止した cfg:DRIVE の 第2,3 パラメータに引っ越しました。 この項目はまだ固まっていませんので、今後変更する可能性があります。 有効/無効の切り替えは cfg:OPTION -fddwait です。 ・ディスクドライブの速度(デフォルト値)を調整した R6b32 で「125,125」とか言ってましたが無視してください。 2つめのパラメータの処理を変更したので、R6b32 で調整した値は使えません。 特に皆さんからの反応がなかったので、根っ子から変えてしまいました。 ・ハイレゾの垂直同期周波数を微調整した 「Crazy Unit」のベンチマークを参考にさせていただきました。 http://www7b.biglobe.ne.jp/~crazyunit/pc88.html ありがとうございました。 ・8801(V1モード)のGVRAMまわりのコストを調整した ロジックは 80mkII と同じままです。 パラメータのみ調整してみました。 ・8801(V2モード)のGVRAMまわりのコストを調整した 以前変更したつもり(開発日記に記載あり)でしたが、変わっていませんでした。 4MHzの場合のみ少し遅くなります。 ・-smooth パッチの制御パラメータを選べるようにした 10msecでは負荷の変動が極端に大きくなる(暴れる)タイトルがあり、 気になったので、cfgで設定できるようにしました。 システム時計が狂わない環境では、cfg:SMOOTH = 2, cfg:SILENT = 1 で、R6b31 までと同じになります。 ※/config の cfg ファイルでは当方の都合に合わせ「2,1」に変更しています。 ・V2モードでデジタルパレット設定時に背景色を更新するようにした ・V2機の画面出力停止条件緩和 ・リファクタリング いろいろ ------------------------------------------------------------------------------ [Release 6b32] Ver. 6.b.60 2013.03.03 ------------------------------------------------------------------------------ ・「システム時計が進んでしまう」件の対策をおこなった ・-smooth の制御を大雑把にした ・「サウンド無効」の速度制御を大雑把にした システム時計の問題が出ていない環境でも新しい実装を使います 何かあったらメールしてください (テストにお付き合い戴くことになりますが...) [MEMO] ・Win32API の問題のようです (http://support.microsoft.com/?id=821893) ・今回の修正は場当たり的なものです ・システム時計の問題を完全に解決できたか確認できていません ・副作用についても確認が不十分です ・ライトペンの初期状態を「無効」に変更した cfg:OPTION -pen を追加した ライトペンが無効の場合は、画面上でマウスポインタが表示されません ボーダー部分ではライトペンを無視しています(常に標準カーソルが表示されます) ・ディスクアクセスのロジックを変更した エラーのある「DTL=0」のセクタは、Nで決まるサイズを使うことにした ・D88イメージの簡単なチェックを追加した 無理に開こうとして落ちることが少なくなりました 誤爆して開けないイメージがあったら連絡してください ・「オーバードライブ」に x1/2, x1/4, x1/8 を追加した ・「サウンド無効」で立ち上がらなくなっていたのを復旧した ・cfg:OPTION -test1[=[n]] -test2[=[n]] を追加した テスト用の汎用エントリです ・R6b32では、ディスクアクセスを実機並みに重くするテストに使っています  動作タイミングのズレが気になる場合に設定してみてください  「88FR DEMO」で、-test1=125 -test2=125 ぐらいかな?と思いましたが  どうでしょうか? (2HDドライブだとこれより速い?)  なんとなく傾向は把握できているのですが、「システム時計」の問題を早くFIX  したいので本実装を待たずに公開します  タイトルやシーン毎にチェックして、良い値を見つけたら教えてください  本実装では、メニューに Latency有無のチェックボックスのみ(パラメータなし)  で対応したいと考えています ------------------------------------------------------------------------------ [Release 6b31] Ver. 6.b.57 2012.12.23 ------------------------------------------------------------------------------ ・「システム時計が進んでしまう」という情報が寄せられています  当方の環境では再現しないようなので、広く情報提供をお願いしたいと思います  問題ない場合も報告をいただけると助かります  連絡先:hal_8999@hotmail.com ■実行環境 <OS> <Javaのバージョンはコンソール出力冒頭をコピペしてください> 例:java.version : 1.6.0_37 java.vendor : Sun Microsystems Inc. java.vm.name : Java HotSpot(TM) Client VM java.vm.version : 20.12-b01 java.vm.vendor : Sun Microsystems Inc. <特記事項があれば追記してください> ・java 起動時のオプション指定など ・j80の「スムースパッチ」設定 cfg:-smooth=[n] メニュー:[System]→[Smoth Patch]→[Level] ■状況 <システム時計異常: 有・無 > <異常がある場合は状況を教えてください> ・1分間にズレる秒数 / 負荷の違いで変化する? / 際限なく拡大する? など ・「スムースパッチ」の設定を変えて状況が変わる? ・Sound ・OPN/A EG全体を遅くしてみた ・OPN/A アタックのみさらに遅くしてみた ------------------------------------------------------------------------------ [Release 6b30] Ver. 6.b.56 2012.10.27 ------------------------------------------------------------------------------ ・j80.cmd ・コマンド名に一貫性が無くなって久しいので調整した ※詳細は最後にまとめました ・j80.cfg ・追加・変更があります ※詳細は最後にまとめました ・Keyboard ・CTRL, GRPH もロックできるように拡張した Android版にあわせましたた 将来、java版にも仮想キーボードを実装するときに役に立つはず ・バッファモード動作タイミングの指定単位を msec から cpm に変更した ・APIが1024以上の値を返すキーも使えるようにしてみた Java版のキーコードを前提 (Android版では 現在1024以上なし?) キーコードにパッチを当て、現状の空きコードに再マッピングしています 将来問題が発生する可能性があります j80 のキーマップ等に用いるコードはデバッグモードで確認してください ・リセット(パッチ)のバグを修正した バッファモードで動作中(ファイル入力中など)にpauseするとバッファがクリア されてしまう (Ver. 6.b.45 での修正が不十分だった) Android版での「キーのリリース漏れ」がほぼ解消したのでパッチを除去しました ・タッチパネル機能 ・マップの定義方法を変更した 今までの定義ファイルは使えなくなりました ・ガイド画像をオーバーレイ表示できるようにした 現状ではユーザーによる pause 中のみガイド画像を表示します ・推奨タッチパネルなしの時、下記操作で落ちるバグを修正した タッチパネル指定 → タッチパネル解除 → クイックマウント → F6 推奨タッチパネル指定時の挙動が読みにくい点も考慮しロジックを変更しました →「F6」(タッチパネル設定なし)時、ユーザー設定マップを再マウントしない ・CRTC全般 ・Android版でもそのまま使えるように調整した Android版でパフォーマンスを稼ぎたかったのでチューニングした ・「特殊制御文字」適当対応 ・CrtcV2 ・変化のないパレット指定時のバイパスを実装した 「88FRデモ」ホテルカリフォルニアのシーンが軽くなりました V2モードでは現在の表示に変化がなくても無視できない設定があるので、 # 「アナログパレット-デジタルディスプレイ用」などクロスした設定がある 常に全コードを通していました。 ・I/O ・いくつかのミラーポートを有効にした ・PCG8100(NewType) ・リセット時の動作を変更した:何もしない →「ソフトウェアSW ON」に戻す ・PCG8200,8800 ・初期状態を「ROM(L)+ROM(H)」(PCG OFF) に変更した (実機未確認) リセット時の動作を変更した:何もしない →「ROM(L)+ROM(H)」に戻す ・バンク制御ロジックを修正した ・PC8000クラス ・サウンドボード毎に音量設定を覚えておくようにした ・GUI ・+CRT:1 80,88V1系ではアナログ用ダイアログが出ないようにした(メニューからは指定不能) → デジタル(+CRT:2)に差し替えて実行するように変更した ・GUI 調整 ・その他 ・J2SE1.4以上の判定に「フルスクリーン化 可/不可」フラグの流用をやめた フルスクリーン設定NGの場合も J2SE1.3系と判定してしまう(バグ) フォーカスマネージャ と KeyListener のパッチに影響あり ・リファクタリング、調整 ・ドキュメントバグ修正 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - コンバータ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Cmt2Cmt ・CmtUtil ・BondSoft:0x3A ・特定条件のモニタフォーマットを誤認することがあったので対策した ・Bin2Cmt ・ベタイメージからの変換に対応した ・Bas2Cmt ・ベタイメージからの変換に対応した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - j80.cmd 変更内容 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Toggle動作はコマンド名に明示しない ・ダイアログを表示するコマンドは先頭に"+"をつける ・:id ・=値 ・実機スイッチ類は大文字とする ・デバイス名(種)よりコマンド名を優先する ・「コマンドパラメータ設定コマンド」はコマンド名+"."+パラメータ名 ・「パラメータ指定&実行コマンド」では「"."+パラメータ名」を省略可 ToggleMenu → Menu 「Toggle」廃止 ClearRAM → RESET.clear リセットコマンドの設定 MODE=n → MODE:i 添え字はトグルするビット位置 Clock=n → CLOCK=n 実機のスイッチ類は大文字とする +Display=n → +CRT:i n=0,1 -> i=1,2 / cfg のデバイス名に揃えた CRTtype=n → CRT=n n=0,1 -> n=1,2 / cfg のデバイス名に揃えた CRTout=n → CRT8801=n M,T,0,1,2 排他選択 (ジャンパ) FPS=n → FrameSkip=n PCG8X00 → PCG8X00 メインSW (変更なし) PCGtype → PCG8100:1 設定1 on/off PCGdipSW → PCG8100:2 設定2 on/off PCGmode → PCG8100:3 設定3 on/off Scale@=n → Scale-=n, +=n マジックナンバー「-1」回避 Mixer=n → Mixer.type=n Mixerコマンドの設定 (省略しない) Bank=n → Mixer=n Mixer設定&実行 Mixer.bank=n VolSYS:i=n → VolumeSYS:i=n Volumeコマンド+デバイス名+スロット番号 VolBUS:i=n → VolumeBUS:i=n Volumeコマンド+デバイス名+スロット番号 VolPRN:i=n → VolumePRN:i=n Volumeコマンド+デバイス名+スロット番号 ResetKey → ResetKEY Resetコマンド(≠RESET)+デバイス名 +KeyMap → +KEY cfg のデバイス名に揃えた LOCK → SHIFT トグルキー (通常キー併用) 新 GRPH トグルキー (通常キー併用) 予約 新 CTRL トグルキー (通常キー併用) 予約 Timer=n → Typer=n 自動タイプ系速度設定 Typer.cpm=n +InputFile → +TyperINP 自動タイプコマンド+仮想デバイス名 +TouchPanel → +TyperPNL 自動タイプコマンド+仮想デバイス名 TogglePNL → TyperPNL 自動タイプコマンド+仮想デバイス名 R/KANA → TyperR2K 自動タイプコマンド+仮想デバイス名 Shots=n → Blaster=n Blaster設定&ON Blaster.shots=n +Player → +CMT:1 cfg のデバイス名に揃えた ToggleCAS → CMT:1 CAS=n → CMT:1=n CMT:1.title=n FF → CMT:1+ CMT:1+=1 RW → CMT:1- CMT:1-=1 PLAY → CMT:1> PauseMode → CMT:1.pause CMTコマンドの設定 TapeSPD=n → CMT:1.baud=n CMTコマンドの設定(割り込み頻度(≒倍速化)) +Recorder → +CMT:2 cfg のデバイス名に揃えた ToggleREC → CMT:2 DelayCMT=n → Delay=n CMT:1,2 ともに影響あり OnlineFDD → FDD CheckFDD → FDD.auto FDDコマンドの設定 +Drive:i → +FDD:i cfg のデバイス名に揃えた ToggleD:i → FDD:i D88:i=n → FDD:i=n FDD:i.disk=n RemoveAll → FDD:* +Paper → +PRN cfg のデバイス名に揃えた TogglePRN → PRN MODE=n 予約 : DipSW等 全ビット一発指定 CRT8801:i 予約 : 任意のジャンパを設定可能にする? -CRT:i=filename 予約 : -KEY=filename 予約 : -TyperINP=filename 予約 : -TyperPNL=[filename] 予約 : filename を省略したら remove -CMT:1=[[filename],n] 予約 : filename を省略したら remove -CMT:2=[filename] 予約 : filename を省略したら remove -FDD:i=[[filename],n] 予約 : filename を省略したら remove - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - j80.cfg 変更内容 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・追加 SYS [[v0][,[v1][,[v2][,[v3][,[v4][,[v5]]]]]]] BUS:id [[v0][,[v1][,[v2][,[v3][,[v4]]]]]] PRN:id [[v0][,[v1][,[v2][,[v3][,[v4]]]]]] ・変更 -D88:i → -FDD:i イメージの拡張子と紛らわしいのでデバイス名に -RGB → -CRT:1 設定ファイルの拡張子と紛らわしい -512 → -CRT:2 設定ファイルの拡張子と紛らわしい -CMT → -CMT:1 -FDD,-CRT の表記にあわせた -REC → -CMT:2 -FDD,-CRT の表記にあわせた ・変更 (OPTION) -vol → 廃止 -bus:i=... → -bus=i 音量指定廃止 -prn:i=... → -prn=i 音量指定廃止 -fps=n → -skip=n ・デフォルト変更 -TMP ./ → ./temp/ -PNG ./ → ./screenshot/ -KEY ./keymap/106jp → ./keymap/106jp.key (以前の修正漏れ) ------------------------------------------------------------------------------ [Release 6b29] Ver. 6.b.48 2012.03.15 ------------------------------------------------------------------------------ ・タッチパネル,ライトペン用の座標補正(拡大時)のバグを修正した ・タッチパネル定義を連続して読み込んだ際の不具合を修正した ・removeできないマウント系メニューでも「ファイル名」を表示するようにした ・推奨キーマップの処理を変更した ・メニューに表示しない → 表示する (「* ファイル名」表記) ・キーマップの設定が無い場合:何もしない → ユーザー設定に戻す ・タッチパネルの設定が無い場合:パネルをクリアする → ユーザー設定に戻す ・キーマップ定義ファイルの推奨拡張子を決めた (.key) ・タッチパネル定義ファイルの推奨拡張子を決めた (.pnl) ・D88「ディスクの名前」を文字列化する時 "Windows-31J" を明示するようにした 経緯を考え、"Shift_JIS" ではなく "Windows-31J" としてみました 各種ユーティリティでどのような文字コードを使用しているかは調べていません テープの「ファイル名等」の処理については当面放置します ------------------------------------------------------------------------------ [Release 6b28] Ver. 6.b.47 2012.03.10 ------------------------------------------------------------------------------ ・ウィンドウ枠ドラッグで拡大率を変更するようにした (25%刻み) ・Scale@= コマンドを追加した (±25%刻み) 縮小時に余白があるときは、スケールを変えずにウィンドウサイズのみ調整します ・注意: ・メニューON/OFFでは拡大率が変化しない仕様ですが、  最大化時に上下がピッタリだった場合は拡大率が変わってしまうかもしれません ・最大化→フルスクリーン→復帰すると最大化が解除されてしまうようです  また、最大化前のサイズを忘れてしまうようです ・描画オプションは下記サイトを参考にしてください Java 2D(TM) テクノロジのシステムプロパティ http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/2d/flags.html http://fbrowser.sourceforge.jp/docs/browse/jdk-6u21/technotes/guides/2d/flags.html ------------------------------------------------------------------------------ [Release 6b27] Ver. 6.b.46 2012.03.04 ------------------------------------------------------------------------------ ・フルスクリーン時の拡大率を指定できるようにした ・cfg の SCREEN の書式を変更した 詳細は j80.cfg を参照してください ------------------------------------------------------------------------------ [Release 6b26] Ver. 6.b.45 2012.03.03 ------------------------------------------------------------------------------ ・OPN/A:F-Number 設定ロジックを変更した 無理のないロジックでちゃんとした音が鳴るようになったようです R6b25の実装が正解なのかな? ・「テキスト入力」機能を壊していたので直した Android版で「キーのリリース漏れ」が多発するので、一息つくタイミングで キーマトリクスをリセットするようにしたのですが、ファイル入力まで中止して いました ※201.03.04  ドキュメント中では「テキスト」ではなく「ファイル入力」としていましたね  同じ意味です  あやおりさんの「入力代行機能」って表現が良いので頂いてしまおうかな  http://ayaoritohno.blog38.fc2.com/blog-date-20111211.html ------------------------------------------------------------------------------ [Release 6b25] Ver. 6.b.44 2012.03.03 ------------------------------------------------------------------------------ ・ボーダー処理をフレームワーク(Swing)的に安全な実装に書き換えた ・ボーダー領域の最小保障サイズを設定できるようにした ・拡大表示に対応した (Window枠ドラッグによる変更は未実装) ・cfg に「WINDOW」(初期拡大率,ボーダー保障サイズ,ウィンドウサイズ固定) 追加 ・OPN/A:F-Number2 の設定ロジックを変えてみた F-Number2 を設定しないドライバの動作を手がかりに試行錯誤してみました 設定していないチャネルにch0の設定を与えるとうまく鳴るようでしたので 「上流チャネルの設定を反映させる」ようにしてみました →「アリオン(88SR)」(ASCII) の音痴が改善されています 他のレジスタも同様かもしれないと思いましたが実装を見送りました 現状では 0xA4~0xA6 のみのパッチとしています ------------------------------------------------------------------------------ [Release 6b24] Ver. 6.b.43 2012.02.26 ------------------------------------------------------------------------------ ・88系 バックグラウンド/ボーダーカラーのビット位置が逆だったのを修正した ・POWER OFF で開始したとき2回 RESET しないと起動しなくなっていたのを修正した Android 対応時にエンバグ ・casファイルなどの の置換処理が抜けていたので復元した 削除した理由不明 (たぶん事故) ・マウスイベントのハンドリングを変更した → Display クラスでスケーリング補正して返す 画面サイズ変更準備です ・ウィンドウサイズを変更できるようにした また、画面をセンタリングするようにした (フルスクリーン時含む) 余白部分を「ボーダー」として処理しています 簡易実装です / 走査線云々は考慮していません ライトペンのオフセットとも無関係です API側にお願いして塗り潰してもらっているのでタイミングがずれるかもしれません ボーダー部分では常に標準マウスポインタが表示されます ・WindowsXp + 最近のJava だとフルスクリーンからうまく復帰できないようです java.version java.vm.version 1.4.2_10 1.4.2_10-b13 OK 1.5.0_11 1.5.0_11-b03 OK 1.6.0 1.6.0-b105 OK 1.6.0_29 20.4-b02 *NG* (Windows7 では OK だった) 下記オプションで問題を回避できるようです -Dsun.java2d.d3d=false 使用法: java -jar -Dsun.java2d.d3d=false j80.jar 意図しない再作図によるチラツキを回避する目的で導入済みだったので、 復帰時に問題が生じるようになったことに気づきませんでした j80側で対策できるか調査してみます (期待しないでください) ------------------------------------------------------------------------------ [Release 6b23] Ver. 6.b.42 2012.02.21 ------------------------------------------------------------------------------ ・80SR「モノクロ(テキスト)+反転+OFF」時のバグを修正した ------------------------------------------------------------------------------ [Release 6b22] Ver. 6.b.41 2012.02.19 ------------------------------------------------------------------------------ ・ADPCM のクロックをFM側から独立させた ・OPN/A のプリスケーラを R6b20 に戻した ・88SR~ のディップスイッチの表記を修正した ・S ON SW1-5 -> SW1-4 ・DEL ON SW1-6 -> SW1-5 ・コマンドを変更した (調整中) ・DiskSystem -> OnlineFDD ・CheckDrive -> CheckFDD ・「モノクロ(テキスト)+反転+OFF」時の表示を修正した ------------------------------------------------------------------------------ [Release 6b21] Ver. 6.b.40 2012.02.06 ------------------------------------------------------------------------------ ・OPN/A のプリスケーラを元に戻した 「88MA/FA店頭デモ」で不具合が起きたので一旦元に戻します (ADPCMの再生速度がおかしくなった) ・ディスクが無いとき ST3 の「Two Side」ビットを立てないようにした まだ「Ready」ビットの実装など検証が不十分な点が残っています ------------------------------------------------------------------------------ [Release 6b20] Ver. 6.b.39 2012.01.28 ------------------------------------------------------------------------------ ・88(8MHz機)のシリアルキーボード「互換キーストローク」に対応した ・キーマップの定義方法に変更があります ・実際にシリアル通信をするところまでは実装していません ・キーコードの送付間隔は 1/600sec になります(実機ではデータ間が2.4mらしい) 問題が出たら 2/600sec にする予定 なお、最初のストロークは「即時」適用となりますので、 1→2ストローク間の時間精度は無保証になります ・キーコード送付タイミングはタイマー割り込みと同期しています 問題が出たら Keyboard クラスに入れるクロック精度を上げます ・実装に当たっては下記サイトを参考にさせていただきました http://www.maroon.dti.ne.jp/youkan/pc88/index.html ・NumPad[Enter], Right[Shift] に対応した (J2SE1.4~) ・NumPad[Enter], Right[Shift] はj80独自のコードが返ります (1022, 1023) キーマップの [RETURN], [SHIFT] に追加登録してください ・このコードと重なるキーは使用できなくなります 問題がある場合は連絡をお願いします ・[Shift]+NumPad の問題にパッチを当てた (J2SE1.4~) ・不完全なパッチです 従来どおり「副作用の無いキーに(も)[SHIFT]を割り当てる」を推奨します ・「化けたコードを復元 + シフトキーを復元」しますが以下の問題があります ・一瞬シフトキーがリリースされた状態になる ファンクション表示のちらつきなどで確認できる場合があります(8MHz機で顕著) ・リリースされたシフトキーの状態を完全には復元できない(左,右,左+右) → 常に [SHIFT(左シフト)] のみを入力しています ・OPN/A のプリスケーラを修正した ・終了コマンド名を Quit から Exit に変更した ------------------------------------------------------------------------------ [Release 6b19] Ver. 6.b.38 2011.12.31 ------------------------------------------------------------------------------ ・「推奨キーマップ」ロード時の不具合を修正した 「パネルなし」の設定をロードすると、次回パネルロード時に落ちてしまう 仕様変更:「推奨キーマップ」でロードしたパネル名はメニューに表示しない ------------------------------------------------------------------------------ [Release 6b18] Ver. 6.b.37 2011.12.25 ------------------------------------------------------------------------------ ・バグFIX ・ROM構成が「PC-8001」の場合でも PCG8200 が選択されていたのを修正した ------------------------------------------------------------------------------ [Release 6b17] Ver. 6.b.36 2011.12.24 ------------------------------------------------------------------------------ ・Crtc80#setDisplay() ・バグFIX ロードできなかったとき、カラーマップを自動生成する前に return していた ・フォント ・初期化できなかった部分を豆腐にする処理を復活させた ・[SHIFT LOCK] (8801A,B) 対応 ・便利なので全機種で使用できるようにした ・FM音源(タイマー割り込み) ・実装変更 PC側のマスク解除でトリガ発生 (80SR, 88OPNA機, PC-8801-11,23 も同様とした) PC側のマスクまわりのパッチを除去した ・Cmt ・メニューからタイトル単位で頭出しできるようにした ・j80.cmd ・終了コマンド名を PowerOff から Quit に変更した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・コンバータ全般 ・表記を全面的に見直し「固定ボーレート,パリティあり」の部分を明示した ・Cmt2Cmt ・CarryLab:JE6#Loader ・テンプレを変更した (Cassette.BAUD_USER → Cassette.BAUD_1200) ・CarryLab:JE6#Data ・再チェック時、0byteブロックの処理を修正した (結果は合っていた) ・再チェック時の「ゴミ」の扱いを変更した (FMT_UNKNOWN ブロックに分離) ・BondSoft:YAMETE!! ・仮FIX ・「ファイル名」表示を復活した (デコード処理追加) ・セーブデータ(ヘッダは同じ)の解析処理を追加した ・再チェック部分(汎用)を修正した (実害はなかったハズ) 前後に組み入れた「不明ブロック」の影響でメインパートのサイズが狂う → それぞれ先頭パート,最終パートのサイズに反映されるように修正した ・CmtUtil ・BondSoft:0x3A に対応した 「TIME SECRET(8801)」 ・BondSoft:YAMETE!! の判別ロジック変更&ファイル名表示を追加した ・CarryLab:JE6#Loader に対応した ・CarryLab:JE6#Data に対応した (ヘッダのみ) ------------------------------------------------------------------------------ [Release 6b16] Ver. 6.b.31 2011.10.08 ------------------------------------------------------------------------------ ・Cmt ・MOTOR OFF 時の「スキップ」処理の実装を丁寧にした ・スキップ量の制限を緩和した ・Cmt2Cmt ・BondSoft<0x3A> テンプレート追加 「TIME SECRET(8801)」 ・BondSoft 追加セクタの扱いを「最終回」限定にした (障害未確認) ------------------------------------------------------------------------------ [Release 6b15] Ver. 6.b.30 2011.10.03 ------------------------------------------------------------------------------ ・CrtcV2 ・V2modeリセット時のポートの値と内部フラグの矛盾を修正した (障害未確認) ・高速 TEXT RAM 表示時は 0xF000~0xFFFF しか見えないよう制限をかけてみた Nモードだとうまく動作しなくなるソフトが出ますが、たぶんそんな仕様です ・サウンドボード2(A8) リセット時「割り込み許可」に変更した ・DiskDrive ・D88:FDC_STATUS の CRCエラーに関する情報のみ ST1,2 に反映させるようにした ・DMA(CRTC) ・TC 設定時に Wrビットまで含めていたバグを修正した ・TC 設定時に実アドレス化していたバグ(パッチ)を除去した 80SR対応あたりで余計なパッチを当てていたようです 「リグラス(8801)」(ランダムハウス) 用の「再パッチ」が除去できました ・80系もポート0x64,0x66(IN)実装 ・CmtCmt ・CarryLab の識別精度向上 ・CarryLab の識別精度向上 ------------------------------------------------------------------------------ [Release 6b14] Ver. 6.b.28 2011.09.23 ------------------------------------------------------------------------------ ・DiskDrive ・ST1,ST2 のエラービットを間違えていたので直した ・シークエラー時に最後にチェックしたセクタの D88:FDC_STATUS が ST1 に 反映されてしまうバグを修正した ・シークエラー時に R を復元するようにしてみた ・READ(DELETED)DATA では DAM/DDAM が矛盾していても読むようにした ・AY38910 ・PortA,B のリセット処理追加 ・ついでに PortA,B 出力側対応 (利用予定なし) ・Crtc80 ・DMAの設定途中でCRTCをスタートさせているソフトに対応した ・YM2608 ・拡張側のチャンネルにアクセスする際は 0xA8~A, 0xAC~E を無視するようにした ・YM2203_Channel ・F-Number 設定ロジックを調整した (軽量化狙いの手抜きをやめた/影響ないはず) ------------------------------------------------------------------------------ [Release 6b13] Ver. 6.b.27 2011.09.20 ------------------------------------------------------------------------------ ・MemoryV2 初期パターン再調整 (実機未確認) ------------------------------------------------------------------------------ [Release 6b12] Ver. 6.b.26 2011.09.19 ------------------------------------------------------------------------------ ・DiskIF 再調整 ------------------------------------------------------------------------------ [Release 6b11] Ver. 6.b.25 2011.09.17 ------------------------------------------------------------------------------ ・AY38910 I/OポートA,B を チップ側で管理することにした ・YM2203,YM2608 FM側の READ DATA の応答を 0xFF から 0x00 に変更した ・割り込み デバッグ時に Release3.2仕様に変更したままになっていたのを戻した (R6b9,10 が Release3.2仕様) ------------------------------------------------------------------------------ [Release 6b10] Ver. 6.b.24 2011.09.10 ------------------------------------------------------------------------------ ・Memory 「88SRタイプ」のクリアパターン(仮)を用意した メモリの初期状態に依存するタイトルがあるようです。 ・OPN/A プリスケーラ設定時にレジスタをクリアしないようにした ・tapeImage キャリーラボ(キャリーソフト)の「JE6」の解析に正式対応した ------------------------------------------------------------------------------ [Release 6b9] Ver. 6.b.23 2011.08.31 ------------------------------------------------------------------------------ ・88SRのパレットまわりを修正した 「P1デモ2」の白文字が表示されるようになります。 今回の調査で、パレットまわりももやもやが晴れた気がします。 ・ALU/GVRAM 選択に関するバグを修正した (88SRのみ) 「拡張アクセス時はVRAMバンク切り替えポート(0x5C~0x5E)無効」を実装しました。 以前 X88000 の Manukeさんに教えていただいていたのですが漏れていました。 「アークスII店頭デモ(88SR)」のテキストマスクが正常になります。 ・DiskIF デグレ部分を修正した R6b3->4 で余計なことをしていたようで、アクセスが不安定になっていました。 R6b3に近い実装に戻しました。 ・「将軍2」を 15kHz で立ち上げると落ちる問題に暫定対応した いろいろなカウンタに影響が出るので CRTCの変な設定に関しては放置しています。 ただ、落ちるのはまずいので、関係がある部分にのみ対策を加えました。 ・YM2203 ・YM2608対応したときの Timer-B エンバグ部分を修正した (障害未確認) ret = IRQ_TB; -> ret |= IRQ_TB; ・Timer-A, B の「リロード」処理を調整した エミュレータのタイマー更新頻度の影響を加味しました。 以前のリリースでこの実装を試した記憶があるのですがが、詳細は忘れました。 明確な(良い)影響が感じられなかったので、シンプルな実装に戻した気がします。 ・uPD780 ・ビット演算のフラグ変化を調整した (障害未確認) bit3,5 も サインフラグ と同様の変化をさせることにした ・割り込みまわりに(最近の)デバッグ中の無駄コードが混ざっていたので整理した ・PCG8100(単音)の初期状態を変えてみた 電源投入直後の状態で「NewラリーX(I/O:1982.5) サウンドパッチ(I/O:1982.7)」 の音が出るようにしてみました。 音が出るロジックは適当です。 (今回はカウンタに適当な初期値を設定していますが、「Highで無音」かも) 実機での動作も未確認です。 記事中は「PSA」なので「PCG」とは仕様がちがうかもしれません。 「ロータス」のボードも未確認です。 どなたか実機での検証に協力していただけませんか? ・リファクタリング ------------------------------------------------------------------------------ [Release 6b8] Ver. 6.b.20 2011.08.13 ------------------------------------------------------------------------------ ・GVRAM,ALUまわりの実装をメモリ側にまとめた (80SR,88V2) あわせて下記問題点(不具合未再現)を修正した ・GVRAM選択ロジックに若干の問題を見つけ修正した (88V2) ALU ON→ON のときも GVRAM選択を OFF にすることがあった (CrtcV2) ALU →ON のとき常に GVRAM選択を OFF にしていた (MemoryV2) ・80SRではこのパッチを適用しないがコメントアウトし忘れていた (CrtcSR側のみ) ・タッチパネル使用時に ToolTip を表示することにした タッチパネル定義ファイルを拡張した ・N80ファイルの取り扱いを若干変更した メモリ側はロード,セーブのみ / CPU制御は PC8000クラスに移す ------------------------------------------------------------------------------ [Release 6b7] Ver. 6.b.18 2011.08.06 ------------------------------------------------------------------------------ ・リファクタリング ・Android版にあわせて一部の設計を変更した ・BIOS類のロード失敗で落ちないようにした ・ファイル入力などのバッファ消費速度 60ms 追加 ・マウスポインタOFFでメニューを開いた場合、メニューを外れてもポインタが消えないようにした ・全てのダイアログで「すべてのファイル」有効とした ・88/mkII で「ハイレゾ」切り替えがうまく動かなくなっていたのを直した ・CPUを別バージョンに変更してみた (→インデックスレジスタ:8bit分割版) ------------------------------------------------------------------------------ [Release 6b6] Ver. 6.b.16 2011.02.14 ------------------------------------------------------------------------------ ・BUG FIX: シリアルキーボード機以外で、未使用ポートをクリアしようとして落ちるバグ修正 ------------------------------------------------------------------------------ [Release 6b5] Ver. 6.b.15 2011.02.13 ------------------------------------------------------------------------------ ・BUG FIX: CPUの初期化ミスで、MAIN CPU にも HALT解除パッチがあたっていたのを修正した r5a1 -> r5a2 でエンバグ ------------------------------------------------------------------------------ [Release 6b4] Ver. 6.b.14 2011.02.13 ------------------------------------------------------------------------------ ・80SR: ・「ひらがな」フォントの構成と内部処理を変更した  旧:1KB (128キャラクタ分 / 2セット目の後半128キャラのみ)  新:2KB (256キャラクタ分 / 2セット目の256キャラすべて) 80SR専用のフォントファイルを作ることをお勧めします  下記フォントセットを1ファイルに連結してください (計8KB)   1セット目:ASCII + カナ,記号   2セット目:ASCII + かな,記号   3セット目:ASCII + カナ,記号 (1セット目と同じ)   4セット目:ASCII + かな,記号 (2セット目と同じ)  ※現在j80では3,4セット目のデータは使っていません   80SRのフォントROMの構成については「80mkII愛友会」の掲示板での   やり取りを参考にさせていただきました   http://www5f.biglobe.ne.jp/~apaslothy/ ・Util: ・N80ファイルの ロード,セーブ に仮対応した ・サウンドメモリのダンプ仕様を変更した ・ImageListにプリンタの (offline) 表示を追加した ・Java: ・Javaのパッケージに対応した ・コンバータ類の構成を若干変更した ・ファイルのハンドリングを String から File に変更(統一)した ・Crtc80 クラスから JPanel を分離してみた ・その他イベント管理系を j80GUI クラスにまとめた ・BUG FIX: ・シリアルキーボード機で「ローマ字かな変換機能」がうまく働かないソフトがあった → ポートのクリア漏れを修正した ・「FROST-DOS」がブートしない → テキストウィンドウを介した場合は、ハイスピードTextRAMは見えないようにしてみた 上記調査中に DiskIF まわりに若干手を入れました (ほとんどテストしてません) ・「PC-8801MA/FA 店頭デモ」最初のシーンで無限ループ → ADPCM のループ時も EOS フラグを立てるようにしてみた ------------------------------------------------------------------------------ [Release 6b3] Ver. 6.b.13 2010.11.09 ------------------------------------------------------------------------------ ・BUG FIX: ・前回カーソル位置の描画(更新)の問題を修正した ------------------------------------------------------------------------------ [Release 6b2] Ver. 6.b.12 2010.11.09 ------------------------------------------------------------------------------ ・BUG FIX: ・「8MHz機」で「アナログ/デジタル」切り替えが有効にならなかったのを修正した ・サウンド: ・サウンドボード類の初期化プロセスの無駄を排除した 昔の「オブジェクト再利用」仕様が残っていた ・サウンドカード類と関連デバイスの初期化プロセスを変更した ・[RESET] → [Clear RAM] で ADPCM もクリアするようにした ・リセット時にサウンドバッファの残りを捨てるようにした ・ADPCMの音量まわりの実装を小変更した ・PC-8801-10 + PC-8801-11 の 88-01側の割り込みを機能しないようにした ・PC-8801-10,11,23 の80系スロットでの割り込みレベルの問題を再現した ・-bus の ID を変更した ・ADPCM の線形補間(内部パラメータ計算)を調整してみた ・ディスク: ・結合イメージ対応 結合イメージに書き込みをした場合、D88ファイル更新タイミング毎に バックアップを作ります。 同一ファイル中の複数のDiskが更新されていた場合は、 一回の更新タイミング毎に更新されたDisk枚数分のバックアップが追加されます。 エミュレータ側では消しませんので注意してください。 使用可能な連結数上限は cfg で変更可能です。 ・UI制御について試行錯誤 ・ディスクマウント時の「波及効果」検討 ・指定可能な残りディスクがない場合はサブメニューを表示しない ・DiskIF(8255) モード変更時に放置していた一部ポートをクリアするようにした ・ドライブ数制限(2台限定)を撤廃した (1~4台に対応) ・WRITE ID のログ出力がおかしかったので修正した ・CDOS2 の 2HD フォーマットに暫定対応した Tr0の先頭セクタのみを FM(3セクタ) で再フォーマットしたいようです。 誤爆が怖いので「TRACE ON」でのみ有効なパッチとしました。 ・CPU等: ・NMI にも HALT 解除のコードを追加した (使ってません) ・スペシャルM1でも BUSRQ を受け付けるようにしてみた ・80系実装でも88系同様の割り込みマスク時のパッチを適用した ・CRTC等: ・垂直帰線幅の設定をタイミングに反映した (従来は20行設定時と同等で固定) ・垂直表示期間が 200Line でない場合のタイミングにも対応した ・1Hの時間精度を上げた ・高解像度ディスプレイ使用時のタイミングを仮実装した メニュー等から 200/400Line を切り替えただけでは表示しか変わりません。 CRTCが再設定されないと動作タイミングが狂ったままになります。 切り替え後にリセットすることをお勧めします。 ・88VAタイプの 200Line 出力(高解像度ディスプレイ使用時)を可能にした ・80SRのアトリモードではパレットを反映させない r5a1 以前の実装に戻した ・80SRの ALU/GVRAM/MainRAM 選択ロジックを r5a1 以前の実装に戻した ・TEXT OFF(80SR,88)の場合は、カーソル, 反転系アトリを無視することにした ・その他: ・80系+PC-8801-02N系拡張RAMに対応した ・PC-8801-02N系拡張RAMの内容をセーブ/リストアできるようにした ・ImageMixer の補正カーブを選択できるようにした ・「テキスト入力」などのキーストロークに chr$(2)=[Ctrl]+[B] を追加した ・USARTステータスポーリング時に READY を返す頻度を変更できるようにした 88の load"cas: など、割り込みを使っている場合はこの設定は使いません。 0,1だと「ロード中に[STOP]が利かない」などの問題が出る場合があります。 待ち時間でしかキースキャンをしないプログラムで問題になるわけですが、 「テキスト入力のバッファが減らなくなる」という、おいしい面もあります。 ・UI,cfg,cmd: ・8MHz H 対応(復活?) ・ディスクイメージの指定方法を変更した ・ドライブ数の設定を追加した ・BEEP,OPNA の指定方法を変更した ・フレームレートの設定方法を変更した ・高解像度ディスプレイ「88VAタイプの 200Line 出力」を追加した ・開発系コマンドを一新した ------------------------------------------------------------------------------ [Release 6b1] Ver. 6.b.0 2010.09.23 ------------------------------------------------------------------------------ ・仮対応が多いですがβとします ・サウンド(OPNA): ・BRDYフラグを立てる機会を増やした ・8MHz機対応: ・8MHz動作時の仮WAITを実装した ・8MHz機のキーボードに仮対応した ※「互換キーストローク」生成機構は未実装です ・その他: ・若干のコード整理など ------------------------------------------------------------------------------ [Release 6a6] Ver. 6.a.8 2010.09.21 ------------------------------------------------------------------------------ ・サウンド(OPNA): ・LFO: コード整理 カウンタがオーバーフローする可能性があったので対策した サンプルレート差による丸め誤差を減らした ・ADPCM: PCM_BUSY フラグ実装 リピート再生時にデコーダを初期化するようにしてみた フラグレジスタの処理に変なコードが残っていたので修正した 「メモリリード」時の「最初の2回はダミーリード」を実装した (未テスト) 「メモリリード」時の「最後の2データ分はフラグが立たない」実装 (未テスト) 「STOP ADDRESS」到達後の状態遷移を少し変えてみた DELTA-N に「最低値」の制限を設けた 初期化時に DELTA-N を最低値に設定するようにした 「音声合成(CPU→OPNA)」実装 (未テスト) ※これでYM3016が絡まない部分はだいたいそろったと思います 実装が雑なところや間違っている部分もあると思いますが... ------------------------------------------------------------------------------ [Release 6a5] Ver. 6.a.7 2010.09.19 ------------------------------------------------------------------------------ ・BUG FIX: ・OPNA AMS=0 のときの減衰量が 1bit 足りていなかったのを修正した ・サウンド(OPN/A): ・クラスを再統合した ・PGのカウンタ桁数を制限しているのを見つけた → 撤廃した ・LFO再実装 (仮想 Fnum を再計算してテーブル化した) ・PMS再実装 (本番仕様で実装したつもり) ・ADPCMの出力レベルを2倍にした (内部の処理は変わってません) ------------------------------------------------------------------------------ [Release 6a4] Ver. 6.a.5 2010.09.14 ------------------------------------------------------------------------------ ・BUG FIX: ・ADPCM「LIMIT ADDRESS」の処理が違っていたようなので修正した ※ADPCMはかなり不完全です。  暴走・誤爆の可能性がありますので音量にご注意ください。 ・サウンド(OPNA): ・クラス設計を Ver. 6.a.3 に戻した (LFO実装時の混乱回避 / 再統合検討中) ・LFO仮実装 ・ADPCM「1bitアクセス」実装 ・起動プロセス変更: cfg が指定されなかった場合 1. j80.jar の場所の _j80.cfg (ユーザーcfg) を探す 2. 無かったら j80.cfg を使う _j80.cfg は ./cfg/ 中の適当なファイルをベースに作ってください cfgの完全な情報は j80.cfg をお読みください ------------------------------------------------------------------------------ [Release 6a3] Ver. 6.a.4 2010.09.11 ------------------------------------------------------------------------------ ・BUG FIX: ・一部の機種でデバッグ時に切り離したサウンドボード類の繋ぎ忘れを修正した ・サウンドボード類を安全に「差し替え」できるようにした ・PC-8801-23:一部ポートの接続ミスを修正した ・OPTION:-tape=, -smooth= が外れていたのを復元した ・サウンド(全般): ・ステレオ対応 (※ cfg に変更があります) 拡張ボード類には左右チャンネルへの振り分けに配慮したものがあります *具体的なニーズに基づく* 要望があれば実装を検討します ・サウンド(OPN/A): ・「サインテーブル」を対数化した  LFO対応の準備です ・エンベロープジェネレータの出力桁数を上げてみた  サインカーブの精度確保のため指数テーブルのエントリを増やしたので、  EGの出力も(カウンタの端数を切り捨てずに)桁数を増やしてみました  特定音色のプチプチ音がほんの少し改善された気がします  減衰が小さい時の階段状のカーブが滑らかになったのが良かったのでしょうか? ・クラス設計変更  OPN,OPNAのオペレータを統合した  OPN,OPNAのチャンネルを統合した ・リズム音源(仮?)対応  事前に読んでおいたPCMデータを垂れ流す実装です  リサンプリングはおこないません ・ADPCM音源仮対応  とりあえず「メモリに書き込んだADPCMデータを再生できる」程度です  変な動作をしがちですのでお気をつけください  残りの機能は今後ということで (YM3016が絡む機能は端折ると思いますが) ・サウンド(その他): ・SoundPRN_LOG:タイマーの実装を変更した ・cfg: ・SOUND に変更があります  バッファ,サンプルレート,チャンネル数 を SOUND に統合しました ・ENHANCE に変更があります  88(8MHz機) の設定方法が変わりました (OPN機 1→2 / OPNA機 2→3) ・OPNA_* を追加しました  リズム音源用の wav ファイル指定用です ・その他: ・「LFO」はアプリケーションマニュアルの内容を実装に落とせませんでした ・コードが荒れていますのでとんでもない不具合が発生する可能性があります ------------------------------------------------------------------------------ [Release 6a2] Ver. 6.a.2 2010.08.31 ------------------------------------------------------------------------------ ・サウンド: ・OPN/A「Detune」の実装ミスを修正した  何か音がサッパリしすぎたと思って調べたら仮実装のコードが残っていて...  ゴメンなさい。 ------------------------------------------------------------------------------ [Release 6a1] Ver. 6.a.1 2010.08.29 ------------------------------------------------------------------------------ ※R6系のソースツリーに移行しました  ・結局 R4系(88/mkII)はα版公開すらなし、R5系(88SR)は正式版なしでした  ・当面は OPNA 対応を少しずつやる予定  ・キーボードのちゃんとした対応は難しいかも   80mkII の [TAB] と同じ仕組みでいけると思ったのですが、   母艦のキーリピートを抑止できないと使用上厳しいかもしれません  ・落ち着いたら最後にサウンドのステレオ対応をしてβ版と考えています ・カレンダー: ・カレンダーまわりの実装を変更した ・設計を変更してRTCチップを分離した  今回の2点の変更で負荷低減のパッチが外れました  今となってはもうこのくらいは影響を感じないと思います ・サウンド: ・OPN/A「Detune」の具体的なパラメータが分かったので本実装した  OPNAのアプリケーションマニュアルに載ってました  他にも怪しい点があるので精査する予定です ・母艦の再生レートを48000Hz以外にした場合のカウンタオーバーフロー調査  OPN/A:   低ビットレート時に可能性があったので下駄のビット数を減らした   今後、元に戻して44100Hz未満を無視するか決める予定  その他:   未調査 (たぶん大丈夫) ・OPNAの調査結果に基づきクラス設計(仮)&実装  「OPN x2」程度の実装状況です (モノラルです!)  ひととおり分かったら再設計&再実装する予定です ・サウンド系ボードの 8MHz機への対応についてはこれから調べます  実機仕様によらず「クロック分離」とする方向で検討中ですが気持ちだけ。。。 ・cfg, cmd 等 ・メニューの Bus を Ex.Bus に変更した  ニモニックも B から E に変わりました ・cfg OPTION のサウンド関係の指定方法を変更しました ・j80.cmd の VolumeN= コマンドを VolSYS,VolBUS,VolPRN に分割しました ・その他: ・コメントを強化した  特に「クロック数」と「経過時間」のどちらで管理しているか分かりにくい部分 ・コード整理と称してクラス名の変更など少々。。。  R6系移行記念? ------------------------------------------------------------------------------ [Release 5b21] Ver. 5.b.25 2010.08.22 ------------------------------------------------------------------------------ ※今回のリリースの目的は カレンダー のバグFIXです  サウンドまわりは改修中のコードをとりあえず動くようにしたものです ・カレンダー: ・バグFIX (12/31 23:59:59 → 01/00 00:00:00) ・8MHz機(uPD4990)対応準備 ・GUI: ・88SR以降の機種に「BASIC MODE スイッチ」「SPEED スイッチ」を追加した ・その他: ・8MHz切り替え(WAIT等未実装)と uPD4990 に適当対応した Ver. 6.a.0 を同梱  8MHz時の WAIT,BUSRQ などのコストは 4MHz時と同じ(時間比)ままです  カレンダーは「とりあえず設定,読み取りが可能」なレベルです  キーボードも未着手 ------------------------------------------------------------------------------ [Release 5b20] Ver. 5.b.24 2010.08.15 ------------------------------------------------------------------------------ ※今回のリリースの目的は CRTC/DMA のバグFIXです  サウンドまわりは改修中のコードをとりあえず動くようにしたものです ・CRTC/DMA: ・DMAまわりがおかしくなっていたのを修正した  「Twenty-7」では行がズレてはいけない  Release 2.4 → 2.5 でエンバグ  ※2.4 → 2.5 で修正した部分を外しましたが、当時なぜそうしたのか忘れました   コメント,開発メモにも何も残ってませんでした   副作用があるかもしれませんので、何かあったらレポートをお願いします ・サウンド: ・cfg でサンプルレートを指定できるようにした (暫定)  カウンタのオーバーフローチェックなど、精査していません  48000Hz 以外での「BEEP 0」の濁りは解決できないかもしれません ・モーターリレー音(48kHでサンプリング)は適当対応  → 24000Hz以下では1サンプル間引いて再生する ------------------------------------------------------------------------------ [Release 5b19] Ver. 5.b.23 2010.08.13 ------------------------------------------------------------------------------ ・CRTC: ・88系 + PCG ON + chr$(0)定義 + TEXT OFF のとき描画ミスが出る恐れがあった? ・その他内部フラグ類精査 ・アトリ評価ルール修正 →シークレットも次の行に影響を与える ・テキスト入力等 ・改行が LF のみのファイルに対応した ・タイプできなかった文字コードをコンソールに表示するようにした ・タッチパネル機能で登録できなかった文字ストロークも表示するようにした ・FM音源: ・80SR の初期条件が違っていたようなので修正した  Release 3b11 -> 3b12 でエンバグ  →「チャンピオンプロレス」@80SR でBGMが鳴らない不具合改善   情報提供:モ〜リン様   88SR系,サウンドボードは変更せずに様子を見ることにした --- コンバータ関連 --- ・Bas2Cmt: ・ドキュメント(cas-job.txt)と仕様の矛盾を修正した ・ファイル名が6文字を超える場合はエラーとなっていた → 6文字まで有効 ・Bin2Cmt: ・name=xxx 指定を可能にした  →88モニタのヘッダブロック(ファイル名)に対応できるようになりました ・Cas2Cmt: ・j80 に影響のある変更なし ・Cmt2Cmt: ・j80 に影響のある変更なし ------------------------------------------------------------------------------ [Release 5b18] Ver. 5.b.22 2010.06.06 ------------------------------------------------------------------------------ ・PCG SOUND の実装を修正した 「GALAXY SEARCH」奇数周のクリアミュージックがまともに鳴らない不具合解決 今回の修正で、実機でのサウンド定義の非互換問題も再現されるようになりました ・PCG8100「前期型」をデフォルトに変更した ・cfg -newtype (起動時に「後期型」を選択)を復活した ・[Sound] メニュー中からも [NewType] チェックを変更できるようにした ・拡張メモリまわりのリセット処理に問題があったのを修正した 状態によっては2回リセットしないと再起動しないことがあった ------------------------------------------------------------------------------ [Release 5b17] Ver. 5.b.20 2010.05.30 ------------------------------------------------------------------------------ ・「88系 / n倍速 / 無音(boost時含む)」用のメインループが壊れていたのを修正した  リファクタリングを中断しての公開に付き、エンバグしてるかもしれません ------------------------------------------------------------------------------ [Release 5b16] Ver. 5.b.19 2010.05.16 ------------------------------------------------------------------------------ ・88系機種「Nモード」での 4thROM の扱いを変更し、増設ROMのみ見えるようにした ・CRTC: ・モノクロ時のアトリ評価方法を再修正した (R5b1での修正を元に戻した) 「FORESIGHT:通巻13号の表紙」は「アトリモード:カラー / 出力:白黒」だった ・アトリ評価時に出力用の カラー/白黒 フラグを流用していたのを止めた ・内部処理の仕様変更等で不要になったコードが残っていたようなので整理した  PCG8200,PCG8800 使用時におかしな絵が出たらレポートをお願いします ・Cassette80:  ソースファイルのないブロック(ex.「*IPL」)を開く時に落ちることがあるバグFIX ------------------------------------------------------------------------------ [Release 5b15] Ver. 5.b.18 2010.04.24 ------------------------------------------------------------------------------ ・CPU: DAA : ハーフキャリーフラグをリセットする動作を追加した DAA : 減算時の内部処理を安全にした ・拡張/増設ROM: 88系Nモードでの扱いを変更し、見えるようにした ------------------------------------------------------------------------------ [Release 5b14] Ver. 5.b.16 2010.01.17 ------------------------------------------------------------------------------ ・「倍速」用のメインループの精度を上げた ・ポート0x66(IN)実装(とりあえず88系のみ) 「リグラス(8801)」対応 ・サブシステム: ・適当 wait 廃止 / M1,ROM wait 追加 ・CPUクロックを固定にした cfg -sub=n 廃止 / -powdsk 追加 ------------------------------------------------------------------------------ [Release 5b13] Ver. 5.b.15 2010.01.10 ------------------------------------------------------------------------------ ・サブシステム: ドライブとディスクの実装を分離した ・ディスクに変更が加えられた場合のファイル更新タイミングが変わりました ・ファイル更新時に全てのトラックを再構成するようにしました トラックテーブルを164セクタ分まで拡大します トラックテーブル中の無効なアドレスは 0 に書き変えます 変化の無かったトラックの未使用領域も削除します 変化の無かった未使用トラックも削除します ・テンポラリファイルをまったく使わなくなりました ------------------------------------------------------------------------------ [Release 5b12] Ver. 5.b.14 2010.01.10 ------------------------------------------------------------------------------ ・88,88SR: モノクロモードの表示マスクが違っていたのを修正した ・サブシステム: ・deleteID() の怪しい部分を精査&修正 最終セクタを食っても不足するケースが未処理だった (セクタ数減/トラックサイズ増/2周フォーマットは考慮せず) セクタ数更新前にセクタサイズを更新してしまっていた(Bug) ・ロード時のチェック方針変更 トラックの先頭アドレスがファイルサイズ外の場合は 0 と同じ扱いとすることにした ・トラックテーブルのサイズが変わるフォーマットのバグFIX (フォーマット時にトラックテーブルの更新ミス) ------------------------------------------------------------------------------ [Release 5b11] Ver. 5.b.13 2010.01.03 ------------------------------------------------------------------------------ ・サブシステム: ・D88の「2D」のイメージを 2DD フォーマットした場合、 ヘッダを「2DD」に書き変えるようにした ・メニュー中のイメージ名に [2DD] は表示しないこととした ・連結イメージの1枚目も使えなくなっていたのを修正した ・フォーマット時の冗長な(と思われる)ヘッダ上書き処理を廃止した (コメントや記録を見ても必要である理由がわからなかった) ・サウンド: ・FM音源 AR=0 のときの動作を変更した ------------------------------------------------------------------------------ [Release 5b10] Ver. 5.b.11 2009.12.30 ------------------------------------------------------------------------------ ・サブシステム: フォーマット時にj80が使う内部バッファの容量を増やした ・拡張RAM: 存在しないバンク(カード)を選択したときの挙動を調整した ------------------------------------------------------------------------------ [Release 5b9] Ver. 5.b.10 2009.12.23 ------------------------------------------------------------------------------ ・サブシステム: ・D88イメージの 2DD タイプのヘッダ(トラックテーブル)に対応した ・2HDドライブに仮対応した ※ブランクディスクには「2D」タイプのヘッダが付きます(固定) ・サウンド: ・8bitPCM@PRN を「JAST Sound」専用とすることにした それにあわせて音量を調整した ・拡張RAM: ・88系のみ PC-8801-02N タイプの拡張RAMに対応した ・PIO-8234 の仕様については apaslothy さんに教えていただきました ありがとうございました ・cfg: ※詳細は j80.cfg のコメントを参照してください ・「SYSTEM」(Systemメニューのラベル)を追加した ・「EXTRAM」(拡張RAMの実装用)を追加した ・「OPTION : -enhanced」→「ENHANCE」に変更した ・Z80: ・8bit演算命令時のフラグレジスタを調整した CP n,r 時に フラグレジスタの不定ビットに比較値をコピーするようにした あわせて ADD,ADC,SUB,ABC では演算結果をコピーするようにした INC,DEC も演算結果をコピーするようにした 上記以外は従来どおり *変化しない* ままとします(ホントは何とかしたい) 「88MH デモ」ありがとう ・その他: ・コンソール出力調整した ・メニューの ON/OFF に対応した(Windowモード時のみ) cmd : ToggleMenu 追加 ・フルスクリーンから復帰したときWindowサイズがおかしくなる環境がある? →対策した(不安定になる環境があるかも) ------------------------------------------------------------------------------ [Release 5b8] Ver. 5.b.7 2009.12.12 ------------------------------------------------------------------------------ ・2Dディスクを 2DD と誤判定することがあるバグFIX ※2DDは判定のみです(うまく読めないと思います) ・ディスクのを間違えることがあるバグFIX ------------------------------------------------------------------------------ [Release 5b7] Ver. 5.b.6 2009.12.12 ------------------------------------------------------------------------------ ・cfg,デフォルト値管理に関する設計変更完了 ・一部のサウンドボードの LPF を本実装した (必ずしも実デバイスの回路を再現しているわけではありません) あわせて音量も調整しました(割れない限界まで上げた) ------------------------------------------------------------------------------ [Release 5b6] Ver. 5.b.5 2009.12.07 ------------------------------------------------------------------------------ ・80SR/80桁/320x200(カラー)の部分更新時のバグFIX ・ディスプレイの「信号なし(PC側電源OFF)のときの色」が無視されていたのを修正 ・「サウンドなし」の速度調節を壊していたのを直した (r5b4 でエンバグ) ・cfg,デフォルト値管理に関する内部構造を大幅に変更した あわせていくつか見つけたバグを修正した (cfgの一部が反映されないなど) ・「PRN,BUSのサウンドボードを使わない」起動オプションを廃止した ・サウンドボード@PRNのコントロールを増やした (@BUS がひとつずれました) ・一部のサウンドボードに LPF を仮実装した LPFの時定数は[Sound]メニューで変更できます。 今回の更新はコレを目玉にしたかったのですが (アナログシンセの布石?) 目立つバグがいくつか見つかったので暫定版でリリースします。 ・VoiceBoxのビットの割り付けを変えてみた (仕様をご存知の方教えてください...) ・88SRの速度を遅くしすぎたようなので速くした (暫定/今度は速過ぎ?) ------------------------------------------------------------------------------ [Release 5b5] Ver. 5.b.4 2009.11.29 ------------------------------------------------------------------------------ ・AY-3-8910 「BASIC VOICE(I/O:1984.2)」が鳴らなくなっていたので対策した r3b3→r3b4 でエンバグ (その後 実装は変わったがバグは残っていた) ------------------------------------------------------------------------------ [Release 5b4] Ver. 5.b.3 2009.11.29 ------------------------------------------------------------------------------ ・「ファイルが消されたら再マウントできない」仕様を変更した ToggleREC : WRITEなので新規にファイルを作る TogglePRN : WRITEなので新規にファイルを作る ToggleCAS : READなので消されたらダメ(従来どおり) ToggleD=n : W/R ...検討中につき従来どおり ・SoundSystem ・内部タイマーの精度を再確認した (問題なし) ・サウンド有無でタイマー精度が変わらないようにした ・FM音源まわり再検討 コード整理 「?」まみれのコメント整理 オーバーフロー再チェック (実用上の問題なし -> 調整) カウンタのビット数(合成周波数の差異吸収用含む)再検討 いくつかの計算をテーブル化 フィードバックで変な振動が発生していたので2項平均を取ってごまかした  →うまく発声しなかった音色改善した? ・AY-3-8910 ノイズにトーンが乗っていなかったので修正した  →pause時のプチノイズ対策をしたときにエンバグしたか?   違和感は感じていたのですが...今まで放置してごめんなさいです 演奏時にプチノイズがひどいものがあったので改めて対策した(副作用あるかも) ・GUI Java 14.3-b01(1.6.0_17) で「レイアウト崩れ対策パッチ」が効かなくなっていた  1. 画面右端でメニューが折り返して表示される条件で  2. ファイル名などが短くなってメニューの幅が狭くなったとき  → JPopupMenuの出現位置がおかしくなる 元々根本対策ではなかった(※)のでパッチを外すことにした ※) キーボードコマンド経由でメニュー内容が変わったときは効果が無かった ・その他 88SRの速度を調整した ------------------------------------------------------------------------------ [Release 5b3] Ver. 5.b.2 2009.10.31 ------------------------------------------------------------------------------ ・コンバータのバージョンアップに伴う更新 ・Cas2Cmt ・「*INDEX」(インデックス信号,トラック信号,CUE信号) 追加 *TITLE, *SPACE がない場所での頭出し用にお使いください ・BLANK/SPACE/MARK ロード時にデフォルト値を展開しないように修正した ・Cmt2Cmt ・ヘッダ付きマシン語の cas 出力時に ヘッダサイズが 1byte 減るバグ修正 ・新規対応 SystemSoft LodeRunner(80mkII) Enix アラレのJUMP UP(80mkII) dB-SOFT KingFlappy(80SR/8801) 東海クリエイト YUKARA_JJ(80mkII) BondSoft TIME TUNNEL(80mkII) X'TAL SOFT ファンタジアン(80SR) MicroNet チャンピオンプロレス(80mkII) SPS ぐるっぺ(8801) CarryLab 飛車(80SR) ・変更 マシン語系 精度向上(SUMチェック) 2ブロック→2パート BrainMedia サイズがマイナスになるものを除外する 精度向上 -> バージョンにより SUM が違う Hudson 精度向上(SUMチェック) ・未対応 ファンタジアン(80SR) ユーザーデータ ・Bas2Cmt ・N-BASIC 以外(未知のアドレス)にも対応した ・全般 ・メッセージ類の表現を統一した ・Cmt ・キーマップ,タッチパネルの表示忘れ修正 ・8801割り込み使用時の動作を書き直した 割り込み使用時にステータスチェックをしないローダーがあった ・画面表示周りを調整した ・Keyboard ・タッチパネル機能が壊れていたので修正した Y座標の値が X座標と同じになっていた いつ壊したか不明 ------------------------------------------------------------------------------ [Release 5b2] Ver. 5.b.1 2009.10.24 ------------------------------------------------------------------------------ 今回の CMT IF まわりの大改修で、8801のテープ読み込み時の問題が ほとんど解決されたと思います。 何か問題がありましたら報告をお願いします。 ・Z80 BIT 演算時のフラグ修正  r5a1 -> r5a2 でエンバグ「ドッチボーイ (ツクモ/88)」 ・CMT IF まわりを改修  ・割り込み利用のロード時の自動ブースト廃止   →マニュアルでの「ブーストモード」追加  ・MOTOR OFF 時の 0x00 自動スキップ廃止   →イメージの「区切り」をチェックし、MOTOR OFF 時に「残り」をスキップする  ・「テープスピード」設定追加  ・割り込みタイミング調整用のカウンタ精度を上げた ・Cmt2Cmt を実装しなおした ・Cmt2Cmt で認識可能なフォーマットを増やした (cas-job.txt 参照) ・イメージファイルのコンバータの仕様を全面変更した  ・テンポラリに cmt を吐かなくなった ・T882Cmt:  仕様変更:データブロックの最小サイズ制限廃止  →32kbyte制限で溢れた場合、どんなサイズのブロックができてもおかしくない ------------------------------------------------------------------------------ [Release 5b1] Ver. 5.b.0 2009.09.28 ------------------------------------------------------------------------------ ・PC-8801-10,11 を分割して使用できるようにした ・cfg 変更   旧:-prn,-bus ともに 0 (無指定を含む) の場合「サウンドボードなし」で起動する   新:-prn,-bus ともに指定が無い場合「サウンドボードなし」で起動する   -prn,-bus の ID変更 ・80mkII のメモリ初期化実装ミスを修正した   「0xFF,0x00 で埋める(前半は不明)」が、前半32KBのみを埋めていた   88mkIIも80mkIIと同じと仮定しているのであわせて修正した ・漢字ROM(第二水準)仮対応 & 漢字ROMまわりの実装変更 ・モノクロ時のアトリ間違っていた? (FORESIGHT:通巻13号の表紙)   旧:全て通常指定として処理する   新:カラー指定ビットの立ったデータは無視する ・「PCS-8081,8087」の実装を変更(改善?)した ・「12chシンセサイザーユニット」の実装を変更(改善?)した ・スピーカーとLEDを使って!(Oh!PC 1983.7)「1bit PCM」対応 ・オルガンを奏でよう!(Oh!PC 1983.11) 「24keyオルガン(TMS3617 x2)」対応検討中 ------------------------------------------------------------------------------ [Release 5a3] Ver. 5.a.3 2009.01.31 ------------------------------------------------------------------------------ ・D88イメージのフォーマットについて ・これまではディスク一括フォーマットにのみ対応していましたが、  トラック単位でのフォーマットに(やっと)対応しました ・ただし、トラックが小さい順に連結されていない場合は壊れます  ランダムに連結されているイメージに対応したコードも用意したのですが、   ・イメージファイルを直接操作しているため非常に遅い   ・そもそもそんなイメージはない?  と云うことで、今回は採用を見送りました (マウント時に警告が出ます)  フォーマット時にファイル末尾に追記のみで済ましているとか...ないですよね? ・QUASI88(0.6.3) でフォーマットしたイメージには、   1. トラックに「未使用領域 (勝手に命名)」がある   2. 定義してあるがセクタがない(全て「未使用領域」)トラックがある  といった特徴があるようです (P88SRの動作は未確認)  また、   3. ID潰しをしたトラックの「セクタ数」が更新されていない   4. ID潰しをしたセクタが指定サイズより太る (消されたセクタのヘッダ分?)  といった問題もあるようです  「未使用領域」は「ぶるー牧場」のドキュメントに無く仕様が解らなかったので、  独自に基準を設けました (「3」が無ければ簡単なのですが...)   ->セクタ数,データ長のフィールドに相当する部分がともに 0 なら「未使用領域」  また「2」は、M88(2.21a) で他のセクタをフォーマット(書き込みでも?)した際に、  データ長 0 の「IDだけのセクタ」として実体化してしまいます ・上記特性を踏まえて対応したつもりですが、既存イメージへの上書きフォーマットは  避けたほうが良いと思います。。。 ・DiskSystem ・シーク動作を大幅に見直した ・シークエラー時の ST3 の値を修正した ・マルチセクタの動作を見直した ・エラー時の動作を変更した ・READ DIAG 超イイカゲン実装から適当実装にバージョンアップした ・IdlePhase に落ちていたら、TC で toResultPhase() を呼ばないように変更した ・DELETED フラグに対応した (READ時 SKIP は仮対応) ・SubCPU に「適当 M1 WAIT」を入れてデッドロック対策した(仮) ・D88 :「ステータス」を ST1 に反映した ・D88 :「ディスクの名前」に対応した (多バイト文字は想定していません) ・WRITE ID の動作を改善した 2周フォーマットには対応していませんが、必要なら実装しようと思います ・WRITE DATA による ID 潰し(ミックスセクタ)に対応した WRITE ID 時にあらかじめ「ID 潰しを予測したフォーマット」を行なうパッチだけでも 大丈夫そうだったのですが、勢いにまかせて作ってみました ・複数ディスクを結合したイメージは一枚目のみ ReadOnly で開くようにした ・トラックが小さい順に連結されていないイメージは ReadOnly で開くようにした ・新規ファイル, サイズ0のイメージを開いたとき「ヘッダー部」を書き込むようにした ・コンソール出力を整理した ・Z80クラス ・DAA 修正 (キャリー/ハーフキャリーフラグを考慮) ・Crtcクラス ・R5a2で「アトリ無効」フラグを壊してしまったのを復旧した ------------------------------------------------------------------------------ [Release 5a2] Ver. 5.a.1 2009.01.12 ------------------------------------------------------------------------------ ・アナログパレットの選択条件が違っていたようなので変更した ・V2モードでデジタルパレットを設定したときの動作を変更した ・リセット時にアナログパレットを初期化するようにした ・「行ずらし」解除条件を追加した ・0,20組以外のアトリビュートサイズに対応した ・Z80クラス (チェックついでに...) ・CCF : Hフラグ不定変化対応 ・BIT : Zフラグ不定変化対応 (サインフラグもちょっと違っていたようなので修正) ・他の不定変化,フラグレジスタの不定ビットや RETI のイメージなど未対応 ・FDCのレジスタまわりを調整した ・2byte転送(PC->Disk)用のポートを繋いだ ・DiskIF (チェックついでに...) 8255(ポートCのビットセット/リセット部分)を書き換えた(動作に違いはないハズ) ・テープイメージがセットされていない場合は、ブーストしないようにした ・ポート0x31のイメージを設定できるようにした cfg のパラメータに変更があります。すいません。もうしません。たぶん ・GUI調整 画面の端などの影響でメニューの表示位置が調整された後、 レイアウトがおかしくなることがあったのでパッチを当てた ※不審な挙動が見られたらレポートお願いします  必須なパッチではないので削除します ・その他 MEMO ・SSGの発声がおかしいことがある?(確認中) ・次回更新では SEEK の動作を何とかしたい ------------------------------------------------------------------------------ [Release 5a1] Ver. 5.a.0 2009.01.03 ------------------------------------------------------------------------------ ・PC-8800シリーズ(4MHz機)に対応してみました 狙いは、80系の機能+FM音源の動作確認用ソフトの確保です ・80系と違い、機種の区分が雑です モノクロ出力まわりなど、実機にない機能が使えてしまったりします ・モノクロ出力(特にテキスト)は実機と表示が異なるかもしれません ・「高解像度ディスプレイ」は仮対応です ・400ラインモードは仮対応です ・ライトペンに関する動作も未確認です ・プロテクトに弱いので、変わった画像を見ることができます ・ディスクまわりが弱いので、動かないソフトが多いようです ・R4:88/mkII, R5:88SR でしたが、R4 は公開タイミングを逃してしまいました ・88対応に伴い、各設定ファイルに変更があります ・cfg ・System ROM ほぼ前面変更です。j80.cfg のコメントを参考に書き直してください ・DipSW 全面変更です。 ・デフォルトのファイル(ディレクトリ)の設定 -512 (アナログディスプレイ) を追加しました ・その他の設定:-voln の割り当てが変わりました -vol1 PCG, OPN(FM) -> PCG -vol2 -----,OPN(SSG) -> OPN(FM) -vol3 サウンド@PRN -> OPN(SSG) -vol4 option#1 -> サウンド@PRN -vol5~ option#2~4 -> option#1~4 ・その他の設定:-bus のID(番号)が変わりました ※-bus,-prn は、将来キーワードによる指定に変更する可能性があります ・j80.cmd ・HotStart 廃止 ・MODE=11,12 追加 (各ビットの割り当てにも変更があります) ・+Display +Display=1 に変更 ・+Display=2 追加 ・CRTtype=0,1 追加 (88SR アナログ -> デジタル 切り替え) ・VolumeN=m デバイスの割り当てに変更があります ・BoostMode 追加 (MOTOR ON + RxRDY割り込み有効時に速度リミッターを外す) ・display ・アナログディスプレイ用マップを追加しました 同じフォーマットですがパラメータの意味が違うので、拡張子で区別します .rgb : デジタルディスプレイ用 .512 : アナログディスプレイ用 ・その他の変更点 ・Tape(save),Disk選択時に、フィルターに設定した拡張子以外のファイルを選んだ場合、  「指定したファイル名+デフォルトの拡張子」のファイルが(作成→)選択されてしまう  ファイルが存在しなかった時のみ拡張子を補完するように変更した ・[CAPS]コマンドがコメントアウトされていたので復活させた ・割り込みの制御方法等を調整 ・ホットスタートは NMI ではなかった模様 -> 特別な処理を止めた ・BIT 命令のサインフラグに対応 (MJさん。。。) ・ディスクのレジスタまわりを微調整 ・ディスクアクセスの擬似WAITを増やした (Wiz@88) ・N80SRモード以外で out&h71,0 した場合は、ROMを切り替えないようにした ・ALU/GVRAM/MainRAM 選択ロジックを調整した (88仕様) ・80SRのアトリモード描画色はパレットが反映されるようにした (88仕様?) ・簡素化した手順でも漢字データの読み出しができるようにした (88FR仕様?) ・カラーPCG拡張パレットの実装が冗長だったので書き直した ・イメージ合成 400ライン対応 ・pause 中の画面更新について pause 中に下記状態を変更しても、画面は更新されません ・PCG on/off ・Display 変更 ・Display種類 変更 ・表示設定(B/W出力)変更 DMAのカウンタなどが変化してしまうことによる副作用が心配なため、当面仕様とします ------------------------------------------------------------------------------ [Release 3.2] Ver. 3.1.1 2008.11.30 ------------------------------------------------------------------------------ ・カラーPCG+パレットの動作変更 CRTCの信号線のドキュメントを見つけたので、本体の回路図とあわせて検討してみました よくわからないのですが、改造をすることで「消滅」時の表示が変わってしまうようです 暫定的に下記仕様に変更してみました  +-----------------------------------+-------+-------+-------+-------+  | VSP | L | L | H | H |  | RVV | L | H | L | H |  +-----------------------------------+-------+-------+-------+-------+  | カラーPCG OFF | A1 | A1 | C | C |  +---------------+-------------------+-------+-------+-------+-------+  | カラーPCG ON |前半chr or 白ドット| A2 | A2 | C | C |  | +-------------------+-------+-------+-------+-------+  | | 上記以外 | B | ? | C | C |  +---------------+-------------------+-------+-------+-------+-------+  ※「反転+カラーPCG有効ドット」の表示方法がわからなかったので、仮に C としてある  信号A1:BA,RA,GA   パレットは無視される  信号A2:BA,RA,GA   パレットを適用する  信号B:DOT(B),RAM(R),RAM(G)   パレットを適用する   アンダーライン,オーバーラインは描画されない   (DOT信号は、アンダーライン,オーバーライン,反転の修飾をする前の信号)  信号C:Low   パレットに影響されない   アンダーライン,オーバーライン,反転は無視される ------------------------------------------------------------------------------ [Release 3.1] Ver. 3.1.0 2008.11.22 ------------------------------------------------------------------------------ ・PCG8200 の ON/OFFコマンドの動作がわかりにくいので変更した ソフトウェアSWの強制切り替え -> 8100のパネルスイッチ相当(PCG表示のマスターSW) PCG8200 の 初期状態を「PCG有効」に変更したので、これで殺してください 旧仕様:cfgファイルで初期状態を指定 ・PCG8200対応時のパッチが不十分だったので修正した 目立たないバグがいくつかありました ・フルドットカラー化を踏まえ内部キャラクタコードを変更した ・初期化まわりを整理 ・「PCG8100のフルドットカラー化+パレット」に暫定対応 ・アンダーライン,オーバーラインが勝つ ・シークレットのときも表示される ・Copy モードのときも、RGBバンク指定に従う ・パレットはモノクロモードでも有効 ・拡張したRAMの初期パターンはランダム(固有) ------------------------------------------------------------------------------ [Release 3.0] Ver. 3.0.0 2008.11.08 ------------------------------------------------------------------------------ ・設計変更(1) ・メインメモリ, 画面まわりのクラス設計を変更した ・設計変更(2) ・DMAのコスト負担のさせ方を変更した (少し重くなったと思います) ・PC-8001mkII の動作速度を変更した ・PC-8001mkIISR の動作速度を変更した ------------------------------------------------------------------------------ [Release 3b12] Ver. 3.b.21 2008.09.15 ------------------------------------------------------------------------------ ・サウンド: ・FM音源の割り込みマスクを復活させた 問題が出たので無視&パッチでしのいでいましたが、なんとかなったかな? ・PC-8801-11 の割り込みマスク指定のビット位置が違っていたようなので修正した ・AY-3-8910 のエンベロープの繰り返し処理の位相精度が悪かったので修正した ・AY-3-8910 の音量テーブルを微調整した ・SN76489 の音量テーブルの計算をミスっていた(intで切り捨てハズカシー)ので修正した ・SN76489 の音量テーブルを微調整した ・GSX8800(2枚目)のポートがおかしくなっていたので修正した ・PCS-8081(テクノシンセ)#3,#4の音量調整ができなくなっていたのを修正した その他にも混乱があったようなので精査した ・PCS-8081,PCS-8007 の I/O まわりの実装を少し安全にした ・雑誌掲載のサウンドボード3種を追加した ・PSGによる音楽自動演奏 (AY-3-8912x1 : I/O 1981.12) ・12chシンセサイザーユニット (AY-3-8910x4 : Oh!PC 1982. 8) ・PC-8001ミュージックアダプタ (SN76489x1 : ASCII 1982.12) ※PRN ・プリンタポートを使ったPCM出力に対応した (積分回路(LPF)は未実装) ・メロディールーチン (PD0のみ使用 : ASCII 1981. 3) ・スピーチ・シンセサイザ (PD7のみ使用 : I/O 1982. 2) ※LPFあり ・8bit出力 (PD0-PD7 : 使用実績不明 ) 暫定実装 ・バスに接続するボードとプリンタポートに接続するボードを分離した(共存可能) ・j80の再起動なしでサウンドボードを切り替えられるようにした ・キーボード: ・「ダイオード省略」完全対応 複数ポートをまたいで間接的にショートする場合に対応できていなかった ・ポート11まで対応 (80SR外部キーボード用) ・Z80 ・割り込みで問題が発生したので、RETI を周辺機器に通知するロジックを復活させた 多重割り込みがらみの挙動に違いが出る可能性があります # 過去、多重割り込みのデバッグ中に RETI で戻っていないコードを見つけて # RETIに依存しないロジックで対処できたので廃止した記憶あり # 「RETI で戻っていないコード」が何だったか忘れたので再現試験ができない。。。 ・システム: ・RESET(Clear RAM) で、拡張RAMをクリアしていなかったので対応した クリアパターンは未調査のため、全て 0x00 で埋めています ・UI調整: ・AutoBlaster : 速度を指定したら自動でONにする ・ローマ字カナ入力の ON/OFF をメニューにも追加した ・カナ,CAPSロックキーの ON/OFF をメニューにも追加した ・プリンタポートを使用するサウンド拡張,サウンドの切り替え対応にあわせてUI調整 ・設定ファイル: ・cfg の -psg が実態と合わなくなった&UIの設計変更に伴い -bus,-prn に変更した ・オプションサウンド(-bus,-prn)の値を単純な数値に変更した ・cmd ファイルで -XXX=0 指定が受け付けられなかったのを修正した ・cmd ファイルのコメントが古かったので修正した ・記述漏れフォロー: ・Ver. 3.b.10 で PC-8001「高速化改造」の挙動修正 「ROM WAIT なし」→「ROM+M1 WAIT」なし 「WAITを無視する」回路になっているが j80側ではメモリ以外のWAITを 実装していないので「Memory WAIT」の表現は残した → 今回表現を修正 ------------------------------------------------------------------------------ [Release 3b11] Ver. 3.b.18 2008.08.24 ------------------------------------------------------------------------------ ・FM音源: ・エンベロープジェネレータの出力とpiのビット数のすり合わせをした それらしい音が鳴った時点の実装のまま忘れていた。。。 以前のバージョンでは高減衰時に減衰速度をかさ上げしてしまう傾向があった ・エンベロープに関するレジスタの評価を変更した OPL3の記事から推測した部分にすり合わせ漏れがあった模様 結果的に減衰時間が1.4~2倍になると思われる (このバージョンでは2倍としてみた) ・リリース中に KeyON したときの挙動を修正した →ゼビウスのBGM改善 ・上記にあわせてアタックカーブを(またまた)変えてみた ・初期化漏れ修正 TLを最大減衰に初期化しないといけないようだ ------------------------------------------------------------------------------ [Release 3b10] Ver. 3.b.17 2008.08.17 ------------------------------------------------------------------------------ ・FM音源: ・フェーズジェネレータの動作を修正した (off時に停止しない) ・レジスタの変更を反映させるタイミングを修正した ・アタックカーブを(また)変えてみた ・その他 ・マウント系のUIと動作を変更した ※上記に関連する cmd, cfg ファイルに変更があります。ご注意ください cmd : RemovePNL -> TogglePNL EjectP -> ToggleCAS EjectR -> ToggleREC Remove=n -> ToggleD=n Remove -> TogglePRN cfg : MountMenuFG 追加 MountMenuBG 追加 ------------------------------------------------------------------------------ [Release 3b9] Ver. 3.b.16 2008.08.12 ------------------------------------------------------------------------------ ・ディスク: ※いろいろ手を入れました。エンバグしているかもしれませんのでご注意ください ・READ ID 実装 ・DiskIF(双方) の 8255 の動作モードが 0x91 限定だったのを修正 (暫定パッチ) ・イメージの検索パスの管理方法を変更した 空きドライブの検索パスを、ドライブを問わず最後にセットしたディスクの場所とする ※cfgでドライブ毎に違うディレクトリを指定していても、 最初のディスクセット時に他の空きドライブの検索パスも移動してしまうことになります ご注意ください ・サウンド: ・オーバーフロー対策をした ・FM音源: ・効果音モードまわりをいろいろ間違えていたので修正した ・アルゴリズム変更(指定)時に位相情報をクリアするようにした ------------------------------------------------------------------------------ [Release 3b8] Ver. 3.b.12 2008.07.18 ------------------------------------------------------------------------------ ・CPU,Memory: ・擬似的にマシンサイクルの管理を可能にした ・CPUの消費ステート数訂正 CP A 7 -> 4 INC (HL) 7 -> 11 DEC (HL) 7 -> 11 ・Disk側のCPUに多少のwaitを追加した (ROM,M1アクセス等を擬似的に再現) ・DMAのタイミング等を微調整した (80mkIIの実行速度がおかしくなっているかも) ・80SR: ・GVRAM 選択時のwaitを追加した (テストコード提供:apaslothy様) (まだ実行速度は正確ではない) ・DipSW-5 の実装を変更し、 「N80モードでの GVRAMwait の値の切り替え」 動作を追加した ・FM音源: ・ReleaseRate の計算に間違いがあったのを修正した ・アタックカーブを変えてみた ・その他 ・サウンド周りの設計を大幅に変更した ・1行の「文字数」が 256byte を超えることがあるので、打ち込み用バッファを増やした ・「{」と「}」がテキスト入力できなかったので内部マップに追加 ------------------------------------------------------------------------------ [Release 3b7] Ver. 3.b.8 2008.04.26 ------------------------------------------------------------------------------ ・PCS-8087, PCS-8007 の初期化(音量)がおかしかったので修正した ------------------------------------------------------------------------------ [Release 3b6] Ver. 3.b.7 2008.04.26 ------------------------------------------------------------------------------ ・PCS-8087, PCS-8007 のテンポ (タイマー) を調整した ------------------------------------------------------------------------------ [Release 3b5] Ver. 3.b.6 2008.04.19 ------------------------------------------------------------------------------ ・音源まわりコード全般の精査・調整 ・ボリューム設定周りが壊れていたので修正した ・PC-8801-10, PC-8801-11 に対応 (MIDI系は未実装) ・80SRでもサウンドボードを追加できるようにした ------------------------------------------------------------------------------ [Release 3b4] Ver. 3.b.5 2008.04.13 ------------------------------------------------------------------------------ ・音源まわりコード全般の精査・調整 ・矩形波の生成方法を変更した ・YM2203: タイマー設定値をプリセット値に反映させるタイミングが違っていたようなので修正 エンベロープのカウンタの実装を変更した ------------------------------------------------------------------------------ [Release 3b3] Ver. 3.b.3 2008.04.08 ------------------------------------------------------------------------------ ・音源まわりコード全般の精査・調整  サンプルレートのすり合わせ「精度」の設定に甘い部分や問題があった ・MOTOR音のデータを差し替えた(暫定) ※各デバイスの音量バランスは、将来見直す予定です ------------------------------------------------------------------------------ [Release 3b2] Ver. 3.b.2 2008.04.06 ------------------------------------------------------------------------------ ・音源まわりコード全般の精査・調整 ・YM2203: アタック調整 SSG Type エンベロープ実装 ...カーブは確認しましたが、音は確認していません ・toDo FM音源精度向上 80SR(N80モード)でのGVRAMアクセスコスト調査・実装 ->demo がおかしい (サウンドとアニメの終了タイミングのズレ) VRAMアクセスにwait必要? ------------------------------------------------------------------------------ [Release 3b1] Ver. 3.b.1 2008.04.03 ------------------------------------------------------------------------------ ・FM音源に目立つ未実装や精度不足がありますが、今回からbetaとします ・音源まわり: 設計変更 PCGサウンドと他の音源ボードを共存可能にした (80/mkII のみ) AY-3-8910 のエンベロープを正確(?)にした SN76489 の減衰量を正確(?)にした FM音源まわりは更新していません ・toDo FM音源SSGタイプエンベロープ実装 FM音源精度向上 80SR(N80モード)でのGVRAMアクセスコスト調査・実装 ->demo がおかしい (サウンドとアニメの終了タイミングのズレ) VRAMアクセスにwait必要? ------------------------------------------------------------------------------ [Release 3a3] Ver. 3.a.21 2008.04.01 ------------------------------------------------------------------------------ ・バグFIX: vol[4] の初期化ミス修正 ・FM音源: なんとか音が鳴る程度の実装です FM音源の割り込みマスク廃止 (80SR demo3 の速度が遅かったので) 課題: ・エンベロープ?(特に Attack) ・デチューン? ・SSGタイプエンベロープ未実装 ・変調度 8pi でOK? ・実数のテーブルおよび演算を排除したい ・精度要調整 ・その他 SoundSystem その他を 16bit化した ヴォリュームのデフォルト値を変更 (5->3) ※起動前にお使いの cfg を確認してください (大音量注意) ・toDo サウンド回りの設計を変更する予定(あわせて構成も変更する予定) 80SR(N80モード)でのGVRAMアクセスコスト調査・実装 ->demo がおかしい (サウンドとアニメの終了タイミングのズレ) VRAMアクセスにwait必要? ------------------------------------------------------------------------------ [Release 3a2] Ver. 3.a.20 2007.05.02 ------------------------------------------------------------------------------ ・バグFIX: VSYNC割り込みを取りこぼすことがあったのでパッチを当てた (ゼビウスの速度が正常になりましたが、副作用があるかもしれません) KingFlappy(v2) のタイトルBGMの速度を参考にOPNタイマーのパラメータ修正 ・OPN: コードを整理して、デバイスとチップの実装を分離した レジスタまわりを仮実装 確認用にFMパートをPSGで鳴らしていますがいずれ削除します ・ディスク 将棋(ASCII/80mkII)が起動しなかったので、読み込み終了条件を追加した ・その他 J2SE 1.5.0_11-b03 からスクリーンショットが取れなくなっていた DeflaterOutputStream のバッファサイズを指定して解決 ・toDo 80SR(N80モード)でのGVRAMアクセスコスト調査・実装 ------------------------------------------------------------------------------ [Release 3a1] Ver. 3.a.19 2006.12.31 ------------------------------------------------------------------------------ ・今回から SR 対応バイナリを配布 ただし当面はR2系のメンテナンスリリースの予定 ・バグFIX: Z80 の動作、r2b2→r2b3 のタイミングでエンバグしていたのを修正 ・メインループの種類を整理した ・Crtc: 一行おきモードを適当実装 (ザナドゥのエラー画面で使っていた) ・DiskDrive: READ DIAGNOSTIC 簡易実装 その他、いい加減実装を多少修正 ------------------------------------------------------------------------------ [Release 2.7] Ver. 2.3.2 2006.01.23 ------------------------------------------------------------------------------ ・添付のドキュメントはR3対応を前提に書かれていますが、80SRに関する部分は 無視してください ・コンパイラを 1.4.2_10 に変更 ・バグFIX ・KanjiROM: ・アドレス指定部分のバグを修正 ------------------------------------------------------------------------------ [Release 2.6] Ver. 2.3.1 2006.01.10 ------------------------------------------------------------------------------ ※古いソースを元に作業していました (2006.01.22) ・添付のドキュメントはR3対応を前提に書かれていますが、80SRに関する部分は 無視してください ・コンパイラを 1.4.2_10 に変更 ・バグFIX ・KanjiROM: ・アドレス指定部分のバグを修正 ------------------------------------------------------------------------------ [Release 2.5] Ver. 2.3.0 2005.06.18 ------------------------------------------------------------------------------ ・今回のリリースは、バグFIXとRelease3(80SR対応作業)のフィードバックです 添付のドキュメントはR3を前提に書かれていますので、80SRに関する部分は 無視してください ・j80.cfg, j80.cmd に変更があります ・バグFIX ・MainMemory: ・80mkIIのメモリパターン初期化ミス修正 ・Crtc: ・GVRAMの「要更新範囲」がずれて、更新ミスが起こる可能性があったのを修正 ・アトリ禁止モードの時のPCGのバンク計算が違っていたのを修正した ・T882Cmt: ・仕様設定ミス (4byte未満のブロックをゴミとみなす) The Demon Cristal (電波新聞社:80SR専用) -> 3byte の有効ブロックあり 新仕様:3byte未満のブロックをゴミとみなす ・コード整理 ・IntController: ・80SRでうまく動くように書きなおした (副作用の確認不充分) ・Crtc: ・初期化部分を整理 ・フラグ類の整理 ・「行ずらし」の実装を変えてみた (今回の方が自然?) ・PSG音源追加 ・GSX8800 2枚挿し AY-3-8910 x4 = 12音 ・PCS-8081(テクノシンセ) 4枚挿し AY-3-8910 x4 = 12音 ・PCS-8007(ルンルンシンセ) 2枚挿し AY-3-8910 x4 = 12音 ・アドコムサウンドユニット 6音拡張 SN76489 x2 = 6音 + ノイズx2 ・その他 ・サウンドまわりを R3 と同様の設計に変更した ・音量バランス調整 ・リレー音サンプリングし直し ------------------------------------------------------------------------------ [Release 2.4] Ver. 2.2.4 2005.04.10 ------------------------------------------------------------------------------ ・バグFIX ・「Display変更」で、80mkII の「選択色」がおかしくなる件FIXしました ・Crtc ・コード整理・調整 ・ブリンク周期が 24Frame 固定だったのを可変にしました BugFIXのみにするつもりだったのですが、「VideokunPC」のタイトル画面の ブリンク速度が気になったもので... ------------------------------------------------------------------------------ [Release 2.3] Ver. 2.2.3 2005.04.04 ------------------------------------------------------------------------------ ・バグFIX ・IntController / 演算強度のミス -> STRANGE WORLD(プログラムポシェット) の不具合が改善されます ・Crtc / mkII 関係の更新フラグが(シフトし過ぎて)外れていた (r2でエンバグ) -> mkIIでの画面更新ミスが改善されます apaslothy様、動作報告ありがとうございました。 ------------------------------------------------------------------------------ [Release 2.2] Ver. 2.2.2 2005.04.03 ------------------------------------------------------------------------------ ・バグFIX ・拡張メモリの書きこみミス修正時のエンバグを修正 80mkIIのユーザーマニュアルに、 「実装されていないカードを指定した場合、本体内のバンクが選択されます」 とあったが、0xE3ポートで指定する PC-8801-02N の場合に限った注意のようだ 勘違いしてエンバグしてしまった。。。 ・ついでに ポート0xE2 の in側 を実装した ------------------------------------------------------------------------------ [Release 2.1] Ver. 2.2.1 2005.04.03 ------------------------------------------------------------------------------ ・バグFIX ・拡張メモリの書きこみミス修正 (高をくくって)常に書きこみ可にしていたのですが、ダメだったようです。 ノックアウトモンスター(TIP)で、キャラクタのタイル絵を壊してしまう問題が 出ましたので、書きこみ側もチェックするようにしました。 なお、j80で対応している拡張メモリは PC-8012-02 の bank0 のみです。 ------------------------------------------------------------------------------ [Release 2.0] Ver. 2.2.0 2005.03.27 ------------------------------------------------------------------------------ ・バグFIX ・PCG更新フラグのクリアミス修正 (r2b4でエンバグ) ・Cmtロード中のスキップ処理のエラーを修正 (r2b8でエンバグ) ・全般 ・旧lightモードの精度を上げ「標準」とした 旧標準モードは、サウンドありの場合のみ選択できる「高精度モード」とした ・メニューキャンセル,コマンド実行後、勝手に resume しないようにした ・DMA off(& 80mkIIグラフィック非表示) の場合は、 「合成」コマンドを無視する 「スクリーンショット」コマンドを無視する 旧動作:バッファの内容を使って処理する ・RESET時に全RAMを初期化するスイッチを追加 ・cfg 追加変更 (詳細は j80.cfg 参照) FLIP, SOUND, BEEP, OPTION, LookAndFeel※ LookAndFeel ※MacのデフォルトL&Fだと「保存」ダイアログでFileFilterが効かないBug(?)対策 ・色数 0 指定でデスクトップの色数を使うようにした ・コード全般を簡素化 ・コンバータ全般、エラーハンドリング調整 ・スクショ関係のコードを書き換えた (メモリ節約&高速化) ・Z80: ・割り込みまわりを調整 ・Rレジスタの更新タイミングを調整 ・Crtc: ・全画面更新の必要性チェックの方法を一新した ・power-off中に全画面したとき、背景色がおかしくならないよう対策 ・DiskMemory: ・RAM未実装エリア(0x8000〜)への書き込みをできない様にした ダンプ範囲を0x7FFFまでに減らした ・Sound: ・J2SE1.5系でのBEEPの再現性改善のため「サイン波合成モード」追加 ・制御方法を調整 ・mkIIのリレー音を追加 ・パッチ系 ・J2SE1.4.0(Win32)で全画面中にダイアログがおかしくなることがある件対策 ------------------------------------------------------------------------------ [Release 2b10] Ver. 2.1.8 2004.07.02 ------------------------------------------------------------------------------ ・全般 ・WindowEventのハンドリングを簡素化 ・Crtc(JPanel)#paintComponent():public → protected に変更 ・power-off起動復活 R2b9@Win32+J2SE1.3.0 で起動時にメニューの描画をミスる現象が発生したため ------------------------------------------------------------------------------ [Release 2b9] Ver. 2.1.7 2004.07.01 ------------------------------------------------------------------------------ ・全般 ・DiskROMを指定しないと、NullPointerException で落ちる件修正 ・強引な描画を止めた (負荷上昇は許容範囲と判断した) ------------------------------------------------------------------------------ [Release 2b8] Ver. 2.1.6 2004.06.27 ------------------------------------------------------------------------------ ・全般 ・naoさんにLinux上での挙動チェックをしていただきました ありがとうございました ・全般的なコードの整理中です / 今回のリリースは暫定版です トラブルの有無を報告していただけると助かります ・コマンド類を大幅に整理・変更 (j80.cmd 参照) ・起動時に power-off にする処理を暫定的に廃止 ・GUIまわりのクラス設計を変更 ・(ソースの)使い勝手を考えてクラス設計を調整 ・メニュー選択中のキーボードコマンドを無視するようにした ・cfg SOUND:第2パラメータを省略した場合、第1パラメータの半分とする ・cfg ROM系:ファイル名無指定時の動作を変更 (その行を無視する→デフォルトに戻す) ・[Alt]単独押しでマウスカーソルが変わる件 j80.cmd にコメント追加 ・IME使用不可の設定にしたが、J2SE1.3.x(Win)では無効にできないようだ (ファイルダイアログなどでの日本語入力は問題いハズ) ・フルスクリーン化まわりを(多少)改善 デスクトップの色数から変更できるようになった (J2SE1.4.0ではダメっぽい) ・J2SE1.5.0_beta2 を試したところ、なんか音がおかしい -_-: ・初代8001モード: ・高速化改造(ROM read時 WAIT なし)に対応 ・80mkIIモード: ・ディップスイッチをメニューから変更可能にした ・デフォルトを「ROMread時 WAIT なし」に変更 ・リセットで現在時刻を取得し直さないようにした ・80/mkII共通 (Keyboard): ・通常のリセット時には、I/Oポートの状態をクリアしないようにした (バッファ入力中はクリアする) ・イベントまわりを改修 キーイベント消費まわりの動作がJavaのバージョン間で違うようなので、 思いきって独自実装に書き替えた 従来のパッチ([Alt]のみ例外的に扱う)は削除した ・80/mkII共通 (DiskSystem): ・(いつのまにか)新規ディスクを作れなくなっていたのを修正 ・Power off→on のとき、RAMをクリアするようにした (不具合対策ではない / メニュー表記との整合の問題) ・ディスク挿入>勝手にPower-onしていたのを止めた (別の機構を実装) ------------------------------------------------------------------------------ [Release 2b7] Ver. 2.1.3 2004.05.08 ------------------------------------------------------------------------------ ・Cmt: ・Cmt2Cmt更新(ファイルリストをうまく整形(表示)できない場合があったのを修正) ・タイムトンネル(BOND SOFT/80mkII)のローダーに対応した ・先頭データ(識別子)が 0x00 のブロックが混じったファイル対策 (暫定) [解説] ローダーによっては、「末尾の数バイトを読まない」仕様になっています。 実機ではテープの走行により捨てられるデータです。 しかし、j80の CMT/IFは簡易実装のため、次のブロック先頭として読まれてしまいます。 幸いなことにほとんどの場合、このデータは 0x00 だったため、 「MOTOR OFF 時に 0x00 をスキップする」 パッチを当てることで回避してきました。 しかし、80mkII用のソフトで識別子に 0x00 を使ったものがあり、 上記パッチが副作用を起こすことがわかりました。 今回の対策は、副作用回避のための暫定的な再パッチです。 80mkIISR用では、捨てられるデータが 0x00 でないケースも確認しており、 恒久対策として、 「MOTOR OFF で、次のブロック先頭までスキップする」 といった実装をすべきですが、CMT形式を基準にしているのですぐには対応できません。 ------------------------------------------------------------------------------ [Release 2b6] Ver. 2.1.2 2004.05.04 ------------------------------------------------------------------------------ ・全般: ・メモリイメージのダンプ ・ファイル名変更:dump.mem -> main.mem ・追加:vram.mem, disk.mem ・MainMemory: ・メモリ選択(ポート0xE2)の不具合修正 (N80漢字BASIC が動くようになりました) 動作確認等で areareaさんにお手伝いいただきました / ありがとうございました ・Crtc: ・ライトペン無効で、マウスカーソルを消せるようにした (LightPen コマンド追加) ・タッチパネルが有効な場合、ライトペンは 無効 扱いとすることにした ・状態にあわせてマウスカーソルを変えるようにした ・PCG8200 の on/off 制御を(実機通り)ソフトswのみの実装にした ただし、cfg,メニューなどからの on/off 機能は残した ・Cmt: ・初回に -TMP ディレクトリのファイルを指定したときのエラーを回避した ・解析エラー時の「イメージ内容表示」の改善 エラーメッセージのみ -> 解析できたところまで表示する ・pauseModeでの動作がしっくりこなかったので修正 pause解除しても、FF,REWで再びpauseしてしまう -> FF,REW 直前の状態をキープする その他、微調整あり ・常にpause可能にした (t|PLAY コマンド削除 / PLAY コマンド追加) ・Calender: ・経過時間の計測方法変更 / システム時計参照 -> 実行ステート数カウント 母艦の時計とは同期しなくなりました ・1Hzクロックの挙動を正確(?)にした ・カレンダーセットで 1Hzクロックリセット ・「秒」の最下位ビットを反映させる ・コード整理 ------------------------------------------------------------------------------ [Release 2b5] Ver. 2.1.1 2004.04.17 ------------------------------------------------------------------------------ ・全般: ・「PCGoff時に out2,0する」コマンド廃止、「out2,0」コマンド追加 ・VRTC割り込み実装 (「サラダの国のトマト姫」などが動くようになりました) ・割り込みコントローラー(モドキ)を別クラスに分離 ・DiskSysの割り込み処理を簡略化した HALTするのを待って割り込む -> 常にHALTをただのNOP扱いにする ・1Hzクロック実装 ・無音時の速度チェックを、1/600secループの外に出した ・メニューを整理した ・DiskIF: ・8255ポートCまわりを修正 ・Crtc: ・アトリ無効のとき、DMAコストを下げるようにした ちなみに、アトリのサイズ変更は未対応です コードは準備してありますが、使ってるソフトが見つかるまで対応しません ------------------------------------------------------------------------------ [Release 2b4] Ver. 2.1.0 2004.04.10 ------------------------------------------------------------------------------ ・全般 ・コンパイラを 1.4.0_03 から 1.4.0_04 に変更 ・速度調整のあたらしいアイデア採用 (サウンドAPIが原因で一定時間で落ちる件に有利) ・ファイル読込み時のエラー処理を強化 ・ファイルダイアログを調整 (改善) ・cfg拡張・変更 (j80.cfg のコメントを参照願います) コマンドラインのオプションを廃止 ・cas(job) 拡張・変更 ・予告より早いですが、IPL の「|」,「^」を廃止しました ・*PEN → *PNL (推奨タッチパネル) ・*KEY 追加 (推奨キーマップ) ・指定(実行パスからの相対パス指定) 追加 ・BAS/name= に「文字コード指定」を可能にした ・キーボードコマンド開放 (j80.cmd のコメントを参照願います) ・J2SE1.4.2 で、メニューの決定に[Enter]が使えなくなっていたので対策 ・PC-8001mkII 仮対応 ・タイマー割り込みのベクトルを変更 (0x00→0x04) ・拡張RAMの選択がうまくいかないことがあったので改修 ・Crtc ・b/w color3,7 が壊れていたのを修復(r2b3で壊した) ・chr$(0)の描画をスキップする処理を廃止 ・「アトリビュート無効」モードに対応 ・80mkII の GVRAM 対応コード追加 ・PCG8200対応 (80mkIIモード時のみ) ・DMAの動作を変更+GVRAMコストを反映 ・VRTCビットを反転させなくても良くなった (一部のゲームのスピードが狂うため、辻褄合せをしていました) ・BEEPの濁りが増した ・ディスプレイの「信号なし」の場合の色を設定できるようにした ・PCG on->off 時に out2,0 するモードを設けた ・Cmt ・bas,bin もそのまま読めるようにした ・オペレーション機能強化 ・フルスクリーン ・1.4.0 以外でも(なるべく)落ちないようにした ・Windowに復帰後ダイアログがおかしくなる不具合あり ・マウントしているテープ・ディスクを表示するダイアログを追加 ・Disk ・「モーター回転待ち」を回避するパッチ当てを止めた ・ディスクの有無 と DiskSys有効/無効 の関連付けを止めた  -> ディスクを入れないと、起動(リセット)に時間がかかります ・ステータス、リセットまわりを調査、修正  -> 起動後にドライブ2にディスクを入れたときの挙動がマシになった ・フォーマットをそれなりに実装しなおした ※連結イメージは使えません / フォーマットすると後ろのデータは消えます ・Printer ・出力ファイルを指定可能にした ・起動直後上書き/その後は追記 -> 常に追記 に変更 ・Keyboard ・80mkIIの[TAB]キーに対応 (要:80mkIIモードで起動) ・J2SE1.4〜 では実行環境の[Tab]キーを使えるようにした ------------------------------------------------------------------------------ [Release 2b3] Ver. 2.0.2 2003.06.29 ------------------------------------------------------------------------------ ・Cmt ・[Alt]+[BS] の動作を簡略化 ・従来、pause させていたのを廃止しました。 ・ImageMixer ・ゴミコードが混ざっていたのを削除 ・200Line限定に書き換え ・Image2Png ・メモリを節約 ・MainSystem ・条件によっては速度調整がうまくいかなくなることを発見  特に無音時 / サウンド有効の場合は気づかないだけ ...対策しました  R1系でも再現するはずですが、放置します ・速度調整の冗長な部分を簡素化 ・Crtc ・コードを大幅に整理  フォント描画は速くなった  セミグラは特別扱いをやめたのでちょっと遅くなった  再描画が必要なデータ判別の精度&効率 UP (特にPCGとの絡み)  DMA走査範囲がおかしくなる可能性を発見/修正 (R2b1or2でエンバグ) ・処理の簡略化  0x00 は常に空白とします(フォント改造しても表示されません)  行数、キャラクタH による画面下の余白処理を変更&簡略化  ...ゴミが出たら教えてください / 直します ・Z80 ・コードを大幅に整理 (「// 後で調べる」なんてコメントを発見して...) ・複数の実装を比較中。。。 【Release1でのバグ / バグの疑い】  RETN break していなかった (次の RETI も実行して break)  EX (SP),I? IX(IY)下位 8bit の上位 4bit をコピーし忘れていた  ADC,SBC(8bit) CY=1 の時の Hフラグが微妙におかしい?  NEG Hフラグ違ってた?  ブロック転送 動作が違っていた?(結果的にM1のメモリwaitが少なかった?)  割り込み 適当だった ・DiskDrive ・コード整理 ・DiskSystem ・スレッド化まわりのコードを削除&整理  > サブシステムのサブスレッド化は復活させません ・DiskMemory ・DiskMemory#mem.poke16() 0x3FFF,0x4000 に書きこもうとする場合 NG だった ・その他 ・コンパイルオプション「-g:none (デバッグ情報なし)」追加  → classが小さくなった / 実行速度にはほとんど影響なし ------------------------------------------------------------------------------ [Release 2b2] Ver. 2.0.1 2003.04.06 ------------------------------------------------------------------------------ ・全般: ・「cfg」を修正する必要があります (またですか?) ・cfg の -PEN:ファイル指定 → ディレクトリ指定に変更 ・ディレクトリは、ダイアログからの探索root (初期値) ・メニュー選択時などのレスポンスについて調整 NT系では(条件によって?)悲惨なことになっていたようで... 対策はしたつもりですが、治っているかわかりません > モ〜リンさん、障害報告ありがとう > あおさん、急なテストに付き合ってくれてありがとう ・クロックを 4MHz → 3993600Hz に変更 ・cfg中でカレントパスを相対パスで指定するとファイルダイアログの動作がおかしくなる Win95+J2SE1.3限定のバグかと思って放置していたら、Win98でも再現した... ・Windows9x + J2SE1.3.1_06 再現する ・Windows9x + J2SE1.4.1_01 再現しない ・上記以外未確認 ...対策しました ・起動時にペンマップを読まなくても良いように調整 ・[DumpRAM], [OverDrive] は「強制 pause」→「勝手にresume」タイプの動作に変更 ・j80仮想ペンのマッピングファイル読み込み中は、pause させる コレ、将来キーの少ない環境でも遊べるようにする布石だったりもするのですが... ・キーボードバッファのタイミングをファイル入力時に安定して読むように調整 ・Cas2Cmt: ・*PEN 対応 (指定のみ / 実際に読むのはユーザーのリクエストによる) ・[F6]:CAS で指定されたペンマップを読む (指定されていない場合はクリア) ※ロード前にペンマップを読んでください (後だと次のタイトルになってしまいます) ・Calender: pause時間をカウントしない処理が外れてたのを修正 ・サウンド: ・MOTORリレー音サンプリングやり直し&再現性向上を目指して内部形式変更 ついでに、on→off/off→on を分けてみました ・片振幅しか使っていなかったので、マイナス側も使うことにした PCGサウンドをマイナス側に移したので、位相が反転することになります → BEEPと同時に鳴っているときの音色が変わってしまうものがあるかもしれません ・ボリュームバランスを微妙に変えました ------------------------------------------------------------------------------ [Release 2b1] Ver. 2.0.0 2003.03.30 ------------------------------------------------------------------------------ ・[コードの整理等] ・「cfg」を修正(追記)する必要があります いろいろいじったので、エンバグしてるかも ^^; >特に大きく手を入れたクラス  ・Keyboard.class  ・Calender80.class  ・アトリ展開整理...(ロジックは変更してません)  ・全体の制御 (pause/resume/reset まわり) ・無駄な配列をコンパクトに... / 全体的に軽くなった? ・起動時のメッセージ出力を抑制 ・[エミュレーション全般] ・-light 起動時は SubCPUのクロックを固定にしていたのを「可変」に変更 ・タイマー割り込みの実装を、ExtendedSystem→Keyboard に移動 (高速化のため) ・「MainCPU OverDrive」追加 (x2, x4)  ・CPUとメモリウェイトのみ高速化  ・DMAコストやクロック割り込みはそのまま   ...VRTCで速度調節してるモノは(見た目)速くなりません  ・メニューの時間単位の指定もそのまま(読み替え不要) ・IPL文字列のエスケープルールを微調整 > CASファイル等の拡張について ・スクリーンショットを連番でセーブ (max 16) ・スクリーンショット確認用HTMLを上記に対応させた ・テンポラリ(.cmt, printer.dat, dump.mem, screen_?.png)ディレクトリ指定可に ・一部のコマンド変更  ・スクリーンショット [F6]→[F9]  ・エコーon/off    [F9]→[Alt]+[Q] ...さらに変えるかも   ※[F6] はユーザー開放 or 任意の「同時押し」キーとして使うか検討中    ...[F6] で、全ポートの状態を一発再現 ・[サウンド] ・BEEP/PCG 音量のバランス微調整 ・BEEPをテーブル方式に直した(戻した?/この方が軽い) ...再現性に影響はありません ・MOTORリレー音暫定実装 (betaですから...)  ・on→off / off→on ...同じ音  ・音がイマイチ似ていない (ヘッドフォンでサンプリングした)  ・読みこみや内部形式変換がメンドクサイので、任意のwavファイル対応はしません ・[Keyboard] ・「キーマップファイル」を修正する必要があります ・ローマ字カナ変換をテーブル参照方式に変更 ・ローマ字カナ変換:Q.. のマップ抜け発見 / 追加 ・ローマ字カナ変換で使うキーを「キーマップファイル」に記述するようにした ・「ローマ字入力<->カナロック」の切り換え動作と表示を変更 ・エコーon/off でバッファの強制クリア ・エコーon/off でポートの強制クリア (押しっぱなし回避) ・「j80仮想ペン入力」機能追加  ・せっかくマウスを読むようにしたので作ってみました  ・「マッピングファイル」を書いて対応します  ・オセロやマージャンなどがマウスでプレーできるようになります ・ファイル「打ち込み」機能追加 (ベーマガに敬礼!) ・「ダイオード省略」の再現 ・「連射」機能などのカウンタ処理をクロック割り込みの処理と統合  ・メニューでの指定方法が若干かわりました  ・以前の「連射」は、動作がおかしかったかも ^^; ・[Calender] ・書き換えたので、プリンタポートのゴミが出やすくなったかも... ・月の送り処理を実機で確認->OK (いまさらかよ!) ・[Cmt] ・[Alt]+[BS] のバグ発見→修正  ...タイミングによっては、再び押しても[PAUSE]のママになる件 ------------------------------------------------------------------------------ [Release 1.4] Ver. 1.1.1 2003.02.23 ------------------------------------------------------------------------------ ・Disk メニュー [Drive Online] の順番を変更 ・CRTC (CRTCscreenH * CRTCcolumnH) < 400 のとき、画面下をクリアする  → VIDEOKUN PC (PiOスペ) 実行前に画面クリアしなくて良くなった ・ライトペン仮実装 ・マウスのボタンを押す=ペンを押す [制限事項] ・VSYNC等無視 ・「赤」ドットの場所でも読み取り可能 ・ドットのない場所でも読み取り可能 ・左端のX座標は 6(88のROMを解析) で固定 ・「押したまま移動」でも、押した時の座標を返し続ける [お願い] ・ライトペンは現物がないので良くわかりません ・下記2点について情報をお待ちしております ・カタログにある、「8001の改造もしくは変更が必要」の内容 ・X座標の補正値は(8001の場合も) 6 で良いのか? ------------------------------------------------------------------------------ [Release 1.3] Ver. 1.1.0 2003.01.05 ------------------------------------------------------------------------------ ・ローマ字カナ変換のバッファスピード変更 ・80桁時に 25ms だと読み取れない → 50ms ・ディスプレイの種類(色)を外付けのファイルで指定するように変更 ・デフォルト:./display/color ・キーマップのデフォルトを変更 ・./keymap → ./keymap/106jp ------------------------------------------------------------------------------ [Release 1.2] Ver. 1.0.2 2002.12.30 ------------------------------------------------------------------------------ R1.1 は間違えてテスト版を公開してしまいました 「Diskあり」の時のクロックがおかしいです 問い合わせがあったとき混乱するので、バージョン表記を上げました ------------------------------------------------------------------------------ [Release 1.1] Ver. 1.0.1 (テスト版を間違えて配布) 2002.12.29 ------------------------------------------------------------------------------ ・cas,キーマップファイル中に「TABだけ」の行があっても通るようにした ・動作の軽量化 (その1) ※負荷は「起動後なにもしていない状態」で観測 J2SE1.3 + Win98 で、CPU負荷が R1の 75% に低下 「J2SE1.4系だと重い」現象が発生しなくなった ・動作の軽量化 (その2) ・軽量版を復活 (-light オプション)  上記の70% (R1の53%) の負荷で動く (60FPS時) [注意] ・タイマー割り込みを含め、機能制限ナシ ・余裕のある環境だと、描画がギクシャクする ・キーの読み取り精度が若干低下する ・タイマー割り込みの精度が若干低下する ・BEEP の再現性が若干低下する ・30FPS (初期値) ・DISK側の CPUクロックは、1MHz(程度) で固定 ------------------------------------------------------------------------------ [Release 1] Ver. 1.0.0 2002.12.23 ------------------------------------------------------------------------------ ・コンパイラを 1.4.0_03 に変更 ・cfgファイル中の「アドレス指定」に、16進表記なども受け付けるようにした ・casファイル中の「アドレス指定」に、16進表記なども受け付けるようにした ・ファイルアクセスまわりを少し安全に書きなおした ・ファイルまわりのエラー発生時の挙動を整理 [CAS - 初期化時]  ・TITLEが無い → cas 排出 [CAS - タイトルREAD時]  ・TITLE が空 → cas 排出  ・casファイルに記述したファイルが見つからない → cas 排出  ・casファイルに記述したファイルの変換等でエラー → cas 排出 [T88 - READ時]  ・t88ファイルの変換エラー → t88排出 ------------------------------------------------------------------------------ [beta 3.1] Ver. 0.9.40 2002.12.15 ------------------------------------------------------------------------------ ・cas 中のファイルが見つからなくても落ちないようにした 記述の間違いについては、落ちます ^^; ・[Alt]+[E] ドライブ2にディスクを入れる...追加 ・power-off 時の制御がいいかげんだったのを修正 ・sound有効の時一定時間で落ちる件は、Java(VM or API)側のバグだった模様 ------------------------------------------------------------------------------ [beta 3] Ver. 0.9.39 2002.12.08 ------------------------------------------------------------------------------ ・cfg,cas,キーマップ ファイルの「文字コード指定」に伴う調整 ・*IPL 拡張 ・T88 の読みこみ機能追加 ・ローマ字カナ変換 ・ryA-O が壊れてたのを修正 ・ds? を誤認識していたのを修正 ・c?,c?? のパターンを追加 ・j80 と j80_f を統合した ・コンパイラを 1.4.0_beta3 に変更 ・拡張RAMを実装 (CP/M ,S-DOS1.1 が動きます) RAMのダンプは、拡張RAM+本体RAM の 64K になります ・タイマー割り込みを実装 ・FDC のフォーマットコマンドを(適当)実装 j80 のドライブは、標準的なフォーマットしか使えないと思ってください p80make で作った d88 への書きこみは *禁止* です ・N-BASIC 1.3(8001mkII) のとき、ディスクが使えない件に対策 ・CP/M が動きました ・S-DOS1.1 も動きました ------------------------------------------------------------------------------ [beta 2.19] Ver. 0.9.38 FullScreen TEST版 同梱 2002.11.04 ------------------------------------------------------------------------------ ・1byte目の M1 サイクルでしか 1wait 入れていなかったのを修正 (RAM) ・PCG初期型(単音/ソフトウェアSWなし)を選べるようにした ・メニュー操作などで画面の更新ミスが起こり難くなるように調整した ・b2.17→18で、アンダー/オーバーラインの描画がおかしくなっていたのを修正 ・ローマ字カナ変換をキレイ(?)に書きなおした ------------------------------------------------------------------------------ [beta 2.18] Ver. 0.9.37 FullScreen TEST版 同梱 2002.10.27 ------------------------------------------------------------------------------ ・サブシステムのサブスレッド化を一時的に廃止 (問題なければ廃止の方向で) ・サブシステムをサブスレッド化しない場合もクロック指定できるようにした ・メモリダンプ (dump.mem) 機能追加 ・PC88.ROM を流用した場合、ディスク側にN-BASICの一部も転送していたのを修正 未実装エリアを含め16kB満タンになるまで止めてなかった... ・casファイルのオペレーションを変更  →タイトル末端までいったら次のタイトルへ移る (旧:同じタイトルを巻き戻し) ・「モノクロ−反転」時に out81,0 した場合、画面は白(color 7)でクリアする ・DMAコストを1行分まとめて負担させる方法に戻した  →BEEPの濁り具合が「改善」されました ^^; ・「行のライン数」の指定方法がわかったので、実装を正確(?)にした 「行数指定」の最大を 32 に制限していたのを外した (64行までフルに可能) ただし、25行を超える場合は -column オプションが必要 ・CRTC(DMA)の「行ずらし」適当実装 ------------------------------------------------------------------------------ [beta 2.17] Ver. 0.9.36 FullScreen TEST版 同梱 2002.10.10 ------------------------------------------------------------------------------ ・Minoさんのページ で、BEEP音源ドライバー とデータの公開がはじまりました と云うわけで、記念バージョンです (b2.16 だと、きれいに鳴りません) ・再生レートを 48kHz に戻した ・メインループの精度上げた Minoさんにはテスト版の評価をしていただきました ありがとうございました ・VIDEOKUN PC (PiOスペシャル[1])に対応しました (モ〜リンさん ありがとっ ^^) 20行/25行固定にしていた制限を外しました 64行まで対応するのはメモリの無駄遣いなので、32行をmaxとしました →不都合のあるソフトをお持ちの方はご一報ください 画面下のゴミは、気にしないでください ------------------------------------------------------------------------------ [beta 2.16] Ver. 0.9.35 FullScreen TEST版 同梱 2002.10.05 ------------------------------------------------------------------------------ ・WILD SWAT (コンピュータランド北海道)の「クラッシュエフェクト」に適当対応 ・旧メインループ (-xxx オプション) コード削除 ・電源オフで起動する (-off) 追加 ・プラットフォームの違い対策用のパッチを除去した ------------------------------------------------------------------------------ [beta 2.15] Ver. 0.9.34 FullScreen TEST版 同梱 2002.09.17 ------------------------------------------------------------------------------ ・機能追加なし (コード整理のみ) ------------------------------------------------------------------------------ [beta 2.14] Ver. 0.9.32 FullScreen TEST版 同梱 2002.07.21 ------------------------------------------------------------------------------ ・拡張ROMエリアが未実装の時 0x00→0xFF ・ディスクのメモリマップが違っていたので直した (動作には影響なかったハズ) ・disk.rom が 2k のままでも大丈夫なようにした (今更ですが...) ・Cmt ・「タイトルの説明を表示」が「タイトルの一覧表示」になっていたのを修正 ・セーブ側:無意味(?)なデータがステータスチェックなしで出力されることがある  →落ちないよう対策 ・フルスクリーン化に失敗したらWindow に戻す(コメントアウトしたままだった) ・新ループの速度調整頻度を 200ms(1000ms) → 50ms(250ms) に変更 ...過去250ms の実行時間から、次の 50ms 間の sleep(1) 頻度を決める ------------------------------------------------------------------------------ [beta 2.13] Ver. 0.9.31 FullScreen TEST版 同梱 2002.06.30 ------------------------------------------------------------------------------ ・FullScreen 対応版 ・FullScreen 対応版 (j80_f.jar) の実行には、J2SE 1.4 が必要です ・Windows98 + J2SE1.4.0-beta3-b84 でコンパイルしました ・FullScreen に切り替えた時、画面の再作図をミスることがあります (F11 を2回押せば修復) ・printer.dat にできるだけゴミが混ざらないようチューニング ・ZAXUS がおかしくなってた(0.9.28〜)のを発見→修正 ・casファイルまわりのクラスの仕様を整理 ・「メインループ」を書き換え、「sound 有効時のギクシャク感」対策 念のため、-xxx オプションで、「旧ループ」も選択できます(今回限りの予定) ・cfg ファイルのサウンドバッファの指定方法変更 ・cfg ファイルのキーワードを変更 ・ROM → ROMs ・-MAP → -KEY ------------------------------------------------------------------------------ [beta 2.12] Ver. 0.9.30 2002.05.18 ------------------------------------------------------------------------------ ・Cmt.class ・丁寧に書き直し(ちょっと安全になった?) ・Alt+BS で、プレーヤーを一時停止 ・動作状態のアニメーションを表示 ・Z80.class ・HALT時 クロックを 1/100 相当にしていたが、reset直後が重くなる現象確認  → 1/10 相当に変更 ・Calender.class ・取得したカレンダーの初期値が、「12時間制」だったのを修正 ・カレンダー実装を正確(?)にした ・Calender.class に PrinterIF 追加 (出力ファイル:printer.dat 固定) ・その他 ・起動音まわりのトリック削除 ・サウンド再生ビットレート 48000 → 24000 に変更 ・その他サウンドまわりのパラメータも微調整 ------------------------------------------------------------------------------ [beta 2.11] Ver. 0.9.29 2002.04.25 ------------------------------------------------------------------------------ ・Z80 に、コメント閉じ忘れ発見 「LD (lm),HL」が外れてた ただし、未定義命令 (ED 63) の方ね / 実害ないでしょ? ------------------------------------------------------------------------------ [beta 2.10] Ver. 0.9.28 2002.04.24 ------------------------------------------------------------------------------ ・HotSTART(STOP+Reset) が効かなくなってた(メニューからはOK)のを直した ・ファイルがopenされているときは、ファイル変更、頭だし不可としたが、 一部のローダー(マリオ)で、open したままになることがわかった (最後に MOTOR OFF しない) とりあえず RESET で、ファイルを強制的に close することにした ・CAS を拡張し、bin,bas に対応 tool80 での変換は不要になりました CAS ファイルの説明は、pcm8001(r1.1) に添付の cas.txt を参照願います ------------------------------------------------------------------------------ [beta 2.9] Ver. 0.9.27 2002.04.20 ------------------------------------------------------------------------------ ・メモリREAD時のウェイト調整 常に1ウェイト → ROM は常に、RAM は M1 サイクル時のみ1ウェイト あわせて、DMA のコストも調整 ・CAS ファイルに対応 CASを使うと、頭だしができます (CMTは巻き戻しのみ可能) 上記により、間接的にT88読み込み可 ・ROM等の指定に設定ファイル(j80.cfg)を利用するように変更した ※ デフォルトのパスが変更されています、ご注意ください ・カレンダー(DATE$) ...設定すると一日進むバグ修正 (いつ壊したんだろ?) ・ファイルがopenされているときは、ファイル変更、頭だし禁止 (テープのみ / ディスク側未対応) ------------------------------------------------------------------------------ [beta 2.8] Ver. 0.9.25 2002.02.17 ------------------------------------------------------------------------------ ・Z80.class 修正 未定義コードを拾った時の挙動がいいかげんなままだったのを直しました 暴走した時の挙動が改善され、ごく一部の妙なゲームが正常に走るようになります ・実行速度を調整(メモリREAD時のウェイト & DMAコスト調整) ------------------------------------------------------------------------------ [beta 2.7] Ver. 0.9.24 2002.01.20 ------------------------------------------------------------------------------ ・ImageMixerちょっと調整(補正カーブ) ------------------------------------------------------------------------------ [beta 2.6] Ver. 0.9.23 2002.01.11 ------------------------------------------------------------------------------ ・Cmtセーブ側:新規ファイルのとき、ファイルが作られないバグFIX ・合成スクリーンショットの色補正カーブ変更 ------------------------------------------------------------------------------ [beta 2.5] Ver. 0.9.22 2002.01.09 ------------------------------------------------------------------------------ ・Disk System のサブスレッド廻りをお行儀よくした Winでも Disk のサブスレッド化 OK になった ------------------------------------------------------------------------------ [beta 2.4] Ver. 0.9.21 2001.12.24 ------------------------------------------------------------------------------ ・メインループの精度上げた → BEEP再現性向上 ・スクリーンショット取得機能強化 (多バンク合成) ・Linux + J2SE1.3 で、画面サイズがおかしくなる現象回避 ・キーボードショートカットの「リピート」を(できるだけ)回避するようにした ------------------------------------------------------------------------------ [beta 2.3] Ver. 0.9.20 2001.12.16 ------------------------------------------------------------------------------ ・[Calenderクラス] ・無茶なオペレーションでも落ちないようにした ・pause時にカウントアップを止めるようにした ・[Soundクラス] ・音飛び改善 ・BEEPの音色 別バージョン試行 ・PSGの初期状態を忠実に再現...今まであえて止めてました / うるさいので ・[Crtcクラス] ・単純化(負荷分散処理などやめた) ・多バンク対応バージョン(数%重い)に一本化 ・カーソルON/OFF で再作図をミスる場合があるのを改修 ・DMA走査範囲制限&アドレスオーバーフローチェック追加 ・20行/25行で、DMAコストを変えた ・VRAMアドレス変更時の不具合改修(ポート 0x68 適当実装) ・3D MAZE(PCmag '83/10) の「爆破エフェクト」対応 ・VRAMサイズ可変対応(ポート 0x65 実装)  → Twenty-7(PiO '84/) 2画面合成お絵描きツール に対応 ・PCG更新時に再作図ミスが発生することがあったのを解決 ・[Cmtクラス] ・Cmt ロードデータの受け取りを遅らせる仕組みを追加 ・ → [STOP] で Tape read ERROR が出るようになった ^^ ・[Diskクラス] ・クラス分け、コード調整 ・書き込み仮実装 ・[j80クラス] ・-silent モードのメインループが2.5MHz相当になっていたのを修正 ・最小化時にpauseするようにした ・[その他] ・コード調整 & パフォーマンス向上 ・System ROMのパスを変更 ・PC-8001.FON(Hiroshi Kanemoto さんドット打ちで作成) の添付をやめる  → フォント作成ツールを別途配布予定 ------------------------------------------------------------------------------ [beta 2.2] Ver. 0.9.12 2001.11.12 ------------------------------------------------------------------------------ ・ローマ字カナ入力のパターン追加 ・b2.1で Sound.class を壊してしまっていたのを直した(PCGの音が出なかった) ------------------------------------------------------------------------------ [beta 2.1] Ver. 0.9.11 2001.10.06 ------------------------------------------------------------------------------ ・Diskクラス 整理・チューニング ・Z80クラス 整理・チューニング・バグつぶし ・Crtcクラス 整理・チューニング・アトリ展開アルゴリズム変更 ・メニューの一部変更 ------------------------------------------------------------------------------ [beta 2] Ver. 0.9.6 2001.07.24 ------------------------------------------------------------------------------ ・J2SE 1.4.0 に対応 (バージョン違いによるクセに対処した) ・アトリビュート再現性向上 ・スクリーンショット(png)取り込み機能追加 ・Disk(LOAD側のみ)対応 ------------------------------------------------------------------------------ [beta 1] Ver. 0.8.17 2001.05.05 ------------------------------------------------------------------------------ ・ベータ・リリース開始 ------------------------------------------------------------------------------ 限定公開 Ver. 0.8.0 アルファ・テスト開始 2001.02.21 Ver. 0.7.1 スクリーンショット公開 第二弾 2001.02.05 Ver. 0.0.0 スクリーンショット公開 2000.12.28 Ver. -.-.- BASIC 起動 2000.12.26 調査開始 2000.12.15 ------------------------------------------------------------------------------