Skip to content

Instantly share code, notes, and snippets.

@2nd-player
Created December 18, 2018 11:12
Show Gist options
  • Save 2nd-player/8877b5a9db50b062c812bfbad331ebbd to your computer and use it in GitHub Desktop.
Save 2nd-player/8877b5a9db50b062c812bfbad331ebbd to your computer and use it in GitHub Desktop.
SharpBoyのログからエンカウント後の乱数の動きを抽出するスクリプト
#!/usr/local/bin/perl
use strict;
use integer;
#== SharpBoyのログからエンカウント後の乱数の動きを抽出するスクリプト ==
#制作: 2P@ポケモンWiki
my @tmp;
my @hRandomAdd;
my @dDiv;
my @Cy;
my $rDiv;
my $rDivB;
my $rDiv2;
my $n = 2;
while (<ARGV>){
if (/^ROM04:7DE9/){
($hRandomAdd[1]) = /AF:(..)/;
print "hRandomAdd[1] = $hRandomAdd[1]\n";
last;
}
}
while (<ARGV>){
if (/^ROM04:7FEC/){
($rDiv2) = /AF:(..)/;
$rDivB = $rDiv = $rDiv2;
last;
}
}
while (<ARGV>){
if (/^ROM04:7FEC/){
($rDiv) = /AF:(..)/;
$dDiv[++$n] = (hex($rDiv) - hex($rDivB) + 256)&0xff;
$rDivB = $rDiv;
next;
}elsif (/^ROM04:7FEF/){
@tmp = split(/\|/);
if ($tmp[2] =~ /C/){
$Cy[$n] = 1;
}else{
$Cy[$n] = 0;
}
print "dDiv[$n] = $dDiv[$n]; Cy[$n] = $Cy[$n]\n";
next;
}elsif (/^ROM04:7FF0/){
($hRandomAdd[$n]) = /AF:(..)/;
print "rDiv[$n] = $rDiv; hRandomAdd[$n] = $hRandomAdd[$n]\n";
next;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment