Attention! Translated article might be found on my English blog.

2022年7月16日土曜日

リカバリディスク作成メモ

リカバリディスクを作成しようとしたが断念した。

断念に至るまでの経過を記録しておく。

 今度クリーンインストールするときの参考にする。

https://okwave.jp/qa/q9970734.html

を参考に回復ドライブの作成には回復パーティションが必要らしい。

以下引用。

回復パテーティションを作成する方法

■管理者としてコマンドプロンプトを起動

 C:\Windows\system32>

 ディスクのパーティション構成を確認

 C:\Windows\system32>

 C:\Windows\system32>diskpart

 DISKPART>

 DISKPART> list disk

  ディスク### 状態 サイズ 空き ダイナミック GPT

    ----------------  ---------  -------  ----------  -------------  -----

  *ディスク 0 オンライン    238 GB   77 GB 

  ディスク 1 オンライン  1863 GB     0 B


 DISKPART>

 DISKPART> select disk 0

 ディスク 0 が選択されました。


 DISKPART> list partition

   Partition ### Type    Size   Offset

   -------------  ------------  ------------  ----------

   Partition 1 予約   128 MB     17 KB

   Partition 2 システム   100 MB   130 MB

   Partition 3 プライマリ   79 GB  230 MB

   Partition 4 プライマリ   80 GB    80 GB

   ※Size, Offset は状況により異なる。

 DISKPART>


■回復パーティションを作る。

 ※回復パーティションのサイズの推奨値=1GiB(1024MB)

 DISKPART

 DISKPART>create partition primary size=1024

 DISKPART>format quick fs=ntfs label="Recovery tools"

 DISKPART>assign letter="R"

 DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"

 DISKPART> gpt attributes=0x8000000000000001

 選択された GPT パーティションに DiskPart で属性を割り当てました。

 ※set idとgpt attributesがポイント。これらプロパティを設定すると回復パーティションとして扱われる。


 正しく作成できれば、以下のような感じで認識される。

 DISKPART> list partition

   Partition ### Type    Size   Offset

   -------------  ------------  ------------  ----------

   Partition 1 予約   128 MB     17 KB

   Partition 2 システム   100 MB   130 MB

   Partition 3 プライマリ   79 GB  xxx

   Partition 4 プライマリ   80 GB  xxx

   Partition 5 回復  1024 MB  xxx

   ※Size, Offset は状況により異なる。


 DISKPART>

 DISKPART>exit

 C:\Windows\system32>


※以上で回復パーティション作成終了


■Windows RE イメージのコピー

 ・作成した回復パーティションにフォルダ、Recovery\WindowsRE を作る

   C:\Windows\system32>

   C:\Windows\system32>mkdir R:\Recovery\WindowsRE


 ・作成した回復パーティションにWindows RE イメージ、winre.wim をコピーする。

  通常、winre.wim はC:\Windows\System32\Recovery\ にある。

  winre.wim がない場合は、インストールメディアのsources に

  あるinstall.wim またはinstall.esd をDISM コマンドでマウント

  して、Windows\system32\recovery にあるwinre.wim を使用

  する。

  https://qwerty.work/blog/2020/04/winrewim-get-image.php


   C:\Windows\system32>

   C:\Windows\system32>xcopy /h C:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE

   C:\Windows\System32\Recovery\Winre.wim

   1 個のファイルをコピーしました

   C:\Windows\system32>


■回復パーティションの登録

 ・WindowsRE の状態を確認する。

   C:\Windows\system32>

   C:\Windows\system32>reagentc /info

   Windows 回復環境 (Windows RE) およびシステム リセット構成

   情報:

       Windows RE の状態:         Disabled

       Windows RE の場所:

       ブート構成データ (BCD) ID: 2bbafa8d-ce35-11ea-97d6-db9e6372b0f1

       回復イメージの場所:

       回復イメージ インデックス: 0

       カスタム イメージの場所:

       カスタム イメージ インデックス: 0

   REAGENTC.EXE: 操作は成功しました。

   C:\Windows\system32>


 ・回復環境を無効にする。(初めからDisabled になっているならこの手順をスキップ)

   C:\Windows\system32>

   C:\Windows\system32> reagentc /disable

   REAGENTC.EXE: 操作は成功しました。

   C:\Windows\system32>


 ・回復パーティションをWindowsに登録する。

  /pathオプションに登録する回復環境のパス、/targetに登録先のWindowsフォルダを指定する。

   C:\Windows\system32>

   C:\Windows\system32>reagentc /setreimage /path R:\Recovery\WindowsRE /target C:\Windows

   ディレクトリは次に設定されています: \\?\GLOBALROOT\device  \harddisk0\partition3\Recovery\WindowsRE

   REAGENTC.EXE: 操作は成功しました。

   C:\Windows\system32>


 ・回復環境を有効化する。

   C:\Windows\system32>

   C:\Windows\system32> reagentc /enable

   REAGENTC.EXE: 操作は成功しました。


 ・正しく登録されているか確認する。

   C:\Windows\system32>

   C:\Windows\system32> reagentc /info

   Windows 回復環境 (Windows RE) およびシステム リセット構成

    情報:

       Windows RE の状態:         Enabled

       Windows RE の場所:         \\?\GLOBALROOT\device\harddisk0\partition3\Recovery\WindowsRE

       ブート構成データ (BCD) ID: e846a2e9-c500-11eb-8001-6d7368757261

       回復イメージの場所:

       回復イメージ インデックス: 0

       カスタム イメージの場所:

       カスタム イメージ インデックス: 0

   REAGENTC.EXE: 操作は成功しました。


■回復パーティションのドライブレターを削除

 diskpart で、disk 0 を選択、Partition 5 を選択し、

  diskpart> remove letter=R


まず、

DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"

で失敗するも

id=27とすることでうまくいった

参考: https://nosix.hatenablog.com/entry/2016/12/13/024020


DISKPART> gpt attributes=0x8000000000000001

で失敗、

https://pc-kaizen.com/difference-between-mbr-and-gpt

を参考にディスクの形式を調べるとmbrだった


起動ディスクをMBRからGPTに変換するには

https://itojisan.xyz/settings/26822/

を参考にすればいけるかも

--

 

以下続き:

https://itojisan.xyz/settings/26822/ の方法1でMBRからGPTへの変換に成功

ただし、自分の環境では「トラブルシューティング」にコマンドプロンプトが無かったため、

Win10インストール用USBディスクから起動する必要があった。

GPTへの変換自体は特に問題なく成功。

再度 https://okwave.jp/qa/q9970734.html を参考に回復ディスクの作成にトライ。


自分の環境ではwinre.wim が C:\Windows\System32\Recovery\ に無かったため、

インストール用USBディスクの

E:\x86\system32\sources\install.wim をマウント。

マウントにはdismを使うがコマンドが面倒で、確か以下のような感じだった


> mkdir C:¥Users¥hoge¥install

> dism /Mount-image /imagefile:install.wim /Index:1 /MountDir:C:¥Users¥hoge¥install /Readonly

マウントしたらOKWaveの記事の通りxcopyとそれ以降の手順を実施する


実施後は無事「回復ドライブの作成」で回復ドライブを作成できるようになった。

2018年8月17日金曜日

HTML5版艦これをiPhone4sで起動してみた

HTML5版艦これをiPhone4s (iOS 9.3.5)で起動してみました。
なんとか母港までは表示できました。



が、その後の遠征の結果画面でエラーが出てしまい、
タイトル画面からやり直し。


OS再起動直後のクリーンな状態でこの有り様なので、
4sでのプレイはダメっぽいですね。><

2018年4月1日日曜日

艦これ18年冬イベお疲れ様でした

だいぶ経ってしまいましたがお疲れ様でした。
甲丙丙丁丁丙丁で無事クリアしました。

丁難易度実装のおかげもあり、割とすんなりクリアできました。

掘りの方も大豊作で、結果的にBismark以外の未所持艦のうち、
今回掘れたものは全て掘れました。



ヤバかったのは浜波(4.5%)で2週間近く沼ってたくらいでしょうか。
あと葛城(1.9%)とIowa(1.3%)はイベ終了前夜まで掘れてなかったのですが、
ほんの5戦くらいの出撃で両方ドロップして、
最後の最後で神がかり的な引きの強さを発揮したりしてました。
あとアッシマー君(1.1%)も頑張って掘りました。

Bismarkはそのうち建造で頑張りましょう…

今回のイベントでは集中的なレベリングや改造(設計図消費)が必要なく、
艦隊の戦力も結構充実してきたと言えるんではないでしょうか。
(まあオール丙(丁)突破くらいの戦力ですが)

今後はまったり全キャラゲットを目指す感じですかね〜。
というわけでお疲れ様でした〜。

2018年3月21日水曜日

VLCのカラオケ機能の実装を見てみた

vlc-2.2.8/modules/audio_filter/karaoke.c

static block_t *Process (filter_t *filter, block_t *block)
{
    const float factor = .70710678 /* 1. / sqrtf (2) */;
    float *spl = (float *)block->p_buffer;

    for (unsigned i = block->i_nb_samples; i > 0; i--)
    {
        float s = (spl[0] - spl[1]) * factor;

        *(spl++) = s;
        *(spl++) = s;
        /* TODO: set output format to mono */
    }
    (void) filter;
    return block;
}

左 - 右してモノラル化してるだけでした。
終了!

ちなみに、カラオケ機能はオーディオエフェクトウインドウ([ウインドウ]-[オーディオエフェクト...]メニュー)のフィルタータブから設定することができます。



VLCだから凝った処理をしてるのかなと思ったけどそうでもないようです。
逆に言えばこんな単純な処理でも使い物になるって事なんだと思います。

自分もとりあえずこの方法で実装してみるかなあ。


なお、カラオケ(ボーカルキャンセル)の原理と凝った実装方法については下記が参考になります。

参考: ボーカルキャンセラーの使い方 - Art Studio まほろば
参考: CDからボーカルを除去・抽出・移調するソフト/ボーカルキャンセラー2 - Art Studio まほろば

また、VLCのソースはVLC media player source code - VideoLANから入手可能です。
いつの間にか3.0.1が最新になってますね…

2018年1月25日木曜日

2018年1月24日水曜日

MusicPlayerでV3 AudioUnitを使えなかったよメモ

MusicPlayerのデフォルトAUGraphからDLS Synthを削除した後、
V3 AudioUnit(自作およびサンプルコード)を追加しようとしてもうまくいかなかった。
V2だと問題なくできた。streamFormatやsampleRateはV2とV3とで同じだったことを確認済み。
もうちょっと調査してみるが、ダメそうならAVAudioPlayerを使った方が良いかもしれない。

あと、以下の書き込みも関係あるかも。
Audio Unit V3 in AUGraph | Apple Developer Forums

2018年1月12日金曜日

Swiftメモ(Obj-Cユーザ向け)

・SwiftでCocoaフレームワーク作成:

ターゲット追加時のウィザードでswiftによるcocoaフレームワークを設定できていれば、
公開したいクラスやメソッドにpublicを付けるだけで良さそう。

参考: ios8 - How do I add a swift class to my framework header? - Stack Overflow

Xcodeの右ペインでObj-Cのヘッダファイルに設定していたPublic/Private/Projectに相当するのは
public/private/internalっぽいですねどうやら。

参考: Swift: how can I create external interface for static library (public headers analog in Objective-C .h) - Stack Overflow

・stringByAppendingPathComponent:

先にURLオブジェクトを作ってからappendingPathComponent(pathComponent:)を使うっぽい。

・変数末尾の'!'や'?':

?がnilを許容…くらいの知識しか無いので、
2.1.12. オプショナル | 基本 | Swift | スタジオガラゴを後で読む。
変数がnilだった場合のデフォルト値として'??'というのものあるようですね。

・#pragma mark:

// MARK:を使う。

参考:#pragma mark in Swift? - Stack Overflow

・isKindOfClass:

is という演算子を使う。

参考:ios - Using isKindOfClass with Swift - Stack Overflow

・その他不明点:

・blocksを引数に含む場合の書き方がよくわからん
・@escapingとは?
・NSLogとフォーマットまわり