guide:febuildergba:作品支援

作品支援

作品支援では、ROMNAME.supportinfo.txt を利用して、作品パッチの自動アップデートを実現します。
または、セーブデータをワンクリックでアーカイブにまとめることができます。
i.imgur.com_fk0njli.jpg

Example:supportinfo.txt FE4アップローダ

//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//

NAME=怪盗パッチ
AUTHOR=7743
LOGO_FILENAME=fe8kaitou.png
COMMUNITY_URL=https://discordapp.com/channels/145137778710151168/145137778710151168

CHECK_URL=https://ux.getuploader.com/FE4/
CHECK_REGEX=fe8_kaitou.*?MB</td><td>(.+?)</td><td>

UPDATE_URL=https://ux.getuploader.com/FE4/
UPDATE_REGEX=<td><a href="([^"]+)" title="fe8_kaitou.+?">

Example:supportinfo.txt part2 FE Central

//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//

NAME=BSFE
AUTHOR=Sme
LOGO_FILENAME=bsfe.png
COMMUNITY_URL=https://fecentral.org/?page=hackinfo&hackid=34

CHECK_URL=https://fecentral.org/?page=hackinfo&hackid=34
CHECK_REGEX=<a onclick="incDL.+?" href="(.+?)">

UPDATE_URL=https://fecentral.org/?page=hackinfo&hackid=34
UPDATE_REGEX=<a onclick="incDL.+?" href="(.+?)">

Example:supportinfo.txt part3 FEUniverse

//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//
//Document: https://dw.ngmansion.xyz/doku.php?id=en:guid:febuildergba:work_support
//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//仕様書: https://dw.ngmansion.xyz/doku.php?id=guide:febuildergba:%E4%BD%9C%E5%93%81%E6%94%AF%E6%8F%B4
//

NAME=怪盗パッチ
AUTHOR=7743
LOGO_FILENAME=fe8kaitou.png
COMMUNITY_URL=https://feuniverse.us/t/fe8-kaitou-patch/2984

CHECK_URL=https://feuniverse.us/t/fe8-kaitou-patch/2984
CHECK_REGEX=datetime='(.+?)' class='post-time'>

UPDATE_URL=https://feuniverse.us/t/fe8-kaitou-patch/2984
UPDATE_REGEX=<a href="(.+?)" rel="nofollow noopener">

Example:supportinfo.txt part4 mediafire

//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//
//Document: https://dw.ngmansion.xyz/doku.php?id=en:guid:febuildergba:work_support
//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//仕様書: https://dw.ngmansion.xyz/doku.php?id=guide:febuildergba:%E4%BD%9C%E5%93%81%E6%94%AF%E6%8F%B4
//

NAME=Fire Emblem Hiraeth: Legacies
AUTHOR=Zoisite
LOGO_FILENAME=logo.png
COMMUNITY_URL=https://discord.gg/yXU9uRj

CHECK_URL=https://www.mediafire.com/file/guyqyodzpdmiv8s/Fire_Emblem_Hiraeth_-_Legacies.zip/file
CHECK_REGEX=Uploaded: <span>(.+?)</span>

UPDATE_URL=https://www.mediafire.com/file/guyqyodzpdmiv8s/Fire_Emblem_Hiraeth_-_Legacies.zip/file
UPDATE_REGEX=<textarea id="copy".+?>(.+?)</textarea>

Example:supportinfo.txt part5 dropbox

//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//
//Document: https://dw.ngmansion.xyz/doku.php?id=en:guid:febuildergba:work_support
//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//仕様書: https://dw.ngmansion.xyz/doku.php?id=guide:febuildergba:%E4%BD%9C%E5%93%81%E6%94%AF%E6%8F%B4
//

NAME=Dragon Herald
AUTHOR=BigMood
LOGO_FILENAME=logo.png
COMMUNITY_URL=https://feuniverse.us/t/fire-emblem-the-dragon-herald-100-02-complete-fe8-hack/7075

CHECK_URL=https://www.dropbox.com/sh/vyi41qmnbl2lr6g/AAAmxs2sXQegdGmwsErEldtWa
CHECK_REGEX=\.ups\\", \\"sjid\\": ([0-9]+),

UPDATE_URL=https://www.dropbox.com/sh/vyi41qmnbl2lr6g/AAAmxs2sXQegdGmwsErEldtWa
UPDATE_REGEX=@DIRECT_URL

Example:supportinfo.txt part6 google drive folder

//
//This file is an automatic update file used to support FEBuilderGBA works.
//It is used to automatically update to the latest version from the following menu.
//MENU->Run->Work support
//
//Document: https://dw.ngmansion.xyz/doku.php?id=en:guid:febuildergba:work_support
//
//このファイルはFEBuilderGBAの作品支援で利用する自動アップデートファイルです。
//以下のメニューから自動で最新版に更新するために利用されます。
//MENU->実行->作品支援
//
//仕様書: https://dw.ngmansion.xyz/doku.php?id=guide:febuildergba:%E4%BD%9C%E5%93%81%E6%94%AF%E6%8F%B4
//

NAME=FEbattle simulator
AUTHOR=Magix
LOGO_FILENAME=logo.png
COMMUNITY_URL=https://feuniverse.us/t/fire-emblem-battle-simulator-auto-battler/7031

CHECK_URL=https://drive.google.com/drive/folders/1xKiLtblha0MdSv_ZuTRJMjeKXSWJm6X8
CHECK_REGEX=FEbattle_simulator_full_control.ups\\x22,\\x22.+?\\x22,0,null,0,0,0,([0-9]+),

UPDATE_URL=https://drive.google.com/drive/folders/1xKiLtblha0MdSv_ZuTRJMjeKXSWJm6X8
UPDATE_REGEX=@DIRECT_URL

CHECK_URL

最新版の日付を取得するURLを書いてください。

CHECK_REGEX

CHECK_URLで取得したHTMLをパースして日付を抽出する正規表現を書いてください。
最初のキャプチャ内の文字列を日付として解釈します。
日付が掲載されていないウェブサイトの場合は、URLを抽出してください。
URLへHTTP HEADリクエストを送り、Last-Modifiedを取得します。

UPDATE_URL

更新するためのURLを書いてください。

UPDATE_REGEX

UPDATE_URLで取得したHTMLをパースして、ダウンロード先を抽出する正規表現を書いてください。
ダウンロードは、ups,7z,rar,zip に対応しています。
また、直リンの他にもいくつかのWebサイトに対応しています。
getuploader, dropbox ,google drive

自動フィードバック

プレイヤーのゲームの進行状況を作者に自動でフィードバックする機能です。
これまでは、ゲームのプレイ動画や、プレイレポートでしか自分のゲームがどのように遊ばれているのかわかりませんでした。
この機能を利用すれば、プレイヤーがFEBuilderGBA経由でゲームを実行した場合のみですが、ゲームの進行状況を知ることができます。
章をクリアする(フラグ0x03が有効になる)か、ユニットロスト(プレイヤーユニットの死亡)が発生するたびに、そのプレイデータを作者に自動でフィードバックします。
以下のようなデータを得ることができます。
i.imgur.com_9ioce2a.jpg

UserHashは、ユーザ名のsumです。ようするにハッシュです。
個人を特定することはできませんが、同一の人らしい人から送られたデータであることを示唆できます。

Versionは、ゲームのバージョンです。
ゲームのファイル名、ファイルの日付、容量kbのデータになります。

Chapterは、そのイベントが発生した章のデータです。
章のタイトルの他に、ターン数や難易度、ユニットリストの上位10個が書き込まれます。

DeadUnitは、ユニットが死亡した場合に送られるデータです。
章のクリアの場合は、この欄は空白になります。
誰がどの敵にどこで殺されたかを知ることができます。

村が盗賊に破壊された場合は、“VillageDestory:村の座標”となり、
壊された村の座標と、村を破壊した盗賊の情報が追加で書き込まれます。

sav.7z.base64は、セーブデータを7z圧縮しbase64化しテキスト化したデータです。
これを「FEBuilderGBA→ツール→LZ77ツール Base64タブ」で復号化することができます。
それをエミュレータでロードすれば、そのゲームを再現することができます。

どのようにゲームが進められているか知ることで、ゲームを改善するヒントにできます。

自動フィードバックの設定方法

1.
google formを使うために、googleアカウントを取得してください。
適当なメールアドレスが必要ですが、無料のメールアドレス取得サービスはたくさんあるので、いい感じにしてください。

2.
https://docs.google.com/forms/create

google formで、アンケートを作ってください。
内容は、テキストを自由に書ける「記述式」の項目が必要です。
選択肢のディフォルトは「ラジオボタン」になっているので、自由にテキストがかける「記述式」に変更してください。

その記述式の欄を「5つ」作ってください。
項目名はなんでもいいです。
わかりやすくするために、数字やアルファベットでも振っておくとよいでしょう。

i.imgur.com_kzrkqcl.jpg

記述式の選択子を5つ作った例
i.imgur.com_bmm9w5d.jpg

3.
右上にあるプレビューボタンを押して、フォームのテストをしてください。

i.imgur.com_a0uc3zt.jpg

この時に、chromeでF12キー押して、debuggerを起動してください。
フォームに解答した時に送られるデータを見てください。
これがとても重要です。

i.imgur.com_7baoivh.jpg

4.
フォームに解答した時に最初に送られるデータを見てください。
そのデータのformResponseのPayloadを見れば、解答時にどういうデータが送られているのかがわかります。
あとはこの項目とこのURLを “.updateinfo.txt”に書き込むだけです。

i.imgur.com_claof2n.jpg

5.
設定例

AUTOFEEDBACK_URL=https://docs.google.com/forms/d/e/1FAIpQLSe5vn-ZxMZWrKASSctr09LfJPXJjfHi2PpYqZOk3yVT07hyZQ/formResponse
AUTOFEEDBACK_POST_USERHASH=entry.1603795113
AUTOFEEDBACK_POST_VERSION=entry.1599223667
AUTOFEEDBACK_POST_CHAPTER=entry.1016351841
AUTOFEEDBACK_POST_DEADUNIT=entry.1957504988
AUTOFEEDBACK_POST_BASE64=entry.816508310

AUTOFEEDBACK_ENABLE_FLAG=0x25
AUTOFEEDBACK_ENABLE_FLAG_MAPID=0x0

6.
設定がかけたら、FEBuilderGBA上でF5キーでゲームを起動して動作テストをしてください。
とりあえず、Ctrl + U で章を終わらせるか、プレイヤーユニットをHP1にして敵に特攻させて殺してみてください。
アンケートの回答が自動で投稿されていたら成功です。
されていなければ失敗です。どこか間違えています。

送信したデータはログに書いてあるので、そちらでも確認できます。

自動フィードバック readme

自動フィードバックを組み込む時は、readmeに以下の文章を追加するとよいでしょう。

◆FEBuillderGBA WorkSupport
この作品はFEBuilderGBAの作品支援機能に対応しており、FEBuilderGBAを利用して遊ぶことで自動更新が可能です。
また、自動フィードバック機能にも対応しています。
フィードバックの内容は、ゲーム内の情報だけで、完全に匿名で行えます。
あなたのフィードバックは、ゲームの改善につながるので、ぜひご協力ください。
この設定は、「FEBuilderGBA Menu->実行->作品支援」からいつでも変更できます。

AUTOFEEDBACK_DEFAULT_SETTING

この追加オプションには、次の3つの状態があります。

AUTOFEEDBACK_DEFAULT_SETTING=1
自動フィードバックをディフォルトで有効にします。

AUTOFEEDBACK_DEFAULT_SETTING=0
自動フィードバックをディフォルトで無効にします。

AUTOFEEDBACK_DEFAULT_SETTING=2
自動フィードバックするかどうかを初回起動時に表示されるダイアログで決定します。

AUTOFEEDBACK_DEFAULT_SETTINGが設定されていない場合は、ディフォルトは1が設定されていることになります。

AUTOFEEDBACK_ENABLE_FLAG=0x25
有効にするフラグを指定する。
ローカルとグローバルフラグどちらでもよい。
ディフォルトは0で、どのフラグも有効にしない。

AUTOFEEDBACK_ENABLE_FLAG_MAPID=0x0
フラグを有効にする処理を行う章IDを指定する。
ディフォルトは序章。
すべての章でやってしまうと、思わぬ副作用があると怖いので、序章でのみ行うことを推奨します。

送信されるバージョン情報

VERSIONの項目にエミュレータ名を追加します。
mGBAのみバージョン番号が正しく取れる表示します。
他は、エミュレータexeの日付をyyyyMMDDとして表示します

fe8kaitou  //ROM名
20230611   //ROMファイルの時刻 yyyyMMDD
32750      //ROMの容量kb       32750kb(32MB)
VisualBoyAdvance-M //利用エミュレータ名
20150526   //エミュレータのバージョンまたは時刻 yyyyMMDD
fe8kaitou  //ROM名
20230611   //ROMファイルの時刻 yyyyMMDD
32750      //ROMの容量kb       32750kb(32MB)
mGBA       //利用エミュレータ名
0.10.1.0   //エミュレータのバージョンまたは時刻 ver 0.10.1.0
送信されるイベント

DeadUnit
プレイヤーユニットが死亡した時に通知されます。
死亡したプレイヤーユニットと、プレイヤーを死亡させた敵ユニットの情報が記載されます。

VillageDestory
盗賊が村を破壊した時に通知されます。
破壊された村の座標と、破壊した敵ユニットの情報が記載されます。

EndEvent
章をクリアした時に送信されます。
章をクリアとは、Flag0x03が有効になった時を指します。

ReloadGame
リセットして、章を再開したり再スタートした時に送信されます。

Hang-up detection
ゲームがハングアップした時に通知されます。
この場合のハングアップとは、GBAが奇妙な叫び声をあげてクラッシュする現象を指します。
強制リセットや無限ループではありません。
たいていの場合、スタックが壊れたときに発生します。
エミュレータとの接続が突然切れて、3秒間それが持続した時に送信されます。

チート無効

DISABLE_CHEAT=1

updateinfoにこのように記載すると、FEBuilderGBAでのチート機能が無効になります。
ディフォルトは、DISABLE_CHEAT=0 で、チート機能が有効になります

autofeedbackなどで、FEBuilderGBA debuggerをユーザが見る機会が多くなりました。
チートボタンがあるとつい押したくなるのが人間というものです。
そのため、チート機能を無効にする機能を搭載しました。
簡単なロックなので、外そうと思えばすぐに外せますが、カジュアルユーザーに対しては十分だと思います。

パブリックオートフィードバック

オートフィードバックの設定は難しいので、とりあえず試してみたい人のために簡単な試せる仕組みがあります。

このファイルをtxtファイルとして保存してください。
https://cdn.discordapp.com/attachments/725478895226191892/1116339537937969212/YOURROMNAME.updateinfo.txt

ファイル名をROMと同じ名前にしてください。
例えば、ROMがfe8kaitou.gbaであれば、fe8kaitou.updateinfo.txtになります。

ROM: fe8kaitou.gba
TXT: fe8kaitou.updateinfo.txt

ROMと同じ場所に配置したら、ROMをFEBuilderGBAで開いて、F5キーを押してテストプレーをしてください。
ユニットが死亡するなどのイベントが起きると、以下のシートの末尾に追記されてきます。
https://docs.google.com/spreadsheets/d/1nG4OhYUs5uL3irGzxXsoroOh5JY71VmyCZI8l63HEMs/edit?usp=drive_web&ouid=104706871484152984133

後は、upsを作って、updateinfo.txtと共にzipで圧縮するなりして配布してください。
簡単ですね。

UPS: fe8kaitou.ups
TXT: fe8kaitou.updateinfo.txt

もし、共有シートではなく、独自のシートを使いたい場合は、このページに書いてあるように、独自のgoogle formを作る必要があります。

guide/febuildergba/作品支援.txt · 最終更新: 2023/06/13 23:07 by 220.100.101.53