Posts for UraniumAnchor

Experienced Forum User
Joined: 4/2/2008
Posts: 70
You still have to do the 'backwards door' glitch to skip level 4, but 29 minutes (estimate) vs 4 is still a pretty big jump. Treat it like the Pulseman videos? Heavy glitch vs moderate glitch?
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Twisted Eye wrote:
Given the new techniques and such, it could be probably be improved by more than a couple minutes easily--I have an old WIP that gets to the first boss a few seconds faster already, and that's before the boss-related glitches start to dismantle the graphics again, all in the name of dying at a better time to save frames later.
Once you add in skipping the key gate and getting down into the depths of level 5 without needing the tank, I would be surprised if you couldn't get the U version under half an hour. I've killed the two level 8 bosses faster in real time than the old TAS just because leaning on the grenade button is a bad idea. By the way, I've been hacking apart the collision and movement routines lately (including wall ejection) so I might be able to offer some tips if you end up working on the U version again.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Twisted Eye wrote:
Oh did you make those? Nice, sorry about that, I thought they were just linked from somewhere else. Into the thanks section you go!
Yeah, I wrote a map editor for this game about five years ago, and one of the first features I added to it, before it was even an editor, was a map dumper. Some jackass on one of those random VG maps sites stole them, edited out parts of them, and slapped his name on them. Made me a little upset when I found those. http://bck.sf.net/ if you want to take a look.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
My maps helped, don't even pretend otherwise. ;)
Experienced Forum User
Joined: 4/2/2008
Posts: 70
DrJones wrote:
Awesome, but having played the Amiga port, the genesis version looks horrible. :(
Definitely agreed. This was one of my first Amiga games ever (Simcity being the other) so it holds a special place in my heart. Good run, bad port. http://www.youtube.com/watch?v=iENsnbU651U -- how you're supposed to experience this game ;)
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I'm not sure you understand how the glitch works. Maybe I don't either but judging from what I saw in the video... The reason it works in level 1 is because you can wedge yourself in that transition section and it shoots you straight up and loops it around to level 2. The door glitch offsets your 'real' position by 1 horizontal tile compared to the 'visual' position. Pausing resets your 'real' position to your 'visual' position. If you can point out any part of those maps where you can wedge yourself in the wall with the door glitch and trace a line straight up without the wall being interrupted that would let you get to level 8 or 3, but nothing jumps out at me. And he means the purple blocks in the last tank room. You need crusher for those. I don't think it's possible to glitch over there.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Maybe you figured this out already, but you don't need the tank to get to the 5th boss. So you can still die in 3, 5, and 7 for shortcuts, saving the last one for getting back on the right side of the key gate.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Twisted Eye wrote:
Problem is that, if you look at the exact room where the door to Area 8 is, you'll find you couldn't even make it over to the door as Jason even if you glitch the wall. So at this point, going to Area 6 is still necessary to get to Area 7, which is still necessary to get to 8.
My thinking was 'offset the map enough, stand on the doorway, jump, and then reset the map'. I don't think you could glitch it that far even if the map gave you that opportunity, sadly.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Copy-paste again There's a one-frame window where you can jump after coming out of a door (glitched or not) and you end up one block short of where you need to be, in this case. Instead, you fall go splat. Sucks, because I bet you could get over to Level 8 otherwise. Maybe there's some way to extend the jump.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
As far as I can tell you can only glitch through doors horizontally. I already tried glitching to the right to get to the level 8 door, but you're one block short of being able to do so and still be in a safe place. Also if you glitch too far the game seems to get even more confused and you'll frequently get lodged in a wall. Also, what happens if you get Wall2 without Wall1? Does that even work? Does the game treat you as having both? Actually, I can check by activating the level select that's hidden in the code... Edit: Wall1 won't activate if you don't have both. I just skipped to the level 7 boss with the debug mode and after picking it up I still couldn't drive on walls, and I drove off corners like you normally do, instead of when you pick up both. It's amazing how much you can break this game and you still have to do things in the right order.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I was messing around with this in level 5 because I think it might be possible to skip level 5 with this door glitch as well. However, this was as far as I managed to get before the game would bug out on me. Copy-paste this link for a screenshot Also, here are some maps you may find helpful. The game loops both vertically and horizontally.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I watched this and the any% run side by side just for the hell of it. I tend to prefer runs like this that go get optional things (if there's a good reason for it anyway) so I voted this a little higher. As a side note what exactly is your forum pic supposed to be, jaysmad? Robotic metroid?
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I love movies that have super fast bouncing around like this but goddamn that noise drove me nuts. 8/9.
Post subject: Interesting Warping Glitch in SNES Prince of Persia
Experienced Forum User
Joined: 4/2/2008
Posts: 70
So I was screwing around in real time and I just happened to trigger a weird glitch... You have to hit 'game end' a few frames before you both transition a screen and die, and so far I can only get it to work in this one spot. I really have no idea what's happening here but if somebody could figure it out it could make for an interesting 'glitched' run. http://www.uranium-anchor.com/speed/popbug.smv (US version) http://www.viddler.com/explore/UraniumAnchor/videos/26/ The first time I did it (unfortunately I was not recording) I also maxed out my health, so there's some degree of 'randomness' to it, but I can't figure out what specifically. Adding more frames didn't seem to do it, so I'm not sure. Seems to be some kind of memory corruption because other places can make the game completely lock up.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
You know I was just about to post that. If you don't have a ROM loaded and you try to enter in an address to memory watch, it crashes.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Jump Prediction You may have to copy-paste. I can't get referring blocking working properly with this site. Doesn't actually make any decisions yet, but it's a step.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Slightly updated script to be a little more robust about savestates, now it has a rolling buffer so it can rewind further if it keeps dying. There's a failsafe at the beginning of the level, but I have yet to see it get that far. It manages to get to 4-4 before getting permanently stuck for obvious reasons. Not sure how to easily solve that without some special-case coding. See here
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Well, the "has mario stopped" logic in that script I did just checks for X velocity below a certain threshold, I originally had it set at 4 but it would get stuck in that one part in 1-2 because apparently Mario moves at 5 for certain frames when he's pushing into a wall. I added the toad flag and now the script gets to at least 2-3 (probably further but that's as far as I let it go). I added in some logic for whirlpools that turbo-fires A, but that could probably be adjusted to not be quite so frantic. See here This script still has massive trouble with that coin ledge in 1-2 but at least it can't get itself permanently stuck.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Yeah, when Mario stops it thinks he got stuck and rewinds. I'll have to find the flag that indicates "hey we're doing the toad sequence". My version managed to make it to 1-4 overnight and when I woke up it was stuck on that exact spot, hah. Edit: Also, that link is geborken.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Beware, there's plenty of things in here I'm sure could be done more elegantly, but I was mostly experimenting.
local buttons = { B = 1, right = 1 }
local safer = savestate.create(5)
local risky = savestate.create(6)
local temp = savestate.create()
savestate.save(safer)
savestate.save(risky)

local frames_alive = 0
local frames_stopped = 0
local lastbutton = 0
local endinglevel = false

--start movie recording to random filename, set speed to maximum
FCEU.speedmode("turbo")
while true do
    joypad.set(1, buttons)
    local mariostate =  memory.readbyte(0x000E)
    local abyssstate =  memory.readbyte(0x07B1)
	local marioxspeed = memory.readbyte(0x57)
	local marioyspeed = memory.readbyte(0x9F)
	local changetimer = memory.readbyte(0x06DE)
	local altcontrol  = memory.readbyte(0x0752)
	local screenflag  = memory.readbyte(0x0774)
	local screentimer = memory.readbyte(0x07A0)
	local demotimer =   memory.readbyte(0x07A2)
	local flagsound =   memory.readbyte(0x0713)
	gui.text(0, 0, "alive: " .. frames_alive .." stopped: " .. frames_stopped);
    gui.text(0, 8, "xs: " .. marioxspeed .. " st: " .. screentimer .. " ct: " .. changetimer .. " ac: " .. altcontrol .. " sf: " .. screenflag);
	
	if flagsound > 0 then
		endinglevel = true
	end
	
	if screentimer > 0 then
		endinglevel = false
	end 
	
    --if mario dies, reload.
    if mariostate == 0x06 or mariostate == 0x0B or abyssstate == 1 or frames_stopped > 40 then
        if math.random(0, 10) == 1 then
            savestate.load(safer)
            frames_alive = 0
        else
            savestate.load(risky)
            frames_alive = 60
        end
		frames_stopped = 0
        --compare input to previous inputs, dump results into a buttons table
    end

    frames_alive = frames_alive + 1
    if frames_alive == 60 then
        savestate.save(risky)
    elseif frames_alive == 180 then
        savestate.save(temp)
        savestate.load(risky)
        savestate.save(safer)
        savestate.load(temp)
        frames_alive = 0
    end

	if marioxspeed < 8 and screentimer == 0 and changetimer == 0 and altcontrol == 0 and screenflag == 0 and not endinglevel then
		frames_stopped = frames_stopped + 1
	else 
		frames_stopped = 0
	end
	
	--TODO: pseudo-randomize input, weighted according to previous attempts, try to jump if we're against a wall
    --but for now, just jump up and down like an idiot
    resetbuttons = math.random(0,20)
	
	if frames_stopped > 0 then
		if lastbutton > 4 and marioyspeed == 0 then
			lastbutton = 0
			buttons.A = nil
		else
			lastbutton = lastbutton + 1
			buttons.A = 1
		end
	elseif resetbuttons == 1 and marioxspeed > 4 then
        buttons.A = math.random(0,2)
        if buttons.A == 0 then buttons.A = nil end
    end

	if demotimer > 0 and math.random(0,1) == 1 then
		buttons.start = 1
		buttons.right = nil
		buttons.B = nil
		buttons.A = nil
	else
		buttons.start = nil
		buttons.right = 1
		buttons.B = 1
	end
	
    --incrementally save every N frames
    --detect instant death
    --detect end of level, drop out of warp
    FCEU.frameadvance()
end
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I modified that example script for smb a bit and tried to use it. It seems to play just fine but recording a movie with it makes it desync very, very quickly. I managed to get it to get halfway through 1-3, but when I tried to play the movie back it dies on the first goomba. Any ideas?
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Man, every time I find a new Amiga->Genesis port it makes me die a little inside. This game was better on the Amiga. :( The time has come for Amiga TASing.
Post subject: Legend of Galahad (Leander)
Experienced Forum User
Joined: 4/2/2008
Posts: 70
I've been working on a run of this the last few days. I had some levels complete but I wanted to hold off until I got to 1-4, because it contains the earliest opportunity to get the Tempest Sword, which in this version of the game is bugged to hell and back and lets you do all kinds of fun tricks.
  • Move at double your walking speed (horizontal only)
  • Pass through enemies undamaged (bug)
  • Hover across gaps (bug)
  • Phase through walls (bug)
  • Kill enemies FAST (bug) (sword does increased damage while spinning, not sure exactly how much more, but bosses later in the game die in about two hits)
The acceleration in this game makes it annoying to control. It takes a whopping 22 frames to turn around if you were going at full speed. Nonetheless, I feel like I've optimized most of the jumps, though I will of course be experimenting on some of the less sure ones. The graphics during the spin move seem to be a problem with the cart itself, every version of the ROM I've tried exhibits the same behavior with every emulator I've tried it with. I could always spend $8 on Ebay and verify, so maybe I'll do that later. There's a few other notes, but they're mostly details and can wait until later. Video so far Workbench Play with Legend of Galahad, The (U) [!].bin.
Experienced Forum User
Joined: 4/2/2008
Posts: 70
Oh and complaining about having to redo a section of a level because it's a 'throwback to arcades' or whatever nonsense he was saying is just... missing the point entirely. I suppose next he'll want savestates built into every game anywhere ever. Then again I'm the kind of person who will subject himself to a challenge that takes an hour per attempt where one death means you have to start completely over. "If you don't want to replay a section, don't suck at the one right after."
Experienced Forum User
Joined: 4/2/2008
Posts: 70
That's a fair point though I'd argue that people are too used to FPSes where you can circle strafe at full speed. It makes for some fun maneuvering but in a case like RE4 limiting your movement while firing makes it so you have to be a bit more tactical about where and when you fire. Now if they were touting RE4 as an FPS, I'd be agreeing with you.