【FRLG自動化07】色違いファイヤー厳選【ともしびやま】

こんにちは。ますたーです。

 

今回はFRLG自動化の第7弾として、準伝説ポケモン・ファイヤーの色厳選を自動化しました。
一般ポケモンの色厳選はこちら→【FRLG自動化02】野生ポケモン色違い厳選【あまいかおり】
サンダーの色厳選はこちら→【FRLG自動化04】色違いサンダー厳選【むじんはつでんしょ】
フリーザーの色厳選はこちら→【FRLG自動化06】色違いフリーザー厳選【ふたごじま】
デオキシスの色厳選はこちら→【FRLG自動化08】色違いデオキシス厳選【たんじょうのしま】

 

なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。

導入記事:【Arduino自動化01】Arduino開発環境の導入

※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。

 

概要

今回は、準伝説ポケモン・ファイヤーの色厳選を自動化しました。

1試行あたり約43.6秒で、ざっくり12時間で約1,000回(990回)、丸1日放置で1,981回の色厳選が行えます。

ともしびやまの頂上を行き来して、ファイヤーが色違いじゃなかったら逃げるを繰り返す。
「かいりき」の部分も含めて自動で操作してくれるぞ。1試行あたり約43.6秒だ。

目次です。今回の手順・内容はサンダーの色厳選や、フリーザーの色厳選とほぼ一緒なので、あっさり

※先にサンダーの色厳選をみておくことをおすすめします(見なくても理解はできます)

tangential-star.hatenablog.jp

 

0.成功報告

筆者は延べ37時間37分53秒の放置、3,107試行目で色違いのファイヤーに会えました。

筆者は無事に色違いのファイヤーと遭遇できた。
37時間37分53秒、わずか3,107試行で出会うことができた

今回の自動化は、「ゴールドスプレー」も不要ですし、1試行もおおよそ43.6秒でフリーザーと比べても短いので、割と安定します。

 

1.FRLG版(Switch版)のファイヤーはマップ切り替えで復活する

サンダーの色厳選フリーザーの色厳選でも紹介している通り、Switch版のポケモンFRLGでは、伝説・幻ポケモンの固定シンボルは「にげる」で戦闘を離脱すると、マップを切り替えることで復活するようになっています。

すなわち、A,B,X,Yの同時押しによるタイトルリセット(いわゆる固定リセット)を行うことなく色違いの厳選ができる、ということです。

今回のファイヤーの色厳選の自動化においても、この方法でやっていきます。

【ファイヤーの色厳選の手順】

  1. 「A」ボタンでファイヤーに話しかける
  2. ファイヤーの色を確認する。
  3. 色違いでなければ、「にげる」を選んで戦闘を終える
  4. 「ファイヤーは どこかへ とびさって いった!」となる
  5. ともしびやまの頂上を出て、もう一度山頂に行く
  6. 「かいりき」で岩をどかして最奥に行く
  7. ファイヤーの固定シンボルが復活している
  8. 再びファイヤーに話しかける
  9. 手順3に戻る

Switch版のFRLGでは、三鳥は逃げてもマップを切り替えれば復活する。
つまり、A,B,X,Y同時押しのタイトルリセットを行う必要は無いのだ

 

2.ファイヤーの色厳選にゴールドスプレーは不要だが、要所持

本ブログでは過去にサンダーの色厳選や、フリーザーの色厳選を紹介してきましたが、サンダー・ファイヤーはダンジョン内に生息しているため野生ポケモンとの遭遇が大きな懸念でした。そこで、「ゴールドスプレー」を使って野生ポケモンと遭遇しないようにする必要がありました。

一方で、三鳥の中でもファイヤーに限っては野生ポケモンが出現しない場所に生息しているため、ゴールドスプレーを使う必要はありません

ただし、本ブログで扱う自動化では「色違いの判定」のために戦闘中にバッグの一番上のゴールドスプレーを使います*1

バッグの一番上に置いておいてください。1個あれば十分です。

 

ファイヤーの色厳選ではサンダーフリーザーとは違い「ゴールドスプレー」は不要だ。
(ただし、自動化の際にはバッグの1番上はゴールドスプレーにしておこう

 

3.ソースコード

今回は、「ともしびやま」の山頂にいるファイヤーの色厳選を、Arduino Leonardoで自動化しました。時間効率は、約1時間で82試行(1試行あたり43.6秒)です。

3-1.自動化準備(ゲーム側の準備とソース修正)

まず、プレイヤーの位置ですが、「ともしびやま」最奥のファイヤーのすぐ下のマスに立って、主人公は上を向いている状態にします(Aを押したらそのまま戦闘に入れる状態)。

「せってい」としては、「はなしの はやさ」「せんとう アニメ」「ボタンモード」をそれぞれ「はやい」「みない」「LR」にしてください。

最後に、バッグの一番上に「戦闘中に使えないどうぐ」を並び替えて、それにカーソルを合わせた状態でメニューを閉じてください(ゴールドスプレーでOKです)。

※戦闘中に「バッグ」を開いてAを押す挙動があるため、使えるどうぐにカーソルが当たっていると色違い遭遇後に想定外の挙動を起こしてしまいます。

必ず「ボタンモード」を「LR」にして、「はなしのはやさ」を「はやい」にしておこう

「バッグ」の一番上に「戦闘中に使えないどうぐ」を準備してカーソルを合わせよう。
戦闘中に使えないどうぐなら何でもOKだ。ゴールドスプレーなどが良いだろう

ファイヤーのすぐ下の位置で上を向けば、準備完了だ。
念のため、この状態でセーブしておこう

 

3-2.ソースコード全文

ソースコードの全文です。コード冒頭の注意事項もよく読んで利用してください。

/*  FRLG 色違いファイヤー自動厳選 developed by ますたー(@tangential_star)
 *   
 *   【説明】
 *   ともしびやまの山頂にいるファイヤーに話しかけては逃げるを繰り返します。
 *   色違いのときは逃げません。
 *   「ゴールドスプレー」を使います!(ダミー判定用に!)もっていなければ、どうぐの1番上は「戦闘中に使えないアイテム(ふしぎなアメ等)」にしてください。
 *   どうぐの一番上にして、かつ、十分な量を持ってください。あと、カーソルもこれに合わせてください。
 *   
 *   【準備】
 *   ・「ともしびやま」山頂にいるファイヤーのすぐ下のマスに立ち、主人公が上に向いた状態にします(Aを押したら戦闘できる状態)。
 *   ・先頭ポケモンは、野生のファイヤーに対して十分に素早さが高いポケモンにします。(確実に逃げられるように)必要素早さの目安は122です。
 *   ・先頭ポケモンは、戦闘開始時に「とくせい」が発生しないポケモンにしてください。
 *   (色違いエフェクトの有無による時間差で色違いの判定を行うので「いかく」などが入ると正しく動作しません)
 *   ・バッグの一番上には「ゴールドスプレー」を置いて、かつ、未発動の状態にしてください。少なくとも1個あればOKです【重要】
 *   ・バッグの一番上にカーソルがあっている状態にしてください(スプレーは使わないでください)。【重要】
 *   ・手持ちポケモンに「かいりき」が使えるポケモンを準備しておきます。(ファイヤーの目の前にいる時点で大丈夫なはず!)
 *   ・「X」でメニューを開いて「どうぐ」にカーソルを合う状態にしてメニューを閉じます。
 *   ・「せってい」から「せんとうアニメ」を「みない」にしておく。
 *   ・「せってい」から「話のはやさ」を「はやい」にしておく。
 *   ・「せってい」から「ボタンモード」を「LR」または「ヘルプ」にする ※「かたて」にしない【重要】
 *   
 *   ★Switch2でしか動作確認していません。必要に応じて、待機時間などを調整してください。
 *   ★万が一、色違いから逃げても操作が狂って意図しない動作が起こっても、筆者は一切の責任を負いません。自己責任でご利用ください。
 *   ★第三世代での色違い出現確率は1/8192です。第六世代以降の半分です。めっちゃ出にくいですよ!
 *   
 *   
 *  (c) 2026 ますたーの忘備録
 *  https://tangential-star.hatenablog.jp/
 */

#include <SwitchControlLibrary.h>
#define HOLDTIME (95) // 1回のキー入力の長押し時間
#define SWITCH_VER (20)

// ボタン押しラッパー関数
int PushKey(char* keyname, int holdtime, int delaytime);
void TiltLeftStick(int direction_deg, double power, int holdtime, int delaytime);
void TiltRightStick(int direction_deg, double power, int holdtime, int delaytime);
void renda(char* key ,long int time_to_press_repeatedly);

// 今回の関数
void die(void);

// 可読性向上
const int UP   = 0;
const int RIGHT= 2;
const int DOWN = 4;
const int LEFT = 6;
const int NONE = 8;

void setup() {
  for(int i=0;i<3;i++)PushKey("B", HOLDTIME, 300); // Bボタンを3回押してSwitchに認識されるのを待つ
  PushKey("B", HOLDTIME, 300); // Bを押しておく。
  delay(1000);
}

// ファイヤーのすぐ下でスタート!
void loop() {

  // ■ファイヤーに話しかける
  PushKey("A", HOLDTIME, 1700); // ギヤーオ! [色違い戦闘画面:→ゴールドスプレー]
  PushKey("A", HOLDTIME, 10); // 戦闘開始 [色違いとの戦闘画面:→やめる]

  // 「あ! やせいの ファイヤーが あらわれた!▼」まで待機
  delay(5180);

  // ■戦闘に入る
  // あ! やせいの ファイヤーが あらわれた!▼
  PushKey("A", HOLDTIME, 100); // [色違いとの戦闘画面:→ゴールドスプレー]
  
  // ゆけっ! ●●!!
  PushKey("A", HOLDTIME, 100); // dummy [色違いとの戦闘画面:→やめる]
  delay(2700);

  // ■ファイヤーが色違いじゃない場合、「にげる」にカーソルをあわせる
  // ●●は どうする? →たたかう  バッグ
  //            ポケモン  にげる
  PushKey("right",HOLDTIME, 20); // →キー入力
  PushKey("down", HOLDTIME, 20); // ↓キー入力
  // ●●は どうする?  たたかう  バッグ
  //            ポケモン →にげる
  delay(2100); // 待機

  // この時点で[色違いとの戦闘画面1回目:あ! やせいの ファイヤーが あらわれた!▼
  PushKey("B", HOLDTIME, 300);  // [色違いとの戦闘画面1回目:ゆけっ! ●●!!][色違いとの戦闘画面:→ゴールドスプレー]
  PushKey("B", HOLDTIME, 2800); // [--(ポケモン繰り出し中)] [色違いとの戦闘画面:→バッグ]

  // ■この時点で「●●は どうする?」になって、カーソルが
  // 色違い以外:   →にげる
  // 色違い1回目:  →たたかう
  // 色違い2回目以降:→バッグ

  // ■逃げる
  PushKey("A", HOLDTIME, 1100); //  [色違いとの戦闘画面1回目:→わざ1番目] [色違いとの戦闘画面2回目:→ゴールドスプレー] 

  // うまく にげきれた!▼
  PushKey("B", HOLDTIME, 4200); //  [色違いとの戦闘画面1回目:→たたかう] [色違いとの戦闘画面2回目以降:→バッグ]

  // フィールドに戻って暗転
  // ■ファイヤーは どこかへ とびさって いった!
  PushKey("B", HOLDTIME, 300); // フィールドに戻る [色違いとの戦闘画面1回目:→たたかう] [色違いとの戦闘画面2回目以降:→バッグ]

  // ■ともしびやまの山頂を出るまで
  SwitchControlLibrary().PressButtonB(); // Bを押しながら
  SwitchControlLibrary().MoveHat(DOWN ); // ↓キーを長押し
  delay(500);
  SwitchControlLibrary().MoveHat(NONE ); // キーを離す
  SwitchControlLibrary().MoveHat(LEFT ); // ←キーを長押し
  delay(100);
  SwitchControlLibrary().MoveHat(NONE ); // キーを離す
  SwitchControlLibrary().MoveHat(DOWN ); // ↓キーを長押し
  delay(500);
  SwitchControlLibrary().MoveHat(NONE ); // キーを離す
  SwitchControlLibrary().MoveHat(RIGHT); // →キーを長押し
  delay(100);
  SwitchControlLibrary().MoveHat(NONE ); // キーを離す
  SwitchControlLibrary().MoveHat(DOWN ); // ↓キーを長押し
  delay(800);
  SwitchControlLibrary().MoveHat(NONE ); // キーを離す
  SwitchControlLibrary().ReleaseButtonB(); // Bを離す [色違いとの戦闘画面:→にげる] *ここで動作が統合
  delay(1000);

  // ■ともしびやま山頂に入ってファイヤーの前までいくまで

  // 入場して、岩まで進む
  PushKey("up", 2400, 100);    // ↑長押し [色違いとの戦闘画面:→バッグ]
  // かいりき発動
  PushKey("A",HOLDTIME, 1200);  // おおきな いわ だけど…… ポケモンの わざで おせるかも?▼ [色違い戦闘画面:→ゴールドスプレー]
  PushKey("B",HOLDTIME, 1200);  // かいりきを つかいますか? →はい [色違いとの戦闘画面:→バッグ]
  PushKey("A",HOLDTIME, 2900);  // ●● は かいりきを はっきした!▼ [色違い戦闘画面:→ゴールドスプレー]
  PushKey("B",HOLDTIME, 950);   // ●●の かいりきの おかげで いわを おせるように なった! [色違いとの戦闘画面:→バッグ]
  PushKey("B",HOLDTIME, 300);    

  // 岩を動かす
  PushKey("right",160, 200);  // →1歩
  PushKey("up", 1030, 100);   // 岩を押して↑1歩
  PushKey("left", 1030, 100); // 岩を押して←1歩
  PushKey("up", 160, 200);    // ↑1歩
  PushKey("left", 1030, 100); // 岩を押して←1歩
  PushKey("up", 1030, 100);   // 岩を押して↑1歩
  PushKey("left", 160, 200);  // ←1歩
  PushKey("up", 160, 200);    // ↑1歩
  PushKey("right",1800, 500); // 岩を押して→2歩
  PushKey("up", 800, 300);    // ↑2歩  [色違いとの戦闘画面:→バッグ]
  
}


// 以下、今回の関数 --------------------------------------
void die(void){
  for(;;) delay(100);
}


// 以下、汎用---------------------------------------------------------------

int PushKey(char* keyname, int holdtime, int delaytime){
  // ホームボタン・方向キーはRight, Left, Up, Down, Homeなど2文字以上で入力。
  // その他ボタン入力は1文字(A,B,X,Y,R,L,+,-)ZR・ZLにも対応
  // 同時押しは非対応
  
  if(strlen(keyname)==1){
    switch(keyname[0]){
      case 'A': case 'a': // A
        SwitchControlLibrary().PressButtonA(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonA(); delay(delaytime);
      break;
      case 'B': case 'b': // B
        SwitchControlLibrary().PressButtonB(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonB(); delay(delaytime);
      break;
      case 'X': case 'x': // X
        SwitchControlLibrary().PressButtonX(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonX(); delay(delaytime);
      break;
      case 'Y': case 'y': // Y
        SwitchControlLibrary().PressButtonY(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonY(); delay(delaytime);
      break;
      case 'L': case 'l': // L
        SwitchControlLibrary().PressButtonL(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonL(); delay(delaytime);
      break;
      case 'R': case 'r': // R
        SwitchControlLibrary().PressButtonR(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonR(); delay(delaytime);
      break;
      case 'H': case 'h': // Home
        SwitchControlLibrary().PressButtonHome(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonHome(); delay(delaytime);
      break;
      case '+': case 'p': case 'P': // Plus
        SwitchControlLibrary().PressButtonPlus(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonPlus(); delay(delaytime);
      break;
      case '-': case 'm': case 'M': // Minus
        SwitchControlLibrary().PressButtonMinus(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonMinus(); delay(delaytime);
      break;
      default:
      break;
    }
  }else if(strlen(keyname)>=2){
    switch(keyname[0]){
      case 'z': case 'Z': // ZR/ZL
        if(keyname[1]=='R'||keyname[1]=='r'){
          SwitchControlLibrary().PressButtonZR(); delay(holdtime);
          if(holdtime>0)SwitchControlLibrary().ReleaseButtonZR(); delay(delaytime);
        }
        if(keyname[1]=='L'||keyname[1]=='l'){
          SwitchControlLibrary().PressButtonZL(); delay(holdtime);
          if(holdtime>0)SwitchControlLibrary().ReleaseButtonZL(); delay(delaytime);
        }
      break;
      case 'r': case 'R': // right
        SwitchControlLibrary().MoveHat(2); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'l': case 'L': // left
        SwitchControlLibrary().MoveHat(6); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'u': case 'U': // up
        SwitchControlLibrary().MoveHat(0); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'd': case 'D': // down
        SwitchControlLibrary().MoveHat(4); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().MoveHat(8); delay(delaytime);
      break;
      case 'H': case 'h': // Home
        SwitchControlLibrary().PressButtonHome(); delay(holdtime);
        if(holdtime>0)SwitchControlLibrary().ReleaseButtonHome(); delay(delaytime);
      default:
      break;  
    }
  }else{
    return -1;
  }
  return strlen(keyname);
}

void TiltLeftStick(int direction_deg, double power, int holdtime, int delaytime){
  double rad = (double)direction_deg*PI/180.0; // 弧度法(ラジアン)変換
  int x, y;
  x = (double)128*sin(rad)*power;
  y = (double)-128*cos(rad)*power;
  x += 128; y += 128;
  if(x >= 255) x=255; if(x <= 0) x=0;
  if(y >= 255) y=255; if(y <= 0) y=0;

  SwitchControlLibrary().MoveLeftStick(x,y);
  if(holdtime> 0){ // holdtime=0のときは押しっぱなし。
    delay(holdtime);
    SwitchControlLibrary().MoveLeftStick(128,128); // 傾きを直す
  }
  if(delaytime>0) delay(delaytime);
  return;
}

void TiltRightStick(int direction_deg, double power, int holdtime, int delaytime){
  double rad = (double)direction_deg*PI/180.0; // 弧度法(ラジアン)変換
  int x, y;
  x = (double)128*sin(rad)*power;
  y = (double)-128*cos(rad)*power;
  x += 128; y += 128;
  if(x >= 255) x=255; if(x <= 0) x=0;
  if(y >= 255) y=255; if(y <= 0) y=0;

  SwitchControlLibrary().MoveRightStick(x,y);
  if(holdtime> 0){ // holdtime=0のときは押しっぱなし。
    delay(holdtime);
    SwitchControlLibrary().MoveRightStick(128,128); // 傾きを直す
  }
  if(delaytime>0) delay(delaytime);
  return;
}

void renda(char* key ,long int time_to_press_repeatedly){
  unsigned long int current_time=0;
  unsigned long int start_time=0;

  // 決められた時間ずっとA連打
  for( start_time=millis(), current_time=start_time ; current_time - start_time < (unsigned long)time_to_press_repeatedly*1000UL ; current_time=millis() ){
    PushKey(key, 50, 50); // ひたすら連打
  } 
  return;
}

 

4.動作確認

プログラムは安定しており、37時間37分53秒間の放置を確認できました(3,107試行)。

無事にファイヤーの色違いにも遭遇することができました。

無事に3,107試行目で色違いのファイヤーに出会うことができた。
ニックネームは「もえもえ」にしたぞ


5.あとがき

これで無事に三鳥の色違いが揃いました!長かった~~!

読者のみなさまにも、自動化ソースコードで幸せのおすそ分けができるんじゃないかな、と思います!(ぜひとも色違い厳選を、Arduino Leonardoで試してみていただければと思います!)

無事に三鳥トリオを色違いで揃えることができた。
さんさん・ふりふり・もえもえの3匹は大事にしていくぞ

 

ところで、筆者のFRLGのストーリー進捗状況ですが、ついに!さきほど!ようやく四天王をクリアしました!!やった~~!

FRLGは、エンディングの演出も大好きなんですよね!今まで歩いてきた街々を、振り返って歩いていくさまがエンドロールで流れていく…エモすぎる~~!

四天王を倒し、遂にでんどういり!エンディングも感動の演出だった…

余談ですが、この時点のエンドロールに「てんじ かんしゅう にっぽんてんじとしょかん」の文字があるのは、なんだかすごくエモいですよね。
というのも、FRLGではエンディングに至るまでは、「1のしま」~「3のしま」までの冒険は追加されているものの、基本的には初代の冒険と基本的に変わらないため、この時点では点字が出る要素が無いのです。

つまり、ここに「点字監修」という文字があるだけで、エンドロール「以降」に何かしら点字の要素が登場することがわかります(きっと、今までFRLGを遊んだことがなかった人は、エンディング後に「4のしま」~「7のしま」の冒険があることについて驚いたのではないでしょうか)。

もっとも、FRLGの箱の中には点字一覧表が説明書と別についてましたし、ポケモンRSを先に遊んでいる筆者としては、当時FRLGで点字が出ることには何の疑問も持たなかったですがね…。

エンディングのスタッフロールの一コマ。おわかりいただけただろうか…。
この時点では「点字」は登場していないが、日本点字図書館による監修の文字がある。
これからの冒険に期待が高まる演出だ…!
⠾⠎⠐⠪⠞⠇⠄ ⠃⠷⠐⠡⠁⠙ (ものごとにわ いみがある)

さらに、エンドロールを終えて「つづきからはじめる」と、マサラタウンに帰った主人公にオーキド博士が話しかけてくれます。その時、ポケモンずかんの「つかまえたかず」が60匹以上だと、ずかんを全国図鑑モードにアップデートしてくれます。

ようやく私も新しい冒険に出ることができます!

エンドロールが終わって続きから始めると、新しい冒険が始まるのだ…!
(めちゃくちゃエモい~~~)

 

さてさて、話が逸れてしまいました。

本ブログではFRLG自動化の中でも、野生ポケモンと三鳥の色厳選を紹介してきましたが、引き続き色厳選には挑戦していきたいと思っています。

でんどういりすることで、バッグの中の「たいせつなもの」ポケットには「オーロラチケット」「しんぴのチケット」が追加されますが、これがあればデオキシスやホウオウ、ルギアに出会うことができます(むしろ、これが目当てでSwitch版のFRLGを遊んだと言っても過言じゃありません)。

まずはクチバシティに行ってシナリオを進めつつ、彼らの色厳選にもチャレンジしていきたいと考えています。

でんどういりするとバッグの中に「オーロラチケット」「しんぴのチケット」が増えている。
これがあれば、へそのいわ・たんじょうのしまに行くことができるのだ

 

引き続き、Arduino LeonardoFRLG自動化にチャレンジしていきますので、これからも本ブログを応援いただければと思います!(みなさまの応援のコメントは、本当に支えになっています!)

皆様のファイヤーの厳選を含む、色違い厳選の成功報告なんかもお待ちしています!

 

ではではc⌒っ.ω.)っ

 

前回の記事:【FRLG自動化06】色違いフリーザー厳選【ふたごじま】

次回の記事:【FRLG自動化08】色違いデオキシス厳選【たんじょうのしま】

(FRLGの記事一覧はこちらから→ ポケモンFRLG自動化 カテゴリーの記事一覧

--

本ブログについて:本ブログについて

 

Arduino導入記事:【Arduino自動化01】Arduino開発環境の導入

ポケモン剣盾の記事:ポケモン剣盾Arduino自動化 カテゴリーの記事一覧

ポケモンBDSPの記事:ダイパリメイクArduino自動化 カテゴリーの記事一覧

レジェンズアルセウスの記事:レジェンズアルセウスArduino自動化 カテゴリーの記事一覧

スカーレット・バイオレットの記事:スカーレットバイオレットArduino自動化 カテゴリーの記事一覧

レジェンズZ-Aの記事:レジェンズZA自動化 カテゴリーの記事一覧

ポケモンFRLGの記事:ポケモンFRLG自動化 カテゴリーの記事一覧

 

YouTubeチャンネル:ますたーの忘備録 - YouTube

www.youtube.com

 

*1:厳密に言うとゴールドスプレーを「使いません」が、戦闘中に使えないどうぐを選択するとカーソルが「やめる」になるため、Aボタンの空打ちを行うためにバッグの一番上にゴールドスプレーが必要、ということです