Posts for nitsuja


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
AKA wrote:
Although I thought Mushroom 2 was a little cheecky though. ... I did have question marks over Sandopolid one because you see to take a while trying to bypass the sand so you can go down and use the spring rope to shoot up onto a platform above the river, surely you could have used tails to do that quicker though.
I forgot to explain those in my submission comments. I've now edited them to answer those two questions. The short answers are: The start of Mushroom Hill 2 is a lot harder and slower when all of the loops and springs are broken, and I had already tried that in Sandopolis 1 and all it did was let me start waiting a little sooner at the next timed object.
JXQ wrote:
Nitsuja, any plans for Sonic 1?
No, not for the original version at least.
mikwuyma wrote:
What happened in Ice Cap zone?
First, standing on an ice block with Sonic while Tails hits it puts Sonic into this strange mode where he can walk on air and doesn't interact with slopes properly (this also happens in Flying Battery by getting a pull-down bar offscreen while the game thinks I'm still hanging from it, or by standing on the edge of the capsule boss when it explode, and I've seen the same thing happen in a couple of less-useful places in Sonic 2). Then, like in Carnival Night 1 and Marble Garden 2, I go to the left edge of the level, and the game forgets to do some boundary checking and teleports Sonic way out past the right end of the level. Icecap 1 is unusual because it loads the act 2 map before the end of act 1 without any boss or other event to mark the transition, so when the camera gets to that point, it puts Sonic at the start of the act 2 map. But it loads in parts while trying to keep running the game at full speed, and Sonic is further to the right than it expects, so I'm able to jump into an unloaded chunk of the level just before the tiles load and cover Sonic. From there, I hold right to zip left and reach the left edge of the act 2 map, which again moves Sonic to the right of the (now different) level, this time rescued by the act 2 boss fight forcing Sonic onscreen.
mike89 wrote:
Only one thing I didn't see, which I was hoping for: In Lava Reef 1 it's possible to, the first time you appear "outside", near where the lava is, fall into the floor with enough speed and emerge near the fire shield and 10 rings below.
Damn it, in an act 1 before an act 2 that is chock full of timed objects... I'll see if it can be spliced in somehow (I won't cancel or resubmit this though). EDIT: short answer: not easily splice-able. Long answer: this game is hex-edit friendly for different acts, but this change still affects over 90 seconds of gameplay, and that's a long time to record for in this game. It wouldn't take too long, but I need a break from TASing this game, and that change in Lava Reef 1 is not the only known improvement (others include Hydrocity 2, and possibly Flying Battery 1, Sandopolis 1 and 2, and Mushroom Hill 2.) Also, it doesn't seem like your description of how to do it is very accurate if I found what you meant (rather than running at a high speed, it required coming to a complete stop and moving slightly left on the sinking platform). EDIT: Yeah, I already found what he really meant minutes after seeing his next post, thanks though eredani.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Who said you have to swallow all 4 of them? It's possible to survive doing that, but you only need to get 1 or 2 of them to avoid taking damage there. Here is a quick demo of it. Also, you can press 3 to see through the water. EDIT: Maybe it would be better to wait until the next Snes9x is released, which fixes that transparency issue. The broken transparency in this game completely obscures a lot more things than I thought, which wouldn't look good in a published movie. EDIT2: If you're really set on continuing, I think it is possible to fix it in the emulator without breaking synchronization before encoding, but it would be nice to not need to do that...
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
xebra wrote:
I don't see how this is any more of a demo than the ALttP glitch run ...
I think that "Concept demos/Other" section really means "movies that would not normally be published on this site but have been granted an exception." Unlike the ALttP glitch run, this run doesn't reach an ending screen, which could be enough to qualify it as something that would not normally be published (although it reaches the screen that is supposed to come after the ending screen, so maybe that's close enough).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
mr_roberts_z wrote:
Would it be possible to use the Lobby Glitch to BLJ right into the WF painting, like with no "backwards running around"? Because if so, it would be faster than the door sequence.
You could cancel your momentum when you get there (with a punch or something) to jump into it normally. Also, I've been able to double-jump from that backwards running, keeping the momentum. It was much lower than a normal double jump, but high enough to clear a large stairstep in the room outside of TTC.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
With Coo, there's a trick that lets you move diagonally faster than you did in that test. Press B and sideways, then on the next frame press up or down (but not also sideways), then keep holding sideways (but not up or down) and pressing B every other frame. It's probably about 1.41 times faster than holding up+right or whatever directions the entire time. You should almost never be holding up or down except when you need to go straight down. It's still not faster to move diagonally instead of straight when you don't need to move diagonally. When using autofire, make sure the first press of the B button happens on the first possible frame that will move you, otherwise you could lose a frame whenever you start moving.
comicalflop wrote:
Can Gooey enter doors and therefore make both him, kriby and animals enter door too?
Yes, that's what happens.
comicalflop wrote:
Can he go off stage?
I think the only way to keep Gooey someplace off of the screen is to have him use the Rock ability, otherwise he will teleport to where Kirby is. And he can't move then, although he can enter doors even if they're far offscreen (which could save time if you ever need to backtrack to a door on a different screen in the same part of the level). I don't think you'll need to be splicing any input.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
comicalflop wrote:
If you look at Sami's DKC2 any% run in AVI, especially when Diddy is rolling/moving you can see that the AVI is slightly slower
I doubt the AVI is running significantly slower than the game does in the emulator at 100% speed. I think you would notice the sound being lower-pitched or skipping if it did. It is probably the AVI being blurrier, which looks different but isn't slower.
DeHackEd wrote:
Not the best way to implement reset recording (in fact I hate it).
What would be the best way?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I don't know if there's any tutorial on 2-player... conceptually it's the same as making a 1-player TAS except you have twice as many buttons to use. In the 2-player segments of the Kirby TAS I did, I found it helped to concentrate on whichever player needed to be doing the most complicated thing at the time, and using the "autohold" keys to make the other player move in the right direction and/or jump while I was doing that. That way it was more like making a 1-player run; you still have to check that both players are doing the right thing, but you don't always need to be controlling them both directly. I'm not sure how much 2 players would help in this particular game, but as long as it won't make it slower overall then it's probably better to use 2 players. EDIT: But if there's nowhere player 2 would help significantly, it's quite possible it would make it slower overall, because of extra pause effects.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Ersatz wrote:
As in watching someones previous TAS on a secondary monitor?
He said it tells you the "fastest way to beat the game". Most TAS's aren't the fastest way, any new discovery will prove a given one not to be. He meant... some magic crystal ball of TASing.
comicalflop wrote:
Just get close to a sprite, choose one frame that you want to go around it, and if you get hit, try one frame earlier. and again, keep going down/up one frame until you find the best possible frame to go around something without getting hit.
I think we all know that, but they're hoping for an easier way of doing it .
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
There are buttons called X, Y, Z, and Mode on a 6-button Genesis controller (in addition to A, B, C, Start, and the directional buttons). Isn't it no longer a virtual list if you populate the entire list?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Zurreco wrote:
Is there a tutorial/readme/something that explains how to get the mouse to work in snes9x?
In 1.502, you don't have to do anything besides start using your mouse. In 1.43 (including "snes9x-improvement" series), you have to choose Enable Mouse in the Input menu and then press 7. After loading a game that uses the mouse, obviously.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
The forums for the official version are here, maybe someone there will have a better idea of what's wrong. But there's no rerecording VBA for that OS and I've no idea how to compile even the official version for it.
FractalFusion wrote:
It seems that you tried using the official version. The official version has no GB/GBC support.
It doesn't? I believe it's had GB/SGB/GBC support since version 0.4.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I thought it wouldn't for you since you said that before, but it seemed to work for FabianX and Fabian (and maybe Highness). Have you already tried running snes9x.exe -restore? What about giving the ROM filename by commandline so you don't need to go through the open ROM dialog?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
If anyone needs a binary that will play this movie and should work in Wine, I updated the executable file here (temporary mirror). For anyone who compiles their source, the diff of source changes is in there as well, and only the first ~30 lines of the diff file are relevant to playback. EDIT: Definitely voting Yes. I knew whoever said this would make a boring movie had to be wrong.
Post subject: Re: Dream TAS tools
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
xoinx wrote:
The problem is that each game works differently, not only the memory addresses, but the way the maps are stored and stuff. So I guess its hard to program a feature that could do all these for every game :S With that said, nitsuja must have had a hell of a time with his sonic advance 2 run!
That was only for the Sonic Advance and Sonic Advance 3 runs. For Sonic Advance 2 I didn't even use a memory viewer or maps or anything like that. Making maps is different for each game, although the Sonic Advance games all use such similar engines that it was trivial to make (screenshot-based) maps for all three of them using almost the same code, and there are probably other games that are similar enough to do that.
adelikat wrote:
I want a multi-track recorder where I can record a set of button presses and then record over with another set without destroying the first. This could be used to luck manipulation and would greatly ease the making of 2-player movies. You could record player 1 for a short segment, switch to track 2, and record player 1's movements.
I did something like this for Sonic 2. I would have a hard time doing a 2-player run without it, now, because it makes it so much easier to be able to record the players individually without affecting the input data later in the movie of one or both players. It's simple for the emulator: there's a toggle for each player that, when on, causes the input data for that player to come from the active movie instead of from the buttons being pressed, even while recording. The main problems with it are that the segments would need to be very short if the players interact a lot, and it can only change previous input in the movie if the number of frames remains the same (overwrite, not insert or delete). And it forces you to eventually watch (or fast-forward through) everything after the change that you want to keep, but then again that could be a good thing because it means you will always notice if the change caused a desync.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
JXQ wrote:
I went to add in the movie properties but I couldn't find the link, I guess when none are defined I don't have permission to create them.
The "edit classes" link seems to be gone from all movie editing pages, not only that one.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I don't have the savestate, but I put the v17.1 re-recording version here (mirror).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
creaothceann wrote:
Mmmh, one thing that could break the conversion of older movies (assuming there's a need for that) is if the player pushed buttons when the game wasn't reading from the registers. This would then need manual fixing, I guess.
Couldn't the conversion still work by playing back with the old method while recording with the new one? Or are you saying pressing buttons at certain times can have effects other than the reading of those registers? Of course, it would have to be done in the older emulator because only that can play the movie based on frames without desync, and I have a feeling that most converted movies still won't play back properly in newer versions. But it's not a big deal if so because they wouldn't play back anyway and that's not the main purpose of doing this.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
FODA wrote:
Pressing "A" while with the wing cap doesn't do something visually obvious at first sight. So, if i press a button and it doesn't have any instantaneous effect, i assume it does nothing, unless i'm told otherwise.
That sounds like what happened when I first pressed "B" in Super Mario Bros. "Oh well, that button doesn't do anything..." (I know it's different.)
DK64_MASTER wrote:
Yeah, I don't recall running out of time with my wing cap while in the air.
I remember that happening, but I could be mistaken. For kicking bob-ombs, what kick are people talking about? Jump kick, slide kick, spin kick, all of those? What about ground pound? What about those chuckya enemies that you're supposed to grab like bob-ombs?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Hmm... I'll try it and see if it really solves any desync problems. If it does, it would be worth at least having an option for it. Do you know what registers are equivalent to those for peripherals?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
creaothceann wrote:
Btw. are there plans to record the values the game reads from the controller registers (4016h & 4017h iirc) instead of recording the current input of a frame?
There aren't plans to do that that I know of. And I think there would be something else to take into account besides when those two registers are read (autojoypad emulation? 0x4218 to 0x421f).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Lardarse wrote:
By comparison, how fast is running and spindashing?
They can't be compared, it's not that simple. Spindashing gives you a high speed and starts you rolling. Rolling gains speed on downhills but loses speed everywhere else, and it has a maximum speed cap. Running has no speed cap and doesn't lose speed except on uphills, but it's slow unless you're already going fast when you start running. Jumping slows you down a lot unless you hit a ceiling or jump on a steep downward slope, but it will switch you from rolling to running when you land. So, usually it is fastest to spindash and then jump at a ceiling or on a slope to start running, but not always.
upthorn wrote:
I would find this more acceptible if the trick with the signpost saved in-game time on CN1, but it doesn't, so I don't think I'll be using it.
Don't forget to check other (later) act 1's; it's possible that CN1 is not the only act that allows scrolling down after the boss.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
HHS wrote:
The subpixel positions are at $FFB012 and $FFB016, but Gens has an insect in dealing with cheat codes. Even address: xxyy works right and writes xxyy to that address. Even address : xx causes 00xx to be written at that address. Odd address : xxyy causes yy to be written at address-1 and xx to be written at address+2. Odd address : xx causes xx to be written at address-1 and 00 to be written at address+2.
I don't know which version of Gens you're talking about, as the re-recording one doesn't support cheat codes yet. Those do sound like bugs if you're describing it accurately, except perhaps writing xxyy to an odd address, which is a misaligned write and might end up having that effect because of endianness issues.
upthorn wrote:
coming out of the loop after the hand my speed is about 500 less
500 is too much of a difference. That means the different subpixel position caused the optimal jump frame(s?) to move, and so you were no longer jumping on the optimal frame. Hex editing probably won't work, but you should be able to keep most of the time gained by replaying from there until the end of the act. Also, your speed value while on the hand affects your speed coming out of it, in a weird way. Certain speeds cause you to come out slower. That's the only other thing I can think of that could have contributed.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
upthorn wrote:
PS: In Hydrocity 2, when i tried the four spindashes, I lost the time back, and then some, in the process of jumping onto the top of the loop with the water shield on it.
Compared to 3, or compared to what you had in your movie before? (I got to the same position 22 frames faster so I wouldn't think the subpixel position could be off enough to lose all of that later.)
upthorn wrote:
nitsuja wrote:
Icecap 1: At the very start, it's (~3 frames) faster to jump at the earliest frame that will have you already descending while leaving that tunnel at the start.
I couldn't find a way to do that. Maybe we have different criteria for defining "already descending". I was trying for something which had me descending and no-higher than the ledge.
You ran straight off of the edge, then waited until hitting the ground to spindash through the ice column. Because of that waiting time, it's faster if you are already falling from a jump instead of running off, even if your speed is lower. I believe the optimal frame to jump at was surrounded by frames where jumping would make something on the ceiling stop you.
nitsuja wrote:
I had so much trouble trying to stop so I could do that, that I gave it up as impossible. Since it isn't, I'll give it a shot.
I think you have to land at a sharp down-right angle moving fast enough to cancel most of the initial speed loss from hitting the slope. I was surprised that it was that much faster to do 2 jumps just to start the second one from higher on the slope, even when you had Super Knuckles climbing speed.
nitsuja wrote:
I could have sworn that I tried that, and couldn't hit him there no matter what I did.
Probably you didn't try non-full-power spindashes. Super Knuckles is too fast for full-power ones to reach that boss before hitting the edge of the screen.
upthorn wrote:
nitsuja wrote:
Icecap 2: Before the big ring ...
I tried that in my first testrun. ...
If a glitch prevents it, the second part of what I said is still applicable. That underwater jump to the big ring is slower than a single spindash from the left that passes through the ring.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
zefiris wrote:
Will it be possible to determine at what time particular peripheral input belongs without playing movie? Of will it be like in M64 movies?
Like M64, for peripheral input.
Maximus wrote:
Is backwards compatibility with < 1.5 SMVs planned?
No, because it's practically impossible. It could run a second executable when you open an older movie, but it'd be pointless because you can easily do that without going through a different version first.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
That and reset recording, which doesn't change anything in the header. The extra fields in the header for peripheral support will occur after fields from previous versions, so tools or other things that look at SMVs should work on the new version as well, except for the input of movies with peripherals. Mouse/superscope/justifier movies won't be easily editable by external tools or hex editors, because Snes9x checks that type of input in a different way (it can change in-between frames or not at all for several frames, so storing one set of input per frame in the movie would not work).