Willybeamish Posted February 21, 2013 Posted February 21, 2013 So long story short I got Zsnes working pretty good except for when I hit the Start key which I mapped to my X arcade Tank stick I get the game character's disappearing (ive attached a screen shot for reference) and it says in the bottom of the screen "Sprite layer disabled". Ive tried mapping a few different buttons but it still happens..any ideas?? Here is my Config file for the emu ; PSR-produced config file (stock default in CAPS) ; Note, if you're worried you messed up a setting, removing the line will have ; ZSNES use the default settings for that option. ; The next time ZSNES is run, the line will reappear with the default settings. ; ---- ; -- Input -- ; ---- ; For other input settings see zinput.cfg ; Enable Game-Specific Key Combos (0 = NO, 1 = Yes) GUIComboGameSpec=0 ; Enable Game-Specific Key Input (0 = NO, 1 = Yes) GameSpecificInput=0 ; ---- ; -- Options -- ; ---- ; Allow MMX Support (0 = No, 1 = YES) ; Disable this only if you actually do NOT have a processor that supports MMX. ; Disabling this option will prevent you from using some of the more advanced ; video/sound filters. AllowMMX=1 ; Pause Emulation when ZSNES is Out of Focus (0 = NO, 1 = Yes) PauseFocusChange=0 ; Increase Priority of ZSNES (0 = NO, 1 = Yes) ; Enable this if it improves performance. This option is not for everyone. ; This may cause other background apps to be sluggish. ; The priority in Win9x will be High, Win2k will be Above Normal. HighPriority=0 ; Disable Power Management while ZSNES Runs (0 = No, 1 = YES) ; This is very necessary for gamepad users. DisableScreenSaver=1 ; Enable New Graphics Engine (0 = No, 1 = YES) ; Toggle off when there are graphical problems in the new graphics engine newengen=1 ; Enable Older Graphics Engine Tweak for Mode 2 (0 = NO, 1 = Yes) ; Enable this to see if it helps with rendering problems ; Only works with old graphic engine bgfixer=0 ; Snapshot Format (0 = BMP, 1 = PNG) ScreenShotFormat=0 ; Auto-Patch ROM with IPS (0 = No, 1 = YES) AutoPatch=1 ; Display ROM Info on Load (0 = No, 1 = YES) DisplayInfo=0 ; Log Info About the Last ROM Loaded to rominfo.txt (0 = No, 1 = YES) RomInfo=1 ; Enable FPS Counter when ZSNES is Started (0 = NO, 1 = Yes) ; This option is disabled when manual frameskip is in use. FPSAtStart=0 ; Display Clock (0 = NO, 1 = Yes) TimerEnable=0 ; Change Clock Mode (0 = 24 HOUR, 1 = 12 Hour) TwelveHourClock=0 ; Display Black Box Around Clock (0 = No, 1 = YES) ClockBox=1 ; Use Small Font for Messages (0 = NO, 1 = Yes) SmallMsgText=0 ; Transparent Messages - doesn't work with small font (0 = NO, 1 = Yes) GUIEnableTransp=0 ; ---- ; -- Video -- ; ---- ; Video Mode [0..42] ; 0 = 256x224 R WIN 1 = 256x224 R FULL ; 2 = 512x448 R WIN 3 = 512x448 DR WIN ; 4 = 640x480 S WIN 5 = 640x480 DS WIN ; 6 = 640x480 DR FULL 7 = 640x480 DS FULL ; 8 = 640x480 S FULL 9 = 768x672 R WIN ; 10 = 768x672 DR WIN 11 = 800x600 S WIN ; 12 = 800x600 DS WIN 13 = 800x600 S FULL ; 14 = 800x600 DR FULL 15 = 800x600 DS FULL ; 16 = 1024x768 S WIN 17 = 1024x768 DS WIN ; 18 = 1024x768 S FULL 19 = 1024x768 DR FULL ; 20 = 1024x768 DS FULL 21 = 1024x896 R WIN ; 22 = 1024x896 DR WIN 23 = 1280x960 S WIN ; 24 = 1280x960 DS WIN 25 = 1280x960 S FULL ; 26 = 1280x960 DR FULL 27 = 1280x960 DS FULL ; 28 = 1280x1024 S WIN 29 = 1280x1024 DS WIN ; 30 = 1280x1024 S FULL 31 = 1280x1024 DR FULL ; 32 = 1280x1024 DS FULL 33 = 1600x1200 S WIN ; 34 = 1600x1200 DS WIN 35 = 1600x1200 DR FULL ; 36 = 1600x1200 DS FULL 37 = 1600x1200 S FULL ; 38 = CUSTOM D WIN 39 = CUSTOM DS FULL ; 40 = CUSTOM WIN 41 = CUSTOM S FULL ; 42 = CUSTOM DR FULL ; You need to select one of the custom video modes and modify CustomResX/Y to ; properly use custom res support. ; WARNING: Custom resolutions are only valid if they are supported by your system! ; ZSNES will hang if an invalid fullscreen resolution is used. cvidmode=42 ; Last windowed & fullscreen modes (used when alt-tabbing) PrevWinMode=2 PrevFSMode=42 ; Custom Resolution X and Y for Custom Video Modes [256x224..2048x1536] CustomResX=1024 CustomResY=768 ; Enable Video Interpolation (0 = NO, 1 = Yes) ; Video Interpolation is compatible with scanlines. ; Blends the neighboring pixels on the screen to eliminate pixelation. antienab=0 ; Enable NTSC Filter (0 = NO, 1 = Yes) ; Enable Blargg's wonderful NTSC filter which simulates the artifacts of an ; NTSC TV set - it is probably not a good idea to use with TV-out ; Recommended to use a minimum res of 602x448 NTSCFilter=0 ; Blend Frames, Refresh Screen (0 = OFF, 1 = On) ; Blend Frames allows smoother transitions between frames for non-60Hz refresh rates. ; Refresh Screen allows the screen to be updated while changing the filter's parameters. NTSCBlend=0 NTSCRef=0 ; NTSC TV Attributes [-100..100] NTSCHue=0 NTSCSat=0 NTSCCont=0 NTSCBright=0 NTSCSharp=0 NTSCGamma=0 NTSCRes=0 NTSCArt=0 NTSCFringe=0 NTSCBleed=0 NTSCWarp=0 ; Enable Kreed's 2x Filters (0 = NONE, 1 = 2xSaI, 2 = Super Eagle, 3 = Super 2xSaI) ; These are Kreed's various 2x filters. They do not exhibit the same level of ; blurring than interpolation/bilinear. MMX support is required. ; This is disabled when other filters are used. En2xSaI=0 ; Use HQ*x Filter (0 = NO, 1 = Yes) ; This is a filter MaxSt has created. These are very CPU intensive filters that ; do very awesome blending to remove the pixelation. ; This is disabled when other filters are used. MMX support is required. hqFilter=0 ; Set HQ*x level [2..4] ; Recommended min resolutions ; HQ2x = 512x448 ; HQ3x = 768x672 ; HQ4x = 1024x896 hqFilterlevel=2 ; Enable Scanlines (0 = NONE, 1 = Full, 2 = 25%, 3 = 50%) - simulate TV scanlines ; This is compatible with interpolation. scanlines=0 ; Enable Grayscale Mode (0 = NO, 1 = Yes) - don't enable this for other than nostalgia ; The whole screen is displayed in monochrome color. GrayscaleMode=0 ; Enable High-Res Mode 7 (0 = NO, 1 = Yes) ; Doubles the internal resolution of the image when Mode 7 is in use ; However this disables most filters, except for interpolation. ; This is only useful in certain games and is not useful in general. ; Requires a minimum res of 512x448 Mode7HiRes16b=0 ; Sync Frames to Monitor Refresh Rate (0 = NO, 1 = Yes) ; Do not enable if you cannot normally sustain 60fps vsyncon=0 ; Use Triple Buffering (0 = NO, 1 = Yes) - replaces vsync ; This is usually more beneficial than VSync. ; This is not available in Windowed modes. TripleBufferWin=0 ; Force Refresh Rate (0 = NO, 1 = Yes) ; Enable this if you are experiencing visual tearing ; WARNING: Setting a refresh rate that your monitor cannot handle will have ; consequences! The DX Refresh Rate Override in dxdiag must be set to default ; in order for this to work! The refresh rate is only valid if it is supported ; by your system! This option is only useful in fullscreen modes. ForceRefreshRate=0 SetRefreshRate=60 ; Enable KitchenSync/KitchenSyncPAL (0 = NO, 1 = Yes) ; When enabled, ZSNES will use double the refresh rate of the game and use ; half of it to sync with the game to reduce/prevent visual tearing. ; You can enable this if your video card/monitor AND current ZSNES resolution ; supports 100Hz (for PAL games) and 120Hz (for NTSC games) ; KitchenSyncPAL applies to PAL games only, use KitchenSync for PAL+NTSC games. ; WARNING: The DX Refresh Rate Override in dxdiag must be set to default in ; order for this to work! ; This option is completely useless in a non-fullscreen mode. KitchenSync=0 KitchenSyncPAL=0 ; Keep 4:3 Ratio (0 = No, 1 = YES) ; This is particularly handy for those that use laptops/LCDs+non 4:3 resolutions. ; This can be used for any S/DS mode and any Custom Windowed mode. ; It is not recommended to enable this while under 298x224. ; Disable this if you want to use the non-standard ratio instead. Keep4_3Ratio=1 ; Set Gamma Level [0..15] gammalevel=0 ; ---- ; -- Sound -- ; ---- ; Disable SPC Emulation (0 = NO, 1 = Yes) ; Disabling SPC emulation can improve performance, but at the expense of ; emulation accuracy. There will be no sound output and games might crash. SPCDisable=0 ; Enable Sound Emulation (0 = Off, 1 = ON) - disable if you need the performance ; If SPC emulation is disabled, there will be no sound output. soundon=1 ; Enable Stereo Sound (0 = Off, 1 = ON) - disable if you need the performance StereoSound=1 ; Swap Left Audio Channel w/Right (0 = NO, 1 = Yes) RevStereo=0 ; Simulate Surround Sound (0 = NO, 1 = Yes) ; Enable a simulated 2 speaker surround sound effect. ; Do not enable if playing a game that has its own surround sound effects. ; Stereo Sound must be enabled for this to work. Surround=0 ; Use Primary Sound Buffer (0 = NO, 1 = Yes) ; Enable this if you are experiencing sound playback/static problems. PrimaryBuffer=0 ; Sampling Rate: (0 = 8000Hz, 1 = 11025Hz, 2 = 22050Hz, 3 = 44100Hz, ; 4 = 16000Hz, 5 = 32000Hz, 6 = 48000Hz) ; Using any other sound frequencies other than the default 32000Hz ; is COMPLETELY UNACCEPTABLE in use for sound bug reports. SoundQuality=5 ; Sound Volume Level [0..100] MusicRelVol=100 ; Enable Sound Interpolation (0 = None, 1 = GAUSSIAN, 2 = Cubic, 3 = 8-point) ; Sound interpolation smooths out the waveform of lower frequency sounds. ; Using any other setting other than the default Gaussian interpolation is ; COMPLETELY UNACCEPTABLE in sound bug reports. SoundInterpType=1 ; Enable Low-Pass Filter (0 = NONE, 1 = Simple, 2 = Dynamic, 3 = Hi-quality) ; A low-pass filter improves the bass in the sounds. ; This is useful if you have a Subwoofer. LowPassFilterType=0 ; Disable Echo (0 = NO, 1 = Yes) ; Disables the echo effect in the sound. EchoDis=0 ; ---- ; -- Saves -- ; ---- ; Number of Rewind States [0..99] RewindStates=8 ; Delay between rewinds [1..99] - (1 = 200ms, 5 = 1s, 10 = 2s) RewindFrames=15 ; Don't Save SRAM (0 = NO, 1 = Yes) ; Only enable this if you don't want to Save SRAM at any given time. ; This option will make Update SRAM in Real-Time useless. nosaveSRAM=0 ; Update SRAM in Real-Time (0 = NO, 1 = Yes) ; This is useful if you fear something will prevent ZSNES from exiting normally. ; It is required to play games that store important values directly to SRAM. ; ZSNES normally updates SRAM on exit. ; If Don't Save SRAM is enabled, this option is useless. SRAMSave5Sec=0 ; Load SRAM w/Savestates (0 = No, 1 = YES) ; Enable this when you want to use the SRM that is stored within the savestate. ; Warning: You will overwrite the existing SRM that you are currently using. ; It is required to properly use states with games storing important values ; directly in SRM. SRAMState=1 ; Select Latest Save State Slot on Game Load (0 = NO, 1 = Yes) ; Enable this if you want to load the last saved savestate quickly ; (via the load savestate button/GUI option) after loading the game. LatestSave=0 ; Auto Increment State Slot First, then Save State (0 = NO, 1 = Yes) ; Enable this if you have a tendency in saving accidentally to an existing ; savestate. AutoIncSaveSlot=0 ; Save in 10 save block (0 = NO, 1 = Yes) ; This may be handy if you want to save within a block (0-9, 10-19, etc.) AutoIncSaveSlotBlock=0 ; Auto State Save/Load (0 = NO, 1 = Yes) - uses a special state ; Enable this if you wish a special state to be saved on a visit to the GUI. ; This state will automatically be loaded when you load a game. AutoState=0 ; Pause Emulation After Loading a Save State (0 = NO, 1 = Yes) PauseLoad=0 ; Pause Emulation After Using Rewind (0 = NO, 1 = Yes) PauseRewind=0 ; ---- ; -- Emulation -- ; ---- ; Percent to Execute [50..150] - only modify if you know what you are doing ; Changing this value may help certain games run. per2exec=100 ; Disable Hacks (0 = NO, 1 = Yes) ; Set this to 1 if you want to disable game specific hacks HacksDisable=0 ; Frameskip: [0..10] (0 = AUTO, 1-10 = Manual 0-9) frameskip=0 ; Max Frameskip Allowed for Auto Frameskip [0..9] maxskip=9 ; Fastforward/Slowdown Keys Behaviour (0 = HELD, 1 = Toggle) FastFwdToggle=0 ; Fastforward/Slowdown Factors [0..28] (0 = factor 2, 28 = factor 30) FFRatio=8 SDRatio=0 ; Emulation Speed Throttle [0..58] (0 = speed/30, 29 = 1x, 58 = 30x) ; Fast-forward multiplicator is currently inaccurate EmuSpeed=29 ; ---- ; -- Paths -- ; ---- ; It is suggested to go to GUI->Paths and modify the paths from there. ; ROMs drive + directory ; Note, when entering a path, make sure every backslash is doubled ; "C:\Games\SNES" for example is incorrect. ; "C:\\Games\\SNES" is correct. ROMPath="C:\\HyperSpin\\Emulators\\NO INTRO SNES\\" ; Save states & SRAMs, snapshots, SPCs SRAMPath="" SnapPath="" SPCPath="" ; BIOS/base carts (BS-X, Sufami Turbo, Same Game & SD Gundam G-Next) BSXPath="" STPath="" SGPath="" GNextPath="" ; SPC7110 graphic packs FEOEZPath="" SJNSPath="" MDHPath="" SPL4Path="" ; ---- ; -- GUI -- ; ---- ; Disable GUI (0 = NO, 1 = Yes) guioff=0 ; Show All Files in 'Load Game' Menu (0 = NO, 1 = Yes) showallext=0 ; Filename Display Mode (0 = LONG FILENAME, 1 = Internal header name) GUIloadfntype=0 ; Recent games played, you shouldn't edit this manually (8.3 / Paths / LFN) prevloadiname="Aerobiz (USA).zip"\0"+ "\"3x3 Eyes - Seima Kourinden "\0"! "\"Aero the Acro-Bat 2 (USA).z"\0"! "\"3-jigen Kakutou Ballz (Japa"\0"k! " prevloaddnamel=0"! "\"C:\\HyperSpin\\Emulators\\NO INTRO SNES\\"\0"%% "\"C:\\HyperSpin\\Emulators\\NO INTRO SNES\\"\0"%% "\"C:\\HyperSpin\\Emulators\\NO INTRO SNES\\"\0"%% "\"C:\\HyperSpin\\Emulators\\NO INTRO SNES\\"\0"dE " prevloadfnamel="Aerobiz (USA).zip"\0"9% "\"3x3 Eyes - Seima Kourinden (Japan).zip"\0"$% "\"Aero the Acro-Bat 2 (USA).zip"\0"-% "\"3-jigen Kakutou Ballz (Japan).zip"\0"iE " ; Freeze Recent Games List (0 = NO, 1 = Yes) prevlfreeze=0 ; Right Mouse Click Enters/Exits GUI (0 = NO, 1 = Yes) GUIRClick=0 ; Left Handed Mouse Behavior for GUI (0 = NO SWAP, 1 = Swap) ; (swap left and right buttons) lhguimouse=0 ; Show Mouse Cursor Shadow (0 = No, 1 = YES) ; Displays a shadow under the mouse cursor. mouseshad=1 ; Wrap Mouse Cursor (0 = NO, 1 = Yes) ; If enabled, the cursor will wrap around to the other side. ; Only useful for Fullscreen modes. mousewrap=0 ; Trap Mouse Cursor in Window (0 = NO, 1 = Yes) ; Only useful in Windowed modes. TrapMouseCursor=0 ; Use Mouse Wheel to Scroll (0 = No, 1 = YES) MouseWheel=1 ; ESC to Game Menu (0 = No, 1 = YES) ; If yes, visiting the GUI will have the Game Menu automatically selected. ; It will also enable the main menu keyboard shortcuts. esctomenu=1 ; Control the GUI Using Gamepad 1 (0 = NO, 1 = Yes) JoyPad1Move=0 ; Filter GUI Display (0 = No, 1 = YES) ; If enabled, the current filter you are using will also filter the GUI. FilteredGUI=1 ; Use Custom Font (0 = NO, 1 = Yes) ; The font currently reads off a format as defined by zfile.txt newfont=0 ; Save GUI Window Positions (0 = NO, 1 = Yes) savewinpos=0 ; GUI windows X/Y coordinates - GUI setup showing windows # ; Game Config Cheat Netplay Misc ; ------------------------------------------------------------------- ; 1:Load 3:Input 7:Add Code [internet] 9:Misc Keys ; Run ------- 7:Browse 10:GUI Opts ; 12:Reset 17:Devices 13:Search 15:Movie Opt ; ------- 18:Chip Cfg 16:Key Comb. ; 14:Save State ------- Save Cfg ; 2:Open State 4:Options ------- ; 14:Pick State 5:Video 11:About ; ------- 6:Sound ; Quit 19:Paths ; 20:Saves ; 21:Speed ; X positions [-233..254] (windows #0 to #22) GUIwinposx=0,6,65,33,42,5,34,6,64,8,5,33,56,64,56,5,3,28,48,6,28,53,0 ; Y positions [8..221] (windows #0 to #22) GUIwinposy=0,20,70,20,20,20,20,20,30,30,20,20,60,30,60,20,20,60,60,20,30,20,0 ; GUI Background Effect ; (0 = NONE, 1 = Snow, 2 = Water A, 3 = Water B, 4 = Burn, 5 = Smoke) GUIEffect=1 ; GUI Palette Mods: ; Background RGB Tint [0..31] GUIRAdd=15 GUIGAdd=10 GUIBAdd=31 ; Titlebar RGB Tint [0..31] GUITRAdd=0 GUITGAdd=10 GUITBAdd=31 ; Windows RGB Tint [0..31] GUIWRAdd=8 GUIWGAdd=8 GUIWBAdd=25 ; Main Window Always on Top (0 = NO, 1 = Yes) AlwaysOnTop=0 ; Save Main Window Position (0 = No, 1 = YES) and X/Y coordinates SaveMainWindowPos=1 MainWindowX=384 MainWindowY=136 ; Allow Multiple ZSNES Instances at Once (0 = No, 1 = YES) AllowMultipleInst=1 ; ---- ; -- Cheats -- ; ---- ; Autoload .CHT files (0 = NO, 1 = Yes) ; Enable the use of stored cheat files on load. AutoLoadCht=0 ; Selected Size Search (0 = 1 BYTE, 1 = 2B, 2 = 3B, 3 = 4B) CheatSrcByteSize=0 ; Selected Numerical Base (0 = DECIMAL, 1 = Hexadecimal) CheatSrcByteBase=0 ; Search Type (0 = EXACT VALUE, 1 = Comparative) CheatSrcSearchType=0 ; Add Code for Most Significant Byte Only (0 = NO, 1 = Yes) CheatUpperByteOnly=0 ; ---- ; -- Movies -- ; ---- ; For other input settings see zmovie.cfg ; Display Movie Frame # During Record/Replay (0 = NO, 1 = Yes) MovieDisplayFrame=0 ; Movie Default Start Method (0 = NOW, 1 = Power-On, ; 2 = Reset, 3 = Power-On without SRAM) MovieStartMethod=0 ; Switch Modes when Loading a Movie State (0 = NO, 1 = Switch to Record, 2 = Switch to Playback) MZTForceRTR=0 ; ZMV -> AVI Conversion Mode: (0 = No Video, 1 = Raw Video, 2 = Ffv1, 3 = x264, ; 4 = XVID, 5 = Custom) ; The compression codecs can only be used if you provide them yourself. ; See zmovie.cfg for details. MovieVideoMode=4 ; Dump Audio Along w/Video (0 = No, 1 = YES) MovieAudio=1 ; Compress Audio Stream On-The-Fly (0 = No, 1 = YES) ; The compression codecs can only be used if you provide them yourself. ; See zmovie.cfg for details. MovieAudioCompress=1 ; Merge Audio and Video Streams Upon Conversion End (0 = No, 1 = YES) MovieVideoAudio=1 ; ---- ; -- Keyboard Hotkeys -- ; ---- ; (you shouldn't edit these directly unless you know what you're doing) ; Super Scope Keys: ; Extra Device in Port 1/2 Cycle KeyExtraEnab1=0 KeyExtraEnab2=0 ; State Keys: ; Save State / Select Slot Menu / Load State KeySaveState=60 KeyStateSelct=61 KeyLoadState=62 ; Increase / Decrease Slot # / Direct Slot # Select KeyIncStateSlot=0 KeyDecStateSlot=0 KeyStateSlc0=0 KeyStateSlc1=0 KeyStateSlc2=0 KeyStateSlc3=0 KeyStateSlc4=0 KeyStateSlc5=0 KeyStateSlc6=0 KeyStateSlc7=0 KeyStateSlc8=0 KeyStateSlc9=0 ; Rewind KeyRewind=0 ; Speed Keys: ; Fast-Forward, Slow-Motion KeyFastFrwrd=41 KeySlowDown=0 ; Frame Rate Up/Down (Manual Frameskip) KeyFRateUp=0 KeyFRateDown=0 ; Speed Throttle Up/Down/Reset to Normal (Auto Frameskip) KeyEmuSpeedUp=0 KeyEmuSpeedDown=0 KeyResetSpeed=0 ; Pause Emulation, Frame Advance Keys EMUPauseKey=25 INCRFrameKey=0 ; Shortcuts: ; BG 0-3, Sprite Layer Display Toggles KeyBGDisble0=2 KeyBGDisble1=3 KeyBGDisble2=4 KeyBGDisble3=5 KeySprDisble=6 ; Sound Channel 0-7 Output Toggles KeyDisableSC0=63 KeyDisableSC1=64 KeyDisableSC2=65 KeyDisableSC3=66 KeyDisableSC4=67 KeyDisableSC5=68 KeyDisableSC6=87 KeyDisableSC7=88 ; Sound Volume Up/Down KeyVolUp=0 KeyVolDown=0 ; Quit ZSNES / Load Menu / Reset Game / Panic Key KeyQuickExit=4 KeyQuickLoad=0 KeyQuickRst=0 KeyResetAll=7 ; Clock Display Toggle KeyQuickClock=0 ; Netplay In-Game Chat KeyQuickChat=20 ; Screenshot Hotkey KeyQuickSnapShot=0 ; Capture SPC Hotkey KeyQuickSaveSPC=0 ; Use Player 3/4 Input as Player 1/2's Toggle KeyUsePlayer1234=0 ; FPS Display Toggle KeyDisplayFPS=0 ; Laptop Battery Display Toggle KeyDisplayBatt=0 ; Video Engine: Old/New Graphic Engine | Windowing | Offset Effects Toggles KeyNewGfxSwt=9 KeyWinDisble=10 KeyOffsetMSw=11 ; Gamma Correction Up/Down KeyIncreaseGamma=0 KeyDecreaseGamma=0 ; Movie Chapters: Insert / Go to Previous / Go to Next KeyInsrtChap=0 KeyPrevChap=0 KeyNextChap=0 ; Movie state load mode cycle KeyRTRCycle=0 ; ---- ; -- Misc -- ; ---- ; Calculated Checksum & Hash: Don't Edit by Hand ! TimeChecker=191 PrevBuildNum=0 ; Display First-Time Use Reminder (0 = YES, 1 = No) FirstTimeData=1 ; Enable Debugger (0 = NO, 1 = Yes) debuggeron=0 ; Prevent ZSNES from Saving the Configuration on Exit (0 = NO, 1 = Yes) cfgdontsave=0 ; - EOF - And here is the Snes Module file for this emu ;---------------------------------------------------------------------------- ; Super Nintendo Entertainment System ; zsnesw v1.51 ; by djvj ; 1.1 ; ; Notes: ; Be sure to set the settings you want below ;---------------------------------------------------------------------------- Fullscreen = true Stretch = false resX = 1024 resY = 768 DisplayRomInfo = false ; Display rom info on load along bottom of screen ;---------------------------------------------------------------------------- SetKeyDelay, 50 zsnesFile := CheckFile(emuPath . "zsnesw.cfg") FileRead, zsnesCfg, %zsnesFile% GUI_ID := FadeInStart() xLine := TF_Find(zsnesCfg,"","","CustomResX=") ; find location in zsnes cfg where it stores its custom X res yLine := TF_Find(zsnesCfg,"","","CustomResY=") ; find location in zsnes cfg where it stores its custom Y res modeLine := TF_Find(zsnesCfg,"","","cvidmode=") ; find location in zsnes cfg where it stores its custom vid mode zsnesCfg := TF_ReplaceLine(zsnesCfg,xLine,xLine,"CustomResX=" . resX) ; update custom X res in zsnes cfg file zsnesCfg := TF_ReplaceLine(zsnesCfg,yLine,yLine,"CustomResY=" . resY) ; update custom Yres in zsnes cfg file If ( Fullscreen = "true" && Stretch = "true" ) ; sets fullscreen, stretch, and filter support vidMode = 39 Else If ( Fullscreen = "true" && Stretch != "true" ) ; sets fullscreen, correct aspect ratio, and filter support vidMode = 42 Else ; sets windowed mode with filter support vidMode = 38 zsnesCfg := TF_ReplaceLine(zsnesCfg,modeLine,modeLine,"cvidmode=" . vidMode) ; update custom vid mode in zsnes cfg file ; Setting DisplayRomInfo setting in cfg if it doesn't match what user wants above currentDRI := (InStr(zsnesCfg, "DisplayInfo=1") ? ("true") : ("false")) If ( DisplayRomInfo != "true" And currentDRI = "true" ) { StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=1, DisplayInfo=0 } Else If ( DisplayRomInfo = "true" And currentDRI = "false" ) { StringReplace, zsnesCfg, zsnesCfg, DisplayInfo=0, DisplayInfo=1 } SaveFile(zsnesCfg, zsnesFile) ; save changes to zsnesw.cfg 7z1 := 7z(romPath, romName, romExtension, 7zExtractDir) Run, %executable% "%romPath%%romName%%romExtension%", %emuPath% WinWait, ZSNES ahk_class ZSNES WinWaitActive, ZSNES ahk_class ZSNES GUI_ID2 := FadeInExit() Process, WaitClose, %executable% 7z2 := 7zCleanUp() GUI_ID4 := FadeOutExit() WinActivate, Hyperspin ExitApp SaveFile(text,file) { FileDelete, %file% FileAppend, %text%, %file% } CloseProcess: GUI_ID3 := FadeOutStart() Send, {Alt Down}{F4 Down}{F4 Up}{Alt Up} ; No other closing method seems to work Return TF_Find(Text, StartLine = 1, EndLine = 0, SearchText = "", ReturnFirst = 1, ReturnText = 0) { ; complete rewrite for 3.1 TF_GetData(OW, Text, FileName) If (RegExMatch(Text, SearchText) < 1) Return "0" ; SearchText not in file or error, do nothing TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList Loop, Parse, Text, `n { If A_Index in %TF_MatchList% { If (RegExMatch(A_LoopField, SearchText) > 0) { If (ReturnText = 0) Lines .= A_Index "," ; line number Else If (ReturnText = 1) Lines .= A_LoopField "`n" ; text of line Else If (ReturnText = 2) Lines .= A_Index ": " A_LoopField "`n" ; add line number If (ReturnFirst = 1) ; only return first occurence Break } } } If (Lines <> "") StringTrimRight, Lines, Lines, 1 ; trim trailing , or `n Else Lines = 0 ; make sure we return 0 Return Lines } TF_ReplaceLine(Text, StartLine = 1, Endline = 0, ReplaceText = "") { TF_GetData(OW, Text, FileName) TF_MatchList:=_MakeMatchList(Text, StartLine, EndLine) ; create MatchList Loop, Parse, Text, `n, `r { If A_Index in %TF_MatchList% Output .= ReplaceText "`n" Else Output .= A_LoopField "`n" } Return TF_ReturnOutPut(OW, OutPut, FileName) } TF_GetData(byref OW, byref Text, byref FileName) { OW=0 ; default setting: asume it is a file and create file_copy IfNotInString, Text, `n ; it can be a file as the Text doesn't contact a newline character { If (SubStr(Text,1,1)="!") ; first we check for "overwrite" { Text:=SubStr(Text,2) OW=1 ; overwrite file (if it is a file) } IfNotExist, %Text% ; now we can check if the file exists, it doesn't so it is a var { If (OW=1) ; the variable started with a ! so we need to put it back because it is variable/text not a file Text:= "!" . Text OW=2 ; no file, so it is a var or Text passed on directly to TF } } Else ; there is a newline character in Text so it has to be a variable { OW=2 } If (OW = 0) or (OW = 1) ; it is a file, so we have to read into var Text { Text := (SubStr(Text,1,1)="!") ? (SubStr(Text,2)) : Text FileName=%Text% ; Store FileName FileRead, Text, %Text% ; Read file and return as var Text If (ErrorLevel > 0) { MsgBox, 48, TF Lib Error, % "Can not read " FileName ExitApp } } Return } TF_Count(String, Char) { StringReplace, String, String, %Char%,, UseErrorLevel Return ErrorLevel } TF_ReturnOutPut(OW, Text, FileName, TrimTrailing = 1, CreateNewFile = 0) { ; HugoV If (OW = 0) ; input was file, file_copy will be created, if it already exist file_copy will be overwritten { IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e { If (CreateNewFile = 1) ; CreateNewFile used for TF_SplitFileBy* and others { OW = 1 Goto CreateNewFile } Else Return } If (TrimTrailing = 1) StringTrimRight, Text, Text, 1 ; remove trailing `n SplitPath, FileName,, Dir, Ext, Name If (Dir = "") ; if Dir is empty Text & script are in same directory Dir := A_ScriptDir IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there FileCopy, % Dir "\" Name "_copy." Ext, % Dir "\backup\" Name "_copy.bak", 1 FileDelete, % Dir "\" Name "_copy." Ext FileAppend, %Text%, % Dir "\" Name "_copy." Ext Return Errorlevel ? False : True } CreateNewFile: If (OW = 1) ; input was file, will be overwritten by output { IfNotExist, % FileName ; check if file Exist, if not return otherwise it would create an empty file. Thanks for the idea Murp|e { If (CreateNewFile = 0) ; CreateNewFile used for TF_SplitFileBy* and others Return } If (TrimTrailing = 1) StringTrimRight, Text, Text, 1 ; remove trailing `n SplitPath, FileName,, Dir, Ext, Name If (Dir = "") ; if Dir is empty Text & script are in same directory Dir := A_ScriptDir IfExist, % Dir "\backup" ; if there is a backup dir, copy original file there FileCopy, % Dir "\" Name "." Ext, % Dir "\backup\" Name ".bak", 1 FileDelete, % Dir "\" Name "." Ext FileAppend, %Text%, % Dir "\" Name "." Ext Return Errorlevel ? False : True } If (OW = 2) ; input was var, return variable { If (TrimTrailing = 1) StringTrimRight, Text, Text, 1 ; remove trailing `n Return Text } } _MakeMatchList(Text, Start = 1, End = 0) { ErrorList= (join| Error 01: Invalid StartLine parameter (non numerical character) Error 02: Invalid EndLine parameter (non numerical character) Error 03: Invalid StartLine parameter (only one + allowed) ) StringSplit, ErrorMessage, ErrorList, | Error = 0 TF_MatchList= ; just to be sure If (Start = 0 or Start = "") Start = 1 ; some basic error checking ; error: only digits - and + allowed If (RegExReplace(Start, "[ 0-9+\-\,]", "") <> "") Error = 1 If (RegExReplace(End, "[0-9 ]", "") <> "") Error = 2 ; error: only one + allowed If (TF_Count(Start,"+") > 1) Error = 3 If (Error > 0 ) { MsgBox, 48, TF Lib Error, % ErrorMessage%Error% ExitApp } ; Option #1 ; StartLine has + character indicating startline + incremental processing. ; EndLine will be used ; Make TF_MatchList IfInString, Start, `+ { If (End = 0 or End = "") ; determine number of lines End:= TF_Count(Text, "`n") + 1 StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by , Loop, %Section0% { StringSplit, SectionLines, Section%A_Index%, `+ LoopSection:=End + 1 - SectionLines1 Counter=0 TF_MatchList .= SectionLines1 "," Loop, %LoopSection% { If (A_Index >= End) ; Break If (Counter = (SectionLines2-1)) ; counter is smaller than the incremental value so skip { TF_MatchList .= (SectionLines1 + A_Index) "," Counter=0 } Else Counter++ } } StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing , Return TF_MatchList } ; Option #2 ; StartLine has - character indicating from-to, COULD be multiple sections. ; EndLine will be ignored ; Make TF_MatchList IfInString, Start, `- { StringSplit, Section, Start, `, ; we need to create a new "TF_MatchList" so we split by , Loop, %Section0% { StringSplit, SectionLines, Section%A_Index%, `- LoopSection:=SectionLines2 + 1 - SectionLines1 Loop, %LoopSection% { TF_MatchList .= (SectionLines1 - 1 + A_Index) "," } } StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing , Return TF_MatchList } ; Option #3 ; StartLine has comma indicating multiple lines. ; EndLine will be ignored IfInString, Start, `, { TF_MatchList:=Start Return TF_MatchList } ; Option #4 ; parameters passed on as StartLine, EndLine. ; Make TF_MatchList from StartLine to EndLine If (End = 0 or End = "") ; determine number of lines End:= TF_Count(Text, "`n") + 1 LoopTimes:=End-Start Loop, %LoopTimes% { TF_MatchList .= (Start - 1 + A_Index) "," } TF_MatchList .= End "," StringTrimRight, TF_MatchList, TF_MatchList, 1 ; remove trailing , Return TF_MatchList } i cant really understand code is there anything in here that might indicate why my pause/start button is acting funny???? Also on a different issue but hoping I can kill two birds with one stone...Exiting from Emulators without the ability to map a exit key in the emulator config??? Is there a line of code to add to the Module file that might be universal? I had a few emulators that I ran into this issue..for the time being ive been hitting the ESC key on my keyboard. Thanks to all you guys
somail Posted February 21, 2013 Posted February 21, 2013 ; Shortcuts: ; BG 0-3, Sprite Layer Display Toggles KeyBGDisble0=2 KeyBGDisble1=3 KeyBGDisble2=4 KeyBGDisble3=5 KeySprDisble=6 pretty sure you set these to 0 or leave them blank. Pretty common problem.
Willybeamish Posted February 21, 2013 Author Posted February 21, 2013 ; Shortcuts:; BG 0-3, Sprite Layer Display Toggles KeyBGDisble0=2 KeyBGDisble1=3 KeyBGDisble2=4 KeyBGDisble3=5 KeySprDisble=6 pretty sure you set these to 0 or leave them blank. Pretty common problem. Hey thanks i'll give it a shot when I get home.
taekwonjohn36 Posted February 1, 2015 Posted February 1, 2015 Did this resolve your problem? I'm running into the same thing. I built a multicade using X-Arcade buttons and Joysticks. They have worst button layout and even worse key mapping. Why they map keys to aux functions like the ALT and Shift Keys is beyond me.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.