Archive for the ‘Develop’ category

SDL2 2.0.5 リリース

10月 30th, 2016

SDL_logo
 

 SDLライブラリ v2.0.5 がリリースされてました。今年の1月にv2.0.4が出たばかりですが、けっこうな量のアップデートですね。 詳しい内容は以下の通りです。
 

コードやフィードバックに貢献したすべての人々のおかげで、SDL2.0.5が利用可能になりました!

http://www.libsdl.org/download-2.0.php

多くのバグ修正とビルド改良に加えて、このリリースの主な変更点がここにあります:

一般:
* いくつかのプラットフォーム用のオーディオキャプチャのサポートを実装。
* オーディオキャプチャの為にバッファキューイングが ON になっている場合、オーディオを取得する為の SDL_DequeueAudio を追加。
* テキストをドラッグ&ドロップする為のイベントを追加。
* 複数のアイテムをドラッグ&ドロップする為のイベントを追加。
* デフォルトではウィンドウをライズしてクリックしてもSDLアプリケーションに配信されることはありません。あなたはそのウィンドウにクリックスルーできるようにするヒント SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH を “1″ に設定することができます。
* アルファ情報をサポートした新しいBMP形式を使用して、BMPなどのアルファチャンネルで表面を保存します。古い形式を使用するヒントSDL_HINT_BMP_SAVE_LEGACY_FORMAT を “1″ に設定することができます。
* ヒントのboolean値を取得する SDL_GetHintBoolean() を追加。
* レンダリング出力をスケーリングするとき、スムーズスケールまたはビューポートサイズの整数倍を使用するかどうかを設定する SDL_RenderSetIntegerScale() を追加。
* 特定のピクセル形式でSDLの表面を作成する SDL_CreateRGBSurfaceWithFormat() と SDL_CreateRGBSurfaceWithFormatFrom() を追加。
* ウィンドウの使用可能な領域を返す SDL_GetDisplayUsableBounds() を追加。例えば MacOSXでは、メニューバーとドックの占有面積を減算した値を返します。
* クライアント領域の周りにウィンドウの境界線のサイズなどを返す SDL_GetWindowBordersSize() を追加。
* ウィンドウが SDL_HITTEST_NORMAL ではなくヒットテストを持っていたとき、ウィンドウイベント SDL_WINDOWEVENT_HIT_TEST を追加(例:タイトルバーやウィンドウフレーム内)。
* ウィンドウがサイズ変更可能であるかどうかを変更する SDL_SetWindowResizable() を追加。
* ウィンドウの透明度に影響する SDL_SetWindowOpacity() と SDL_GetWindowOpacity() を追加。
* 別のウィンドウ用にモーダルとしてのウィンドウを設定する SDL_SetWindowModalFor() を追加。
* SDL_MixAudioFormat() に AUDIO_U16LSB と AUDIO_U16MSB のサポートを追加。
* OpenGLのレンダラを使用するとき、ターゲットテクスチャからリードバックするときに画像が反転したのを修正。
* OpenGLのレンダラを使用するとき、SDL_BLENDMODE_NONE によるテクスチャカラーの変調を修正。
* いくつかのケースで、ブリット時にカラーキーのアルファ値が無視されたバグを修正。

Windows:
* SDLがネームスレッドにデバッガ除外を引き起こすことを防止するためのヒント SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING を追加。この例外はデバッガの下で実行されている場合、.NETアプリケーションで問題が発生する可能性があります。
* ヒント SDL_HINT_THREAD_STACK_SIZE は現在Windows上でサポートされました。
* 起動時に自動的に引いた状態だったXBoxコントローラーのトリガーを修正。
* 実行ファイルからの最初のアイコンは、実行時にデフォルトのウィンドウアイコンとして使用されます。
* SDLがCライブラリのサポートによってビルドされたとき、SDLログメッセージが重複して印刷された問題を修正。
* SDLウィンドウがフォーカスを失ったとき、SDLアプリケーションで押されたデッドキーが他のアプリケーションのテキスト入力に影響を与えないようデッドキーをリセット。

Mac OS X:
* ダミービデオドライバの選択を修正。
* caps lockキーは現在、プレス/リリースイベントのペアが押される代わりに、押した時にプレスイベントが、放した時にリリースイベントが発生します。
* MacOSX 10.12上でのマウスホイールイベントを修正。
* MacOSX の新しいバージョンとの互換性を高めるためオーディオドライバーは AVFoundation を使用するように更新されました。

OpenBSD:
* OpenBSD上に SDL_GetBasePath() を現在、実装した。

iOS:
* iOS8以降に動的にロードされたオブジェクトのサポートを追加。

tvOS:
* Apple TVのサポートを追加しました。
* Apple TVのリモコンのジョイスティック軸が自動的にリモートの回転と一致するかどうかを制御するためのヒント「SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION」を追加。

Android:
* Androidの画面解像度を変更した時、SDLでウィンドウサイズが変更されない問題を修正。
* 加速度計のジョイスティックZ軸レポートを修正。

Emscripten(Webブラウザ上で実行されています):
* 多くのバグ修正と改善。
 

Link【Simple DirectMedia Layer – Homepage

htop 2.0 をコンパイル

2月 12th, 2016

htop

『htopの開発者は2月10日(米国時間)、「htop – an interactive process viewer for Unix」においてhtopの最新版となる「htop 2.0.0」の公開を伝えた。htopはプロセッサリソースやメモリの使用量などを表示するモニタリング・コマンドで、システムで提供されているtop(1)コマンドよりも表示や操作方法に扱いやすさの工夫が取り込まれている。』ー マイナビニュース
 
 CPUやメモリの使用量などを表示する(CUI)コマンドです、OSXが正式にサポートされたということでコンパイルしてみました。

sh autogen.sh
./configure
make
sudo make install

 アクティビティモニタ.app でもいいんですが、これ自体メモリやCPUを結構消費するので手軽に調べたい時にはお勧めでしょうか。

 
Link 【Linux/*BSD/Macに対応した「htop 2.0」公開
Link 【htop – an interactive process viewer for Unix

Xcode 7 でビルド失敗

1月 12th, 2016

xcode6errer
 
 Xcode 7 で古い (Ver6.3以下の) プロジェクトをビルドしようとするとリンカコマンドの失敗でビルドできないことがある。
 
Undefined symbols for architecture x86_64:
"_objc_readClassPair", referenced from:
__ARCLite__load() in libarclite_macosx.a(arclite.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

 
xcode7_fix
 
 ネットで調べてみたところ、PROJECT – Build Settings の 「Implicitly Link Objective-C Runtime Support」と「Objective-C Automatic Reference Counting」を No に設定するとビルドが成功するようだ。
 
 
Link 【Linking with Xcode 7 fails due to “undef: _objc_readClassPair” #11

MAME 0.167~ Macでコンパイルエラー

11月 28th, 2015

mame0167
 MAME 0.168 がリリースされました、が ver0.167 からMacでコンパイルすると sdl_sound.cpp でエラーが発生する様になってしまいました。少し前の環境(OSX10.10/Xcode6.4)で ver0.166 までは正常にコンパイルできていたのですが…

/Library/Frameworks/SDL2.framework/Headers/SDL_stdinc.h:229:5: error:
'_MSC_VER' is not defined, evaluates to 0 [-Werror,-Wundef]
#if _MSC_VER >= 1600 /* VS 2010 and above */

 ログを見ると SDL2.framework の SDL_stdinc.h でコケているようです、以前からSDLは ver2.0.3 のまま触ってないのでやっぱりコンパイラ(Xcode7.x)のせいなのか?
 
sdl_stdinc

 いろいろと調べた結果、SDL_stdinc.hの229行目を #if defined(_MSC_VER) && (_MSC_VER >= 1600) に書き換えることでコンパイルに成功しました。これが適正かどうか分かりませんが、とりあえずOSX10.11上で動作してます。
 
/Library/Frameworks/SDL2.framework/Headers/SDL_stdinc.h

//#if _MSC_VER >= 1600 /* VS 2010 and above */
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
 

MESS 0.152、OSX10.9上でコンパイルエラー

12月 29th, 2013

mess0152

 またかい、って事で… MESS 0.152 をMac上でコンパイルしたところ「dec_lk201.h」と「p1_hdc.h」でエラーが発生しました。最新のsvn版では既に修正されている様です。
 
mame/src/mess/machine/dec_lk201.h の 86行目をコメントアウト

 //UINT8 sci_data;

mame/src/mess/machine/p1_hdc.h の 46行目をコメントアウト

 //UINT8 m_ram[0x800];
 
 これでコンパイルが可能になります。

Link 【MAME – git dec_lk201.h / p1_hdc.h

MAME 0.152、OSX10.9上でコンパイルエラー

12月 25th, 2013

mame152

 アーケードエミュレータ MAME 0.152 がリリースされました。早速コンパイルしてみましたがソース netlist.h 辺りでエラーが発生…
 
In file included from src/emu/machine/netlist.h:54:
src/emu/netlist/nl_base.h:290:2: error: 'netlist_base_t' is an incomplete type

 
Emuversal Bulletin Board によるとコンパイラ(Clang)の問題で、最新のSVN版では既に修正されているとの事です。なのでエラーになる方はターミナルから svn コマンドを使って最新版をダウンロードしてください。( svn コマンドは Xcode の command-line tools をインストールすると使えるようになります)
 
cd ~/downloads
svn co svn://dspnet.fr/mame/trunk

 
ダウンロードしたソースをコンパイルしたところ、正常に起動できました。
 
Link【MAME | Multiple Arcade Machine Emulator

SDL1.2.15、OSX10.9上でコンパイルエラー

12月 25th, 2013

sdl_patch

 OSX10.9上で SDL1.2.15 がコンパイルできない問題が発生しています。(SDL2.0.1は問題なし)
コンパイルしようとすると「SDL_QuartzVideo.h」「SDL_x11sym.h」でエラーが発生するようです、ネットで検索してみると既にパッチが出ていました。

■ SDL_QuartzVideo.h のパッチファイル

http://www.emaculation.com/doku.php/compiling_sheepshaver_basilisk#tidbits

http://ftp.cc.uoc.gr/mirrors/macports/release/ports/devel/libsdl/files/no-CGDirectPaletteRef.patch

■ SDL_x11sym.h のパッチファイル

https://bugs.archlinux.org/task/36179

https://bugs.archlinux.org/task/36179?getfile=10749

 
パッチファイルをダウンロードし、SDL-1.2.15 フォルダの中に入れます
ターミナルを起動してSDL-1.2.15ディレクトリに移動、patchコマンドを実行します
 
 cd /Users/Jazzin/Compile/SDL-1.2.15
 patch -u -p0 < sdl_x11sym.patch
 patch -u -p0 < no-CGDirectPaletteRef.patch

 
取り敢えずこれでコンパイルできました、公式のソースファイルも修正して欲しいですね。

Mednafen 0.9.23-WIP をコンパイル

7月 7th, 2012

 マルチエミュレータ Mednafen 0.9.23-WIP がリリースされました。ネットワークプレイが改良されSDL_netライブラリが必要なくなりました、他は特に大きな変更は無さそうですね、バグフィックスがメインの様です。更新内容は以下の通り、詳しくは付属の ChangeLog を御覧ください。
 
このリリースで特に注目すべきエンドユーザーに見える変更点:
・様々なPSXエミュレーションのマイナーな改善(「ウンジャマ・ラミー」「リッジレーサータイプ4」「トリプルプレイ97」のマイナーな問題と「デッドオアアライブ」の重大な問題を修正)。
・マイナーなネットワークプレイのバグ修正と改善。”mednafen-server”の新しいバージョン0.4.2は、このバージョンのMednafen以降から使用されることが必要。
・SDL_net の依存性を排除し、ネットプレイの為にIPv6のサポートを追加。
・メガドライブエミュレーションを使用時、QuickTimeムービー録画コードがエミュレータ起動の直後にクラッシュするバグを修正。

 
 MacOSX10.7上でコンパイルすると mednafen/src/drivers/NetClient_POSIX.cpp の202行目くらいで “MSG_NOSIGNAL”関係のエラーが発生します。この問題を回避するには NetClient_POSIX.cpp の先頭に以下のコードを追加するとコンパイルできるようになります。これが正解かどうか分かりませんが… ネットプレイをしなければ多分問題ないと思います。

#ifndef MSG_NOSIGNAL
# define MSG_NOSIGNAL 0
#endif

追記(この問題は 0.9.24-WIP で修正されました)