- AVX や SSE5 など新しい Feature Flags に対応
- CoreSolo/CoreDuo以降の場合、VIDを0.0825+0.0125*nで表示 (ねじまき氏)
- Core2Duo以降の場合、MSR 0×000000CEを取得してmin VIDを取得・表示 (ねじまき氏)
またまた ねじまき氏 がパッチを送ってくださいました。ありがたやぁありがたやぁ。
【2327】Core系CPUのVIDの表示 のおかげで、一気に諸問題が解決しました。
あとは、Phenom か… Shuttle から Phenom 対応キューブ早く出ないかなぁ。
- Penryn Family の Multiplier Management に対応 (パッチ作成:ねじまき氏)
- SSE4.1/SSE4.2 対応を改善
ねじまき氏が、Penryn 関連コードを書いてくださいました。本当にありがとうございます。
ソースコードを公開しているとたまに良いことあるんですよねぇ~。ホント。
CrystalCPUID 4 というか SysInfo はオープンソースの条件を満足していませんが、CrystalCPUID 5 -Estel- + OpenLibSys は修正 BSD ライセンスで公開するので、ようやくオープンソースの条件を満足できます。ソースコードも今よりは格段に良くなるはずなので、多くの方の支援を受けつつ開発できるようになれば良いなぁ~と夢想しております。
重い腰が上がらない某ひよひよ氏ですが、そんな状況を見かねてか、ねじまき氏が Penryn 対応版を作成してくださいました。ありがとうございます。本家には今週末あたりにマージする予定です。
http://crystalmark.info/bbs/c-board.cgi?cmd=one;no=2334;id=#2334
せめて夢だけは語ろう。
CrystalCPUID 4 + SysInfo の一部を利用させて欲しいという問い合わせは昔からかなりあるわけですが、商用利用が出来ないライセンスとなっているため多くの場合お断りしているのが現状です。
CrystalCPUID 5 -Estel- + OpenLibSys -PureCrystal- の目的はこのジャンルに自由をもたらすことです。
開発者以外にとってはソースコードがあろうがなかろうがどうでも良いことですが、このジャンルに興味がある人にとってはとても価値あることだと思います。今は Intel も AMD もかなり詳細なデータシートを出していますが、私がこのテーマに取り組み始めたときは十分な情報は開示されていませんでした。H.Oda! さんが WCPUID に取り組んでいたときはもっと情報が少なかったことでしょう。
長期の充電期間を経てようやく 0 から CrystalCPUID を書き直す心の準備もできつつあります。
CPU-Z と同じ方向を目指しても勝ち目は全くありませんので、CrystalCPUID 5 -Estel- には、私の夢を詰め込みたいと思っています。正式版のリリースまではまだまだ時間が必要ですが、自信を持ってリリースできるよう心をこめて開発します。
私はプログラマとして、プロではありませんし、一流でもありません。でも、”CPUID” を愛する心は日本で一番だと思っています。デジタル署名を取得し、希望を取り戻したときの感動を思い出しながら再起を誓います。
はじめてのCrystalCPUID (『64ビットCPU(AMD64+EM64T)でアセンブラ』さん)
Vista + UAC 環境で CrystalCPUID をスタートアップさせる方法を丁寧に解説してくださってます。
CrystalDiskInfo にスタートアップ登録機能を実装すべく調査を開始したところなのですが、2000/XP は良いとして、Vista/2008 は結構微妙な感じです。CrystalDiskInfo 自体は常に管理者権限で起動しているので、レジストリの変更は可能なのですが、タスクスケジューラへの登録と同じ処理って簡単にできるのかなぁ…
【追記】
-
Windows と C++ タスク スケジューラ 2.0 (MSDN)
やれないことはないんだろうけれど… 自分で登録してもらった方が無難かなぁ。 - Windows Vista Application Development Requirements for User Account Control Compatibility
最後の方にタスクスケジューラへ登録するサンプルコードが。
マニュアルを丁寧に書くよりもメニューからサクッとスタートアップに登録できる方がユーザ的には絶対いいよなぁ。
【進捗】
- メニューの多言語化およびテーマ機能をまとめた CDHtmlMainDialog クラスを作成
先日作成した CDHtmlDialogEx を継承した、メインダイアログ専用クラスです。多少設計に難あり?
【ひとりごと】
ずいぶん前から新しいプロジェクトを立ち上げるたびに同じこと何度もしているなぁ~と思っていたのですが、新プロジェクトが乱立しつつある現状を鑑みて、共通処理をクラスにまとめました。
CDHtmlMainDialog と CDHtmlDialogEx は CrystalCPUID 5 -Estel- と Crystal******** -Feena- に適用し、品質を高めた上で、そのうち CrystalDiskMark に適用したいと思います。ちなみに、来年度リリース予定の OpenLibSys.org にも使用予定です。
【進捗】
- OpenLibSys Extension API 案の作成
- ANSI -> Unicode 変換ルーチン作成(暫定版)
- MultiByteToWideChar (MSDN) を使用 - Win9x 用ドライバおよび x64 用ドライバ(署名なし)のビルド
- 最終版時に更新予定
【今後の課題】
- 複数プロセッサの情報管理
- プロセッサ分だけクラスオブジェクトを作成し保持するべきかどうか
【ひとりごと】
年内に雰囲気だけは…ということで、一応がんばってみました。一番重要な OpenLibSys の Extension API 仕様がまだ固まっていな状況ではありますが、今回のリリースでは OpenLibSys から文字列を取り出す機能(暫定版)を実装しました。
CrystalCPUID 4 では実装できなかった機能も色々搭載したいので、出来るだけ早めに既存コードの移植を終えて新規開発機能に注力したいと思います。次のリリースは休み明けかな?そのときには、メインダイアログも少しは機能するようになっていると良いのですが…
【リリース】
今のところ、CrystalCPUID 4.x で実現している機能の半分も実装しておりませんので、開発状況が気になる方向けのリリースです。開発超初期版なので転載されても困りますが、一応修正 BSD ライセンスです。
特に、メインダイアログは『飾り』です!!
- CrystalCPUID 5 -Estel- Dev20 (432 KB, NT – x86 – Unicode)
【進捗】
- System Information by DMI
- デザインは今後改善予定
【作業予定】
- 文字列の ANSI -> Unicode 変換ルーチン
【ひとりごと】
文字列のバッファサイズの扱いは何かと面倒です。実際のところ、アプリ側で大きめのバッファを用意しておくことで、厳密なエラーチェックを省くことになると思いますが、ライブラリ側では、バッファサイズを確認してサイズが足りなければ何バイトのバッファが必要かを返却する等のまじめな処理が必要になるわけです。
ここら辺はしっかり作りこまないと後々不幸になるのでなんとかがんばりたいと思います。
DMI や NameString などは ANSI 文字列として情報が格納されているため、文字列の加工処理は ANSI 用関数で行う必要があります。はっきり言って OpenLibSys.dll を Unicode ビルドするメリットは何もないので、MBCS ビルドしつつ、GetOslStringW の内部で ANSI -> Unicode の処理をかますのが正解な気がしてきました。

【進捗】
- OpenLibSys Extension API の暫定定義
- DWORD GetOlsStringA(DWORD index, PCHAR str, DWORD sizeInBytes);
- DWORD GetOlsStringW(DWORD index, PWCHAR str, DWORD sizeInWords);
- DWORD GetOlsValue(DWORD index, PDWORD value);
- DWORD SetOlsValue(DWORD index, DWORD value); - OpenLibSys からの文字列取得機能の動作確認 (ANSI 版のみ)
【作業予定】
- System Information by DMI
- 文字列の ANSI <-> Unicode 変換ルーチン
【ひとりごと】
OpenLibSys.dll 内部では基本的に ANSI 文字列しか扱わないので、GetOlsStringA だけで良いような気もするのですが、将来の拡張を考えると最初から Unicode ビルドに対応しておきたいところ。