2016/05/28(Sat)GDIPLUSを使った袋文字の描画
2016/05/14(Sat)YAMAHA XGの音源コントローラを結局作り直した。
XGTGCTL2 開発やめた の続きになる。
あれから10年近く経っても、自分のDTM環境が、MU2000 EXから脱却できていないので、
ドラムやEQを自由にいじりやすくするために結局作っていた。
前のバージョンはHSPで作ってて、ソースコードがスパゲティ状態で、拡張なんてとても無理だったのでC#で書き直している。
gitの使い方の勉強もかねて、GitHub上で公開してみる。
リリース: https://github.com/ttsuki/XGMidiControllerForMU2000EX/releases
これを使って作った曲: Another Wing -Deep White- と、そのソースコード
スクリーンショット:

MIDIファイルからの読み込み機能はあんまり使わないので省いて、
音源とSysExでSEND/DUMPするほか、サクラMMLスクリプトではき出すようにしたりした。
もはやXGという規格がレトロ化してきている昨今。
MOXFを買おうかとか、でもソフトで何でもできる時代だしーと思うと躊躇してしまう今日この頃。
2016/04/03(Sun)RAMDISKドライバを作る
RAMDISKドライバを作る
ほんとは、これがやりたくてオレオレ認証局とか作ってたんだけど、
調べたところによると、Windowsで使えるドライバ用のコード証明書のCAは決まってて、
そればかりか、Windows 10のカーネルモードのドライバのコード署名はEV証明書でないといけないみたいで、
結局、この記事でやってるようにドライバ署名の検証をスルーしないと動かせなかった。
趣味レベルでカーネルモードドライバをちゃんと作ってリリースする道はもはや絶望的だなー……。
この記事では、
Visual Studioでのドライバの開発に必要なものをインストールして、
サンプルドライバをビルド・インストールしてみてから、
RAMDISKの容量が1GBになるよう、ソースコードを改造してみます。
制限
この記事の範疇ではFAT16なので、2GB(一説では4GB?)よりも大きいドライブは作れないはず。
FAT32への対応はすぐできるんだと思うけど、あんまり調べてない。
上記の通りドライバにコード署名できないので、ドライブを使うには、
毎回ドライバ署名の検証をスルーできる状態でWindowsを起動する必要がある。
2010/09/25(Sat)Visual Studio ショートカット集
2010/03/01(Mon)続・言語の壁
2010/01/27(Wed)ゆびったー - twitter botを作ってみた
前から1度ぼっとを作ってみたかった。
別に、そんな難しくなかった。
@jubeatter
自己紹介: @ttsuki (TU-SA) の jubeatニュースを報告するbotです。フレコ: 14400002896462
今回もC#で書いた。
似たようなこと誰かやってないかと思ったけど、誰もやってなかった。
まぁ、誰得?って感じではある。
1回の更新に関するつぶやきを1つにまとめたら、自分の本アカウントでも使えそうではある。
ごく身内向けに、あー、つーさ今ゲーセンにいるのね、みたいな。
試しにWebサービスにしてみるとか?
OAuth に関しての参考メモ
http://code.google.com/p/oauth/
http://watcher.moe-nifty.com/memo/2009/04/c-oauth-c097.html
2009/10/08(Thr)めも
- XNA の検索結果 約 3,420,000 件中 1 - 10 件目 (0.22 秒)
- Managed DirectX の検索結果 約 297,000 件中 1 - 10 件目 (0.24 秒)
- SlimDX の検索結果 約 14,800 件中 1 - 10 件目 (0.15 秒)
- SlimDX に一致する日本語のページ 約 5,590 件中 1 - 10 件目 (0.23 秒)
うーん……
GSDKをSlimDX上に移植してます。
ちょこちょことブラッシュアップしつつ、だいたいはコピペっていう。
MDX1.1に比べて微妙に不親切だったりしてますが、書き換えること自体はあんまり難しくないみたいです。
ただ、これ何だろう? と思ったときに調べると↑なので、移植が終わってからが難航しそうだなぁ。
なんつーか、ライブラリばっか作ってないでゲーム作れって話なんですが。
2009/05/27(Wed)StaticResourceLoader.cs
GSDK on C# で。
これで
namespace Tsukikage.GameSDK.Base { public interface IDXResourceLoader<ResourceType> { ResourceType LoadResource(ResourceType target); } }
こうして
namespace Tsukikage.GameSDK.Direct3D { public class D3DDevice : DXResource, IDXResourceLoader<D3DTexture>, IDXResourceLoader<D3DFont> { public D3DTexture LoadResource(D3DTexture target) { LoadTexture(target); return target; } } }
こうやって
using Ref = System.Reflection; namespace Tsukikage.GameSDK.Base { /// <summary> /// staticリソース読み込み支援クラス /// </summary> public class StaticResourceLoader { static Dictionary<Type, StaticResourceLoader> loaders = new Dictionary<Type, StaticResourceLoader>(); public static void Load<TypeToLoad>(Type target, IDXResourceLoader<TypeToLoad> loader) { lock (loaders) { if (loaders.ContainsKey(target) ) return; loaders[target] = new StaticResourceLoader(); foreach (Ref.FieldInfo fi in target.GetFields(Ref.BindingFlags.Public | Ref.BindingFlags.Static)) { if (fi.FieldType == typeof(TypeToLoad) && fi.GetValue(null) != null) loader.LoadResource((TypeToLoad)fi.GetValue(null)); } } } } }
で、こう。
namespace WindowsGame1.Scenes { public class Textures { public static D3DTexture Circle = new D3DTexture("circle.png"); } class Scene1 : Scene { public override void Initialize() { StaticResourceLoader.Load<D3DTexture>(typeof(Textures), GSDK.D3D); } } }
……。
まず口から出てくるのは「キメェ」の一言かもしれない。
ただ、大富豪的プログラミング時代においては、中規模程度のゲームまではこういうリソースの持ち方もありかなぁと思わないでもない。
(自分も含めて)ゲーム作り初心者が多いうちのサークルでは、この前もテクスチャリソースがリークして大変なことになってたけど。
ここを読んでくださっているみなさんはどう思われますか、なんつて。
ここを見てる人はきっとリソース管理なんて朝飯前で、こんなことしないのかもしれない……。
あー、ゲーム作りてぇなぁ……。