diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index cd58deff..00000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Submit package to Windows Package Manager Community Repository
-
-on:
- release:
- types: [published]
-
-env:
- packageFileName: LegendUtil_Setup.exe
- packageId: femtoCommunity.LegendUtil
-
-jobs:
-
- winget:
- name: Publish winget package
- runs-on: windows-latest
- steps:
- - name: Submit package to Windows Package Manager Community Repository
- run: |
- iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
- $github = Get-Content '${{ github.event_path }}' | ConvertFrom-Json
- $installerUrl = $github.release.assets | Where-Object -Property name -match ${env:packageFileName} | Select -ExpandProperty browser_download_url -First 1
- .\wingetcreate.exe update ${env:packageId} -s -v $github.release.name -u $installerUrl -t ${{ secrets.Project_PAT }}
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
deleted file mode 100644
index fe87b509..00000000
--- a/.github/workflows/nightly.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-name: Build Nightly
-
-on:
- push:
- branches: [ "dev" ]
-# pull_request:
-# branches: [ "dev" ]
-
-jobs:
-
- build:
-
- runs-on: windows-latest # For a list of available runner types, refer to
- # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
-
- env:
- Project_Name: LegendUtil
- Produire_Url: https://produ.irelang.jp/downloads/2.0/produire-2.0.1191.zip
-
- steps:
- - name: Create Directory
- run: |
- New-Item -ItemType Directory "$env:RUNNER_TEMP\rdr"
- New-Item -ItemType Directory "$env:RUNNER_TEMP\source"
- New-Item -ItemType Directory "$env:RUNNER_TEMP\build"
- New-Item -ItemType Directory "\artifacts"
-
- - name: Download Produire
- shell: pwsh
- run: |
- Invoke-WebRequest -Uri $env:Produire_Url -OutFile "$env:RUNNER_TEMP\rdr.zip"
- $zipfilePath="$env:RUNNER_TEMP\rdr.zip"
- $destinationUnzipPath="$env:RUNNER_TEMP\rdr"
- & ${env:ProgramFiles}\7-Zip\7z.exe x $zipfilePath "-o$($destinationUnzipPath)" -y
- Remove-Item -Path "$env:RUNNER_TEMP\rdr.zip"
-
- - name: Download Source
- shell: pwsh
- run: |
- Invoke-WebRequest -Uri "https://github.com/$env:GITHUB_REPOSITORY/archive/refs/heads/$env:GITHUB_REF_NAME.zip" -OutFile "$env:RUNNER_TEMP\source.zip"
- $zipfilePath="$env:RUNNER_TEMP\source.zip"
- $destinationUnzipPath="$env:RUNNER_TEMP\source"
- & ${env:ProgramFiles}\7-Zip\7z.exe x $zipfilePath "-o$($destinationUnzipPath)" -y
- Remove-Item -Path "$env:RUNNER_TEMP\source.zip"
-
- - name: Compile Source
- shell: pwsh
- run: |
- $Source_Path="$env:RUNNER_TEMP\source\$env:Project_Name-$env:GITHUB_REF_NAME"
- "Nightly Build" > "$Source_Path\BuildDate.txt"
- "99999.000000" > "$Source_Path\BuildVersion.txt"
- Start-Process -Wait -NoNewWindow -FilePath "$env:RUNNER_TEMP\rdr\rdrc.exe" -ArgumentList "/desktop","/anycpu","$Source_Path\$env:Project_Name.rdrproj"
- Move-Item -Path "$Source_Path\$env:Project_Name.exe" -Destination "$env:RUNNER_TEMP\build"
- Move-Item -Path "$Source_Path\*.dll" -Destination "$env:RUNNER_TEMP\build"
-
- - name: Copy Resources
- shell: pwsh
- run: |
- $Source_Path="$env:RUNNER_TEMP\source\$env:Project_Name-$env:GITHUB_REF_NAME"
- Copy-Item -Recurse -Path "$Source_Path\_Pack\$env:Project_Name\Resources" -Destination "$env:RUNNER_TEMP\build"
- Copy-Item -Recurse -Path "$Source_Path\Source\runtimes" -Destination "$env:RUNNER_TEMP\build"
-
- - name: Upload Artifact
- uses: actions/upload-artifact@v4
- with:
- name: ${{ env.Project_Name }}-${{ github.ref_name }}_Nightly_Build
- path: ${{ runner.temp }}\build
diff --git a/.github/workflows/nightly_rdr.yml b/.github/workflows/nightly_rdr.yml
new file mode 100644
index 00000000..d0391ad0
--- /dev/null
+++ b/.github/workflows/nightly_rdr.yml
@@ -0,0 +1,62 @@
+name: Build Nightly
+
+on:
+ push:
+ branches: [ "dev" ]
+
+env:
+ project-name: LegendUtil
+ produire-url: https://produ.irelang.jp/downloads
+
+jobs:
+ build:
+ runs-on: windows-latest
+ steps:
+ - uses: MathRobin/timezone-action@v1.1
+ with:
+ timezoneWindows: 'Tokyo Standard Time'
+
+ - name: Create Directory
+ shell: pwsh
+ run: |
+ New-Item -ItemType Directory "\rdr"
+
+ - uses: actions/checkout@v4
+ with:
+ path: Source
+
+ - uses: actions/checkout@v4
+ with:
+ ref: releases/nightly
+ path: Releases
+
+ - name: Cache Produire
+ id: cache-produire
+ uses: actions/cache@v4
+ env:
+ cache-name: cache-produire
+ with:
+ path: \rdr
+ key: ${{ env.cache-name }}-${{ vars.PRODUIRE_VERSION_MAJOR }}.${{ vars.PRODUIRE_VERSION_MINOR }}.${{ vars.PRODUIRE_VERSION_BUILD }}
+
+ - if: ${{ steps.cache-produire.outputs.cache-hit != 'true' }}
+ name: Download Produire
+ continue-on-error: true
+ shell: pwsh
+ run: |
+ Invoke-WebRequest -Uri "${{ env.produire-url }}/${{ vars.PRODUIRE_VERSION_MAJOR }}.${{ vars.PRODUIRE_VERSION_MINOR }}/produire-${{ vars.PRODUIRE_VERSION_MAJOR }}.${{ vars.PRODUIRE_VERSION_MINOR }}.${{ vars.PRODUIRE_VERSION_BUILD }}.zip" -OutFile "$env:RUNNER_TEMP\rdr.zip"
+ $zipfilePath="$env:RUNNER_TEMP\rdr.zip"
+ $destinationUnzipPath="\rdr"
+ & ${env:ProgramFiles}\7-Zip\7z.exe x $zipfilePath "-o$($destinationUnzipPath)" -y
+ Remove-Item -Path "$env:RUNNER_TEMP\rdr.zip"
+
+ - name: Set Git Config
+ shell: pwsh
+ run: |
+ git config --global user.email "actions@github.com"
+ git config --global user.name "GitHub Actions"
+
+ - name: Run Builder
+ shell: pwsh
+ run: |
+ \rdr\pconsole.exe "$env:GITHUB_WORKSPACE\Source\Scripts\NightlyBuilder_Actions.rdr" "/ApiKey" "${{ secrets.LEGENDUTIL_API_KEY }}"
diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml
new file mode 100644
index 00000000..3f9de5a4
--- /dev/null
+++ b/.github/workflows/winget.yml
@@ -0,0 +1,14 @@
+name: Publish to WinGet
+on:
+ release:
+ types: [released]
+jobs:
+ publish:
+ runs-on: windows-latest
+ steps:
+ - uses: vedantmgoyal9/winget-releaser@main
+ with:
+ identifier: femtoCommunity.LegendUtil
+ version: ${{ github.event.release.name }}
+ installers-regex: LegendUtil_Setup.exe
+ token: ${{ secrets.WINGET_GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index a6f31bb0..b269fc69 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-_Pack/*.dll
+_Pack/LegendUtil/*.dll
_Debug
BuilderConfig.ini
_Build.bat
@@ -12,8 +12,10 @@ _Compile.bat
_dbg*.bat
BuildDate.txt
BuildVersion.txt
+CommitHash.txt
*.dll
-!Source/*.dll
+!Resources/Dll/*
+!Scripts/*.dll
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
diff --git a/Build.json b/Build.json
index 697f1e36..18146200 100644
--- a/Build.json
+++ b/Build.json
@@ -1,19 +1,19 @@
{
- "App": {
- "ReleaseChannel": "dev"
- },
- "DiscordRPC": {
- "AppID": "1205482419730382888"
- },
- "API": {
- "FQDN": "api.legendutil.milkeyyy.com"
- },
- "URL": {
- "Logo_Author": "https://twitter.com/Apex_tyaneko",
- "GitHub_Repo": "https://github.com/femtoCommunity/LegendUtil",
- "Discord_Server": "https://discord.gg/Y5FrzPft3M",
- "Crowdin": "https://bit.ly/LegendUtil-TL",
- "Wiki": "https://wiki.legendutil.ezolys.com",
- "Ko-fi": "https://ko-fi.com/milkeyyy"
- }
+ "API": {
+ "FQDN": "api-legendutil.ezolys.com"
+ },
+ "App": {
+ "ReleaseChannel": "dev"
+ },
+ "DiscordRPC": {
+ "AppID": "1205482419730382888"
+ },
+ "URL": {
+ "Crowdin": "https://bit.ly/LegendUtil-TL",
+ "Discord_Server": "https://discord.gg/Y5FrzPft3M",
+ "GitHub_Repo": "https://github.com/femtoCommunity/LegendUtil",
+ "Ko-fi": "https://ko-fi.com/milkeyyy",
+ "Logo_Author": "https://twitter.com/Apex_tyaneko",
+ "Wiki": "https://wiki.legendutil.ezolys.com"
+ }
}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 54d9cd36..ae13e5d1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,52 @@
# LegendUtil Changelog
+## 🚀 Version 0.4.0-beta
+
+### ⚡ このバージョンの主な変更点
+- ゲームのインストール/アップデート/修復の実行を検知して完了するまで待機する機能を実装 (実験的機能)
+- メインメニューのニュースをプロファイルリストに置き換える機能を実装 (実験的機能)
+- DirectX 12 での起動がデフォルトになった仕様への対応
+- 多数の不具合の修正
+
+---
+
+### 🟢 追加
+- **ゲームのインストール/アップデート/修復の実行を検知して完了するまで待機する機能を実装** (実験的機能)
+ > この機能はアプリケーション設定から有効/無効を切り替えられます。 (デフォルトは有効)
+- [メインメニュー] ニュースをプロファイルリストに置き換える機能を実装 (実験的機能)
+ > この機能を利用するには、アプリケーション設定の「実験的機能」から「メインメニュー プロファイルリスト」を有効化し、アプリケーション設定から「ニュースの表示」を無効化する必要があります。
+- [メインメニュー] マップローテーションへ常時表示される残り時間表記を追加
+- [プロファイル編集パネル] DirectX 12 での解像度変更に関する警告文を追加
+- [アプリケーション情報画面] コミットハッシュの表記を追加
+- ウィンドウ上部のバージョンラベルをクリックするとバージョン情報をコピーする機能を実装
+- シーズン24 で追加された新たな起動引数へ対応
+ - [`+mat_minimize_on_alt_tab`](https://www.ea.com/ja/games/apex-legends/apex-legends/news/takeover-patch-notes#:~:text=Added%20a%20launch%20argument%20%2Bmat_minimize_on_alt_tab%201%20that%20allows%20behavior%20similar%20to%20DX11%20where%20tabbing%20away%20from/clicking%20out%20of%20the%20fullscreen%20game%20causes%20Apex%20to%20minimize) - フルスクリーン時に Alt+Tab で移動したり、ウィンドウ外をクリックしてゲームからフォーカスを外すと、**ウィンドウが最小化される** という DirectX 11 と同様の動作が可能になります。
+ - [`+mat_wide_pillarbox`](https://www.ea.com/ja/games/apex-legends/apex-legends/news/takeover-patch-notes#:~:text=Changed%20the%20way%20that%20ultrawide%20monitors%20handle%2016%3A9%20and%2016%3A10%20resolutions%20in%20full%2Dscreen%20mode.%20They%20will%20now%20have%20pillarboxing%20(black%20borders%20on%20left%20and%20right)%20and%20no%20stretching.%20This%20behavior%20can%20be%20disabled%20with%20%2Bmat_wide_pillarbox%200%20launch%20argument%2C%20if%20stretching%20is%20desired.) - ゲーム画面が比率を維持せずに引き伸ばされ、画面の左右に黒い余白が表示されなくなります。主にウルトラワイドモニター等の通常とは異なるアスペクト比のディスプレイ向けの引数です。
+
+### 🔁 変更
+- [モザンビークAPI] ゲームモードの一覧をAPIから取得した情報を元にするように改良
+- [モザンビークAPI] 新しいドメイン/エンドポイントに対応
+- [実験的機能管理画面] 実験的機能を無効化する機能を実装
+- [実験的機能管理画面] 詳細テキストを追加
+- [アプリ設定パネル] 設定項目の文字サイズを調整
+- [アップデーター] アップデート確認画面の変更履歴ビューの改良
+- DirectX 12 での起動がデフォルトになった仕様への対応
+ - DirectX 11 で起動するための起動引数を追加
+ - DirectX 12 で起動するための起動引数を削除
+ - DirectX 12 の起動引数を削除する機能を実装
+- ナイトリービルドへの対応
+- プロデルのバージョンを `2.0.1271` へ更新 (一部のパフォーマンスが向上しました)
+
+### 🔧 修正
+- [アプリ設定パネル] ウィンドウサイズに応じて各項目のレイアウト調整が正常に行われるように修正
+- [プロファイル編集パネル] 起動引数の項目をウィンドウサイズに応じて正常にレイアウト調整がされるように修正
+- [プロファイル編集パネル] 起動引数解析時に「全般」タブに戻される
+- [プロセス監視] 解像度変更が有効の時のビデオコンフィグ編集に失敗した際の例外処理を改善
+- EA app (EABackgroundService) の再起動を行う機能が正常に機能しない (#65)
+- 初回起動時のメッセージが言語データの読み込み前に表示されてしまい、正常に表示されない
+- ウィンドウを最小化した状態でアプリケーションを終了すると、ウィンドウの位置が画面外に移動してしまう
+
+
## 🚀 Version 0.3.0-beta
### ⚡ このバージョンの主な変更点
@@ -13,7 +60,7 @@
### 🟢 追加
- UIの表示言語に英語と韓国語を追加
-- マップローテーションにマップの残り時間表記を追加
+- マップローテーションにマップの残り時間表記を追加 (試験的機能)
- ゲームの起動処理中またはプレイ中にウィンドウを閉じようとした時に警告ダイアログを表示する機能を実装
- プロファイルごとの最終プレイ日時と総プレイ時間を記録する機能を実装
- プロファイルコンフィグ (`profile.cfg`) の切り替えに対応
@@ -21,7 +68,6 @@
### 🔁 変更
- スプラッシュ画面のデザインを変更 (Image by [**Rel1c**](https://twitter.com/Apex_tyaneko))
-- プロデルのバージョンを `2.0.1262` へ更新 (一部のパフォーマンスが向上しました)
- インストーラーを 64-bit へ変更
- ウィンドウのタイトルバーの色を設定されたテーマに合わせて変更するよう改良
- ゲーム終了時に発生したエラーの内容をより詳細に表示するように改良
@@ -33,6 +79,9 @@
- その他細かい調整/内部処理の改良
### 🔧 修正
+- [メインメニュー] ニュースのサムネイル画像が切り替わるたびにメモリーの使用量が増加し続ける問題を修正
+- [プロファイル編集パネル] 画像処理の追加ファイル存在確認が正常に行われず、毎回ダウンロード確認ダイアログが表示される問題を修正
+- タブ切り替え時の読み込み中表示がすぐに消えてしまう問題を修正
- ゲーム起動時の各コンフィグファイル切り替え処理が正常に行われず、コンフィグの変更内容が保存されないことがある問題を修正
- ゲーム終了時にエラーが発生すると、メインメニューに戻らず操作を受け付けなくなる問題を修正
diff --git a/LegendUtil.rdrproj b/LegendUtil.rdrproj
index 4048f387..2784b361 100644
--- a/LegendUtil.rdrproj
+++ b/LegendUtil.rdrproj
@@ -1,16 +1,17 @@
<プロジェクト 名前="LegendUtil" ビット32="×" 管理者実行="×" ライブラリ同梱="○">
<一覧>
+ <項目 位置="Resources\Dll\_Dll.rdr" />
<項目 位置="Resources\Languages\言語ファイル.rdr" />
<項目 位置="Source\Icon.rdr" />
+ <項目 位置="Source\メイン.rdr" 開始="○" 開く="○" />
<項目 位置="Source\CFG形式.rdr" />
<項目 位置="Source\アップデーター.rdr" />
<項目 位置="Source\アプリ.rdr" />
- <項目 位置="Source\ウィンドウ管理器.rdr" 開く="○" />
- <項目 位置="Source\コンフィグ管理器.rdr" 開く="○" />
+ <項目 位置="Source\ウィンドウ管理器.rdr" />
+ <項目 位置="Source\コンフィグ管理器.rdr" />
<項目 位置="Source\デバッグログ.rdr" />
- <項目 位置="Source\プロセス監視.rdr" 開く="○" />
+ <項目 位置="Source\プロセス監視.rdr" />
<項目 位置="Source\プロファイル管理器.rdr" />
- <項目 位置="Source\メイン.rdr" 開始="○" 開く="○" />
<項目 位置="Source\モザンビークAPI.rdr" />
<項目 位置="Source\ライセンス.rdr" />
<項目 位置="Source\言語管理器.rdr" />
@@ -33,11 +34,11 @@
<項目 位置="Source\ウィンドウ\メイン画面\プロファイル編集パネル\プロファイル編集_パネル部品.rdr" />
<項目 位置="Source\ウィンドウ\メイン画面\プロファイル編集パネル\プロファイル編集_引数項目部品.rdr" />
<項目 位置="Source\ウィンドウ\メイン画面\メインメニュー_アカウント管理パネル部品.rdr" />
- <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_サーバーステータス部品.rdr" 開く="○" />
- <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_パネル部品.rdr" 開く="○" />
+ <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_サーバーステータス部品.rdr" />
+ <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_パネル部品.rdr" />
<項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_プロファイル選択リスト部品.rdr" />
- <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_マップローテーション部品.rdr" 開く="○" />
- <項目 位置="Source\ウィンドウ\メイン画面\メイン画面.rdr" 開く="○" />
+ <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_マップローテーション部品.rdr" />
+ <項目 位置="Source\ウィンドウ\メイン画面\メイン画面.rdr" />
<項目 位置="Source\ウィンドウ\ライセンス画面.rdr" />
<項目 位置="Source\ウィンドウ\起動中画面.rdr" />
<項目 位置="Source\ウィンドウ\処理画面.rdr" />
@@ -53,13 +54,15 @@
<項目 位置="Source\ユーティリティ\日時期間整形.rdr" />
<項目 位置="Source\ユーティリティ\アスペクト比計算.rdr" />
<項目 位置="Source\ユーティリティ\サムネイル化.rdr" />
+ <項目 位置="Source\ウィンドウ\メイン画面\メインメニューパネル\メインメニュー_プロファイル一覧部品.rdr" />
+ <項目 位置="Source\ユーティリティ\ディスプレイ.rdr" />
一覧>
- <バージョン 値="0.3.0.0">
+ <バージョン 値="0.4.0.0">
<項目 名前="Comments" 値="LegendUtil - Development by femto Community Software Team" />
<項目 名前="FileDescription" 値="LegendUtil" />
<項目 名前="CompanyName" 値="femto Community Software Team" />
<項目 名前="ProductName" 値="LegendUtil" />
- <項目 名前="LegalCopyright" 値="Copyright (C) 2024 Milkeyyy" />
+ <項目 名前="LegalCopyright" 値="Copyright (C) 2025 Milkeyyy" />
バージョン>
<リソース>
<項目 名前="アイコン" 値="Resources\Logo\LegendUtil_Icon.ico" />
diff --git a/README.md b/README.md
index 380624f7..daf508e5 100644
--- a/README.md
+++ b/README.md
@@ -9,27 +9,29 @@
[](#-ライセンス)
[](https://github.com/femtoCommunity/LegendUtil/releases)
+[](https://github.com/femtoCommunity/LegendUtil/actions/workflows/nightly_rdr.yml)
-[](https://discord.gg/Y5FrzPft3M)
[](https://twitter.com/Milkeyyy_53)
+[](https://discord.gg/Y5FrzPft3M)
+[](https://github.com/sponsors/Milkeyyy)
[](https://ko-fi.com/milkeyyy)
## 📃 概要
Apex Legends のプレイをより快適にするランチャーアプリケーションです。
-引き伸ばしを行うための解像度の変更や、軽量化のための起動オプションの変更などを、GUIで視覚的に行うことができます。
+引き伸ばしを行うため設定や、軽量化のための起動オプションの変更などを、GUIで視覚的に行うことができます。
### 🖥️ 対応環境
- **Windows 11**
- **Windows 10 (64-bit)**
### 🎮 対応プラットフォーム
-- [**EA app**](https://www.ea.com/ja-jp/ea-app)
-- [**Steam**](https://store.steampowered.com)
+> [](https://www.ea.com/ja-jp/ea-app)
+> [](https://store.steampowered.com/about/)
### 📝 プログラミング言語
-- [**プロデル**](https://produ.irelang.jp/) - `2.0.1262`
-- **C#** - `.NET Framework 4.8`
-- **Python**
+- [**プロデル**](https://produ.irelang.jp/) - `2.0.1271`
+- [**C#**](https://learn.microsoft.com/ja-jp/dotnet/csharp/) - `.NET Framework 4.8`
+- [**Python**](https://www.python.org) + [**FastAPI**](https://fastapi.tiangolo.com/) (バックエンドAPI)
---
@@ -42,7 +44,7 @@ Apex Legends のプレイをより快適にするランチャーアプリケー
### 📁 インストーラーを使用してインストールする
- [**こちら**](https://github.com/femtoCommunity/LegendUtil/releases)からインストーラーをダウンロードしてインストールできます。
- - **Assets** から `LegendUtil_Setup.exe` をダウンロードして、実行してください。
+ - **Assets** から `LegendUtil_Setup.exe` をダウンロードして実行してください。
### 📦 WinGet を使用してインストールする
- [**WinGet**](https://learn.microsoft.com/ja-jp/windows/package-manager/winget/) ([Microsoft Store](https://www.microsoft.com/p/app-installer/9nblggh4nns1#activetab=pivot:overviewtab)) が利用できる環境の場合は、コマンドプロンプトやPowerShellで次のコマンドを実行することでインストールできます。
@@ -51,7 +53,7 @@ winget install --id femtoCommunity.LegendUtil
```
### 💊 開発ビルドをインストールする
-- [**インストーラーをダウンロード**](https://releases.api.legendutil.milkeyyy.com/latest/download?release_channel=dev)
+- [**インストーラーをダウンロード**](https://api-legendutil.ezolys.com/releases/latest/download?release_channel=dev)
- **開発ビルドには、実装途中の機能や不安定な機能が含まれており、予期せぬ不具合、クラッシュが発生する可能性があります。**
- 開発ビルドは、通常(Beta/Release)ビルドとは別のアプリケーションとしてインストールされます。**ただし、コンフィグやプロファイルなどは共通です。**
@@ -60,58 +62,64 @@ winget install --id femtoCommunity.LegendUtil
## 🔧 機能
- **EA app と Steam 両方のプラットフォームに対応**
-- **プロファイル機能**
+ EA app / Steam のどちらで Apex Legends をインストールしていても LegendUtil を使うことができます。
+
+ 
+ 
+
+
- 解像度や起動引数などの設定を複数保存でき、ランチャー形式でプロファイルを選んで Apex Legends を起動できます。
+- **サーバーステータス / マップローテーション / ニュースの表示**
-- **サーバーステータス/マップローテーション/ニュースの表示**
- - サーバーステータスとマップローテーションはゲームのプレイ中も常に表示できます。
+ サーバーステータスとマップローテーションはゲームのプレイ中も常に表示できます。

- 
----
+- **プロファイル機能**
-- **ゲームの起動前に設定を自動変更**
- - **ゲーム & ディスプレイ解像度の変更 (引き伸ばし)**
- - ゲーム起動後の `Alt` + `Enter` の自動押下 (「黒帯」の削除)
+ 解像度や起動引数などの設定をプロファイルとして複数保存して、ランチャー形式でプロファイルを選んで Apex Legends を起動できます。
+ 
+ 

---
- **起動引数(起動オプション)の設定**
+
+ 複雑な文字列を入力することなく、GUIで視覚的に起動引数を設定できます。
+
- 一覧にない起動引数も手動で指定することができます。
- - 今まで使用していた起動引数を「追加引数」へ入力すると LegendUtil が自動的に解析して読み込むため、そのまま引き継ぐ事ができます。
+ - 今まで EA app や Steam で設定していた起動引数を「追加引数」へ入力すると、LegendUtil が自動的に解析するため、そのまま引き継ぐ事ができます。


---
-- **Autoexec の編集**
-
- 
-
----
-
- **コンフィグの自動切り替え**
- Apex Legends の各コンフィグファイルをプロファイルごとに自動で切り替えます。
+ Apex Legends の起動時に各コンフィグファイルを自動的に入れ替えます。
プロファイルごとに別々の設定(グラフィック設定やキー設定など)を使用してプレイすることが可能です。
- - プロファイルの設定から「プロファイル固有の設定」か「共通の設定」のどちらを使用するかを切り替えられます。
+ - プロファイルの設定から「プロファイル固有の設定」か「共通の設定 (全プロファイルで共通)」のどちらを使用するかを切り替えられます。

---
+- **Autoexec の編集**
+
+ 
+
+---
+
## 📒 ライセンス
LegendUtil は [GNU General Public License 3.0](https://www.gnu.org/licenses/gpl-3.0.ja.html) のもとでライセンスされています。
-Copyright (C) 2024 Milkeyyy
+Copyright (C) 2025 Milkeyyy
---
@@ -120,17 +128,15 @@ Copyright (C) 2024 Milkeyyy
- [`Rel1cStyle_Logo_TypographyDeth_1.png`](./Resources/Logo/Rel1cStyle_Logo_TypographyDeth_1.png)
- [`Rel1cStyle_Logo_TypographyDeth_1_White.png`](./Resources/Logo/Rel1cStyle_Logo_TypographyDeth_1_White.png)
-Copyright (C) 2024 Rel1cStyle
+Copyright (C) 2025 Rel1cStyle
---
## 開発者
- **ソフトウェア**
- - **Milkeyyy** - [@Ezolys](https://github.com/Ezolys) / [@femto Community](https://github.com/femtoCommunity)
- - [GitHub](https://github.com/Milkeyyy)
+ - [**Milkeyyy**](https://github.com/Milkeyyy) - [@Ezolys](https://github.com/Ezolys) / [@femto Community](https://github.com/femtoCommunity)
- [Twitter](https://twitter.com/Milkeyyy_53)
- [Ko-fiで開発をサポートする](https://ko-fi.com/milkeyyy)
- **ロゴデザイン**
- - **Rel1c** (Rel1cStyle) - [@Ezolys](https://github.com/Ezolys) / [@femto Community](https://github.com/femtoCommunity)
- - [GitHub](https://github.com/Rel1c393)
+ - [**Rel1c**](https://github.com/Rel1c393) (Rel1cStyle) - [@Ezolys](https://github.com/Ezolys) / [@femto Community](https://github.com/femtoCommunity)
- [Twitter](https://twitter.com/Apex_tyaneko)
diff --git a/Source/DiscordRPC.dll b/Resources/Dll/DiscordRPC.dll
similarity index 100%
rename from Source/DiscordRPC.dll
rename to Resources/Dll/DiscordRPC.dll
diff --git a/Source/FuwaFuwaPresence.dll b/Resources/Dll/FuwaFuwaPresence.dll
similarity index 100%
rename from Source/FuwaFuwaPresence.dll
rename to Resources/Dll/FuwaFuwaPresence.dll
diff --git a/Source/Gameloop.Vdf.JsonConverter.dll b/Resources/Dll/Gameloop.Vdf.JsonConverter.dll
similarity index 100%
rename from Source/Gameloop.Vdf.JsonConverter.dll
rename to Resources/Dll/Gameloop.Vdf.JsonConverter.dll
diff --git a/Source/Gameloop.Vdf.dll b/Resources/Dll/Gameloop.Vdf.dll
similarity index 100%
rename from Source/Gameloop.Vdf.dll
rename to Resources/Dll/Gameloop.Vdf.dll
diff --git a/Source/LegendUtil.SharpLibrary.dll b/Resources/Dll/LegendUtil.SharpLibrary.dll
similarity index 100%
rename from Source/LegendUtil.SharpLibrary.dll
rename to Resources/Dll/LegendUtil.SharpLibrary.dll
diff --git a/Source/Microsoft.Web.WebView2.Core.dll b/Resources/Dll/Microsoft.Web.WebView2.Core.dll
similarity index 100%
rename from Source/Microsoft.Web.WebView2.Core.dll
rename to Resources/Dll/Microsoft.Web.WebView2.Core.dll
diff --git a/Source/Microsoft.Web.WebView2.WinForms.dll b/Resources/Dll/Microsoft.Web.WebView2.WinForms.dll
similarity index 100%
rename from Source/Microsoft.Web.WebView2.WinForms.dll
rename to Resources/Dll/Microsoft.Web.WebView2.WinForms.dll
diff --git a/Source/Microsoft.WindowsAPICodePack.Shell.dll b/Resources/Dll/Microsoft.WindowsAPICodePack.Shell.dll
similarity index 100%
rename from Source/Microsoft.WindowsAPICodePack.Shell.dll
rename to Resources/Dll/Microsoft.WindowsAPICodePack.Shell.dll
diff --git a/Source/Microsoft.WindowsAPICodePack.ShellExtensions.dll b/Resources/Dll/Microsoft.WindowsAPICodePack.ShellExtensions.dll
similarity index 100%
rename from Source/Microsoft.WindowsAPICodePack.ShellExtensions.dll
rename to Resources/Dll/Microsoft.WindowsAPICodePack.ShellExtensions.dll
diff --git a/Source/Microsoft.WindowsAPICodePack.dll b/Resources/Dll/Microsoft.WindowsAPICodePack.dll
similarity index 100%
rename from Source/Microsoft.WindowsAPICodePack.dll
rename to Resources/Dll/Microsoft.WindowsAPICodePack.dll
diff --git a/Source/Milkeyyy.ControlSR.dll b/Resources/Dll/Milkeyyy.ControlSR.dll
similarity index 100%
rename from Source/Milkeyyy.ControlSR.dll
rename to Resources/Dll/Milkeyyy.ControlSR.dll
diff --git a/Source/Newtonsoft.Json.dll b/Resources/Dll/Newtonsoft.Json.dll
similarity index 100%
rename from Source/Newtonsoft.Json.dll
rename to Resources/Dll/Newtonsoft.Json.dll
diff --git a/Source/OpenCvSharp.Extensions.dll b/Resources/Dll/OpenCvSharp.Extensions.dll
similarity index 100%
rename from Source/OpenCvSharp.Extensions.dll
rename to Resources/Dll/OpenCvSharp.Extensions.dll
diff --git a/Source/OpenCvSharp.dll b/Resources/Dll/OpenCvSharp.dll
similarity index 100%
rename from Source/OpenCvSharp.dll
rename to Resources/Dll/OpenCvSharp.dll
diff --git a/Source/Produire.WebView2.dll b/Resources/Dll/Produire.WebView2.dll
similarity index 100%
rename from Source/Produire.WebView2.dll
rename to Resources/Dll/Produire.WebView2.dll
diff --git a/Source/RdrWindows7API.dll b/Resources/Dll/RdrWindows7API.dll
similarity index 100%
rename from Source/RdrWindows7API.dll
rename to Resources/Dll/RdrWindows7API.dll
diff --git a/Source/Transitions.dll b/Resources/Dll/Transitions.dll
similarity index 100%
rename from Source/Transitions.dll
rename to Resources/Dll/Transitions.dll
diff --git a/Source/Transitions.rdr.dll b/Resources/Dll/Transitions.rdr.dll
similarity index 100%
rename from Source/Transitions.rdr.dll
rename to Resources/Dll/Transitions.rdr.dll
diff --git a/Source/Wind.rdr.dll b/Resources/Dll/Wind.rdr.dll
similarity index 100%
rename from Source/Wind.rdr.dll
rename to Resources/Dll/Wind.rdr.dll
diff --git a/Resources/Dll/_Dll.rdr b/Resources/Dll/_Dll.rdr
new file mode 100644
index 00000000..9d32e242
--- /dev/null
+++ b/Resources/Dll/_Dll.rdr
@@ -0,0 +1,13 @@
+「rdrFirstChanceException.dll」を利用する
+
+// C# ライブラリー
+「LegendUtil.SharpLibrary.dll」を利用する
+
+// DiscordRPC ライブラリー
+「FuwaFuwaPresence.dll」を利用する
+
+「Wind.rdr.dll」を利用する
+「Milkeyyy.ControlSR.dll」を利用する
+「Produire.WebView2.dll」を利用する
+「rdrReadWriteTextReader.dll」を利用する
+「RdrWindows7API.dll」を利用する
diff --git a/Source/rdrFirstChanceException.dll b/Resources/Dll/rdrFirstChanceException.dll
similarity index 100%
rename from Source/rdrFirstChanceException.dll
rename to Resources/Dll/rdrFirstChanceException.dll
diff --git a/Source/rdrReadWriteTextReader.dll b/Resources/Dll/rdrReadWriteTextReader.dll
similarity index 100%
rename from Source/rdrReadWriteTextReader.dll
rename to Resources/Dll/rdrReadWriteTextReader.dll
diff --git a/Resources/Languages/en-gemini.json b/Resources/Languages/en-gemini.json
new file mode 100644
index 00000000..b6a586f8
--- /dev/null
+++ b/Resources/Languages/en-gemini.json
@@ -0,0 +1,834 @@
+{
+ "__Info": {
+ "Name": "English (Translated by Gemini)"
+ },
+ "General": {
+ "General": {
+ "1": "Internal Error",
+ "2": "Native",
+ "3": "Resolution",
+ "4": "Enable",
+ "5": "Enabled",
+ "6": "Disable",
+ "7": "Disabled",
+ "8": "Account",
+ "Platform": "Platform",
+ "Play": "Play",
+ "Loading": "Loading",
+ "RemainingTime_Format_Hour": "{0} hour(s) remaining",
+ "RemainingTime_Format_Minute": "{0} minute(s) remaining"
+ },
+ "Dialog": {
+ "Welcome": "Thank you for installing {0}!\n\nThis app is in beta and may contain unexpected bugs.\nIf you find any bugs or have any suggestions, please report them\nin the support Discord server's forum or GitHub Issues.",
+ "LauncherNotInstalled": "Could not confirm that either Steam or EA app is installed.\nIf you have either Steam or EA app installed and you still see this warning, please report it to the developer."
+ },
+ "Error": {
+ "ErrorOccurredApplicationTermination": "An error occurred while terminating the application.\nConfiguration and profile changes may not have been saved.\n\n{0}"
+ }
+ },
+ "ErrorMessage": {
+ "1": {
+ "1": "Failed to retrieve server status.\r\n\r\n{0}",
+ "2": "Failed to update news."
+ },
+ "2": {
+ "1": "Failed to load profile.\r\n\r\n\r\n・{0}",
+ "2": "Failed to load profile.\r\n\r\n{0}",
+ "3": "Failed to create profile.\r\n\r\n{0}",
+ "4": "Failed to rename profile.\r\n\r\n{0}",
+ "5": "The specified profile ID {0} does not exist."
+ },
+ "3": {
+ "1": "Failed to download file.\r\n\r\n{0}"
+ },
+ "4": {
+ "1": "Failed to check for updates.\n\nCould not get a valid response from the API.\nStatus code: {0}",
+ "2": "Failed to check for updates.\r\nThe number of arrays is 0.",
+ "3": "Status Code: {0}",
+ "4": "Failed to execute update.\n\n{0}"
+ }
+ },
+ "SplashWindow": {
+ "Status": {
+ "Loading": "Loading...",
+ "LoadingWindow": "Loading Window",
+ "LoadingWindow_MainWindow": "Loading Main Window",
+ "GeneratingControl": "Generating Controls",
+ "GeneratingControl_MainMenuPanel": "Generating Controls: Main Menu",
+ "GeneratingControl_AppSettingsPanel": "Generating Controls: Application Settings Panel",
+ "GeneratingControl_AccountManagePanel": "Generating Controls: Account Management Panel",
+ "GeneratingControl_ProfileManagePanel": "Generating Controls: Profile Management Panel",
+ "GeneratingControl_ProfileCreateWizardPanel": "Generating Controls: Profile Creation Wizard Panel",
+ "GeneratingControl_ProfileEditPanel": "Generating Controls: Profile Edit Panel"
+ }
+ },
+ "PanelTitle": {
+ "MainWindow": {
+ "ProfileManage": "Profile Management",
+ "ProfileEdit": "Profile Edit",
+ "AccountManage": "Account Management",
+ "AppSettings": "Application Settings",
+ "OpenSourceLicenses": "Open Source Licenses",
+ "Update": "Update"
+ }
+ },
+ "Tooltip": {
+ "プロファイル編集パネル部品": {
+ "AltEnter自動押下チェックボックス": "Sets whether to automatically press Alt+Enter after launching Apex Legends.\nEnabling this setting can eliminate the \"black bars\" that appear when \"stretching the resolution\".",
+ "AltEnter自動押下待機時間ダイヤル": "Sets the waiting time (seconds) before automatically pressing Alt+Enter after Apex Legends launches.\r\nThe time it takes for the title screen to appear varies depending on the environment, so please adjust this setting to suit your environment.",
+ "AltEnter自動押下方法選択リスト": "Sets how to automatically press Alt+Enter.\n\n \n Automatically recognizes the title screen and presses Alt+Enter.\n If you use this setting, you need to download additional files. (They will be downloaded automatically.)\n\n