--- CONFIG ---
-- options are (case sensitive):
-- A, B, start, select, left, up, down, right
pattern1_first_button = "select"
pattern1_second_button = "left"
pattern2_first_button = "select"
pattern2_second_button = "up"
pattern3_first_button = "select"
pattern3_second_button = "right"
pattern4_first_button = "select"
pattern4_second_button = "down"
--- CODE ---
pattern1 = 3
pattern2 = 5
pattern3 = 7
pattern4 = 7
MAX = 4
current_pattern = pattern1
current_pattern_num = 1
change_flag = false
byte_write_val = 0
selection_cooldown = 0
waiting_flag = true
while true do
inputs = joypad.get(1)
-- emu.print(inputs)
selection_cooldown = selection_cooldown + 1
if inputs[pattern1_first_button] and inputs[pattern1_second_button] and selection_cooldown > 15 then
if pattern1 == 3 then
pattern1 = 5
elseif pattern1 == 5 then
pattern1 = 7
else
pattern1 = 3
end
selection_cooldown = 0
elseif inputs[pattern2_first_button] and inputs[pattern2_second_button] and selection_cooldown > 15 then
if pattern2 == 3 then
pattern2 = 5
elseif pattern2 == 5 then
pattern2 = 7
else
pattern2 = 3
end
selection_cooldown = 0
elseif inputs[pattern3_first_button] and inputs[pattern3_second_button] and selection_cooldown > 15 then
if pattern3 == 3 then
pattern3 = 5
elseif pattern3 == 5 then
pattern3 = 7
else
pattern3 = 3
end
selection_cooldown = 0
elseif inputs[pattern4_first_button] and inputs[pattern4_second_button] and selection_cooldown > 15 then
if pattern4 == 3 then
pattern4 = 5
elseif pattern4 == 5 then
pattern4 = 7
else
pattern4 = 3
end
selection_cooldown = 0
end
gui.text(120,9,"Pattern: "..pattern1..", "..pattern2..", "..pattern3..", "..pattern4)
gui.text(120,19,"Current pattern: #"..current_pattern_num.." ("..current_pattern..")")
waiting_flag = memory.readbyte(0x0458) == 0
if waiting_flag then
gui.text(120,29,"Waiting to start fight...")
fight_start = false
else
if fight_start == false then
current_pattern = pattern1
current_pattern_num = 1
change_flag = false
if current_pattern == 3 then
byte_write_val = 255
elseif current_pattern == 5 then
byte_write_val = 202
elseif current_pattern == 7 then
byte_write_val = 0
end
memory.writebyte(0x00E4, 0)
memory.writebyte(0x00E5, 255)
memory.writebyte(0x00E6, byte_write_val)
memory.writebyte(0x00E7, 0)
fight_start = true
end
wily_pattern_num = memory.readbyte(0x009b)
wily_pattern_change = false
if wily_pattern_num ~= 191 then
-- emu.print("Set wily_pattern_change")
wily_pattern_change = true
end
if wily_pattern_num == 191 then
change_flag = true
-- emu.print("Set change_flag")
end
if wily_pattern_change and change_flag then
emu.print("Change value")
if current_pattern_num == MAX then
current_pattern_num = 1
else
current_pattern_num = current_pattern_num + 1
end
if current_pattern_num == 1 then
current_pattern = pattern1
elseif current_pattern_num == 2 then
current_pattern = pattern2
elseif current_pattern_num == 3 then
current_pattern = pattern3
elseif current_pattern_num == 4 then
current_pattern = pattern4
end
if current_pattern == 3 then
byte_write_val = 255
elseif current_pattern == 5 then
byte_write_val = 202
elseif current_pattern == 7 then
byte_write_val = 0
end
-- set rng
-- emu.print("Unset change_flag")
change_flag = false
end
memory.writebyte(0x00E4, 0)
memory.writebyte(0x00E5, 255)
memory.writebyte(0x00E6, byte_write_val)
memory.writebyte(0x00E7, 0)
end
emu.frameadvance()
end
Comments