I seem to be TASing "just for fun" nowadays (OMG!) and I keep changing games like clothes, but maybe it's not a bad thing.
Here are ten levels done for Bugs Bunny in Crazy Castle 4:
http://dehacked.2y.net/microstorage.php/info/1049001384/Bugs%20Bunny%20in%20Crazy%20Castle%204%20-%20WIP.vbm
(I'm not gonna record more until Will Mallia finishes his awesome maps at vgmaps.com. The maps just help SO much in planning the routes.)
Tricks:
- Wobble climbing to ascend ladders faster.
- Ladder grab boosting while walking past ladders.
- Avoiding damage with the short invulnerability period after exiting rooms.
AND...
A handy Lua script:
while true do
local inp = input.get()
-- Only 1/3 frames accept input,
-- so let's use capslock to toggle "triple frame advance mode".
-- While capslock is on, your pause button is used as frame advance.
-- (For advancing only 1 frame, you can still use your normal frame advance key.)
if inp.capslock and vba.lagged() then
vba.pause()
end
-- Minimap script, that shows enemies etc.:
vba.registerbefore( function ()
-- Play area size is used as minimap box size:
bx = memory.readword(0x0000c944)
by = memory.readword(0x0000c946)
gui.drawbox(0, 0, bx/8+20, by/8+17, 0x55555590, "black")
-- Player position:
px = memory.readword(0x0000d010)
py = memory.readword(0x0000d014)
gui.pixel(px/8, py/8, "white")
-- Sometimes it is useful to walk a few extra steps to reset/unload distant off-screen enemies.
-- These lines show approximately the distance at which enemies reset:
sx = memory.readword(0x0000c940)
sy = memory.readword(0x0000c942)
gui.drawline((sx-168)/8, 1, (sx-168)/8, by/8+16, 0x00ff00ff)
if (sx+336)/8 < bx/8+20 then
gui.drawline((sx+336)/8, 1, (sx+336)/8, by/8+16, 0x00ff00ff)
end
-- Enemy positions:
start = 0x0000d050
for k=0,8,1 do
ex=memory.readword(64*k+start)
ey=memory.readword(64*k+start+4)
gui.pixel(ex/8, ey/8, "red")
end
end)
-- "Item room macro" is activated with keyboard key "X".
-- This macro is invaluable as there are about 600 rooms that need to be entered during a full run.
-- Hold "X" and unpause before you would enter an item room.
-- (Capslock needs to be off.)
-- Sometimes there are lag frames,
-- so if the most common "X" desynchs, try "C", "V" or "B" instead.
if inp.X then walkright = 55
elseif inp.C then walkright = 54
elseif inp.V then walkright = 56
elseif inp.B then walkright = 57
end
if inp.X
or inp.C
or inp.V
or inp.B
then
-- Enter room.
joypad.set(1,{up=1})
vba.frameadvance()
-- Walk left to the chest.
for i = 1,264,1 do
joypad.set(1,{left=1})
vba.frameadvance()
end
-- Wait for item to spawn.
for i = 1,6,1 do
vba.frameadvance()
end
-- Walk right to the exit.
for i = 1,walkright,1 do
joypad.set(1,{right=1})
vba.frameadvance()
end
-- Exit room.
joypad.set(1,{up=1})
vba.frameadvance()
-- Wait.
for i = 1,133,1 do
vba.frameadvance()
end
vba.pause()
end
-- "Variable lenght climb macros" are activated with numpad keys 0-9.
-- However, it is often easier and more reliable to climb manually.
-- So, I don't recommend using these, but I'll post them here anyway:
if inp.numpad0 then laddersize = 2
elseif inp.numpad1 then laddersize = 3
elseif inp.numpad2 then laddersize = 4
elseif inp.numpad3 then laddersize = 5
elseif inp.numpad4 then laddersize = 6
elseif inp.numpad5 then laddersize = 7
elseif inp.numpad6 then laddersize = 8
elseif inp.numpad7 then laddersize = 9
elseif inp.numpad8 then laddersize = 10
elseif inp.numpad9 then laddersize = 11
end
if inp.numpad0
or inp.numpad1
or inp.numpad2
or inp.numpad3
or inp.numpad4
or inp.numpad5
or inp.numpad6
or inp.numpad7
or inp.numpad8
or inp.numpad9
then
-- Wobble climb:
for i = 1,laddersize,1 do
joypad.set(1,{up=1})
vba.frameadvance()
vba.frameadvance()
vba.frameadvance()
joypad.set(1,{right=1})
vba.frameadvance()
vba.frameadvance()
vba.frameadvance()
end
end
vba.frameadvance()
end
Even if you aren't interested in the game, I'd be interested, if you have ideas on how to improve the code, thanks.
Also, if you
know anything interesting about this game, please let me know.
The game is 100% hex-edit friendly, so if you feel like recording a level or two, please go ahead! With these tools, it is lots of fun.