Index: apps/metadata.c
===================================================================
RCS file: /cvsroot/rockbox/apps/metadata.c,v
retrieving revision 1.51
diff -u -r1.51 metadata.c
--- apps/metadata.c	25 Sep 2006 16:13:04 -0000	1.51
+++ apps/metadata.c	6 Oct 2006 03:17:40 -0000
@@ -83,6 +83,7 @@
     { AFMT_AIFF,          "aiff" },
     { AFMT_SID,           "sid"  },
     { AFMT_ADX,           "adx"  },
+    { AFMT_NSF,           "nsf"  },
 #endif
 };
 
@@ -1750,6 +1751,19 @@
         }
 
         break;
+
+    case AFMT_NSF:
+        buf = track->id3.path;
+	if ((lseek(fd, 0, SEEK_SET) < 0)
+	    || ((read(fd, buf, 0x38)) < 0x38))
+	{
+	    DEBUGF("lseek or read failed\n");
+    	    return false;
+	}
+	track->id3.vbr = false;
+	track->id3.filesize = filesize(fd);
+        track->id3.length = buf[6]*1000;
+	break;
 #endif /* CONFIG_CODEC == SWCODEC */
 
     case AFMT_AIFF:
Index: apps/tree.c
===================================================================
RCS file: /cvsroot/rockbox/apps/tree.c,v
retrieving revision 1.448
diff -u -r1.448 tree.c
--- apps/tree.c	4 Oct 2006 20:12:51 -0000	1.448
+++ apps/tree.c	6 Oct 2006 03:17:41 -0000
@@ -105,6 +105,7 @@
     { "aiff",TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
     { "sid", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
     { "adx", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
+    { "nsf", TREE_ATTR_MPA, Icon_Audio, VOICE_EXT_MPA },
 #endif
     { "m3u", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
     { "m3u8", TREE_ATTR_M3U, Icon_Playlist, LANG_PLAYLIST },
Index: apps/codecs/Makefile
===================================================================
RCS file: /cvsroot/rockbox/apps/codecs/Makefile,v
retrieving revision 1.38
diff -u -r1.38 Makefile
--- apps/codecs/Makefile	29 Sep 2006 20:04:35 -0000	1.38
+++ apps/codecs/Makefile	6 Oct 2006 03:17:41 -0000
@@ -17,7 +17,7 @@
 endif
 
 ifdef SOFTWARECODECS
-   CODECLIBS = -lmad -la52 -lffmpegFLAC -lTremor -lwavpack -lmusepack -lalac -lfaad -lm4a
+   CODECLIBS = -lmad -la52 -lffmpegFLAC -lTremor -lNotSo -lwavpack -lmusepack -lalac -lfaad -lm4a
 endif
 
 # we "borrow" the plugin LDS file
@@ -39,7 +39,7 @@
 
 CODECDEPS = $(LINKCODEC) $(BUILDDIR)/libcodec.a
 
-.PHONY: libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a
+.PHONY: libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a
 
 OUTPUT = $(SOFTWARECODECS)
 
@@ -51,6 +51,7 @@
 $(OBJDIR)/wav.elf : $(OBJDIR)/wav.o
 $(OBJDIR)/sid.elf : $(OBJDIR)/sid.o
 $(OBJDIR)/adx.elf : $(OBJDIR)/adx.o
+$(OBJDIR)/nsf.elf : $(OBJDIR)/nsf.o $(BUILDDIR)/libNotSo.a
 $(OBJDIR)/aiff.elf : $(OBJDIR)/aiff.o
 $(OBJDIR)/mpa.elf : $(OBJDIR)/mpa.o $(BUILDDIR)/libmad.a
 $(OBJDIR)/a52.elf : $(OBJDIR)/a52.o $(BUILDDIR)/liba52.a
@@ -168,6 +169,13 @@
 	$(SILENT)mkdir -p $(OBJDIR)/Tremor
 	$(SILENT)$(MAKE) -C Tremor OBJDIR=$(OBJDIR)/Tremor OUTPUT=$(BUILDDIR)/libTremor.a
 
+$(BUILDDIR)/libNotSo.a: libNotSo
+
+libNotSo:
+	@echo "MAKE in NotSo"
+	$(SILENT)mkdir -p $(OBJDIR)/NotSo
+	$(SILENT)$(MAKE) -C NotSo OBJDIR=$(OBJDIR)/NotSo OUTPUT=$(BUILDDIR)/libNotSo.a
+
 $(BUILDDIR)/libwavpack.a: libwavpack
 
 libwavpack:
@@ -210,11 +218,12 @@
 
 clean:
 	@echo "cleaning codecs"
-	$(SILENT)rm -fr $(OBJDIR)/libmad $(BUILDDIR)/libmad.a $(OBJDIR)/liba52 $(BUILDDIR)/liba52.a $(OBJDIR)/libffmpegFLAC $(BUILDDIR)/libffmpegFLAC.a $(OBJDIR)/Tremor $(BUILDDIR)/libTremor.a $(OBJDIR)/libwavpack $(BUILDDIR)/libwavpack.a $(OBJDIR)/dumb $(BUILDDIR)/libdumb.a $(BUILDDIR)/libdumbd.a $(OBJDIR)/libmusepack $(BUILDDIR)/libmusepack.a $(OBJDIR)/libalac $(BUILDDIR)/libalac.a $(OBJDIR)/libfaad $(BUILDDIR)/libfaad.a $(OBJDIR)/libm4a $(BUILDDIR)/libm4a.a
+	$(SILENT)rm -fr $(OBJDIR)/libmad $(BUILDDIR)/libmad.a $(OBJDIR)/liba52 $(BUILDDIR)/liba52.a $(OBJDIR)/libffmpegFLAC $(BUILDDIR)/libffmpegFLAC.a $(OBJDIR)/Tremor $(BUILDDIR)/libTremor.a $(OBJDIR)/NotSo $(BUILDDIR)/libNotSo.a $(OBJDIR)/libwavpack $(BUILDDIR)/libwavpack.a $(OBJDIR)/dumb $(BUILDDIR)/libdumb.a $(BUILDDIR)/libdumbd.a $(OBJDIR)/libmusepack $(BUILDDIR)/libmusepack.a $(OBJDIR)/libalac $(BUILDDIR)/libalac.a $(OBJDIR)/libfaad $(BUILDDIR)/libfaad.a $(OBJDIR)/libm4a $(BUILDDIR)/libm4a.a
 	$(SILENT)$(MAKE) -C libmad clean OBJDIR=$(OBJDIR)/libmad
 	$(SILENT)$(MAKE) -C liba52 clean OBJDIR=$(OBJDIR)/liba52
 	$(SILENT)$(MAKE) -C libffmpegFLAC clean OBJDIR=$(OBJDIR)/libffmpegFLAC
 	$(SILENT)$(MAKE) -C Tremor clean OBJDIR=$(OBJDIR)/Tremor
+	$(SILENT)$(MAKE) -C NotSo clean OBJDIR=$(OBJDIR)/NotSo
 	$(SILENT)$(MAKE) -C libwavpack clean OBJDIR=$(OBJDIR)/libwavpack
 	$(SILENT)$(MAKE) -C libmusepack clean OBJDIR=$(OBJDIR)/libmusepack
 	$(SILENT)$(MAKE) -C libalac clean OBJDIR=$(OBJDIR)/libalac
Index: apps/codecs/SOURCES
===================================================================
RCS file: /cvsroot/rockbox/apps/codecs/SOURCES,v
retrieving revision 1.11
diff -u -r1.11 SOURCES
--- apps/codecs/SOURCES	25 Sep 2006 16:13:05 -0000	1.11
+++ apps/codecs/SOURCES	6 Oct 2006 03:17:41 -0000
@@ -15,6 +15,7 @@
 aiff.c
 sid.c
 adx.c
+nsf.c
 #if defined(HAVE_RECORDING) && !defined(SIMULATOR)
 /* encoders */
 mp3_enc.c
Index: apps/codecs/nsf.c
===================================================================
RCS file: apps/codecs/nsf.c
diff -N apps/codecs/nsf.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ apps/codecs/nsf.c	6 Oct 2006 03:17:42 -0000
@@ -0,0 +1,166 @@
+/***************************************************************************
+ *             __________               __   ___.
+ *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
+ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
+ *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
+ *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
+ *                     \/            \/     \/    \/            \/
+ *
+ * Copyright (C) 2006 Adam Gashlin (hcs)
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#include "codeclib.h"
+#include "inttypes.h"
+#include "NotSo/nsf_types.h"
+#include "NotSo/NSF_Core.h"
+#include "NotSo/NSF_File.h"
+
+CODEC_HEADER
+
+struct codec_api *rb;
+
+/* Maximum number of bytes to process in one iteration */
+#define WAV_CHUNK_SIZE (1024*2)
+
+static int16_t samples[WAV_CHUNK_SIZE] IBSS_ATTR;
+
+int fdoutfile;
+#ifdef USEC_TIMER
+int64_t total_time, total_start;
+int64_t cpu_time, cpu_start;
+int64_t apu_time, apu_start;
+int64_t doticks_time, doticks_start;
+#endif
+
+void set_codec_track(int t) {
+    SetTrack(t);
+    
+    nSilenceTrackMS=5000;
+    SetFadeTime(60*2*1000,60*2*1000+2*1000, fNSFPlaybackSpeed,0);
+}
+
+/* this is the codec entry point */
+enum codec_status codec_start(struct codec_api *api)
+{
+    struct codec_api *ci;
+    int written;
+    uint8_t *buf;
+    size_t n;
+    int endofstream; /* end of stream flag */
+    int track;
+
+    /* Generic codec initialisation */
+    rb = api;
+    ci = api;
+    
+    /* we only render 16 bits */
+    ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)16);
+    ci->configure(DSP_DITHER, (bool *)false);
+
+    ci->configure(DSP_SET_FREQUENCY, (long*)44100);
+    ci->configure(DSP_SET_STEREO_MODE, (long *)STEREO_MONO);
+    
+
+  
+next_track:
+    DEBUGF("NSF: next_track\n");
+    if (codec_init(api)) {
+        return CODEC_ERROR;
+    }
+    DEBUGF("NSF: after init\n");
+    
+    if(!NSFCore_Initialize()) {DEBUGF("NSF: NSFCore_Initialize failed\n"); return CODEC_ERROR;}
+
+    /* wait for track info to load */
+    while (!*ci->taginfo_ready && !ci->stop_codec)
+        ci->sleep(1);
+        
+    /* Read the entire file */
+    DEBUGF("NSF: request file\n");
+    ci->seek_buffer(0);
+    buf = ci->request_buffer(&n, ci->filesize);
+    if (!buf || n < (size_t)ci->filesize) {
+        DEBUGF("NSF: file load failed\n");
+        return CODEC_ERROR;
+    }
+    
+    if(LoadFile(buf)) {DEBUGF("NSF: LoadFile failed\n"); return CODEC_ERROR;}
+    if(!SetPlaybackOptions(44100,1)) {DEBUGF("NSF: SetPlaybackOptions failed\n"); return CODEC_ERROR;}
+    if(!LoadNSF(ci->filesize)) {DEBUGF("NSF: LoadNSF failed\n"); return CODEC_ERROR;}
+
+    set_codec_track(track=nInitialTrack);
+    /* The main decoder loop */
+    
+    //fdoutfile = ci->open("/cpu.log",O_WRONLY|O_CREAT|O_TRUNC);
+    
+    //ci->fdprintf(fdoutfile,"PC     Instr.      Context            A  X  Y  Status    SP\r\n===========================================================\r\n\r\n");
+        
+    //ci->close(fdoutfile);
+
+    endofstream = 0;
+#ifdef USEC_TIMER
+    total_time = cpu_time = apu_time = doticks_time = 0;
+#endif
+    
+    while (!endofstream) {
+
+        ci->yield();
+        if (ci->stop_codec || ci->new_track) {
+            break;
+        }
+
+	    if (ci->seek_time >0) {
+	        track=ci->seek_time/1000;
+	        set_codec_track(track);
+	        ci->seek_complete();
+	    }
+
+#if 0
+        if (total_time > 1*1000000)	    
+            total_time = cpu_time = apu_time = doticks_time = 0;
+	    
+	    total_start = USEC_TIMER;
+#endif        
+	    written=GetSamples((BYTE*)samples,WAV_CHUNK_SIZE/2);
+#if 0
+	    total_time += USEC_TIMER-total_start;
+#endif
+	    
+	    if (!written || SongCompleted()) {
+	        track++;
+	        if (track>=nTrackCount) break;
+	        set_codec_track(track);
+	        continue;
+	    }    
+#if 0 //USEC_TIMER
+        fdoutfile = ci->open("/cpu.log",O_WRONLY|O_CREAT|O_APPEND);   
+        
+        //ci->write(fdoutfile,samples,written);
+        ci->fdprintf(fdoutfile,"%d\t",(int32_t)cpu_time);
+        ci->fdprintf(fdoutfile,"%d%%\t",cpu_time*100/total_time);
+        ci->fdprintf(fdoutfile,"%d\t",(int32_t)apu_time);
+        ci->fdprintf(fdoutfile,"%d%%\t",apu_time*100/total_time);
+        ci->fdprintf(fdoutfile,"%d\t",(int32_t)doticks_time);
+        ci->fdprintf(fdoutfile,"%d%%\t",doticks_time*100/total_time);
+        ci->fdprintf(fdoutfile,"%d\n",(int32_t)total_time);
+        
+        ci->close(fdoutfile);
+#endif
+        /* 2 bytes per sample */
+        while (!ci->pcmbuf_insert((char *)samples, written))
+            ci->yield();
+            
+    }
+
+    if (ci->request_next_track())
+        goto next_track;
+
+    return CODEC_OK;
+}
Index: firmware/id3.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/id3.c,v
retrieving revision 1.134
diff -u -r1.134 id3.c
--- firmware/id3.c	25 Sep 2006 16:13:05 -0000	1.134
+++ firmware/id3.c	6 Oct 2006 03:17:42 -0000
@@ -121,6 +121,8 @@
     AFMT_ENTRY("SID",  "sid.codec",     NULL,                NULL  ),
     /* ADX File Format */
     AFMT_ENTRY("ADX", "adx.codec",	NULL,		     NULL  ),
+    /* NESM (NES Sound Format) */
+    AFMT_ENTRY("NSF", "nsf.codec",      NULL,                NULL  ),
 #endif
 };
 
Index: firmware/export/id3.h
===================================================================
RCS file: /cvsroot/rockbox/firmware/export/id3.h,v
retrieving revision 1.31
diff -u -r1.31 id3.h
--- firmware/export/id3.h	25 Sep 2006 16:13:05 -0000	1.31
+++ firmware/export/id3.h	6 Oct 2006 03:17:43 -0000
@@ -43,6 +43,7 @@
     AFMT_AIFF,         /* Audio Interchange File Format */
     AFMT_SID,          /* SID File Format */
     AFMT_ADX,          /* ADX */
+    AFMT_NSF,          /* NESM (NES Sound Format) */
 
     /* New formats must be added to the end of this list */
 
Index: tools/configure
===================================================================
RCS file: /cvsroot/rockbox/tools/configure,v
retrieving revision 1.223
diff -u -r1.223 configure
--- tools/configure	29 Sep 2006 20:04:36 -0000	1.223
+++ tools/configure	6 Oct 2006 03:17:44 -0000
@@ -681,7 +681,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     # toolset is the tools within the tools directory that we build for
     # this particular target.
     toolset=$iriverbitmaptools
@@ -703,7 +703,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     # toolset is the tools within the tools directory that we build for
     # this particular target.
     toolset=$iriverbitmaptools
@@ -725,7 +725,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     # toolset is the tools within the tools directory that we build for
     # this particular target.
     toolset=$iriverbitmaptools
@@ -747,7 +747,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     # toolset is the tools within the tools directory that we build for
     # this particular target.
     toolset="$iaudiobitmaptools"
@@ -771,7 +771,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod4g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -793,7 +793,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod4g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -815,7 +815,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod5g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -837,7 +837,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod3g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -859,7 +859,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod4g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -881,7 +881,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod4g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -903,7 +903,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     # toolset is the tools within the tools directory that we build for
     # this particular target.
     toolset=$genericbitmaptools
@@ -923,7 +923,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     toolset=$gigabeatbitmaptools
     boottool="$rootdir/tools/scramble -gigabeat"
     bootoutput="FWIMG01.DAT"
@@ -947,7 +947,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -ipod4g"
     bootoutput="bootloader.img"
     # toolset is the tools within the tools directory that we build for
@@ -969,7 +969,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -mi4v3"
     bootoutput="H10_20GC.mi4"
     # toolset is the tools within the tools directory that we build for
@@ -995,7 +995,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -mi4v3"
     bootoutput="PP5022.mi4"
     # toolset is the tools within the tools directory that we build for
@@ -1021,7 +1021,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -mi4v2"
     bootoutput="H10.mi4"
     # toolset is the tools within the tools directory that we build for
@@ -1047,7 +1047,7 @@
     archosrom=""
     flash=""
     plugins="yes"
-    codecs="libmad liba52 libffmpegFLAC libTremor libwavpack dumb libmusepack libalac libfaad libm4a"
+    codecs="libmad liba52 libffmpegFLAC libTremor libNotSo libwavpack dumb libmusepack libalac libfaad libm4a"
     boottool="$rootdir/tools/scramble -mi4v2"
     bootoutput="pp5020.mi4"
     # toolset is the tools within the tools directory that we build for
