XPMCK – SMS – Direct Port Write to attain super high pitches for Channel C, for Channel D’s copy-channel-C feature


XPMCK sets boundaries on the channels’ pitch range. This is likely to maintain compatibility across platforms. But on Sega SMS, we are being robbed of certain powers!!! The problem in my eyes is this: On SMS, Channel D(2)’s Copy-Channel-C feature can create noise based some octaves underneath the frequency specified in Channel C.. There is a frequency range beyond that supported by XPMCK that is usableby this feature, and it creates quite pleasant white noise!!! Continue reading


Gimp Script-Fu : Duplicate All Layers in Reverse

(define (script-fu-duplicate-reverse-all-layers inImg)
	(let* ( 
          (x (cadr (gimp-image-get-layers inImg) ) ) 
					(y (car (gimp-image-get-layers inImg) ) )
					(i 0)

          ((i 0 (+ i 1)))
					((= i y) i)      ; maybe return the last value of the iteration
              (bl-layer (car (gimp-layer-copy (aref x i) TRUE)))
            (gimp-image-insert-layer inImg bl-layer 0 0)
            ;(gimp-item-set-name bl-layer bl-layer-name)
            (gimp-item-set-visible bl-layer TRUE)
            (gimp-layer-set-lock-alpha bl-layer TRUE)
            (gimp-layer-add-alpha bl-layer)


    "script-fu-duplicate-reverse-all-layers"                        ;func name
    "Duplicate All Layers in Reverse"                               ;menu label
    "Duplicate All Layers in Reverse"                               ;description
    "Michael Bazzinotti"                                            ;author
    "copyright 2014, Michael Bazzinotti;"                           ;copyright notice
    "December 8, 2014"                                              ;date created
    "RGB, RGBA, GRAY, GRAYA, INDEXED, INDEXEDA"                     ;image type that the script works on
    SF-IMAGE      "Image"  0;     
  (script-fu-menu-register "script-fu-duplicate-reverse-all-layers" "<Image>/Layer")

Gimp Script-Fu : Color to Alpha All Layers

(define (script-fu-colortoalpha-all-layers inImg inColor)
	(let* ( (x (cadr (gimp-image-get-layers inImg) ) ) 
					(y (car (gimp-image-get-layers inImg) ) )
					(i 0)

				(do ((i 0 (+ i 1)))
					((= i y) i)  
					(plug-in-colortoalpha 1 inImg (vector-ref x i) inColor))


    "script-fu-colortoalpha-all-layers"                           ;func name
    "color-to-alpha All Layers"                                   ;menu label
    "Map a color to transparent for all layers"                   ;description
    "Michael Bazzinotti"                                          ;author
    "copyright 2015, Michael Bazzinotti;"                         ;copyright notice
    "December 8, 2014"                                            ;date created
    "RGB, RGBA, GRAY, GRAYA"                                      ;image type that the script works on
    SF-IMAGE      "Image"         0                               ;
    SF-COLOR      "Color"         '(0 0 0)                        ;color variable, Black
  (script-fu-menu-register "script-fu-colortoalpha-all-layers" "<Image>/Image")

Compiling FamiTracker from Source Code on Visual Studio Pro 2013 / Win7


Download source.. I found that the NSF Driver Source was not needed (i dont think?? although I did have it extracted in the same Downloads directory..)

Run the solution file..

Agree to Upgrade the solution file

Compile x86 not x86_64.. The unsolved error on x86_64 is

Source\GraphEditor.cpp(43): error C2440: ‘static_cast’ : cannot convert from ‘void (__cdecl CGraphEditor::* )(UINT)’ to ‘void (__cdecl CWnd::* )(UINT_PTR)’
1> Cast from base to derived requires dynamic_cast or static_cast
1>Source\GraphEditor.cpp(43): fatal error C1903: unable to recover from previous error(s); stopping compilationSome things go wrong…

back to x86 issues that are solved 😉

You will need this if not have already: http://www.microsoft.com/en-us/download/details.aspx?id=40770

std::ext problem — you must add #include<iterator> in PatternCompiler.cpp

sinc.cpp — add #include <algorithm>

for debug mode compile — Compiler.cpp will bitch about CDSample’s non-existent Name field.. this should be m_Name but it’s private. so make the class variables public in DSample.h

Thats everything.. Now it compiles.