■ このスレッドは過去ログ倉庫に格納されています
PCエミュレーター統合スレッド Part7
- 1 :ナイコンさん:2015/05/05(火) 23:37:28.05 .net
- 古き良き、1970年代〜90年代のマイコンエミュレーター統合スレッドです。
基本、開発・人柱・新バージョンの報告や話題等で進行をお願いします
たまには上記の延長線上での脱線も可
※家庭用ゲーム機器は板違いです。(ぴゅう太はOK)
※ジェネレーターや其れに準ずる質問等はスレが荒れる原因になるので華麗にスルーして下さい
※上記の事柄に反応した場合その人も同じ池沼扱いされますので決して反応してはなりません
※このスレは如何にスルーできるか問われるスレですので肝に銘じておいて下さい
※禿しく空気読め
前スレ:PCエミュレーター統合スレッド Part6
http://hello.2ch.net/test/read.cgi/i4004/1364603890/
- 461 :ナイコンさん:2016/01/25(月) 00:45:20.56 .net
- VMware上のUbuntu15.10(64bit)は表示に問題なしですね。
Fedora23(32bit)にVMware Toolsを入れると、「3Dグラフィックスのアクセラレーション」オフではOpenGL2.0、オンではOpenGL3.0を使って特に問題なく表示されるようです。
FAQに書くことじゃないけど、MinGWを使ったビルド方法がアホでもわかるように書かれてたら嬉しいかもしれない
- 462 :PI. ◆5XUo.OyiQc :2016/01/27(水) 21:47:16.25 .net
- SDLはオーディオドライバ(WindowsならDirectSound or Wave, LinuxならOSSとかPulseAudioとか)
によって挙動がかなり変わってくるようですね。XM8ではコールバックされたときのバッファの
空き具合を見て、かなり空いているようであれば多めにサンプルをつくる、少ししか空いていない
ようであれば少なめにサンプルをつくる、といった工夫を入れています。
上記の工夫+デフォルトのバッファを大きめに取ることで、レイテンシを犠牲にしながらも
音が切れにくくなっています。
- 463 :ナイコンさん:2016/01/27(水) 22:26:45.33 .net
- PI氏から見て、武田のコードはどうなの?
- 464 :ナイコンさん:2016/01/28(木) 09:14:57.00 .net
- 一方は敬称有り一方は敬称無し
あからさまw
- 465 :PI. ◆5XUo.OyiQc :2016/01/28(木) 21:29:56.04 .net
- 失礼ながら思ったことを正直に書いてしまうと、「どちらかといえば読みにくい、良くないコード」という評価になります。
分かりやすい理由としては設計・実装に不均質な部分が多々見られること、実ソースに対してコメントがあまりにも少なすぎること、長いswitch〜case散見されることあたりです。
最後に関して言うと、たとえばWndProcでは実際にやることを直接書かない(case WM_XXX:だけ書いて、実体は極力サブ関数に逃がす)方が見通しがよくなるはずなのですが。
ただし12年もの長きにわたりモチベーションを維持しつつ、多数の機種を共通ソースで実現されてきたことは敬意を表します。これだけの期間モチベーションを維持し続けることは並大抵ではありません。
最後に、>>421氏のような「言語マニア」は私もOut of 眼中です。メモリ・CPUパワーに余裕のあるシステムがターゲットなら、C++に拘る理由が乏しい(なぜ、いとも簡単にバグを生み出せる言語であるC/C++にこだわるの?Java/C#に行けば?)だし、
メモリに余裕のないシステムがターゲット(私も仕事ではそうです)なら、templateは絶対禁止(=Boostは関係なし)だからです。
- 466 :ナイコンさん:2016/01/28(木) 23:27:32.16 .net
- 涙拭けよ
- 467 :ナイコンさん:2016/01/29(金) 00:02:23.66 .net
- なんで、そんなうんこソースコードをわざわざ使ったの
- 468 :ナイコンさん:2016/01/29(金) 00:27:49.69 .net
- M88の方が良かったよな
- 469 :Artane. ◆1o3c8RYIzjU0 :2016/01/29(金) 01:26:55.58 .net
- >>467
想像ですが、GPLだからじゃないですかね(;´Д`)
- 470 :ナイコンさん:2016/01/29(金) 09:07:06.03 .net
- XPERIAで88、98ゲームやりたいんだけどどうやるの?
ググってもやり方分からん
- 471 :ナイコンさん:2016/01/29(金) 09:26:10.00 .net
- ググってもわからないようなら、あんたにゃ無理ってことだよ
- 472 :PI. ◆5XUo.OyiQc :2016/01/29(金) 21:43:27.01 .net
- M88のソースも、それなりに研究していますよ。採用しなかった理由としてはWin32(MFCじゃないですよ、今風にいえばPlatform SDK)とVC++に依存しすぎていて
XM8の最終ターゲットとして想定していたAndroidプラットフォームへの移植が却って困難と考えたたためです。
ライセンス云々は、ほぼ関係ないです。私はciscさんと机を並べて共に仕事をしていた時期もありますから、承諾を得るのはまあ簡単だろうと勝手に思っています。
武田さんのCommon Source Code Projectは性質上デバイス別にきっちり分かれていることや、pc8801.cppやpc88.cppの構造が比較的シンプルで手を入れやすいことから採用しました。
ただ実際に動かしてみて、当初の予想以上の「重さ」に驚きました。まあ44100Hzで仮想マシンを切って、その度ごとにfmgenで1サンプル作っているなら、そうなりますよね。
私がXM7を最初に作っていた頃は(M88も同じころ)K6-IIIやCeleron300A@450の時代でしたから、リアルタイム性を確保するためにそれなりに気を遣ったものです。(遠い目)
- 473 :ナイコンさん:2016/01/29(金) 21:53:20.45 .net
- PIさんはもうXM6の開発はしないんですか?
- 474 :ナイコンさん:2016/01/30(土) 13:16:17.52 .net
- 竹田の話はもうやめて差し上げろ
- 475 :ナイコンさん:2016/01/30(土) 17:34:06.54 .net
- つまり、いいとこなしってことだな
- 476 :ナイコンさん:2016/01/30(土) 18:37:08.87 .net
- ここもワッチョイ必要だな
- 477 :ナイコンさん:2016/01/31(日) 18:08:28.56 .net
- コードの書き方はうんこだけど、構造はそれなりなのかな?
- 478 :ナイコンさん:2016/01/31(日) 21:04:09.36 .net
- XM8は糞SDLじゃなければ良いのになぁ
- 479 :武田 ◆bnZpPXJze51u :2016/02/07(日) 16:35:43.45 .net
- >Artane.さん
サウンドの左右のバランスを調整する機能を実装してみました。
次は画面のアスペクトの調整ですね。
>PI.さん
おおう、ご無沙汰です。
コードについては今後も精進します。
- 480 :ナイコンさん:2016/02/07(日) 22:53:21.37 .net
- >>479
fmgenを使用している音源では、2つあるコントロールのうち1つは動かないダミーで、左右同じ音量になっているのでしょうか。外見の印象と内部動作との違いが気になります。
MSXでBeepの音量を一番右端にすると、キークリック音が変になります。同時にPSGを鳴らすと、よりわかりやすいです。オーバーフロー?(音量を大きくしなければ済む話ですが。)
東芝のMSXの一部機種ではステレオとモノラルの切り替えスイッチが存在しており、ステレオの場合はPSGのチャンネルBは右だけ、Cは左だけから出力になるわけですが、そんな切り替えスイッチに対応する予定は無し、でしょうか。
- 481 :武田 ◆bnZpPXJze51u :2016/02/09(火) 00:10:29.00 .net
- >Artane.さん
すみません、サウンドの件の取り込みはちょっとお待ちください。
もうちょっと弄ろうかと思います。
>>480
すみません、回答はまた後日。
- 482 :Artane. ◆1o3c8RYIzjU0 :2016/02/09(火) 09:30:27.01 .net
- >>481
はーい、わかりました。
多分、早くて今週一杯はロクに動けないと思いますので…(^_^;)
- 483 :ナイコンさん:2016/02/09(火) 19:51:52.68 .net
- X68Kエミュのくだらない質問はどこですればいいんですか?
- 484 :武田 ◆bnZpPXJze51u :2016/02/10(水) 00:52:33.19 .net
- ボリューム周りのコードを整理しました。
ついでにジョイスティックの設定をサポートしました。
#リソースファイルを直書きするのってどうなんだろう(苦笑)
- 485 :武田 ◆bnZpPXJze51u :2016/02/11(木) 01:37:37.44 .net
- >Artane.さん
今晩のリリースで、MB8877のタイミングを再々修正しました。
FM7関係の、特定ソフト向けの例外処理のうち、外せるものも
あるかもしれません。
お時間のあるときにでも、ご確認いただければと。
- 486 :Artane. ◆1o3c8RYIzjU0 :2016/02/16(火) 02:51:18.50 .net
- とりあえず、2/13版までマージしました。
が、ジョイスティック関係のOSD/GUI側での実装がまだです。
キーボード→ジョイスティックの変換も怪しい。
YM2203の音量関連のwrite_signal()は、*一時的に*残してあります。
特にWHGやTHGを活用してるソフトウェアでは複数のスピーカを置いた形にして、ステレオ音声を実装しておきので…音量を左右で個別に設定できればこんなんやらずに済むのですが、その為にはなんかの細工が必要になる。
githubか↓の commit 2fc3688fce9d88e48aebd26b694fd2bb143a2574 .
後、セカンダリのGITリポジトリを作っておきました。
https://pikacode.com/Artanejp/common_source_project-fm7/
>>485
お疲れ様です。
MB8877の例外処理の件は、後で見てみます、力尽きました…_| ̄|●
- 487 :武田 ◆bnZpPXJze51u :2016/02/17(水) 01:53:05.77 .net
- YM2151,YM2203の左右のボリュームを独立して調整できるようにしました。
fmgenをもりっと書き換えてます。
mamefm.dllを使っている場合は、左のボリュームが左右両方に反映されます。
画面のアスペクト比を4:3に変更できるようにしました。
画面の縦を伸ばすか横を伸ばすかの選択は保留とさせてください。
取り敢えず、宿題になっていた案件はこれで全部だったでしょうか。
- 488 :武田 ◆bnZpPXJze51u :2016/02/19(金) 03:00:42.81 .net
- >Artane.さん
もりっとソースを整理しました。
マージ大変かもしれません、ごめんなさいです。
Publicなメソッド名を、一定の命名規則に沿うように変更したり、
自動キー入力やジョイスティック周りの、環境非依存部分を
EMUクラスに移動したり、といった辺りが中心です。
今回から、ビルド環境をVC++2013にしてみました。
IncludeやLibのディレクトリを、プロジェクト毎に指定する
必要があるなど、どうも勝手が違って面倒ですね。
- 489 :ナイコンさん:2016/02/19(金) 22:14:24.76 .net
- ついにWindows2000で動かなくなってしまいましたな
2000対応が欲しけりゃで自分でVC++2008でビルドすればいいだろうけど
- 490 :ナイコンさん:2016/02/23(火) 18:51:40.15 .net
- Win2000マシンには重すぎだろ
- 491 :ナイコンさん:2016/02/23(火) 21:09:41.30 .net
- W2Kだとマルチコアは動きが怪しいからもう使ってる人いないだろう。
- 492 :ナイコンさん:2016/02/24(水) 05:31:05.95 .net
- EmuZ2500
レイドックを修正したとあるけど
レイドック起動後(とりあえずSTAGE1開始時)、IPLリセットするとディスクが全く読めなくなりますよ
- 493 :ナイコンさん:2016/02/24(水) 09:39:44.74 .net
- うちは2000現役だなぁ
Xp以降は無駄なエフェクト多いし裏で余計なサービス動いてて重すぎ
- 494 :ナイコンさん:2016/02/24(水) 13:00:19.48 .net
- 無駄なエフェクトを禁止して不要なサービスは手動で停止すればよい
- 495 :ナイコンさん:2016/02/24(水) 15:26:44.27 .net
- XPが余計なサービスで遅いと言うほど速さが気になるのに
XPマシンより遙かに古く遅いPCでの2000は気にならないんだな
- 496 :ナイコンさん:2016/02/24(水) 18:01:01.08 .net
- 古いPC+W2K と 最新PC+W10 じゃ体感速度変わらないと思うよ。ネットで動画とか3Dゲームしない限り。
- 497 :Artane. ◆1o3c8RYIzjU0 :2016/02/24(水) 18:40:12.02 .net
- エラくややこしい仕事だった(;´Д`)
やっと、こちらの方の作業が出来ます(^_^;
と言う事で、やっとキーコードとジョイスティックのアサインダイアログを作りました。
まだ不十分ですが…
GITのcommit a65f269dc2cbab8f73cebfec42ecdd5cd5dd109b 以降です。
# まだ、YM2203のステレオ化とデバッガがおかしくなってる問題が積み残しです…
>>武田さん
お疲れ様です。
今のところ2/13分まで取り込んでありますが、これからコードを見ていきます。
場合によっては、こちら担当分のコードをざっくりいじります。
- 498 :武田 ◆bnZpPXJze51u :2016/02/25(木) 02:45:39.26 .net
- >>492
次のリリースで修正します。
>>Artane,さん
よろしくお願いいたします。
こっちもFM8の取り込みしないとなあ。
- 499 :ナイコンさん:2016/02/25(木) 13:41:54.09 .net
- Xpとか使ってると200の時にはなかった遅延とか気になるんだよねぇ
気にならない人はいいのかもしれんけど
- 500 :ナイコンさん:2016/02/25(木) 15:24:08.20 .net
- コア間の同期まわりはXPのほうが最適化されて速いけど。HTとかオンにしちゃうと2kは2CPUと解釈して動きがギクシャクするよ。
その遅延の理由はちゃんと調べたの?フォントのアンチエイリアスとかファイアウォールとかXPはいろいろやってるから。
- 501 :ナイコンさん:2016/02/26(金) 00:10:30.07 .net
- Artane.さんのソースをWindows+MinGWでビルドしてみるなら、
・MSYS2を使って、pacmanでSDLやQtなどをインストールする
・ビルドにはMSYS2のMinGWシェルを使って、config_build.sh (マシン名)
・config_build.shやbuiltvars.datの、各種コマンドのパスやファイル名を必要に応じて書き換えておく
・cmakeのコマンドラインには -G "MSYS Makefiles" を付け加えておく
・make cleanやsudo make installの行はとりあえず無効にしておく
が近道ですかのう
- 502 :Artane. ◆1o3c8RYIzjU0 :2016/02/26(金) 00:28:03.93 .net
- 武田さんの2/21版まで取り込んで、Linuxでうまく動いたので一応リリース掛けましたが、Windowsの入力周りのバグを直すのを忘れてました(;´Д`)
https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160225
ビルド手順について、文書を付けておきましたが、まだまだ不十分です。
>>501
とりあえず、仮想マシン上のMinGW(MSYS2ではない)でやって見てますが、どうも色んな物が絡んでてうまく行かないですね。
クロスビルドだと簡単な所まで持ち込んでるのですが…(;´Д`)
ccacheとかそういうのがいろいろ絡みついてて…結構いろいろ手直しが必要かも。
次のリリースは、Windowsネィティブビルドでの問題を解消してからやったほうがいいかも…と思ってます。
- 503 :武田 ◆bnZpPXJze51u :2016/02/26(金) 00:56:09.01 .net
- >>492
今晩のリリースで修正いたしました。
- 504 :武田 ◆bnZpPXJze51u :2016/02/26(金) 01:11:28.45 .net
- 最近は、winmain周りの整理とか、各クラスのメソッド名の整理とか、
色々コードの整理を進めていますが。
VC++6の頃のコードから引っ張っている関係で、自前で定義した
uint8/16/32とかも、新しい標準のuint8_tなどに変更しようか、とか
structやtypedef structの名前も、_s,_tに整理しようか、とか、
色々考えあぐねてます。
私の方は、まあ一括変換してしまえば済むのですが。。。
- 505 :Artane. ◆1o3c8RYIzjU0 :2016/02/26(金) 04:39:43.95 .net
- >>502
補足。
やっとこさ、VirtualBox上のWindows10で、MinGW(2でもMSYSでもない)を使ってビルドが出来て、とりあえずは動くように出来ました。
今さっきgithubとpikacodeにコミットした物です。
クロスビルド側やLinuxビルド側でエラー吐かないかチェックしています。
その後に、Windows10側でフルビルドしてみる予定です。
素のMinGWだと、色々やらないといけない用意がありますね。
後で、昨日書いた文書に追記していきますね。
リリース自体は武田さんの最新を取り込んでから。
- 506 :ナイコンさん:2016/02/26(金) 13:08:37.30 .net
- >>500
そういう無駄な処理が増えてるから古いOSにはない遅延を感じるんだよね
わかる?
- 507 :Artane. ◆1o3c8RYIzjU0 :2016/02/26(金) 14:31:25.03 .net
- Qt向けCommon Source Code Projectのビルド方法を、こんな感じで書いてみました。
http://pastebin.com/PnnHNsrz
github/pikacodeの方にもアップロード済みです。
- 508 :ナイコンさん:2016/02/26(金) 15:21:37.95 .net
- >>506
原因が分らなかったんだろ?w
- 509 :Artane. ◆1o3c8RYIzjU0 :2016/02/27(土) 00:36:14.95 .net
- >504
お疲れ様です。
26日変更分まで、こちらでも取り込みました。
https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160226
・Windows上のMinGW32でのビルドとビルドしたものの動作を確認しています。
・Windows版は、SDL 2.0.4ベースになってます。
・ヘルプ画面のフォントサイズを見直しました。
・武田さん配布のバイナリに添付されてる、キーコードやBIOSの配置に関する文書を、こちらでも添付・ヘルプメニューから見れるようにしました。
・25日ぶんからですが、キーコードの設定やジョイスティックの設定を入れました(とは言え不十分な気がする)
・FM-7系に関して、一部のキー配置が不適切だったのを直しました。
・その他諸々
バイナリは、最終的なものを今ビルドしてます…明日朝か夕方にアップロードします。
- 510 :Artane. ◆1o3c8RYIzjU0 :2016/02/27(土) 01:34:19.45 .net
- >>509
FM7のPSG周りで嫌なのを見つけたので、HOTFIX1を出しました。
これベースでバイナリ作りなおしてリリースします。
https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160226_HOTFIX1
- 511 :Artane. ◆1o3c8RYIzjU0 :2016/02/27(土) 09:21:03.26 .net
- >>510
バイナリをアップロードしました。
https://www.sendspace.com/file/w9cqpb
or
http://www1.axfc.net/u/3625609
MD5SUM: b78f3f0e5d6a36311b4eadcc4b9ec4d2
SHA256SUM: 6e6829d5d776d80c667bef5c6cb49183e820f92ff86ac6d89f387d9b96570608
- 512 :ナイコンさん:2016/02/27(土) 16:09:32.90 .net
- >>503
ありがとうございます
確認OKでした
- 513 :ナイコンさん:2016/02/27(土) 17:35:45.90 .net
- >>511
ビルド済みバイナリの音量調整が挙動不審のような気がします。Windows用もLinux用も。
ある音源のLを最大、Rを最小に設定しても、一度バイナリを終了させて次回起動すると設定位置が違っていたりとか。
あと、武田さんのバイナリみたいに「Reset」ボタンか何かあると嬉しいです。
- 514 :Artane. ◆1o3c8RYIzjU0 :2016/02/27(土) 21:00:14.57 .net
- >>513
確かにそうですね。
じっくり調査していきますね(´・ω・`)
後、リセットボタンは了解です。
やれるかどうか調べてみます。
- 515 :Artane. ◆1o3c8RYIzjU0 :2016/02/27(土) 21:03:41.16 .net
- >>513
追伸ですが、私のQt版では、左右の音量調整ではなく、
左が音量
右がバランス
になっています。(これからウィジェットの方向を縦から横にするので、ラベルを貼る事が出来ると思いますが)
デフォルトだと音量が物凄く大きくなる場合があったので…
- 516 :武田 ◆bnZpPXJze51u :2016/03/01(火) 00:34:38.25 .net
- 再びもりっと書き換えました、ほぼ全ファイルが更新されています。
ご迷惑おかけします>Artane.さん
今後の統合作業が楽になるかと思いますので、今回ばかりはご容赦ください。
取り敢えず、VM以下については、今回の修正でほぼ統合完了できそうです。
余りに修正箇所が多いので、vm以下、win32以下のファイルについては、
diff/patchするのでなく、丸ごとそのままコピーした上で、
以下のまだ差がある部分のみ、個別に再度修正していただく方が簡単かと思います。
vm/ex80/display.cpp 半角カナのコメント部(どうしましょうか?)
vm/fm7/fm7.cpp connect_bus()の、2DDの条件は40/40EX/40SXで正しい?
vm/pasopia/display.cpp emu->get_screen_buffer()で取得したバッファのNULLチェックは必要?
vm/pasopia7/display.cpp emu->get_screen_buffer()で取得したバッファのNULLチェックは必要?
vm/pc8801/pc8801.cpp/h dummycpuの追加(多分こちらには取り込まないです)
vm/tk80bs/display.cpp 黒色を0でなくRGB_COLOR()で定義しているのは必要?
vm/x1/display.cpp/h text_bak, cg_bakの追加(まだ保留中、X1だけでいいのか?)
vm/datarec.cpp update_event()で、register_event()の引数のsample_usecを*2.0しているのは必要?
vm/event.cpp cancel_event()のエラーメッセージのデバイス名表示
vm/ym2203.cpp mix周りの最適化の追加
- 517 :武田 ◆bnZpPXJze51u :2016/03/01(火) 00:38:26.86 .net
- vm/dummydevice.cpp/hについては、vm/fm7以下にに移動させていただきました。
EMUクラスについても、多少統合を進めています。
get_led_status()も取り込んでいます。
なお、SUPPORT_DUMMY_DEVICE_LEDは、USE_LED_DEVICEとして取り込みました。
debugger.cppの統合についてはまだ時間が掛かりそうですが、
PostMessage(), GetAsyncKeyState()を無造作に使っていた箇所は
win32/osdに入れました。
common.cpp/hも、今回の修正で多少は統合が進むといいなあと。
型定義周りは随分シンプルにできるかと思います。
- 518 :武田 ◆bnZpPXJze51u :2016/03/01(火) 01:04:42.36 .net
- 書き忘れ。
get_long_full_path_name()と、ついでにget_parent_dir()は
common.cpp/hに放り込みましたが、よろしかったでしょうか?
- 519 :Artane. ◆1o3c8RYIzjU0 :2016/03/01(火) 19:27:17.22 .net
- お疲れ様です。
後で一通り見ていきます。
今は微妙に風邪引いて寝込んでおりますので…(;´Д`)
- 520 :ナイコンさん:2016/03/02(水) 05:05:26.26 .net
- eX1turboのトイポップをしばらくコントローラーでプレイしていると、
上に移動しっぱなしになり操作不能になります
- 521 :Artane. ◆1o3c8RYIzjU0 :2016/03/02(水) 12:10:01.07 .net
- >>武田さん
まだ風邪がアレで作業がどのくらい出来るかわかりませんが…
>vm/ex80/display.cpp 半角カナのコメント部(どうしましょうか?)
問題ありません。
こちらではUTF-8でソースコードのリポジトリ等を維持してますので、コンパイラは適切に処理します。
>vm/fm7/fm7.cpp connect_bus()の、2DDの条件は40/40EX/40SXで正しい?
20/20EX/40/40EX/40SXです。
>vm/pasopia/display.cpp emu->get_screen_buffer()で取得したバッファのNULLチェックは必要?
>vm/pasopia7/display.cpp emu->get_screen_buffer()で取得したバッファのNULLチェックは必要?
基本的にNULLチェックは実装すべきと考えます。
NULLに引っかかった場合、異常終了させない&取得先の作業者がNULLを使う可能性を考慮しておくのは基本かと。
- 522 :Artane. ◆1o3c8RYIzjU0 :2016/03/02(水) 12:18:02.68 .net
- >vm/pc8801/pc8801.cpp/h dummycpuの追加(多分こちらには取り込まないです)
そこはポリシーの違いということで…88に限らず最初のCPUのクロックが8MHz(6MHz?)以上だとスケジューラの負荷が高くなりすぎる感じがありますが。
>vm/x1/display.cpp/h text_bak, cg_bakの追加(まだ保留中、X1だけでいいのか?)
今のところHD46505を使ってるマシンでは、チラつきの可能性があります。
>vm/tk80bs/display.cpp 黒色を0でなくRGB_COLOR()で定義しているのは必要?
スクリーンやLEDの表示と下の層の間にアルファブレンディングを使って透過させてるので、
黒と透明を分けて後者をRGB_COLOR(0,0,0)で定めるのは、必要です。
>vm/datarec.cpp update_event()で、register_event()の引数のsample_usecを*2.0しているのは必要?
真因を追及できていませんが、必要です。仕様書通りに実装して、武田さん版datarec.cppに乗せると、倍速になってしまいます。
- 523 :ナイコンさん:2016/03/02(水) 21:09:54.03 .net
- >>522
現在のQt版では、msx1でCSAVEした時に鳴る音は正常だけど生成されるWAVは倍速っぽい。それのCLOADを試みても認識しない。
・datarec.cpp 157行目あたり(DATAREC::event_callback)の buffer_ptr++; が余分。これを削除する。
・datarec.cpp 345行目あたり(DATAREC::update_event)の * 2.0 を削除する。
これでCSAVEもCLOADもOKになる。たぶん。
- 524 :Artane. ◆1o3c8RYIzjU0 :2016/03/03(木) 00:03:28.10 .net
- >>523
ありがとうございます。
武田さんの3/1版に最大限合わせた(src/vm/fm7/*とvm/*.[cpp|h]以外を可能なだけ武田さん版3/1版にした)物をgithubにアップロードしました。
# なんでこの構成かといえば、それは、いつもの手癖でdiffを使って検討した後で
# patchコマンドを使ってしまい、後から「あ・・(;゜д゜)」となった上に、それに気がついた時は既にFM7がビルドできてたから。
とりあえず、X1とFM-7では問題なくテープを読み込めるようになっています。
他のVMは今ビルド中です。
commit ad9610e1a12f39598e5074ece02dedfc292c3855 にてお試しを。
後、今回の物から(多分)LLVM CLANGでもビルドできなくはないようにしました。リンカ周りがよく分かってないので微妙な表現ですが。
- 525 :523:2016/03/03(木) 01:04:58.03 .net
- >>524
「現在のQt版」ってのはアカン書き方でした。「リリースされたQt版バイナリの中で最新の物」に修正。
commit ad9610e(以下略)のソースを元にしてビルドした物はCSAVEもCLOADもOKです。
ところで、今は Paste from Clipboard が効いてなかったりしますか?
- 526 :Artane. ◆1o3c8RYIzjU0 :2016/03/03(木) 02:18:40.08 .net
- お疲れ様です。以下のドキュメントを次のリリースから添付お願いします>武田さん
https://github.com/Artanejp/common_source_project-fm7/tree/master/doc/VMs
にある、
fm7.txt
fm77av.txt
fm8.txt
です。
>>525
ありがとうございます。
確かにペーストが動作してませんね(;´Д`)
ちょっと調べてみますね(;´Д`)
- 527 :Artane. ◆1o3c8RYIzjU0 :2016/03/05(土) 13:33:29.81 .net
- 3/1版ベースでリリースしました。
https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160304
クリップボードからの貼付けに再対応しました。
音量の問題も解決したとおもいます。
- 528 :ナイコンさん:2016/03/05(土) 17:41:35.32 .net
- >>527
CSP_BUILD_20160304-1.7zのバイナリをWindowsで試して気づいた点だけ書いておきます。
・Paste from Clipboard で改行が効いてない?
・各音源のVolumeの位置:iniファイルが無い状態での初期位置は右端だが、Resetボタンを押すと中央になる
・Resetボタンは音源ごとに2つではなく、全音源+Mainボリュームまとめて1個でもいいんじゃないかなあ。好みの問題?
あと、今回の更新内容とは関係ありませんが、
・Audio Deviceの名前に日本語が含まれる場合、Windowsでコマンドプロンプトのログがその箇所だけ文字化け。テープのwavファイル名が日本語の場合は化けない。
・起動直後のメッセージ、printfとAGAR_LOG_INFOとAGAR_LOG_DEBUGとで同じ内容が複数回出力されているのは意味があるのか
・起動直後のメッセージには -? について書かれてるけど、コマンドプロンプトからの起動で -? を付けても付けなくても変わらないように見える
・ttp://doc.qt.io/qt-5/qapplication.html#QApplication を見ると、src/qt/common/qt_main.cppの最後のほうのmainを呼び出す第1引数は0よりも1のほうが良いのではないだろうか。長さ0の文字列で良いのかどうかはわからないけど。
・readme.qt.txtやREADMEの 0. About には Built with Visual Studio って書いてあるけど、もう今はMinGWですよね
- 529 :ナイコンさん:2016/03/05(土) 17:45:07.83 .net
- Windows2000キター
【PC-98】改造Neko Project 21でWindows2000を動かす【エミュレータ】
http://www.nico video.jp/watch/sm28331696
,
- 530 :528:2016/03/05(土) 21:21:11.25 .net
- 追記。
・cygwinの端末から起動させると、リアルタイムでログ表示はされない。終了時にまとめて出てくる。日本語のオーディオデバイス名は化けないが日本語のwavファイル名は化ける。そこまで気にする人はいないと思うけど。
- 531 :Artane. ◆1o3c8RYIzjU0 :2016/03/06(日) 13:01:56.55 .net
- >>530
ありがとうございます。
幾つかの不具合は結構拙い気がするので、後で作業始められたら直しますね。
- 532 :ナイコンさん:2016/03/07(月) 23:15:15.57 .net
- Artane.さんへ。
>[FM7] 漢字プリンタの実装(ったって、資料ないな(;´Д`))
http://software.aufheben.info/ooholdpc/fmpr201.html
および、
http://www.fmworld.net/biz/printer/support/manual/#dot のFMPR-671B等の取扱説明書の「FMモードコマンド一覧表」
は役に立つでしょうか。
「FMプリンタシーケンス リファレンスマニュアル(シリアルプリンタ編)」
があればモアベターかもしれませんけど見つかりませんでした!
- 533 :武田 ◆bnZpPXJze51u :2016/03/08(火) 02:58:11.71 .net
- 最近はSCSI絡みの作業をしています。
FMR-30/50のHDDが本命ですが、こっちも進めてます。
一通り動くようになったところでリリース予定です。
http://homepage3.nifty.com/takeda-toshiya/00tmp/160308-1.png
#当面は、the Manholeがちゃんと動けば良し、という方針で。
#中学の時に大好きだったソフトです。
- 534 :ナイコンさん:2016/03/08(火) 04:21:30.37 .net
- >>533
おおこれは期待
- 535 :ナイコンさん:2016/03/08(火) 12:53:33.00 .net
- FM-77AVのエミュだとアクションゲームでキー離したら止まるようになります?
- 536 :ナイコンさん:2016/03/08(火) 13:29:37.30 .net
- そうであればエミュレートしてないって事になるな
- 537 :ナイコンさん:2016/03/08(火) 16:06:59.51 .net
- >>535
ニュートロンやってみたけど全く止まらんw
- 538 :ナイコンさん:2016/03/08(火) 17:33:57.41 .net
- エミュに自動「5」入力機能があれば…
いや、でも止まらなくてこそFM-7だな。
- 539 :ナイコンさん:2016/03/08(火) 18:12:40.96 .net
- 友人のFM7で遊んだドアドアが猛烈難しかった思い出
キー入力はX1の方がダメダメかも
- 540 :ナイコンさん:2016/03/08(火) 18:26:08.40 .net
- 別に5じゃなくても何かキー入力あればそれでいいんだがな
- 541 :ナイコンさん:2016/03/08(火) 18:31:52.63 .net
- FM-77AVから止まるようになったんですよね
ドアドアやってみましたけど他のキー押さないと止まりませんでした
って事はやっぱエミュレートされてないんですね
- 542 :ナイコンさん:2016/03/08(火) 18:56:00.20 .net
- FM-7用のゲームをそのままFM-77AVで遊んでも止まらないよ
「FM-77AVなら止まる」っていうのは
「FM-77AVなら止まる機能」を使うようにプログラムを組んでこそ、FM-77AVで止まるようになる
「FM-77AVなら止まるようにプログラムを組んでいないFM-7用のゲーム」を
FM-77AVで遊んでも、止まらない
よって、
>>って事はやっぱエミュレートされてないんですね
んな事ぁない
お分かり?
- 543 :ナイコンさん:2016/03/08(火) 19:42:49.28 .net
- なるほどたしかにニュートロンは77AV用じゃないもんな
- 544 :ナイコンさん:2016/03/08(火) 21:39:59.58 .net
- ニートロンども古パソ弄ってないで仕事探せ
- 545 :ナイコンさん:2016/03/08(火) 21:49:32.70 .net
- 発売前の広告にはニュートンって書かれてたのに
- 546 :ニュートンだけに:2016/03/09(水) 07:24:08.99 .net
- ロが落下しました
- 547 :ナイコンさん:2016/03/09(水) 15:48:17.58 .net
- 落ちてもいいように予備置いときますね
品呂ロ口□
- 548 :Artane. ◆1o3c8RYIzjU0 :2016/03/10(木) 01:50:05.56 .net
- 色々アイコンを入れ込み始めました。
GPLv2にしても揉めない5インチフロッピーとかカセットテープとか諸々をこれから探していきますね(今はmateデスクトップ環境のアイコンがGPLなので、一部のバンドルを始めました)
>>528
とりあえず、
・cygwinをまだインストール出来てないので>>530はまだ現象確認出来てない
・ペーストに関してはこれから
・Windows(10)上でのビルドチェックや動作テストがまだ
という状況ですが、他はとりあえず出来たと思います(十分なテストは明日以降…おやすみなさい(;´Д`))
>>532
ありがとうございます!
なんとかFMPR-201の最低限の部分だけでも(後から)実装しますね。
- 549 :Artane. ◆1o3c8RYIzjU0 :2016/03/10(木) 01:51:22.74 .net
- >>538
やってもいいですけどー(;´Д`)
Joystickからキーボードへの変換とか何とか先にやりたい物ではあります。
- 550 :Artane. ◆1o3c8RYIzjU0 :2016/03/10(木) 01:55:12.89 .net
- >>535
既出ですが、AVのキーエンコーダのリアルタイムスキャン機能を使ってるソフトじゃないと、キーを離しても止まらないのは7だろうが8だろうがAV以降だろうが変わらない。というのが正しいです。
そういえば、
キーエンコーダで何か(実装的な)問題があった気がするのですが、忘れてそのままにしてしまいました_| ̄|○
後から追々直していきます、すいません。
- 551 :ナイコンさん:2016/03/11(金) 10:23:47.57 .net
- >>549
ひまがあったらお願いw
- 552 :Artane. ◆1o3c8RYIzjU0 :2016/03/11(金) 14:41:27.15 .net
- リリース掛けました
https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160311
とりあえず、武田さん版3/5ヴァージョンをベースに色々と反映させました。ありがとうございます>皆様
>>551
はーい(^_^;
- 553 :ナイコンさん:2016/03/11(金) 21:13:07.16 .net
- リリースノートには Built with Visual Studio が残っているのだ
- 554 :ナイコンさん:2016/03/12(土) 01:48:25.55 .net
- >>552
ボリューム設定、各音源のVolumeを0dbや-40dbにしてBalanceを左端や右端にしてexeを終わらせると、次回は異なる設定になってしまいます。
VolumeかBalanceのどちらか一方を中央値にしておけば、もう片方を端の値に設定しても大丈夫っぽいです。
内部で最大値や最小値の制限に引っかかっているのでしょうか。
- 555 :武田 ◆bnZpPXJze51u :2016/03/16(水) 03:25:34.88 .net
- >>533
やっとこさ、CD-ROM^2が安定して動くようになりましたのでリリース。
思ったより時間が掛かってしまいました(苦笑)
- 556 :ナイコンさん:2016/03/16(水) 22:11:41.22 .net
- LEGEND達が普通に固定で書き込んでてワラタ
- 557 :ナイコンさん:2016/03/16(水) 22:41:45.53 .net
- >>555
ISO、WAV形式だと起動できないんだけど
対応してないのかな
- 558 :武田 ◆bnZpPXJze51u :2016/03/17(木) 00:32:07.35 .net
- >>557
すみません、現状では対応しておりません。
- 559 :武田 ◆bnZpPXJze51u :2016/03/17(木) 00:51:11.47 .net
- Artane.さんの、vm/fm7/*.*を除く、3/11までの修正を取り込みました。
fm7関係は、reset()の問題が解決するまで様子見です。m(_ _)m
今回の取り込みで、共通部分の統合作業がほぼ完了できたかと思います。
多大なご協力、まことにありがとうございました>Artane.さん
以下、Artane.さんにお願いしたい残項目についてコメントします。
fp1100, mz3500のd_mainですが、mainが予約語でビルド上の問題があるということでしょうか?
取り敢えず、名前空間の都合でmain,subをmainbus,subbusに変更しました。
mz80b.hですが、mz80b/2200ではマウスは使っていません。
#define USE_MOUSEは不要です。
beep.h, datarec.h, event.h, hd46505.cpp, mb8877.cpp/h, pcm1bit.h, v99x8.cpp, vm.h,
z80.h, z80dma.cpp, z80sio.hの差違は有意なものではないようです。
これらはdiff/patchでなくそのまま取り込みください。
各デバイスのヘッダーのget_device_name()ですが、_T()はそのままにして頂ければと思います。
引数の(void)も、特にビルド上の問題がなければそのままで。
disk.cpp/hですが、太陽の神殿?の例外処理を先行してを取り込みました。
残りの差違は有意なものではないので、こちらもそのまま取り込みください。
ym2203.cpp/hですが、私の方でも左右のボリュームの設定をサポート済みですので、
出来ればそのまま取り込んで頂ければと思います。
device.h, mc6809.cpp/hはマージ漏れでしょうか?
最近の版では、幾つかの関数名にget_が追加されています。
こちらもそのまま取り込み可能かご確認お願いいたします。(debugger.cppの方も要修正です)
- 560 :武田 ◆bnZpPXJze51u :2016/03/17(木) 00:56:38.05 .net
- common.cpp/h, emu.cpp/h, fileio.cpp/hの差分を取り込みました。
ほぼそのまま取り込み可能ではないかと思います、ご確認お願いいたします。
(emu.cpp内の、FM7のreset()のtemporaryな例外処理は除きます、直せそうですか?)
common_gcc.h, common_msc.hは参照されていないようですが、廃止でしょうか?
emu.cppですが、get_long_full_path_name()は、common.cpp/hで定義されています。
ここでのexternは必要でしょうか?
emu.hですが、SDL.h, simd_types.hの#includeは、qt/osd.hに移動をお願いいたします。
SOCKET_MAX, SOCKET_BUFFER_MAXの#defineも同様です。
また、#include "vm/disk.h"は必要でしょうか?
config.cpp/hですが、できるだけ差分を取り込みました。
マスターボリュームについては後日取り込み方を検討します。
keyboard_typeはvm側でどう使うかちょっと要検討。
initialize_config()ですが、最初にmemset(&config, 0, sizeof(config_t))をしているので、
パラメータにfalseや0を指定する類の初期化は敢えてやっていません。
ワンボードマイコンでは、常に等倍ウィンドウなので、window_modeはload/saveしていません。
fmgen.dllはGUI上で変更しない値なので、saveしていません。
(判ってる人だけ、iniファイルを直接書き換えたら参照しますよ、というスタンスです)
debugger.cppは、私の方の実装にできるだけ合わせて頂いておりますが(多謝多謝)、
それでもまだまだ統合は難しそうですね。
後日細かい差違については、取り込める範囲で取り込みます。
各フォルダのCMakeLists.txtですが、これは取り込んだ方がよろしいでしょうか?
総レス数 1000
355 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200