約 6,559,283 件
https://w.atwiki.jp/abwiki/pages/452.html
前回は素のwaveファイルお再生しました。 これを使えばほかのものでも応用ができます。 今回はmp3をやります。 mp3はデコーダやプレイやがあって今さらですけど、 ABでもできるんですよ。 今回使うのは定番のmpglib.dllです。 mpglib.dllのある場所http //mpesch3.de1.cc/misc.html こいつはABから使うことを想定していないしドキュメントも不親切です だから元となったmpg123というライブラリも調べてみるといいかもしれませんね。 まずこのDLLは3つの関数しかないので、簡単ですけど、便利な昨日がないので 自分で作ります。 ID3V2も自力で読み飛ばさないといけません。 abmpglib.abp Const AUDIOBUFSIZE = 16384Const SBLIMIT = 32Const SSLIMIT = 18Const SCALE_BLOCK = 12 /* Layer 2 */Const MPG_MD_STEREO = 0Const MPG_MD_JOINT_STEREO = 1Const MPG_MD_DUAL_CHANNEL = 2Const MPG_MD_MONO = 3Const MAXFRAMESIZE = 1792Const MP3_ERR = -1Const MP3_OK = 0Const MP3_NEED_MORE = 1Type al_tablebits As Wordd As WordEnd TypeType framestereo As Longjsbound As Longsingle As Longlsf As Longmpeg25 As Longheader_change As Longlay As Longerror_protection As Longbitrate_index As Longsampling_frequency As Longpadding As Longextension As Longmode As Longmode_ext As Longcopyright As Longoriginal As Longemphasis As Longframesize As Long /* computed framesize */II_sblimit As Long /* Layer 2 */alloc As *al_table /* Layer 2 */do_layer As VoidPtr /* Layer 2 */End TypeType mpglib_bufpnt As *Bytesize As Longpos As Longpnext As *mpglib_bufprev As *mpglib_bufEnd TypeType framebufbuf As *mpglib_bufpos As Longpnext As *frameprev As *frameEnd TypeType mpstrhead As *mpglib_buftail As *mpglib_bufbsize As Longframesize As Longfsizeold As Longfr As framebsspace[ELM(2*(MAXFRAMESIZE+512))] As Byte /* MAXFRAMESIZE */hybrid_block[ELM(2*2*SBLIMIT*SSLIMIT)] As Singlehybrid_blc[ELM(2)] As Longheader As DWord bsnum As Longsynth_buffs[ELM(2*2* h110)] As Singlesynth_bo As LongEnd TypeType ID3V2ID3[2] As Bytemajorversion As Byterevision As Byteflag As Bytesize[3] As ByteEnd TypeDeclare Function InitMP3 CDECL Lib"mpglib.dll" Alias "_InitMP3" (mp As *mpstr) As LongDeclare Sub ExitMP3 CDECL Lib"mpglib.dll" Alias "_ExitMP3" (mp As *mpstr)Declare Function decodeMP3 CDECL Lib"mpglib.dll" Alias "_decodeMP3" (mp As *mpstr, inmemory As *Byte, inmemsize As Long, outmemory As *Byte, outmemsize As Long, done As *Long) As LongDim br_tbl[1,14] = [[ 0, 32, 40, 48, 56, 64, 80, 96,112,128,160,192,224,256,320],[ 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160]] As LongDim rate_tbl[9] = [44100, 48000, 32000, 22050, 24000, 16000 , 11025 , 12000 , 8000, 0] As Long'ID3V2のサイズを詰めるFunction unpack_sint28 (ptr As *Byte) As DWordDim value As DWordIf (ptr[0] And h80) Then Exit Functionvalue = value Or (ptr[0] And h7f)value = (value 7) Or (ptr[1] And h7f)value = (value 7) Or (ptr[2] And h7f)value = (value 7) Or (ptr[3] And h7f)unpack_sint28 = valueEnd FunctionType ABMP3DEC_CTXmp As mpstrbuf[AUDIOBUFSIZE] As BytehF As HANDLErate As Longch As Longpcmb As DWordstartpos As DWordmore As Longstatus As LongEnd TypeDim mc As ABMP3DEC_CTX'mp3ファイルを開いてデコード準備Function OpenMp3(mp3file As *Byte) As LongDim size As LongDim out[8192] As ByteDim len As LongDim ret As LongDim id3 As ID3V2If mc.status = TRUE Then Exit FunctionZeroMemory(VarPtr(mc), SizeOf(ABMP3DEC_CTX))mc.hF = CreateFile(mp3file, GENERIC_READ, FILE_SHARE_READ, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)If mc.hF = INVALID_HANDLE_VALUE Then Exit Function'ID3V2ReadFile(mc.hF, VarPtr(id3), SizeOf(ID3V2), VarPtr(len), ByVal 0)If strstr(id3.ID3, "ID3") ThenIf Not (id3.size[0] And h80) Then mc.startpos = unpack_sint28(id3.size)+10 End IfSetFilePointer(mc.hF, mc.startpos, 0, FILE_BEGIN)InitMP3(VarPtr(mc.mp))'一度読み込んでフォーマットを取得If ReadFile(mc.hF, mc.buf, 1024, VarPtr(len), ByVal 0) = FALSE Or len = 0 Then'読み込みエラーEnd Ifret = decodeMP3(VarPtr(mc.mp), mc.buf, len, out, 8192, VarPtr(size))If ret MP3_OK Then'デコードエラーEnd Ifmc.rate = rate_tbl[mc.mp.fr.sampling_frequency]mc.ch = mc.mp.fr.stereo'リセットSetFilePointer(mc.hF, mc.startpos, 0, FILE_BEGIN)ExitMP3(VarPtr(mc.mp))InitMP3(VarPtr(mc.mp))mc.status = TRUEOpenMp3 = TRUEEnd Function'サンプリングレート、チャンネル数を得るFunction GetFormat(rate As *Long, ch As *Long) As LongIf mc.status = FALSE Then Exit FunctionSetDWord(rate, mc.rate)SetDWord(ch, mc.ch)End Function'デコードし、そのサイズを返す。Function ReadMp3(pcm As *Byte, buflen As Long) As DWordDim pos As DWordDim len As DWordDim siz As DWordDim ret As LongIf mc.status = FALSE Then Exit Functionpos = 0siz = 0Do If mc.more = FALSE Thenret = ReadFile(mc.hF, mc.buf, 16384, VarPtr(len), ByVal 0)If ret = FALSE Or len = 0 Then *JUMPret = decodeMP3(VarPtr(mc.mp), mc.buf, len, VarPtr(pcm[pos]), 8192, VarPtr(siz))If ret = MP3_OK Then mc.more = TRUEEnd IfWhile (ret = MP3_OK)pos = pos + sizIf pos+8192 buflen Then *JUMPret = decodeMP3(VarPtr(mc.mp), NULL, 0, VarPtr(pcm[pos]), 8192, VarPtr(siz))Wendmc.more = FALSE'次に読み込みが必要Loop While pos+8192 buflen*JUMPReadMp3 = posmc.pcmb = mc.pcmb + posEnd Function'終わりFunction CloseMp3() As LongIf mc.status = FALSE Then Exit FunctionCloseHandle(mc.hF)ExitMP3(VarPtr(mc.mp))mc.status = FALSEEnd Function つぎに再生部 #include api_mmsys.sbp #include "abmpglib.abp"Declare Function waveOutOpen Lib "winmm" (phwo As *HWAVEOUT, uDeviceID As DWord, pwfx As *WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULTDeclare Function waveOutClose Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutPrepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutUnprepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutWrite Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutPause Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutRestart Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutReset Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutGetPosition Lib "winmm" (hwo As HWAVEOUT, pmmt As *MMTIME, cbmmt As DWord) As MMRESULTDeclare Function MulDiv Lib "kernel32" (nNumber As Long, nNumerator As Long, nDenominator As Long) As LongConst WAVE_MAPPER = (-1)Const CALLBACK_FUNCTION = H00030000lConst WOM_OPEN = H3BBConst WOM_CLOSE = H3BCConst WOM_DONE = H3BDConst WHDR_DONE = H00000001Const WHDR_PREPARED = H00000002Const WHDR_BEGINLOOP = H00000004Const WHDR_ENDLOOP = H00000008Const WHDR_INQUEUE = H00000010Const TIME_MS = H0001Const TIME_SAMPLES = H0002Const TIME_BYTES = H0004Const TIME_SMPTE = H0008Const TIME_MIDI = H0010Const TIME_TICKS = H0020TypeDef MMRESULT = DWordTypedef HWAVEOUT = VoidPtrType WAVEHDR lpData As *Byte dwBufferLength As DWord dwBytesRecorded As DWord dwUser As DWord dwFlags As DWord dwLoops As DWord lpNext As *WAVEHDR reserved As *DWord End TypeType MMTIMEwType As DWordu As DWordu2 As DWordEnd TypeClass Mp3PlayerPrivatebuffer[2] As *Bytehwo As HWAVEOUTwfe As WAVEFORMATEXswitch As LongFunction GetMp3Header() As LongDim head[3] As ByteDim r As DWordDim c As DWordGetFormat(VarPtr(r), VarPtr(c))wfe.wFormatTag = 1wfe.nChannels = cwfe.nSamplesPerSec = rwfe.wBitsPerSample = 16wfe.cbSize = Sizeof(WAVEFORMATEX)wfe.nBlockAlign = wfe.nChannels * wfe.wBitsPerSample/8wfe.nAvgBytesPerSec = wfe.nSamplesPerSec * wfe.nBlockAlignGetMp3Header = 1End FunctionSub waveOutProc(hwo As HWAVEOUT, uMsg As DWord, dwInstance As *DWord, dwParam1 As DWord, dwParam2 As DWord)Dim x As *Mp3Playerx = dwInstanceSelect Case uMsgCase WOM_CLOSECase WOM_DONEx- wh[1].dwUser = x- wh[1].dwUser - 1If x- wh[0].dwUser = 0 Then x- read(hwo)Case WOM_OPENEnd SelectEnd SubPublicwh[2] As WAVEHDRSub read(hwo As HWAVEOUT)Dim r As DWordIf hwo = NULL Or wh[0].dwUser = 1 Or wh[1].dwUser 1 Then Exit SubwaveOutUnprepareHeader(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))r = ReadMp3(buffer[switch], wfe.nAvgBytesPerSec)wh[switch].lpData = buffer[switch]wh[switch].dwBufferLength = rIf r = 0 Then wh[0].dwUser = 1'これ以上再生しませんwaveOutPrepareHeader(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))waveOutWrite(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))wh[1].dwUser = wh[1].dwUser + 1switch = switch + 1If switch = 2 Then switch = 0End SubFunction play(infile As *Byte) As LongIf hwo NULL Then Exit FunctionIf OpenMp3(infile) = FALSE Then Exit FunctionIf GetMp3Header() = 0 ThenCloseMp3()Exit FunctionEnd Ifbuffer[0] = malloc(wfe.nAvgBytesPerSec)buffer[1] = malloc(wfe.nAvgBytesPerSec)waveOutOpen( VarPtr(hwo), WAVE_MAPPER, VarPtr(wfe), AddressOf(waveOutProc) ,VarPtr(this), CALLBACK_FUNCTION)read(hwo)Sleep(500)read(hwo)play = 1End FunctionSub stop() As LongIf hwo = NULL Then Exit Subwh[0].dwUser = 1waveOutReset(hwo)While wh[1].dwUser 0Sleep(1)WendwaveOutUnprepareHeader(hwo, VarPtr(wh[0]), SizeOf(WAVEHDR))waveOutUnprepareHeader(hwo, VarPtr(wh[0]), SizeOf(WAVEHDR))free(buffer[0])free(buffer[1])waveOutClose(hwo)CloseMp3()hwo = NULLEnd SubFunction state(t As *DWord) As Longstate = wh[1].dwUserIf t = NULL Then Exit FunctionDim mmt As MMTIMEmmt.wType = TIME_SAMPLESwaveOutGetPosition(hwo, VarPtr(mmt), SizeOf(MMTIME))SetDWord(t,MulDiv(mmt.u , 1000, wfe.nSamplesPerSec))End FunctionEnd Class#define SELFTEST#ifdef SELFTEST#N88BASICDim wp As Mp3PlayerDim time As DWordPrint "再生"wp.play("test.mp2")While wp.state(VarPtr(time))Locate 4,1Print time\1000;"sec"Sleep(1000)Wendwp.stop()Print "停止"#endif ファイル名は好きに変えるようにして、 美しい音楽が聴こえてくるはずです。
https://w.atwiki.jp/dbsongs/pages/187.html
作詞:森由里子 作曲:山本健司 編曲:山本健司 歌:影山ヒロノブ コーラス:KUKO この宇宙 動かすほどの 心のvibration 魂いを揺さぶる正義心(おもい) 勇気と呼ぶのさ そう おれの勇気で きっと歴史さえも Just 塗りかえてやるよ アキラメや弱気捨てたら 生まれるCelebration 走るのさ 敵を蹴散らし 新たな時代へ さあ 作ってやる きっと新世界を Just 決めた瞬間(とき)にひらく奇蹟 ★力超えた強い力 そいつがWILL POWER 時空(とき)の壁も超えるスピードで 炎をより燃える炎 光のWILL POWER 夢を咲かす熱い情熱 ここにあり! いつの世も変わらぬものは 優しいFascination かけがえない人々を 愛するキモチさ そう 君のために 遠い人のために Just 自分のため平和守る 祈りよりも強い祈り こいつがWILL POWER きっと今が跳べるチャンスだよ 嵐さえも消せる風さ 光のWILL POWER まぶしすぎる明日を目差して 突っ走れ! ★repeat
https://w.atwiki.jp/ongaeshi/pages/13.html
用意するもの ruby - RubyInstaller for Windows (mingw32) インストール先は、c /app/ruby187-mingw32 を想定 cygwin - 1.7.7-1 gitからチェックアウト # 読み書き可能(要管理権限) $ git clone git@github.com ongaeshi/rroonga.git # 読み込み専用 $ git clone git //github.com/ongaeshi/rroonga.git extconf.rb(失敗する) $ ruby extconf.rb checking for groonga version ( = 1.0.4)... no downloading http //groonga.org/files/groonga/groonga-1.0.4.tar.gz... done extracting... done configuring... failed *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. vendor/groonga-1.0.4 が出来ているはずなので、そっちから先に片付ける。 groongaのコンパイル configureの設定 $ cd vendor/groonga-1.0.4 $ ./configure CC= i686-w64-mingw32-gcc CFLAGS= -g -O0 -mno-cygwin prefix= /c/users/ongaeshi/work/rroonga/vendor/local i386-pc-mingw32 rubyのヘッダを一部修正する _c /app/ruby187-mingw32/lib/ruby/1.8/i386-mingw32/win32/win32.h_ #ifdef __MINGW32__ // struct timezone { // int tz_minuteswest; // int tz_dsttime; // }; _src/Makefile 125行目_ # @todo # LDFLAGS = LDFLAGS = -L/usr/i686-w64-mingw32/sys-root/mingw/lib -L/usr/lib make $ make . . . make install $ make install Making install in include make[1] Entering directory `/c/users/ongaeshi/work/rroonga_new/vendor/groonga-1.0.4/include Making install in groonga make[2] Entering directory `/c/users/ongaeshi/work/rroonga_new/vendor/groonga-1.0.4/include/groonga . . これで、vendor/local 以下にbin/libgroonga-0.dll 等が作られたら成功。 rroongaのコンパイルに戻る。 rroonga-1.0.8-x86-mingw32.gem を作る $ cd ~/work/rroonga rake native gem $ rake native gem rake-compiler must be configured first to enable cross-compilation cd tmp/i386-mingw32/groonga/1.8.7 (in c /users/ongaeshi/work/rroonga_new) make Makefile 121 *** target pattern contains no `% . Stop. エラーが起きるのでmakefileを修正する _tmp/i386-mingw32/groonga/1.8.7/Makefile_ C → /c c → /c に変換(どちらも小文字の c にする必要があることに注意) もう一箇所修正 _tmp/i386-mingw32/groonga/1.8.7/Makefile_ # 42行目 gcc → i686-w64-mingw32-gcc # CC = gcc CC = i686-w64-mingw32-gcc . . # 51行目 -mo-cygwin追加 # CFLAGS = -mno-cygwin -g -O2 -DFD_SETSIZE=256 $(cflags) -I../../../../vendor/local/include/groonga CFLAGS = -g -O2 -DFD_SETSIZE=256 $(cflags) -I../../../../vendor/local/include/groonga . . # 62行目 gcc → i686-w64-mingw32-gcc # LDSHARED = gcc -shared -s LDSHARED = i686-w64-mingw32-gcc -shared -s rake native gem $ rake native gem cp tmp/i386-mingw32/groonga/1.8.7/groonga.so lib/groonga.so mkdir -p pkg rm -f pkg/rroonga-1.0.8/AUTHORS ln AUTHORS pkg/rroonga-1.0.8/AUTHORS rm -f pkg/rroonga-1.0.8/NEWS.ja.rdoc ln NEWS.ja.rdoc pkg/rroonga-1.0.8/NEWS.ja.rdoc rm -f pkg/rroonga-1.0.8/NEWS.rdoc ln NEWS.rdoc pkg/rroonga-1.0.8/NEWS.rdoc rm -f pkg/rroonga-1.0.8/README.ja.rdoc ln README.ja.rdoc pkg/rroonga-1.0.8/README.ja.rdoc . . _pkg/rroonga-1.0.8-x86-mingw32.gem_ が出来ていれば成功 $ cd pkg $ ls -la total 6532 drwx------+ 1 ongaeshi 0 Dec 30 17 41 . drwx------+ 1 ongaeshi 0 Dec 30 17 41 .. drwx------+ 1 ongaeshi 0 Dec 30 17 40 rroonga-1.0.8 -rwx------+ 1 ongaeshi 3370496 Dec 30 17 41 rroonga-1.0.8-x86-mingw32.gem -rwx------+ 1 ongaeshi 3316736 Dec 30 17 41 rroonga-1.0.8.gem インストール .gemファイルを直接指定 $ gem install rroonga-1.0.8-x86-mingw32.gem Enclosing class/module mGrn for class Accessor not known Enclosing class/module mGrn for class ArrayCursor not known Enclosing class/module mGrn for class Array not known Enclosing class/module mGrn for class Column not known . . 動作確認 テスト、モジュールが無いと怒られる。 $ gem install gren # rroongaを使っているアプリ PostInstall.txt Successfully installed gren-0.3.1 1 gem installed Installing ri documentation for gren-0.3.1... Installing RDoc documentation for gren-0.3.1... $ mkgrendb.bat c /app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rroonga-1.0.8-x86-mingw32/lib/groonga.so 126 指定されたモジュールが見つかりません。 - c /app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rroonga-1.0.8-x86-mingw32/lib/groonga.so (LoadError) from c /app/ruby187-mingw32/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 36 in `require from c /app/ruby187-mingw32/lib/ruby/gems/1.8/gems/rroonga-1.0.8-x86-mingw32/lib/groonga.rb 44 . . あと一息、コマンドプロンプトで実行すると、pthreadGC2.dllが無いと怒られる。 問題はpthreadGC2.dllがgroonga.soから見つけられないことなので、pthreadGC2.dllをパスの通った場所へ置けば良い。 cygwin持ってる人* $ cp -v /c/cygwin/usr/i686-w64-mingw32/sys-root/mingw/bin/pthreadGC2.dll /c/WINDOWS/system32/ cygwin持ってない人* 手っ取り早くやるには、MinGW32からコンパイル済みのpthreadGC2.dllを持ってくれば動くと思う(多分) $ wget http //sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/pthreads/pthreads-20100604.zip/download . . $ unzip pthreads-20100604.zip . . $ cd pthreads-20100604/mingw32/ $ unzip pthreads-w32.zip . . $ cp -v bin/pthreadGC2-w32.dll /c/WINDOWS/system32/pthreadGC2.dll `bin/pthreadGC2-w32.dll - `/c/WINDOWS/system32/pthreadGC2.dll もう一回テスト $ mkgrendb.bat mkgrendb INPUT_YAML1 [INPUT_YAML2 ...] --ddb, --default-db Create or Update default DB. (Plase set ENV[ GRENDB_DEFAULT_DB ]) --full Full update DB. (Delete and create) --delete Delete DB. (Not delete yaml) --dump Dump DB. --report Database Report. 動いたよー。
https://w.atwiki.jp/hyosida/pages/109.html
Windows10のインストールでライセンス認証されない件 Dynabook SS RX2 SG120EのHDDをジャンクの256GBのSSDに換装してみた。確かにWindows7は早くなったような気がするが、じゃあwindows10ならどうか、を試してみたくなる。 元のHDDが80GBなのでEaseUStodoBackupでバックアップを復元すると、256GBのSSDの80GB分が元のWindows7になり、残りは使われない状態になっている。残りの部分には一度Xubuntuをインストールした。それは特に問題なく動いた。 で、試しにWindows10をインストールしたが、ライセンス認証されない。もとのWindows7がHome PremiumというバージョンでWinodws10proにしたのがまずかったかとおもいWindows10HOMEにしたがやっぱりダメ。(その後一度WindowsProをインストールしたがこちらは認証が通らなかった。Windows7HomePremiumはWindosw10HOMEでないとライセンスが通らないのか?) このPCは元はVISTAでこれを再生品のアップグレードみたいのでWindows7にしている。中古で買ったのでよくわからない。 そこで、裏面のシールにかかれているvistaのプロダクトキーを入れてみたが、はねられる。windows7のプロダクトキーはわからない。 Windos7のプロダクトキーの探し方 色々なページをさまよって、結果的にはわかった。 https //qwerty.work/blog/2020/01/windows-productkey-check.php コマンドプロンプトから調べる コマンドプロンプトを管理者として実行として起動、 wmic path SoftwareLicensingService get OA3xOriginalProductKey なんかエラーが出る。 PowerShellを使って調べる PowerShellを管理者として実行、 powershell "(Get-WmiObject -query select * from SoftwareLicensingService ).OA3xOriginalProductKey" 何も出ない。 VBScriptで調べる場合 次のコードをほげほげ.vbsとして保存し、実行。これでできた。 Set WshShell = CreateObject("WScript.Shell") MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")) Function ConvertToKey(Key) Const KeyOffset = 52 i = 28 Chars = "BCDFGHJKMPQRTVWXY2346789" Do Cur = 0 x = 14 Do Cur = Cur * 256 Cur = Key(x + KeyOffset) + Cur Key(x + KeyOffset) = (Cur \ 24) And 255 Cur = Cur Mod 24 x = x -1 Loop While x = 0 i = i -1 KeyOutput = Mid(Chars, Cur + 1, 1) KeyOutput If (((29 - i) Mod 6) = 0) And (i -1) Then i = i -1 KeyOutput = "-" KeyOutput End If Loop While i = 0 ConvertToKey = KeyOutput End Function 何やってんのかわかんない。あと、これを実行したあと、Windows7は固まった。一度しかしていないので必ずかどうかはわからない。 見つけたプロダクトキーでWindows10で認証 もう一度windows10HOMEをインストールしてライセンス認証してみたら、今度は通った。やれやれ。これがわかっていればWindows7の再インストールも可能かもしれないし、一度デジタル認証が通っているので、もうライセンスキーはいらないのかもしれない。 grub2の再インストール これでMBRからwindows10が起動するようになったが、HDDをSSDに入れ替えた後、残りのパーティションにxubuntuを入れて、grub2から起動するようにしていた。もう一度一からxubuntuを入れなおしてもいいが、SSDのwindows以外のパーティションにはそっくりそのまま元の状態で残っているはずなので、grubの再インストールにチャレンジしてみた。やったことは、 sudo grub-install --boot-directory=/bootディレクトリーのパス 起動ディスクのデバイスファイル としただけ。 https //kledgeb.blogspot.com/2012/10/ubuntu-grub2-grub2.html を参照した。 これで元のように、grub2が立ち上がり、デフォルトでxubuntuが起動、メニューで選択すればWindows10が起動するようになったが、メニュー表示は(当然ながら)Windows7のままだということと、Windows7を選ぶと一度、何かが見つからない的なメッセージが出てそのあとWindows10が立ち上がる。デバイス番号が見つからないと言っているように見えるが、まあいいか。という感じになった。 結局元に戻す SSDに換装したRX2、メモリが2GBしかない状態で少し使ってみた。確かに起動は早いが、動きはいくらSSDとはいえ遅い。ブラウザを立ち上げyoutubeを見るくらいならメモリ不足はあまり感じない。 というわけで結局Windows7に戻した。Windows7じゃなきゃ困るようなことはあまりないが1台くらい残しておいてもいいかもしれない、ってのもある。
https://w.atwiki.jp/power99/pages/88.html
The Everflowing Well / 永遠溢れの井戸 (2)(青) 伝説のアーティファクト 永遠溢れの井戸が戦場に出たとき、カード2枚を切削する。その後、カード2枚を引く。 落魄8 ― あなたのアップキープの開始時に、あなたの墓地に8枚以上のパーマネント・カードがある場合、永遠溢れの井戸を変身させる。 The Myriad Pools / 無限の池 伝説のアーティファクト 土地 (《永遠溢れの井戸/The Everflowing Well》から変身する。) (T):(青)を加える。 あなたが無限の池によって生み出されたマナを使ってパーマネント呪文1つを唱えるたび、あなたがコントロールしていてこれでないパーマネント最大1つを対象とする。ターン終了時まで、それはその呪文のコピーとなる。 2024/03/06に九十九パワ子のカード紹介で紹介された。 なにやら色々書いてありますが、とりあえず3マナ2ドローだけでパワー99唯一の性能です。 オマケの切削も今までにない効率で墓地利用デッキをトーナメントレベルに押し上げ… オマケのオマケの土地も……オマケのオマケのレベル…?
https://w.atwiki.jp/oneokrock10969/pages/42.html
Deeper Deeper / Nothing Helps 2013年1月9日に発売された8thシングル。 収録曲 01. Deeper Deeper 02. Nothing Helps 03. カサブタ
https://w.atwiki.jp/windowsmobilegames/pages/26.html
ゲームパッドを使う 動画 finalburnやFPSEceでアクションゲームなどをプレイする場合、キーボードやバーチャルコントローラーでは限界があるので、本物のゲームパッドを使いたい所。そこでwindows mobile端末(USBホスト対応)でゲームパッドを使用する方法を解説します。 準備するもの USBホスト機能に対応したwindows mobile端末 USBゲームコントローラー USBホストケーブル ■USBホストケーブルラインナップ IO-DATA - USB2-C5 pocketgames - ポケットホスト microUSB pocketgames - ポケットホストアダプタ microUSB ブライトンネット - USB2-C5 ミヤビックス - リトラクタブル Micro-USBホストケーブル ※USBホストケーブルはゲームコントローラーだけでなく、マウスやキーボードを繋ぐ事ができ、とても便利ですので、持っていても損ではないでしょう。 ドライバインストール ①hidgamep.dllをwindowsフォルダに入れます。 hidgamep.dll ②hidgamepad_regist.CABを実行します。 hidgamepad_regist.CAB ③USBホストケーブルを端末に接続し、USBホストケーブルにゲームパッドを接続します。 Gamepad Attachedと表示されたら成功です。 設定 hidgamep.dllドライバの概念は単純明快で、ゲームパッドのボタンを押すと キーボードの方向キーと数字キーの1~8が押されたと感知する仕組みです。 finalburnやFPSEceのキー配置で普通に設定する事ができます。 このドライバで認識するボタン数は8個までです。 大抵のゲームパッドは8個かそれ以上ボタンがあるため、スタートボタンなどを割り振る事ができません。 キーボードのキー割り当てを自由に変更できれば、もっと使い勝手が良いと思いますが、何かいい方法ないでしょうか。情報求む。 名前 コメント - : - : -
https://w.atwiki.jp/gdiplus2/pages/17.html
1. 使い方 2. バイナリ 3. 更新履歴 4. FAQ 使い方 オプションgdi++.iniの例 オプション解説HookChildProcesses HintingMode AntiAliasMode ForceChangeFont TextTuning、TextTuningR、TextTuningG、TextTuningB NormalWeight BoldWeight ItalicSlant EnableKerning MaxHeight Individual Exclude ExcludeModule UseInclude IncludeModule オプション解説(マニア向け)LoadOnDemand UseMapping UseManager LcdFilter Shadow CacheMaxFaces、CacheMaxSizes、CacheMaxBytes その他 縦書き? 使い方 gdi++.dll(FreeType版)のアーカイブを入手し、適当なローカルフォルダに解凍。 freetype.dllを入手し、freetype.dllをXPの場合 gdi++.dllと同じフォルダ2kの場合 PATHの通ったフォルダ(system32とか)にコピー。 下のオプションを参考にgdi++.iniを編集して、gdi++.dllの動作を設定。 gdi++.exeに対象exeをドロップして起動。 期待した結果が得られない場合、gdi++.iniの当該箇所を編集し直す。たぶん結構な試行錯誤が必要。 オプション gdi++.iniの例 FreeTypeの設定は[General]に書いても動作する。 先頭が ; とか # とか // とか REM とか の行はコメント扱い。 [General] HookChildProcesses=1 [FreeType] HintingMode=2 AntiAliasMode=2 ForceChangeFont= TextTuning=0 TextTuningR=0 TextTuningG=0 TextTuningB=0 NormalWeight=0 BoldWeight=0 ItalicSlant=0 EnableKerning=0 MaxHeight=0 LoadOnDemand=0 UseMapping=0 UseManager=0 UseInclude=0 #LcdFilter=0 #Shadow=1,1,4 CacheMaxFaces=0 CacheMaxSizes=0 CacheMaxBytes=0 [Individual] メイリオ=0 MS Pゴシック=,0,, Arial=,,,,,1 MingLiU=0 PMingLiU=0 DF行書体=0 DF特太ゴシック体=0 DF平成ゴシック=0 DF平成ゴシック体W5=0 DF平成明朝体W3=0 DF平成明朝体W7=0 DHP行書体=0 DHP特太ゴシック体=0 DHP平成ゴシックW5=0 DHP平成明朝体W3=0 DHP平成明朝体W7=0 [Exclude] Marlett Tahoma [ExcludeModule] fontview.exe [IncludeModule] オプション解説 HookChildProcesses 子プロセスにも自動でgdi++を適用 HintingMode ヒンティングの設定。 0だとバイトコードインタプリタを使用します(フォントに含まれるヒンティングそのもの)。 1だとヒンティングをしません。 2はFreeTypeのオートヒンティングを使用します。 ※FreeTypeライブラリのバイトコードインタプリタがOFFになっている場合は0と2 が同等になります。 ※一部のフォントではバイトコードインタプリタによるヒンティングを行わないと 字形が崩れます(例:DF平成ゴシック)。 AntiAliasMode -1でアンチエイリアスを無効化。 0なら普通のアンチエイリアス(256階調)をかけます。 1はLightモードです。FreeTypeのReferenceによるとMac OS Xっぽい描画に なるらしい。 2、3は液晶用。並びが違います。 ※1を指定したときはHintingModeは2(オートヒンティング)にしてください。 Lightモード(1)はノーマルモード(0)と比べて字形の変化が少なくなります。 ForceChangeFont 強制的にそのフォントを使うようになる ダイアログが見づらくなるが一時的に特定のフォントで確認したい時に使用する TextTuning、TextTuningR、TextTuningG、TextTuningB 文字の締まりを良くするようなもの。 -1を指定すると無効化できる。(注 0でも有効になっている) 0-12までの値を指定できます。 TextTuningはAntiAliasModeが0か1の時に使用します。 TextTuningR・TextTuningG・TextTuningBはAntiAliasModeが2か3の時に使用します。 ※文字と背景の境界を調節し、背景側を文字側に侵食させる(背景を強く出す)よう な形になっています。より大きな値を指定すると文字がより締まってみえますが アンチエイリアスの効果も落ちるので注意してください。 NormalWeight 標準のウェイトを相対値で指定(-32~+32)。BoldWeightより変化幅が小さい。 BoldWeight 太字のウェイトを相対値で指定(-16~+16)。マイナスにすると細くなる。 ItalicSlant 斜体の傾斜を相対値で指定(-16~+16)。 EnableKerning 0だと文字詰めなし 1だと文字詰めあり ※ONにするとIEとかでずれるので注意 MaxHeight FreeTypeで処理させる最大のフォントサイズ。(ピクセル単位) 0で全てのサイズ。初期値は0。 Individual フォント別に個別設定する。 書式 フォント=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Kerning 例のように省略可能。その場合は[FreeType]で設定した共通設定が使われる。 Exclude 除外フォント。本家と違って上限は無し。 ExcludeModule 除外モジュールリスト。本家と違って上限は無し。 UseInclude 0の場合(もしくは未定義の場合)は[ExcludeModule]が有効。(従来と同じ) 1の場合[IncludeModule]が有効。 Managerによる自動適用は使いたいが、実際に適用するのは特定のアプリに限定 したいという場合に1を指定してIncludeModuleの方を使う。 IncludeModule 対象モジュールリスト。ExcludeModuleの逆で適用したいモジュールを定義する。 オプション解説(マニア向け) 以下はマニア向けオプションなので使用は自己責任で。 LoadOnDemand フォントを読み込むのをCreateFont系から要求時(TextOut系など)にする。 FAQにあるManager使用時の問題が解決されるかもしれない。 ※ハングアップする可能性があるので低スペックマシンでは絶対にONにしない事。 UseMapping フォント読み取りにMemory Mappingを使う。 UseManager Managerが使用可能になる。(標準では使用できない) LcdFilter FT_Library_SetLcdFilterに渡すパラメータ。 0 None、1 Default、2 Light、16 Legacy LegacyにするとLibXftと同じアルゴリズムらしい。 ※2.3.0以降で使用する事。 Shadow 影をつける。 書式 Shadow=x,y,t (x 0, y 0, t 0, パラメータ省略は不可) オフセット(x,y)に100/t (%)の透過率で描画 CacheMaxFaces、CacheMaxSizes、CacheMaxBytes FTC_Manager_Newに渡すパラメータ。詳細はFreeTypeのマニュアル参照 ※パラメータチェックしてないので大きな値を設定すると暴走する可能性あり その他 mfdel.exeを使ってManifestを削除すると、XPでも2kと同じ動作にできる。もちろんgdi++.dllを上書きする度にmfdel.exeを使う必要がある。 gdippInfo.exeを使うと質問用のテンプレを生成できる。ただしFreeTypeの情報は自分で埋める。(特にCVSとか) gdippEST.exeを使うと設定が簡単に変更できる。 VC6又はDDKを使ってCVSのFreeTypeを簡単にビルドできるセットがgdi0231にある。VC8以降を使う場合はgdi0236の.makをコピーする。 さらに、バッチファイルを実行するだけで全自動でビルドできるセットもある。ビルドに必要なcvsやpatchが予め入っているのでVC持ってるならお勧め。VC6用 gdi0258.zip (オリジナル)VC2003用 gdi0265.zipVC2005EE用 gdi0411.zip※これは「やり方分かってるけど面倒な人向け」の物なので、BATの中身を見て何をやるか理解した上で実行すること。 十分なCPU、1GB超のメモリを積んでいるPC向け豪速化設定の例(自己責任)※gdi++.dllがメモリを食い潰すのでManager使うならこんな設定にはしない事。 その1 UseMapping=1 CacheMaxFaces=16 CacheMaxSizes=16 CacheMaxBytes=16777216 その2 UseMapping=1 CacheMaxFaces=8 CacheMaxSizes=8 CacheMaxBytes=1048576 縦書き? FreeTypeのソースコードを取ってくる。 freetype.dswまたはfreetype.slnをVCで読み込んで "Win32 Release Multithreaded"を選択する。 otvalid\otvalid.cを追加する。 base\ftlcdfil.cを追加する。 ftmodule.hにFT_USE_MODULE(otv_module_class)を追記する。 プロジェクトの設定(プロパティ)で 使用するランタイムライブラリを"マルチスレッド(DLL)"にする。 出力ファイル名をfreetypeMT.libにする。 ビルド。 freetypeMT.libをgdi++.dllのsrcフォルダにコピーする。 nmake ftstatic=1と打ってgdi++.dllをビルドする。 出来たgdi++.dllでgdi0344相当の縦書きが使えるようになるはず。 VC6でしか試してないので他はシラネ。
https://w.atwiki.jp/windows8/
Windows 8 wikiへようこそ -新しく発表されたWindows 8のwiki。 公式サイトまとめ -Windows Developer Centerhttp //msdn.microsoft.com/en-us/windows/home/ バグ・不具合を見つけたら? 要望がある場合は? お手数ですが、メールでお問い合わせください。
https://w.atwiki.jp/avrmicom/pages/29.html
クラッシュ一覧 Created by using BlueScreenView ダンプ ファイル クラッシュ日時 バグ チェック文字列 バグ チェック コード パラメーター 1 パラメーター 2 パラメーター 3 パラメーター 4 原因のドライバー 原因のアドレス ファイルの説明 製品名 会社名 ファイル バージョン プロセッサ クラッシュ アドレス スタック アドレス 1 スタック アドレス 2 スタック アドレス 3 コンピューター名 完全なパス プロセッサ数 メジャー バージョン マイナー バージョン ダンプ ファイル サイズ 051713-9063-01.dmp 2013/05/17 21 56 52 SYSTEM_SERVICE_EXCEPTION 0x0000003b 00000000`c0000005 fffff800`06d5ef87 fffff880`09cf8e90 00000000`00000000 ntoskrnl.exe ntoskrnl.exe+75c00 NT Kernel System Microsoft® Windows® Operating System Microsoft Corporation 6.1.7601.18113 (win7sp1_gdr.130318-1533) x64 ntoskrnl.exe+75c00 C \Windows\Minidump\051713-9063-01.dmp 4 15 7601 281,080 041913-9032-01.dmp 2013/04/19 0 00 39 KMODE_EXCEPTION_NOT_HANDLED 0x0000001e ffffffff`c0000005 fffff800`06acbf4b 00000000`00000000 ffffffff`ffffffff igdkmd64.sys igdkmd64.sys+4e22c x64 ntoskrnl.exe+75c00 C \Windows\Minidump\041913-9032-01.dmp 4 15 7601 281,080 041513-9188-01.dmp 2013/04/15 20 37 32 KMODE_EXCEPTION_NOT_HANDLED 0x0000001e ffffffff`c0000005 fffff800`06a97f4b 00000000`00000000 ffffffff`ffffffff ntoskrnl.exe ntoskrnl.exe+75c00 NT Kernel System Microsoft® Windows® Operating System Microsoft Corporation 6.1.7601.18113 (win7sp1_gdr.130318-1533) x64 ntoskrnl.exe+75c00 C \Windows\Minidump\041513-9188-01.dmp 4 15 7601 281,080 100512-7956-01.dmp 2012/10/05 21 35 19 SYSTEM_SERVICE_EXCEPTION 0x0000003b 00000000`c0000005 fffff800`069ae9bc fffff880`08333e80 00000000`00000000 ntoskrnl.exe ntoskrnl.exe+7f1c0 NT Kernel System Microsoft® Windows® Operating System Microsoft Corporation 6.1.7601.18113 (win7sp1_gdr.130318-1533) x64 ntoskrnl.exe+7f1c0 C \Windows\Minidump\100512-7956-01.dmp 4 15 7601 285,392 090912-8517-01.dmp 2012/09/09 21 40 46 NTFS_FILE_SYSTEM 0x00000024 00000000`001904fb fffff880`0637da38 fffff880`0637d290 fffff880`016e1c73 Ntfs.sys Ntfs.sys+b1c73 x64 ntoskrnl.exe+7f1c0 C \Windows\Minidump\090912-8517-01.dmp 4 15 7601 281,024 082212-6318-01.dmp 2012/08/22 23 47 00 MEMORY_MANAGEMENT 0x0000001a 00000000`00041790 fffffa80`0280b420 00000000`0000ffff 00000000`00000000 ntoskrnl.exe ntoskrnl.exe+7f1c0 NT Kernel System Microsoft® Windows® Operating System Microsoft Corporation 6.1.7601.18113 (win7sp1_gdr.130318-1533) x64 ntoskrnl.exe+7f1c0 C \Windows\Minidump\082212-6318-01.dmp 4 15 7601 281,024