Post subject: Nesmock releases
Former player
Joined: 3/11/2004
Posts: 336
I been converting fcm files to fmv for editing previous levels, but when I convert them back to fcm, the Replay input now shows "Recorded From: Savestate" instead of Reset, "ROM Checksum" shows all 0's and "Current ROM Sum" is now in red text. Will this be a problem when making the avi file? It runs just fine when I play it and it doesn't desync. Also, is FCM the preferred format now? Sorry if this has been gone over before, but I have been out of it for a while. [Edit: Thread title changed by Bisqwit a year later. Original title: "Question about nesmock"]
Former player
Joined: 3/19/2004
Posts: 710
Location: USA
FMVs do not support this extra data, and so it is discarded when converting FCM->FMV
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
SInce record from reset is the default option for recording, I think it should set it to From reset by default. And yes, FCM rules.
Former player
Joined: 3/11/2004
Posts: 336
Phil wrote:
And yes, FCM rules.
Yes, frame advance is too good. :) So creating movies for FCM files coverted from FMV files is no problem? I read that FCM has better sound and picture for movies, so I want the finished product to be in this format.
Active player (494)
Joined: 11/14/2004
Posts: 169
Location: Mirabel, Québec, Canada
If you keep a backup copy of the .fcm before converting and editing, you can probably copy the header over to restore the info (ROM checksum, start from reset, etc.) And I've always liked FCM over FMV myself, FCEU is the most accurate NES emulator I know of ... (edited: ... after Nintendulator)
Post subject: Re: Question about nesmock
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Sleepz wrote:
I been converting fcm files to fmv for editing previous levels, but when I convert them back to fcm, the Replay input now shows "Recorded From: Savestate" instead of Reset
Actually, nesmock makes them all "poweron"-based, not "reset"-based. Maybe FCEU shows a different interpretation in the "Replay input".
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
<Acmlm> C:\jf\Emu\Nes\FCEU>nesmock --help <Acmlm> nesmock v1.1.3 - Copyright (C) 1992,2004 Bisqwit (http://iki.fi/bisqwit/) <Acmlm> 1992? I am wondering myself, why 1992?
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Phil wrote:
<Acmlm> 1992? I am wondering myself, why 1992?
<Bisqwit> Acmlm: 1992 is a special year I stick to my (C) notices, and the PHP error is related to warning flags I enabled recently...
Player (206)
Joined: 5/29/2004
Posts: 5712
What's so special about it?
put yourself in my rocketpack if that poochie is one outrageous dude
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Bag of Magic Food wrote:
What's so special about it?
Nothing more than that it's when I first used /& programmed computers.
Post subject: New release: version 1.2.0
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I released a new Nesmock version. It now allows manually specifying some text and number fields that otherwise would be lost in the conversion.
$ nesmock --help
nesmock v1.2.0 - Copyright (C) 1992,2004 Bisqwit (http://iki.fi/bisqwit/)

Usage: nesmock [<options>] <inputfile> <outputfile>

Transforms NES movie files to different formats.
 --help, -h     This help
 --offset, -o   Insert delay at <frame>,<length>
                Example usage: -o 14501:1
                Delay length may also be negative, in which case
                existing frames are deleted instead of copied.
                Frame numbers are relative to the original movie.
                Short syntax -o 10 uses frame number 0 by default.
 --set, -s      Set <var>=<value>
                Note: All movie formats don't support all values
                      or may have length/type limitations.
                Available vars:
                      PAL         0 or 1
                      RecordCount 0..n
                      EmuName     string
                      MovieName   string
                      ROMName     string
                      MD5         string (can be a 32-char hex or a filename)
                      FCEUver     0..n (example: 9812 (=0.98.12))
                Example usage: -spal=0 -srom="Mario Bros.nes" -smd5=mario.nes
 --version, -V  Displays version information

Supported formats:
  FMV  (Famtasia 5.1)        - Read & Write
  FCM  (FCEU 0.98.12)        - Read & Write
  NMV  (Nintendulator 0.950) - Read & Write
  VMV  (VirtuaNES)           - Read

Example:
  nesmock -o2 smb1a.fcm smb1a.fmv
Example use:
$ nesmock -sfceuver=9812 -sromname="Chip 'n Dale Rescue Rangers (U) [!].nes"
          -smoviename="Chip'n Dale two-player tool-assisted speedrun; performed by Bisqwit alone"
          -smd5=chipdale.nes 1.fmv chipdale.fcm
Converts 1.fmv to chipdale.fcm, with the following settings: - rom name = Chip 'n Dale Rescue Rangers (U) [!].nes - movie name = Chip'n Dale two-player tool-assisted speedrun; performed by Bisqwit alone - md5sum = calculated from file chipdale.nes - fceu version = 0.98.12 Get it from: http://bisqwit.iki.fi/source/nesmock.html So... who will compile the Windows version? Because the command line support in Windows is somewhat unsane, certain strings can not be passed to nesmock in Windows version. Cygwin mends that problem, but what would mend the I-want-only-click-click people?
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Give some doc that tell how to compile it under Windows.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Phil wrote:
Give some doc that tell how to compile it under Windows.
1. Install mingw32 2. Compile: gcc -o nesmock.exe main.cc md5.cc -O3 Substitute "gcc" with the name of the gcc command in mingw32. Possibly, if you have cygwin installed, you can compile it with simply "make", but first you must add -mno-cygwin to CXXFLAGS in the Makefile.sets file. I think. I have tried neither way in Windows.
Active player (411)
Joined: 3/16/2004
Posts: 2623
Location: America, Québec
Under mingw, the method is wrong. Under Cygwn it was a success.
Former player
Joined: 8/12/2004
Posts: 651
Location: Alberta, Canada
Good that you finally got around to adding the set commands, now I don't need to hex edit all that information back in myself.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Windows version added.
Post subject: New release: version 1.4.0
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I released a new Nesmock version. It now allows copying a savestate from FCEU movie A to FCEU movie B.
$ nesmock --help
nesmock v1.4.0 - Copyright (C) 1992,2005 Bisqwit (http://iki.fi/bisqwit/)

Usage: nesmock [<options>] <inputfile> <outputfile>

Transforms NES movie files to different formats.
 --help, -h     This help
 --offset, -o   Insert delay at <frame>,<length>
                Example usage: -o 14501:1
                Delay length may also be negative, in which case
                existing frames are deleted instead of copied.
                Frame numbers are relative to the original movie.
                Short syntax -o 10 uses frame number 0 by default.
 --set, -s      Set <var>=<value>
                Note: All movie formats don't support all values
                      or may have length/type limitations.
                Available vars:
                      PAL         0 or 1
                      RecordCount 0..n
                      EmuName     string
                      MovieName   string
                      ROMName     string
                      MD5         string (can be a 32-char hex or a filename)
                      FCEUver     0..n (example: 9812 (=0.98.12))
                Example usage: -spal=0 -srom="Mario Bros.nes" -smd5=mario.nes
 --state, -t    Copy savestate from <file>
                Example: nesmock a.fmv a.fcm -t'orig.fcm'
                Will also make fcm files reset-based (default: poweron-based)
 --version, -V  Displays version information

Supported formats:
  FMV  (Famtasia 5.1)        - Read & Write
  FCM  (FCEU 0.98.12)        - Read & Write
  NMV  (Nintendulator 0.950) - Read & Write
  VMV  (VirtuaNES)           - Read

Example:
  nesmock -o2 smb1a.fcm smb1a.fmv
Example use:
$ nesmock long.fcm long.fmv
$ nesmock short.fcm short.fmv
$ dd if=long.fmv of=short.fmv conv=notrunv bs=1 skip=$[144+2000*2] seek=$[144+1900*2]
$ nesmock short.fmv -tlong.fcm newfile.fcm
Copy movie from "long.fcm" from frame 2000 into "short.fcm" at frame 1900. Leave originals unchanged, save into "newfile.fcm". Take savestate from "long.fcm". So... who will compile the Windows version? Note: Nesmock saves reset-based FCEU movies automatically as poweron-based. If a savestate is given, then it will make them reset-based instead. You can use this to mend desperate desync situations when your movie would otherwise not work after running nesmock.
Post subject: Re: New release: version 1.4.0
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Bisqwit wrote:
So... who will compile the Windows version?
Here: http://www.savefile.com/files/9227806
Post subject: Re: New release: version 1.4.0
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
nitsuja wrote:
Bisqwit wrote:
So... who will compile the Windows version?
Here:
Thank you! Added to the official page.
Post subject: New release: version 1.5.0
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I released a new Nesmock version. New feature: Allows removing / adding / copying controllers.
$ nesmock --help
nesmock v1.5.0 - Copyright (C) 1992,2006 Bisqwit (http://iki.fi/bisqwit/)

Usage: nesmock [<options>] <inputfile> <outputfile>

Transforms NES movie files to different formats.
 --help, -h     This help
 --offset, -o   Insert delay at <frame>,<length>
                Example usage: -o 14501:1
                Delay length may also be negative, in which case
                existing frames are deleted instead of copied.
                Frame numbers are relative to the original movie.
                Short syntax -o 10 uses frame number 0 by default.
 --set, -s      Set <var>=<value>
                Note: All movie formats don't support all values
                      or may have length/type limitations.
                Available vars:
                  PAL         0 or 1
                  RecordCount 0..n
                  EmuName     string
                  MovieName   string
                  ROMName     string
                  MD5         string (can be a 32-char hex or a filename)
                  FCEUver     0..n (example: 9812 (=0.98.12))
                Example usage: -spal=0 -srom="Mario Bros.nes" -smd5=mario.nes
 --state, -t    Copy savestate from <file>
                Example: nesmock a.fmv a.fcm -t'orig.fcm'
                Will also make fcm files reset-based (default: poweron-based)
 --ctrl, -c     Defines how to handle a controller. Examples:
                  -c2       = delete player 2 input
                  -c2+      = add second player (zero input)
                  -c21      = add second player (copy P1 input)
                  -c21 -c12 = swap players' 1 and 2 inputs
 --version, -V  Displays version information

Supported formats:
  FMV  (Famtasia 5.1)        - Read & Write
  FCM  (FCEU 0.98.12)        - Read & Write
  NMV  (Nintendulator 0.950) - Read & Write
  VMV  (VirtuaNES)           - Read

Example:
  nesmock -o2 smb1a.fcm smb1a.fmv
Example use:
$ nesmock rm2.fcm -trm2-orig.fcm -sfceuver=9812 -smd5=rockman2.nes -sromname='Rockman 2 - Dr Wily no Nazo (J).nes' -c2 tmp.fcm
Converts "rm2.fcm" into "tmp.fcm", copying on-reset-savestate from "rm2-orig.fcm", deletes player 2 input, and sets new FCEU version, ROM name, ROM checksum and FCEU version into the resulting file. Download it from: http://bisqwit.iki.fi/source/nesmock.html
Post subject: New release: version 1.7.0
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I released a new Nesmock version. New feature: FCEUX format support. (Zapper support still missing, though.)
$ nesmock --help
nesmock v1.7.1 - Copyright (C) 1992,2012 Bisqwit (http://iki.fi/bisqwit/)

Usage: nesmock [<options>] <inputfile> <outputfile>

Transforms NES movie files to different formats.
 --help, -h     This help
 --offset, -o   Insert delay at <frame>,<length>
                Example usage: -o 14501:1
                Delay length may also be negative, in which case
                existing frames are deleted instead of copied.
                Frame numbers are relative to the original movie.
                Short syntax -o 10 uses frame number 0 by default.
 --set, -s      Set <var>=<value>
                Note: All movie formats don't support all values
                      or may have length/type limitations.
                Available vars:
                  PAL         0 or 1
                  RecordCount 0..n
                  EmuName     string
                  MovieName   string
                  ROMName     string
                  MD5         string (can be a 32-char hex or a filename)
                  FCEUver     0..n (example: 9812 (=0.98.12))
                Example usage: -spal=0 -srom="Mario Bros.nes" -smd5=mario.nes
 --state, -t    Copy savestate from <file>
                Example: nesmock a.fmv a.fcm -t'orig.fcm'
                Will also make fcm files reset-based (default: poweron-based)
 --ctrl, -c     Defines how to handle a controller. Examples:
                  -c2       = delete player 2 input
                  -c2+      = add second player (zero input)
                  -c21      = add second player (copy P1 input)
                  -c21 -c12 = swap players' 1 and 2 inputs
 --version, -V  Displays version information

Supported formats:
  FMV  (Famtasia 5.1)        - Read & Write
  FCM  (FCEU 0.98.12)        - Read & Write
  NMV  (Nintendulator 0.950) - Read & Write
  VMV  (VirtuaNES)           - Read
  FM2  (FCEUX)               - Read & Write

Example:
  nesmock -o2 smb1a.fcm smb1a.fmv
Download it from: http://bisqwit.iki.fi/source/nesmock.html
Joined: 9/6/2005
Posts: 39
Location: Sweden
Hey, long time no see I guess. I was just trying to compile nesmock in Windows but I'm failing hard. That's because I'm not sure where in Makefile.sets I'm supposed to add -mno-cygwin. (I am not experienced at this at all) I tried adding it on the CXXFLAGS line but I get the error that -mno-cygwin is not supposed to be there. I tried adding it below on a new line, but that gives me a "missing separator" error. So, where in the file am I supposed to add -mno-cygwin? I can only guess that it's in this section:
# Flags.
CFLAGS=$(OPTIM) $(CCOPTS)
CXXFLAGS=$(OPTIM) $(CXXOPTS)
#-fno-rtti
But as nothing I've tried works, I'm at a loss. Please help! EDIT: I realised that you might wanna see the failed output too:
C:\...\nesmock>make
g++ -O2 -Wall -Wundef -Wcast-qual -Wpointer-arith -Wconversion -Wwrite-strings -Wsign-compare -Wredundant-decls -Winit-self -Wextra -Wcast-align -Wformat -Wno-unused -Wno-conversion -Woverloaded-virtual -std=c++0x -DVERSION=\"1.7.2\" -g -pipe -DUSE_PTHREADS=0 -DHASH_MAP=1  -c -o main.o main.cc
main.cc:452:21: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
                     "nesmock v"VERSION" - Copyright (C) 1992,2012 Bisqwit (http://iki.fi/bisqwit/)\n"
                     ^
In file included from main.cc:252:0:
famtasia.hh:63:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Load(const std::vector<unsigned char>& data)
              ^
famtasia.hh:67:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Write(std::vector<unsigned char>& data)
              ^
In file included from main.cc:254:0:
virtuanes.hh:125:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Write(std::vector<unsigned char>& data)
              ^
virtuanes.hh:248:10: warning: unused parameter 'data' [-Wunused-parameter]
     void Write(std::vector<unsigned char>& data)
          ^
In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\cmath:44:0,
                 from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\random:38,
                 from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stl_algo.h:65,
                 from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\algorithm:62,
                 from nintendulator.hh:1,
                 from main.cc:255:
c:\mingw\include\math.h: In function 'float hypotf(float, float)':
c:\mingw\include\math.h:635:30: error: '_hypot' was not declared in this scope
 { return (float)(_hypot (x, y)); }
                              ^
In file included from main.cc:255:0:
nintendulator.hh: At global scope:
nintendulator.hh:50:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Write(std::vector<unsigned char>& data)
              ^
In file included from main.cc:256:0:
nesticle.hh:9:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Load(const std::vector<unsigned char>& data)
              ^
nesticle.hh:13:14: warning: unused parameter 'data' [-Wunused-parameter]
         void Write(std::vector<unsigned char>& data)
              ^
nesticle.hh:19:10: warning: unused parameter 'data' [-Wunused-parameter]
     bool Load(const std::vector<unsigned char>& data)
          ^
nesticle.hh:24:10: warning: unused parameter 'data' [-Wunused-parameter]
     void Write(std::vector<unsigned char>& data)
          ^
In file included from main.cc:257:0:
fceux.hh: In function 'std::wstring FCEUX::BytesToString(const unsigned char*, const unsigned char*)':
fceux.hh:29:32: error: 'swprintf' is not a member of 'std'
             { wchar_t Buf[64]; std::swprintf(Buf,sizeof(Buf), L"%d", *begin); return Buf; }
                                ^
fceux.hh:31:32: error: 'swprintf' is not a member of 'std'
             { wchar_t Buf[64]; std::swprintf(Buf,sizeof(Buf), L"%d", R16(begin)); return Buf; }
                                ^
fceux.hh:33:32: error: 'swprintf' is not a member of 'std'
             { wchar_t Buf[64]; std::swprintf(Buf,sizeof(Buf), L"%d", R32(begin)); return Buf; }
                                ^
fceux.hh:47:13: warning: narrowing conversion of '((n > 1u) ? ((int)FCEUX::Base64Table.FCEUX::Base64Table::operator[](((size_t)(((((int)input[1]) & 15) << 2) | (((int)input[2]) >> 6))))) : 61)' from 'int' to 'wchar_t' inside { } [-Wnarrowing]
             };
             ^
fceux.hh:47:13: warning: narrowing conversion of '((n > 2u) ? ((int)FCEUX::Base64Table.FCEUX::Base64Table::operator[]((((size_t)input[2]) & 63u))) : 61)' from 'int' to 'wchar_t' inside { } [-Wnarrowing]
<builtin>: recipe for target 'main.o' failed
make: *** [main.o] Error 1

C:\...\nesmock>
The Dj Opposite Website - My Main music site | Dj Opposite on Newgrounds - My music, mostly Game Remakes.