Tweaking, tuning, and cleanup
Apparently we need to be using keycodes for this for reliability. Also, the 100ms delay is required, otherwise Patapon (the game, not the emulator or the input layer) won't pick up on it
This commit is contained in:
26
autopon.py
26
autopon.py
@@ -6,8 +6,11 @@ import time
|
||||
def ydotool(key):
|
||||
subprocess.run([
|
||||
"ydotool",
|
||||
"type",
|
||||
str(key)
|
||||
"key",
|
||||
str(key) + ":1",
|
||||
str(key) + ":0",
|
||||
"--key-delay",
|
||||
"100"
|
||||
])
|
||||
|
||||
def main():
|
||||
@@ -37,10 +40,10 @@ def main():
|
||||
# A mapping of characters in our encoded songs to keys to send to ydotool
|
||||
# These should be the default bindings for PPSSPP
|
||||
keymapping = {
|
||||
"U": "s",
|
||||
"D": "z",
|
||||
"L": "a",
|
||||
"R": "x"
|
||||
"U": "31",
|
||||
"D": "44",
|
||||
"L": "30",
|
||||
"R": "45"
|
||||
}
|
||||
drummapping = {
|
||||
"U": '\033[32mCHAKA\033[0m',
|
||||
@@ -49,15 +52,20 @@ def main():
|
||||
"R": '\033[34mPON\033[0m'
|
||||
}
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Play a sequence of Patapon commands on repeat forever"
|
||||
description="Play a sequence of Patapon commands on repeat"
|
||||
)
|
||||
parser.add_argument('song',default="R-R-L-R-",nargs="+",choices=songs,help="The song to play. Defaults to Aria of Attack. When expressing a song, use eighth notes, dashes, and cardinal directions to designate the drums. For example, party would be \"L-R-D-U-\", and djinn would be \"D-DD-DD-\"")
|
||||
parser.add_argument('--bpm',type=int,default=120,help="The BPM of Patapon. Change if you're running the game at a higher speed")
|
||||
parser.add_argument('--bpm',type=float,default=1,help="Multiplier for the BPM. Change if you're running the game at a higher speed")
|
||||
parser.add_argument('--iterations',type=int,default=10000,help="Number of iterations of the sequence to run. Defaults to 10,000")
|
||||
args = parser.parse_args()
|
||||
|
||||
# Schedule out our beat interval
|
||||
beat_interval = 60 / (args.bpm * 2)
|
||||
# 120 Naiive, does not work
|
||||
# 119.905 Still fast
|
||||
# 119.900 Still fast
|
||||
# 119.890
|
||||
bpm_constant = 119.890
|
||||
beat_interval = 60 / (bpm_constsant * args.bpm * 2)
|
||||
print(f"Beat interval: {beat_interval}")
|
||||
|
||||
# Set up the environment
|
||||
|
Reference in New Issue
Block a user