スーパーユカリトーナメント∞ ユカリのピクシーLV75からLV90まで上がってる!!!!

ラズパイピコとPCにてスーパーユカリトーナメント∞の自動化を行っていましたが

当初の様に勝てなくなっておりまして自動化抑止の為に補正掛けたり人間操作入ってるんじゃね?と思いつつメガシンカさせてみたりわざ+いれてみたりポケモン入れ替えてみたりしてこねくり回しておったのですが、少しは頭使ってユカリポケモンの弱点など調べてみるか?とググった所ユカリポケモン∞のレベルは何処見てもLV75?位。あれ?現状LV75相手の負け方ではないな?と以前の動画を再確認するとピクシーLV75!今はLV95!なんと何処かで本当にレベル補正が入っていました。都市伝説ではなく真実でした。(R8.10.14時点記事)では、何時から変わったのでしょう?

”何戦目”からなのか”・”明らかな自動化をターゲットにしてはいるのか?”今時点調べてもレベル上がる事出てこない(調べ方が悪いだけで巷では知ってて当たり前なのかも)。

変化したレベルはこちら

メレシー LV73 → LV92

クチート LV74 → LV92

アマルルガ LV74 → LV90

サーナイト LV74 → LV90

ニンフィア LV74 → LV92

ピクシー LV75 → LV95

今の時代にこんな単純で自動化してくださいみたいなバトル用意しておいてこんなギミック仕込んであるんだと共に遊び心を感じましたが開発の方の真意は何処なの

第3者様のネット記事によるLV記載と現状LV

・メレシー  LV73 →LV92

・クチート  LV74 →LV92

・アマルルガ LV74 →LV90

・サーナイト LV74 →LV90

・ニンフィア LV74 →LV92

・ピクシー  LV75 →LV95

今までとは違い明らかに補正が入ったのでどのタイミングで補正入るのか調べられたらまた報告します。

SWITCH自動化_ラズパイピコでSPユカリトーナメント∞周回①

先日試したユカリトーナメント自動化コード rest_SPyukari (レストラン周回にも全て対応)此処までのセットアップに興味がある方はこちらを

SWITCH自動化_ラズパイピコでレストラン周回①フツー - Zombieprocess’s diary

にて夜な夜な手持ちのレベル上げを行っているのですが何故か当初の様にメタグロスとボスゴドラにヘビーボンバーでは連勝出来ず一晩300連勝出来たのが5連位で負け繰り返す位。レベル上げ目的なら負けても再戦出来るので良いのですがメインの2体負けてからパーテイー折り返す間のバトル時間が無駄なのとメガシンカしないポケモンでもあれこれ試せるのでメガシンカを待つ前にわざ+(ヘビーボンバーわざ+なので)を追加してみました

##################################################################

rest_SPyukari_plus

// 最初だけ動作に必要なファイル導入とコントローラー認識などのセットアップを行う

#include "Arduino.h"
#include "SwitchControllerPico.h"

const uint8_t desc_hid_report[] =
{
  CUSTOM_DESCRIPTOR
};

Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_NONE, 2, false);

void setup() {
  switchcontrollerpico_init();
  // wait until device mounted
  while( !TinyUSBDevice.mounted() ) delay(1);
  switchcontrollerpico_reset();

  pushButton(Button::A,100,1);
  delay(1000);

  // コントローラ認識からメニュー移動してゲームに入る

  // ZLとZRを同時に押す

(
  SwitchController().pressButton(Button::ZL);
  SwitchController().pressButton(Button::ZR);
  SwitchController().sendReport();   // 2つ同時に送信

  delay(3000);   // 3秒間そのまま待つ

  // ZLとZRを同時に離す
  SwitchController().releaseButton(Button::ZL);
  SwitchController().releaseButton(Button::ZR);
  SwitchController().sendReport();   // 同時に離す

  //メニューの移動コマンド

 pushButton(Button::A,100,1);
  delay(1000);

  pushButton(Button::B,100,1);
  delay(1000);

  pushHatButton(Hat::LEFT, 1000, 5);

  pushHatButton(Hat::UP, 1000, 1);

  pushButton(Button::A,100,1);
  delay(3000);
}


  //ユカリの前に戻り、ここからバトルの繰り返しコード

void loop() {
const int times   =2;    // Aの連打回数
const int pressMs = 200;  // Aを押す時間(0.2秒)
const int gapMs   = 200;  // Aを離した後の待機(0.2秒)

    // ZLを長押しロックオン
   

 SwitchController().pressButton(Button::ZL);
    delay(500);
  
    // ZLを押した状態のまま、+ボタンを押して離す(ワザプラス発動)
    SwitchController().pressButton(Button::PLUS); // +ボタン
    delay(150);
    SwitchController().releaseButton(Button::PLUS);
    delay(800); // ワザプラスのUI演出(技が光る)を少し待つ   //ここ追加

    
    // Aを連打
    for (int i = 0; i < times; ++i) {
     
      SwitchController().pressButton(Button::A);
      delay(pressMs);
      SwitchController().releaseButton(Button::A);
      delay(gapMs);
     

      
    // ZLを離す
    SwitchController().releaseButton(Button::ZL);
    
    // メガシンカさせる
    pushButton(Button::RCLICK,300,1);

   
    }
  }

#################################################################

しかし、何故?クリア用2体の負けが増えたのでしょうか?相手がこちらの出す技に合わせて来る様な書き込みも見受けられますが、こうするとこう自動化に対する補正入るってな事、誰も書いてる人いないし。当初、たまたま上手くいっただけなのか?スーパーユカリトーナメントにはなにか補正入ったりしているのか?と都市伝説的な事は皆さんにトスします。どなたか答えを導き出して。(因みに前回から変更した事はおうかん使って能力あげた事位)。それで時間短縮できたのか?はそのうち時間あったら検証します。

ヘビーボンバー使えるヒードランGETしたのでクリア要員3体体制になりました。

都市伝説でもなんでもなかった!解明出来ました!相手のレベルが上がってる

(^_^)!

ユカリポケモンのレベルがLV75台からLV95台まで上がっていました。そりゃ勝てなくなるは。本当に補正入ってました。こちら

どんな条件でトリガー入ったのでしょう

Raspberry Pi Picoとゲームキューブで”バトル山100人抜き”自動化のマクロ

 

で使用したマクロです。

コード内の注釈は対戦トレーナーとポケしかありません。前半は試行錯誤のコードでそのまま置き換えていません。中盤から後半のバトル終了画像判定は、この画像(バトル中は同じ位置に必ず出るので)が出ているか消えたかで判定させています

 

BTMT_100_OK.nx

 

 

//ここにマクロを記述する


Loop(4)
{
Press(A,0.10,1.50)
}

Press(A,0.10,4.00)

Press(UP,4.00)

### 第1エリア ###

#1戦目  リウ

# スバメ・ホーホー

Press(A,0.10,1.00)       #リウ「バトル山へ ようこそ!~
Press(A,0.10,32.00)     #さあ始めましょう

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(34.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)


#2戦目   ギア

# ヒマナッツ・ハネッコ

Press(A,0.10,32.00)

Loop(4)
{
Press(A,0.10,1.00)    
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Loop(3)
{
Press(UPLEFT,0.30,0.50)
}
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

#3戦目 トリヴァ

# ブブリン・ラクライ

Press(A,0.10,32.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(34.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,2.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,0.20,1.00)
Press(UP,3.00,1.00)

#4戦目 クリマ

# ルリリ・オタチ

Press(A,0.10,32.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(34.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,2.00,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

#第5戦目 アルカ

# トゲピー・ロコン

Press(A,0.10,32.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(34.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,0.50,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

#第6戦目 キーノ

# コイキング・ズバット

Press(A,0.10,32.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(34.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,0.50,1.00)
Press(LEFT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

#第7戦 サーマ

#ポチエナ・ウリムー(こらえる)

Press(A,0.10,40.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(40.00)
Loop()
{

ImgCmpRect(uri, 1200, 240, 150, 150, 3.00)
{
Press(A,0.10,1.00)    
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Wait(40.00)
}

Not
{
Break
}
}
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,0.70,1.00)
Press(RIGHT,0.50,1.00)
Press(UPRIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)
    

#第8戦 ヒデト

#ウパー(ちょすい)・ナックラー


Press(A,0.10,32.00)

Press(A,0.10,0.50)              #ちょすい対策でカイオーガのわざ
             #れいとうビームに変更 
Press(DOWN,0.10,1.00)

Loop(4)
{
Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)

Press(UP,1.00,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

#第9戦 コーネ

# ヨマワル・ラルトス

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(35.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.50,1.00)
Press(A,0.10,2.00)
Press(UP,5.00,1.00)

#第10戦 セネティ

#ジグザグマ・ゴニョニョ・エネコ・ナマケロ・プリン
    
Press(A,0.10,2.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(72.00)


Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30)

Press(A,0.10,2.00)
Press(A,0.10,12.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)


Press(UP,0.50,1.00)
Press(UPRIGHT,0.30,1.00)
Press(UP,5.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.30,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,5.00,1.00)

### 第2エリア ###


#第11戦 トーメ

# ソーナノ・ピチュー


Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(RIGHT,1.50,1.00)
Press(UPRIGHT,0.50,1.50)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

#第12戦 イワケン 

# ズバット・ゴニョニョ・ベトベター

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}

Wait(47.00)
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UPLEFT,0.50,1.00)
Press(LEFT,0.10,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.50,2.00)

# 第13戦 ワヤン

# ダンバル・ドジョッチ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,1.00)
Press(B,0.10,8.00)
Press(B,0.10,2.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.50,1.00)

# 第14戦 プルモ

# ハスボー・タネボー


Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(40.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)


# 第15戦 アイル

# イシツブテ・サンド

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UP,0.50,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第16戦 カーロ

#  マリル・プリン

Press(A,0.10,30.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UP,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第17戦 ジーサ

# ケーシィ・カゲボウズ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UPRIGHT,1.00,1.00)
Press(RIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(DOWNRIGHT,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

Press(A,0.10,30.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,30.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UPRIGHT,1.00,1.00)
Press(RIGHT,0.50,1.00)
Press(A,0.50,1.00)
Press(UPRIGHT,3.00,1.00)

# 第19戦 ミリンダ

# タマザラシ・キバニア

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UP,1.00,1.00)
Press(UPRIGHT,1.00,2.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第20戦 ウサー

# クヌギダマ・レディバ・アメタマ・ツチニン・アノプス

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(A,0.10,1.00)

Press(UP,0.50,1.00)
Press(UPRIGHT,0.50,1.00)
Press(UP,5.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.20,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,5.00,1.00)

### 第3エリア ###


# 第21戦 ハンク

# ケムッソ・カラサリス・マユルド

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(40.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第22戦 レイコ

# キルリア・キルリア

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(35.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.00,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第23戦 ゲイン

# ココドラ・ゴマゾウ(こらえる)

Press(A,0.10,32.00)
Loop(4)
{
Press(A,0.10,0.50)    
}
Wait(40.00)
Loop()
{

ImgCmpRect(goma, 1200, 240, 150, 150, 3.00)
{
Press(A,0.10,1.00)    
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Wait(30.00)
}

Not
{
Break
}
}
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)

Press(UP,1.00,1.00)
Press(UPLEFT,0.30,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第24戦 ブーレ

# キャモメ・タツベイ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,1.80,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第25戦 カーキ

# ナゾノクサ・ゴクリン

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.00,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第26線 エイラ

# ヨーギラス・デルビル


Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.00,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第27戦 ジノキ

# ネイティ・ヨマワル

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,1.00,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第28戦 センタ

# ワンリキー・ナマケロ・ジグザグマ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(45.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第29戦 ナーコ

# イシツブテ・クチート

Press(A,0.10,38.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(32.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第30戦 ミルバ

# ヒトデマン・タッツー・ヘイガ二・トサキント・アメタマ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(70.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)

Press(UP,1.00,1.00)
Press(UPRIGHT,0.50,1.00)
Press(UP,5.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.10,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,5.00,1.00)

### 第4エリア ###

# 第31戦 ビューテ 

# トゲピー・ナマケロ

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,3.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第32戦 ルダン

# スバメ・ドードー

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第33戦 ヤミズ

# ネイティ・ヘイガ二

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,0.70,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第34戦 オリア

# ケーシィ・パールル

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,2.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第35戦 トール

# コイル・ビビリダマ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.00,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第36戦 タック

# サボネア・キノココ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.50,1.00)
Press(LEFT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.50,1.00)

# 第37戦 トビー

# ゴクリン・ベトベター

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.50,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第38戦 トーチャ

# アノプス・クヌギダマ・バルビート・イルミーゼ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(70.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第39戦 チルル

# ドンメル・タツベイ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第40戦 ヒラキ

# ノズバス・リリーラ・ゴマゾウ・サイホーン・ドジョッチ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UP,1.50,1.00)

Press(UP,5.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.00,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.10,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,5.00,1.00)

### 第5エリア ###

#41戦目 サイト

# ピカチュー・チョンチー

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第42戦 ブーヤ

# エネコロロ・パッチール・ヤルキモノ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(50.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,2.00,1.00)
Press(LEFT,2.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第43戦 シリー

# ヨルノズク・マッスグマ

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第44戦 ダイト

# ヤミラミ・コノハナ

Press(A,0.10,32.00)

Loop()
{

   ImgCmpRect(nekodama,620,90,150,130,3.0)

{
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Wait(40.00)
}

Not
{
Break
}
}
Press(A,0.10,1.00)
Press(A,8.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第45戦 シルン

# クチート・サニーゴ・ゴローン

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(63.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第46戦 ミツグ

# ドガース・ベトベター・ドクケイル・クサイハナ
  
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(63.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UPLEFT,1.50)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00,1.00)
Press(UPLEFT,4.00,1.00)

# 第47戦

# ユンゲラー・ネイティ・チャーレム

Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(63.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
 Press(UP,1.00,1.00)
 Press(RIGHT,1.00,1.00)
 Press(A,0.10,1.00)
 Press(UP,4.00,1.00)
 
 # 第48戦 セロラ
 
 # ハスブレロ・ラブカス・メノクラゲ・シードラ
 
 Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(63.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第49戦 グロッス

# トドクラー・デルビル・パッチール

 Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(65.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(UP,1.00,1.00)
Press(LEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第50戦 ヴィゴ

# アゲハント・オオスバメ・アメモース・ゴルバット・ペリッパー

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(75.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(40.00)


Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)

Press(UP,1.00,1.00)
Press(LEFT,0.50,1.00)
Press(UP,5.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.10,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,1.20)
Press(UPLEFT,5.00,1.00)

)

### 第6エリア ###

# 第51戦 アーティー

# ビビリダマ・コイル・チョンチー

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第52戦 ラムズ

# サボネア・ゴマゾウ・ノズバス・エイパム

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.50,1.00)
Press(LEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.50)

# 第53戦 イリカ

# リリーラ・ボボッコ・レディアン

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(55.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第54戦 トプス

# デリバード・サイホーン・アノプス

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第55戦 マープ

# デルビル・ビブラーバ・ヒトデマン・エネコロロ

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第56戦 カーズ

# アゲハント・ヒメグマ・ポポッコ・パールル

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.00,1.00)
Press(LEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第57戦 ジャス

# ラブカス・トサキント

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第58戦 ゲンマ

# コノハナ・ドガース・ノズバス・クチート

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

#第59戦 フィニ

# サニーゴ・バルビート・イルミーゼ・ロゼリア

Press(A,0.10,1.00)
Press(A,0.10,32.00)
Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(65.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第60戦 トリプ

# プクリン・マリルリ・アリアドス・ホエルコ・ソーナンス

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)
Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.00,1.00)
Press(UPLEFT,4.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.30,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,6.00,1.00)

### 第7エリア ###

# 第61戦 カット

# ヤンヤンマ・アメモース・アリアドス・レディアン


Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(A,0.10,42.00)  # いかくに合わせた時間

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(65.00)   

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第62戦 シノリ

# ルナトーン・ソルロック・ノコッチ・サンドパン

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.00,1.00)
Press(UPRIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第63戦 ニューロ

# デリバード・パールル・ドクケイル・マグカルゴ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(RIGHT,0.20,1.00)
Press(UP,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第64戦 マソン

# テッカニン・ドードリオ・ワタッコ・マッスグマ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(LEFT,0.20,1.00)
Press(UPLEFT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,4.00,1.00)

# 第65戦 サイカ

# ヤミカラス・ムウマ・ジュペッタ・ヤミラミ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第66戦 シャナ

# マリルリ・キリンリキ・ロゼリア・キレイハナ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.50,1.00)
Press(UPLEFT,0.50,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,3.00,1.00)

# 第67戦 マーナ

# オオスバメ・ニューラ・キリンリキ・ヤルキモノ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,1.50,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第68戦 クノウ

# サメハダー・バクーダ・チリーン・チャーレム

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第69戦 ノーり

# グランブル・サナギラス・マンタイン・トドグラー

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(DOWN,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(65.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第70戦 アマネ

# クチート・ゴーリキ・ヌオー・サマヨール・チルタリス


Press(A,0.10,1.00)
Press(A,0.10,40.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(30.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UPLEFT,1.00,1.00)
Press(UPLEFT,4.00,1.00)

#ゲート内

Press(LEFT,2.50,1.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.20,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,7.00,1.00)

### 第8エリア ###

# 第71戦 プーラ

# プクリン・キマワリ・ヨルノズク・イノムー

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第72戦 ケイド

# ハブネーク・マルノーム

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第73戦 サント

# グライガー・ニューラ・カポエラー・ブーピッグ

Press(A,0.10,1.00)
Press(A,0.10,40.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第74戦 ライト

# アメモース・グラエナ・オドシシ・グランブル

Press(A,0.10,1.00)
Press(A,0.10,43.00)  #2体いかくに合わせた時間

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(65.00) #いかくとモーションに合わせた時間

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)

Press(UP,1.00,1.00)
Press(UPRIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第75戦 キルク

# サマヨール・ランターン・エアームド・ラフレシア

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(RIGHT,5.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,5.00,1.00)

# 第76戦 カナタ

# オニゴーリ・キノガッサ・オオスバメ・サイドン

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(RIGHT,3.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第77戦 ソーミ

# メタング・グランブル・ワタッコ・ネイティオ

Press(A,0.10,1.00)
Press(A,0.10,42.00)  #いかくに合わせた時間

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(DOWNRIGHT,3.00,1.00)
Press(RIGHT,3.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第78戦 カップ

# トロピウス・アブソル・コドラ・バクオング

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(70.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第79戦 フィオナ

# コータス・ダーテング・ヨルノズク・ジーランス

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(64.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.00,1.00)
Press(RIGHT,3.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第80戦 タリア

# ハリテヤマ・ノクタス・マタドガス・ゴローニャ・スターミー

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(65.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(60.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.00,1.00)
Press(RIGHT,1.00,1.00)
Press(UPRIGHT,5.50,1.00)

#ゲート内

Press(LEFT,2.50,1.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.20,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,7.50,1.00)

### 第9エリア ###

# 第81戦 ポリン

# キリンリキ・テッカニン・ザングース・ドードリオ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UP,1.00,1.00)
Press(UPRIGHT,0.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第82戦 ウォル

# キノガッサ・サメハダー・バクーダ・フォレトス

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,2.00,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第83戦 スタン

# ジュペッタ・レアコイル・マンタイン・ナマズン

Press(A,0.10,32.00)

Press(A,0.10,0.50)              #ちょすい対策でカイオーガのわざ
                  #れいとうビームに変更 
Press(DOWN,0.10,1.00)

Loop(4)
{
Press(A,0.10,1.00)
}
Wait(55.00)


Press(A,0.10,1.00)
Press(DOWN,0.10,1.00)

Loop(4)
{
Press(A,0.10,1.00)
}
Wait(40.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(RIGHT,1.50,1.00)
Press(UP,2.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

#第84戦 エータ

# ライチュウ・ハスブレロ・マルマイン・チルタリス

Press(A,0.10,32.00)

Loop()   #チルタリスのたえる対策
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(62.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,2.00,1.00)
Press(UPLEFT,0.30,1.00)
Press(A,0.10,1.00)
Press(UP,3.50,1.00)

# 第85戦 キャス

# オクタン・シザリガー・ハンテール・ゴルダック

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.50,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第86戦 シロハ

# キレイハナ・サクラビス・ミルタンク・デンリュウ

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,1.50,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

#第87戦 ノモン

# エアームド・ネイティオ・ダーテング・サイドン

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,3.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第88戦 ディボ

# マタドガス・ベトベトン・チルタリス・ドンファン

Press(A,0.10,32.00)

Loop()   #チルタリスのたえる対策
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第89戦 ミルト

# ユレイドル・アーマルド・ヘラクロス・キュウコン

Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(64.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第90戦 リバスト

# トロピウス・ルンパッパ・ラフレシア・キレイハナ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()   #ルンパッパ高耐久・あめうけざら、ダーテング高耐久対策
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.00,1.00)
Press(UPRIGHT,4.00,1.00)

#ゲート内

Press(LEFT,2.50,2.00)
Press(UP,1.50,1.00)
Press(RIGHT,0.10,1.00)
Press(UP,0.30,1.00)

Loop(6)
{
Press(A,0.10,1.50)
}

Press(RIGHT,0.50,1.00)
Press(RIGHT,0.30,1.00)
Press(UP,5.00,1.00)

### 第10エリア ### 

# 92戦以降バトル相手のわざによりターン数変化するので
#    画像処理にて対応

# 第91戦 ワカサイ

# ゴローニャ・ジーランス・ノクタス・サンドパン

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop(4)
{
    Press(A,0.10,1.00)
}
Wait(62.00)

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,3.00,1.00)

# 第92戦 ババラン

# ゴルバット・マルノーム・ベトベトン・ドククラゲ

Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.00,1.00)
Press(A,0.10,1.00)
Press(UP,4.00,1.00)

# 第93戦 ユーク

# ブービック・ユンゲラー・メタング・ルナトーン

Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(RIGHT,2.50,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第94戦 ヨーモ

# ポワルン・キマワリ・ラフレシア・キレイハナ

Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.00,1.00)

# 第95戦 ハルル

# マンタイン・アズマオウ・ハンテール・サクラビス


Press(A,0.10,1.00)Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(UPRIGHT,4.00,1.00)

# 第96戦 ボブン

# マルマイン・ムウマ・キュウコン・バクーダ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UP,2.00,1.00)
Press(A,0.10,1.00)
Press(UP,3.50,1.00)

# 第97戦 カルラン

# オーダイル・バクフーン・メガニウム・キノガッサ・デンリュウ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(60.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,1.50,1.00)
Press(RIGHT,2.00,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第98戦 パチャ

# バシャーモ・ジュカイン・ラグラージ・チルタリス・オニゴーリ

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(62.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(UPRIGHT,2.50,1.00)
Press(RIGHT,1.50,1.00)
Press(A,0.10,1.00)
Press(RIGHT,4.00,1.00)

# 第99戦 エレン

# シザリガー・レアコイル・ヌケニン・ヘラクロス・サーナイト

Press(A,0.10,1.00)
Press(A,0.10,32.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(RIGHT,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Wait(62.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,1.00)
Press(A,0.10,1.00)
Press(LEFT,1.50,1.00)
Press(UPLEFT,4.00,1.00)

# 第100戦 バトラス

# カイロス・ネンドール・クロバット・グライガー・フライゴン・ギャラドス

Wait(20.00)
Press(RIGHT,0.39,1.00)
Press(UP,12.30,1.00)
Press(A,0.10,15.00)

Press(A,0.10,1.00)
Press(A,0.10,35.00)

Loop()   
{

   ImgCmpRect(nekodama, 620, 90, 150, 130, 3.0)

{
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(LEFT,0.10,1.00)
Press(A,0.10,2.00)
Wait(70.00)
}

Not
{
Break
}
}

Press(A,0.10,2.00)
Press(A,0.10,8.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)
Press(A,0.10,2.00)


 

Raspberry Pi Picoとゲームキューブで”バトル山100人抜き”自動化

今回は自動化を始めるきっかけになったポケモンコロシアムのバトル山100人抜きを自動化してみました(シナリオモード・ダブルバトル)

注、この動画は3時間40分カット無しなので閲覧される方は飛ばして見てください

使用したポケモンはLV100カイオーガにしんぴのしずくを持たせ、わざはしおふきとれいとうビーム。LV100ホエルオーにしんぴのしずくを持たせ、わざはしおふきとおどろかす

 

使用したハードは

・PC

・ラズパイピコ

・ビデオキャプチャーボード

・ゲームキューブ(ポケモンコロシアム、メモリーカード)

・GC画像ポート→HDMI変換ケーブル

・ゲームキューブ用 RJ-45変換ケーブル

・LANコネクタDIP化キット

・ブレッドボードとジャンパ

・USBケーブル、HDMIケーブル等

ソフトは

・NX_Macro_Controller(コントローラーアプリ)

・jiangtun-v2.0.0-alpha-pico.uf2(ファームウェア)

機材、セッテイング等はここら辺りをご参考に

このバトル100人抜き自動化で大変だったのは

・バトルステージの大きさが毎戦異なる為、ステージ間の移動は毎戦異なった移動セッテイングが必要

・バトルステージから次ステージへの通路階段も方向と長さが毎ステージ違う

・NPCの繰り出すポケモン数が一定でない(2~7体だったかな)

・相手ポケモンの出現効果や倒れた時のモーション時間が一定でないので毎戦その時間を確認しなければならない

・こらえる、ちょすい、ねこだまし、いかく、あめうけざらのルンパッパやダーティングなどの高耐久など時間やターンが一定でない。でんこうせっかだけでも自動化時間に破城きたす。待機時間長く取る、れいとうビームやおどろかすに切り替える、画像処理つかって不確定なターンに対応などで対処したが全てのポケモンの全てのわざ出しと全ての組み合わせまで検証するのはほぼ不可能

・NCPのバトル前後のコメント数が一定でないので毎戦検証が必要

・ステージ10戦ごとにセーブ出来、ステージ頭から再開できるが8戦目や9戦目のデバッグ繰り返すと泣き入る

・バトルシーンを省略する事が出来ないのでとにかく時間かかる。本編攻略含めこれ一番の問題

と言うようにSWITCH自動化のA連打の様にはいかず安定した周回には画像処理と100戦デバッグを繰り返す忍耐力が必要です。詰められる時間があったり不要な行があったりコードに一貫性がなかったりと改善の余地はまだまだありますが上記の様に一度踏み外すと全体に影響及ぼすので今回はここまで。

今回、たまたま上手くいっただけかもしれませんので時間あればもう少し検証進めてみます

SWITCH自動化_ラズパイピコでSPユカリトーナメントD周回①

自動化を試したいが為にリワード戦20回(毎回チケット苦行やね)やっとクリアして来まして前回と同じハード・ソフト・コードでスーパーユカリトーナメントD(DLコンテンツ導入前)を試してみます。

攻略サイト情報を元にLV100メタグロスにヘビーボンバーで周回。残り5体をレベル上げにて試した結果アマルルガとピクシーにまもるを使われるとHP持たず敗北。Aに設定した技しか出せないのでレベル上げしている5体のレベル次第では負け。まもる対策としてドリュウズにロックブラストにて2体体制で試してみたがロックオン外れ位置状態になり玉砕の状態になってしまう事があり断念。これまたサイト情報頼りにLV100イベルタルにかいがらのすずをもたせデスウィングにてサポート役にしてお試し中。初回チャレンジではメタグロスだけで200周回出来たが本日は人が操作している?様な華麗なコンボで負かして来た。コントローラー周回でも何かしらのアクションが入るとか言われているのも偶然なのか?必然か?

ピクシーまもるからのマジカルフレイム ここは連発来なかったのでなんとかクリア

まもる~の連発食らわなければLV100メタグロスとLV100もう一体、残り3体レベル上げでなんとか安定周回出来そうです

★ピクシーのまもる連発なくても敗れるシーンがありましたのでアップ

アマルルガ→まもる→ふぶき ピクシー→まもる→マジカルフレイム→ムーンフォース

と言う事があるので、もう一体をボスゴドラにヘビーボンバーで試してます

このマクロで各レストラン周回とSPユカリD使い回し出来そうです。ロックオン外れ対策もなにか織り込んでみようか

rest_SPyukari


#include "Arduino.h"
#include "SwitchControllerPico.h"

const uint8_t desc_hid_report[] =
{
  CUSTOM_DESCRIPTOR
};

Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_NONE, 2, false);

void setup() {
  switchcontrollerpico_init();
  // wait until device mounted
  while( !TinyUSBDevice.mounted() ) delay(1);
  switchcontrollerpico_reset();

  pushButton(Button::A,100,1);
  delay(1000);

// ZLとZRを同時に押す
  SwitchController().pressButton(Button::ZL);
  SwitchController().pressButton(Button::ZR);
  SwitchController().sendReport();   // 2つ同時に送信

  delay(3000);   // 3秒間そのまま待つ

  // ZLとZRを同時に離す
  SwitchController().releaseButton(Button::ZL);
  SwitchController().releaseButton(Button::ZR);
  SwitchController().sendReport();   // 同時に離す

  pushButton(Button::A,100,1);
  delay(1000);

  pushButton(Button::B,100,1);
  delay(1000);

  pushHatButton(Hat::LEFT, 1000, 5);

  pushHatButton(Hat::UP, 1000, 1);
}

void loop() {
const int times   =2;    // Aの連打回数
const int pressMs = 200;  // Aを押す時間(0.2秒)
const int gapMs   = 200;  // Aを離した後の待機(0.2秒)

    // ZLを長押し
    SwitchController().pressButton(Button::ZL);
    delay(500);
    // Aを連打
    for (int i = 0; i < times; ++i) {
     
      SwitchController().pressButton(Button::A);
      delay(pressMs);
      SwitchController().releaseButton(Button::A);
      delay(gapMs);
     

      
    // ZLを離す
    SwitchController().releaseButton(Button::ZL);
    
    // メガシンカさせる
    pushButton(Button::RCLICK,300,1);
    }
  }


 

 

 

 

SWITCH自動化_ラズパイピコでレストラン周回②ニ・リュー

今回は、ラズパイピコとSWiTCHでレストラン周回。ポケモンZA二つ星レストランテ・ニ・リューを試します。フツーの自動化でレベル上がったので前回のコードにメガシンカを足して試して見ました。使用ハードソフトは下記①と同じ

今回、コードの最後に次の一行、メガシンカの起動を追加しました。

 pushButton(Button::RCLICK,300,1);  //Rレバー0.3秒押しで1回押し込み

 }

}

メガシンカで何が上がって減って特性が変わってとか気にせず此処にコードを入れたら阻害する事なく動くかな?動いた良かった!みたいなノリで入れてます

レストラン・テ・二リューのエントリーと報酬は

・エントリー 15000円

・トレーナーに勝利 2640円(一人)×5人 で13200円

・ちいさいなきのこ ×30個 で7500円

・けいけんあめ M×4個

と5人勝ち抜いた時点ではー1800円ですが”ちいさいきのこ”を売却すると+7500円の利益になりバトルでの経験値とけいけんあめM×4個分が得られます。エントリー費が15000円なので自動で放置する場合は手持ち金と時間と回数を考えてから行う必要があります。また、一戦目のナタリーが飛行タイプを3体揃えてくるので地面技を入れたままにするかどうか考え処ですが5戦トータルで考えたらどっちが良いかなんて考える気もなくパーティー入れ替えて取り敢えず5戦回ればそれで良し良し的スタンスなので。

ネット情報ではパーティーは50LV以上位なら何とかなると書かれていますが、人間操作でなく、手持ちポケモンのどれかがAボタンだけに割り振った技をどれかの相手に淡々と出すので何も考えないならLV70、5体位揃えればならなんとかなるかな?

追: LV100のルカリオにラスターカノンだけでほぼ周れているので残り5体はレベル上げにして一晩放置。けいけんあめMが400~500位貯まるのでスタートレベルにもよりますが一番か二晩で4体LV100 にあげらる。キノコは999個以上貯められないので一晩放置したら毎回ポケモンセンターで売却(249,750円)。オヤブンや体がデカいポケモンは視界妨げてロックオン出来なくなり詰むので自動化には出さない方が良い

レストラン周回からユカリDまで使える共用マクロ。何となく上手くいっただけで使うポケモンの技出し時間とかタイミングは都度変更した方が良いかも。 

rest_SPyukari


 

#include "Arduino.h"
#include "SwitchControllerPico.h"

const uint8_t desc_hid_report[] =
{
  CUSTOM_DESCRIPTOR
};

Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_NONE, 2, false);

void setup() {
  switchcontrollerpico_init();
  // wait until device mounted
  while( !TinyUSBDevice.mounted() ) delay(1);
  switchcontrollerpico_reset();

  pushButton(Button::A,100,1);
  delay(1000);

// ZLとZRを同時に押す
  SwitchController().pressButton(Button::ZL);
  SwitchController().pressButton(Button::ZR);
  SwitchController().sendReport();   // 2つ同時に送信

  delay(3000);   // 3秒間そのまま待つ

  // ZLとZRを同時に離す
  SwitchController().releaseButton(Button::ZL);
  SwitchController().releaseButton(Button::ZR);
  SwitchController().sendReport();   // 同時に離す

  pushButton(Button::A,100,1);
  delay(1000);

  pushButton(Button::B,100,1);
  delay(1000);

  pushHatButton(Hat::LEFT, 1000, 5);

  pushHatButton(Hat::UP, 1000, 1);
}

void loop() {
const int times   =2;    // Aの連打回数
const int pressMs = 200;  // Aを押す時間(0.2秒)
const int gapMs   = 200;  // Aを離した後の待機(0.2秒)

    // ZLを長押し
    SwitchController().pressButton(Button::ZL);
    delay(500);
    // Aを連打
    for (int i = 0; i < times; ++i) {
     
      SwitchController().pressButton(Button::A);
      delay(pressMs);
      SwitchController().releaseButton(Button::A);
      delay(gapMs);
     

      
    // ZLを離す
    SwitchController().releaseButton(Button::ZL);
    
    // メガシンカさせる
    pushButton(Button::RCLICK,300,1);
    }
  }


 

blog:g:11696248318757265981:banner]

SWITCH自動化_ラズパイピコでレストラン周回①フツー

SWITCHとラズパイピコでポケモンZAのレストラン周回を試します。

バトルにはZL入力が必要なのでZLボタンが存在しないGCコンエミュレートでは動かせませんが画像は必要無いので

sorasen2020さんのSwitchControllerPicoというライブラリで動かします必要な物は

●ラズパイピコ単体

●ピコとswitch繋ぐUSBケーブル

●switchドッグ

●PC ディスクトップでもノートでもUSB端子あってArudeino_IDE使えれば何でもOKだと思う

◯SwitchControllerPico(コード用ライブラリ)

◯Arduino IDE(1.8.19 推奨)
◯Arduino-Pico(v2.7.1)(ピコ用ドライバ)

IDEに

SwitchControllerPicoをArduinoのライブラリのあるフォルダ、C:/Users/ユーザ名/Documents/Arduino/librariesなどにこのリポジトリをダウンロード展開する

ラズパイピコのデバイスIDを書き換える

C:/Users/ユーザー名/AppData/Local/Arduino15/packages/rp2040/hardware/rp2040/2.7.1/board.txt内のRaspberry Pi Picoのvidとpidを設定している箇所を以下の値に書き換える

rpipico.vid.0=0x0f0d
rpipico.pid.0=0x0092

rpipico.build.vid=0x0f0d
rpipico.build.pid=0x0092
 
このフォルダは隠しなのでスタート→すべて→Windowsツール→ファイル名を指定して実行に %appdata% と入力検索 開いた後RoamingだったらLocalに移動して
 

此処と

此処

似たような所多いので前後の文脈用確認

ボードドライバをインストール

earlephilhowerさんのArduino-Pico(v2.7.1)ボードドライバをインストール

このバージョンsorasen2020がライブラリ作成した時点の動作確認版だと思われるので

そのまま使用。この御仁、更新有り過ぎて敬礼ものです。暇あったら最新版試してみますか

ツール→で確認

USB_StackはAdafruitTinyUSBにする

1. Raspberry Pi PicoのBOOT SELボタンを押しながらPCと接続

2. RPI-RP2デバイスが認識される。フォルダは閉じます。

3. スケッチを書き込み

4. SWITCHと接続
と言う手順でSWITCHとの接続認識は何度か挿したりすれば認識するらしいとの事ですが私の環境では出来なかったのでスケッチ書いてセットアップとして組み込みました。

コードは良く理解出来てないので間違っているかもです。ご参考程度に

res_futuu_v1.00

 

#include "Arduino.h"
#include "SwitchControllerPico.h"

const uint8_t desc_hid_report[] =
{
  CUSTOM_DESCRIPTOR
};

Adafruit_USBD_HID usb_hid(desc_hid_report, sizeof(desc_hid_report), HID_ITF_PROTOCOL_NONE, 2, false);

void setup() {
  switchcontrollerpico_init();
  // wait until device mounted
  while( !TinyUSBDevice.mounted() ) delay(1);
  switchcontrollerpico_reset();

 pushButton(Button::A,100,1);
  delay(1000);

// ZLとZRを同時に押す
  SwitchController().pressButton(Button::ZL);
  SwitchController().pressButton(Button::ZR);
  SwitchController().sendReport();   // 2つ同時に送信

  delay(3000);   // 3秒間そのまま待つ

  // ZLとZRを同時に離す
  SwitchController().releaseButton(Button::ZL);
  SwitchController().releaseButton(Button::ZR);
  SwitchController().sendReport();   // 同時に離す

  pushButton(Button::A,100,1);
  delay(1000);

  pushButton(Button::B,100,1);
  delay(1000);

  pushHatButton(Hat::LEFT, 1000, 5);

  pushHatButton(Hat::UP, 1000, 1);
}

void loop() {
const int times   =2;    // Aの連打回数
const int pressMs = 200;  // Aを押す時間(0.2秒)
const int gapMs   = 200;  // Aを離した後の待機(0.2秒)

    // ZLを長押し
    SwitchController().pressButton(Button::ZL);
    delay(500);
    // Aを連打
    for (int i = 0; i < times; ++i) {
     
      SwitchController().pressButton(Button::A);
      delay(pressMs);
      SwitchController().releaseButton(Button::A);
      delay(gapMs);
     

    
    // ZLを離す
    SwitchController().releaseButton(Button::ZL);
 
    }
  }

ここでのバトルは一体負けても勝手に次のポケモンがバトルに出るしバトル終了後に回復するので手持ちポケモンにそれほどこだわる必要ないですが一番の課題は如何にロックオンさせるかでシシコの体当たり等で視界から消えるとロックオン出来る所に現れるまでしばらくボコられ放題になりますのでLV50位が4体もいれば持ち堪えられるかと

ガブリアスのすなじごくでロック出来る位置に足止め出来ているみたいなので今時点のお勧め。余談です。捕まえるのに苦労する進化前のフカマルは8番ゾーン昼間、倒して消える前にハイパーボール投げて捕まえました)

 

 この状態でSWITCHと接続 

動画7分と長いのでご注意を

ZLを押しながらAボタン押しを繰り返すという単純そうな事なのですが自動化だと再現させるのが以外と難しく何が最適解なのか今は分かりません。ミッション進められたら他のレストラン周回も試してみます

レストランテニリュー周回はこちら