From 7fa8ad755d06e2e76b1070860bc6d30172c34ba5 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Fri, 14 Oct 2011 21:05:25 +1100 Subject: [PATCH] Update to v083 release. byuu says: This release adds preliminary Nintendo / Famicom emulation. It's only a week or two old, so a lot of work still needs to be done before it can compete with the most popular NES emulators. It's important to clarify: bsnes is primarily an SNES emulator. That will always be its forte and my core focus. I have added Game Boy support previously for Super Game Boy emulation, and I've added NES support mostly for something fun to work on to break up the monotony of working on one system for seven years now. Obviously, I'd like the emulation to be accurate and highly compatible, but I simply cannot afford to invest the same amount of time and money into any other systems. Still, either way the NES and GB emulation serve as fun side-diversions, and allow for a unified emulator interface with all of bsnes' unique features applied to all systems. My personal favorite feature is mightymo's extended built-in cheat code database that now also includes NES and Game Boy codes. And it even works in Super Game Boy mode now, too! I'm also not worried about speed at all: so long as NES/GB are faster than SNES/compatibility, it's fine by me. Note that due to the NES audio running at 1.78MHz, and Game Boy audio at 4MHz stereo, a more sophisticated audio resampler was needed: Ryphecha (Mednafen author) has graciously written a first-rate resampler: it is a band-limited Kaiser-windowed polyphase sinc resampler. It is combined with two highpass filters to remove DC bias. The filter itself is SSE optimized, but even still, approximately 50% of CPU usage for NES/GB emulation goes to the audio filtering alone. However, you now have the best sound possible for NES and Game Boy emulation as a result. The GUI has also been heavily re-structured to accommodate multiple emulators from the same interface. As such, it's quite likely a few bugs are still lurking here and there. Please report them and I'll iron them out for the next release. Changelog: - license is now GPLv3 - re-structured GUI as a multi-system emulator - added NES emulation [byuu, Ryphecha] - added NES ICs: MMC1, MMC2, MMC3, MMC4, MMC5, VRC4, VRC6+audio, VRC7, Sunsoft-5B+audio, Bandai-LZ93D50 - added NES boards: AxROM, BNROM, CNROM, ExROM, FxROM, GxROM, NROM, PxROM, SxROM, TxROM, UxROM - Game Boy emulation improvements [Jonas Quinn] - SNES core outputs full 19-bit color (4-bit luma included) for more accurate color reproduction (~5% speed hit) - audio resampler is now a band-limited polyphase resampler [Ryphecha] - cheat database includes NES+GB codes as well [mightymo, tukuyomi] - lots of other changes --- bsnes/data/cheats.bml | 1228 ++++++++++++++----- bsnes/nall/platform.hpp | 2 - bsnes/nes/cartridge/ines.cpp | 4 +- bsnes/nes/nes.hpp | 2 +- bsnes/snes/cartridge/cartridge.cpp | 19 +- bsnes/snes/snes.hpp | 2 +- bsnes/snes/video/video.cpp | 4 +- bsnes/ui/Makefile | 1 + bsnes/ui/config/config.cpp | 2 +- bsnes/ui/general/file-browser.cpp | 2 + bsnes/ui/general/main-window.cpp | 20 +- bsnes/ui/main.cpp | 2 +- snesfilter/Makefile | 14 +- snesfilter/Overscan/Overscan.cpp | 30 + snesfilter/Phosphor3x/Phosphor3x.cpp | 45 + snesshader/Archive/HDR-TV.OpenGL.shader | 17 + snesshader/Archive/Watercolor.OpenGL.shader | 61 + snesshader/Curvature.OpenGL.shader | 41 +- snesshader/HDR-TV.OpenGL.shader | 21 - snesshader/HQ2x.OpenGL.shader | 140 +-- snesshader/Pixellate.OpenGL.shader | 82 +- snesshader/Scale2x.OpenGL.shader | 102 +- snesshader/Sepia.Direct3D.shader | 56 +- snesshader/Watercolor.OpenGL.shader | 65 - 24 files changed, 1294 insertions(+), 668 deletions(-) create mode 100755 snesfilter/Overscan/Overscan.cpp create mode 100755 snesfilter/Phosphor3x/Phosphor3x.cpp create mode 100755 snesshader/Archive/HDR-TV.OpenGL.shader create mode 100755 snesshader/Archive/Watercolor.OpenGL.shader delete mode 100755 snesshader/HDR-TV.OpenGL.shader delete mode 100755 snesshader/Watercolor.OpenGL.shader diff --git a/bsnes/data/cheats.bml b/bsnes/data/cheats.bml index d8682365..b4b8cd32 100755 --- a/bsnes/data/cheats.bml +++ b/bsnes/data/cheats.bml @@ -589,7 +589,7 @@ cartridge sha256:e8dc8c0441c54d09a1cfe0c112a3137bb6d709989b23e6528f8e30360e1ad91 description:Infinite health code:SXOYOSVK cheat - description:Infinite Vitality + description:Infinite vitality code:SKOYOSVK cheat description:Infinite lives @@ -615,6 +615,9 @@ cartridge sha256:e8dc8c0441c54d09a1cfe0c112a3137bb6d709989b23e6528f8e30360e1ad91 cheat description:Keep items after dying - after 1st stage code:GXUUGOSO + cheat + description:Start a new game to view the ending + code:AAEZYIGA+LAEZLSZA cheat description:Start with 2 lives code:PESZAALA @@ -738,6 +741,21 @@ cartridge sha256:0e862077f390348b8e109caa8189ff5ecdf3fac53eefc204369fae880e077d1 cheat description:Infinite lives code:GZOVLLVG + cheat + description:Always have pistol + code:EZNATKKZ+XTNEAGYE+PANAYGOG + cheat + description:Always have knife + code:EZNATKKZ+XTNEAGYE+ZANAYGOG + cheat + description:Always have ugly stick + code:EZNATKKZ+XTNEAGYE+LANAYGOG + cheat + description:Always have whip + code:EZNATKKZ+XTNEAGYE+IANAYGOG + cheat + description:Start a new game to view the ending (game A or B) + code:IEOVAYGA cheat description:Start with 1 life code:AAETAGZA @@ -2883,6 +2901,12 @@ cartridge sha256:56d25e05dde2048c3a9b4e36ab5325091310ce2b65171615b5596fc542db66f cheat description:Mega-jumping code:EYSAUVEI + cheat + description:Double health from flies + code:AOUKXNAA + cheat + description:Maximum health from flies + code:YXUKXNAE cheat description:Super fast punching code:AEUZITPA @@ -2928,12 +2952,6 @@ cartridge sha256:56d25e05dde2048c3a9b4e36ab5325091310ce2b65171615b5596fc542db66f cheat description:Start on level 12 - The Revolution code:GAXAALAE - cheat - description:Double health from flies - code:AOUKXNAA - cheat - description:Maximum health from flies - code:YXUKXNAE cheat description:Invincibility code:0574:02 @@ -3370,7 +3388,7 @@ cartridge sha256:abde6fc87b2d90e0b40cd3420d4b7381e1f23285efbbdc62fd27b59c591ad2c description:Players 2/CPU don't throw punches code:OXKXTVPK+SXSZZSSU cheat - description:Start a new game to view ending + description:Start a new game to view the ending code:YASGITLA cartridge sha256:7a26c62a9b1605cbedf7cd5b2672aa0fc15b688b227a6cb57dbf74aa71a05f1c @@ -4105,7 +4123,7 @@ cartridge sha256:d02b24e4ee8e639bf77af6746d6b3a92e996c0d2298861071851e2beec0ef81 description:10 lives after continue code:PEXGVYZE cheat - description:Press Start to finish level + description:Press Start to complete the level code:AESGILPE+AESKALPA+GOSGYUPE+OXSGGUPK cheat description:Start a new game to see ending @@ -5058,6 +5076,12 @@ cartridge sha256:9575ec31c1c658fd6b77ae1d69e4861ecada8570e4eebf51409941486e4b4ef cartridge sha256:6e8d289635ac39479ff1d36733aa3f8b9650593ab972cedb8e2cdbfc03aaa739 title:Castlevania III - Dracula's Curse (USA) + cheat + description:Invincibility (disable if you cannot enter a door) + code:EIOAZPEY + cheat + description:Invincibility (disable if you cannot enter a door) (alt) + code:SZKLPZSA cheat description:Infinite health code:OXEEZZSE @@ -5077,7 +5101,7 @@ cartridge sha256:6e8d289635ac39479ff1d36733aa3f8b9650593ab972cedb8e2cdbfc03aaa73 description:Start each stage with 99 hearts code:OOKPPAIE cheat - description:Invincibility (disable if you're unable to go through a door) (blinking) + description:Invincibility (blinking) (disable if you cannot enter a door) code:0080:02 cheat description:Remove invincibility blinking @@ -5250,6 +5274,9 @@ cartridge sha256:e84d90fefb92f2b6ab70e35bfb990978c7e384e357ec6b995c3880bff4c5b46 cheat description:Infinite health code:AOEITEEN + cheat + description:Multi-jump + code:AAKGSGPA+SXXKEOZA cheat description:Freeze mechanical bulldog code:ATUEENSL @@ -6000,9 +6027,6 @@ cartridge sha256:d41e28b1a33b3b6768e7c39c9fdfb1fda4b49940542d14085911fabd399e1ca cheat description:Invincibility (blinking) (alt) code:AAVITGIA - cheat - description:Keep weapons after losing a life - code:GXIIUX cheat description:Hit anywhere code:ESEVALEP+GXXTPLEL+GZNVYLEL+SXKTYLAX @@ -6013,14 +6037,23 @@ cartridge sha256:d41e28b1a33b3b6768e7c39c9fdfb1fda4b49940542d14085911fabd399e1ca description:Jump higher code:UNVSYVKN+XNVSPVUN cheat - description:Run twice as fast + description:Run 2x as fast code:VYVIPNNN+ZASSIYPA + cheat + description:Run 4x as fast + code:GASSIYPA+KYVIPNNN + cheat + description:Keep weapons after losing life + code:GXIIUX + cheat + description:Press Select to change weapons - P1 + code:GGXNIVNN+IZOYLVNY+KZOYZVNY+PZONYVNN+LAOYIVNY+SAXNPVNY+LIOYYVNY+SZXNLVNY+OGXYPVNN+YAXYAVNY+SYXNGVNY+OZXYIVNN+ZAXYGVNY+SZONIVNY+PAXNAVNY+ZPKILAIZ+TAONGVNN+PTXYYVNN+TGXNTVNY+PZONPVNN+VYKIGAEI+XZONTVNN+XZXNZVNN+AZONZVNY+EIONAVNY+EIXNYVNY+EIXYLVNY+EYONLVNY+EYOYGVNY+GAXYZVNY+GGKIZAKX+GGOYTVNN + cheat + description:Press Start to complete the level + code:LLKSIAIX cheat description:Start with infinite lives code:SLAIUZ - cheat - description:Press Start to finish level - code:LLKSIAIX cheat description:Start new life with Machine Gun code:PEIIXZ @@ -7693,6 +7726,27 @@ cartridge sha256:038f2241fd6e58600ce234623be752cca47875ef7295fe92c30c328c81ffe7e description:Infinite Red Power Pole time (spin attack) code:0036:0F +cartridge sha256:901b7a9b3e8c0256bd091f845f48b0e7bd903f7456ce3dcea386cc1871fe70c1 + title:Dragon Spirit - The New Legend (USA) + cheat + description:Invincibility and three heads after one hit (blinking) + code:EXAXEU + cheat + description:Infinite health + code:OZVZOZVG + cheat + description:Hit anywhere + code:OXNLEIES+OXXLOIES + cheat + description:Always gold dragon + code:VEOIKAKA + cheat + description:Always blue dragon + code:KXOIKAKA + cheat + description:Invincibility + code:0588:00 + cartridge sha256:5564e54943deddc6d290b256638c774aa379a0d33dcea3b0a4f0c4b9fc2034e3 title:Dragon's Lair (USA) cheat @@ -8700,6 +8754,15 @@ cartridge sha256:761df2c2e04f9ffec5eec59afd821bd74af3b155546519d649876aad37160c0 cartridge sha256:e9f4c9d1b7c66c6af83f2db5d4f704cf5f4b3c86e26a49c05539237807d8875e title:Excitebike (Japan, USA) + cheat + description:Never crash + code:SZOSKTSP + cheat + description:Never crash when holding forward + code:ATSVIASP+ATVTLASP+ATVSUGSP + cheat + description:Never lose speed (even if you crash) + code:SLNKSTVI cheat description:Never overheat code:SXXTYUVV @@ -8716,17 +8779,20 @@ cartridge sha256:e9f4c9d1b7c66c6af83f2db5d4f704cf5f4b3c86e26a49c05539237807d8875 description:Timer runs at quarter speed code:GAUSEYAP cheat - description:Turbo speed on 'A' button + description:Turbo speed on button A code:ENUKGEAP+GESGPALA cheat - description:Mega turbo speed on 'A' button + description:Mega turbo speed on button A code:EVUKGEAP+TESGPALA cheat - description:Never crash when holding forward - code:ATSVIASP+ATVTLASP+ATVSUGSP + description:Infinite obstacles in design mode + code:AAEYSAPA cheat - description:Never lose speed (even if you crash) - code:SLNKSTVI + description:Start racing before gate opens + code:AAEVXXAL+AAXGXSIP+AAXSOXYL+APUSOTEI + cheat + description:Press Start to complete current race (uses your race position for the verdict) + code:AASKOZLA+ZISKEZOL cartridge sha256:9e3c5574e31cbf74146808df930a70856d7196ec581e40cae3061743504bfba2 title:Exodus - Journey to the Promised Land (USA) (v4.0) (Unl) @@ -9559,7 +9625,7 @@ cartridge sha256:5f21fadd084947d11224d1f37218a504bd75f7c6f17212f638a6917ba8a96f9 cartridge sha256:9a0cc935c7d8452eff5b90f591bb6390d04362545ecd66b4be67a875ad63dc73 title:Fire Dragon (Asia) (Unl) cheat - description:One fireball needed to complete level + description:One fireball needed to finish the level code:034F:04 cheat description:Start on stage 50 @@ -11338,7 +11404,7 @@ cartridge sha256:a2033c3b3d9f54b37fad8083604d37e2b2cb4ff77e0e183021141f55dfa9c4c description:Keep weapon after death code:SXUTEUSO cheat - description:Press Start to finish level + description:Press Start to complete the level code:LASKYYPO cheat description:Start a new game to view the ending @@ -13648,6 +13714,45 @@ cartridge sha256:49fe0c49cd0a2841ae9c8ae5aa19f710d187ee6931a1e531d3bff19772ca4af description:Explosive multi-shots (from small dinosaurs instead of normal bullets) code:NEXASASA+NEUAXASA +cartridge sha256:f40341cf7e76480465ba8ab2d09e44644c3e3af7d647dc04c8b38357b26e014a + title:Just Breed (Japan) + cheat + description:No health - all enemies + code:69E3:00+69E4:00+69E5:00+69E6:00+69DA:00+69DB:00+69DC:00+69DD:00+69DE:00+69DF:00+69E0:00+69E1:00+69E2:00 + cheat + description:Lots of EXP after battle + code:6F6E:FF + cheat + description:Max EXP after battle + code:6F6E:FF+6F6F:FF + cheat + description:Max gold after battle + code:6F6C:FF+6F6D:FF + cheat + description:Max Health (Swordsman/Archer, Etc. 1) + code:69C4:FF + cheat + description:Max Magic (Swordsman/Archer, Etc. 1) + code:6A04:FF + cheat + description:Max Health (Swordsman/Archer, Etc. 2) + code:69C6:FF + cheat + description:Max Magic (Swordsman/Archer, Etc. 2) + code:6A06:FF + cheat + description:Max Health (Swordsman/Archer, Etc. 3) + code:69C5:FF + cheat + description:Max Magic (Swordsman/Archer, Etc. 3) + code:6A05:FF + cheat + description:Max Health (Swordsman/Archer, Etc. 4) + code:69C3:FF + cheat + description:Max Magic (Swordsman/Archer, Etc. 4) + code:6A03:FF + cartridge sha256:2ae0a99b457a6d00ff0b241aa08f98d40c5c5ed45e634a7ed934b386bbd17a12 title:Kabuki - Quantum Fighter (USA) cheat @@ -14059,7 +14164,7 @@ cartridge sha256:f85a689b4ff7a5e51703e5fabc73ca1af43e6519754c4a59c11a960baa323b4 description:Infinite lives code:SZKKXIVG cheat - description:Press Start to finish level + description:Press Start to complete the level code:GEXGUALU+LEXGSALU+OXXGXAIK cheat description:One life after continue @@ -18400,6 +18505,21 @@ cartridge sha256:6b04b87ab30e885974844ad693cc39ba8c87e7e650e1f9cf22a054e0a385df4 description:Infinite weapons code:03F5:0A+03F6:0A+03F7:09 +cartridge sha256:0bd6257a4566c57c582421bfbf8e81a5491a94e13f4e7a9378c3332c70884532 + title:Mitsume ga Tooru (Japan) + cheat + description:Hit anywhere + code:AEULXZLA + cheat + description:Collect money from anywhere + code:AIXALGEL+ALVEOIEL + cheat + description:Start a new game for hidden debug TEST MODE menu + code:LAKAPLGA + cheat + description:Start a new game to view the ending + code:YAKAPLGA + cartridge sha256:f997fe34edf1d998694aa979c81fe0063480274b4284498f230fffe694fe87ac title:Monopoly (USA) cheat @@ -20151,15 +20271,15 @@ cartridge sha256:4986c3862a04fcf5b22df58b1182ec2ad636e6083714ac7c069adc1639023eb cheat description:Infinite health code:OTKESZSV - cheat - description:Take minimum damage - code:SZKAKXOU cheat description:Infinite lives code:SZSIAAVG cheat description:Hit anywhere code:AEOANGZZ+ENEEUGEP + cheat + description:Take minimum damage + code:SZKAKXOU cheat description:Mega-jump code:AZXSAVAU @@ -20169,6 +20289,12 @@ cartridge sha256:4986c3862a04fcf5b22df58b1182ec2ad636e6083714ac7c069adc1639023eb cheat description:Don't lose multi-boomerangs when you die code:GZUSGAVG+GZVSZASA + cheat + description:Press Start to finish the level (don't use on Protect level) + code:AEEIPPPE+AOEILOIK+AVEIGOOZ + cheat + description:Start a new game to view the ending + code:YANNLTZA cheat description:Start with 1 life code:AAXYZYZA @@ -20220,6 +20346,9 @@ cartridge sha256:6c462c3fa07aab70759376fe6b59e9c91e808f79fae2960f869bafc9cf20dca cheat description:Maximum throwing ability on pick-up code:OZVULSOK+SANLZIVT + cheat + description:Start a new game to view the ending + code:YAXTNTLA cheat description:Start with 1 life code:AEKEPTZA @@ -20520,21 +20649,33 @@ cartridge sha256:ea81de1a6d901d8d1ad229a6d8d88edcc8e1aeeae6146aa4cd01eb0310eb44d cheat description:Infinite health code:SZNZKOSE+SZUZPVSE+VZKZNOVE - cheat - description:Never lose a life against normal enemy - code:XVOVGXXK - cheat - description:Never lose a life against end of level enemy - code:XVOEXOXK cheat description:Infinite Grenades code:XTSVSNXK cheat description:Infinite bullets and Rockets code:AESYAPPA + cheat + description:Never lose a life against normal enemy + code:XVOVGXXK + cheat + description:Never lose a life against end of level enemy + code:XVOEXOXK + cheat + description:Hit anywhere + code:AANZGXAZ+AAOXYXIA+AAXXAKPA+AAXXZPZL cheat description:Faster Punisher code:GEUUYIZA + cheat + description:Stage scrolls 2x as fast + code:PANVGGAA + cheat + description:Stage scrolls 3x as fast + code:ZANVGGAA + cheat + description:Stage scrolls 4x as fast + code:LANVGGAA cheat description:150 Machine Gun bullets on pick-up code:PEUYNLAA @@ -20977,6 +21118,27 @@ cartridge sha256:67123fe28cf5fbadeafc77400a0812f0135ab36706ec7d1267f84931d044e71 description:Exit always open code:0053:01 +cartridge sha256:d4f1650059a011455577561ea607993a5046d452ba987b1c7381cad56550be0a + title:R.B.I. Baseball (USA) + cheat + description:Perfectly straight pitches - both players + code:EESLUZTL+OXSLXZPN + cheat + description:Super slow pitches - both players + code:AEXUKZTL+OXXUUZOU + cheat + description:Slow pitches - both players + code:LEXUKZTL+OXXUUZOU + cheat + description:Fast pitches - both players + code:OXXUUZOU+YEXUKZTL + cheat + description:Super fast pitches - both players + code:OXXUUZOU+YEXUKZTU + cheat + description:All missed pitches are strikes - both players + code:AOVLSLEI + cartridge sha256:3f9e3d3b48a897d94003df004ab4b332d749f85ea5d0e1a1b29b6d4f5634049a title:R.C. Pro-Am (USA) (Rev A) cheat @@ -22878,6 +23040,12 @@ cartridge sha256:a98e48a26c104375ae45e5c1bc4eb7b2a446e0e9ffa7ed3923c3cf5eec9a549 cheat description:Autofire without having to hold the button down code:NNNOUTSN + cheat + description:Press Start to complete current mission (do not use past sector 40) + code:AEOIILYA+OXOIPUPK+PUOIGUSN+ZEOIZLPA + cheat + description:Start a new game to view the ending + code:LAEAZYPA cheat description:Start with 1 life code:PEXSIZLA @@ -23623,7 +23791,7 @@ cartridge sha256:c85ed147e6da0da5ef02c930cc52621ae38d66971a332d168bf31126a3a740c description:One hit defeats Metal Gear code:ESXALLEY cheat - description:Start a new game to view ending + description:Start a new game to view the ending code:PPUGASTA cheat description:Start with half bullets for Beretta M92 @@ -24811,7 +24979,7 @@ cartridge sha256:3edd803db1cc88155720625ed8f3e362a5e3c660e7faf3285bbe3a2c6571511 description:Press Start to complete current level code:AUOVNXPU+GEOVSZPA cheat - description:Start a new game to view ending + description:Start a new game to view the ending code:AEKTLGAE cheat description:Start with Spray Gun @@ -24915,12 +25083,6 @@ cartridge sha256:fcb6a0ef3a20c19b356005fbb21dc8009563b1cb5a9aaebc8e9386b4a8c5912 cheat description:Fireballs hit anywhere code:GZXIPYEP - cheat - description:Control Mario in entrances that lead to underground - code:SNAULA - cheat - description:Control Mario in demo and title screen - code:PEUEGZAA+ANUETXKY+YEUEYZTA cheat description:Gain a 1-up when an enemy is killed or power-up is gained code:AEVAIGYA @@ -24961,8 +25123,32 @@ cartridge sha256:fcb6a0ef3a20c19b356005fbb21dc8009563b1cb5a9aaebc8e9386b4a8c5912 description:Turn all enemies into Toad code:NULTKA cheat - description:Walk through pipes and blocks + description:Can control Mario in demo and title screen + code:PEUEGZAA+ANUETXKY+YEUEYZTA + cheat + description:Can control Mario in entrances that lead to underground + code:SNAULA + cheat + description:Can move left or right while crouched + code:APXLLPEY + cheat + description:Can walk through pipes and blocks code:GIIIVY + cheat + description:Small Mario can break bricks + code:AAOUEIPA+AENLNGZA+EZOLNIEI + cheat + description:Fireballs can kill Bowser's Fire + code:AEOIGNTZ + cheat + description:Fireballs can kill Bullet Bill + code:AEESGYTL + cheat + description:Fireballs can kill Buzzy Beetle + code:AASIYNLT + cheat + description:Fireballs can kill Podoboo + code:AAXVZAGA+AEOIAYZL cheat description:Enable level select code:AAYAAZ @@ -25071,12 +25257,6 @@ cartridge sha256:5dde385041aa7364c78205f2ba49615f416c701b6025e38aa1d7b9c4f99a62d cheat description:SMB - Fireballs hit anywhere code:GZXIPYEP - cheat - description:SMB - Control Mario in entrances that lead to underground - code:SNAULA - cheat - description:SMB - Control Mario in demo and title screen - code:PEUEGZAA+ANUETXKY+YEUEYZTA cheat description:SMB - Gain a 1-up when an enemy is killed or power-up is gained code:AEVAIGYA @@ -25117,8 +25297,32 @@ cartridge sha256:5dde385041aa7364c78205f2ba49615f416c701b6025e38aa1d7b9c4f99a62d description:SMB - Turn all enemies into Toad code:NULTKA cheat - description:SMB - Walk through pipes and blocks + description:SMB - Can control Mario in demo and title screen + code:PEUEGZAA+ANUETXKY+YEUEYZTA + cheat + description:SMB - Can control Mario in entrances that lead to underground + code:SNAULA + cheat + description:SMB - Can move left or right while crouched + code:APXLLPEY + cheat + description:SMB - Can walk through pipes and blocks code:GIIIVY + cheat + description:SMB - Small Mario can break bricks + code:AAOUEIPA+AENLNGZA+EZOLNIEI + cheat + description:SMB - Fireballs can kill Bowser's Fire + code:AEOIGNTZ + cheat + description:SMB - Fireballs can kill Bullet Bill + code:AEESGYTL + cheat + description:SMB - Fireballs can kill Buzzy Beetle + code:AASIYNLT + cheat + description:SMB - Fireballs can kill Podoboo + code:AAXVZAGA+AEOIAYZL cheat description:SMB - Enable level select code:AAYAAZ @@ -25230,12 +25434,6 @@ cartridge sha256:26977a6c51a6f1e1af895b8863e8e7d57c5321621f29cf58ebfbf85163a999d cheat description:SMB - Fireballs hit anywhere code:GZXIPYEP - cheat - description:SMB - Control Mario in entrances that lead to underground - code:SNAULA - cheat - description:SMB - Control Mario in demo and title screen - code:PEUEGZAA+ANUETXKY+YEUEYZTA cheat description:SMB - Gain a 1-up when an enemy is killed or power-up is gained code:AEVAIGYA @@ -25276,8 +25474,32 @@ cartridge sha256:26977a6c51a6f1e1af895b8863e8e7d57c5321621f29cf58ebfbf85163a999d description:SMB - Turn all enemies into Toad code:NULTKA cheat - description:SMB - Walk through pipes and blocks + description:SMB - Can control Mario in demo and title screen + code:PEUEGZAA+ANUETXKY+YEUEYZTA + cheat + description:SMB - Can control Mario in entrances that lead to underground + code:SNAULA + cheat + description:SMB - Can move left or right while crouched + code:APXLLPEY + cheat + description:SMB - Can walk through pipes and blocks code:GIIIVY + cheat + description:SMB - Small Mario can break bricks + code:AAOUEIPA+AENLNGZA+EZOLNIEI + cheat + description:SMB - Fireballs can kill Bowser's Fire + code:AEOIGNTZ + cheat + description:SMB - Fireballs can kill Bullet Bill + code:AEESGYTL + cheat + description:SMB - Fireballs can kill Buzzy Beetle + code:AASIYNLT + cheat + description:SMB - Fireballs can kill Podoboo + code:AAXVZAGA+AEOIAYZL cheat description:SMB - Enable level select code:AAYAAZ @@ -25389,12 +25611,6 @@ cartridge sha256:968cf4ae63fddf6a0d379bb12add5563f468e57ddddb69e00e1379a839234f9 cheat description:SMB - Fireballs hit anywhere code:GZXIPYEP - cheat - description:SMB - Control Mario in entrances that lead to underground - code:SNAULA - cheat - description:SMB - Control Mario in demo and title screen - code:PEUEGZAA+ANUETXKY+YEUEYZTA cheat description:SMB - Gain a 1-up when an enemy is killed or power-up is gained code:AEVAIGYA @@ -25435,8 +25651,32 @@ cartridge sha256:968cf4ae63fddf6a0d379bb12add5563f468e57ddddb69e00e1379a839234f9 description:SMB - Turn all enemies into Toad code:NULTKA cheat - description:SMB - Walk through pipes and blocks + description:SMB - Can control Mario in demo and title screen + code:PEUEGZAA+ANUETXKY+YEUEYZTA + cheat + description:SMB - Can control Mario in entrances that lead to underground + code:SNAULA + cheat + description:SMB - Can move left or right while crouched + code:APXLLPEY + cheat + description:SMB - Can walk through pipes and blocks code:GIIIVY + cheat + description:SMB - Small Mario can break bricks + code:AAOUEIPA+AENLNGZA+EZOLNIEI + cheat + description:SMB - Fireballs can kill Bowser's Fire + code:AEOIGNTZ + cheat + description:SMB - Fireballs can kill Bullet Bill + code:AEESGYTL + cheat + description:SMB - Fireballs can kill Buzzy Beetle + code:AASIYNLT + cheat + description:SMB - Fireballs can kill Podoboo + code:AAXVZAGA+AEOIAYZL cheat description:SMB - Enable level select code:AAYAAZ @@ -26616,6 +26856,15 @@ cartridge sha256:f6e88113b5f64cf7ffd915dd60b49e55d7015aaeb8b232c87e9855d4b9759cb cartridge sha256:d088f4b91a03dd6a618245fffb492bcda127c7faa6d880596aa5e751fdac0181 title:Tecmo Bowl (USA) (Rev A) + cheat + description:Instant touchdowns - P1 + code:AAVELPLA + cheat + description:Instant touchdowns - P2 + code:AAEEKILA + cheat + description:Always kick with max power - P1 + code:IVXOKLZA+OXXOUUPV cheat description:Only 2 downs allowed code:ZAXAYIGA+ZAXOTPGA @@ -26634,6 +26883,15 @@ cartridge sha256:d088f4b91a03dd6a618245fffb492bcda127c7faa6d880596aa5e751fdac018 cartridge sha256:d2b56b27912cfc03756c94df6667fdf923c8a3746fa37e4632eeb4134ef4c200 title:Tecmo Bowl (USA) + cheat + description:Instant touchdowns - P1 + code:AAVELPLA + cheat + description:Instant touchdowns - P2 + code:AAEEKILA + cheat + description:Always kick with max power - P1 + code:IVXOKLZA+OXXOUUPV cheat description:Only 2 downs allowed code:ZAXAYIGA+ZAXOTPGA @@ -27132,6 +27390,9 @@ cartridge sha256:10e2091a1c5e3ff3f636944fb274cd61db09dc25d0c14868710675cf1f86fd0 cheat description:Start with 1/3 health - both players code:AUXAGAEL + cheat + description:Start a new game to view the ending + code:LEXYLGZE cheat description:Infinite health - P1 code:0590:B0 @@ -27476,7 +27737,7 @@ cartridge sha256:c47a01c9b32642ad3145316804e64b0475a20863e42e81d17c664d03dcdde3c code:SZOOSVVK cheat description:Infinite health and one Carrot - code::SEOEYXKX + code:SEOEYXKX cheat description:Infinite time code:SIKINXVS @@ -27490,8 +27751,20 @@ cartridge sha256:c47a01c9b32642ad3145316804e64b0475a20863e42e81d17c664d03dcdde3c description:Speed up timer code:YPXIXXLU cheat - description:Pick up more hearts + description:Multi-jump + code:AASPPVPZ + cheat + description:Pick-up more hearts code:AEEPPYPA + cheat + description:Power decreases slower when using Dizzy Devil's spin attack + code:PEVOIPZA + cheat + description:Press Start to finish the level (don't use on 6-3) + code:GENIVPPE+GKNSEOIK + cheat + description:Start a new game to view the ending + code:AOOKSYAA cheat description:1 life after continue code:AEXZNZZA @@ -27579,6 +27852,9 @@ cartridge sha256:d4a94fd07859485fc2aac73d627933b70e1977c93b744ec3d71b66d4365ab7f cheat description:Fun house costs 90 normal tickets code:PANOZPIE + cheat + description:Start a new game to view the ending + code:PAKYINAE cheat description:Start with 20 tickets instead of 10 code:ZAEYPYPA @@ -27636,6 +27912,9 @@ cartridge sha256:e580f51b06217b102e56ec98fff7c4ebad5b925fa3a28042d67433cffa8c5cd cheat description:Infinite health code:EESEYEVG + cheat + description:Infinite weapons + code:SZNOGUVV+SXEOLUVV+SXOOZUSE cheat description:Infinite time code:AAKEVYPA @@ -27643,19 +27922,22 @@ cartridge sha256:e580f51b06217b102e56ec98fff7c4ebad5b925fa3a28042d67433cffa8c5cd description:Infinite lives code:SXNYZSVK cheat - description:When your weapon runs out of ammo its replaced with the double weapon + description:Hit anywhere - normal enemies + code:SXSETVSO+XVEAPTAV + cheat + description:When weapon runs out of ammo it's replaced with the double weapon code:PEOPTLAA cheat - description:When your weapon runs out of ammo its replaced with the wave weapon + description:When weapon runs out of ammo it's replaced with the wave weapon code:ZEOPTLAA cheat - description:When your weapon runs out of ammo its replaced with the 3-way weapon + description:When weapon runs out of ammo it's replaced with the 3-way weapon code:LEOPTLAA cheat - description:When your weapon runs out of ammo its replaced with the flame weapon + description:When weapon runs out of ammo it's replaced with the flame weapon code:GEOPTLAA cheat - description:When your weapon runs out of ammo its replaced with the fireball weapon + description:When weapon runs out of ammo it's replaced with the fireball weapon code:IEOPTLAA cheat description:Start with less time @@ -27666,9 +27948,6 @@ cartridge sha256:e580f51b06217b102e56ec98fff7c4ebad5b925fa3a28042d67433cffa8c5cd cheat description:Start with even more time code:PAEIKALE+PAKAGALE - cheat - description:Weapons don't run out - code:SZNOGUVV+SXEOLUVV+SXOOZUSE cheat description:Start with one heart - first life only code:PAENPIZA @@ -31198,7 +31477,7 @@ cartridge sha256:b8055844825653210d252d29a2229f9a3e7e512004e83940620173c57d8723f description:Invincibility after one hit code:1DBB-D4D7 cheat - description:Almost invincible in action sequences + description:Infinite health in action sequences code:2264-6FD4 cheat description:Infinite MP (Magic Points) @@ -31240,7 +31519,7 @@ cartridge sha256:b8055844825653210d252d29a2229f9a3e7e512004e83940620173c57d8723f description:Start with 1/2 health (first game only) code:D081-6DD8 cheat - description:Infinite health in action sequences + description:Infinite health in action sequences (alt) code:7E001D:08 cheat description:Infinite health in sim mode @@ -39746,40 +40025,40 @@ cartridge sha256:1a79d51a2ad7dd4848205a07ff8e5d873b155dc420de5e52158c9bab935e05c title:Dream TV (USA) cheat description:Almost infinite health - code:8FA6 3DA8+8FAA 3FA8 + code:8FA6-3DA8+8FAA-3FA8 cheat description:Infinite lives - code:DDCE C7DC - cheat - description:Start with 5 lives - code:D9B8 1F04 - cheat - description:Start with 1 life - code:DFB8 1F04 - cheat - description:Start with 8 lives - code:D6B8 1F04 + code:DDCE-C7DC cheat description:One hit kills, except skeletons - code:8F23 3768 + code:8F23-3768 cheat description:Mega-jump (disable to land again) - code:8F84 17D8 + code:8F84-17D8 cheat description:Can't get hit - some characters are white - code:DDC7 1DD8 + code:DDC7-1DD8 + cheat + description:Start with 5 lives + code:D9B8-1F04 + cheat + description:Start with 1 life + code:DFB8-1F04 + cheat + description:Start with 8 lives + code:D6B8-1F04 cheat description:Start with 2/3 health - 1st life - code:4DBD CF04 + code:4DBD-CF04 cheat description:Start with 2/3 health - after 1st life - code:4DCE CD0C + code:4DCE-CD0C cheat description:Start with 1/3 health - 1st life - code:FDBD CF04 + code:FDBD-CF04 cheat description:Start with 1/3 health - after 1st life - code:FDCE CD0C + code:FDCE-CD0C cartridge sha256:c509e957873d6cff232bc360ae1795ea74e86bf4fa09c686f6cfc83bd8bac3d7 title:Dual Orb II (Japan) @@ -40523,13 +40802,13 @@ cartridge sha256:0a8cd5101f849ccd4e40d55fdc4edce914b2825b69eb76ec31cf53b59719e79 title:Eye of the Beholder (USA) cheat description:Infinite HP - code:8285 6D2C+82DE 049B + code:8285-6D2C+82DE-049B cheat description:No waiting to hit again - code:828D A798 + code:828D-A798 cheat description:One hit kills (works for enemies also) - code:CBAA A726+3CA2 AD96 + code:CBAA-A726+3CA2-AD96 cheat description:Pick a lawful, human male fighter and he will be at Level 8 code:D68B-A474 @@ -45672,6 +45951,57 @@ cartridge sha256:183af7d642b55d52cd594786ec2f031d033cc6c8c1a2a84a834e4ada04301b2 cheat description:Infinite health (disable then enable when bored in sub games) code:7E9EB0:03 + cheat + description:Infinite lives + code:7E9E90:0A + cheat + description:Start on Greek Village I + code:7E0394:05+7E0398:05 + cheat + description:Start on Rocket Ride I + code:7E0394:06+7E0398:06 + cheat + description:Start on Greek Village II + code:7E0394:07+7E0398:07 + cheat + description:Start on Space Walk I + code:7E0394:08+7E0398:08 + cheat + description:Start on Greek Village III + code:7E0394:09+7E0398:09 + cheat + description:Start on Rocket Ride II + code:7E0394:0A+7E0398:0A + cheat + description:Start on Lava Dome I + code:7E0394:0B+7E0398:0B + cheat + description:Start on Space Walk II + code:7E0394:0C+7E0398:0C + cheat + description:Start on Lava Dome II + code:7E0394:0D+7E0398:0D + cheat + description:Start on Rocket Ride III + code:7E0394:0E+7E0398:0E + cheat + description:Start on Lava Dome III + code:7E0394:0F+7E0398:0F + cheat + description:Start on Space Walk III + code:7E0394:10+7E0398:10 + cheat + description:Start on Exit to Atlanta I + code:7E0394:11+7E0398:11 + cheat + description:Start on Exit to Atlanta II + code:7E0394:12+7E0398:12 + cheat + description:Start on Round Ends + code:7E0394:13+7E0398:13 + cheat + description:Start on Game Ending + code:7E0394:14+7E0398:14 cartridge sha256:62557ee2a3fc3b5a3f59431f966eb61bb380ba983ef6c7742cb55cf075f15f6c title:J.R.R. Tolkien's The Lord of the Rings - Volume 1 (USA) @@ -45957,6 +46287,9 @@ cartridge sha256:a314583b11d594b8245b5177aa64a4d3b7497d096edabbea7c1842c57aa2ad2 cheat description:Infinite lives (alt) code:7E1F93:03 + cheat + description:Infinite bombs + code:7E1F95:09 cartridge sha256:6f0bec87ece503b0fbe108cd159ed6f5fa7711b1c4fe31e982af41ad5c638093 title:Jim Power - The Lost Dimension in 3D (USA) @@ -46377,18 +46710,18 @@ cartridge sha256:771a0322d9f5f8e13a52d01e80257a1f75cc693cf4abf74793520eb5f8b5580 cheat description:Hearts from big jungle fruit restore all energy code:DDCF-3F6D + cheat + description:Super-jump - Mowgli + code:E8CA-3DA4 + cheat + description:Mega-jump - Mowgli + code:ECCA-3DA4 cheat description:20 seconds from hourglass code:D4C0-1FAF cheat description:30 seconds from hourglass code:D7C0-1FAF - cheat - description:Super-jumping Mowgli - code:E8CA-3DA4 - cheat - description:Mega-jumping Mowgli - code:ECCA-3DA4 cheat description:Bonus gems worth 2 (don't collect over 100) code:D4CA-4DDF @@ -49617,6 +49950,9 @@ cartridge sha256:80c22cc92d51a54de9cd9fd00db5ff58a35fff35e822169c94e445d50834fba cheat description:Start with fewer magazine clips code:DF6A-AF6F + cheat + description:Invincibility (blinking) + code:7E025E:50 cheat description:Infinite health (alt) code:7E0226:06 @@ -49626,6 +49962,12 @@ cartridge sha256:80c22cc92d51a54de9cd9fd00db5ff58a35fff35e822169c94e445d50834fba cheat description:Infinite time (alt) code:7E0D28:99+7E0D29:09 + cheat + description:Play as Riggs + code:7E0246:00 + cheat + description:Play as Murtaugh + code:7E0246:01 cartridge sha256:457abe634e0a8be03e29513a3dca8f3e9d0ddc6bf97d8931f2316094260f3712 title:Lion King, The (USA) @@ -49771,6 +50113,24 @@ cartridge sha256:ab3d97c1a3a979e1680a428ec65df54cfb72997bbfe2173292248a4fa8c51ba description:Infinite health - 3rd viking code:7E103B:06 +cartridge sha256:8510491f99400115ccf33570269bc4e484fb56370f7ac36f12e73eec19d342da + title:Lucky Luke (Europe) (En,Fr,De,Es) + cheat + description:Invincibility + code:7E0526:48 + cheat + description:Infinite health + code:7E059F:04 + cheat + description:Infinite lives + code:7E05A0:09 + cheat + description:Infinite rounds + code:7E05A2:09 + cheat + description:Infinite bombs + code:7E05A3:09 + cartridge sha256:73731a5a7932965de02a9e98055dcf88b4d17b8f710a6ecfde3e36a1f248773b title:Lufia & The Fortress of Doom (USA) cheat @@ -59195,19 +59555,19 @@ cartridge sha256:549f2e5b17f685cad25ba71ce7bc6e004e7bfd09e6be12a827af9a9a26556ff title:Redline F-1 Racer (USA) cheat description:Always in 1st place - code:C98E 6FDF - cheat - description:Instant 255 mph speed (best to get into 6th gear before activating this code, then you can go 357 mph) - code:CBC5 D70F+EEC5 D7AF - cheat - description:Don't lose speed when you get off accelerator button - code:C98C 6F0F - cheat - description:No loss of speed on grass - code:C9BD 0F04 + code:C98E-6FDF cheat description:Infinite special fuel - code:3CAA AF04 + code:3CAA-AF04 + cheat + description:Instant 255 mph speed (best to get into 6th gear before activating this code, then you can go 357 mph) + code:CBC5-D70F+EEC5-D7AF + cheat + description:No speed loss when you get off accelerator button + code:C98C-6F0F + cheat + description:No speed loss on grass + code:C9BD-0F04 cartridge sha256:71e7083cfcf32b738f60f5eeffd4f9d1fd9250afbde0c56e22a4b97abac377a1 title:Ren & Stimpy Show, The - Fire Dogs (USA) @@ -65059,445 +65419,463 @@ cartridge sha256:3f8efb19eae68f24feb42c018b7dc7a819bfd8d993ab36899681caa7ee94b06 cartridge sha256:a9e3e57d591e995e8e0dd228b619b6aed42205eaf55316fa8ff33f236b3a32b3 title:Super Mario All-Stars (USA) cheat - description:(SMB) Invincibility (Starman effect) + description:SMB - Invincibility (Starman effect) code:292B-67DE cheat - description:(SMB) Invincibility does not last as long + description:SMB - Invincibility does not last as long code:D62F-6DAE cheat - description:(SMB) Invincibility lasts longer + description:SMB - Invincibility lasts longer code:9D2F-6DAE cheat - description:(SMB) Infinite lives (alt) + description:SMB - Infinite lives (alt) code:C2C1-D4AA cheat - description:(SMB) Infinite time + description:SMB - Infinite time code:6D84-DF03 cheat - description:(SMB) Multi-jump + description:SMB - Multi-jump code:2D8E-D7D2 cheat - description:(SMB) Run without holding the dash button + description:SMB - Run without holding the dash button code:DD8E-D702 cheat - description:(SMB) Start File A game with 2 lives + description:SMB - Start File A game with 2 lives code:DFDF-FAAD cheat - description:(SMB) Start File A game with 10 lives + description:SMB - Start File A game with 10 lives code:DBDF-FAAD cheat - description:(SMB) Start File A game with 50 lives + description:SMB - Start File A game with 50 lives code:7FDF-FAAD cheat - description:(SMB) Start File A game with 100 lives + description:SMB - Start File A game with 100 lives code:17DF-FAAD cheat - description:(SMB) 1-up worth nothing + description:SMB - 1-up worth nothing code:C26B-0FBF cheat - description:(SMB) Allows you to select any world for File A + description:SMB - Allows you to select any world for File A code:D5DF-FADD cheat - description:(SMB) Jump lower (disable if you get stuck) + description:SMB - Jump lower (disable if you get stuck) code:CB81-0D02+E281-0D62+3C81-0DA2 cheat - description:(SMB) Super-jump + description:SMB - Super-jump code:CB81-0D02+EC81-0D62+3C81-0DA2 cheat - description:(SMB) Mega-jump + description:SMB - Mega-jump code:CB81-0D02+E681-0D62+3C81-0DA2 cheat - description:(LL) Start File A game with 2 lives + description:LL - Start File A game with 2 lives code:DFDF-FEDD cheat - description:(LL) Start File A game with 10 lives + description:LL - Start File A game with 10 lives code:DBDF-FEDD cheat - description:(LL) Start File A game with 50 lives + description:LL - Start File A game with 50 lives code:7FDF-FEDD cheat - description:(LL) Start File A game with 100 lives + description:LL - Start File A game with 100 lives code:17DF-FEDD cheat - description:(LL) Infinite lives + description:LL - Infinite lives code:C2B6-A455 cheat - description:(LL) Infinite time + description:LL - Infinite time code:6D82-0F79 cheat - description:(LL) Allows you to select any world or level for File A + description:LL - Allows you to select any world or level for File A code:DADF-F30D+D7DF-F36D cheat - description:(LL) Infinite lives + description:LL - Infinite lives code:C2B6-A455 cheat - description:(LL) Multi-jump + description:LL - Multi-jump code:DD86-6F80 cheat - description:(SMB2) Multi-jump - all characters + description:SMB2 - Multi-jump - all characters code:D966-6166 cheat - description:(SMB2) Float - all characters + description:SMB2 - Float - all characters code:6267-A5A6 cheat - description:(SMB2) 1 life after continue + description:SMB2 - 1 life after continue code:DF61-05D0 cheat - description:(SMB2) 9 lives after continue + description:SMB2 - 9 lives after continue code:DB61-05D0 cheat - description:(SMB2) 25 lives after continue + description:SMB2 - 25 lives after continue code:FB61-05D0 cheat - description:(SMB2) 50 lives after continue + description:SMB2 - 50 lives after continue code:7461-05D0 cheat - description:(SMB2) 99 lives after continue + description:SMB2 - 99 lives after continue code:1761-05D0 cheat - description:(SMB2) Infinite lives + description:SMB2 - Infinite lives code:C26E-D5A6 cheat - description:(SMB2) Continue with 3 hearts instead of 2 + description:SMB2 - Continue with 3 hearts instead of 2 code:DF6B-A9A1 cheat - description:(SMB2) Continue with 4 hearts + description:SMB2 - Continue with 4 hearts code:D46B-A9A1 cheat - description:(SMB2) Infinite hearts + description:SMB2 - Infinite hearts code:DD32-6966 cheat - description:(SMB2) Jumping in place charges super jump + description:SMB2 - Jumping in place charges super jump code:7A60-A966 cheat - description:(SMB2) Allows you to select any world for File A + description:SMB2 - Allows you to select any world for File A code:D1D4-FA0D cheat - description:(SMB3) Infinite time - code:6D3D-6619 - cheat - description:(SMB3) Multi-jump - code:40AA-6803 - cheat - description:(SMB3) Fly at any time (run meter always full) - code:DDAF-A8A3 - cheat - description:(SMB3) Infinite flying time - code:EEA4-AB63 - cheat - description:(SMB3) Fireballs hit anywhere - code:4083-D8F3+408D-08F3 - cheat - description:(SMB3) Tail hits anywhere - code:40C4-6C22 - cheat - description:(SMB3) Fireballs can kill most enemies - code:4084-0BB3 - cheat - description:(SMB3) Start and continue as Big Mario - code:E1A3-D60A - cheat - description:(SMB3) Change to Big Mario whenever you go to the map - code:CB69-AC07+DF69-AC67 - cheat - description:(SMB3) Change to Fire Mario whenever you go to the map - code:CB69-AC07+D469-AC67 - cheat - description:(SMB3) Change to Raccoon Mario whenever you go to the map - code:CB69-AC07+D769-AC67 - cheat - description:(SMB3) Change to Frog Mario whenever you go to the map - code:CB69-AC07+D069-AC67 - cheat - description:(SMB3) Change to Tanooki Mario whenever you go to the map - code:CB69-AC07+D969-AC67 - cheat - description:(SMB3) Change to Sledgehammer Mario when you go to the map - code:CB69-AC07+D169-AC67 - cheat - description:(SMB3) All power-ups turn you into Shoe Mario - code:D0A1-6C0A+E1A3-D60A - cheat - description:(SMB3) Collisions turn you into Big Mario - code:D4A8-6CAA - cheat - description:(SMB3) Collisions turn you into Fire Mario - code:D7A8-6CAA - cheat - description:(SMB3) Collisions turn you into Raccoon Mario - code:D0A8-6CAA - cheat - description:(SMB3) Collisions turn you into Frog Mario - code:D9A8-6CAA - cheat - description:(SMB3) Collisions turn you into Tanooki Mario - code:D1A8-6CAA - cheat - description:(SMB3) Collisions turn you into Sledgehammer Mario - code:D5A8-6CAA - cheat - description:(SMB3) After getting star, invincible until end of level (may have to disable to jump) - code:C23B-680D - cheat - description:(SMB3) 1 life after continue - code:DFBB-DBAF - cheat - description:(SMB3) 10 lives after continue - code:DBBB-DBAF - cheat - description:(SMB3) 26 lives after continue - code:FBBB-DBAF - cheat - description:(SMB3) 51 lives after continue - code:74BB-DBAF - cheat - description:(SMB3) 100 lives after continue - code:17BB-DBAF - cheat - description:(SMB3) Infinite lives + description:SMB3 - Infinite lives code:82BB-0C6D cheat - description:(SMB3) Gain lots of lives with each 5 coins + description:SMB3 - Infinite time + code:6D3D-6619 + cheat + description:SMB3 - Infinite flying time + code:EEA4-AB63 + cheat + description:SMB3 - Multi-jump + code:40AA-6803 + cheat + description:SMB3 - Fly at any time (run meter always full) + code:DDAF-A8A3 + cheat + description:SMB3 - Fireballs hit anywhere + code:4083-D8F3+408D-08F3 + cheat + description:SMB3 - Tail hits anywhere + code:40C4-6C22 + cheat + description:SMB3 - Fireballs can kill most enemies + code:4084-0BB3 + cheat + description:SMB3 - Change to Big Mario whenever you go to the map + code:CB69-AC07+DF69-AC67 + cheat + description:SMB3 - Change to Fire Mario whenever you go to the map + code:CB69-AC07+D469-AC67 + cheat + description:SMB3 - Change to Raccoon Mario whenever you go to the map + code:CB69-AC07+D769-AC67 + cheat + description:SMB3 - Change to Frog Mario whenever you go to the map + code:CB69-AC07+D069-AC67 + cheat + description:SMB3 - Change to Tanooki Mario whenever you go to the map + code:CB69-AC07+D969-AC67 + cheat + description:SMB3 - Change to Sledgehammer Mario when you go to the map + code:CB69-AC07+D169-AC67 + cheat + description:SMB3 - All power-ups turn you into Shoe Mario + code:D0A1-6C0A+E1A3-D60A + cheat + description:SMB3 - Collisions turn you into Big Mario + code:D4A8-6CAA + cheat + description:SMB3 - Collisions turn you into Fire Mario + code:D7A8-6CAA + cheat + description:SMB3 - Collisions turn you into Raccoon Mario + code:D0A8-6CAA + cheat + description:SMB3 - Collisions turn you into Frog Mario + code:D9A8-6CAA + cheat + description:SMB3 - Collisions turn you into Tanooki Mario + code:D1A8-6CAA + cheat + description:SMB3 - Collisions turn you into Sledgehammer Mario + code:D5A8-6CAA + cheat + description:SMB3 - After getting star, invincible until end of level (may have to disable to jump) + code:C23B-680D + cheat + description:SMB3 - 1 life after continue + code:DFBB-DBAF + cheat + description:SMB3 - 10 lives after continue + code:DBBB-DBAF + cheat + description:SMB3 - 26 lives after continue + code:FBBB-DBAF + cheat + description:SMB3 - 51 lives after continue + code:74BB-DBAF + cheat + description:SMB3 - 100 lives after continue + code:17BB-DBAF + cheat + description:SMB3 - Gain lots of lives with each 5 coins code:D93E-6C49 cheat - description:(SMB3) 5 coins needed for an extra life + description:SMB3 - 5 coins needed for an extra life code:D93E-6819 cheat - description:(SMB3) 10 coins needed for an extra life + description:SMB3 - 10 coins needed for an extra life code:DC3E-6819 cheat - description:(SMB3) 25 coins needed for an extra life + description:SMB3 - 25 coins needed for an extra life code:FB3E-6819 cheat - description:(SMB3) 50 coins needed for an extra life + description:SMB3 - 50 coins needed for an extra life code:743E-6819 cheat - description:(SMB3) Power-jump + description:SMB3 - Power-jump code:AD3E-6801 cheat - description:(SMB3) Super-jump + description:SMB3 - Super-jump code:863E-6801 cheat - description:(SMB3) Mega-jump + description:SMB3 - Mega-jump code:8D3E-6801 cheat - description:(SMB3) Ultra power-jump + description:SMB3 - Ultra power-jump code:C63E-6801 cheat - description:(SMB3) Mega power-jump + description:SMB3 - Mega power-jump code:DDA9-A603 cheat - description:(SMB3) Select any world for File A game + description:SMB3 - Select any world for File A game code:D5D4-F36D cheat - description:(SMB) Invincibility (Starman) + description:SMB3 - Re-enter already beaten levels + code:DD63-D6A5 + cheat + description:SMB3 - Re-enter already beaten fortresses + code:1D63-D665 + cheat + description:SMB3 - Re-enter already beaten mushroom houses and special levels + code:0D63-D605 + cheat + description:SMB3 - Start and continue as Big Mario + code:E1A3-D60A + cheat + description:SMB - Invincibility (Starman) code:7E07AF:0F cheat - description:(SMB) Infinite lives + description:SMB - Infinite lives code:7E075A:05 cheat - description:(SMB2) Invincibility + description:SMB2 - Invincibility code:7E0085:3B cheat - description:(SMB2) Always big + description:SMB2 - Always big code:7E04C3:1F cheat - description:(SMB2) Always small + description:SMB2 - Always small code:7E04C3:0F cheat - description:(SMB2) Infinite float time - all characters + description:SMB2 - Infinite float time - all characters code:7E04CA:FF cheat - description:(SMB3) Enable debug mode (in game) + description:SMB3 - Enable debug mode (in game) code:7E0160:80 cheat - description:(SMB3) Invincibility + description:SMB3 - Invincibility code:7E0552:80 cheat - description:(SMB3) Invincibility (Starman) + description:SMB3 - Invincibility (Starman) code:7E0553:FF cheat - description:(SMB3) Always Small Mario + description:SMB3 - Always Small Mario code:7E00BB:00 cheat - description:(SMB3) Always Big Mario + description:SMB3 - Always Big Mario code:7E00BB:01 cheat - description:(SMB3) Always Fire Mario + description:SMB3 - Always Fire Mario code:7E00BB:02 cheat - description:(SMB3) Always Raccoon Mario + description:SMB3 - Always Raccoon Mario code:7E00BB:03 cheat - description:(SMB3) Always Frog Mario + description:SMB3 - Always Frog Mario code:7E00BB:04 cheat - description:(SMB3) Always Tanooki Mario + description:SMB3 - Always Tanooki Mario code:7E00BB:05 cheat - description:(SMB3) Always Hammer Bros. Mario + description:SMB3 - Always Hammer Bros. Mario code:7E00BB:06 cheat - description:(SMB3) Have Magic Whistle + description:SMB3 - Have Magic Whistle code:7E1D80:0C cheat - description:(SMB3) Raccoon and Tanooki have P-Wing + description:SMB3 - Raccoon and Tanooki have P-Wing code:7E056E:FF cheat - description:(SMB3) Fly for an unlimited amount of time + description:SMB3 - Fly for an unlimited amount of time code:23CB26:FF cartridge sha256:a8806bfe07cd3c9945d9fd3fcea932ae1cd671cab5cae12bb7a2ae726cbf9175 title:Super Mario All-Stars + Super Mario World (USA) cheat - description:(SMB) Invincibility (Starman effect) + description:SMB - Invincibility (Starman effect) code:292B-67DE cheat - description:(SMB) Invincibility + description:SMB - Invincibility code:62E7-A7D2+2DE7-A7A2 cheat - description:(SMB) Always Fiery Mario after first hit + description:SMB - Always Fiery Mario after first hit code:CB29-AF0E+D429-AF6E+CB8B-676A+DD8B-67AA cheat - description:(SMB) Fireballs hit anywhere + description:SMB - Fireballs hit anywhere code:4028-D4DE cheat - description:(SMB) Multi-jump + description:SMB - Multi-jump code:2D8E-D7D2 cheat - description:(SMB) Run without holding the dash button + description:SMB - Run without holding the dash button code:DD8E-D702 cheat - description:(LL) Infinite lives + description:LL - Infinite lives code:C2B6-A455 cheat - description:(LL) Multi-jump + description:LL - Multi-jump code:DD86-6F80 cheat - description:(SMB2) Infinite lives + description:SMB2 - Infinite lives code:C26E-D5A6 cheat - description:(SMB2) Infinite hearts + description:SMB2 - Infinite hearts code:DD32-6966 cheat - description:(SMB2) Multi-jump - all characters + description:SMB2 - Multi-jump - all characters code:D966-6166 cheat - description:(SMB2) Float - all characters + description:SMB2 - Float - all characters code:6267-A5A6 cheat - description:(SMB3) Fireballs hit anywhere + description:SMB3 - Fireballs hit anywhere code:4083-D8F3+408D-08F3 cheat - description:(SMB3) Tail hits anywhere + description:SMB3 - Tail hits anywhere code:40C4-6C22 cheat - description:(SMB3) Fireballs can kill most enemies + description:SMB3 - Fireballs can kill most enemies code:4084-0BB3 cheat - description:(SMW) Nintendo's debug + description:SMB3 - Re-enter already beaten levels + code:DD63-D6A5 + cheat + description:SMB3 - Re-enter already beaten fortresses + code:1D63-D665 + cheat + description:SMB3 - Re-enter already beaten mushroom houses and special levels + code:0D63-D605 + cheat + description:SMW - Nintendo's debug code:DDA6-DF07 cheat - description:(SMW) Infinite flying time for Yoshi + description:SMW - Infinite flying time for Yoshi code:C2EC-0700 cheat - description:(SMB) Invincibility (Starman) + description:SMB - Invincibility (Starman) code:7E07AF:0F cheat - description:(SMB) Infinite lives + description:SMB - Infinite lives code:7E075A:05 cheat - description:(SMB2) Invincibility + description:SMB2 - Invincibility code:7E0085:3B cheat - description:(SMB2) Infinite float time - all characters + description:SMB2 - Infinite float time - all characters code:7E04CA:FF cheat - description:(SMB3) Enable debug mode (in game) + description:SMB3 - Enable debug mode (in game) code:7E0160:80 cheat - description:(SMB3) Infinite lives + description:SMB3 - Infinite lives code:20919A:BD cheat - description:(SMB3) Invincibility + description:SMB3 - Invincibility code:7E0552:80 cheat - description:(SMB3) Invincibility (Starman) + description:SMB3 - Invincibility (Starman) code:7E0553:FF cheat - description:(SMB3) Always Small Mario + description:SMB3 - Always Small Mario code:7E00BB:00 cheat - description:(SMB3) Always Big Mario + description:SMB3 - Always Big Mario code:7E00BB:01 cheat - description:(SMB3) Always Fire Mario + description:SMB3 - Always Fire Mario code:7E00BB:02 cheat - description:(SMB3) Always Raccoon Mario + description:SMB3 - Always Raccoon Mario code:7E00BB:03 cheat - description:(SMB3) Always Frog Mario + description:SMB3 - Always Frog Mario code:7E00BB:04 cheat - description:(SMB3) Always Tanooki Mario + description:SMB3 - Always Tanooki Mario code:7E00BB:05 cheat - description:(SMB3) Always Hammer Bros Mario + description:SMB3 - Always Hammer Bros Mario code:7E00BB:06 cheat - description:(SMB3) Infinite flying time + description:SMB3 - Infinite flying time code:23CB26:FF cheat - description:(SMB3) Have Magic Whistle + description:SMB3 - Have Magic Whistle code:7E1D80:0C cheat - description:(SMB3) Raccoon and Tanooki have P-Wing + description:SMB3 - Raccoon and Tanooki have P-Wing code:7E056E:FF cheat - description:(SMW) Invincibility + description:SMW - Invincibility code:7E1497:FF cheat - description:(SMW) Invincible (Starman) + description:SMW - Invincible (Starman) code:7E1490:FF cheat - description:(SMW) Always Small Mario + description:SMW - Always Small Mario code:7E0019:00 cheat - description:(SMW) Always Big Mario + description:SMW - Always Big Mario code:7E0019:01 cheat - description:(SMW) Always Caped Mario + description:SMW - Always Caped Mario code:7E0019:02 cheat - description:(SMW) Always Fire Mario + description:SMW - Always Fire Mario code:7E0019:03 cheat - description:(SMW) Infinite time + description:SMW - Infinite time code:7E0F31:09+7E0F32:09+7E0F33:09 cheat - description:(SMW) Infinite P-Balloon time + description:SMW - Infinite P-Balloon time code:7E1891:FF cheat - description:(SMW) Always have Yoshi + description:SMW - Always have Yoshi code:7E0DC1:01 cheat - description:(SMW) Jump to automatically fly + description:SMW - Jump to automatically fly code:7E13E4:70 cheat - description:(SMW) Multi-jump and float down (disable in water and to get on Yoshi) + description:SMW - Multi-jump and float down (disable in water and to get on Yoshi) code:7E1471:01 cheat - description:(SMW) Activate yellow blocks (deactivate before entering the Yellow Switch Palace) + description:SMW - Activate yellow blocks (deactivate before entering the Yellow Switch Palace) code:7E1F28:01 cheat - description:(SMW) Activate blue blocks (deactivate before entering the Blue Switch Palace) + description:SMW - Activate blue blocks (deactivate before entering the Blue Switch Palace) code:7E1F29:01 cheat - description:(SMW) Activate red blocks (deactivate before entering the Red Switch Palace) + description:SMW - Activate red blocks (deactivate before entering the Red Switch Palace) code:7E1F2A:01 cheat - description:(SMW) 8000 points for each enemy stomped + description:SMW - 8000 points for each enemy stomped code:7E1697:06 cartridge sha256:2ada8919688087be60a6a48cace8f877add60c45d2e5d09e2442faa55be62a49 @@ -68963,7 +69341,7 @@ cartridge sha256:5b82cdd6f2da56f43680d6a5021faebe2e06036d30602c1a7917aa414cf8b5f title:Teenage Mutant Ninja Turtles IV - Turtles in Time (USA) cheat description:Invincibility - code:3C86-0764+CB86-07A4+D48B-0DD4+DD8B-0D04+B98B-0D64 + code:3C86-0764+B98B-0D64+CB86-07A4+D48B-0DD4+DD8B-0D04 cheat description:Infinite health code:892F-0DD7 @@ -68971,7 +69349,7 @@ cartridge sha256:5b82cdd6f2da56f43680d6a5021faebe2e06036d30602c1a7917aa414cf8b5f description:Infinite lives code:DDAC-6F67 cheat - description:One hit kills (disable when you reach Shredder's first fight) + description:One hit kills (disable during Shredder's first fight) code:6D6C-0F2F cheat description:Hit anywhere - P1 @@ -70827,9 +71205,21 @@ cartridge sha256:e9fae4c2e171a1fc4f2bd800abd9e42750aaf7a4db9e40c5b9142e15029500b cheat description:Infinite health code:4ABA-67DF + cheat + description:Infinite health - P1 + code:7E07EE:53 + cheat + description:No health - P2 + code:7E084E:00 cheat description:Infinite chances code:4024-6FA7 + cheat + description:Infinite time (seconds) + code:7E00A3:63 + cheat + description:Infinite time (minutes) + code:7E00A4:09 cheat description:Quicker health replenishment code:DD8F-DF0D @@ -70837,14 +71227,11 @@ cartridge sha256:e9fae4c2e171a1fc4f2bd800abd9e42750aaf7a4db9e40c5b9142e15029500b description:Less health replenishment for enemies code:3C80-DDDD cheat - description:Start with 1 chance - code:DD6C-0467 + description:Weaker punch + code:DFAC-D76E cheat - description:Start with 6 chances - code:D96C-0467 - cheat - description:Start with 9 chances - code:DB6C-0467 + description:Weaker kick + code:DFA8-DDDE cheat description:9 minutes per stage code:DBB4-DD6D @@ -70855,23 +71242,41 @@ cartridge sha256:e9fae4c2e171a1fc4f2bd800abd9e42750aaf7a4db9e40c5b9142e15029500b description:2 minutes per stage code:D4B4-DD6D cheat - description:Weaker punch - code:DFAC-D76E + description:Start with 1 chance + code:DD6C-0467 cheat - description:Weaker kick - code:DFA8-DDDE + description:Start with 6 chances + code:D96C-0467 cheat - description:Infinite health - P1 - code:7E07EE:53 + description:Start with 9 chances + code:DB6C-0467 cheat - description:No health - P2 - code:7E084E:00 + description:Start on stage 1 - Gudis + code:7E00F8:00 cheat - description:Infinite time (seconds) - code:7E00A3:63 + description:Start on stage 2 - Bogun + code:7E00F8:01 cheat - description:Infinite time (minutes) - code:7E00A4:09 + description:Start on stage 3 - Degola + code:7E00F8:02 + cheat + description:Start on stage 4 - Barrangas + code:7E00F8:03 + cheat + description:Start on stage 5 - Gudis II + code:7E00F8:04 + cheat + description:Start on stage 6 - Zebokon + code:7E00F8:05 + cheat + description:Start on stage 7 - Majaba + code:7E00F8:06 + cheat + description:Start on stage 8 - Kodalar + code:7E00F8:07 + cheat + description:Start on final stage - Kilazee + code:7E00F8:08 cartridge sha256:794152fc6f55cb15a0b203fa645ac9fa314a293da999d8ec8b3dda080434d175 title:Uncharted Waters (USA) @@ -71846,19 +72251,19 @@ cartridge sha256:132ca0b6a4888edf7de785d48f4417fac28522646e6c7514f80c5e9ff1438d5 title:Wing Commander - The Secret Missions (USA) cheat description:Infinite blaster power - code:C2A6 4D0D + code:C2A6-4D0D cheat description:Infinite fuel - code:C2C8 14AD + code:C2C8-14AD cheat description:Infinite missiles - code:3C66 C7A1 + code:3C66-C7A1 cheat description:Start on mission 4 - code:D068 C402 + code:D068-C402 cheat description:Start on mission 8 - code:D668 C402 + code:D668-C402 cartridge sha256:c3bcd5c716f96e6359ebcfd85c3e9b07b46c5124bf4010d89ceef5b6f2f868f6 title:Wings 2 - Aces High (USA) @@ -72319,6 +72724,147 @@ cartridge sha256:65fe17fd6b297f52df6ce9812ecb02c3bb1bfda3ebc05a19c4a8decbf9a446a description:Lava stops flowing code:7E1685:DB +cartridge sha256:363c60f924257bf6465efc32093c7749a0e69ea7234e47ebd4f070e7b0e7035d + title:Yogi Bear (Japan) + cheat + description:Infinite health + code:7E021E:06 + cheat + description:Infinite lives + code:7E021C:09 + cheat + description:Super-jump + code:7E0AB0:00 + cheat + description:Start on Snow Business Stage 1 + code:7E009F:23 + cheat + description:Start on Snow Business Stage 2 + code:7E009F:28 + cheat + description:Start on Snow Business Stage 3 + code:7E009F:2D + cheat + description:Start on Snow Business Stage 4 + code:7E009F:32 + cheat + description:Start on Cave Capers Stage 1 + code:7E009F:37 + cheat + description:Start on Cave Capers Stage 2 + code:7E009F:3C + cheat + description:Start on Cave Capers Stage 3 + code:7E009F:41 + cheat + description:Start on Cave Capers Stage 4 + code:7E009F:46 + cheat + description:Start on Redwood Rendevous Stage 1 + code:7E009F:4B + cheat + description:Start on Redwood Rendevous Stage 2 + code:7E009F:50 + cheat + description:Start on Redwood Rendevous Stage 3 + code:7E009F:55 + cheat + description:Start on Redwood Rendevous Stage 4 + code:7E009F:5A + cheat + description:Start on Water Palaver Stage 1 + code:7E009F:5F + cheat + description:Start on Water Palaver Stage 2 + code:7E009F:64 + cheat + description:Start on Water Palaver Stage 3 + code:7E009F:69 + cheat + description:Start on Water Palaver Stage 4 + code:7E009F:6E + cheat + description:Start on Construction Site Shenanigans Stage 1 + code:7E009F:73 + cheat + description:Start on Construction Site Shenanigans Stage 2 + code:7E009F:78 + cheat + description:Start on Construction Site Shenanigans Stage 3 + code:7E009F:7D + cheat + description:Start on Construction Site Shenanigans Stage 4 + code:7E009F:82 + +cartridge sha256:163399c955e6d813056826e53fc1a7d21d8958e3d11c6384854cc284412caffb + title:Yogi Bear's Cartoon Capers (Europe) + cheat + description:Infinite health + code:7E021E:06 + cheat + description:Infinite lives + code:7E021C:09 + cheat + description:Start on Snow Business Stage 1 + code:7E009F:23 + cheat + description:Start on Snow Business Stage 2 + code:7E009F:28 + cheat + description:Start on Snow Business Stage 3 + code:7E009F:2D + cheat + description:Start on Snow Business Stage 4 + code:7E009F:32 + cheat + description:Start on Cave Capers Stage 1 + code:7E009F:37 + cheat + description:Start on Cave Capers Stage 2 + code:7E009F:3C + cheat + description:Start on Cave Capers Stage 3 + code:7E009F:41 + cheat + description:Start on Cave Capers Stage 4 + code:7E009F:46 + cheat + description:Start on Redwood Rendevous Stage 1 + code:7E009F:4B + cheat + description:Start on Redwood Rendevous Stage 2 + code:7E009F:50 + cheat + description:Start on Redwood Rendevous Stage 3 + code:7E009F:55 + cheat + description:Start on Redwood Rendevous Stage 4 + code:7E009F:5A + cheat + description:Start on Water Palaver Stage 1 + code:7E009F:5F + cheat + description:Start on Water Palaver Stage 2 + code:7E009F:64 + cheat + description:Start on Water Palaver Stage 3 + code:7E009F:69 + cheat + description:Start on Water Palaver Stage 4 + code:7E009F:6E + cheat + description:Start on Construction Site Shenanigans Stage 1 + code:7E009F:73 + cheat + description:Start on Construction Site Shenanigans Stage 2 + code:7E009F:78 + cheat + description:Start on Construction Site Shenanigans Stage 3 + code:7E009F:7D + cheat + description:Start on Construction Site Shenanigans Stage 4 + code:7E009F:82 + cartridge sha256:90ad69a489194aca7ef7b7fd1d30e0105da4934a81ac8b0333ea20f9248df92d title:Yoshi's Cookie (USA) cheat diff --git a/bsnes/nall/platform.hpp b/bsnes/nall/platform.hpp index 44c34950..f3e4b3f5 100755 --- a/bsnes/nall/platform.hpp +++ b/bsnes/nall/platform.hpp @@ -96,8 +96,6 @@ _wfullpath(fn, nall::utf16_t(filename), _MAX_PATH); strcpy(resolvedname, nall::utf8_t(fn)); for(unsigned n = 0; resolvedname[n]; n++) if(resolvedname[n] == '\\') resolvedname[n] = '/'; - unsigned length = strlen(resolvedname); - if(resolvedname[length] != '/') strcpy(resolvedname + length, "/"); return resolvedname; } diff --git a/bsnes/nes/cartridge/ines.cpp b/bsnes/nes/cartridge/ines.cpp index 2a68fac4..46bb0916 100755 --- a/bsnes/nes/cartridge/ines.cpp +++ b/bsnes/nes/cartridge/ines.cpp @@ -14,7 +14,7 @@ static string iNES(const uint8_t *data, unsigned size) { unsigned prgram = 0; unsigned chrram = chrrom == 0 ? 8192 : 0; - print("iNES mapper: ", mapper, "\n"); +//print("iNES mapper: ", mapper, "\n"); output.append("cartridge\n"); @@ -119,7 +119,7 @@ static string iNES(const uint8_t *data, unsigned size) { output.append("\t\tprg rom=", prgrom, " ram=", prgram, "\n"); output.append("\t\tchr rom=", chrrom, " ram=", chrram, "\n"); - print(output, "\n"); +//print(output, "\n"); return output; } diff --git a/bsnes/nes/nes.hpp b/bsnes/nes/nes.hpp index ec72bac0..b01bf7bb 100755 --- a/bsnes/nes/nes.hpp +++ b/bsnes/nes/nes.hpp @@ -17,6 +17,7 @@ namespace NES { #include +#include #include #include #include @@ -24,7 +25,6 @@ namespace NES { #include #include #include -#include #include #include #include diff --git a/bsnes/snes/cartridge/cartridge.cpp b/bsnes/snes/cartridge/cartridge.cpp index c76e2a34..f8c05fa3 100755 --- a/bsnes/snes/cartridge/cartridge.cpp +++ b/bsnes/snes/cartridge/cartridge.cpp @@ -34,7 +34,7 @@ void Cartridge::load(Mode cartridge_mode, const char *markup) { nvram.reset(); parse_markup(markup); - print(markup, "\n\n"); +//print(markup, "\n\n"); if(ram_size > 0) { ram.map(allocate(ram_size, 0xff), ram_size); @@ -45,7 +45,22 @@ void Cartridge::load(Mode cartridge_mode, const char *markup) { ram.write_protect(false); crc32 = crc32_calculate(rom.data(), rom.size()); - sha256 = nall::sha256(rom.data(), rom.size()); + + switch((Mode)mode) { + case Mode::Normal: + case Mode::BsxSlotted: + sha256 = nall::sha256(rom.data(), rom.size()); + break; + case Mode::Bsx: + sha256 = nall::sha256(bsxflash.memory.data(), bsxflash.memory.size()); + break; + case Mode::SufamiTurbo: + sha256 = nall::sha256(sufamiturbo.slotA.rom.data(), sufamiturbo.slotA.rom.size()); + break; + case Mode::SuperGameBoy: + sha256 = GameBoy::cartridge.sha256(); + break; + } system.load(); loaded = true; diff --git a/bsnes/snes/snes.hpp b/bsnes/snes/snes.hpp index 5b9cefd5..66ea5b21 100755 --- a/bsnes/snes/snes.hpp +++ b/bsnes/snes/snes.hpp @@ -17,6 +17,7 @@ namespace SNES { #include +#include #include #include #include @@ -26,7 +27,6 @@ namespace SNES { #include #include #include -#include #include #include #include diff --git a/bsnes/snes/video/video.cpp b/bsnes/snes/video/video.cpp index eb1b5f80..341f4c15 100755 --- a/bsnes/snes/video/video.cpp +++ b/bsnes/snes/video/video.cpp @@ -65,14 +65,14 @@ void Video::update() { break; } - uint16_t *data = (uint16_t*)ppu.output; + uint32_t *data = (uint32_t*)ppu.output; if(ppu.interlace() && ppu.field()) data += 512; if(hires) { //normalize line widths for(unsigned y = 0; y < 240; y++) { if(line_width[y] == 512) continue; - uint16_t *buffer = data + y * 1024; + uint32_t *buffer = data + y * 1024; for(signed x = 255; x >= 0; x--) { buffer[(x * 2) + 0] = buffer[(x * 2) + 1] = buffer[x]; } diff --git a/bsnes/ui/Makefile b/bsnes/ui/Makefile index 1d8ede74..846c6ffa 100755 --- a/bsnes/ui/Makefile +++ b/bsnes/ui/Makefile @@ -62,6 +62,7 @@ obj/phoenix.o: phoenix/phoenix.cpp $(call rwildcard,phoenix/*) $(phoenix_compile) obj/resource.o: $(ui)/resource.rc +# windres --target=pe-i386 $(ui)/resource.rc obj/resource.o windres $(ui)/resource.rc obj/resource.o # targets diff --git a/bsnes/ui/config/config.cpp b/bsnes/ui/config/config.cpp index b3e5731f..bf18c8e5 100755 --- a/bsnes/ui/config/config.cpp +++ b/bsnes/ui/config/config.cpp @@ -4,7 +4,7 @@ Config *config = 0; Config::Config() { attach(video.driver = "", "Video::Driver"); attach(video.filter = "None", "Video::Filter"); - attach(video.shader = "None", "Video::Shader"); + attach(video.shader = "Blur", "Video::Shader"); attach(video.synchronize = true, "Video::Synchronize"); attach(video.correctAspectRatio = true, "Video::CorrectAspectRatio"); diff --git a/bsnes/ui/general/file-browser.cpp b/bsnes/ui/general/file-browser.cpp index d8be1ead..047a8c09 100755 --- a/bsnes/ui/general/file-browser.cpp +++ b/bsnes/ui/general/file-browser.cpp @@ -62,6 +62,7 @@ void FileBrowser::open(const string &title, unsigned requestedMode, functionbasepath, "filters/" }, "*.filter"); - if(files.size() == 0) files = directory::files({ application->userpath, "filters/" }, "*.filter"); + string path = { application->basepath, "filters/" }; + lstring files = directory::files(path, "*.filter"); + if(files.size() == 0) { + path = { application->userpath, "filters/" }; + files = directory::files(path, "*.filter"); + } reference_array group; settingsVideoFilterList = new RadioItem[files.size()]; for(unsigned n = 0; n < files.size(); n++) { string name = files[n]; - videoFilterName.append({ application->userpath, "filters/", name }); + videoFilterName.append({ path, name }); if(auto position = name.position(".filter")) name[position()] = 0; settingsVideoFilterList[n].setText(name); @@ -351,14 +355,18 @@ void MainWindow::setupVideoFilters() { } void MainWindow::setupVideoShaders() { - lstring files = directory::files({ application->basepath, "shaders/" }, { "*.", config->video.driver, ".shader" }); - if(files.size() == 0) files = directory::files({ application->userpath, "shaders/" }, { "*.", config->video.driver, ".shader" }); + string path = { application->basepath, "shaders/" }; + lstring files = directory::files(path, { "*.", config->video.driver, ".shader" }); + if(files.size() == 0) { + path = { application->userpath, "shaders/" }; + files = directory::files(path, { "*.", config->video.driver, ".shader" }); + } reference_array group; settingsVideoShaderList = new RadioItem[files.size()]; for(unsigned n = 0; n < files.size(); n++) { string name = files[n]; - videoShaderName.append({ application->userpath, "shaders/", name }); + videoShaderName.append({ path, name }); if(auto position = name.position(string{ ".", config->video.driver, ".shader" })) name[position()] = 0; settingsVideoShaderList[n].setText(name); diff --git a/bsnes/ui/main.cpp b/bsnes/ui/main.cpp index 62da08c8..7c8dbf20 100755 --- a/bsnes/ui/main.cpp +++ b/bsnes/ui/main.cpp @@ -49,7 +49,7 @@ Application::Application(int argc, char **argv) { inputManager = new InputManager; utility = new Utility; - title = "bsnes v082.34"; + title = "bsnes v083"; string fontFamily = Intrinsics::platform() == Intrinsics::Platform::Windows ? "Tahoma, " : "Sans, "; normalFont = { fontFamily, "8" }; diff --git a/snesfilter/Makefile b/snesfilter/Makefile index 87fd2096..6b632820 100755 --- a/snesfilter/Makefile +++ b/snesfilter/Makefile @@ -6,12 +6,18 @@ flags := -fPIC -O3 -I. -Iobj -fomit-frame-pointer link := -s objects := +ifeq ($(platform),x) + flags += -fopenmp +endif + objects += out/Pixellate2x.filter objects += out/Scanline-Dark.filter objects += out/Scanline-Light.filter objects += out/Scale2x.filter objects += out/LQ2x.filter objects += out/HQ2x.filter +objects += out/Overscan.filter +objects += out/Phosphor3x.filter compile = $(cpp) $(link) $(flags) -o $@ -shared $< @@ -25,13 +31,15 @@ out/Scanline-Light.filter: Scanline/Scanline-Light.cpp Scanline/* out/Scale2x.filter: Scale2x/Scale2x.cpp Scale2x/* out/LQ2x.filter: LQ2x/LQ2x.cpp LQ2x/* out/HQ2x.filter: HQ2x/HQ2x.cpp HQ2x/* +out/Overscan.filter: Overscan/Overscan.cpp Overscan/* +out/Phosphor3x.filter: Phosphor3x/Phosphor3x.cpp Phosphor3x/* build: $(objects) install: - mkdir -p ~/.config/batch/filters - chmod 777 ~/.config/batch/filters - cp out/*.filter ~/.config/batch/filters + mkdir -p ~/.config/bsnes/filters + chmod 777 ~/.config/bsnes/filters + cp out/*.filter ~/.config/bsnes/filters clean: rm out/*.filter diff --git a/snesfilter/Overscan/Overscan.cpp b/snesfilter/Overscan/Overscan.cpp new file mode 100755 index 00000000..05500964 --- /dev/null +++ b/snesfilter/Overscan/Overscan.cpp @@ -0,0 +1,30 @@ +#include +#include +using namespace nall; + +extern "C" { + void filter_size(unsigned&, unsigned&); + void filter_render(uint16_t*, unsigned, const uint16_t*, unsigned, unsigned, unsigned); +}; + +dllexport void filter_size(unsigned &width, unsigned &height) { +} + +dllexport void filter_render( + uint16_t *output, unsigned outputPitch, + const uint16_t *input, unsigned inputPitch, + unsigned width, unsigned height +) { + outputPitch >>= 1, inputPitch >>= 1; + + #pragma omp parallel for + for(unsigned y = 0; y < height; y++) { + const uint16_t *in = input + y * inputPitch; + uint16_t *out = output + y * outputPitch; + for(unsigned x = 0; x < width; x++) { + uint16_t pixel = *in++; + if(x < 8 || x >= width - 8 || y < 8 || y >= height - 8) pixel = 0; + *out++ = pixel; + } + } +} diff --git a/snesfilter/Phosphor3x/Phosphor3x.cpp b/snesfilter/Phosphor3x/Phosphor3x.cpp new file mode 100755 index 00000000..4ed1e313 --- /dev/null +++ b/snesfilter/Phosphor3x/Phosphor3x.cpp @@ -0,0 +1,45 @@ +#include +#include +using namespace nall; + +extern "C" { + void filter_size(unsigned&, unsigned&); + void filter_render(uint16_t*, unsigned, const uint16_t*, unsigned, unsigned, unsigned); +}; + +dllexport void filter_size(unsigned &width, unsigned &height) { + width *= 3; + height *= 3; +} + +dllexport void filter_render( + uint16_t *output, unsigned outputPitch, + const uint16_t *input, unsigned inputPitch, + unsigned width, unsigned height +) { + outputPitch >>= 1, inputPitch >>= 1; + + #pragma omp parallel for + for(unsigned y = 0; y < height; y++) { + const uint16_t *in = input + y * inputPitch; + uint16_t *out0 = output + y * outputPitch * 3; + uint16_t *out1 = output + y * outputPitch * 3 + outputPitch; + uint16_t *out2 = output + y * outputPitch * 3 + outputPitch + outputPitch; + + for(unsigned x = 0; x < width; x++) { + uint16_t full = *in++, half = (full >> 1) & 0x3def; + + *out0++ = (full & 0x7c00); + *out1++ = (full & 0x7c00); + *out2++ = (half & 0x7c00); + + *out0++ = (full & 0x03e0); + *out1++ = (full & 0x03e0); + *out2++ = (half & 0x03e0); + + *out0++ = (full & 0x001f); + *out1++ = (full & 0x001f); + *out2++ = (half & 0x001f); + } + } +} diff --git a/snesshader/Archive/HDR-TV.OpenGL.shader b/snesshader/Archive/HDR-TV.OpenGL.shader new file mode 100755 index 00000000..929f378a --- /dev/null +++ b/snesshader/Archive/HDR-TV.OpenGL.shader @@ -0,0 +1,17 @@ +shader language=GLSL + vertex~ + void main(void) { + gl_Position = ftransform(); + gl_TexCoord[0] = gl_MultiTexCoord0; + } + + fragment~ filter=linear + uniform sampler2D rubyTexture; + + void main(void) { + vec4 rgb = texture2D(rubyTexture, gl_TexCoord[0].xy); + vec4 intens = smoothstep(0.2,0.8,rgb) + normalize(vec4(rgb.xyz, 1.0)); + + if(fract(gl_FragCoord.y * 0.5) > 0.5) intens = rgb * 0.8; + gl_FragColor = intens; + } diff --git a/snesshader/Archive/Watercolor.OpenGL.shader b/snesshader/Archive/Watercolor.OpenGL.shader new file mode 100755 index 00000000..5bce374e --- /dev/null +++ b/snesshader/Archive/Watercolor.OpenGL.shader @@ -0,0 +1,61 @@ +shader language=GLSL + vertex~ + uniform vec2 rubyTextureSize; + + void main() + { + float x = 0.5 * (1.0 / rubyTextureSize.x); + float y = 0.5 * (1.0 / rubyTextureSize.y); + vec2 dg1 = vec2( x, y); + vec2 dg2 = vec2(-x, y); + vec2 dx = vec2(x, 0.0); + vec2 dy = vec2(0.0, y); + + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_TexCoord[1].xy = gl_TexCoord[0].xy - dg1; + gl_TexCoord[1].zw = gl_TexCoord[0].xy - dy; + gl_TexCoord[2].xy = gl_TexCoord[0].xy - dg2; + gl_TexCoord[2].zw = gl_TexCoord[0].xy + dx; + gl_TexCoord[3].xy = gl_TexCoord[0].xy + dg1; + gl_TexCoord[3].zw = gl_TexCoord[0].xy + dy; + gl_TexCoord[4].xy = gl_TexCoord[0].xy + dg2; + gl_TexCoord[4].zw = gl_TexCoord[0].xy - dx; + } + + fragment~ filter=linear + vec4 compress(vec4 in_color, float threshold, float ratio) + { + vec4 diff = in_color - vec4(threshold); + diff = clamp(diff, 0.0, 100.0); + return in_color - (diff * (1.0 - 1.0/ratio)); + } + + uniform sampler2D rubyTexture; + uniform vec2 rubyTextureSize; + + void main() + { + vec3 c00 = texture2D(rubyTexture, gl_TexCoord[1].xy).xyz; + vec3 c01 = texture2D(rubyTexture, gl_TexCoord[4].zw).xyz; + vec3 c02 = texture2D(rubyTexture, gl_TexCoord[4].xy).xyz; + vec3 c10 = texture2D(rubyTexture, gl_TexCoord[1].zw).xyz; + vec3 c11 = texture2D(rubyTexture, gl_TexCoord[0].xy).xyz; + vec3 c12 = texture2D(rubyTexture, gl_TexCoord[3].zw).xyz; + vec3 c20 = texture2D(rubyTexture, gl_TexCoord[2].xy).xyz; + vec3 c21 = texture2D(rubyTexture, gl_TexCoord[2].zw).xyz; + vec3 c22 = texture2D(rubyTexture, gl_TexCoord[3].xy).xyz; + + vec2 tex = gl_TexCoord[0].xy; + vec2 texsize = rubyTextureSize; + + vec3 first = mix(c00, c20, fract(tex.x * texsize.x + 0.5)); + vec3 second = mix(c02, c22, fract(tex.x * texsize.x + 0.5)); + + vec3 mid_horiz = mix(c01, c21, fract(tex.x * texsize.x + 0.5)); + vec3 mid_vert = mix(c10, c12, fract(tex.y * texsize.y + 0.5)); + + vec3 res = mix(first, second, fract(tex.y * texsize.y + 0.5)); + vec4 final = vec4(0.26 * (res + mid_horiz + mid_vert) + 3.5 * abs(res - mix(mid_horiz, mid_vert, 0.5)), 1.0); + gl_FragColor = compress(final, 0.8, 5.0); + } diff --git a/snesshader/Curvature.OpenGL.shader b/snesshader/Curvature.OpenGL.shader index fb6b92ed..1667d9c4 100755 --- a/snesshader/Curvature.OpenGL.shader +++ b/snesshader/Curvature.OpenGL.shader @@ -1,22 +1,19 @@ - - - - +shader language=GLSL + fragment~ filter=linear + uniform sampler2D rubyTexture; + uniform vec2 rubyInputSize; + uniform vec2 rubyTextureSize; + + #define distortion 0.2 + + vec2 barrelDistortion(vec2 coord) { + vec2 cc = coord - 0.5; + float dist = dot(cc, cc); + return coord + cc * (dist + distortion * dist * dist) * distortion; + } + + void main(void) { + vec2 coord = barrelDistortion (gl_TexCoord[0] * rubyTextureSize / rubyInputSize) * rubyInputSize / rubyTextureSize; + + gl_FragColor = texture2D(rubyTexture, coord); + } diff --git a/snesshader/HDR-TV.OpenGL.shader b/snesshader/HDR-TV.OpenGL.shader deleted file mode 100755 index 137bedba..00000000 --- a/snesshader/HDR-TV.OpenGL.shader +++ /dev/null @@ -1,21 +0,0 @@ - - - - - 0.5) intens = rgb * 0.8; - gl_FragColor = intens; - } - ]]> - diff --git a/snesshader/HQ2x.OpenGL.shader b/snesshader/HQ2x.OpenGL.shader index d4f8c822..057eb9d3 100755 --- a/snesshader/HQ2x.OpenGL.shader +++ b/snesshader/HQ2x.OpenGL.shader @@ -1,73 +1,69 @@ - - - - - - + fragment~ filter=nearest + uniform sampler2D rubyTexture; + + const float mx = 0.325; // start smoothing wt. + const float k = -0.250; // wt. decrease factor + const float max_w = 0.25; // max filter weigth + const float min_w =-0.05; // min filter weigth + const float lum_add = 0.25; // effects smoothing + + void main() { + vec3 c00 = texture2D(rubyTexture, gl_TexCoord[1].xy).xyz; + vec3 c10 = texture2D(rubyTexture, gl_TexCoord[1].zw).xyz; + vec3 c20 = texture2D(rubyTexture, gl_TexCoord[2].xy).xyz; + vec3 c01 = texture2D(rubyTexture, gl_TexCoord[4].zw).xyz; + vec3 c11 = texture2D(rubyTexture, gl_TexCoord[0].xy).xyz; + vec3 c21 = texture2D(rubyTexture, gl_TexCoord[2].zw).xyz; + vec3 c02 = texture2D(rubyTexture, gl_TexCoord[4].xy).xyz; + vec3 c12 = texture2D(rubyTexture, gl_TexCoord[3].zw).xyz; + vec3 c22 = texture2D(rubyTexture, gl_TexCoord[3].xy).xyz; + vec3 dt = vec3(1.0, 1.0, 1.0); + + float md1 = dot(abs(c00 - c22), dt); + float md2 = dot(abs(c02 - c20), dt); + + float w1 = dot(abs(c22 - c11), dt) * md2; + float w2 = dot(abs(c02 - c11), dt) * md1; + float w3 = dot(abs(c00 - c11), dt) * md2; + float w4 = dot(abs(c20 - c11), dt) * md1; + + float t1 = w1 + w3; + float t2 = w2 + w4; + float ww = max(t1, t2) + 0.0001; + + c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww); + + float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add); + float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add); + + w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w); + w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w); + w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w); + w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w); + + gl_FragColor.xyz = w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11; + } diff --git a/snesshader/Pixellate.OpenGL.shader b/snesshader/Pixellate.OpenGL.shader index dc484899..0ebe432d 100755 --- a/snesshader/Pixellate.OpenGL.shader +++ b/snesshader/Pixellate.OpenGL.shader @@ -1,44 +1,40 @@ - - - +shader language=GLSL + vertex~ + void main() { + gl_Position = ftransform(); + gl_TexCoord[0] = gl_MultiTexCoord0; + } - - + fragment~ filter=nearest + uniform sampler2D rubyTexture; + uniform vec2 rubyTextureSize; + + void main() { + vec2 texelSize = 1.0 / rubyTextureSize; + + vec2 range; + range.x = dFdx(gl_TexCoord[0].x) / 2.0 * 0.99; + range.y = dFdy(gl_TexCoord[0].y) / 2.0 * 0.99; + + float left = gl_TexCoord[0].x - range.x; + float top = gl_TexCoord[0].y + range.y; + float right = gl_TexCoord[0].x + range.x; + float bottom = gl_TexCoord[0].y - range.y; + + vec4 topLeftColor = texture2D(rubyTexture, (floor(vec2(left, top) / texelSize) + 0.5) * texelSize); + vec4 bottomRightColor = texture2D(rubyTexture, (floor(vec2(right, bottom) / texelSize) + 0.5) * texelSize); + vec4 bottomLeftColor = texture2D(rubyTexture, (floor(vec2(left, bottom) / texelSize) + 0.5) * texelSize); + vec4 topRightColor = texture2D(rubyTexture, (floor(vec2(right, top) / texelSize) + 0.5) * texelSize); + + vec2 border = clamp(round(gl_TexCoord[0] / texelSize) * texelSize, vec2(left, bottom), vec2(right, top)); + + float totalArea = 4.0 * range.x * range.y; + + vec4 averageColor; + averageColor = ((border.x - left) * (top - border.y) / totalArea) * topLeftColor; + averageColor += ((right - border.x) * (border.y - bottom) / totalArea) * bottomRightColor; + averageColor += ((border.x - left) * (border.y - bottom) / totalArea) * bottomLeftColor; + averageColor += ((right - border.x) * (top - border.y) / totalArea) * topRightColor; + + gl_FragColor = averageColor; + } diff --git a/snesshader/Scale2x.OpenGL.shader b/snesshader/Scale2x.OpenGL.shader index b82cfb4d..b81cc11a 100755 --- a/snesshader/Scale2x.OpenGL.shader +++ b/snesshader/Scale2x.OpenGL.shader @@ -1,55 +1,51 @@ - - - = 0.5) { tmp = colB; colB = colH; colH = tmp; } //E1 (or E3): swap B and H + if(sel.x >= 0.5) { tmp = colF; colF = colD; colD = tmp; } //E2 (or E3): swap D and F + + if(colB == colD && colB != colF && colD != colH) { //do the Scale2x rule + col = colD; + } - gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; - - offsetx.x = 1.0 / rubyTextureSize.x; - offsetx.y = 0.0; - offsetx.w = 0.0; - offsetx.z = 0.0; - offsety.y = 1.0 / rubyTextureSize.y; - offsety.x = 0.0; - offsety.w = 0.0; - offsety.z = 0.0; - - gl_TexCoord[0] = gl_MultiTexCoord0; //center - gl_TexCoord[1] = gl_TexCoord[0] - offsetx; //left - gl_TexCoord[2] = gl_TexCoord[0] + offsetx; //right - gl_TexCoord[3] = gl_TexCoord[0] - offsety; //top - gl_TexCoord[4] = gl_TexCoord[0] + offsety; //bottom - } - ]]> - - = 0.5) { tmp = colB; colB = colH; colH = tmp; } //E1 (or E3): swap B and H - if(sel.x >= 0.5) { tmp = colF; colF = colD; colD = tmp; } //E2 (or E3): swap D and F - - if(colB == colD && colB != colF && colD != colH) { //do the Scale2x rule - col = colD; - } - - gl_FragColor = col; - } - ]]> - + gl_FragColor = col; + } diff --git a/snesshader/Sepia.Direct3D.shader b/snesshader/Sepia.Direct3D.shader index 1fa725e2..efcf2478 100755 --- a/snesshader/Sepia.Direct3D.shader +++ b/snesshader/Sepia.Direct3D.shader @@ -1,30 +1,26 @@ - - - ; }; - float3 LightColor = { 1.0, 0.7, 0.5 }; - float3 DarkColor = { 0.2, 0.05, 0.0 }; - - float4 DiffColorPass(in float2 Tex : TEXCOORD0) : COLOR0 - { - vec.x = 0.5; - vec.y = 1.0; - float3 scnColor = LightColor * tex2D(s0, Tex).xyz; - float3 grayXfer = float3(0.3, 0.59, 0.11); - float gray = dot(grayXfer, scnColor); - float3 muted = lerp(scnColor, gray.xxx, vec.x); - float3 sepia = lerp(DarkColor, LightColor, gray); - float3 result = lerp(muted, sepia, vec.y); - return float4(result, 1); - } - - Technique T0 - { - pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); } - } - ]]> - +shader~ language=HLSL + texture rubyTexture; + + float4 vec; + + sampler s0 = sampler_state { texture = ; }; + float3 LightColor = { 1.0, 0.7, 0.5 }; + float3 DarkColor = { 0.2, 0.05, 0.0 }; + + float4 DiffColorPass(in float2 Tex : TEXCOORD0) : COLOR0 + { + vec.x = 0.5; + vec.y = 1.0; + float3 scnColor = LightColor * tex2D(s0, Tex).xyz; + float3 grayXfer = float3(0.3, 0.59, 0.11); + float gray = dot(grayXfer, scnColor); + float3 muted = lerp(scnColor, gray.xxx, vec.x); + float3 sepia = lerp(DarkColor, LightColor, gray); + float3 result = lerp(muted, sepia, vec.y); + return float4(result, 1); + } + + Technique T0 + { + pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); } + } diff --git a/snesshader/Watercolor.OpenGL.shader b/snesshader/Watercolor.OpenGL.shader deleted file mode 100755 index 4f6d3f19..00000000 --- a/snesshader/Watercolor.OpenGL.shader +++ /dev/null @@ -1,65 +0,0 @@ - - - - - -