From b0e862613b3c6cfaf3d8088403e144d5da98cd43 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Thu, 8 Oct 2015 22:04:42 +1100 Subject: [PATCH] Update to v095 release. byuu says: After 20 months of development, higan v095 is released at long last! The most notable feature is vastly improved Game Boy Advance emulation. With many thanks to endrift, Cydrak, Jonas Quinn and jchadwick, this release contains substantially improved CPU timings and many bugfixes. Being one of only two GBA emulators to offer ROM prefetch emulation, higan is very near mGBA in terms of accuracy, and far ahead of all others. As a result of these fixes, compatibility is also much higher than in v094. There are also several improvements to SNES emulation. Most significantly is support for mid-scanline changes to the background mode in the accuracy profile. Due to substantial changes to the user interface library used by higan, this release features yet again a brand-new UI. With the exception of video shaders and NSS DIP switch selection, it is at feature-parity with the previous UI. It also offers some new features that v094 lacked. The cheat code database has also been updated to the latest version by mightymo. --- data/cheats.bml | 1482 ++++++++++++++++++++++++++++++--- emulator/emulator.hpp | 2 +- icarus/GNUmakefile | 2 +- nall/encode/url.hpp | 25 + nall/file.hpp | 12 +- nall/http/message.hpp | 105 ++- nall/http/request.hpp | 99 ++- nall/http/response.hpp | 44 +- nall/http/role.hpp | 18 +- nall/nall.hpp | 1 + target-tomoko/input/input.cpp | 2 +- 11 files changed, 1578 insertions(+), 214 deletions(-) create mode 100644 nall/encode/url.hpp diff --git a/data/cheats.bml b/data/cheats.bml index ee775f31..0e17e767 100644 --- a/data/cheats.bml +++ b/data/cheats.bml @@ -1,4 +1,4 @@ -database revision=2014-01-20 +database revision=2015-09-28 cartridge sha256:8e844d77da01f86ace52823f1f974c9230f09e6a6cbf33a07abfe9beeff00292 name:10-Yard Fight (USA, Europe) @@ -296,12 +296,15 @@ cartridge sha256:3493f7621d964af7a56c407718ef1d056c6c46d4e4c6b3c48364d58a1b97a06 cartridge sha256:c4d4ff0bd283656c63d9a30dfc7dc6d2956744730a3641ba2c8f9f8e7204d9a1 name:Abadox - The Deadly Inner War (USA) + cheat + description:Invincibility + code:dd08/f0/d0+de0c/d0/f0 cheat description:Invincible against touching enemies code:efe2/a5/60 cheat - description:Invincible against walls - code:dd35/a9/d0+dd36/02/71 + description:Invincible against walls (does not stop music) + code:d5ab/c0/00 cheat description:Infinite lives (lives never decrease) code:c7d1/09 @@ -312,7 +315,7 @@ cartridge sha256:c4d4ff0bd283656c63d9a30dfc7dc6d2956744730a3641ba2c8f9f8e7204d9a description:Hit anywhere code:f1d5/90/d0+f1fa/d0/b0+f1b1/90/b0+f210/30/24 cheat - description:Invincibility (distorts sound) + description:Invincibility (music stops if you touch a wall) code:0086/00+008a/00 cheat description:One hit kills - bosses @@ -988,13 +991,28 @@ cartridge sha256:c5e47c0479f500b86995fc8d09e132f5ba3f54cfd9a2a601ea3848bb60871a2 name:Adventures of Lolo (USA) cheat description:Invincibility - code:c819/e6/60+b2a9/e6/60 + code:9988/06/00+c8c1/45/00+ceb1/e6/a5 cheat description:Infinite lives code:9995/c6/a5 + cheat + description:Infinite shots + code:b058/c6/a5 cheat description:Always have shot ability code:b055/fb/06 + cheat + description:Hit anywhere + code:b12f/b0/d0+b130/0a/44 + cheat + description:Chests are always open + code:af76/f0/90 + cheat + description:Walk through anything + code:ace0/f0/24 + cheat + description:Walk faster + code:ae43/ff/fe+ae25/ff/fe+ae3f/01/02+ae29/01/02 cheat description:1 life for Lolo code:98c1/05/01 @@ -4568,6 +4586,9 @@ cartridge sha256:abbddcb7c85a9956f94e6185aa1f30c34c45ad0db2f7f9db40066d749ffa792 cartridge sha256:8f349b0ed7d31a07ccdf26958de8219165eff7c9ad43801a82c5dcf831fd82c2 name:BurgerTime (USA) + cheat + description:Infinite Pepper Spray + code:d743/5c/ea cheat description:Anti-gravity shoes code:d260/d0/24 @@ -5396,6 +5417,9 @@ cartridge sha256:6e8d289635ac39479ff1d36733aa3f8b9650593ab972cedb8e2cdbfc03aaa73 cheat description:No knock-back when hurt code:823c/8d/60 + cheat + description:Disable automatic upwards scrolling (on vertical stages) + code:d73b/82/80 cheat description:Walk twice as fast to the left code:9728/ff/fe @@ -6272,6 +6296,15 @@ cartridge sha256:0512b4aa2220f74e40fe8652b758893fa87efb6c3407808f7dda0e190101743 cheat description:Infinite lives (alt) code:c907/ce/ad + cheat + description:Get items from anywhere + code:df00/14/00+d640/dc/00 + cheat + description:Hit anywhere + code:e3f6/53/00+e406/43/00 + cheat + description:Walk through anything + code:b784/09/00+b753/06/00 cheat description:Start with 1 life - both players code:c5cd/03/00 @@ -6365,6 +6398,9 @@ cartridge sha256:d41e28b1a33b3b6768e7c39c9fdfb1fda4b49940542d14085911fabd399e1ca cheat description:Hit anywhere code:e388/90/d0+e3a1/b0/24+e37f/b0/24+e3c7/20/ad + cheat + description:Enemies die automatically (causes graphical glitches in some levels) + code:e3f1/08/00+e358/f0/a9+e360/29/42 cheat description:Multi-jump - both players code:d476/b5/20+d477/b0/9f+d478/f0/d6+d479/08/ea+d480/d6/b5+d9e9/95/b5+d54a/a9/60 @@ -6378,7 +6414,10 @@ cartridge sha256:d41e28b1a33b3b6768e7c39c9fdfb1fda4b49940542d14085911fabd399e1ca description:Run 4x as fast code:d75d/01/04+d761/ff/fc cheat - description:Keep weapons after losing life + description:Keep weapons after dying + code:dad3/95/a5 + cheat + description:Keep weapons after dying (alt) code:dad3/2c cheat description:Press Select to change weapons - P1 @@ -7207,7 +7246,7 @@ cartridge sha256:9e31d3d918a352c0c5a81c52efc364253f3fb75cc84151ee904ad078be62d8e code:990e/14/0a cartridge sha256:c408dd19ca49e55173ff2c491868f437d8100671f7b9646ee20e3204e0ba216f - name:Demon Sword - Release the Power (USA) + name:Demon Sword (USA) (USA) cheat description:Invincibility code:8a3b/20/ad @@ -7871,6 +7910,9 @@ cartridge sha256:c564704993cf79c94db5c2954792e99e86100586d0ef1d4bf1aefc6d008d4c0 cheat description:No enemies code:9021/72 + cheat + description:Enemies die automatically + code:b137/b1/a9+b138/29/27 cheat description:Never lose lives from falling code:8427/de/ad @@ -7943,6 +7985,9 @@ cartridge sha256:f329de1e2653499221dc4d14d0e8b1040fee87bda4daccf6098b316a1a024fe cheat description:No enemies code:9021/72 + cheat + description:Enemies die automatically + code:b137/b1/a9+b138/29/27 cheat description:Never lose lives from falling code:8427/de/ad @@ -9183,6 +9228,12 @@ cartridge sha256:9d0396286f2c027367422b8347216a309200a21b019939f08a7c457c7c4c918 description:Start with 36 nitros code:820a/04/25 +cartridge sha256:d1b51f04a6112d8f75d1bf29a9db5a06cfba308be824dcc9db15b228f8e85bd5 + name:Esper Dream (Japan) (v1.0) [b] + cheat + description:Walk anywhere + code:b9c9/ff/00 + cartridge sha256:761df2c2e04f9ffec5eec59afd821bd74af3b155546519d649876aad37160c06 name:Esper Dream 2 - Aratanaru Tatakai (Japan) cheat @@ -9665,6 +9716,12 @@ cartridge sha256:2ae778c5a59fac650fa97e93d883381dbf96c5a0ad2c1db94fd822663904f7e cartridge sha256:fa456d852372173ea31b192459ba1a2026f779df67793327ba6e132476c1d034 name:Final Fantasy (USA) + cheat + description:Skip intro screen + code:84d4/29/a9 + cheat + description:Faster dialogue + code:d61c/a5/a9+d61d/1b/5e+d69f/f2/00 cheat description:Almost infinite Gold code:a4d1/ed/2c+a4da/ed/2c @@ -12812,6 +12869,9 @@ cartridge sha256:3775c1184419c0786841c5b4f2694b2a15e181678f92e75fb9b71bfb5668c7b cheat description:Hit anywhere (except tanks and helicopters) code:b9a9/01/00+b9ab/13/3b+b9a8/29/c9 + cheat + description:Walk and shoot through walls + code:eb20/02/00 cheat description:Start with 1 life code:f631/03/01 @@ -14465,6 +14525,9 @@ cartridge sha256:8aa5c70100080adf0f6d8945ea10382f3986b99d41e010c356991dfe061eaa8 cheat description:Prevent girl from moving in final stage code:ac39/01/00 + cheat + description:Win tournament rounds automatically + code:8895/d7/00 cheat description:Start with 1 chance code:86fa/03/01 @@ -15089,6 +15152,12 @@ cartridge sha256:9caa01a2b81ce1f98b17520aee09d415da7192382c1e47316998b6c1be6168e cheat description:Infinite lives code:c7db/d6/b5 + cheat + description:Infinite time + code:a015/c6/a5 + cheat + description:Infinite time underwater + code:c640/c6/a5 cheat description:Infinite continues code:c90a/d6/2c @@ -15522,6 +15591,15 @@ cartridge sha256:f4b7d8d31c5bbfee69c117332fa3878d04dc3b6e693d1a343d3ef2f20b10a85 description:Infinite lives (alt) code:0092/09 +cartridge sha256:333d9de968973202f641714d746012237dc9d65fb592aac10c6146ed1f2fdaeb + name:Last Armageddon (Japan) + cheat + description:No random battles + code:fe93/c9/a9 + cheat + description:Walk anywhere + code:9a57/80/00 + cartridge sha256:f15382be46e474c596566c5a726ae39dadfa18289722bac2da44b6493bbabfec name:Last Ninja, The (USA) cheat @@ -15803,6 +15881,9 @@ cartridge sha256:ec0d4ebf6d2fcecd1d95fef7329954efe79676959bc281ea908b226459bc6dc cheat description:Speed writing code:8818/91 + cheat + description:Skip text + code:8873/05/00+885d/1b/00 cheat description:Walk faster code:b387/a5/a9+b388/00/b0 @@ -15941,6 +16022,9 @@ cartridge sha256:085e5397a3487357c263dfa159fb0fe20a5f3ea8ef82d7af6a7e848d3b9364e cheat description:Speed writing code:8818/91 + cheat + description:Skip text + code:8873/05/00+885d/1b/00 cheat description:Walk faster code:b387/a5/a9+b388/00/b0 @@ -16473,28 +16557,28 @@ cartridge sha256:a5165565263eaf8bdc45a8e6a615704f9bf271cd6d547d22c098c80cbaffd87 description:Collectable items never disappear code:aacd/de/60 cheat - description:Increase Samson's health gauge + description:Increase health gauge - Little Samson code:e5c1/08/18 cheat - description:Increase Kikira's health gauge + description:Increase health gauge - Kikira the Dragon code:e5c2/08/18 cheat - description:Increase Gamm's health gauge + description:Increase health gauge - Gamm the Golem code:e5c3/10/20 cheat - description:Increase K.O.'s health gauge + description:Increase health gauge - K.O. the Mouse code:e5c4/04/10 cheat - description:Increase Samson's health + description:Increase health - Little Samson code:e5c5/08/18 cheat - description:Increase Kikira's health + description:Increase health - Kikira the Dragon code:e5c6/08/18 cheat - description:Increase Gamm's health + description:Increase health - Gamm the Golem code:e5c7/10/20 cheat - description:Increase K.O.'s health + description:Increase health - K.O. the Mouse code:e5c8/04/10 cheat description:Crystal ball adds 4 units to health gauge @@ -16506,13 +16590,13 @@ cartridge sha256:a5165565263eaf8bdc45a8e6a615704f9bf271cd6d547d22c098c80cbaffd87 description:Infinite health - Little Samson code:0097/08 cheat - description:Infinite health - Dragon + description:Infinite health - Kikira the Dragon code:0098/08 cheat - description:Infinite health - Golem + description:Infinite health - Gamm the Golem code:0099/0f cheat - description:Infinite health - Mouse + description:Infinite health - K.O. the Mouse code:009a/04 cartridge sha256:33c362ea3dbce2ac449e0d877d85904c26fcaf4b197e27b23efe9cbe67f20e15 @@ -17149,6 +17233,9 @@ cartridge sha256:0cc334007d3eae698cdcd034d12ec9bab2b5266e85bc703cf24ccb4e2d63b65 code:dce0/d6/60 cheat description:Infinite time - bonus rounds + code:e371/ce/de + cheat + description:Infinite time - bonus rounds (alt) code:e371/ce/ad cheat description:Infinite power blocks @@ -17294,6 +17381,9 @@ cartridge sha256:5314ad0c406161195b6bb100ee11304bab8af121bba85992be896d5cb26b109 cheat description:One hit kills on bosses code:f3a4/30 + cheat + description:Have all weapons + code:b41b/29/00+b2b6/ee/00+b1a1/52/00+b2a1/f0/a9 cheat description:Collectable items never disappear code:b6b6/fe/bd @@ -17396,6 +17486,12 @@ cartridge sha256:1e588d435e75d80c5c0b578b4fa8d196f2cf4346c11c9a7b7e435d768828ad0 cheat description:Infinite 3 code:e340/c6/a5 + cheat + description:Hit anywhere (except bosses) + code:e632/90/d0+e686/b0/24+e659/d0/24+e664/f0/24+e621/b0/24 + cheat + description:One hit kills + code:e686/b0/24+a634/b0/24 cheat description:Burst-fire from normal weapon code:da6d/27/23 @@ -17403,11 +17499,14 @@ cartridge sha256:1e588d435e75d80c5c0b578b4fa8d196f2cf4346c11c9a7b7e435d768828ad0 description:Maximum weapon energy on pick-up code:834f/30/24 cheat - description:Hit anywhere (except bosses) - code:e632/90/d0+e686/b0/24+e659/d0/24+e664/f0/24+e621/b0/24 + description:Collectable items never disappear + code:bcf7/de/dd cheat - description:One hit kills - code:e686/b0/24+a634/b0/24 + description:Have all weapons + code:925b/25/a9+926e/25/a9+93e4/99/ad+9434/90/a9+9493/90/a9 + cheat + description:Main weapon can destroy Crash Blocks and Turrets + code:e664/f0/a9 cheat description:Power-jumps code:8a71/04/06 @@ -17423,9 +17522,6 @@ cartridge sha256:1e588d435e75d80c5c0b578b4fa8d196f2cf4346c11c9a7b7e435d768828ad0 cheat description:Moonwalking code:8904/29/49 - cheat - description:Collectable items never disappear - code:bcf7/de/dd cheat description:Enemies always drop extra lives code:f2ba/90/50+f2bb/cc/dd @@ -17439,8 +17535,11 @@ cartridge sha256:1e588d435e75d80c5c0b578b4fa8d196f2cf4346c11c9a7b7e435d768828ad0 description:Special items re-appear after being collected code:e5e8/99/b9 cheat - description:Able to access already defeated boss stages + description:Can access already defeated boss stages code:80e2/dc/00 + cheat + description:Stop Quick Man's stage beams + code:da09/04/ff cheat description:Start with half health code:80c5/1c/0e @@ -18210,7 +18309,7 @@ cartridge sha256:25f5359a73cac2d16ed98940f0b537f0392f232554d457ed476e21a5979419f cartridge sha256:f6d29afbd7ddad33672852232791a396695de2e77dccb83088a8d6b139d8c9cb name:Metal Gear (USA) cheat - description:Infinite health + description:Infinite life code:eae2/c6/a5+f231/c6/a5 cheat description:Invincible against Gas @@ -18255,10 +18354,10 @@ cartridge sha256:f6d29afbd7ddad33672852232791a396695de2e77dccb83088a8d6b139d8c9c description:Hit anywhere - Weapons except Grenade Launcher code:f25f/f0/50 cheat - description:Start with a health boost + description:Start with a life boost code:d768/a6/a2+d769/6e/01+d7ca/05/08 cheat - description:Start with a super health boost + description:Start with a super life boost code:d768/a6/a2+d769/6e/01+d7ca/05/0c cheat description:Start at mystery location 1 @@ -18425,6 +18524,9 @@ cartridge sha256:649db8035018f2512ccea70aca6606c3b3a6988cd9ed43953b38dc5103dec7b cheat description:Beam has longer range code:d505/55 + cheat + description:Easier bomb jumping + code:d679/14/00+d164/32/00 cheat description:Get items from anywhere code:dbaf/46/00+f488/f0/24 @@ -19460,6 +19562,30 @@ cartridge sha256:f997fe34edf1d998694aa979c81fe0063480274b4284498f230fffe694fe87a cheat description:Go Back 7 spaces instead of 3 on Chance code:8315/03/07 + cheat + description:Infinite money - P1 + code:03c5/09+03c6/09+03c7/09+03c8/09+03c9/09 + cheat + description:Infinite money - P2 + code:03ca/09+03cb/09+03cc/09+03cd/09+03ce/09 + cheat + description:Infinite money - P3 + code:03cf/09+03d0/09+03d1/09+03d2/09+03d3/09 + cheat + description:Infinite money - P4 + code:03d4/09+03d5/09+03d6/09+03d7/09+03d8/09 + cheat + description:Infinite money - P5 + code:03c9/09+03da/09+03db/09+03dc/09+03dd/09 + cheat + description:Infinite money - P6 + code:03de/09+03df/09+03e0/09+03e1/09+03e2/09 + cheat + description:Infinite money - P7 + code:03e3/09+03e4/09+03e5/09+03e6/09+03e7/09 + cheat + description:Infinite money - P8 + code:03e8/09+03e9/09+03ea/09+03eb/09+03ec/09 cartridge sha256:08615e9e339bd2df713cdb15f6426895ba643fbd8f383758f7f5c06ebf7ac10b name:Monster in My Pocket (USA) @@ -20016,6 +20142,12 @@ cartridge sha256:02caaf66cc43a4c5a8d54252fca7bcb929dad91c71f127eabe37f29ef919910 description:Invincible out of fights code:d5d8/46 +cartridge sha256:590e508b47eb6d6c0088dffd83fe2436edd0d75e74faba7a9da2008770fb1986 + name:Niji no Silk Road (Japan) + cheat + description:Walk anywhere + code:8187/36/89+8188/82/81 + cartridge sha256:b1c2ae757c5ec76f488893f130f0f7f1aacf36a25467b9012ca3a11ab52204ce name:Ninja Crusaders (USA) cheat @@ -20558,6 +20690,9 @@ cartridge sha256:6d310d9f2249932c7187130ebd696c42ff05f678c3086ac727ee6a27fdad4f4 cheat description:No random battles code:dc82/a9/60 + cheat + description:Walk anywhere + code:dd70/2d/00 cartridge sha256:d50327afa539f4a5ccfd6e10f685326eb0f01915ccf305f752deae2bf17385a6 name:Over Horizon (Europe) @@ -21054,6 +21189,33 @@ cartridge sha256:910ba4505b46a99b3779d84fd22ba8b18f3a649b0c1a11706c4609d06ce0bc1 description:Start with 9 balls code:c051/03/09 +cartridge sha256:836a6df9f6885b2b09d9daf3cecd67a4e5f36ae0b278a32c296779f067c8694f + name:Pinball Quest (USA) + cheat + description:Infinite Balls - Mini Games - P1 + code:8000/00/00 + cheat + description:Infinite Balls - Mini Games - P2 + code:06f9/63 + cheat + description:Infinite Balls - Mini Games - P3 + code:06fa/63 + cheat + description:Infinite Balls - Mini Games - P4 + code:06fb/63 + cheat + description:Max Attack Power - RPG mode + code:00c0/0c + cheat + description:Infinite Gold - RPG mode (1 of 3) + code:0082/63 + cheat + description:Infinite Gold - RPG mode (2 of 3) + code:0083/63 + cheat + description:Infinite Gold - RPG mode (3 of 3) + code:0084/63 + cartridge sha256:7dd47bac196af9874181e86f64402035e255814739828d5d00c03bac8689d40a name:Pipe 5 (Asia) (Unl) cheat @@ -22088,6 +22250,9 @@ cartridge sha256:a537916d210a97e41e669c77f3ebcccb681dc44db4d8b758c2109baf8590d91 cartridge sha256:d4f1650059a011455577561ea607993a5046d452ba987b1c7381cad56550be0a name:R.B.I. Baseball (USA) + cheat + description:Auto fielding + code:fada/09/00+fa1a/30/f0+fa1b/13/0f cheat description:Perfectly straight pitches - both players code:bad3/36/80+bad2/71/a9 @@ -22107,6 +22272,12 @@ cartridge sha256:d4f1650059a011455577561ea607993a5046d452ba987b1c7381cad56550be0 description:All missed pitches are strikes - both players code:bbe5/d0/10 +cartridge sha256:0df01b1d7b6efe38c98f2f0b131707d833c87874938d5722bf0a9a488c2e41c0 + name:R.B.I. Baseball 2 (USA) (Unl) + cheat + description:Auto fielding + code:fac6/09/00+a703/30/f0+a704/13/0f + cartridge sha256:3f9e3d3b48a897d94003df004ab4b332d749f85ea5d0e1a1b29b6d4f5634049a name:R.C. Pro-Am (USA) (Rev A) cheat @@ -22716,7 +22887,7 @@ cartridge sha256:bbe150f50bd11f5aa4e3edab47541261c58ab9899b6d9329450b3c77df17282 description:Buildings collapse faster code:a6d4/f0/50+aa93/0d/15 cheat - description:One hit to destroy buildings + description:One hit destroys buildings code:a1cf/05/80 cheat description:More health - P1 @@ -24107,12 +24278,6 @@ cartridge sha256:2395a8a102bfc403bb2c474f77035483792ec15bce37695c9f2d96d62bc8fe1 cheat description:Infinite continues code:f55d/c6/a5 - cheat - description:9 continues - code:e08a/05/09 - cheat - description:1 continue - code:e08a/05/01 cheat description:Don't lose energy from enemy attacks code:ac6d/9d/2c @@ -24125,12 +24290,24 @@ cartridge sha256:2395a8a102bfc403bb2c474f77035483792ec15bce37695c9f2d96d62bc8fe1 cheat description:Less energy gained from potion code:8c19/04/01 + cheat + description:Mega-jump + code:96c0/fe/ea cheat description:40 Throwing Stars on pick-up code:8c31/14/28 cheat description:20 Bombs on pick-up code:8c46/05/14 + cheat + description:Some enemies can't move left or right + code:a12b/9d/ea + cheat + description:9 continues + code:e08a/05/09 + cheat + description:1 continue + code:e08a/05/01 cartridge sha256:fbc69cdaf7c1419906d8cf2a74ab70d11520b2f3877387b8fd70460b6e6dd542 name:Shadowgate (USA) @@ -26057,24 +26234,30 @@ cartridge sha256:3edd803db1cc88155720625ed8f3e362a5e3c660e7faf3285bbe3a2c6571511 cheat description:One hit kills code:a201/00 + cheat + description:Enemies die automatically (causes graphical glitches in some levels) + code:bb7d/38/18+a19d/1d/6b+f6ad/a5/a9+84ff/85/86+84fe/eb/1a cheat description:Multi-jump - both players code:86e0/d0/24+86e9/6d/3a cheat - description:Keep equiped weapon after dying + description:Keep equipped weapon after dying code:8662/95/24 + cheat + description:Keep weapon after dying + code:e5a0/95/a5+8662/95/a5 cheat description:Run faster to the right code:8870/f0 - cheat - description:Stage select after title screen - code:e4af/d0/f0 cheat description:Press Start to complete current level code:ea9f/39/38+ea9d/01/04 cheat description:Start a new game to view the ending code:e4c3/00/08 + cheat + description:Stage select after title screen + code:e4af/d0/f0 cheat description:Start with Spray Gun code:e5b4/57/b8+e5a1/b8/57+e5b2/00/02 @@ -26243,6 +26426,9 @@ cartridge sha256:fcb6a0ef3a20c19b356005fbb21dc8009563b1cb5a9aaebc8e9386b4a8c5912 cheat description:Fireballs can kill Podoboo code:e02a/04/00+d790/32/00 + cheat + description:World 8-4, wrong pipe will lead to next area + code:9e33/e1/ec+9e23/e1/e7+9e42/65/02 cheat description:Enable level select code:8270/00 @@ -32270,6 +32456,9 @@ cartridge sha256:4cfc55e1521e58039d502f2a5ff16c233b84c0a05b1048185c75c971f3814c1 cheat description:Link can fly (hold A) code:953b/30/00 + cheat + description:Faster text (when talking to people) + code:b6be/df/00 cheat description:Walk through walls in Overworld code:871e/02/00 @@ -32487,6 +32676,21 @@ cartridge sha256:d0850075065ecbd125a33accc952de5d012527be45aa14a1b8223a9adf1643a description:Start with 9 lives (Only effective in battle mode on first life) code:e266/03/09 +cartridge sha256:a18476a3b06ec3d9767ed6b6cf528dd204440a64e7781a3b18c1250c3c18f2ec + name:Zombie Hunter (Japan) + cheat + description:Invincibility + code:dfaa/13/00 + cheat + description:One hit kills + code:dd8d/60/ea + cheat + description:Hit anywhere + code:dec1/10/00+deba/16/00+decb/b0/a9 + cheat + description:Walk on air, jump to fall down + code:e070/f3/00 + cartridge sha256:91eae4e0e59dadd5de7cdbe71fe57e304d741ae5107928e29e0f6ff8813151a9 name:Zombie Nation (USA) cheat @@ -32555,6 +32759,18 @@ cartridge sha256:2ffe8828480f943056fb1ab5c3c84d48a0bf8cbe3ed7c9960b349b59adb07f3 cartridge sha256:4dd631433c867ba920997fd3add2c838b62e70e06e0ef55c53884b8b68b0dd27 name:7th Saga, The (USA) + cheat + description:Enemies aren't generated + code:c01780/6b + cheat + description:Touching an enemy doesn't cause a battle + code:c01f36/6b + cheat + description:Sell an item for maximum gold + code:c0b139/80 + cheat + description:Walk anywhere + code:c41d90/00 cheat description:Human fighter has 50 HP code:c0623f/32 @@ -32681,15 +32897,6 @@ cartridge sha256:4dd631433c867ba920997fd3add2c838b62e70e06e0ef55c53884b8b68b0dd2 cheat description:Alien has 20 speed code:c0627c/14 - cheat - description:Enemies aren't generated - code:c01780/6b - cheat - description:Touching an enemy doesn't cause a battle - code:c01f36/6b - cheat - description:Sell an item for maximum gold - code:c0b139/80 cheat description:Get 999 Max HP when you use a 'V Seed' code:c4a066/00 @@ -32969,6 +33176,9 @@ cartridge sha256:41af71166f509b0e615b00e7dc3cf2dc660d1701014ecadfd1629257b18471b cheat description:Max score code:7e00c4/99+7e00c5/99+7e00c6/99+7e00c7/99 + cheat + description:Enable round select + code:88dc1a/80 cartridge sha256:b8055844825653210d252d29a2229f9a3e7e512004e83940620173c57d8723f0 name:ActRaiser (USA) @@ -35145,6 +35355,24 @@ cartridge sha256:0f474dafe5a26f3dea491d18073dd490d2f1f91313a7e91086565510d38d9a0 description:Get Stars from anywhere code:85b493/80+85b494/19 +cartridge sha256:91f8c264f50051c5c9fadd4df09fbb6ca8b5b54a5ba6652ad133ba103b77317d + name:Aretha (Japan) + cheat + description:No random battles + code:0081a6/80 + cheat + description:Walk anywhere + code:00b6b4/80+00b6a6/00 + +cartridge sha256:d31ea0a6f9b3ee78a724ad500f09e5f534cacf57166ff55198fd703ca1ed6f48 + name:Aretha II - Ariel no Fushigi na Tabi (Japan) + cheat + description:No random battles + code:0083d1/80 + cheat + description:Walk anywhere + code:00b815/80+00b807/00 + cartridge sha256:14d3ece30898587eda20c661a4a55ec595ba6352ca1f0bfc177542aa0eef0039 name:Arkanoid - Doh It Again (USA) cheat @@ -38634,6 +38862,15 @@ cartridge sha256:367725a149a471411e4f72ad77603b61fb101c9cab4521be5647e13708cc97b description:Start on level 7 code:7e0078/06 +cartridge sha256:f6e308d437f89059986d779d1b5b7a30999b7a819108da91bd313f25e231c3a8 + name:Chaos Seed - Feng Shui Kairouki (Japan) + cheat + description:Invincibility + code:c35a85/af + cheat + description:Infinite time + code:c49da4/ad + cartridge sha256:aa69d4e19c2eb206fe88eba65994c830256c220e5506f59824aefa0a75dd44d5 name:Chavez (USA) cheat @@ -38741,6 +38978,9 @@ cartridge sha256:224572832b988f31a81c907f751f0292f5702a3acea5866ce6742387c7c6239 cartridge sha256:06d1c2b06b716052c5596aaa0c2e5632a027fee1a9a28439e509f813c30829a9 name:Chrono Trigger (USA) + cheat + description:Party does not lose health from attacks (nor do some enemies) + code:c1eca0/ea cheat description:Use "organize" to get 90 of all items code:c2ab8e/98+c2ab9c/00+c2ab9e/5a @@ -38748,11 +38988,29 @@ cartridge sha256:06d1c2b06b716052c5596aaa0c2e5632a027fee1a9a28439e509f813c30829a description:Maxed out abilities for all characters code:c1f79b/87 cheat - description:Every attack causes 9999 damage + description:Attacks cause 9999 damage (including enemy attacks) code:c1dce9/9e cheat description:Can open sealed chests code:c064ad/80 + cheat + description:Can open sealed doors + code:c0644c/80 + cheat + description:All portals open + code:7f00a6/07 + cheat + description:Have all cats + code:7f0053/ff + cheat + description:Have all clones + code:7f005e/ff + cheat + description:Have all factory dolls + code:7f013c/c7 + cheat + description:Have all PoYoZo's + code:7f005d/ff cheat description:Start with a higher max HP code:cc0005/ff @@ -38807,6 +39065,9 @@ cartridge sha256:06d1c2b06b716052c5596aaa0c2e5632a027fee1a9a28439e509f813c30829a cheat description:Position 3 - Attack bar always full code:7eafad/00 + cheat + description:Infinite Silver Points + code:7f0052/ff cheat description:Infinite Speed Boosts code:7e009a/03 @@ -39201,6 +39462,237 @@ cartridge sha256:5536cea2da39f2572abe3b0fcf71f8fcd981376b470b174969772aae4a7a184 description:Have 50 time outs - P1 code:7fb1c7/32 +cartridge sha256:b0be35a0d5e500f4fffca5f2940e0ec52c81ce99dacd773c3ca9cf92f592d943 + name:College Slam (USA) + cheat + description:Infinite Shot Clock + code:7e0db1/03+7e0db3/05 + cheat + description:Unlock Extra Teams + code:7e2444/01 + cheat + description:Display Shot% Power-up + code:7e0b30/01 + cheat + description:Slippery Court Power-up + code:7e0b32/01 + cheat + description:Infinite Turbo - P1 + code:7e078a/20 + cheat + description:Infinite Turbo - P2 + code:7e088a/20 + cheat + description:Infinite Turbo - P3 + code:7e098a/20 + cheat + description:Infinite Turbo - P4 + code:7e0a8a/20 + cheat + description:Power Push Power-up - P1 + code:7e07ee/01 + cheat + description:Power Push Power-up - P2 + code:7e08ee/01 + cheat + description:Power Push Power-up - P3 + code:7e09ee/01 + cheat + description:Power Push Power-up - P4 + code:7e0aee/01 + cheat + description:3-Point Power-up - P1 + code:7e07ee/02 + cheat + description:3-Point Power-up - P2 + code:7e08ee/02 + cheat + description:3-Point Power-up - P3 + code:7e09ee/02 + cheat + description:3-Point Power-up - P4 + code:7e0aee/02 + cheat + description:Infinite Turbo Power-up - P1 + code:7e07ee/04 + cheat + description:Infinite Turbo Power-up - P2 + code:7e08ee/04 + cheat + description:Infinite Turbo Power-up - P3 + code:7e09ee/04 + cheat + description:Infinite Turbo Power-up - P4 + code:7e0aee/04 + cheat + description:On-Fire Power-up - P1 + code:7e07ee/08 + cheat + description:On-Fire Power-up - P2 + code:7e08ee/08 + cheat + description:On-Fire Power-up - P3 + code:7e09ee/08 + cheat + description:On-Fire Power-up - P4 + code:7e0aee/08 + cheat + description:Super Dunk Power-up - P1 + code:7e07ee/10 + cheat + description:Super Dunk Power-up - P2 + code:7e08ee/10 + cheat + description:Super Dunk Power-up - P3 + code:7e09ee/10 + cheat + description:Super Dunk Power-up - P4 + code:7e0aee/10 + cheat + description:Max Power Power-up - P1 + code:7e07ee/20 + cheat + description:Max Power Power-up - P2 + code:7e08ee/20 + cheat + description:Max Power Power-up - P3 + code:7e09ee/20 + cheat + description:Max Power Power-up - P4 + code:7e0aee/20 + cheat + description:Goaltending Power-up - P1 + code:7e07ee/40 + cheat + description:Goaltending Power-up - P2 + code:7e08ee/40 + cheat + description:Goaltending Power-up - P3 + code:7e09ee/40 + cheat + description:Goaltending Power-up - P4 + code:7e0aee/40 + cheat + description:Quick Hands Power-up - P1 + code:7e07ee/80 + cheat + description:Quick Hands Power-up - P2 + code:7e08ee/80 + cheat + description:Quick Hands Power-up - P3 + code:7e09ee/80 + cheat + description:Quick Hands Power-up - P4 + code:7e0aee/80 + cheat + description:Offense Power-up - P1 + code:7e07ef/01 + cheat + description:Offense Power-up - P2 + code:7e08ef/01 + cheat + description:Offense Power-up - P3 + code:7e09ef/01 + cheat + description:Offense Power-up - P4 + code:7e0aef/01 + cheat + description:Super Speed Power-up - P1 + code:7e07ef/02 + cheat + description:Super Speed Power-up - P2 + code:7e08ef/02 + cheat + description:Super Speed Power-up - P3 + code:7e09ef/02 + cheat + description:Super Speed Power-up - P4 + code:7e0aef/02 + cheat + description:Knockdown Both Opponents Power-up - P1 + code:7e07ef/04 + cheat + description:Knockdown Both Opponents Power-up - P2 + code:7e08ef/04 + cheat + description:Knockdown Both Opponents Power-up - P3 + code:7e09ef/04 + cheat + description:Knockdown Both Opponents Power-up - P4 + code:7e0aef/04 + cheat + description:Teleport Pass Power-up - P1 + code:7e07ef/08 + cheat + description:Teleport Pass Power-up - P2 + code:7e08ef/08 + cheat + description:Teleport Pass Power-up - P3 + code:7e09ef/08 + cheat + description:Teleport Pass Power-up - P4 + code:7e0aef/08 + cheat + description:Knockdown Opposite Opponent Power-up - P1 + code:7e07ef/10 + cheat + description:Knockdown Opposite Opponent Power-up - P2 + code:7e08ef/10 + cheat + description:Knockdown Opposite Opponent Power-up - P3 + code:7e09ef/10 + cheat + description:Knockdown Opposite Opponent Power-up - P4 + code:7e0aef/10 + cheat + description:High Shots Power-up - P1 + code:7e07ef/20 + cheat + description:High Shots Power-up - P2 + code:7e08ef/20 + cheat + description:High Shots Power-up - P3 + code:7e09ef/20 + cheat + description:High Shots Power-up - P4 + code:7e0aef/20 + cheat + description:Whirlwind Power-up - P1 + code:7e07ef/80 + cheat + description:Whirlwind Power-up - P2 + code:7e08ef/80 + cheat + description:Whirlwind Power-up - P3 + code:7e09ef/80 + cheat + description:Whirlwind Power-up - P4 + code:7e0aef/80 + cheat + description:All Power-ups except Power Push, On-Fire, Knockdown Both Opponents, Knockdown Opposite Opponent and Whirlwind - P1 + code:7e07ee/f6+7e07ef/2b + cheat + description:All Power-ups except Power Push, On-Fire, Knockdown Both Opponents, Knockdown Opposite Opponent and Whirlwind - P2 + code:7e08ee/f6+7e08ef/2b + cheat + description:All Power-ups except Power Push, On-Fire, Knockdown Both Opponents, Knockdown Opposite Opponent and Whirlwind - P3 + code:7e09ee/f6+7e09ef/2b + cheat + description:All Power-ups except Power Push, On-Fire, Knockdown Both Opponents, Knockdown Opposite Opponent and Whirlwind - P4 + code:7e0aee/f6+7e0aef/2b + cheat + description:All Power-ups - P1 + code:7e07ee/ff+7e07ef/bf + cheat + description:All Power-ups - P2 + code:7e08ee/ff+7e08ef/bf + cheat + description:All Power-ups - P3 + code:7e09ee/ff+7e09ef/bf + cheat + description:All Power-ups - P4 + code:7e0aee/ff+7e0aef/bf + cartridge sha256:c88a882ad72dfa07a9b1eb8a2183aa10057d60877a02edf90cf2cd8c78abe65e name:Combatribes, The (USA) cheat @@ -39617,6 +40109,12 @@ cartridge sha256:c4ae2797fac2586b8640064be6398f2b4f2b3158a07f26c66912b29f7fd197d cheat description:Infinite power code:019b53/ad+019b75/ad+019b97/ad + cheat + description:Freeze CPU Racers (always first place) + code:01b418/a5+01b470/a5 + cheat + description:Drive anywhere + code:019a8a/ad+019757/ad+0198ab/64 cartridge sha256:ad31b94ce928ecff605e2b89082154671691509e95d38370ed381437f2c36698 name:Cybernator (USA) @@ -40880,6 +41378,9 @@ cartridge sha256:7dbfc44d28a46e6d399628e43086aa9fd0b2abeda4c108751a5ad91c102c3aa cheat description:Infinite credits - both players code:048e4c/ad + cheat + description:Enable level select (pause and press select) + code:048873/0b+048250/00 cheat description:Hit and stomp anywhere code:01c6fa/80+01c6fb/15 @@ -41006,15 +41507,18 @@ cartridge sha256:10e07e9e094e77a2b71bab3bac1d79a62b7a7bfdb80111044b1f9c64645c622 cartridge sha256:fa8cacf5bbfc39ee6bbaa557adf89133d60d42f6cf9e1db30d5a36a469f74d15 name:Donkey Kong Country (USA) - cheat - description:Invincibility (no lockup) - code:bfa2a0/60+bfa11b/18+bfa3ac/18 cheat description:Invincibility - code:bfa2a0/60 + code:bfc745/60+bfd31c/00 cheat - description:Almost invincible (disable if you get stuck) - code:bfa2a0/60+bfa2c7/60 + description:Invincibility in Mine Cart Carnage stage + code:b6a6a1/00 + cheat + description:Kill enemies on contact + code:bfc746/82+bfd320/82+bfa79b/00+b686a2/ea + cheat + description:Can cartwheel and stomp enemies who are immune to it + code:bfa79b/00+b686a2/ea+be94c4/00 cheat description:Infinite lives code:b6a861/ad @@ -41177,15 +41681,18 @@ cartridge sha256:fa8cacf5bbfc39ee6bbaa557adf89133d60d42f6cf9e1db30d5a36a469f74d1 cartridge sha256:df2644d435330192a13768cc1f79c5aa3084a64217a5250c6dd4ffdbe2175be4 name:Donkey Kong Country (USA) (Rev 1) - cheat - description:Invincibility (no lockup) - code:bfa2c7/60+bfa142/18+bfa3d3/18 cheat description:Invincibility - code:bfa2c7/60 + code:bfd345/00+bfc76c/60 cheat - description:Almost invincible (disable if you get stuck) - code:bfa2c7/60 + description:Invincibility in Mine Cart Carnage stage + code:b6a6a3/00 + cheat + description:Kill enemies on contact + code:bfc76d/82+bfd349/82+bfa7c2/00+b686a2/ea + cheat + description:Can cartwheel and stomp enemies who are immune to it + code:bfa7c2/00+b686a2/ea+be94c4/00 cheat description:Infinite lives code:b6a863/ad @@ -41273,12 +41780,18 @@ cartridge sha256:df2644d435330192a13768cc1f79c5aa3084a64217a5250c6dd4ffdbe2175be cartridge sha256:628147468c3539283197f58f03b94df49758a332831857481ea9cc31645f0527 name:Donkey Kong Country (USA) (Rev 2) - cheat - description:Invincibility (no lockup) - code:bfa2db/60+bfa156/18+bfa3e7/18 cheat description:Invincibility - code:bfa2db/60 + code:bfd395/00+bfc79e/60 + cheat + description:Invincibility in Mine Cart Carnage stage + code:b6a6ad/00 + cheat + description:Kill enemies on contact + code:bfc79f/82+bfd399/82+bfa7e4/00+b686a2/ea + cheat + description:Can cartwheel and stomp enemies who are immune to it + code:bfa7e4/00+b686a2/ea+be94c8/00 cheat description:Infinite lives code:b6a873/ad @@ -41361,6 +41874,18 @@ cartridge sha256:628147468c3539283197f58f03b94df49758a332831857481ea9cc31645f052 description:Return of Kong (alt) code:7e0579/01 +cartridge sha256:07ff03fa8c8e31d2f8277ef2a9785022edebf7f79b694c66a00c66d8e563bce5 + name:Donkey Kong Country (USA) (Competition Edition) + cheat + description:Kill enemies on contact + code:bfc783/82+bfd36f/82+bfa7d7/00+b686a2/ea + cheat + description:Can cartwheel and stomp enemies who are immune to it + code:bfa7d7/00+b686a2/ea+be94c4/00 + cheat + description:Multi-jump + code:bfb367/80+bfb961/00+bfb980/00+bfb965/80 + cartridge sha256:b79c2bb86f6fc76e1fc61c62fc16d51c664c381e58bc2933be643bbc4d8b610c name:Donkey Kong Country 2 - Diddy's Kong Quest (USA) (En,Fr) (Rev 1) cheat @@ -41593,13 +42118,16 @@ cartridge sha256:2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32 code:b882b8/93 cheat description:Invincibility (alt) - code:b8c64e/a9+b8c64f/09+b8c650/00 + code:b8c64e/a9+b8c64f/09+b8c650/00+bee1ca/80 cheat description:Infinite lives code:f880fa/a9 cheat description:Infinite bear coins code:f490b5/09 + cheat + description:Infinite fuel - Rocket Rush level + code:f8b4e6/ad cheat description:Get Funky's Gyrocopter with no need for DK coins code:f484ac/80+f484d7/80 @@ -41630,6 +42158,21 @@ cartridge sha256:2277a2d8dddb01fe5cb0ae9a0fa225d42b3a11adccaeafa18e3c339b3794a32 cheat description:Multi-jump code:b8d79d/20+b8d79e/71+b8d79f/90+b8d7a0/60 + cheat + description:Exit unbeaten levels + code:808b96/24+808bad/24 + cheat + description:Normal controls in Poisonous Pipeline level + code:f8cd17/ca + cheat + description:No need to bash baddies in bonus round to get coin + code:bbd79b/24 + cheat + description:No need to get bananas in bonus round to get coin + code:fbd845/f0 + cheat + description:Skip intro screens + code:b287cb/80+b28cd6/80+b28f18/80+b28e7c/0f cartridge sha256:d45e26eb10c323ecd480e5f2326b223e29264c3adde67f48f0d2791128e519e8 name:Doom (USA) @@ -43745,6 +44288,12 @@ cartridge sha256:414bacc05a18a6137c0de060b4094ab6d1b75105342b0bb36a42e45d945a0e4 cheat description:Save anywhere code:0099cf/a9 + cheat + description:131,070 exp points after each battle + code:13ff7b/01+13ff91/b1 + cheat + description:16,646,142 exp points after each battle + code:13ff7b/01+13ff91/b1+13ff8b/b3 cheat description:Get at least 150 GP after each battle code:03ed72/69+03ed73/96+03ed74/ea @@ -43755,7 +44304,7 @@ cartridge sha256:414bacc05a18a6137c0de060b4094ab6d1b75105342b0bb36a42e45d945a0e4 description:Get at least 65,536 GP after each battle code:03ed87/ee cheat - description:Get 99 of items that you are given or find in a pot, treasure chest, ect + description:Get 99 of items that you are given or find in a pot, treasure chest, etc. code:009819/63 cheat description:Get 99 arrows when you find them in a pot or treasure chest @@ -43955,6 +44504,9 @@ cartridge sha256:414bacc05a18a6137c0de060b4094ab6d1b75105342b0bb36a42e45d945a0e4 cartridge sha256:680535dc1c4196c53b40dc9c2c9bc159a77802ab8d4b474bef5dc0281c15ad06 name:Final Fantasy II (USA) + cheat + description:Skip intro + code:128020/09+128021/04 cheat description:Almost infinite HP (can make big and sometimes normal monsters invincible, disable to defeat them) code:03cae6/bd @@ -44009,6 +44561,12 @@ cartridge sha256:680535dc1c4196c53b40dc9c2c9bc159a77802ab8d4b474bef5dc0281c15ad0 cheat description:Save anywhere code:0099cf/a9 + cheat + description:131,070 exp points after each battle + code:13ff7b/01+13ff91/b1 + cheat + description:16,646,142 exp points after each battle + code:13ff7b/01+13ff91/b1+13ff8b/b3 cheat description:Get at least 150 GP after each battle code:03ed5d/69+03ed5e/96+03ed5f/ea @@ -44019,7 +44577,7 @@ cartridge sha256:680535dc1c4196c53b40dc9c2c9bc159a77802ab8d4b474bef5dc0281c15ad0 description:Get at least 65,536 GP after each battle code:03ed72/ee cheat - description:Get 99 of items that you are given or find in a pot, treasure chest, ect + description:Get 99 of items that you are given or find in a pot, treasure chest, etc. code:009819/63 cheat description:Get 99 arrows when you find them in a pot or treasure chest @@ -46904,6 +47462,9 @@ cartridge sha256:5a6deb5617e86a9f4b981031e939510e30c5c8ad047f5f012e40442113fd28c cheat description:Invincibility code:c0419e/60 + cheat + description:Infinite health + code:7f0000/00 cheat description:Infinite time code:c08611/80 @@ -48401,6 +48962,9 @@ cartridge sha256:62557ee2a3fc3b5a3f59431f966eb61bb380ba983ef6c7742cb55cf075f15f6 cheat description:Have all items code:7e02b3/ff+7e02b4/ff+7e02b5/01+7e02aa/ff+7e02ab/ff+7e02ac/ff+7e02ad/ff+7e02ae/ff+7e02af/ff+7e02b0/ff+7e02b1/ff+7e02b2/ff + cheat + description:Walk through walls + code:80e643/11 cartridge sha256:3ffbb6e0ccf8e9f5e4c72d9fe526a16371e562b71a91d6430e562bf358a5126b name:Jack Nicklaus Golf (USA) @@ -49508,6 +50072,9 @@ cartridge sha256:7f05959f423bc656091ea3bddfbc89c877ae243dca346f63233e27973f34e0e cartridge sha256:05152bcf9bf086e7bcdbfa7dd8edfe2085f1339c4d7e193e0071c49a10471ef4 name:Ka-blooey (USA) + cheat + description:Invincibility + code:00b292/80+00c251/80 cheat description:Infinite lives code:008165/ad @@ -50222,6 +50789,9 @@ cartridge sha256:7a5261f1a5e84b67483c79fb002ce1539f2360f88333bda60f12e617d86e0de cheat description:One button finishes and humiliations code:80b229/00 + cheat + description:Enable finishes during round + code:80b3ef/24+80b3f4/24+80b3fe/24+80b406/24+80b408/c9 cheat description:CPU cannot move from starting position code:7e0e08/01 @@ -50246,6 +50816,9 @@ cartridge sha256:618a23636e07110e094277ec1d1e60c3620a6e9a5f386292808267593fa803a cheat description:One button finishes and humiliations code:80b222/00 + cheat + description:Enable finishes during round + code:80b3e3/24+80b3e8/24+80b3f2/24+80b3fa/24+80b3fc/c9 cheat description:CPU cannot perform special or danger moves code:80d624/a9+80d625/00 @@ -50426,6 +50999,9 @@ cartridge sha256:6638b5541059814d4c34574e5e277ef613aebf81c91d3def557a7642fb5840e cheat description:Hit anywhere code:c08a63/80+c08a2f/80+c08a8f/80+c089f8/80+c089f1/80 + cheat + description:Enable 2-Player same character cheat + code:c12376/f0 cheat description:Start with level 6 Sword code:c07369/8e+c07370/85 @@ -50579,6 +51155,9 @@ cartridge sha256:67937dd7a29a93b1aaabb6df89f0748369ff47f3f6c655a402c00d565797314 cheat description:Boulder warnings don't appear code:88c2ba/b4 + cheat + description:CPU gets all the boulders + code:88c2d0/ce+88c2d2/07+88c2d1/52 cheat description:Only red blobs fall code:888e4f/a9+888e50/00+888e51/00 @@ -51509,6 +52088,15 @@ cartridge sha256:66871d66be19ad2c34c927d6b14cd8eb6fc3181965b6e517cb361f7316009cf cheat description:Trigger doors are open (works with most dungeon doors, some that even look closed) code:7e068d/ff + cheat + description:Hold button L to walk over pits + code:07dc8d/00+07dc8c/f2+07dc8f/20 + cheat + description:Hold button R to walk over pits + code:07dc8d/00+07dc8c/f2+07dc8f/10 + cheat + description:Prevent Zelda from saying 'Help me... I am in the dungeon of the castle' during the beginning of the game + code:099ff3/ad cheat description:Have Bombos Medallion code:7ef347/01 @@ -52576,7 +53164,7 @@ cartridge sha256:8510491f99400115ccf33570269bc4e484fb56370f7ac36f12e73eec19d342d code:7e05a3/09 cartridge sha256:73731a5a7932965de02a9e98055dcf88b4d17b8f710a6ecfde3e36a1f248773b - name:Lufia & The Fortress of Doom (USA) + name:Lufia & the Fortress of Doom (USA) cheat description:Move around caves and world map quicker (except when leaving a vehicle) code:019829/20 @@ -56010,6 +56598,24 @@ cartridge sha256:44cc113ce1e7616cc737adea9e8f140436c9f1c3fba57e8e9db48025d4ace63 description:Cheat menu enabled (in options menu) code:7e0104/01 +cartridge sha256:a203a13870eaec92095daef1196a0c9fe8416e600504d55dd0dc724d4f5f5cb0 + name:Maui Mallard in Cold Shadow (USA) + cheat + description:Enable level skip cheat (press Select + Y + A during the game) + code:7e1f55/02 + cheat + description:Enable infinite lives cheat + code:7e1f55/04 + cheat + description:Enable water is harmless cheat + code:7e1f55/40 + cheat + description:Enable infinite health cheat (health reaches 0, but you won't die) + code:7e1f55/80 + cheat + description:Disable all cheats + code:7e1f55/00 + cartridge sha256:2a08704748f5ef6488348c4099729feca600412d331bda3756e51efd8b94e113 name:MechWarrior (USA) cheat @@ -57314,6 +57920,21 @@ cartridge sha256:3c6d3e4a9c9af160f1c1cf11ce4ead531d9500c1f58f1cbe682c90a5eaa3efb cheat description:One button fatalities - Scorpion (Press Up, L or R) code:80d03f/0d + cheat + description:Perform Kano's fatality from any distance + code:80d40a/24 + cheat + description:Perform Rayden's fatality from any distance + code:80cb00/24 + cheat + description:Perform Johnny Cage's fatality from any distance + code:80ca48/24 + cheat + description:Perform Scorpion's fatality from any distance + code:80d03e/24 + cheat + description:Perform Sub-Zero's fatality from any distance + code:80ccef/24 cheat description:All throws do more damage code:809053/78 @@ -57707,6 +58328,15 @@ cartridge sha256:43e36a74fb73a7efc46b380599e269b1fff8f55ecf80f5cf50c34d02ceda041 cheat description:Have 127x more fatality time code:83a6d5/7f + cheat + description:CPU always does fatalities + code:80cdef/24 + cheat + description:CPU always does friendships and babalities (Smoke and Jade will also be in the Living Forest) + code:80ff47/80 + cheat + description:Disable blood + code:84fda5/24 cheat description:Disable throws - 2P mode code:82da9f/8d @@ -57821,6 +58451,15 @@ cartridge sha256:ca2f86ca77f822fcd8e86f5a287f2a76d0becbb81a7bce73ae22909beb2f834 cheat description:Have 127x more fatality time code:83a6e5/7f + cheat + description:CPU always does fatalities + code:80ce01/24 + cheat + description:CPU always does friendships and babalities (Smoke and Jade will also be in the Living Forest) + code:80ff7a/80 + cheat + description:Disable blood + code:84fda9/24 cheat description:Disable throws - 2P mode code:82da9f/8d @@ -58106,6 +58745,9 @@ cartridge sha256:c70b812a9d2df7f95b279e4050e03a4b8a68588a370816e645f378296b84e5d cartridge sha256:b257cffb3484e6be051a56268cb99ee888bd6d3e9c0e8d6d0779ff66c411f6ba name:NBA Jam - Tournament Edition (USA) + cheat + description:Enable extended roster + code:8aa145/a9 cheat description:Infinite shot clock time code:80ad5a/ad @@ -59262,6 +59904,12 @@ cartridge sha256:ce9c819d6496e58901b39d9b04558a89e09ccc3aac33690b8d02bb0406682a5 description:Start on extra course (stats are for South Africa but the course is different) code:1f89d5/10 +cartridge sha256:620af60cd4a6683871e9339c2db63d87538819af29b3cf967a1729b53a3bd6b3 + name:Nightmare Busters (Europe) (Proto) + cheat + description:Enable Extra Options in options menu + code:7e1f6b/02 + cartridge sha256:fccc96af24a2463b1c53253e1c5c8ef63641355fae53c0fb410427f29743262b name:Ninja Gaiden Trilogy (USA) cheat @@ -59399,6 +60047,9 @@ cartridge sha256:3c109e50b91ec6df3bb8509778ae544c99433fb40dda9b801178dfe51305361 cheat description:One hit kills code:038cbf/a9+038cc0/00+038cc1/00+02a3f0/a9+02a3f1/00+02a3f2/00 + cheat + description:Go to stage select menu (disable once the menu loads) + code:7e0000/0a cartridge sha256:f099937ac4c8afb38c517c5d85475224985fb8f345dacb44994a617ea05bf4e5 name:No Escape (USA) @@ -60743,6 +61394,15 @@ cartridge sha256:b7291088f5c49e1fc55bf932076ec03f7b39f6e409ae06e884b57024c56cdc8 cheat description:Access all weapons (highlight weapon and press X to equip) code:81e7f4/de + cheat + description:Super jump 2X + code:819102/f6 + cheat + description:Super jump 3X + code:819102/f1 + cheat + description:Walk through walls (horizontal) + code:81cd13/18 cheat description:Invincibility (alt) code:7e0410/dc @@ -60798,6 +61458,12 @@ cartridge sha256:b7291088f5c49e1fc55bf932076ec03f7b39f6e409ae06e884b57024c56cdc8 description:Have Energy Aid Kit code:7e0fe2/01 +cartridge sha256:a0b39d7fd7c39c5b0f41f3542fb8d2887530ded1c111b4ffb2a863845e704ecc + name:Pieces (USA) + cheat + description:Place pieces anywhere to auto place + code:c08261/00+c08267/00 + cartridge sha256:03d0127f5de3237e22ad00de0c20763274da7b71142dde693240ac96d10983a3 name:Pilotwings (USA) cheat @@ -61037,6 +61703,9 @@ cartridge sha256:72b2b3bead3fcd27a1610ad5d4d8be3235efeaff96df2e7858911992a5892d2 cheat description:Infinite lives - Rocky code:01e97e/00 + cheat + description:Enable level select (pause and press select) + code:009ae8/80 cheat description:Weapons don't deplete when hit - Pocky code:04ebd8/24 @@ -61859,9 +62528,15 @@ cartridge sha256:ba135ad37fef9932c2f840cf6cf82d559c232dfe0f85ba068a34755f3ad5f77 cartridge sha256:89d57bf308033ef17f770a80080cbeed2d112244635d5b5f860f2016398cd2f6 name:Q-bert 3 (USA) + cheat + description:Invincibility + code:00b9a3/00 cheat description:Infinite lives code:00a776/ad + cheat + description:Step on any cube to clear level + code:009057/00 cheat description:Start with 1 life instead of 5 code:00808c/01 @@ -63821,9 +64496,156 @@ cartridge sha256:34e1af0642c85148c5a3dc3c7ab4bcbda13a9fea190934b5526c555fff03565 cheat description:Quicker 'jungle fever' for Rasta code:80bded/4a+80bdf7/02 + cheat + description:Infinite health - P1 + code:7e0879/ff + cheat + description:Infinite health - P3 + code:7e0c79/ff + cheat + description:Infinite health - P4 + code:7e0e79/ff + cheat + description:No health - P1 + code:7e0879/00 + cheat + description:No health - P2 + code:7e0a79/00 + cheat + description:No health - P3 + code:7e0c79/00 + cheat + description:No health - P4 + code:7e0e79/00 cheat description:Infinite time code:7e1a70/01 + cheat + description:Infinite time (alt) + code:7e1a70/59+7e1a71/02 + cheat + description:Infinite ringout time - all players + code:7e1a60/00 + cheat + description:P1 wrestler modifier - Jumbo + code:7e1b86/00 + cheat + description:P1 wrestler modifier - Biff + code:7e1b86/01 + cheat + description:P1 wrestler modifier - Gunloc + code:7e1b86/02 + cheat + description:P1 wrestler modifier - Oni + code:7e1b86/03 + cheat + description:P1 wrestler modifier - Titan + code:7e1b86/04 + cheat + description:P1 wrestler modifier - Stingray + code:7e1b86/05 + cheat + description:P1 wrestler modifier - Haggar + code:7e1b86/06 + cheat + description:P1 wrestler modifier - Grater + code:7e1b86/07 + cheat + description:P1 wrestler modifier - Rasta + code:7e1b86/08 + cheat + description:P1 wrestler modifier - Scorpion + code:7e1b86/09 + cheat + description:P2 wrestler modifier - Jumbo + code:7e1b87/00 + cheat + description:P2 wrestler modifier - Biff + code:7e1b87/01 + cheat + description:P2 wrestler modifier - Gunloc + code:7e1b87/02 + cheat + description:P2 wrestler modifier - Oni + code:7e1b87/03 + cheat + description:P2 wrestler modifier - Titan + code:7e1b87/04 + cheat + description:P2 wrestler modifier - Stingray + code:7e1b87/05 + cheat + description:P2 wrestler modifier - Haggar + code:7e1b87/06 + cheat + description:P2 wrestler modifier - Grater + code:7e1b87/07 + cheat + description:P2 wrestler modifier - Rasta + code:7e1b87/08 + cheat + description:P2 wrestler modifier - Scorpion + code:7e1b87/09 + cheat + description:P3 wrestler modifier - Jumbo + code:7e1b88/00 + cheat + description:P3 wrestler modifier - Biff + code:7e1b88/01 + cheat + description:P3 wrestler modifier - Gunloc + code:7e1b88/02 + cheat + description:P3 wrestler modifier - Oni + code:7e1b88/03 + cheat + description:P3 wrestler modifier - Titan + code:7e1b88/04 + cheat + description:P3 wrestler modifier - Stingray + code:7e1b88/05 + cheat + description:P3 wrestler modifier - Haggar + code:7e1b88/06 + cheat + description:P3 wrestler modifier - Grater + code:7e1b88/07 + cheat + description:P3 wrestler modifier - Rasta + code:7e1b88/08 + cheat + description:P3 wrestler modifier - Scorpion + code:7e1b88/09 + cheat + description:P4 wrestler modifier - Jumbo + code:7e1b89/00 + cheat + description:P4 wrestler modifier - Biff + code:7e1b89/01 + cheat + description:P4 wrestler modifier - Gunloc + code:7e1b89/02 + cheat + description:P4 wrestler modifier - Oni + code:7e1b89/03 + cheat + description:P4 wrestler modifier - Titan + code:7e1b89/04 + cheat + description:P4 wrestler modifier - Stingray + code:7e1b89/05 + cheat + description:P4 wrestler modifier - Haggar + code:7e1b89/06 + cheat + description:P4 wrestler modifier - Grater + code:7e1b89/07 + cheat + description:P4 wrestler modifier - Rasta + code:7e1b89/08 + cheat + description:P4 wrestler modifier - Scorpion + code:7e1b89/09 cartridge sha256:7fb5236d10852125f0f37c2188b907d636647400a57bccbdb2f63098ffae8b2d name:Scooby-Doo Mystery (USA) @@ -64512,6 +65334,15 @@ cartridge sha256:d09ca5adaee65cfd686742482bc55b1a3ce9bc5ebed61f24c5631555151a7fc description:Always advance to the next level code:7e10a2/e7+7e10a3/03 +cartridge sha256:d50a40576c5494c039d2da64c19353d5d075345199ae7a9a7a077fde33dbd70c + name:Silva Saga II - The Legend of Light and Darkness (Japan) + cheat + description:No random battles + code:80c769/ad + cheat + description:Walk anywhere + code:80c7ee/80+80c7ef/64 + cartridge sha256:c0bd1b378337c32047a6b7122a3813beb646e496fbdb1fa5c87ab9856271e4c5 name:SimAnt - The Electronic Ant Colony (USA) cheat @@ -65457,17 +66288,23 @@ cartridge sha256:dc5353ddc350816619230f25f8c51bddabf7438e6dfba21662eb1c479485673 cartridge sha256:f5b7418c00ccac44615cfc57c7e17d57533837056886f6d733e6b714c36dec1f name:Space Megaforce (USA) cheat - description:Protection against enemy hits, and weapon level goes to 2 when hit - code:0288bb/a9+0288bc/06 + description:Invincibility + code:0280be/d0 cheat - description:Protection against enemy hits, and weapon level goes to 6 when hit - code:0288bb/a9+0288bc/06+0288c8/06 + description:Infinite special lives (always respawn after dying as long as you have regular lives remaining) + code:0084a6/ad cheat description:Infinite bombs code:028777/00 cheat description:Infinite ships code:02890f/00 + cheat + description:Protection against enemy hits, and weapon goes to level 2 when hit + code:0288bb/a9+0288bc/06 + cheat + description:Protection against enemy hits, and weapon goes to level 6 when hit + code:0288bb/a9+0288bc/06+0288c8/06 cheat description:Hit anywhere code:01aa01/60+01aa03/d0+01aa04/2c+01aa00/ad+01aa02/0d @@ -65576,6 +66413,9 @@ cartridge sha256:f5b7418c00ccac44615cfc57c7e17d57533837056886f6d733e6b714c36dec1 cheat description:Start in area 12 code:0081c1/a9+0081c2/0c + cheat + description:Enable debug mode + code:80fff0/ff cartridge sha256:14dc44687c8da35aec63b9edadbaac21bf7293f5171646f614139192e82ab071 name:Spanky's Quest (USA) @@ -65980,7 +66820,7 @@ cartridge sha256:964d21996e385e032b5d18baf716692ba1db780245cd71956c212045c1b8eb9 code:7e0b28/07 cartridge sha256:63210a91573fa8e19592f2e6c746a400831d804c00453739447d2df32e731df7 - name:Spider-Man-X-Men - Arcade's Revenge (USA) + name:Spider-Man - X-Men - Arcade's Revenge (USA) cheat description:Invincibility after first hit (blinking) - Spider-Man code:188b60/ad @@ -67727,6 +68567,9 @@ cartridge sha256:4efab3f49cbe91ec77b6cba747ddfedfdc0b080c755a8b6ba51234f0676c000 cheat description:Hit anywhere code:c60c0f/40+c60c0b/66+c60c0a/ad+c60c0c/0d + cheat + description:Walk anywhere + code:c60b99/18 cheat description:Remove all blocks code:c61aa9/01 @@ -68777,6 +69620,9 @@ cartridge sha256:a9e3e57d591e995e8e0dd228b619b6aed42205eaf55316fa8ff33f236b3a32b cheat description:SMB3 - Mega power-jump code:23cb51/00 + cheat + description:SMB3 - Mushrooms always go to the right when spawned from a block + code:288fab/10 cheat description:SMB3 - Change to Big Mario whenever you go to the map code:208f59/a9+208f5a/01 @@ -69731,6 +70577,9 @@ cartridge sha256:0838e531fe22c077528febe14cb3ff7c492f1f5fa8de354192bdff7137c27f5 cheat description:Multi-jump and float down (disable in water and to get on Yoshi) code:7e1471/01 + cheat + description:Swim on every level + code:00f2c3/a9 cheat description:Activate green blocks (disable before entering the Green Switch Palace) code:7e1f27/01 @@ -70034,21 +70883,21 @@ cartridge sha256:12b77c4bc9c1832cee8881244659065ee1d84c70c3d29e6eaf92e6798cc2ca7 cheat description:Enemies die on contact (Speed Booster effect) code:a0a4b8/80+a0a4a4/80 - cheat - description:Skip intro and start on Planet Zebes on new game - code:82eebb/00 - cheat - description:Select area when loading saved game A (press right on map screen) - code:81a81a/00+81a8af/80 cheat description:Switching areas fills the map code:808597/af+80859a/03 cheat - description:Automatically collect secret and/or special items in current room (Missiles, Energy Tanks, ect) + description:Automatically collect secret and/or special items in current room (Missiles, Energy Tanks, etc.) code:84df92/24+84dff4/24 + cheat + description:View all hidden blocks with X-ray Scope regardless of your viewing direction + code:88817c/0f cheat description:Can access Tourain from sunken statues room code:7ed820/c1+7ed821/1f + cheat + description:Disabled water + code:88c4b8/a9+88c4b9/ff+88c4ba/ff cheat description:Full movement in Maridia sand code:84b518/80+90981d/00 @@ -70062,11 +70911,17 @@ cartridge sha256:12b77c4bc9c1832cee8881244659065ee1d84c70c3d29e6eaf92e6798cc2ca7 description:Metroids can be killed without being frozen first code:a3ef1c/24+a3ef27/80 cheat - description:Display entire map - code:82947f/80+8294ef/80+8085ae/a9 + description:Skip intro and start on Planet Zebes on new game + code:82eebb/00 + cheat + description:Select area when loading saved game A (press right on map screen) + code:81a81a/00+81a8af/80 cheat description:0 hours played code:70004e/00 + cheat + description:Display entire map + code:82947f/80+8294ef/80+8085ae/a9 cheat description:Brinstar mapped code:7ed909/ff @@ -70415,6 +71270,9 @@ cartridge sha256:5a4b0c89606f71182fa5552ac476cc3bbda5ddc7d44e33f9184114aaea38020 cartridge sha256:a3d803b8c6b0b6ac55085671040b840f993543915c7f802e14fb651beabe9b63 name:Super Punch-Out!! (USA) + cheat + description:Invincibility against normal attacks + code:00c3fd/00 cheat description:Infinite health against most punches code:00c824/ad @@ -72327,6 +73185,21 @@ cartridge sha256:d802715fb4f09d7e499b5b3e577af641598a723dae7cedeaa93943bb53c6edb description:World 5 - Dark Kat always enabled code:c0ecd6/05 +cartridge sha256:40916fe512541aafba354e39c4ef63a9114de235526de5bb949a239a9257490e + name:Sword Maniac (Japan) + cheat + description:Infinite time + code:008bf8/ad + cheat + description:Infinite health + code:7e0a18/a0 + cheat + description:Infinite lives + code:7e0a3e/09 + cheat + description:Attack really fast + code:7e101e/01 + cartridge sha256:c2015d03dd3db08069b2a6ea1ed6b3e1ac1e3a5f804b02295c3cd3717add91ef name:Syndicate (USA) cheat @@ -72687,6 +73560,15 @@ cartridge sha256:e3bd2296b860a547bb8594485048d3e1326a416405ed9e91139c75f8927acfe description:Infinite time (alt) code:7e0098/99 +cartridge sha256:7da4a3cfa5de4bb4722a6e2a42c26aae322b5e668f1645d8c870fb99e6080600 + name:Tecmo Secret of the Stars (USA) + cheat + description:Reach level 99 after one battle + code:00af03/00 + cheat + description:Kill one enemy to win battle (you only get exp for that one enemy) + code:00dd8c/00 + cartridge sha256:35dd020cf57fc402417ab6e4a6c49866c5a86bba25218c0aaf7ce85cb134bcf8 name:Tecmo Super Bowl (USA) cheat @@ -72872,6 +73754,9 @@ cartridge sha256:5b82cdd6f2da56f43680d6a5021faebe2e06036d30602c1a7917aa414cf8b5f cheat description:Infinite lives code:00cea6/00 + cheat + description:Infinite Special Attack - Both Players + code:00c297/b5 cheat description:One hit kills (disable during Shredder's first fight) code:0485a7/80 @@ -72929,6 +73814,12 @@ cartridge sha256:5b82cdd6f2da56f43680d6a5021faebe2e06036d30602c1a7917aa414cf8b5f cheat description:Infinite health (alt) (enable after level starts) code:7e044a/56 + cheat + description:Infinite time + code:7e0096/99 + cheat + description:Infinite time (alt) + code:7e0098/02 cartridge sha256:849141370f164d6db3e5709da670726f958ce13ffef69319564db3fb0b12c69d name:Teenage Mutant Ninja Turtles - Tournament Fighters (USA) @@ -73136,6 +74027,9 @@ cartridge sha256:3cdebbd8adc4bb6773a7995f542fdac49adefca71cba583255a1c1bf37ac394 cheat description:Tetris - Always at high speed code:8197d3/a9+8197d4/0a+8197d5/ea + cheat + description:Dr. Mario - Drop pieces anywhere to complete level + code:82a343/80+82a34f/a9 cheat description:Dr. Mario - The same piece always drops until you hit the change button code:82a05a/a9+82a05b/0a+82a05c/ea @@ -74540,6 +75434,12 @@ cartridge sha256:c8187417a27a2f14ce2be35eebd0f112bd413b57d3589ae6d40b333bc21ba69 cheat description:Infinite time code:7e02ce/00 + cheat + description:Hit anywhere + code:848363/00 + cheat + description:Multi-jump + code:829d5e/30+829d5d/fc cartridge sha256:259c25d4613f97f5fa7992900fb583625d7fb912c7ae09fa9def2e682834dc9f name:Twisted Tales of Spike McFang, The (USA) @@ -74903,6 +75803,18 @@ cartridge sha256:cb2fdfce61858063bf4c9da4228381c3ec3abe423f4d378cddd174ae4adb261 cheat description:Black background (wait for title screen to appear before proceeding) code:849584/ad + cheat + description:Press Left on main menu for Sound Test menu + code:83b6db/02 + cheat + description:Press Right on main menu for Kool Stuff menu + code:83b70f/02 + cheat + description:Press Up on main menu for Kooler Stuff menu + code:83b743/02 + cheat + description:Press B on main menu for Scotts Stuff menu + code:83b777/02 cheat description:First round / one button fatalities code:7e3be3/01 @@ -75932,6 +76844,9 @@ cartridge sha256:c8f159e2625ac8078535c06857ea28475706da45df494de8e46f50888272cf7 cheat description:Infinite lives code:7e1fb2/04 + cheat + description:Enable stage select after select player screen (disable before you exit the menu) + code:7e05f0/ff+7e05f1/ff cartridge sha256:2167fc7c5447b2287668d2f3e4ef1a285361b2292ecc8a4cbd9f966a460ad7a2 name:Wing Commander (USA) @@ -76742,6 +77657,138 @@ cartridge sha256:fbe8926fc0149d3e8e2aec20f15640ea6814f4f4b01c3960f3c477f5f17e890 cheat description:Infinite health code:7eedde/02 + cheat + description:Have Air Bubble 1D + code:7e4d00/02 + cheat + description:Have Air Bubble on button Y + code:7e4d29/21 + cheat + description:Have Balloon + code:7e4d07/02 + cheat + description:Have Balloon on button Y + code:7e4d1c/28 + cheat + description:Have Blue Spark 6C + code:7e4cf5/02 + cheat + description:Have Blue Sparkly on button Y + code:7e4d26/16 + cheat + description:Have Bubble Wand + code:7e4d0c/02 + cheat + description:Have Bubble Wand on button Y + code:7e4d1d/2d + cheat + description:Have Daffodil + code:7e4ce2/02 + cheat + description:Have Daffodil on button Y + code:7e4d1a/03 + cheat + description:Have Daisy + code:7e4ce1/02 + cheat + description:Have Daisy on button Y + code:7e4d17/02 + cheat + description:Have Dwarf Teleport + code:7e4d11/02 + cheat + description:Have Dwarf Teleport on button Y + code:7e4d1f/32 + cheat + description:Have FishBowl E 4C + code:7e4d0d/02 + cheat + description:Have FishBowl E on button Y + code:7e4d24/2e + cheat + description:Have Key - Gold 4C + code:7e4d03/02 + cheat + description:Have Key - Gold on button Y + code:7e4d22/24 + cheat + description:Have Key - Silver + code:7e4d04/02 + cheat + description:Have Key - Silver on button Y + code:7e4d25/25 + cheat + description:Have Golden Comb + code:7e4cf7/02 + cheat + description:Have Golden Comb on button Y + code:7e4d20/18 + cheat + description:Have Gold Spark 6C + code:7e4d15/02 + cheat + description:Have Gold Spark on button Y + code:7e4d28/36 + cheat + description:Have Golden Foxglove + code:7e4ce4/02 + cheat + description:Have Golden Foxglove on button Y + code:7e4d19/05 + cheat + description:Have Hour Glass + code:7e4cf6/02 + cheat + description:Have Hour Glass on button Y + code:7e4d21/17 + cheat + description:Have Mirror + code:7e4d08/02 + cheat + description:Have Mirror on button Y + code:7e4d1e/29 + cheat + description:Have Reflec Cry 6C + code:7e4d0a/02 + cheat + description:Have Reflec Cry 6C on button Y + code:7e4d27/2b + cheat + description:Have Rose + code:7e4ce3/02 + cheat + description:Have Rose on button Y + code:7e4d18/04 + cheat + description:Have Spring 4C + code:7e4d0b/02 + cheat + description:Have Spring on button Y + code:7e4d23/2c + cheat + description:Have Stun Dust + code:7e4d01/02 + cheat + description:Have Stun Dust on button Y + code:7e4d1b/22 + cheat + description:Have Tulip + code:7e4ce0/02 + cheat + description:Have Tulip on button Y + code:7e4d16/01 + cheat + description:Have Wheel 1D + code:7e4d05/02 + cheat + description:Have Wheel on button Y + code:7e4d2b/26 + cheat + description:Have Wrench 1D + code:7e4d02/04 + cheat + description:Have Wrench on button Y + code:7e4d2a/23 cartridge sha256:b0e74f0fe8d1e7fe2fe404341fea7c68e28f3a0ab78552d5092d413f2ecec417 name:Ys III - Wanderers from Ys (USA) @@ -77533,7 +78580,7 @@ cartridge sha256:4c156c4d826b9cba5741feb621de60c6294adb36553fc43971794bd2a4ffb34 code:4928/06/00 cartridge sha256:50c3a2193005c9134699ab00de16510fb946db10cdbc33bfacd8a3132926b72e - name:Adventures of Pinocchio, The (USA) (Proto) + name:Adventures of Pinocchio, The (Unknown) (Proto) cheat description:Invincibility code:14c0/e0/c9 @@ -77844,6 +78891,18 @@ cartridge sha256:7cebe1e446c56061f71e94b99cf6dfb7267cac0e21cb37b0f9a8118d5a127eb description:Millipede - Invincibility code:7543/ea/fa+7573/b8/37 +cartridge sha256:b9bb5b4d3274a7f4c443bd8fb2bf5f1018358d76a54c01e3a53f7ff610fa4fa6 + name:Aretha (Japan) + cheat + description:Walk anywhere + code:562e/01/00 + +cartridge sha256:afaf5380f970c2f07ff585a84bab50295fd17888591511cc1d71e8d7ddad7599 + name:Aretha II (Japan) + cheat + description:Walk anywhere + code:4cce/01/00 + cartridge sha256:c504be420e7bfdcf9905fc4d6674fd4b7466e832976a7a48660b901086536d1f name:Army Men (USA, Europe) (En,Fr,De) cheat @@ -77880,7 +78939,7 @@ cartridge sha256:801660458dc65c29701f21985943ba84c1f55cf57c9be3527b17548c33be260 description:Hit anywhere code:1d14/d2/fa -cartridge sha256:3f0688ed9219c44ce133647f0668cde50fdcba7ed8f04c34c3a0fc5ce596bfe5 +cartridge sha256:b34d96392f38b6b7c5462ce166f26e5c42f356dff6cff74ef9ac3e940ad7c6de name:Asteroids (USA, Europe) cheat description:Infinite lives @@ -77889,7 +78948,7 @@ cartridge sha256:3f0688ed9219c44ce133647f0668cde50fdcba7ed8f04c34c3a0fc5ce596bfe description:No extra rocks as you go up levels code:2a7e/34/00 cheat - description:Rocks go thru you unless you move from the middle + description:Invincible against rocks (from starting/center position only) code:2cb4/07/01+039c/35/00 cheat description:Start with 1 life @@ -78669,6 +79728,12 @@ cartridge sha256:5f7c1cdf6adbe6d6dcef488bd37d0da82fa356b79fd579b2022a149e983abc3 description:All enemies frozen code:0100/c2/ff +cartridge sha256:0e885739f2b4ce4a6a196e4db9f317d3346ce270276e44adce078927231096df + name:Bomberman Quest (USA) (SGB Enhanced) + cheat + description:Walk through walls + code:4a46/28/18 + cartridge sha256:6081309e7f5b63e4f6694965060c68baf82a775eb18e667c2c89898096e6e3d8 name:Bonk's Adventure (USA) cheat @@ -79110,14 +80175,20 @@ cartridge sha256:56d3dee063b8801704a284bd1bc229b94f15a3a448f485d347f04283d9bd16d description:Multi-jump code:5733/37/03+5732/fa/28+5736/02/51+572e/18/55+5735/fe/59+5731/c0/67+5737/c8/c9+1fe4/d0/c9+5730/b7/cb+5734/c7/cd+5170/ea/fa +cartridge sha256:2f83ab433323f4d08f111ace559a7e29d37ff33fe1ca9d726edd5bb98a854ec2 + name:Centipede (USA) + cheat + description:Kill one enemy to complete level + code:4586/01/05 + cartridge sha256:7e483524aa104928149e4e56f01b7e98c6eed70dcd30ac5d65cd9d2387cde5ff - name:Chessmaster, The (USA) + name:Chessmaster, The (DMG-N5) (USA) cheat description:Move pieces anywhere code:19d8/28/18+1a12/28/18+1a00/d9/00 cartridge sha256:0a44d1f127436d73fc2f64201da0e0fd40793a414e533bba0a08e02dfb51cb10 - name:Chessmaster, The (USA) (Rev A) + name:Chessmaster, The (DMG-N5) (USA) (Rev A) cheat description:Move pieces anywhere code:1ab6/28/18+1af8/28/18+1ae6/d1/00 @@ -79266,6 +80337,15 @@ cartridge sha256:3c86f30b11442c93b011287310dfea0a9c23a182527d8447769226e52ef29d5 description:Hit anywhere code:08b9/77/00+0863/30/3e +cartridge sha256:3ab8bcd08f0aa01c16ccc2bc286fc6c50cf2d140fd3ed411ef0e16e586410110 + name:Crystalis (USA) + cheat + description:Hit anywhere + code:2a5b/28/3e + cheat + description:Walk anywhere + code:46b8/c0/00 + cartridge sha256:d5a1c0e7af970859449c47fcc80a5f4dfa4f456b20fdfcd49e753ce46f2dc3da name:Cyraid (USA) cheat @@ -79312,7 +80392,7 @@ cartridge sha256:06d2f49483cf16f00580ba227d86174fdb9f72e555d9a9afea6aebcbfff012e code:019c/30/3e+019d/05/05 cartridge sha256:30faf530573519d690d066093e9fae3b461d79df37c025a9ec9115f5fc5786e4 - name:Daffy Duck (USA) + name:Daffy Duck (Europe) cheat description:Infinite jet pack code:3401/3c/af @@ -79619,6 +80699,9 @@ cartridge sha256:2781f6b1014336e3318073f162cadd970329c8148fc62b5e795441cd6fd5705 cheat description:Infinite time code:0c34/01/00 + cheat + description:Can open doors without a key + code:407b/d2/fa cheat description:Timer is 2x faster code:0c34/01/02 @@ -79643,12 +80726,15 @@ cartridge sha256:eaf831ddd75e7cbc9990e478a139ac162034c03377670fdb79615a9aa2cc570 cheat description:Invincibility code:4081/28/3e + cheat + description:Kill enemies on contact + code:2599/20/3e+25a5/7c/6d cheat description:Infinite lives code:4d9d/35/00+4da0/c2/21 cheat description:Multi-jump - code:55b5/0d/00+55aa/0c/01+55ac/17/1f+55b1/c6/29+55b2/fe/2d+55ad/38/30+55b3/06/36+55b0/0b/bd+55ab/c6/ca+55af/fa/cd+55b4/30/f6 + code:54b4/38/3e cheat description:Always save game at end of level, regardless if you have KONG letters or not code:40cb/ca/c3 @@ -79677,6 +80763,18 @@ cartridge sha256:eaf831ddd75e7cbc9990e478a139ac162034c03377670fdb79615a9aa2cc570 description:Start with 99 lives code:6e89/05/63+7e95/05/63 +cartridge sha256:7722555df42413c6fd5434b717e82ba4a842cc0df3ef02fd0cd9b45b1bb5f2ca + name:Donkey Kong Land 2 (USA, Europe) (SGB Enhanced) + cheat + description:Multi-jump (disables hanging on horizontal ropes) + code:083b/22/00+0b33/20/18+085a/3a/36+0852/a4/a5+085b/5f/af + cheat + description:Glimmer's Galleon always lit + code:46ad/df/00 + cheat + description:Can exit unbeaten levels + code:4a26/28/3e + cartridge sha256:75f902ab8674c3cd379438fbd54cfe7e87ca3ddf9727679547261d1b77db720b name:Double Dragon (USA, Europe) cheat @@ -79785,6 +80883,12 @@ cartridge sha256:936df4d0f74620c784129259a22fc3216eea04f70c10cab6005457a0f681e31 description:When selecting skill level, keep pressing down. Bleeping will continue, and computer will become more and more skillful. code:1a0b/03/ff +cartridge sha256:3296ce126e2ebf61f99e39d82e20e0f7d7ade84539ddd48f7c0e21fef5f46932 + name:Dr. Mario (World) + cheat + description:Drop capsules anywhere to clear level + code:2a3a/20/18+2be2/20/3e + cartridge sha256:15fecc6e3d9f72e9cf3f5af7c1f034cc94a2007d29ea0a204976adcc0ff9a52e name:Dragon's Lair - The Legend (USA) cheat @@ -79797,6 +80901,15 @@ cartridge sha256:8dab48cc81d14bcee7c73274df09cf5c4dd44c3b93d10a5a3175e04fead25de description:Opponent doesn't attack code:68fc/fa/c9 +cartridge sha256:3996cbfb2f133a48f58a0d81420362caceaa3e348704d496ba6cbff0eb47139f + name:Dragon Warrior I & II (USA) (SGB Enhanced) + cheat + description:No random battles + code:40b1/38/3e + cheat + description:Walk anywhere + code:62f5/20/3e + cartridge sha256:34f11935cb3c23102462aab9d96c09e25b81b35eef91f5e5456b2c3665734f0e name:Dragon Warrior III (USA) cheat @@ -79967,6 +81080,21 @@ cartridge sha256:5a462f1bbb4e75823c04c7a0b2a7497cbe7e709a425854c71c1fc4d60f16f44 cartridge sha256:e5b1d116a8fb01b7a7213f906b3ef1bcc91a18f6826b01ee1bccd89429a0d906 name:Final Fantasy Legend, The (USA) + cheat + description:Infinite items + code:4395/35/00+28cf/35/00 + cheat + description:Enemies have 0 HP + code:5758/7b/af+575a/7a/af + cheat + description:Enemies have 0 in all abilities + code:5760/0a/af+5763/0a/af+5766/0a/af+5769/0a/af + cheat + description:No random battles + code:229a/c0/c9 + cheat + description:Walk faster + code:245a/01/02 cheat description:Human male - Start with 1 strength point code:7123/08/01 @@ -80567,6 +81695,12 @@ cartridge sha256:0dc2278500feb3844ba0ceabee289be011da1084903ab1c3fd681c83e719111 cheat description:Infinite lives code:2cfd/35/3d + cheat + description:Multi-jump + code:5f23/30/00 + cheat + description:Skip intro screen + code:3637/06/18+3638/00/23 cartridge sha256:a04db245f19a55cd3ff43e2b3fc51cc747fc048a551c4e18639fef4af77553e1 name:Humans, The (USA) @@ -81499,7 +82633,7 @@ cartridge sha256:f15722ebebdae93e08bd6642d642614114f2d128778d6a131748c9855603e05 code:0807/ff/06 cartridge sha256:0d6c56da2fdb6b27d388912604ad97c2f71729604a075d76c1fcd923f29e6915 - name:Lock'n Chase (World) + name:Lock n' Chase ~ Lock 'n' Chase (World) cheat description:Invincibility code:1764/28/3e @@ -81901,7 +83035,7 @@ cartridge sha256:7c96841877908473f7873c91373b06bfd3749b341b4c4180c8fd2cc8b8308b6 code:48ab/c2/fa cartridge sha256:bc14dac53de625535cc2825efa3d2399bf0c8c661f8a9417c4b97414a630cd0e - name:Mickey Mouse - Magic Wand (USA, Europe) (SGB Enhanced) + name:Mickey Mouse - Magic Wands (USA, Europe) (SGB Enhanced) cheat description:Invincibility code:0e92/c8/3e @@ -82062,6 +83196,21 @@ cartridge sha256:f1bf118bd383a91ecf81f7ee759ce702b85cfee9f8cf11d8365cb243d555c60 description:Multi-jump code:4113/c2/fa+419e/2b/1d +cartridge sha256:5bc4ca50f5cbbc2cf5e2fc98f4a4df661faab495369ab41d9a63c0f8d49c0fa3 + name:Monopoly (USA) + cheat + description:Infinite money - P1 + code:c47c/99+c47d/99+c47e/09 + cheat + description:Infinite money - P2 + code:c480/99+c481/99+c482/09 + cheat + description:Infinite money - P3 + code:c484/99+c485/99+c486/09 + cheat + description:Infinite money - P4 + code:c488/99+c489/99+c48a/09 + cartridge sha256:003097c7a363da268fa2853262c1924ee72fe23fc546834b247c359f69a684aa name:Montezuma's Return! (USA) (En,Es) cheat @@ -82256,6 +83405,66 @@ cartridge sha256:6c2733c0a57bbfe5075bec42e0735c685c934780db45b33f899f62dfea549f6 cheat description:Hit anywhere - P1 code:1d30/04/00 + cheat + description:Enable Smoke + code:3dda/20/18 + cheat + description:Infinite Fatality time + code:0e16/35/00 + cheat + description:Cyrax one button Fatality (press Down) + code:44d5/80/16+44d4/00/ff+44d3/02/80 + cheat + description:Cyrax one button Babality (press Punch) + code:44ca/20/22+44c9/00/ff + cheat + description:Kabal one button Fatality (press Kick) + code:462a/00/ff+462b/08/16 + cheat + description:Kabal one button Babality (press Down) + code:4641/11/80+4643/10/22+4642/00/ff + cheat + description:Kano one button Fatality (press Down) + code:435b/11/80+435d/10/16+435c/00/ff + cheat + description:Kano one button Babality (press Kick) + code:436e/80/22+436d/00/ff + cheat + description:Sektor one button Fatality (press Block) + code:4468/20/16+4467/00/ff + cheat + description:Sektor one button Babality (press Kick) + code:4451/80/22+4450/00/ff + cheat + description:Sheeva one button Fatality (press Punch) + code:45d2/00/ff+45d3/10/16 + cheat + description:Sheeva one button Babality (press Kick) + code:4601/00/ff+4602/20/22 + cheat + description:Sindel one button Fatality (press Punch) + code:4573/10/16+4572/00/ff + cheat + description:Sindel one button Babality (press Up) + code:4559/10/22+4558/00/ff + cheat + description:Smoke one button Fatality (press Down) + code:451b/00/ff+451c/10/16 + cheat + description:Smoke one button Babality (press Kick) + code:4525/00/ff+4526/20/22 + cheat + description:Sonya one button Fatality (press Down) + code:4382/11/80+4383/10/ff+4384/00/16 + cheat + description:Sonya one button Fatality (press Kick) + code:43d1/00/ff+43d2/10/22 + cheat + description:Sub-Zero one button Fatality (press Forward) + code:46a2/00/ff+46a3/20/16 + cheat + description:Sub-Zero one button Babality (press Kick) + code:46d2/00/ff+46d3/20/22 cartridge sha256:cd999acce90fb40bb1231fda253fa8a0db9e26517ed4723353429aedf4ddf5db name:Mortal Kombat 4 (USA, Europe) (SGB Enhanced) @@ -82265,6 +83474,36 @@ cartridge sha256:cd999acce90fb40bb1231fda253fa8a0db9e26517ed4723353429aedf4ddf5d cheat description:Hit anywhere - normal attacks code:1ccb/0f/00 + cheat + description:Infinite Fatality Time + code:0e43/35/00 + cheat + description:Fujin one button Fatality (press Back) + code:43e5/10/16+43e4/00/ff + cheat + description:Liu Kang one button Fatality (press Down) + code:43cb/10/16+43ca/00/ff + cheat + description:Quanchi one button Fatality (press Forward) + code:4363/80/16+4362/00/ff + cheat + description:Raiden one button Fatality (press Up) + code:43a9/40/16+43a8/00/ff + cheat + description:Reiko and Shinnok one button Fatality (press Back) + code:4331/80/16+4330/00/ff + cheat + description:Reptile one button Fatality (press Punch) + code:438e/10/16+438d/00/ff + cheat + description:Scorpion one button Fatality (press Back) + code:437b/10/16+437a/00/ff + cheat + description:Sub Zero one button Fatality (press Down) + code:43f9/10/16+43f8/00/ff + cheat + description:Tanya one button Fatality (press Down) + code:4349/40/16+4348/00/ff cartridge sha256:abc725f10251ae954a23c46b7e33b101bc52203fed4ffad49018858d82361964 name:Motocross Maniacs (USA) @@ -83445,6 +84684,12 @@ cartridge sha256:9fb0e41e4c8afe737a688dbdc1b6f7019874f7e9ef4c0a27cba2b8be329ce45 description:Start with more energy - 2nd life code:4ee0/07/15 +cartridge sha256:211362382e3637edece46d5ccd470061466a37cd7794777f140ec3f228166e5a + name:Robopon - Sun Version (USA) (SGB Enhanced) + cheat + description:Walk anywhere + code:61b0/ff/00+546e/20/18 + cartridge sha256:92e8d1acd4d2d3297a961409d4bb0ed49c784be4a6e91cfceabd05ab11894f3d name:Roger Clemens' MVP Baseball (USA) cheat @@ -84057,6 +85302,12 @@ cartridge sha256:664dae41e2d08070ead51e76c2d6865e52a122566cf79203b7c6c496968ded6 description:Start 1st level with 255 seconds on timer code:2e2d/96/ff +cartridge sha256:31b92ae1c10e59372e14fe78cda20556d6ceba86930c60cc2a6bab8100f3a4b5 + name:Splitz (Europe) + cheat + description:Infinite time + code:11f5/ea/fa + cartridge sha256:7275c3af129971c53ce901321f6ca85b414ebd84574c420d66c38aa87c219fe3 name:Spot - The Cool Adventure (USA) cheat @@ -84876,6 +86127,12 @@ cartridge sha256:91bd1f24827bde4dbb58ead76a8b4e5a507431ec9b6bbc7ef9473b852538a4d description:Start with 8 credits code:0b87/03/08 +cartridge sha256:1c93028e0882746e91721fedda27165281603744afa15f25fd7247d7c04071e8 + name:Survival Kids (USA) (SGB Enhanced) + cheat + description:Walk anywhere + code:276e/20/3e + cartridge sha256:f522c83d9dc77825a8bd5933e0877173fcb260fe72c5b032ef38b109250a63e9 name:Swamp Thing (USA, Europe) cheat @@ -84945,6 +86202,21 @@ cartridge sha256:351a3b24efa68f60009bc7e05d554034c8dc3d360d51d7399c80e6537089967 description:Hit anywhere code:51b0/34/00+5234/ca/fa +cartridge sha256:731385527be39125a2044edbc46da9f5d9bc48cff7e320b213c45d77c5069067 + name:Tarzan (USA, Europe) + cheat + description:Infinite time + code:4086/ea/fa + cheat + description:One hit kills + code:43ed/38/18+4441/38/18 + cheat + description:Multi-jump + code:4784/20/3e + cheat + description:Only one special item needed + code:40bc/3d/af + cartridge sha256:596787d9f1dfeef0151b20ce330ef78220e041d0a360b34dea75ce21c7cbb889 name:Taz-Mania (USA, Europe) cheat @@ -85631,6 +86903,9 @@ cartridge sha256:9008df8d950b4e6966b38218e43bc3baf9bad91ef44b271b558aee6f38c993d cheat description:Infinite money code:0b5b/ea/fa + cheat + description:Walk anywhere + code:2a2b/05/00+2aec/20/18 cheat description:Start with dexterity of 10 - Shamino codes only - can't use with Journey Onward option code:762b/15/10 @@ -85671,6 +86946,12 @@ cartridge sha256:9008df8d950b4e6966b38218e43bc3baf9bad91ef44b271b558aee6f38c993d description:No energy replacement - Shamino codes only - can't use with Journey Onward option code:0c0a/ea/fa +cartridge sha256:60d23465ffb1a84cb8c72a51146fd3bf2fa2fc323424098d801622e6190af761 + name:Ultima - Runes of Virtue II (USA) + cheat + description:Walk anywhere (player and enemies) + code:19bc/b7/af+1866/ca/c3+19bd/c0/c8 + cartridge sha256:850a429b64b7ebcb8034da2c25789dff631d64682b1ce65f8de346c9744ae31e name:Universal Soldier (USA, Europe) cheat @@ -85881,6 +87162,12 @@ cartridge sha256:ac1682f17abcf590311a233289ee325214c2d71ab3a5aa175004002d85075e5 description:Start with 650cc bike code:4965/20/3e+4966/03/01+4967/af/00 +cartridge sha256:5c11041f10b7ee96d433ef167dcb331acbf92deece796cdc10eb30ab7da1efee + name:Wave Race (USA, Europe) + cheat + description:Always have Dolphin Power + code:6ffa/20/3e+6fa9/46/00+6fa4/4b/00 + cartridge sha256:a3bd35fb1d2466868b5308a45e8ad3844925bd5dfa819b27ff67d0391b8e3511 name:WCW Main Event (USA, Europe) cheat @@ -85901,6 +87188,12 @@ cartridge sha256:a3bd35fb1d2466868b5308a45e8ad3844925bd5dfa819b27ff67d0391b8e351 cartridge sha256:e424a9893faed6a486d66002ed606cf32d68dab71971ec461103396042800b63 name:Wendy - Every Witch Way (USA, Europe) + cheat + description:Invincibility + code:4177/c0/c9 + cheat + description:Infinite Stars + code:4190/ea/fa cheat description:Infinite time code:7fab/22/00 @@ -85988,6 +87281,9 @@ cartridge sha256:b396d2a15563b6144630d5ec5f0a8a2928a4b289ca215e6cc581df7a5fe295f cheat description:Infinite hints code:0870/35/00 + cheat + description:Any word is acceptable + code:137d/20/18 cheat description:Start with only 1 hint code:1bc9/04/01 diff --git a/emulator/emulator.hpp b/emulator/emulator.hpp index a35a4175..71436fbc 100644 --- a/emulator/emulator.hpp +++ b/emulator/emulator.hpp @@ -8,7 +8,7 @@ using namespace nall; namespace Emulator { static const string Name = "higan"; - static const string Version = "094.44"; + static const string Version = "095"; static const string Author = "byuu"; static const string License = "GPLv3"; static const string Website = "http://byuu.org/"; diff --git a/icarus/GNUmakefile b/icarus/GNUmakefile index bfb434f3..24a2e725 100644 --- a/icarus/GNUmakefile +++ b/icarus/GNUmakefile @@ -1,7 +1,7 @@ include ../nall/GNUmakefile include ../hiro/GNUmakefile -flags += -O3 -I.. +flags += -I.. -O3 link += objects := obj/hiro.o obj/icarus.o objects += $(if $(call streq,$(platform),windows),obj/resource.o) diff --git a/nall/encode/url.hpp b/nall/encode/url.hpp new file mode 100644 index 00000000..57fc6602 --- /dev/null +++ b/nall/encode/url.hpp @@ -0,0 +1,25 @@ +#ifndef NALL_ENCODE_URL_HPP +#define NALL_ENCODE_URL_HPP + +namespace nall { namespace Encode { + +inline auto URL(const string& input) -> string { + string output; + for(auto c : input) { + if(c >= 'A' && c <= 'Z') { output.append(c); continue; } + if(c >= 'a' && c <= 'z') { output.append(c); continue; } + if(c >= '0' && c <= '9') { output.append(c); continue; } + if(c == '-' || c == '_' || c == '.' || c == '~') { output.append(c); continue; } + if(c == ' ') { output.append('+'); continue; } + unsigned hi = (c >> 4) & 15; + unsigned lo = (c >> 0) & 15; + output.append('%'); + output.append((char)(hi < 10 ? ('0' + hi) : ('a' + hi - 10))); + output.append((char)(lo < 10 ? ('0' + lo) : ('a' + lo - 10))); + } + return output; +} + +}} + +#endif diff --git a/nall/file.hpp b/nall/file.hpp index cddd1330..e01d22d6 100644 --- a/nall/file.hpp +++ b/nall/file.hpp @@ -91,19 +91,11 @@ struct file : file_system_object, varint { } static auto write(const string& filename, const string& text) -> bool { - file fp; - if(fp.open(filename, mode::write) == false) return false; - fp.print(text); - fp.close(); - return true; + return write(filename, (const uint8_t*)text.data(), text.size()); } static auto write(const string& filename, const vector& buffer) -> bool { - file fp; - if(fp.open(filename, mode::write) == false) return false; - fp.write(buffer.data(), buffer.size()); - fp.close(); - return true; + return write(filename, buffer.data(), buffer.size()); } static auto write(const string& filename, const uint8_t* data, unsigned size) -> bool { diff --git a/nall/http/message.hpp b/nall/http/message.hpp index b32f070e..385c607b 100644 --- a/nall/http/message.hpp +++ b/nall/http/message.hpp @@ -11,47 +11,75 @@ struct Variable { string value; }; -struct Variables : vector { - auto append(const string& name, const string& value) -> void; - auto get(const string& name) const -> string; - auto remove(const string& name) -> void; - auto set(const string& name, const string& value) -> void; +struct SharedVariable { + SharedVariable(const string& name = "", const string& value = "") : shared(new Variable{name, value}) {} + + explicit operator bool() const { return (bool)shared->name; } + auto operator()() const { return shared->value; } + auto& operator=(const string& value) { shared->value = value; return *this; } + + auto name() const { return shared->name; } + auto value() const { return shared->value; } + + auto& setName(const string& name) { shared->name = name; return *this; } + auto& setValue(const string& value = "") { shared->value = value; return *this; } + + shared_pointer shared; }; -auto Variables::append(const string& name, const string& value) -> void { - vector::append({name, value}); -} - -auto Variables::get(const string& name) const -> string { - for(auto& variable : *this) { - if(variable.name.iequals(name)) return variable.value; - } - return ""; -} - -auto Variables::remove(const string& name) -> void { - while(true) { - unsigned n = 0; - bool found = false; - for(auto& variable : *this) { - if(!variable.name.iequals(name)) { n++; continue; } - vector::remove(n); - found = true; - break; +struct Variables { + auto operator[](const string& name) const -> SharedVariable { + for(auto& variable : variables) { + if(variable.shared->name.iequals(name)) return variable; } - if(found == false) break; + return {}; } -} -auto Variables::set(const string& name, const string& value) -> void { - for(auto& variable : *this) { - if(!variable.name.iequals(name)) continue; - variable.name = name; - variable.value = value; - return; + auto operator()(const string& name) -> SharedVariable { + for(auto& variable : variables) { + if(variable.shared->name.iequals(name)) return variable; + } + return append(name); } - vector::append({name, value}); -} + + auto find(const string& name) const -> vector { + vector result; + for(auto& variable : variables) { + if(variable.shared->name.iequals(name)) result.append(variable); + } + return result; + } + + auto assign(const string& name, const string& value = "") -> SharedVariable { + for(auto& variable : variables) { + if(variable.shared->name.iequals(name)) { + variable.shared->value = value; + return variable; + } + } + return append(name, value); + } + + auto append(const string& name, const string& value = "") -> SharedVariable { + SharedVariable variable{name, value}; + variables.append(variable); + return variable; + } + + auto remove(const string& name) -> void { + for(auto n : rrange(variables)) { + if(variables[n].shared->name.iequals(name)) variables.remove(n); + } + } + + auto size() const { return variables.size(); } + auto begin() const { return variables.begin(); } + auto end() const { return variables.end(); } + auto begin() { return variables.begin(); } + auto end() { return variables.end(); } + + vector variables; +}; struct Message { using type = Message; @@ -62,14 +90,11 @@ struct Message { virtual auto body(const function& callback) const -> bool = 0; virtual auto setBody() -> bool = 0; - virtual auto header(const string& name) const -> string { return _header.get(name); } - virtual auto appendHeader(const string& name, const string& value = "") -> type& { return _header.append(name, value), *this; } - virtual auto removeHeader(const string& name) -> type& { return _header.remove(name), *this; } - virtual auto setHeader(const string& name, const string& value = "") -> type& { return _header.set(name, value), *this; } + Variables header; +//private: string _head; string _body; - Variables _header; }; }} diff --git a/nall/http/request.hpp b/nall/http/request.hpp index 186956c6..01910cbb 100644 --- a/nall/http/request.hpp +++ b/nall/http/request.hpp @@ -1,6 +1,8 @@ #ifndef NALL_HTTP_REQUEST_HPP #define NALL_HTTP_REQUEST_HPP +#include +#include #include namespace nall { namespace HTTP { @@ -12,11 +14,11 @@ struct Request : Message { explicit operator bool() const { return requestType() != RequestType::None; } - inline auto head(const function& callback) const -> bool; - inline auto setHead() -> bool; + inline auto head(const function& callback) const -> bool override; + inline auto setHead() -> bool override; - inline auto body(const function& callback) const -> bool; - inline auto setBody() -> bool; + inline auto body(const function& callback) const -> bool override; + inline auto setBody() -> bool override; auto ipv4() const -> bool { return _ipv6 == false; } auto ipv6() const -> bool { return _ipv6 == true; } @@ -28,27 +30,15 @@ struct Request : Message { auto path() const -> string { return _path; } auto setPath(const string& value) -> void { _path = value; } - auto appendHeader(const string& name, const string& value = "") -> type& { return Message::appendHeader(name, value), *this; } - auto removeHeader(const string& name) -> type& { return Message::removeHeader(name), *this; } - auto setHeader(const string& name, const string& value = "") -> type& { return Message::setHeader(name, value), *this; } - - auto cookie(const string& name) const -> string { return _cookie.get(name); } - auto setCookie(const string& name, const string& value = "") -> void { _cookie.set(name, value); } - - auto get(const string& name) const -> string { return _get.get(name); } - auto setGet(const string& name, const string& value = "") -> void { _get.set(name, value); } - - auto post(const string& name) const -> string { return _post.get(name); } - auto setPost(const string& name, const string& value = "") -> void { _post.set(name, value); } + Variables cookie; + Variables get; + Variables post; //private: bool _ipv6 = false; string _ip; RequestType _requestType = RequestType::None; string _path; - Variables _cookie; - Variables _get; - Variables _post; }; auto Request::head(const function& callback) const -> bool { @@ -56,10 +46,10 @@ auto Request::head(const function& callback) co string output; string request = path(); - if(_get.size()) { + if(get.size()) { request.append("?"); - for(auto& get : _get) { - request.append(get.name, "=", get.value, "&"); + for(auto& variable : get) { + request.append(Encode::URL(variable.name()), "=", Encode::URL(variable.value()), "&"); } request.rtrim("&", 1L); } @@ -71,8 +61,8 @@ auto Request::head(const function& callback) co default: return false; } - for(auto& header : _header) { - output.append(header.name, ": ", header.value, "\r\n"); + for(auto& variable : header) { + output.append(variable.name(), ": ", variable.value(), "\r\n"); } output.append("\r\n"); @@ -81,7 +71,7 @@ auto Request::head(const function& callback) co auto Request::setHead() -> bool { lstring headers = _head.split("\n"); - string request = headers.takeFirst().rtrim("\r"); + string request = headers.takeFirst().rtrim("\r", 1L); string requestHost; if(request.iendsWith(" HTTP/1.0")) request.irtrim(" HTTP/1.0", 1L); @@ -106,8 +96,10 @@ auto Request::setHead() -> bool { if(auto queryString = components(1)) { for(auto& block : queryString.split("&")) { - lstring variable = block.split("=", 1L); - if(variable(0)) setGet(variable(0), variable(1)); + auto p = block.split("=", 1L); + auto name = Decode::URL(p(0)); + auto value = Decode::URL(p(1)); + if(name) get.append(name, value); } } @@ -115,18 +107,19 @@ auto Request::setHead() -> bool { if(header.beginsWith(" ") || header.beginsWith("\t")) continue; auto part = header.split(":", 1L).strip(); if(!part[0] || part.size() != 2) continue; - appendHeader(part[0], part[1]); + this->header.append(part[0], part[1]); if(part[0].iequals("Cookie")) { for(auto& block : part[1].split(";")) { - lstring variable = block.split("=", 1L).strip(); - variable(1).trim("\"", "\""); - if(variable(0)) setCookie(variable(0), variable(1)); + auto p = block.split("=", 1L).strip(); + auto name = p(0); + auto value = p(1).trim("\"", "\"", 1L); + if(name) cookie.append(name, value); } } } - if(requestHost) setHeader("Host", requestHost); //request URI overrides host header + if(requestHost) header.assign("Host", requestHost); //request URI overrides host header return true; } @@ -142,10 +135,46 @@ auto Request::body(const function& callback) co auto Request::setBody() -> bool { if(requestType() == RequestType::Post) { - if(header("Content-Type").iequals("application/x-www-form-urlencoded")) { + auto contentType = header["Content-Type"].value(); + if(contentType.iequals("application/x-www-form-urlencoded")) { for(auto& block : _body.split("&")) { - lstring variable = block.rtrim("\r").split("=", 1L); - if(variable(0)) setPost(variable(0), variable(1)); + auto p = block.rtrim("\r").split("=", 1L); + auto name = Decode::URL(p(0)); + auto value = Decode::URL(p(1)); + if(name) post.append(name, value); + } + } else if(contentType.imatch("multipart/form-data; boundary=?*")) { + auto boundary = contentType.iltrim("multipart/form-data; boundary=", 1L).trim("\"", "\"", 1L); + auto blocks = _body.split({"--", boundary}, 1024L); //limit blocks to prevent memory exhaustion + for(auto& block : blocks) block.trim("\r\n", "\r\n", 1L); + if(blocks.size() < 2 || (blocks.takeFirst(), !blocks.takeLast().beginsWith("--"))) return false; + for(auto& block : blocks) { + string name; + string filename; + string contentType; + + auto segments = block.split("\r\n\r\n", 1L); + for(auto& segment : segments(0).split("\r\n")) { + auto statement = segment.split(":", 1L); + if(statement(0).ibeginsWith("Content-Disposition")) { + for(auto& component : statement(1).split(";")) { + auto part = component.split("=", 1L).strip(); + if(part(0).iequals("name")) { + name = part(1).trim("\"", "\"", 1L); + } else if(part(0).iequals("filename")) { + filename = part(1).trim("\"", "\"", 1L); + } + } + } else if(statement(0).ibeginsWith("Content-Type")) { + contentType = statement(1).strip(); + } + } + + if(name) { + post.append(name, segments(1)); + post.append({name, ".filename"}, filename); + post.append({name, ".content-type"}, contentType); + } } } } diff --git a/nall/http/response.hpp b/nall/http/response.hpp index 6f52a28c..78fdd66e 100644 --- a/nall/http/response.hpp +++ b/nall/http/response.hpp @@ -14,11 +14,11 @@ struct Response : Message { explicit operator bool() const { return responseType() != 0; } auto operator()(unsigned responseType) -> type& { return setResponseType(responseType); } - inline auto head(const function& callback) const -> bool; - inline auto setHead() -> bool; + inline auto head(const function& callback) const -> bool override; + inline auto setHead() -> bool override; - inline auto body(const function& callback) const -> bool; - inline auto setBody() -> bool; + inline auto body(const function& callback) const -> bool override; + inline auto setBody() -> bool override; auto request() const -> const Request* { return _request; } auto setRequest(const Request& value) -> type& { _request = &value; return *this; } @@ -26,10 +26,6 @@ struct Response : Message { auto responseType() const -> unsigned { return _responseType; } auto setResponseType(unsigned value) -> type& { _responseType = value; return *this; } - auto appendHeader(const string& name, const string& value = "") -> type& { return Message::appendHeader(name, value), *this; } - auto removeHeader(const string& name) -> type& { return Message::removeHeader(name), *this; } - auto setHeader(const string& name, const string& value = "") -> type& { return Message::setHeader(name, value), *this; } - auto hasData() const -> bool { return (bool)_data; } auto data() const -> const vector& { return _data; } inline auto setData(const vector& value) -> type&; @@ -61,8 +57,8 @@ auto Response::head(const function& callback) c string output; if(auto request = this->request()) { - if(auto eTag = header("ETag")) { - if(eTag == request->header("If-None-Match")) { + if(auto eTag = header["ETag"]) { + if(eTag.value() == request->header["If-None-Match"].value()) { output.append("HTTP/1.1 304 Not Modified\r\n"); output.append("Connection: close\r\n"); output.append("\r\n"); @@ -72,18 +68,18 @@ auto Response::head(const function& callback) c } output.append("HTTP/1.1 ", findResponseType(), "\r\n"); - for(auto& header : _header) { - output.append(header.name, ": ", header.value, "\r\n"); + for(auto& variable : header) { + output.append(variable.name(), ": ", variable.value(), "\r\n"); } if(hasBody()) { - if(!header("Content-Length") && !header("Transfer-Encoding").iequals("chunked")) { + if(!header["Content-Length"] && !header["Transfer-Encoding"].value().iequals("chunked")) { output.append("Content-Length: ", findContentLength(), "\r\n"); } - if(!header("Content-Type")) { + if(!header["Content-Type"]) { output.append("Content-Type: ", findContentType(), "\r\n"); } } - if(!header("Connection")) { + if(!header["Connection"]) { output.append("Connection: close\r\n"); } output.append("\r\n"); @@ -105,7 +101,7 @@ auto Response::setHead() -> bool { if(header.beginsWith(" ") || header.beginsWith("\t")) continue; lstring variable = header.split(":", 1L).strip(); if(variable.size() != 2) continue; - appendHeader(variable[0], variable[1]); + this->header.append(variable[0], variable[1]); } return true; @@ -114,7 +110,7 @@ auto Response::setHead() -> bool { auto Response::body(const function& callback) const -> bool { if(!callback) return false; if(!hasBody()) return true; - bool chunked = header("Transfer-Encoding") == "chunked"; + bool chunked = header["Transfer-Encoding"].value() == "chunked"; if(chunked) { string prefix = {hex(findContentLength()), "\r\n"}; @@ -160,7 +156,7 @@ auto Response::hasBody() const -> bool { } auto Response::findContentLength() const -> unsigned { - if(auto contentLength = header("Content-Length")) return decimal(contentLength); + if(auto contentLength = header["Content-Length"]) return contentLength.value().decimal(); if(_body) return _body.size(); if(hasData()) return data().size(); if(hasFile()) return file::size(file()); @@ -169,7 +165,7 @@ auto Response::findContentLength() const -> unsigned { } auto Response::findContentType() const -> string { - if(auto contentType = header("Content-Type")) return contentType; + if(auto contentType = header["Content-Type"]) return contentType.value(); if(hasData()) return "application/octet-stream"; if(hasFile()) return findContentType(suffixname(file())); return "text/html; charset=utf-8"; @@ -229,22 +225,22 @@ auto Response::findResponseType() const -> string { auto Response::setData(const vector& value) -> type& { _data = value; - setHeader("Content-Length", value.size()); + header.assign("Content-Length", value.size()); return *this; } auto Response::setFile(const string& value) -> type& { _file = value; string eTag = {"\"", string::datetime(file::timestamp(value, file::time::modify)), "\""}; - setHeader("Content-Length", file::size(value)); - setHeader("Cache-Control", "public"); - setHeader("ETag", eTag); + header.assign("Content-Length", file::size(value)); + header.assign("Cache-Control", "public"); + header.assign("ETag", eTag); return *this; } auto Response::setText(const string& value) -> type& { _text = value; - setHeader("Content-Length", value.size()); + header.assign("Content-Length", value.size()); return *this; } diff --git a/nall/http/role.hpp b/nall/http/role.hpp index 19210352..d99e30f8 100644 --- a/nall/http/role.hpp +++ b/nall/http/role.hpp @@ -11,13 +11,13 @@ namespace nall { namespace HTTP { struct Role { struct Settings { - signed connectionLimit = 1024; //server - signed headSizeLimit = 16384; //client, server - signed bodySizeLimit = 65536; //client, server - signed chunkSize = 32768; //client, server - signed threadStackSize = 131072; //server - signed timeoutReceive = 15000; //server - signed timeoutSend = 15000; //server + signed connectionLimit = 1 * 1024; //server + signed headSizeLimit = 16 * 1024; //client, server + signed bodySizeLimit = 8192 * 1024; //client, server + signed chunkSize = 32 * 1024; //client, server + signed threadStackSize = 128 * 1024; //server + signed timeoutReceive = 15 * 1000; //server + signed timeoutSend = 15 * 1000; //server } settings; inline auto configure(const string& parameters) -> bool; @@ -82,8 +82,8 @@ auto Role::download(signed fd, Message& message) -> bool { if(head.endsWith("\r\n\r\n") || head.endsWith("\n\n")) { headReceived = true; if(!message.setHead()) return false; - chunked = message.header("Transfer-Encoding").iequals("chunked"); - contentLength = decimal(message.header("Content-Length")); + chunked = message.header["Transfer-Encoding"].value().iequals("chunked"); + contentLength = message.header["Content-Length"].value().decimal(); } continue; diff --git a/nall/nall.hpp b/nall/nall.hpp index a2647cd0..0e51d148 100644 --- a/nall/nall.hpp +++ b/nall/nall.hpp @@ -60,6 +60,7 @@ #include #include #include +#include #include #include #include diff --git a/target-tomoko/input/input.cpp b/target-tomoko/input/input.cpp index 24ec9c46..0a4898a4 100644 --- a/target-tomoko/input/input.cpp +++ b/target-tomoko/input/input.cpp @@ -166,7 +166,7 @@ InputManager::InputManager() { inputMapping->link = &input; input.guid = (uintptr_t)inputMapping; - nodeDevice.append(inputMapping->assignment, inputMapping->name); + nodeDevice.append(inputMapping->assignment, string{inputMapping->name}.replace(" ", "")); } nodePort.append(nodeDevice, string{inputDevice.name}.replace(" ", ""));