Posts for nitsuja


Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
You'll want to use FCEU 0.98.16 and use memory watch on these addresses too. It will make your life a lot easier to know exactly how fast you're going and understand what makes the P-meter go up instead of guessing all the time. off topic: The post I just linked to is not at the top of its page. I wish more people would realize they can do this instead of linking to something several posts before the post they are talking about.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
AngerFist wrote:
Did you find that frame you really wanted to somehow find?
No, not yet.
MikeRS wrote:
Through 1-2, and copied nitsuja's 1-1 opening. I really don't like how 1-2 is played, especially the slow beginning.
Your WIP has a lot of problems: - The 1-1 opening you copied was a demonstration not aiming for speed. - The hammer bros movement costs you too much time on the map screen. - Your 1-2 was extremely slow, try the method I posted here instead. Also, I don't know why you're blaming not having a mushroom for not being able to go as fast as Genisto did.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
MikeRS wrote:
Ugh, is it possible to get a full P-meter after the first pipe in 1-2 as small Mario? He seems to lose speed faster than Super Mario when travelling up hill. :/
I haven't tested it on slopes, but I don't think small Mario is slower than Super Mario. But getting a full P-meter in 1-2 is a waste of time anyway.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
For most practical purposes they are game-specific, in that you usually can't expect to load a savestate in a different game and continue playing in any meaningful way, and the state of the ROM is arguably part of the emulated system you're intending to take a snapshot of even if isn't directly stored in the snapshot. Also, cartridge-based games often include their own additional hardware (especially NES and some SNES games), which must be represented in the savestates.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
FODA wrote:
- What if the character doesn't move 1 2 1 2 1 2 pixels, but 1 1 2 2 1 1 2 2 when walking? Is that forgivable? - What if the screen fades 2x faster on the emulator between each level? - What if the character jumps 1 pixel higher on the emulator?
Those sound like minor changes to the gameplay, but the mechanisms controlling those things are in such widespread use that an emulator can't selectively affect gameplay like that without breaking the majority of games in obvious ways. There might be ambiguity over where to draw the line, but those three examples don't illustrate it very well. ((However, there is opportunity for those sorts of things in less mature emulators for complicated systems (N64)... there, it's still unusal, but it does happen in a few games before the compatibility reaches a high enough level. We take what we can get, I guess.)) More realistic examples (that all happen in Snes9x 1.43) would be:
  • Games lag less than they should. This could change the gameplay in a probably-small way if it changes the randomization, or in a big way if events are synchronized to music running on a different processor.
  • Games load much faster and pause less between screens than they should. This sounds like your 2x speed screen fade example, but it's really a special case of having less lag, not a different number of non-lag frames.
  • Games exhibit graphical glitches such as missing transparency effects or discolorations. Although it doesn't change the gameplay at all, you could say it doesn't look like the real thing anymore.
  • This one falls solidly into the unacceptable-to-exploit category, but when a game is "tricked" into making illegal memory writes, instead of crashing the game it corrupts the emulator's own memory and causes strange undefined behavior. This explains the turn-into-golden-Rambi glitch in DKC2. (EDIT: more accurately, it happens during that glitch and might explain it or somewhat alter what it should do.)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
If I'm correct in assuming that the people updating the GB core of VBA on CVS have been making it more accurate rather than less accurate, yes. And that's not a baseless assumption. They seem to have gotten the memory map right (dealing with the echo RAM issue), and I saw several "oops, this was totally wrong before" moments in their new code, fixes for things that in retrospect were obviously mistakes.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
It's probably an inaccuracy in the previous timing. I wouldn't call it an emulation bug, just missing lag frames.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
EDIT: Since AKA submitted a TAS using v20, I guess he figured it out.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
If you move from a rope directly into a dropping gate, you'll go through the gate and can move an extra space in the air or zip up to the top of the gate, which lets you take a few shortcuts.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Hmmm, something that's supposed to deal with that is now missing in the GB update code, however, you can avoid the problem by setting frameskip=0 for GB games. (options > speed > frame skip > skip 0)
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
That's not why I stopped, and the first level is the least interesting one so it would only get less boring from there... To answer the poster's implied question, Snes9x 1.43 can't TAS mouse or superscope games. You should use Snes9x 1.51 for that.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Only a little (between 4% and 7% less distance depending on when you start measuring), but it could be enough to make a difference somewhere. It's not quite enough to get a full P-meter before having to jump over the goomba at the start of 1-1, unfortunately. EDIT: demonstration
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Chamale wrote:
In theory, if you press start on every single frame and it doesn't pause on some of those frames, it means that frame is lagging.
I can already see it lagging when Mario stays in the same place for two frames. Mostly it's that screen with the four koopas, especially when Mario jumps there, but the lag there is different depending on what happened earlier in the level. The clues I have left are:
  • falling through a block at full speed seems to give a slight boost forward, enough to save about a frame
  • the jump over the pirahna plant at the start could be faster by about a frame
  • scrolling the screen more seems to cause more lag
  • spending more time in the air might increase lag
  • covering up the P-meter sound effect with other sound effects might decrease lag
  • enemies seem to start in slightly different positions when the game lags
  • in theory I could let the P-meter go empty after getting the mushroom and reaching full speed, then use the same trick as in 1-2 to get to the goal without slowing down, but I didn't notice any lag frames after the mushroom
  • getting the mushroom optimally is extremely difficult and I think it must be possible to do better there. However, what I did there was somehow faster than what Genisto did, and I have not been able to repeat it.
  • jump height can controlled with extreme precision by releasing A before the height of the jump and then pressing A again within the next 4 or 5 frames, to jump higher than holding A for X frames and lower than holding A for X+1 frames.
  • Super Metroid style short-charge works in this game to charge the P-meter to full while moving a shorter distance than normal. But skidding sound effects might contribute to lag.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Here is the diff: vba_19.3_to_20.0.diff.zip Here is a complete list of files with differences:
/src/AutoBuild.h
/src/movie.cpp
/src/NLS.h
/src/gb/GB.cpp
/src/gb/GB.h
/src/gb/gbCheats.cpp
/src/gb/gbCheats.h
/src/gb/gbCodesCB.h
/src/gb/gbGfx.cpp
/src/gb/gbGlobals.cpp
/src/gb/gbGlobals.h
/src/gb/gbMemory.cpp
/src/gb/gbMemory.h
/src/gb/gbSGB.cpp
/src/gb/gbSound.cpp
/src/win32/DirectDraw.cpp
/src/win32/MainWndFile.cpp
/src/win32/VBA.cpp
All of that results from integrating the newer GB core code, except for the win32 changes which only do the following: - allow text to go into AVIs if the "text in image" option is on - ask for confirmation before clearing recent ROMs list
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
OK then, here's v20 (on the first post). The GB core is now up to date with CVS, which supposedly fixes the echo RAM bug and looks like it fixes several other bugs and timing issues. It broke the savestates pretty badly, so I patched that up quickly, but there could be some remaining bugs related to that or almost anything else (please report any you find). Neither movies nor savestates are backward-compatible for GB/SGB/GBC games (although it could be made to load old savestates again at some point in the future). I did not change the GBA core this time.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
I'd be glad to, but is that a no to both questions or just the first one?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
What about backward compatibility, do you guys want it to still be able to play movies that relied on that bug? What about all the other not-so-minor GB bugs that also have fixes available?
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Halamantariel wrote:
Hmm... sometimes it desyncs, sometimes it works.
I notice you have Volume Envelope Height Reading on, which is so likely to make playback unreliable that the emulator possibly shouldn't even allow anyone to start recording with it on.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
No, nobody caught that before, thanks.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
P.JBoy wrote:
You done it before. Besides, the code is already there, how hard can it be
No, it's not the same. Now that scores of changes are scattered throughout all of the code, I can't simply disable a little block of code when a box is checked to make it act like it did before. This would require so much effort that I would never consider wasting the time to do it. It is probably easier to attack the problem from the other side by adding non-WIP non-timing to Snes9x 1.43 instead of adding WIP timing to Snes9x 1.51.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Try asking here, where someone who knows something about Snes9x for Mac is more likely to see it.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
Yes, but to do that would mean putting most of Snes9x 1.43 WIP inside Snes9x 1.51+whatever, so it's not worth the large amount of effort required and extra bloat resulting from it.
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
zidanax wrote:
Is it just me, or is the music actually more "off" than 1.43?
I wrote:
It's more the other way around, and we've gotten used to the pitch of everything being slightly wrong. The sound still has some issues and has not yet received the complete revamping it could have used, but it's still noticeably better in a lot of games. (try the Star Ocean intro...)
I was wrong about the pitch, but luckily there is an option to put it back to the way it should be... set FixFrequency=FALSE in the [Sound] section of your snes9x.cfg file. When someone else added that option and left it on by default, I assumed that by "fix" they meant "make it better", not "make it worse so certain old LINUX sound cards can play it".
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
It was viewable without registering when TNSe posted it. Maybe it is not viewable now because the forum is having technical difficulties (it says {debug_msgs} at the bottom and claims every forum to be empty).
Emulator Coder, Experienced Forum User, Published Author, Skilled player (1301)
Joined: 12/21/2004
Posts: 2687
In other words, a histogram.