diff --git a/Assets/gamedb/gamedb.txt b/Assets/gamedb/gamedb.txt index 9f263d8bf6..b7e844ec40 100644 --- a/Assets/gamedb/gamedb.txt +++ b/Assets/gamedb/gamedb.txt @@ -1,349 +1,27 @@ -;b - bad dump -;v - bad dump (??) -;t - translated rom -;o - overdump (bad) -;i - bios -;d - homebrew -;h - hack -;u - unknown - -;Hash Status Name System ID Notes MetaData Configurations CoreForce[neshawk|quicknes] - -#include gamedb_sega_sms.txt -#include gamedb_sega_sg1000.txt -#include gamedb_sega_gg.txt -#include gamedb_pce_hucards.txt -#include gamedb_pce_cd.txt -#include gamedb_sega_md.txt #include gamedb_a2600.txt -#include gamedb_coleco.txt -#include gamedb_gb.txt -#include gamedb_gbc.txt -#include gamedb_snes.txt -#include gamedb_n64.txt -#include gamedb_gba.txt -#include gamedb_lynx.txt #include gamedb_appleII.txt -#include gamedb_psx.txt +#include gamedb_coleco.txt #include gamedb_e_cards.txt +#include gamedb_intv.txt +#include gamedb_gb.txt +#include gamedb_gba.txt +#include gamedb_gbc.txt +#include gamedb_lynx.txt #include gamedb_msx1.txt #include gamedb_msx2.txt -#include gamedb_vs.txt -#include gamedb_intv.txt - -; ************ NES / Famicom ************ - -;games which might be good according to goodNES, but which are almost positively not according to bootgod, who has dumps with different hashes -;these we tend to mark as Unknown, because maybe these are variants of the cart which bootgod didnt happen to dump, or maybe bootgod's is wrong (?) -sha1:E80FF0B707B0D675FDBEF474E3FDB1A83E2B7C44 U Mississippi Satsujin Jiken (J) NES board=JALECO-JF-11;PRG=128;CHR=32;PAD_H=1 -sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C U Mississippi Satsujin Jiken (Alt) (J) NES board=MAPPER066;PRG=128;CHR=32;PAD_H=1 - -;possibly good roms for games which arent in bootgod's db yet, most likely due to obscurity or incompleteness at the present. -;when they appear in bootgod's db then we can re-evaluate this category. -sha1:91CECCFCAC90E417E9AEE80E8F7B560A20EB33CC Ai Sensei No Oshiete Watashi No Hoshi (J) NES board=IREM-G101;PRG=256;CHR=128;WRAM=8 -sha1:1E49BDA9CEF18F6F5C2DA34910487713D364AA68 G Pipe 5 (Sachen) NES board=MAPPER160;PAD_H=1;PAD_V=0 - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;this is every game from goodNES which is clearly labeled as bad. -;well, it isnt very game yet. but we should make it every game, if we can! it would be a lot of games though -sha1:984ADAEB85403EEF1BA85CDCF310FAAECEB409A0 B Adventures of Captain Comic, The (Bad Dump) (U) NES board=COLORDREAMS-74*377;PRG=64;CHR=64;WRAM=0;VRAM=0 -sha1:869111A86FD46872AD8B1BA0ED31B858FA15681F B Adventures of Lolo (Bad Dump) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 -sha1:41BD74F739E008D476989C8296BB789EE57658F0 B Adventures of Lolo (Bad Dump 2) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 -sha1:10AF069B2AC5DB2FB10768349F4068CB3CDA0EC7 B Airwolf (Bad Dump 1) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 -sha1:DAD9D1D66018DFB3C30F48741EF188FEFA2B2F68 B Airwolf (Bad Dump 2) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 -;since the actually good Banana rom is "Banana (J) [hM03][p1][a1]" then we want to be aggressive in marking all these others as bad -sha1:84EA60C1FA43AF37B2A20C1FEFCB2D5182EAF3E8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:F9423CCC1AA711CB06B8F5C66E9304636F5E9B10 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:A8037AED044417DEE8D822A21851058ED37AF6A8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:8F42BC9919B324A63636BE2FBAD0101D8C720517 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:4EF2C4DAD0897F326E2991D351903A98483BC3C0 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=16 -sha1:15E04F1BF83D8FE34ECD2B29894C9CF034E6D257 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 -sha1:C6C6228B16AECB35B0C52467071E04DB3B34C77F B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=8 -sha1:2801CDE6D10D67889E01161476D80CF5CCC3263E O Ball Hack v.2 2001-03-21 [o1] NES board=HVC-NROM-256;PRG=32;CHR=8 -sha1:A6E7DB47B9C39E2A5B0A77F34B9AA3BEFDB70D1C O Dr. Mario (JU) (PRG0) NES board=MAPPER001;CHR=32 -sha1:2BDBD70C1E3EEF115F640B91B22A97BFCDF18B2D B Castlevania III Dracula's Curse (U) (Bad Dump) NES board=MAPPER005;CHR=128 -sha1:0D0957F7D49E38C298EB5194472B87EFC44BBD46 B Dragon Quest II Akuryou no Kamigami (J) (Bad Dump) NES board=MAPPER002;CHR=0 -sha1:736C0AEDA14A93A2715BDA1DA6F6C92E6690A5DE B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:739698BD6050572F24E739A20978E4760CF33E59 B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:3FB61976847BCA4187DB61F484BF21346B42C95A B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:697ECCCDD178809207726A05A5593D874CA39CA9 B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:E33D3A487678F35E05C0E5DA7E4C30F8FEFA600D B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 -sha1:3AE0469A8208023DAA32A7BB9925F3C5666FCB2D B Famicom Meijin Sen (J) [a1] NES board=HVC-SKROM;WRAM=8 -sha1:8CC5894A1E637FA63A63992E188B3797D9300337 B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 -sha1:CAB30771F9CBD89B2FCD06F3B2F5C8F2156BFD8A B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 -sha1:A4CDD4BC37D44CFF1379942CC31DCD89E340B10C B Money Game, The (J) [hFFE][b1] NES board=MAPPER006;PRG=256 -sha1:8AB1B122FE96865B62290FC838FA2C248D4989FB B 3D Bloack (Unl) [f1] (Bad Dump) NES board=MAPPER000;PAD_H=1 -sha1:457BA1626EAA58A2370ECD6AB0B83232C098C064 B High Speed (E) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-PAL-B -sha1:421EBBFA08FFD5A7A0F4DDEE7868B36DB7FAEE39 B High Speed (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:9979C1333B8A7685CC3CA2BEAFD634B2A88D3AF8 B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:DAB664B59B094FFAABCF24D0388760C09F87495C B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:36405B87E66E18DC432690A5959D4529C14B1AEE B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC -sha1:9D2391C1F4855E7ECCE0DB5C8B258A43B4E9F84F G Pin Bot (PC10) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:B3537088ED6F8379F2C30CA45061BFCCBA1007B9 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:A1E8E80E2F72E606CD7802D809B2FF256578EDE6 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:C969BD9F8E4353EE6463221FFDD2BFE4A844134A B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:569907CD308C28CDB178AA525F976656BF0DD886 B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:9C851967BD74E063ED8F44935928911D572527AD B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 -sha1:2FA61D1FDFCFEC20099EB85C3F45827CA87160D9 B Yong Zhe Dou E Long Dragon Quest V (Ch) (Over Drump) NES board=MAPPER245;VRAM=8;CHR=0;PAD_H=1;BATT=true -sha1:79978AA3AD3FE63D41357E62F1E49E4761B3738A B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:3825786DF3AD8E2C2F0442E42088AC0E494BDA2D B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:02D4E73DACD3E74CF927C77DF1DB1B7453312CC9 T Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 -sha1:DBD7DBAF79D2A77A09D9D4CF685CBD93281ED468 B Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 -sha1:944F98A6885CA5160669BF81B9DE710CB16E312D G Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 -sha1:EA6093FF3B4C7425B792223742DF5C76A657EF08 B Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; -sha1:B367506A7249865DEDB59AFF9B4CE593B3913F0C G Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; -sha1:78EC827CEE61E009F7716ADE03361369FFCE9D12 G Luo Ke Ren X (Sugoro Quest - Dice no Senshitachi) (Ch) NES board=MAPPER195;VRAM=4 -sha1:568BF236FB3085B8BD522FBD2C18C7831E3A2DD1 G Q Boy (Sachen) NES board=SACHEN-8259A;VRAM=8 -sha1:2FA9EF6B8E5C7E1D215F4FF69C6275BDE00DDE76 O Sugoro Quest - Dice no Senshitachi (Ch) [o1] NES board=MAPPER191 -sha1:0C7CA363EA26632E1A61C7F40E0FE8E8538ED76A G Wei Luo Chuan Qi (Ch) NES board=MAPPER192 -sha1:F459A9AD6F841169E0210436CEB06B1395169EAB G Young Chivalry (Ch) NES board=MAPPER192 -sha1:8711FDC0CE28574C043816721CA32E4A1C722BE4 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:E7803CAC6898C7243F9331E6360B5157BAE673A5 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:16EF1034DB88AD96DDC19C3A84B9E0FDEE466CD4 B Young Chivalry (Ch) NES board=MAPPER192 -sha1:BE8373A0694EB021EBF73D75F8AC63BD8162009A B Young Chivalry (Ch) NES board=MAPPER192 -sha1:4692A622AF6A3D79514BF3E5FB4E9FBE6C6080FC G 150-in-1 [a1] NES board=MAPPER235 -sha1:83264E3F8807998D09E9FBA19B13BBEA7C888D88 O Bakushou!! Jinsei Gekijou 3 (J) [o1] NES board=TAITO-TC0190FMC+PAL16R4;WRAM=0 -sha1:E79FC613112CC5AB0FC8B1150E182670FB042F4A G Contra Fighter (Unl) NES board=MAPPER238 -sha1:2C512DE4079AF45D7B9218E40BB68E308ABE288C B Magic Johnson's Fast Break (U) NES board=MAPPER001;PRG=64;CHR=128 -sha1:D2BE67170DDED1E1108EED2D4D8CA9D9CEE9F9E2 G Super Mario Bros 2 (Lost Levels) (Unl) NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:77D5D7A162B61DEFC6B66B6A39B8D51E124AC534 B Tagin' Dragon (Bunch) [b] NES board=COLORDREAMS-74*377;CHR=16;PRG=32;WRAM=0 -sha1:2028940CF7C757A3A7931A741D5EC79C3554D38C O Wally Bear and the No Gang (AVE) [o] NES board=AVE-NINA-07;WRAM=0 -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;these roms are in goodNES but theyre junk. hacks, mostly. ideally we would put ever game from goodNES that was labeled as a hack in a list here. -sha1:111D38E2FB41D0B43753E18757D427A91B0DBCB9 H Dragon Ball Z II Gekishin Freeza!! (J) NES board=BANDAI-LZ93D50+24C02;PRG=256;CHR=256;WRAM=0 -sha1:A907E600CEDA175ECD115B406B28155397A4C1FA H Dragon Ball Z Gaiden Saiya Jin Zetsumetsu Keikaku (CH) NES board=BANDAI-FCG-1;PRG=512;CHR=256;WRAM=0 -sha1:A13EAF0132905FBE3D0456BB075028A30C084D0E H Dragon Ball Dai Maou Fukkatsu (J) [hFFE] NES board=BANDAI-FCG-1;PRG=128;CHR=128;WRAM=0;VRAM=0 -sha1:8885F4F00C0B73C156179BCEABA5381487DBEAAD H Spy vs Spy (J) NES board=HVC-CNROM-256K-01;PRG=32;CHR=8;WRAM=8 -sha1:8C676CC9BEF5B93C5A7630D12B8A5B2FEBCE3438 H Rad Racket Deluxe Tennis II NES board=NINA-06;PRG=32;CHR=32 -sha1:A1D674D1C7C633A317CFD516EFB9A0350CD0E45E H Arkanoid II (J) NES board=TAITO-74*161/161/32;PRG=128;CHR=128;WRAM=8 -sha1:4D6117577CE301BB987C5C32FEEF7B132A21B046 H Afro Man (Mega Man 3 Hack) (UNL) NES board=TXROM-HOMEBREW;PRG=256;CHR=128;WRAM=8 -sha1:7BD102770FE7766BF8430ACDB3C17EE51E30478C H Mike Tyson's Punch-Out!! (Hacked) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 -sha1:536D623BA02A622BDE8E2D7D514AE9785B5E0357 H Punch Out!! Kirby (Hack) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 -sha1:F2A8BC888B888FA65DFB303126B130422E34942E G Kunio 8-in-1 [p1] NES board=MAPPER045 -sha1:27AA5F60474600FEE5C1623D4A0985421680C9FE H Mario + Toad (Nuts & Milk Hack) NES board=MAPPER000 -sha1:B7DD142AF1FBCC81F3FE88C9278BD6C61B615D09 O Death Race (AGCI) (Overdump) NES board=MAPPER144 -sha1:0FAECB09767528CC2C9CD4FE4EDBD0C6ECEFB999 G Secret Scout in the Temple of Demise (Color Dreams) (Prototype) NES board=MAPPER011_HACKY -sha1:87C929090C3B04739BAAED90B9A8F40B29327FC2 G Free Fall (U) (Prototype) NES board=MAPPER011_HACKY -sha1:BFE1A8EFE7539B20E09FFD472963F271AC9F2AEC G Mortal Kombat 2 (Unl) NES board=MAPPER090 -sha1:123105A996B3F325E55B7080DDD83D4CF043E543 G 168-in-1 NES board=MAPPER015 -sha1:B094D9D20A193BF28BD57A1154EADA84F9F6C9CC G Street Fighter II - The World Warrior (Unl) NES board=MAPPER189 -sha1:C0CF1CDFEEA5F3529A3126B366DF8E331C804CC7 G Summer Carnival 92 - Recca NES board=MAPPER004 -sha1:E9CFA35A037CC218F01BFB4A1EB5D1D332EA2AA9 G Family BASIC (J) NES board=HVC-FAMILYBASIC;WRAM=2 - -;;;;;;;;;;;;;;;;;;;;;- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;heres another idea. let's list rom sets from goodNES, good and bad variants together -sha1:98B71119294DA59D1B22723D2D2955D80EADABF4 World Hero (Unl) [!] NES board=MAPPER027 -sha1:17AC56723F99A646BD44F8C999B23B8A972A3EF2 B World Hero (Unl) [b1] NES board=MAPPER027 -sha1:5227195D5DB2030758BF67704150E8C5FAF056B1 B World Hero (Unl) [b2] NES board=MAPPER027 -sha1:AD350F001DB2E3C640B2BD9107B86A8F29B68AC0 G Commandos (Ch) NES board=MAPPER163; -sha1:5A91F54A6FF44762D98FC8D8974909D298EB52A8 G Somari (NT-616) (Unl) NES board=MAPPER116; -sha1:5F0943DC8145542ABC70BF20E4754B3C08653399 G Meikyuu Jiin Dababa (FDS Conversion) (Unl) NES board=MAPPER108;WRAM=0 -sha1:95E86C77BB25DD23152D34FD0BB562A09535BE43 G Pyramid (AVE) (PRG1) NES board=MAPPER000 -sha1:5759A9D658D253C8A6AAA38969C443D66E0F3349 G Dragon Quest III (PRG0) NES board=HVC-SNROM-03 -sha1:9DF34897D002E8D0E4D53B76154F8CD46927CDF9 G Dragon Quest III (PRG1) NES board=HVC-SNROM-03 -sha1:B6D1C372A38D196112AA98905C709AD844BD6627 G Super 35-in-1 (y-in-1 VT5201) NES board=MAPPER060 -sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133 -sha1:D20724A2E2933BEE8E193596688CF86747E0250B B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:9F17353EF85590484BBC693517292A15DD30845D B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D1E9A66CC7424725AD72B8A04E37B9E72EE2BFB6 O Dragon Ball Z Kyoushuu! Saiya Jin (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:123AA69FE2334A027E48BA658C906BFA4996FA32 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng0.47_Eigo ni Yakusu Productions] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:6DCB35518C0AC42943098A5B417B79C10273D75A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.01_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:726C2C19F7B559AD5220872004B580D8C9574F5A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.1] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D51398EFF4F3F47AFA0527D98882234E10AEDFF4 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Kor20060719_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:97DECB4E7C8DE1006F57732D8E83437A9186E500 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por45%_Tradu-Roms] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:80E314CF4A2FCD5A184D4D168428165C1F844729 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por100%_RaphFS] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:1D6381D2AA0DF4A5B50E9E2DB7B45785BBB1E48F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Spa_PaladinKnights] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:15E43BE5F7D328BF3041B52CE38BFC4FF23A1DF1 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:D42BA5AEC6E41804FF98D6DFA34B53510A1174FA T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.50_TransBRC] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:B1228C5716FB5EE2E0421634A464C927B33493B7 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.99_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:8E910216502E0BF9BFBA3E38EAA34FFC2D7EE1AD T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng1.00_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:18BE110CBEA2D665A3FF704BDD4153AE5E5ACE5F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Kor_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:9F601A88A9DFA8EDEC23F67DA60254BE4CBAE64B T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Spa] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 -sha1:FC7A8824CFDD37F85868C8D8624D8B517A7C3C02 G God Slayer - Haruka Tenkuu no Sonata (Ch) NES board=MAPPER195;WRAM=16;VRAM=4;BATT=true -sha1:081D107B5AEFFD4F59108C76FA3942506FA36B1F G Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 -sha1:F99E8B7C7A2174BF0B2330F5457AEE478A938C93 G Captain Tsubasa Vol. II - Super Striker (Ch) [a1] NES board=MAPPER195;VRAM=4 -sha1:9958BED493E8C5727F96937BF254AC33FA3BCF81 G Captain Tsubasa Vol. II - Super Striker (Ch) [a2] NES board=MAPPER195;VRAM=4 -sha1:B4AA3F10908DC3D6B8152F5DEB1B8543B8B46BF6 G Captain Tsubasa Vol. II - Super Striker (Ch) [a3] NES board=MAPPER195;VRAM=4 -sha1:60FC5FA5B5ACCAF3AEFEBA73FC8BFFD3C4DAE558 G Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 -sha1:BAD382331C30B22A908DA4BFF2759C25113CC26A O Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 -sha1:6282051DA49C286863463AF105F851AACF896563 G San Guo Zhi 2 (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:71234F9DCA4C31B4E9F0719425963878F3F045C9 G Dragon Ball Z II - Gekishin Freeza!! (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:A907E600CEDA175ECD115B406B28155397A4C1FA G Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (Ch) NES board=MAPPER199;VRAM=8;BATT=true -sha1:D565A9C2B117447C310E4F59E4AFC30DF299EA4F G Street Fighter IV (Unl) NES board=MAPPER208 -sha1:B9F444FF60F60C177EEEC8671BEC3731B0F6FE49 G Tang Mu Li Xian Ji (Ch) NES board=MAPPER223;WRAM=16 -sha1:EBD2B4A4067FD4A8F0D0ABD34C8FF1AF520D1EED G Super Blaster VII Turbo 28 (Unl) NES board=MAPPER083;prg=512;chr=256;wram=0; -sha1:40409FEC8249EFDB772E6FFB2DCD41860C6CCA23 G Pegasus 4-in-1 (Unl) NES board=MAPPER232 -sha1:7EF667D9BF107B6512565177B9C62081077558F5 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi] NES board=MAPPER198 -sha1:92CC033C1255F119B3A566EDCA10140C014FA479 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a1] NES board=MAPPER198 -sha1:EEF617A022B8E45E0BDE088FED654C89AD4FAABF T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a2] NES board=MAPPER198 -sha1:3D49A357362160B16F03CC4BE7D8EAFB7108708D T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Trad)] NES board=MAPPER198 -sha1:7FB334A7375E17EA157415193DEE4FACC4EC2B34 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Simp)] NES board=MAPPER198 -sha1:D8684D302F17843031151DE38D609646CAE4753C O Don Doko Don 2 (J) [o1] NES board=MAPPER048 -sha1:12DDD9EDB8894C200C9D89B9EE5673F1202ABA19 Falsion (FDS Conversion, Whirlwind Manu) (Unl) NES board=MAPPER108;WRAM=0 -sha1:D6E9F3722CFA26CBC582649F197D780809F575CA O Family Circuit '91 (J) [o1] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:387E7B477F5A61A165A41CD2BFE8A467B3816323 O Family Circuit '91 (J) [o2] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:68ADA89BC7539679871AD14C5C1FFADF04D71280 O Family Circuit '91 (J) [o3] NES board=MAPPER210;PAD_V=1;PAD_H=0 -sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C B Mississippi Satsujin Jiken (J) [h2] NES board=MAPPER066 -sha1:C1F7AD0A347078B9213B2748D4ADFF33305A6647 O Mississippi Satsujin Jiken (J) [h2][o1] NES board=MAPPER066 -sha1:4BBD4C55C37F531031177DE51F007B10418AD760 O Pyramid (AVE) (PRG1) [o1] NES board=MAPPER000 -sha1:BAF860940369C54B3FF547DA7E759515015B1131 O Pyramid (AVE) (PRG1) [o2] NES board=MAPPER000 -sha1:2B34E0F405629055E4FF2B2B1C0EBE015D866344 H Rabbi Harrel Groberklotz (Gumshoe Hack) NES board=MAPPER066;WRAM=0 -sha1:DA3644C99D462833E4EEF826D8700AF278609C10 G Super 2-in-1 (Soccer Game & Crazy Dance) (Unl NES board=MAPPER178 -sha1:CE11161FE2B41008F55FC9D29E093C347E78EBC4 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:43E3ED6480E7BF32FFAF1AEBC7F534E0A9B775E6 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot][a1] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 -sha1:F32E366828DCA94A612DD39613858DD8E26FA2DC T Thunder & Lightning (U) [t1] NES board=MAPPER066;WRAM=0 -sha1:8554112E83B5978F5D4EC6E4551F390D5F698E00 B U-Force Power Games (U) (Prototype2) (Defaced by NA) [b1] NES board=NES-GNROM;WRAM=0 -sha1:A6A0A3DC8438558FA5DA3AF8D3349AA8CF080404 Xi You Ji Hou Zhuan (Ch) NES board=MAPPER162 -sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 B 800-in-1 [p1][b1] NES board=MAPPER236 -sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 G 800-in-1 [p1][U] NES board=MAPPER236;VRAM=8 -sha1:BD167D1BCC9A008D04136EB91396EBEBCAC976E2 B R.B.I. Baseball (Tengen) [b] NES board=TENGEN-800002;WRAM=0;PAD_H=1;PAD_V=0 -sha1:DEE958845DC528BED899557FB2A8A3B61F1BA7D1 Bao Xiao San Guo (Ch) [a4] NES board=WAIXINGMAPPER176 -sha1:2EADA3C0D800A40C1CE5DB96A31A43196ED7A97B Kou Dai Jing Ling - Fei Cui (Ch) [a2] NES board=WAIXINGMAPPER176 -sha1:237C2C026A10B3CEBFF96516FC67E4F446676D47 Meng Huan Zhi Xing IV (ES-1006) (Ch) NES board=WAIXINGMAPPER176 -sha1:2FA7C0E60634C12EF54D857BF7AF45D4971066FE Po Fu Chen Zhou (ES-1092) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:A8010B1EE3C5362F606A47604CC49E5D7EAC9E46 B Pocket Monsters Red (Ch) (Decrypted) [b1] NES board=WAIXINGMAPPER176 -sha1:A50411EDCC088D55B35A62ABD62D4FF1A0B4ED22 Shu Qi Yu - Shu Xue Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 -sha1:5BDE83532F9E3B885C4D2C130F8981DD04E5A159 Shu Qi Yu - Zhi Li Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 -sha1:91E51788E980A8AD5A8A829E270504C9571B72CF Shui Hu Shen Shou (ES-1087) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:DB92A34E6941D99B796FBE6C6C26F7D09C2BC2EE Xi Chu Ba Wang (ES-1066) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 -sha1:7235F3F8F0CA37B7C1EE6923A6DA272C08E0C817 Xiong Ba Tian Xia (Ch) NES board=WAIXINGMAPPER176 -sha1:71511ECB1E5D99F38A04EC9291B1ABD4B512C42D P Bubble Bobble (FDS Conversion, Kaiser Hacked) (Unl) [p1] NES board=MAPPER108;WRAM=0;PAD_H=0;PAD_V=1 -sha1:8F6CF72F9A829177A67DAAD4A083CADA3ED8B587 P Doraemon (J) (PRG0) [p3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:E1935AD60CAFAEEC8A8301A607B373754D770E2E T Doraemon (J) (PRG0) [T+Eng] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:06A243B7FFE2CA5F96C4D324742BD6F349D7589E T Doraemon (J) (PRG0) [t2] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:BD43811A68799DBC45A53A006C35167D19C0919C T Doraemon (J) (PRG0) [t3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:CB83577AAB5465EC7AD0AEF859A03444BA509386 T Doraemon (J) (PRG1) [T+Rus_Chief-Net] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 -sha1:C78A7629779AF2EA2D9870524E6A79C0CD2E0213 T Jajamaru no Daibouken (J) [T+Chi_nineswords] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 -sha1:A78D32B5FD43DCABA07A9152BF12EC9BFF2D37FD T Jajamaru no Daibouken (J) [hM66][T+Eng1.00_Aishsha] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 -sha1:2D8F4656698937A7616A61D82B47232D939E68EA P AV Mahjongg (Hacker) NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E365A1F87EDFE8A68F23D8521CBDBE56EC3D76A3 T AV Mahjongg (Hacker) [T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:D540F1050055C74B68CA02F3BA215E23ED859560 B AV Mahjongg (Hacker) [b1][T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E8BDD327FA96576F501914BDF455C477EC2A20B4 B AV Mahjongg (Hacker) [b1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:E816367A8CAC2AC470CEEBA8C8DC00CEC8C7009E T AV Mahjongg (Hacker) [T+Chi][a1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 -sha1:315ACE4AD8AC09B7ABA2815F93EEB8AD97BA1D38 H Fish Fall (Free Fall Hack) NES board=MAPPER011_HACKY -sha1:F59E68705F6A6346E18A071884A21A6289754EB7 G Free Fall (U) (Prototype) (Earlier) NES board=MAPPER011_HACKY -sha1:4FB14A3DBCE888BB1F95570BE45317ED1513FE89 B Free Fall (U) (Prototype) [b1] NES board=MAPPER011_HACKY -sha1:88A3624F48A2780B2C2A9D742B2185C3B31FB3D7 H Handy (Free Fall Hack) NES board=MAPPER011_HACKY - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;obscure and unlicensed roms which are not likely to be in bootgod's DB anytime soon but which are nonetheless "good" as far as things go -;people like these games (especially vast quantities of chinese oddities) so its important to add them here as good -sha1:D09EF8127C64CBE817B45DF33C4D43E7B441E381 Final Fantasy V (Unl) NES board=MAPPER164;PRG=512;CHR=0;WRAM=8;PRAM=8;PAD_V=1 -sha1:92D9695FEB774F60965A8303CFE3E6AAEE7B7B62 Magic Dragon (Unl) NES board=MAPPER107;PRG=128;CHR=64;WRAM=8;PAD_H=1 -sha1:6DF9AECF5787C0833B0F05A9A83D0E58A6153977 Rumblestation 15-in-1 (Unl) NES board=MAPPER046;PRG=1024;CHR=1024;WRAM=0 -sha1:E4BFD5AB3C3649DBD36B9A7280CF431641BCBCEC Peek-A-Boo Poker (Unl) NES board=NES-CNROM;PRG=32;CHR=24;WRAM=0 -sha1:39294394A0631708F58397371CE14075AE1FB7E6 Peek-A-Boo Poker (Panesian) NES board=NES-CNROM;PRG=32;CHR=64;WRAM=0 -sha1:C87E7E6A68DD9C7E24652CD2C7D390A14E8ADF04 Lagrange Point NES board=KONAMI-VRC-7;PRG=512;CHR=0;WRAM=8;PRAM=8;PCB=352402;BATT=true -sha1:2E0889131DA5BA9505A15B94887113F4360D98CD Shin Samurai Spirits 2 Haoumaru Jigoku Hen (Unl) NES board=MAPPER209;PRG=128;CHR=512;WRAM=8 -sha1:EB35202CC4E9C2FAC320B04F36F3A6858B8916F2 Super Bros. 8 NES board=MAPPER048; -sha1:F949FC16932808C426074AB1628F246B0435C52C Flintstones, The Rescue of Dino & Hoppy (J) NES board=MAPPER048; -sha1:9C801071D1AAC7B280468C38BF1B61FDE99B5FD0 Yong Zhe Dou E Long Dragon Quest VII (Ch) NES board=MAPPER245; -sha1:C282206800426557E7DD66ABF70FEAB6FE9DA1B2 San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:E6F080CCF09C62C038D35E3BD503C4E57E716571 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:E2BFF2002F2DD0AA184D5791D008A1350C477AE0 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 -sha1:B37E6002EF84C172DB413DF4B41451192ADBDC36 Shen Hua Jian Yun III (Ch) NES board=MAPPER253;VRAM=2;BATT=true;PAD_H=1 -sha1:CE1B236ED0EAC133A3DE5411AEF57228220885EF G Super Sonic 5 (1997) (Unl) NES board=MAPPER121 -sha1:37DC34A1069B5B62BAC41DB66F47745E3A1E442B SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [b1] NES board=MAPPER159; -sha1:89C57A4144E038565707A4B3B5B9505C7E4F3C70 SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [T+Eng0.10_Assassin_Productions] NES board=MAPPER159; -sha1:CFB4626E7794F1276ABF5DB7806FCE61EFEBFE98 Street Heroes (Sachen) [U][!] NES board=UNIF_UNL-SHERO;VRAM=16; -sha1:56CBA51568B0F1458AA7E0DE6575D1225E40F7A1 3D Block (Unl) [a1][!] NES board=MAPPER219;PRG=32;CHR=0;VRAM=8;PAD_V=0;PAD_H=1 -sha1:0E7A314D43B53ABCCFF7B38A1AA8BD0CFA612346 Pocahontas 2 NES board=Pocahontas -sha1:0E78391D3036D71C8241DB0206E7747F4E3892DC Poker III NES board=UNIF_UNL-Sachen-74LS374N -sha1:11419605C942FC9DCB4F93A329C13E3BD5D62403 Poker III NES board=UNIF_UNL-Sachen-74LS374N -sha1:F9E15D09D5F49E52185BA10B4F98A342B2606870 Mei Nu Quan (Honey Peach) (Sachen) [b1] NES board=UNIF_UNL-Sachen-74LS374N -sha1:52EBAFAD0B70E6BB41CCDBC0DFC8420C12D64AC5 Mei Nu Quan (Honey Peach) (Sachen) [b2] NES board=UNIF_UNL-Sachen-74LS374N -sha1:079E58CEDD3D182E8591A33EE8FAD6F227960838 Mei Nu Quan (Honey Peach) (Sachen) [a1] NES board=UNIF_UNL-Sachen-74LS374N -sha1:E8BB03BA4ABED34FF451A1D086352719BAC6564F San Guo Zhi 2 (Ch) [T+Chi2.3] NES board=MAPPER199;VRAM=8 -sha1:8996AEA69D459AC181F1B3F4EF56DEA20FFF0A40 Silva Saga (J) [T+ChS] NES board=MAPPER199;VRAM=8 -sha1:3F85C45797E8AA0F161A4BD350BFF5777B3A19A8 Zu Qiu Xiao Jiang (Ch) [f1] NES board=MAPPER195;VRAM=4 -sha1:A43A2203F4F7E0FE729CE520FBD75A05206AC9F2 Zu Qiu Xiao Jiang (Ch) NES board=MAPPER195;VRAM=4 -sha1:A2F36A9CA3914F1C9184A85E914D7A163DAA135B B 46-in-1 (D1038) [p1][b1] NES board=MAPPER060 -sha1:C403AA673405583FD18A0DA5E3E6275786E04128 B 65-in-1 (NT766) [p1][b1] NES board=MAPPER060 -sha1:7E46FBE4713E9391293521CF2B852C80DBEBCD7F B 74-in-1 (NT886) [p1][b1] NES board=MAPPER060 -sha1:81D72ACD08A6255AE44639D40D6D90C1EFCF61AF B 77-in-1 (NT141) [p1][b1] NES board=MAPPER060 -sha1:1C3771B7F116F439D684D04DF792570271C93F86 75 Bingo (Sachen-English) [U] NES board=Sachen_CNROM -sha1:4097D5A814308E39D592466B60B64862699CC22A 2-in-1 - Yuu Yuu + Dragonball Z [p1][!] NES board=MAPPER023_BMC -sha1:4C499A857087E6C121522435786792A2E4105AC1 Fuuun Shaolin Kyo (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH10;WRAM=8;VRAM=8 -sha1:CAAC1E829133851648BA7C7CD6EAA7D26A464999 Metal Fighter (Asia) (Unl) (Sachen) NES board=UNIF_UNL-SA-016-1M;PRG=32;CHR=32;PAD_V=0;PAD_H=1 -sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL -sha1:0CDE48DB89896946F0C2E78936EA290348994ED5 Pipemania (Australia) (HES) (Unl) NES board=MAPPER113;PRG=32;CHR=16;WRAM=0;VRAM=0 -sha1:E843AB3D779D4F0BB1F933D6EE99DAA526EFBCF1 Gaiapolis (Asia) (Unl) NES board=UNIF_NES-TLROM;PRG=128;CHR=256;WRAM=0;VRAM=0 -sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL -sha1:B21CFE30197727C1C8E8DB6D28AD696A708F8FF5 Pyramid II (Asia) (PAL) (Unl) NES board=MAPPER146 -sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;positively good roms which for one reason or another arent in bootgod's DB - -;probably missing due to obscurity -sha1:977286FDC76C34A618E2A2D0270641BC36CFE89C Nintendo World Championships 1990 NES board=NES-EVENT;PRG=256;CHR=0;WRAM=8;VRAM=8 - -;these are from the 2002 konami collection and castlevania at least has a published TAS. presumably these are good, as they came from a PC game -sha1:EC652EE1660E527098102E26A36A8B9B7BB3943F Castlevania (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 -sha1:B5C4E5E858113F5AA5E063BC79A12D7F6B856E6C Contra (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 - -;chinese shit -sha1:BFA31777E077E64AF0E274B5A22B57C6765D36E1 Fan Kong Jing Ying (Unl) (Ch) NES board=MAPPER241;MIR=H -sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (Ch) NES board=MAPPER176 -sha1:0B58E16B7FD5ABE62B1D9B1841875582DF5A9195 Ying Lie Qun Xia Zhuan (Ch) NES board=MAPPER192 -sha1:27CB8AEAF0EA97A6C69D3D90BC056C5EB61695F6 Dai-2-Ji Super Robot Taisen (Ch) NES board=MAPPER194;VRAM=2 -sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci Ji Qi Ren Dai Zhan (Ch) NES board=MAPPER074;VRAM=2 -sha1:A9887C308C5D0659C3AA45D003A603C9DFFB148A B Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 -sha1:5084F25F14A61AB2799BD85D363B57B9B494601D Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 -sha1:6143D80047FFC17C752078C622A44C3E0CB7466E B Dong Fang de Chuan Shuo The Hyrule Fantasy (Asia) NES board=MAPPER245 -sha1:CEFEBA536DB507DBDEF8A538F9C332D7A75BF613 You Ling Xing Dong (Ch) NES board=MAPPER192;VRAM=4 -sha1:DBFCC70CC2DEC7A889429ED542267F0F1BD967BF Ying Xiong Chuan Qi (Ch) NES board=MAPPER224 -sha1:FFB4706E49B826C6CDD12E502E8AE94FC9810B7F Monty no Doki Doki Daisassou (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH32;WRAM=8;VRAM=8;PAD_H=1 -sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (China) (Unl) NES board=WAIXINGMAPPER176 - -;wrong vram info -sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32 -sha1:77B887BD5935204C72869365EAF99708E1B13EB1 Super 24-in-1 [U][p1][!] NES board=UNIF_BMC-Super24in1SC03;VRAM=8; -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;it works, so don't laugh -sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8 - -;wrong mirroring, no bootgod entry -sha1:C1D82F6BE8AF524F951FC7C9D41604E59F9FE92A G Dragon Wars (USA) (Proto) NES board=MAPPER004;PAD_H=0;PAD_V=0 -sha1:22FCC2D33F6715D63E04235A0A7CCB0C8DC489C5 Mortal Kombat 3 Extra 60 (Unl) [!] NES board=MK3E60;PAD_H=1;PAD_V=0 -sha1:8928F7293C12EE7D3FC90BECC68AE5261802EAA6 AV Super Real Pachinko (Unl) NES board=MAPPER066;PAD_H=0;PAD_V=1 - -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- -;mmc3 homebrews that need chip specification -sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A -sha1:0E971E2CCAD1DEE51A0C305ED38FAFD2E6CA3B41 Blargg's 6.MMC3_rev_B.nes NES board=MAPPER004;MMC3=MMC3B -sha1:F794FDA12D34E611D58E652319ED583AE61B81E0 Blargg's 6-MMC6.nes NES board=MAPPER004_MMC6 -sha1:2F29F3DC724027FAD926BC9D4470A481884E42A5 Blargg's 6-MMC6.nes (newer) NES board=MAPPER004_MMC6 -sha1:6F3184ACDC7333683D459C7613CA1C235CEAFD3F Aladdin (SuperGame) (Mapper 4) [!] NES board=MAPPER004;MMC3=MMC3A -;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- - -;datach stuff -29CC759D5CA214EEFC0CC1C6CE0F8B9111E58124 Datach Battle Rush Build Up Robot Tournament NES board=MAPPER157 -87478B635FEFB25FA13C4876E20F505A97426C1B B Datach Dragon Ball Z Gekitou Tenkaichi Budou Kai NES board=MAPPER157 -B2089533E05FE95814D0D77F2729944CBEB95988 Datach J League Super Top Players NES board=MAPPER157 -EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES board=MAPPER157 -533170D5EB685231CCD27B9C136FFA4FAD68A7B8 Datach Ultraman Club Supokon Fight! NES board=MAPPER157 -43315F18A514F0EF1D84EFE9C8D4483B57BA712C Datach Ultraman Club Supokon Fight! NES board=MAPPER157 -74218AAE93E4FEBFB2284BCF15811453418A2029 Datach Yuu Yuu Hakusho Bakutou Ankoku Bujutsu Kai NES board=MAPPER157 -6F3C65BD945FE13305A7A39D8CD884A5BF314A8F Datach Crayon Shin Chan Ora to Poi Poi NES board=MAPPER157 -1218C891DEE878C18D31D38D07CAD5FB06B3B2CE Datach Yuu Yuu akusho Baktutou NES board=MAPPER157 - -;testrom -sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM - -; ArcadePit hacks -; Why does this one need NesHawk? -sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck Edit] (USA) NES NesHawk - -#include gamedb_goodnes.txt - +#include gamedb_n64.txt +#include gamedb_nes.txt +#include gamedb_pce_cd.txt +#include gamedb_pce_hucards.txt +#include gamedb_psx.txt +#include gamedb_sega_sg1000.txt +#include gamedb_sega_gg.txt +#include gamedb_sega_sms.txt +#include gamedb_sega_md.txt +#include gamedb_snes.txt +#include gamedb_user.txt +#include gamedb_ws.txt +#include gamedb_wsc.txt ; ************ TI-83 ************ @@ -362,7 +40,4 @@ D4448D09BBFDE687C04F9E3310E023AB TI-83 v1.07 TI83 initPC=6ce C94257E7 B Looney Tunes - Sheep Raider (STATiC Dump) PSX dh=00000000 829A295C B Monster Rancher 2 (U) (EXE Patched) PSX dh=00000000 -#include gamedb_neshomebrew.txt -#include gamedb_user.txt -#include gamedb_ws.txt -#include gamedb_wsc.txt + diff --git a/Assets/gamedb/gamedb_nes.txt b/Assets/gamedb/gamedb_nes.txt new file mode 100644 index 0000000000..c51c6c4960 --- /dev/null +++ b/Assets/gamedb/gamedb_nes.txt @@ -0,0 +1,349 @@ +#include gamedb_goodnes.txt +#include gamedb_neshomebrew.txt +#include gamedb_vs.txt + + +;b - bad dump +;v - bad dump (??) +;t - translated rom +;o - overdump (bad) +;i - bios +;d - homebrew +;h - hack +;u - unknown + +;Hash Status Name System ID Notes MetaData Configurations CoreForce[neshawk|quicknes] + +; ************ NES / Famicom ************ + +;games which might be good according to goodNES, but which are almost positively not according to bootgod, who has dumps with different hashes +;these we tend to mark as Unknown, because maybe these are variants of the cart which bootgod didnt happen to dump, or maybe bootgod's is wrong (?) +sha1:E80FF0B707B0D675FDBEF474E3FDB1A83E2B7C44 U Mississippi Satsujin Jiken (J) NES board=JALECO-JF-11;PRG=128;CHR=32;PAD_H=1 +sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C U Mississippi Satsujin Jiken (Alt) (J) NES board=MAPPER066;PRG=128;CHR=32;PAD_H=1 + +;possibly good roms for games which arent in bootgod's db yet, most likely due to obscurity or incompleteness at the present. +;when they appear in bootgod's db then we can re-evaluate this category. +sha1:91CECCFCAC90E417E9AEE80E8F7B560A20EB33CC Ai Sensei No Oshiete Watashi No Hoshi (J) NES board=IREM-G101;PRG=256;CHR=128;WRAM=8 +sha1:1E49BDA9CEF18F6F5C2DA34910487713D364AA68 G Pipe 5 (Sachen) NES board=MAPPER160;PAD_H=1;PAD_V=0 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;this is every game from goodNES which is clearly labeled as bad. +;well, it isnt very game yet. but we should make it every game, if we can! it would be a lot of games though +sha1:984ADAEB85403EEF1BA85CDCF310FAAECEB409A0 B Adventures of Captain Comic, The (Bad Dump) (U) NES board=COLORDREAMS-74*377;PRG=64;CHR=64;WRAM=0;VRAM=0 +sha1:869111A86FD46872AD8B1BA0ED31B858FA15681F B Adventures of Lolo (Bad Dump) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 +sha1:41BD74F739E008D476989C8296BB789EE57658F0 B Adventures of Lolo (Bad Dump 2) (U) NES board=NES-SEROM;PRG=32;CHR=32;WRAM=0;VRAM=0 +sha1:10AF069B2AC5DB2FB10768349F4068CB3CDA0EC7 B Airwolf (Bad Dump 1) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 +sha1:DAD9D1D66018DFB3C30F48741EF188FEFA2B2F68 B Airwolf (Bad Dump 2) (U) NES board=NES-SH1ROM;PRG=32;CHR=128 +;since the actually good Banana rom is "Banana (J) [hM03][p1][a1]" then we want to be aggressive in marking all these others as bad +sha1:84EA60C1FA43AF37B2A20C1FEFCB2D5182EAF3E8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:F9423CCC1AA711CB06B8F5C66E9304636F5E9B10 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:A8037AED044417DEE8D822A21851058ED37AF6A8 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:8F42BC9919B324A63636BE2FBAD0101D8C720517 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:4EF2C4DAD0897F326E2991D351903A98483BC3C0 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=16 +sha1:15E04F1BF83D8FE34ECD2B29894C9CF034E6D257 B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=32 +sha1:C6C6228B16AECB35B0C52467071E04DB3B34C77F B Banana (J) [hM03] NES board=HVC-CNROM;PRG=32;CHR=8 +sha1:2801CDE6D10D67889E01161476D80CF5CCC3263E O Ball Hack v.2 2001-03-21 [o1] NES board=HVC-NROM-256;PRG=32;CHR=8 +sha1:A6E7DB47B9C39E2A5B0A77F34B9AA3BEFDB70D1C O Dr. Mario (JU) (PRG0) NES board=MAPPER001;CHR=32 +sha1:2BDBD70C1E3EEF115F640B91B22A97BFCDF18B2D B Castlevania III Dracula's Curse (U) (Bad Dump) NES board=MAPPER005;CHR=128 +sha1:0D0957F7D49E38C298EB5194472B87EFC44BBD46 B Dragon Quest II Akuryou no Kamigami (J) (Bad Dump) NES board=MAPPER002;CHR=0 +sha1:736C0AEDA14A93A2715BDA1DA6F6C92E6690A5DE B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:739698BD6050572F24E739A20978E4760CF33E59 B Dragon Quest IV Michibikareshi Monotachi (J) (PRG1) (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:3FB61976847BCA4187DB61F484BF21346B42C95A B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:697ECCCDD178809207726A05A5593D874CA39CA9 B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:E33D3A487678F35E05C0E5DA7E4C30F8FEFA600D B Dragon Warrior IV (Bad Dump) NES board=MAPPER001;PRG=512 +sha1:3AE0469A8208023DAA32A7BB9925F3C5666FCB2D B Famicom Meijin Sen (J) [a1] NES board=HVC-SKROM;WRAM=8 +sha1:8CC5894A1E637FA63A63992E188B3797D9300337 B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 +sha1:CAB30771F9CBD89B2FCD06F3B2F5C8F2156BFD8A B Mighty Bomb Jack (U) (Bad Dump) NES board=NES-CNROM;PRG=32;CHR=32;WRAM=0;PAD_V=1 +sha1:A4CDD4BC37D44CFF1379942CC31DCD89E340B10C B Money Game, The (J) [hFFE][b1] NES board=MAPPER006;PRG=256 +sha1:8AB1B122FE96865B62290FC838FA2C248D4989FB B 3D Bloack (Unl) [f1] (Bad Dump) NES board=MAPPER000;PAD_H=1 +sha1:457BA1626EAA58A2370ECD6AB0B83232C098C064 B High Speed (E) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-PAL-B +sha1:421EBBFA08FFD5A7A0F4DDEE7868B36DB7FAEE39 B High Speed (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:9979C1333B8A7685CC3CA2BEAFD634B2A88D3AF8 B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:DAB664B59B094FFAABCF24D0388760C09F87495C B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:36405B87E66E18DC432690A5959D4529C14B1AEE B High Speed (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8;PAD_V=0;PAD_H=0;system=NES-NTSC +sha1:9D2391C1F4855E7ECCE0DB5C8B258A43B4E9F84F G Pin Bot (PC10) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:B3537088ED6F8379F2C30CA45061BFCCBA1007B9 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:A1E8E80E2F72E606CD7802D809B2FF256578EDE6 B Pin Bot (U) (Bad Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:C969BD9F8E4353EE6463221FFDD2BFE4A844134A B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:569907CD308C28CDB178AA525F976656BF0DD886 B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:9C851967BD74E063ED8F44935928911D572527AD B Pin Bot (U) (Over Dump) NES board=NES-TQROM;WRAM=0;VRAM=8 +sha1:2FA61D1FDFCFEC20099EB85C3F45827CA87160D9 B Yong Zhe Dou E Long Dragon Quest V (Ch) (Over Drump) NES board=MAPPER245;VRAM=8;CHR=0;PAD_H=1;BATT=true +sha1:79978AA3AD3FE63D41357E62F1E49E4761B3738A B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:3825786DF3AD8E2C2F0442E42088AC0E494BDA2D B Magical Taruruuto-kun 2 Mahou Daibouken (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:02D4E73DACD3E74CF927C77DF1DB1B7453312CC9 T Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 +sha1:DBD7DBAF79D2A77A09D9D4CF685CBD93281ED468 B Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 +sha1:944F98A6885CA5160669BF81B9DE710CB16E312D G Chaos World (Ch) NES board=MAPPER195_CW;VRAM=4;BATT=false;PAD_H=1 +sha1:EA6093FF3B4C7425B792223742DF5C76A657EF08 B Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; +sha1:B367506A7249865DEDB59AFF9B4CE593B3913F0C G Columbus - Ougon no Yoake (Ch) NES board=MAPPER195;VRAM=2; +sha1:78EC827CEE61E009F7716ADE03361369FFCE9D12 G Luo Ke Ren X (Sugoro Quest - Dice no Senshitachi) (Ch) NES board=MAPPER195;VRAM=4 +sha1:568BF236FB3085B8BD522FBD2C18C7831E3A2DD1 G Q Boy (Sachen) NES board=SACHEN-8259A;VRAM=8 +sha1:2FA9EF6B8E5C7E1D215F4FF69C6275BDE00DDE76 O Sugoro Quest - Dice no Senshitachi (Ch) [o1] NES board=MAPPER191 +sha1:0C7CA363EA26632E1A61C7F40E0FE8E8538ED76A G Wei Luo Chuan Qi (Ch) NES board=MAPPER192 +sha1:F459A9AD6F841169E0210436CEB06B1395169EAB G Young Chivalry (Ch) NES board=MAPPER192 +sha1:8711FDC0CE28574C043816721CA32E4A1C722BE4 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:E7803CAC6898C7243F9331E6360B5157BAE673A5 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:16EF1034DB88AD96DDC19C3A84B9E0FDEE466CD4 B Young Chivalry (Ch) NES board=MAPPER192 +sha1:BE8373A0694EB021EBF73D75F8AC63BD8162009A B Young Chivalry (Ch) NES board=MAPPER192 +sha1:4692A622AF6A3D79514BF3E5FB4E9FBE6C6080FC G 150-in-1 [a1] NES board=MAPPER235 +sha1:83264E3F8807998D09E9FBA19B13BBEA7C888D88 O Bakushou!! Jinsei Gekijou 3 (J) [o1] NES board=TAITO-TC0190FMC+PAL16R4;WRAM=0 +sha1:E79FC613112CC5AB0FC8B1150E182670FB042F4A G Contra Fighter (Unl) NES board=MAPPER238 +sha1:2C512DE4079AF45D7B9218E40BB68E308ABE288C B Magic Johnson's Fast Break (U) NES board=MAPPER001;PRG=64;CHR=128 +sha1:D2BE67170DDED1E1108EED2D4D8CA9D9CEE9F9E2 G Super Mario Bros 2 (Lost Levels) (Unl) NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:77D5D7A162B61DEFC6B66B6A39B8D51E124AC534 B Tagin' Dragon (Bunch) [b] NES board=COLORDREAMS-74*377;CHR=16;PRG=32;WRAM=0 +sha1:2028940CF7C757A3A7931A741D5EC79C3554D38C O Wally Bear and the No Gang (AVE) [o] NES board=AVE-NINA-07;WRAM=0 +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;these roms are in goodNES but theyre junk. hacks, mostly. ideally we would put ever game from goodNES that was labeled as a hack in a list here. +sha1:111D38E2FB41D0B43753E18757D427A91B0DBCB9 H Dragon Ball Z II Gekishin Freeza!! (J) NES board=BANDAI-LZ93D50+24C02;PRG=256;CHR=256;WRAM=0 +sha1:A907E600CEDA175ECD115B406B28155397A4C1FA H Dragon Ball Z Gaiden Saiya Jin Zetsumetsu Keikaku (CH) NES board=BANDAI-FCG-1;PRG=512;CHR=256;WRAM=0 +sha1:A13EAF0132905FBE3D0456BB075028A30C084D0E H Dragon Ball Dai Maou Fukkatsu (J) [hFFE] NES board=BANDAI-FCG-1;PRG=128;CHR=128;WRAM=0;VRAM=0 +sha1:8885F4F00C0B73C156179BCEABA5381487DBEAAD H Spy vs Spy (J) NES board=HVC-CNROM-256K-01;PRG=32;CHR=8;WRAM=8 +sha1:8C676CC9BEF5B93C5A7630D12B8A5B2FEBCE3438 H Rad Racket Deluxe Tennis II NES board=NINA-06;PRG=32;CHR=32 +sha1:A1D674D1C7C633A317CFD516EFB9A0350CD0E45E H Arkanoid II (J) NES board=TAITO-74*161/161/32;PRG=128;CHR=128;WRAM=8 +sha1:4D6117577CE301BB987C5C32FEEF7B132A21B046 H Afro Man (Mega Man 3 Hack) (UNL) NES board=TXROM-HOMEBREW;PRG=256;CHR=128;WRAM=8 +sha1:7BD102770FE7766BF8430ACDB3C17EE51E30478C H Mike Tyson's Punch-Out!! (Hacked) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 +sha1:536D623BA02A622BDE8E2D7D514AE9785B5E0357 H Punch Out!! Kirby (Hack) (U) NES board=NES-PNROM;PRG=128;CHR=128;WRAM=0 +sha1:F2A8BC888B888FA65DFB303126B130422E34942E G Kunio 8-in-1 [p1] NES board=MAPPER045 +sha1:27AA5F60474600FEE5C1623D4A0985421680C9FE H Mario + Toad (Nuts & Milk Hack) NES board=MAPPER000 +sha1:B7DD142AF1FBCC81F3FE88C9278BD6C61B615D09 O Death Race (AGCI) (Overdump) NES board=MAPPER144 +sha1:0FAECB09767528CC2C9CD4FE4EDBD0C6ECEFB999 G Secret Scout in the Temple of Demise (Color Dreams) (Prototype) NES board=MAPPER011_HACKY +sha1:87C929090C3B04739BAAED90B9A8F40B29327FC2 G Free Fall (U) (Prototype) NES board=MAPPER011_HACKY +sha1:BFE1A8EFE7539B20E09FFD472963F271AC9F2AEC G Mortal Kombat 2 (Unl) NES board=MAPPER090 +sha1:123105A996B3F325E55B7080DDD83D4CF043E543 G 168-in-1 NES board=MAPPER015 +sha1:B094D9D20A193BF28BD57A1154EADA84F9F6C9CC G Street Fighter II - The World Warrior (Unl) NES board=MAPPER189 +sha1:C0CF1CDFEEA5F3529A3126B366DF8E331C804CC7 G Summer Carnival 92 - Recca NES board=MAPPER004 +sha1:E9CFA35A037CC218F01BFB4A1EB5D1D332EA2AA9 G Family BASIC (J) NES board=HVC-FAMILYBASIC;WRAM=2 + +;;;;;;;;;;;;;;;;;;;;;- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;heres another idea. let's list rom sets from goodNES, good and bad variants together +sha1:98B71119294DA59D1B22723D2D2955D80EADABF4 World Hero (Unl) [!] NES board=MAPPER027 +sha1:17AC56723F99A646BD44F8C999B23B8A972A3EF2 B World Hero (Unl) [b1] NES board=MAPPER027 +sha1:5227195D5DB2030758BF67704150E8C5FAF056B1 B World Hero (Unl) [b2] NES board=MAPPER027 +sha1:AD350F001DB2E3C640B2BD9107B86A8F29B68AC0 G Commandos (Ch) NES board=MAPPER163; +sha1:5A91F54A6FF44762D98FC8D8974909D298EB52A8 G Somari (NT-616) (Unl) NES board=MAPPER116; +sha1:5F0943DC8145542ABC70BF20E4754B3C08653399 G Meikyuu Jiin Dababa (FDS Conversion) (Unl) NES board=MAPPER108;WRAM=0 +sha1:95E86C77BB25DD23152D34FD0BB562A09535BE43 G Pyramid (AVE) (PRG1) NES board=MAPPER000 +sha1:5759A9D658D253C8A6AAA38969C443D66E0F3349 G Dragon Quest III (PRG0) NES board=HVC-SNROM-03 +sha1:9DF34897D002E8D0E4D53B76154F8CD46927CDF9 G Dragon Quest III (PRG1) NES board=HVC-SNROM-03 +sha1:B6D1C372A38D196112AA98905C709AD844BD6627 G Super 35-in-1 (y-in-1 VT5201) NES board=MAPPER060 +sha1:0941ABB51EF88587303DBF018770758ECDDD5C20 G Jovial Race (Sachen) NES board=MAPPER133 +sha1:D20724A2E2933BEE8E193596688CF86747E0250B B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:9F17353EF85590484BBC693517292A15DD30845D B Dragon Ball Z Kyoushuu! Saiya Jin (J) (Bad Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D1E9A66CC7424725AD72B8A04E37B9E72EE2BFB6 O Dragon Ball Z Kyoushuu! Saiya Jin (J) (Over Dump) NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:123AA69FE2334A027E48BA658C906BFA4996FA32 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng0.47_Eigo ni Yakusu Productions] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:6DCB35518C0AC42943098A5B417B79C10273D75A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.01_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:726C2C19F7B559AD5220872004B580D8C9574F5A T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Eng1.1] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D51398EFF4F3F47AFA0527D98882234E10AEDFF4 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Kor20060719_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:97DECB4E7C8DE1006F57732D8E83437A9186E500 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por45%_Tradu-Roms] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:80E314CF4A2FCD5A184D4D168428165C1F844729 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Por100%_RaphFS] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:1D6381D2AA0DF4A5B50E9E2DB7B45785BBB1E48F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T+Spa_PaladinKnights] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:15E43BE5F7D328BF3041B52CE38BFC4FF23A1DF1 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:D42BA5AEC6E41804FF98D6DFA34B53510A1174FA T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.50_TransBRC] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:B1228C5716FB5EE2E0421634A464C927B33493B7 T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng0.99_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:8E910216502E0BF9BFBA3E38EAA34FFC2D7EE1AD T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Eng1.00_RedComet] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:18BE110CBEA2D665A3FF704BDD4153AE5E5ACE5F T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Kor_88ktt] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:9F601A88A9DFA8EDEC23F67DA60254BE4CBAE64B T Dragon Ball Z Kyoushuu! Saiya Jin (J) [T-Spa] NES board=BANDAI-LZ93D50+24C01;PRG=256;CHR=256;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:FC7A8824CFDD37F85868C8D8624D8B517A7C3C02 G God Slayer - Haruka Tenkuu no Sonata (Ch) NES board=MAPPER195;WRAM=16;VRAM=4;BATT=true +sha1:081D107B5AEFFD4F59108C76FA3942506FA36B1F G Captain Tsubasa Vol. II - Super Striker (Ch) NES board=MAPPER195;VRAM=4 +sha1:F99E8B7C7A2174BF0B2330F5457AEE478A938C93 G Captain Tsubasa Vol. II - Super Striker (Ch) [a1] NES board=MAPPER195;VRAM=4 +sha1:9958BED493E8C5727F96937BF254AC33FA3BCF81 G Captain Tsubasa Vol. II - Super Striker (Ch) [a2] NES board=MAPPER195;VRAM=4 +sha1:B4AA3F10908DC3D6B8152F5DEB1B8543B8B46BF6 G Captain Tsubasa Vol. II - Super Striker (Ch) [a3] NES board=MAPPER195;VRAM=4 +sha1:60FC5FA5B5ACCAF3AEFEBA73FC8BFFD3C4DAE558 G Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 +sha1:BAD382331C30B22A908DA4BFF2759C25113CC26A O Pegasus 5-in-1 (Golden Five) NES board=MAPPER104 +sha1:6282051DA49C286863463AF105F851AACF896563 G San Guo Zhi 2 (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:71234F9DCA4C31B4E9F0719425963878F3F045C9 G Dragon Ball Z II - Gekishin Freeza!! (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:A907E600CEDA175ECD115B406B28155397A4C1FA G Dragon Ball Z Gaiden - Saiya Jin Zetsumetsu Keikaku (Ch) NES board=MAPPER199;VRAM=8;BATT=true +sha1:D565A9C2B117447C310E4F59E4AFC30DF299EA4F G Street Fighter IV (Unl) NES board=MAPPER208 +sha1:B9F444FF60F60C177EEEC8671BEC3731B0F6FE49 G Tang Mu Li Xian Ji (Ch) NES board=MAPPER223;WRAM=16 +sha1:EBD2B4A4067FD4A8F0D0ABD34C8FF1AF520D1EED G Super Blaster VII Turbo 28 (Unl) NES board=MAPPER083;prg=512;chr=256;wram=0; +sha1:40409FEC8249EFDB772E6FFB2DCD41860C6CCA23 G Pegasus 4-in-1 (Unl) NES board=MAPPER232 +sha1:7EF667D9BF107B6512565177B9C62081077558F5 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi] NES board=MAPPER198 +sha1:92CC033C1255F119B3A566EDCA10140C014FA479 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a1] NES board=MAPPER198 +sha1:EEF617A022B8E45E0BDE088FED654C89AD4FAABF T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi][a2] NES board=MAPPER198 +sha1:3D49A357362160B16F03CC4BE7D8EAFB7108708D T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Trad)] NES board=MAPPER198 +sha1:7FB334A7375E17EA157415193DEE4FACC4EC2B34 T Tenchi wo Kurau II - Shokatsu Koumei Den (J) [T+Chi(Simp)] NES board=MAPPER198 +sha1:D8684D302F17843031151DE38D609646CAE4753C O Don Doko Don 2 (J) [o1] NES board=MAPPER048 +sha1:12DDD9EDB8894C200C9D89B9EE5673F1202ABA19 Falsion (FDS Conversion, Whirlwind Manu) (Unl) NES board=MAPPER108;WRAM=0 +sha1:D6E9F3722CFA26CBC582649F197D780809F575CA O Family Circuit '91 (J) [o1] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:387E7B477F5A61A165A41CD2BFE8A467B3816323 O Family Circuit '91 (J) [o2] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:68ADA89BC7539679871AD14C5C1FFADF04D71280 O Family Circuit '91 (J) [o3] NES board=MAPPER210;PAD_V=1;PAD_H=0 +sha1:8A5FD1061ADACDEABF422A2D2E555FF70749AE7C B Mississippi Satsujin Jiken (J) [h2] NES board=MAPPER066 +sha1:C1F7AD0A347078B9213B2748D4ADFF33305A6647 O Mississippi Satsujin Jiken (J) [h2][o1] NES board=MAPPER066 +sha1:4BBD4C55C37F531031177DE51F007B10418AD760 O Pyramid (AVE) (PRG1) [o1] NES board=MAPPER000 +sha1:BAF860940369C54B3FF547DA7E759515015B1131 O Pyramid (AVE) (PRG1) [o2] NES board=MAPPER000 +sha1:2B34E0F405629055E4FF2B2B1C0EBE015D866344 H Rabbi Harrel Groberklotz (Gumshoe Hack) NES board=MAPPER066;WRAM=0 +sha1:DA3644C99D462833E4EEF826D8700AF278609C10 G Super 2-in-1 (Soccer Game & Crazy Dance) (Unl NES board=MAPPER178 +sha1:CE11161FE2B41008F55FC9D29E093C347E78EBC4 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:43E3ED6480E7BF32FFAF1AEBC7F534E0A9B775E6 T Super Mario Bros 2 (Lost Levels) (Unl) [T+Rus_Cool-Spot][a1] NES board=MAPPER040;WRAM=0;PAD_H=1;PAD_V=0 +sha1:F32E366828DCA94A612DD39613858DD8E26FA2DC T Thunder & Lightning (U) [t1] NES board=MAPPER066;WRAM=0 +sha1:8554112E83B5978F5D4EC6E4551F390D5F698E00 B U-Force Power Games (U) (Prototype2) (Defaced by NA) [b1] NES board=NES-GNROM;WRAM=0 +sha1:A6A0A3DC8438558FA5DA3AF8D3349AA8CF080404 Xi You Ji Hou Zhuan (Ch) NES board=MAPPER162 +sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 B 800-in-1 [p1][b1] NES board=MAPPER236 +sha1:BC1734BEE472D34F489A6F5F2530A019F28055B7 G 800-in-1 [p1][U] NES board=MAPPER236;VRAM=8 +sha1:BD167D1BCC9A008D04136EB91396EBEBCAC976E2 B R.B.I. Baseball (Tengen) [b] NES board=TENGEN-800002;WRAM=0;PAD_H=1;PAD_V=0 +sha1:DEE958845DC528BED899557FB2A8A3B61F1BA7D1 Bao Xiao San Guo (Ch) [a4] NES board=WAIXINGMAPPER176 +sha1:2EADA3C0D800A40C1CE5DB96A31A43196ED7A97B Kou Dai Jing Ling - Fei Cui (Ch) [a2] NES board=WAIXINGMAPPER176 +sha1:237C2C026A10B3CEBFF96516FC67E4F446676D47 Meng Huan Zhi Xing IV (ES-1006) (Ch) NES board=WAIXINGMAPPER176 +sha1:2FA7C0E60634C12EF54D857BF7AF45D4971066FE Po Fu Chen Zhou (ES-1092) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:A8010B1EE3C5362F606A47604CC49E5D7EAC9E46 B Pocket Monsters Red (Ch) (Decrypted) [b1] NES board=WAIXINGMAPPER176 +sha1:A50411EDCC088D55B35A62ABD62D4FF1A0B4ED22 Shu Qi Yu - Shu Xue Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 +sha1:5BDE83532F9E3B885C4D2C130F8981DD04E5A159 Shu Qi Yu - Zhi Li Xiao Zhuan Yuan (Ch) NES board=WAIXINGMAPPER176 +sha1:91E51788E980A8AD5A8A829E270504C9571B72CF Shui Hu Shen Shou (ES-1087) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:DB92A34E6941D99B796FBE6C6C26F7D09C2BC2EE Xi Chu Ba Wang (ES-1066) (Ch) (Decrypted) NES board=WAIXINGMAPPER176 +sha1:7235F3F8F0CA37B7C1EE6923A6DA272C08E0C817 Xiong Ba Tian Xia (Ch) NES board=WAIXINGMAPPER176 +sha1:71511ECB1E5D99F38A04EC9291B1ABD4B512C42D P Bubble Bobble (FDS Conversion, Kaiser Hacked) (Unl) [p1] NES board=MAPPER108;WRAM=0;PAD_H=0;PAD_V=1 +sha1:8F6CF72F9A829177A67DAAD4A083CADA3ED8B587 P Doraemon (J) (PRG0) [p3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:E1935AD60CAFAEEC8A8301A607B373754D770E2E T Doraemon (J) (PRG0) [T+Eng] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:06A243B7FFE2CA5F96C4D324742BD6F349D7589E T Doraemon (J) (PRG0) [t2] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:BD43811A68799DBC45A53A006C35167D19C0919C T Doraemon (J) (PRG0) [t3] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:CB83577AAB5465EC7AD0AEF859A03444BA509386 T Doraemon (J) (PRG1) [T+Rus_Chief-Net] NES board=MAPPER066;WRAM=0;PAD_H=1;PAD_V=0 +sha1:C78A7629779AF2EA2D9870524E6A79C0CD2E0213 T Jajamaru no Daibouken (J) [T+Chi_nineswords] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 +sha1:A78D32B5FD43DCABA07A9152BF12EC9BFF2D37FD T Jajamaru no Daibouken (J) [hM66][T+Eng1.00_Aishsha] NES board=MAPPER066;WRAM=0;PAD_V=0;PAD_H=1 +sha1:2D8F4656698937A7616A61D82B47232D939E68EA P AV Mahjongg (Hacker) NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E365A1F87EDFE8A68F23D8521CBDBE56EC3D76A3 T AV Mahjongg (Hacker) [T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:D540F1050055C74B68CA02F3BA215E23ED859560 B AV Mahjongg (Hacker) [b1][T+Chi] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E8BDD327FA96576F501914BDF455C477EC2A20B4 B AV Mahjongg (Hacker) [b1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:E816367A8CAC2AC470CEEBA8C8DC00CEC8C7009E T AV Mahjongg (Hacker) [T+Chi][a1] NES board=MAPPER066;WRAM=0;PAD_H=0;PAD_V=1 +sha1:315ACE4AD8AC09B7ABA2815F93EEB8AD97BA1D38 H Fish Fall (Free Fall Hack) NES board=MAPPER011_HACKY +sha1:F59E68705F6A6346E18A071884A21A6289754EB7 G Free Fall (U) (Prototype) (Earlier) NES board=MAPPER011_HACKY +sha1:4FB14A3DBCE888BB1F95570BE45317ED1513FE89 B Free Fall (U) (Prototype) [b1] NES board=MAPPER011_HACKY +sha1:88A3624F48A2780B2C2A9D742B2185C3B31FB3D7 H Handy (Free Fall Hack) NES board=MAPPER011_HACKY + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;obscure and unlicensed roms which are not likely to be in bootgod's DB anytime soon but which are nonetheless "good" as far as things go +;people like these games (especially vast quantities of chinese oddities) so its important to add them here as good +sha1:D09EF8127C64CBE817B45DF33C4D43E7B441E381 Final Fantasy V (Unl) NES board=MAPPER164;PRG=512;CHR=0;WRAM=8;PRAM=8;PAD_V=1 +sha1:92D9695FEB774F60965A8303CFE3E6AAEE7B7B62 Magic Dragon (Unl) NES board=MAPPER107;PRG=128;CHR=64;WRAM=8;PAD_H=1 +sha1:6DF9AECF5787C0833B0F05A9A83D0E58A6153977 Rumblestation 15-in-1 (Unl) NES board=MAPPER046;PRG=1024;CHR=1024;WRAM=0 +sha1:E4BFD5AB3C3649DBD36B9A7280CF431641BCBCEC Peek-A-Boo Poker (Unl) NES board=NES-CNROM;PRG=32;CHR=24;WRAM=0 +sha1:39294394A0631708F58397371CE14075AE1FB7E6 Peek-A-Boo Poker (Panesian) NES board=NES-CNROM;PRG=32;CHR=64;WRAM=0 +sha1:C87E7E6A68DD9C7E24652CD2C7D390A14E8ADF04 Lagrange Point NES board=KONAMI-VRC-7;PRG=512;CHR=0;WRAM=8;PRAM=8;PCB=352402;BATT=true +sha1:2E0889131DA5BA9505A15B94887113F4360D98CD Shin Samurai Spirits 2 Haoumaru Jigoku Hen (Unl) NES board=MAPPER209;PRG=128;CHR=512;WRAM=8 +sha1:EB35202CC4E9C2FAC320B04F36F3A6858B8916F2 Super Bros. 8 NES board=MAPPER048; +sha1:F949FC16932808C426074AB1628F246B0435C52C Flintstones, The Rescue of Dino & Hoppy (J) NES board=MAPPER048; +sha1:9C801071D1AAC7B280468C38BF1B61FDE99B5FD0 Yong Zhe Dou E Long Dragon Quest VII (Ch) NES board=MAPPER245; +sha1:C282206800426557E7DD66ABF70FEAB6FE9DA1B2 San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:E6F080CCF09C62C038D35E3BD503C4E57E716571 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:E2BFF2002F2DD0AA184D5791D008A1350C477AE0 B San Guo Zhi (Ch) NES board=MAPPER252;VRAM=2;BATT=true;PAD_H=1 +sha1:B37E6002EF84C172DB413DF4B41451192ADBDC36 Shen Hua Jian Yun III (Ch) NES board=MAPPER253;VRAM=2;BATT=true;PAD_H=1 +sha1:CE1B236ED0EAC133A3DE5411AEF57228220885EF G Super Sonic 5 (1997) (Unl) NES board=MAPPER121 +sha1:37DC34A1069B5B62BAC41DB66F47745E3A1E442B SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [b1] NES board=MAPPER159; +sha1:89C57A4144E038565707A4B3B5B9505C7E4F3C70 SD Gundam Gaiden - Knight Gundam Monogatari (J) (V1.0) [T+Eng0.10_Assassin_Productions] NES board=MAPPER159; +sha1:CFB4626E7794F1276ABF5DB7806FCE61EFEBFE98 Street Heroes (Sachen) [U][!] NES board=UNIF_UNL-SHERO;VRAM=16; +sha1:56CBA51568B0F1458AA7E0DE6575D1225E40F7A1 3D Block (Unl) [a1][!] NES board=MAPPER219;PRG=32;CHR=0;VRAM=8;PAD_V=0;PAD_H=1 +sha1:0E7A314D43B53ABCCFF7B38A1AA8BD0CFA612346 Pocahontas 2 NES board=Pocahontas +sha1:0E78391D3036D71C8241DB0206E7747F4E3892DC Poker III NES board=UNIF_UNL-Sachen-74LS374N +sha1:11419605C942FC9DCB4F93A329C13E3BD5D62403 Poker III NES board=UNIF_UNL-Sachen-74LS374N +sha1:F9E15D09D5F49E52185BA10B4F98A342B2606870 Mei Nu Quan (Honey Peach) (Sachen) [b1] NES board=UNIF_UNL-Sachen-74LS374N +sha1:52EBAFAD0B70E6BB41CCDBC0DFC8420C12D64AC5 Mei Nu Quan (Honey Peach) (Sachen) [b2] NES board=UNIF_UNL-Sachen-74LS374N +sha1:079E58CEDD3D182E8591A33EE8FAD6F227960838 Mei Nu Quan (Honey Peach) (Sachen) [a1] NES board=UNIF_UNL-Sachen-74LS374N +sha1:E8BB03BA4ABED34FF451A1D086352719BAC6564F San Guo Zhi 2 (Ch) [T+Chi2.3] NES board=MAPPER199;VRAM=8 +sha1:8996AEA69D459AC181F1B3F4EF56DEA20FFF0A40 Silva Saga (J) [T+ChS] NES board=MAPPER199;VRAM=8 +sha1:3F85C45797E8AA0F161A4BD350BFF5777B3A19A8 Zu Qiu Xiao Jiang (Ch) [f1] NES board=MAPPER195;VRAM=4 +sha1:A43A2203F4F7E0FE729CE520FBD75A05206AC9F2 Zu Qiu Xiao Jiang (Ch) NES board=MAPPER195;VRAM=4 +sha1:A2F36A9CA3914F1C9184A85E914D7A163DAA135B B 46-in-1 (D1038) [p1][b1] NES board=MAPPER060 +sha1:C403AA673405583FD18A0DA5E3E6275786E04128 B 65-in-1 (NT766) [p1][b1] NES board=MAPPER060 +sha1:7E46FBE4713E9391293521CF2B852C80DBEBCD7F B 74-in-1 (NT886) [p1][b1] NES board=MAPPER060 +sha1:81D72ACD08A6255AE44639D40D6D90C1EFCF61AF B 77-in-1 (NT141) [p1][b1] NES board=MAPPER060 +sha1:1C3771B7F116F439D684D04DF792570271C93F86 75 Bingo (Sachen-English) [U] NES board=Sachen_CNROM +sha1:4097D5A814308E39D592466B60B64862699CC22A 2-in-1 - Yuu Yuu + Dragonball Z [p1][!] NES board=MAPPER023_BMC +sha1:4C499A857087E6C121522435786792A2E4105AC1 Fuuun Shaolin Kyo (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH10;WRAM=8;VRAM=8 +sha1:CAAC1E829133851648BA7C7CD6EAA7D26A464999 Metal Fighter (Asia) (Unl) (Sachen) NES board=UNIF_UNL-SA-016-1M;PRG=32;CHR=32;PAD_V=0;PAD_H=1 +sha1:B9902886D1739983B315B67B02133E44620E4381 Challenge of the Dragon (Asia) (PAL) (Unl) NES board=MAPPER147;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:0CDE48DB89896946F0C2E78936EA290348994ED5 Pipemania (Australia) (HES) (Unl) NES board=MAPPER113;PRG=32;CHR=16;WRAM=0;VRAM=0 +sha1:E843AB3D779D4F0BB1F933D6EE99DAA526EFBCF1 Gaiapolis (Asia) (Unl) NES board=UNIF_NES-TLROM;PRG=128;CHR=256;WRAM=0;VRAM=0 +sha1:68ABE1E49C9E9CCEA978A48232432C252E5912C0 Dancing Blocks (Asia) (PAL) (Unl) NES board=MAPPER143;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:B21CFE30197727C1C8E8DB6D28AD696A708F8FF5 Pyramid II (Asia) (PAL) (Unl) NES board=MAPPER146 +sha1:7117413766ABC02F3BB767C2CE96065B6F3CBA85 Silent Assault (Asia) (PAL) (Unl) NES board=MAPPER146;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:8898B1E70D561AF31564689E0C942C181C78E55F Rockball (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 +sha1:6A07B7C55359E1826F670DEDEBF969B9DD2F0A2F Popo Team (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1 +sha1:FCF9FF27F097892148EAEC439AB79BC53164D751 Elite (NTSC Demo) NES board=MAPPER001;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0;BATT=true;system=NES-PAL +sha1:2FB0401EA8249233EFA399F305D83672D5600B4A Sidewinder (Asia) (PAL) (Unl) NES board=MAPPER145;PRG=16;CHR=16;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:B3FB53931D34CDB41EFC2677CF7B949B2B84D616 Korean Igo (Korea) (Unl) NES board=UNIF_DREAMTECH01;PRG=144;CHR=0;WRAM=0;VRAM=8;PAD_V=1;PAD_H=0 +sha1:358E092952DDAFF9703A75264A6732003952500D Qi Wang - Chinese Chess (Asia) (Unl) NES board=UNIF_UNL-22211;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:C282316D30790E41D0A4A0E8949024B980CEE572 Poker Mahjong - Pu Ke Mao Que (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=32;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:82880C2F4A0D18E4CB67324334F2B3B76B818F31 Mahjong World, The - Ma Que Shi Jie (Asia) (NTSC) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:01D7CE2C74046BA6F7BE2C31DADB21A36BDCA117 Mahjong World, The - Ma Que Shi Jie (Asia) (PAL) (Unl) NES board=MAPPER148;PRG=64;CHR=64;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:313CDE2F9829B8BC30978BA7C534AFD8896B7BCA Silver Eagle (Asia) (PAL) (Unl) NES board=MAPPER138;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0;system=NES-PAL +sha1:88E6ADE9934EFCDE38D7482FDDE1C00C4C13652D Super Pang II (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=64;CHR=32;WRAM=0;VRAM=0;PAD_V=0;PAD_H=0 +sha1:0EA22D830B93AB455F8C1F5E2C4B894EABA30AA3 Super Cartridge Ver 2 - 10 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=128;CHR=64;WRAM=0;VRAM=0 +sha1:D24D3104E28FD3F428CDBC8AE2D3F4ACA9A69D6F Super Cartridge Ver 3 - 8 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 +sha1:1477FD89A26B8F6E3460FE078794D79BEC944C00 Super Cartridge Ver 9 - 3 in 1 (Asia) (Unl) NES board=UNIF_UNL-Sachen-8259A;PRG=256;CHR=256;WRAM=0;VRAM=0 +sha1:5239EECED4510EF3D540DD39D629D9E7C5E55251 Taiwan Mahjong - Tai Wan Ma Que 16 (Asia) (Unl) NES board=UNIF_UNL-SA-0036;PRG=32;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:C10C526F26273C4A1E180B968665910B74C78B86 Othello (Australia) (Unl) NES board=MAPPER000;PRG=16;CHR=8;WRAM=0;VRAM=0;PAD_V=0;PAD_H=1;system=NES-PAL +sha1:2500B5492ECE1CAFB97881C5A384B0768313BF98 Block Out (USA) (Proto) NES board=MAPPER004;PRG=128;CHR=0;WRAM=8;VRAM=8;PAD_V=0;PAD_H=1 +sha1:B1CC3ED04C610BE18742A3FD78A8F27A597F8549 Sidewinder (Australia) (Unl) NES board=MAPPER113;PRG=16;CHR=16;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:D4702A831A398107D8F87BC93BD56C4D8CA78F2A Buzz & Waldog (USA) (Proto) (Unl) NES board=MAPPER156;PRG=128;CHR=128;WRAM=8;VRAM=0;PAD_V=1;PAD_H=0 +sha1:3C72706AF5998133EC6BE703994C10466A094EAB Xing Ji Zheng Ba (China) (Unl) NES board=MAPPER241;PRG=512;CHR=0;WRAM=8;VRAM=8;PAD_V=1;PAD_H=0 +sha1:18DF013DB350787D0F3D83ADE33EA92B097BD54B Mahjan Samit Kabukicho Hen (Asia) (Unl) NES board=MAPPER146;PRG=64;CHR=64;WRAM=0;VRAM=0;PAD_V=1;PAD_H=0 +sha1:6AAA5521F91F101448E77C996C9802015578400C Dooly_Bravo_Land NES board=MAPPER002;PRG=256;CHR=0;WRAM=0;VRAM=8;PAD_V=0;PAD_H=1 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;positively good roms which for one reason or another arent in bootgod's DB + +;probably missing due to obscurity +sha1:977286FDC76C34A618E2A2D0270641BC36CFE89C Nintendo World Championships 1990 NES board=NES-EVENT;PRG=256;CHR=0;WRAM=8;VRAM=8 + +;these are from the 2002 konami collection and castlevania at least has a published TAS. presumably these are good, as they came from a PC game +sha1:EC652EE1660E527098102E26A36A8B9B7BB3943F Castlevania (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 +sha1:B5C4E5E858113F5AA5E063BC79A12D7F6B856E6C Contra (Konami Collection 2002) NES board=NES-UNROM;PRG=128;WRAM=0;VRAM=8;PAD_H=1 + +;chinese shit +sha1:BFA31777E077E64AF0E274B5A22B57C6765D36E1 Fan Kong Jing Ying (Unl) (Ch) NES board=MAPPER241;MIR=H +sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (Ch) NES board=MAPPER176 +sha1:0B58E16B7FD5ABE62B1D9B1841875582DF5A9195 Ying Lie Qun Xia Zhuan (Ch) NES board=MAPPER192 +sha1:27CB8AEAF0EA97A6C69D3D90BC056C5EB61695F6 Dai-2-Ji Super Robot Taisen (Ch) NES board=MAPPER194;VRAM=2 +sha1:F5FA7807F2B70ADFE5707D9BF88F90DAC1436DB0 Di 4 Ci Ji Qi Ren Dai Zhan (Ch) NES board=MAPPER074;VRAM=2 +sha1:A9887C308C5D0659C3AA45D003A603C9DFFB148A B Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 +sha1:5084F25F14A61AB2799BD85D363B57B9B494601D Ji Jia Zhan Shi (Asia) NES board=MAPPER074;VRAM=2 +sha1:6143D80047FFC17C752078C622A44C3E0CB7466E B Dong Fang de Chuan Shuo The Hyrule Fantasy (Asia) NES board=MAPPER245 +sha1:CEFEBA536DB507DBDEF8A538F9C332D7A75BF613 You Ling Xing Dong (Ch) NES board=MAPPER192;VRAM=4 +sha1:DBFCC70CC2DEC7A889429ED542267F0F1BD967BF Ying Xiong Chuan Qi (Ch) NES board=MAPPER224 +sha1:FFB4706E49B826C6CDD12E502E8AE94FC9810B7F Monty no Doki Doki Daisassou (FDS Conversion) (Unl) [U][!] NES board=UNIF_UNL-LH32;WRAM=8;VRAM=8;PAD_H=1 +sha1:17473C223453D2D80FCB9DCFA317947287DC5C52 Xing He Zhan Shi (China) (Unl) NES board=WAIXINGMAPPER176 + +;wrong vram info +sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids Anpanman no Hiragana Daisuki (J) NES board=MAPPER096;VRAM=32 +sha1:77B887BD5935204C72869365EAF99708E1B13EB1 Super 24-in-1 [U][p1][!] NES board=UNIF_BMC-Super24in1SC03;VRAM=8; +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;it works, so don't laugh +sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8 + +;wrong mirroring, no bootgod entry +sha1:C1D82F6BE8AF524F951FC7C9D41604E59F9FE92A G Dragon Wars (USA) (Proto) NES board=MAPPER004;PAD_H=0;PAD_V=0 +sha1:22FCC2D33F6715D63E04235A0A7CCB0C8DC489C5 Mortal Kombat 3 Extra 60 (Unl) [!] NES board=MK3E60;PAD_H=1;PAD_V=0 +sha1:8928F7293C12EE7D3FC90BECC68AE5261802EAA6 AV Super Real Pachinko (Unl) NES board=MAPPER066;PAD_H=0;PAD_V=1 + +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- +;mmc3 homebrews that need chip specification +sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A +sha1:0E971E2CCAD1DEE51A0C305ED38FAFD2E6CA3B41 Blargg's 6.MMC3_rev_B.nes NES board=MAPPER004;MMC3=MMC3B +sha1:F794FDA12D34E611D58E652319ED583AE61B81E0 Blargg's 6-MMC6.nes NES board=MAPPER004_MMC6 +sha1:2F29F3DC724027FAD926BC9D4470A481884E42A5 Blargg's 6-MMC6.nes (newer) NES board=MAPPER004_MMC6 +sha1:6F3184ACDC7333683D459C7613CA1C235CEAFD3F Aladdin (SuperGame) (Mapper 4) [!] NES board=MAPPER004;MMC3=MMC3A +;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- + +;datach stuff +29CC759D5CA214EEFC0CC1C6CE0F8B9111E58124 Datach Battle Rush Build Up Robot Tournament NES board=MAPPER157 +87478B635FEFB25FA13C4876E20F505A97426C1B B Datach Dragon Ball Z Gekitou Tenkaichi Budou Kai NES board=MAPPER157 +B2089533E05FE95814D0D77F2729944CBEB95988 Datach J League Super Top Players NES board=MAPPER157 +EDD7A45A7F27E396B6D686F1861642D509863132 Datach SD Gundam Gundam Wars NES board=MAPPER157 +533170D5EB685231CCD27B9C136FFA4FAD68A7B8 Datach Ultraman Club Supokon Fight! NES board=MAPPER157 +43315F18A514F0EF1D84EFE9C8D4483B57BA712C Datach Ultraman Club Supokon Fight! NES board=MAPPER157 +74218AAE93E4FEBFB2284BCF15811453418A2029 Datach Yuu Yuu Hakusho Bakutou Ankoku Bujutsu Kai NES board=MAPPER157 +6F3C65BD945FE13305A7A39D8CD884A5BF314A8F Datach Crayon Shin Chan Ora to Poi Poi NES board=MAPPER157 +1218C891DEE878C18D31D38D07CAD5FB06B3B2CE Datach Yuu Yuu akusho Baktutou NES board=MAPPER157 + +;testrom +sha1:E925A172C29DD46BA385D526F3C317DB039FA2BF mmc1_a12 NES board=NES-SNROM + +; ArcadePit hacks +; Why does this one need NesHawk? +sha1:90acbbdfad1465032dfff77175320bab8aa4adb7 H Mike Tyson's Punch-Out!! [Buck Edit] (USA) NES NesHawk diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index 686b8abc26..cbd91b88ee 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -840,9 +840,17 @@ namespace BizHawk.Client.Common case "A78": var gamedbpath = Path.Combine(PathManager.GetExeDirectoryAbsolute(), "gamedb", "EMU7800.csv"); - nextEmulator = Global.Config.A78_UseEmu7800 - ? nextEmulator = new Atari7800(nextComm, game, rom.RomData, gamedbpath) - : nextEmulator = new A7800Hawk(nextComm, game, rom.RomData, gamedbpath); + if (!VersionInfo.DeveloperBuild) + { + nextEmulator = new Atari7800(nextComm, game, rom.RomData, gamedbpath); // Don't expose A7800Hawk in releases yet + } + else + { + nextEmulator = Global.Config.A78_UseEmu7800 + ? nextEmulator = new Atari7800(nextComm, game, rom.RomData, gamedbpath) + : nextEmulator = new A7800Hawk(nextComm, game, rom.RomData, gamedbpath); + } + break; case "C64": var c64 = new C64(nextComm, Enumerable.Repeat(rom.RomData, 1), rom.GameInfo, GetCoreSettings(), GetCoreSyncSettings()); diff --git a/BizHawk.Client.Common/config/Binding.cs b/BizHawk.Client.Common/config/Binding.cs index 6cc7bf552f..d5ff054c57 100644 --- a/BizHawk.Client.Common/config/Binding.cs +++ b/BizHawk.Client.Common/config/Binding.cs @@ -248,6 +248,9 @@ namespace BizHawk.Client.Common Bind("SNES", "Toggle OBJ 3"), Bind("SNES", "Toggle OBJ 4"), + Bind("GB", "GB Toggle BG"), + Bind("GB", "GB Toggle Obj"), + Bind("Analog", "Y Up Small", toolTip: "For Virtual Pad"), Bind("Analog", "Y Up Large", toolTip: "For Virtual Pad"), Bind("Analog", "Y Down Small", toolTip: "For Virtual Pad"), diff --git a/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs b/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs index d4585440bf..f1b7e5b7ee 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2MnemonicConstants.cs @@ -116,7 +116,10 @@ namespace BizHawk.Client.Common ["Open"] = 'O', ["Close"] = 'C', - ["Pedal"] = 'P' + ["Pedal"] = 'P', + + ["Next Disk"] = '>', + ["Previous Disk"] = '<' }; private readonly Dictionary> _systemOverrides = new Dictionary> @@ -300,8 +303,6 @@ namespace BizHawk.Client.Common ["Control"] = 'c' , ["Shift"] = '^' , ["Caps Lock"] = 'C' , - ["Next Disk"] = '>' , - ["Previous Disk"] = '<' , ["White Apple"] = 'w' , ["Black Apple"] = 'b' , ["L"] = 'L' , diff --git a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 47495147cb..2f56b1277b 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -2,6 +2,7 @@ using BizHawk.Client.Common; using BizHawk.Emulation.Common.IEmulatorExtensions; +using BizHawk.Emulation.Cores.Nintendo.Gameboy; namespace BizHawk.Client.EmuHawk { @@ -633,6 +634,28 @@ namespace BizHawk.Client.EmuHawk SNES_ToggleOBJ4(); break; + // GB + case "GB Toggle BG": + if (Emulator is Gameboy) + { + var s = ((Gameboy)Emulator).GetSettings(); + s.DisplayBG ^= true; + ((Gameboy)Emulator).PutSettings(s); + GlobalWin.OSD.AddMessage("BG toggled " + (s.DisplayBG ? "on" : "off")); + } + + break; + case "GB Toggle Obj": + if (Emulator is Gameboy) + { + var s = ((Gameboy)Emulator).GetSettings(); + s.DisplayOBJ ^= true; + ((Gameboy)Emulator).PutSettings(s); + GlobalWin.OSD.AddMessage("OBJ toggled " + (s.DisplayBG ? "on" : "off")); + } + + break; + // Analog case "Y Up Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, Global.Config.Analog_SmallChange); diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index c0500a49a9..67bc70a2d6 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2149,7 +2149,7 @@ namespace BizHawk.Client.EmuHawk "PlayStation", "*.cue;*.ccd;*.m3u", "PSX Executables (experimental)", "*.exe", "PSF Playstation Sound File", "*.psf;*.minipsf", - "Commodore 64 (experimental)", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", + "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "SID Commodore 64 Music File", "*.sid;%ARCH%", "Nintendo 64", "*.z64;*.v64;*.n64", "WonderSwan", "*.ws;*.wsc;%ARCH%", @@ -2160,7 +2160,7 @@ namespace BizHawk.Client.EmuHawk } return FormatFilter( - "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.ngp;*.ngc;*.minipsf;*.nsf;%ARCH%", + "Rom Files", "*.nes;*.fds;*.unf;*.sms;*.gg;*.sg;*.gb;*.gbc;*.gba;*.pce;*.sgx;*.bin;*.smd;*.gen;*.md;*.smc;*.sfc;*.a26;*.a78;*.lnx;*.col;*.int;*.rom;*.m3u;*.cue;*.ccd;*.sgb;*.z64;*.v64;*.n64;*.ws;*.wsc;*.xml;*.dsk;*.do;*.po;*.psf;*.ngp;*.ngc;*.prg;*.d64;*.g64;*.minipsf;*.nsf;%ARCH%", "Disc Images", "*.cue;*.ccd;*.m3u", "NES", "*.nes;*.fds;*.unf;*.nsf;%ARCH%", "Super NES", "*.smc;*.sfc;*.xml;%ARCH%", @@ -2184,6 +2184,7 @@ namespace BizHawk.Client.EmuHawk "Apple II", "*.dsk;*.do;*.po;%ARCH%", "Virtual Boy", "*.vb;%ARCH%", "Neo Geo Pocket", "*.ngp;*.ngc;%ARCH%", + "Commodore 64", "*.prg; *.d64, *.g64; *.crt; *.tap;%ARCH%", "All Files", "*.*"); } } diff --git a/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs b/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs index a32b77694c..e7ba5635f5 100644 --- a/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/ProfileConfig.Designer.cs @@ -28,211 +28,222 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProfileConfig)); - this.OkBtn = new System.Windows.Forms.Button(); - this.CancelBtn = new System.Windows.Forms.Button(); - this.ProfileSelectComboBox = new System.Windows.Forms.ComboBox(); - this.SaveScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); - this.SaveLargeScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); - this.AllowUDLRCheckBox = new System.Windows.Forms.CheckBox(); - this.ProfileDialogHelpTexBox = new System.Windows.Forms.RichTextBox(); - this.ProfileOptionsLabel = new System.Windows.Forms.Label(); - this.CustomProfileOptionsLabel = new System.Windows.Forms.Label(); - this.N64CoreSettingsLabel = new System.Windows.Forms.Label(); - this.N64CoreTypeComboBox = new System.Windows.Forms.ComboBox(); - this.N64CoreTypeLabel = new System.Windows.Forms.Label(); - this.OtherOptions = new System.Windows.Forms.Label(); - this.AutoCheckForUpdates = new System.Windows.Forms.CheckBox(); - this.SuspendLayout(); - // - // OkBtn - // - this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.OkBtn.Location = new System.Drawing.Point(290, 337); - this.OkBtn.Name = "OkBtn"; - this.OkBtn.Size = new System.Drawing.Size(60, 23); - this.OkBtn.TabIndex = 0; - this.OkBtn.Text = "&OK"; - this.OkBtn.UseVisualStyleBackColor = true; - this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); - // - // CancelBtn - // - this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.Location = new System.Drawing.Point(356, 337); - this.CancelBtn.Name = "CancelBtn"; - this.CancelBtn.Size = new System.Drawing.Size(60, 23); - this.CancelBtn.TabIndex = 1; - this.CancelBtn.Text = "&Cancel"; - this.CancelBtn.UseVisualStyleBackColor = true; - this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); - // - // ProfileSelectComboBox - // - this.ProfileSelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ProfileSelectComboBox.FormattingEnabled = true; - this.ProfileSelectComboBox.Items.AddRange(new object[] { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProfileConfig)); + this.OkBtn = new System.Windows.Forms.Button(); + this.CancelBtn = new System.Windows.Forms.Button(); + this.ProfileSelectComboBox = new System.Windows.Forms.ComboBox(); + this.SaveScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); + this.SaveLargeScreenshotStatesCheckBox = new System.Windows.Forms.CheckBox(); + this.AllowUDLRCheckBox = new System.Windows.Forms.CheckBox(); + this.ProfileDialogHelpTexBox = new System.Windows.Forms.RichTextBox(); + this.ProfileOptionsLabel = new System.Windows.Forms.Label(); + this.CustomProfileOptionsLabel = new System.Windows.Forms.Label(); + this.N64CoreSettingsLabel = new System.Windows.Forms.Label(); + this.N64CoreTypeComboBox = new System.Windows.Forms.ComboBox(); + this.N64CoreTypeLabel = new System.Windows.Forms.Label(); + this.OtherOptions = new System.Windows.Forms.Label(); + this.AutoCheckForUpdates = new System.Windows.Forms.CheckBox(); + this.SuspendLayout(); + // + // OkBtn + // + this.OkBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.OkBtn.Location = new System.Drawing.Point(290, 302); + this.OkBtn.Name = "OkBtn"; + this.OkBtn.Size = new System.Drawing.Size(60, 23); + this.OkBtn.TabIndex = 0; + this.OkBtn.Text = "&OK"; + this.OkBtn.UseVisualStyleBackColor = true; + this.OkBtn.Click += new System.EventHandler(this.OkBtn_Click); + // + // CancelBtn + // + this.CancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CancelBtn.Location = new System.Drawing.Point(356, 302); + this.CancelBtn.Name = "CancelBtn"; + this.CancelBtn.Size = new System.Drawing.Size(60, 23); + this.CancelBtn.TabIndex = 1; + this.CancelBtn.Text = "&Cancel"; + this.CancelBtn.UseVisualStyleBackColor = true; + this.CancelBtn.Click += new System.EventHandler(this.CancelBtn_Click); + // + // ProfileSelectComboBox + // + this.ProfileSelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ProfileSelectComboBox.FormattingEnabled = true; + this.ProfileSelectComboBox.Items.AddRange(new object[] { "Casual Gaming", "Tool-assisted Speedruns", "N64 Tool-assisted Speedruns", "Longplays", "Custom Profile"}); - this.ProfileSelectComboBox.Location = new System.Drawing.Point(12, 27); - this.ProfileSelectComboBox.Name = "ProfileSelectComboBox"; - this.ProfileSelectComboBox.Size = new System.Drawing.Size(156, 21); - this.ProfileSelectComboBox.TabIndex = 4; - // - // SaveScreenshotStatesCheckBox - // - this.SaveScreenshotStatesCheckBox.AutoSize = true; - this.SaveScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 103); - this.SaveScreenshotStatesCheckBox.Name = "SaveScreenshotStatesCheckBox"; - this.SaveScreenshotStatesCheckBox.Size = new System.Drawing.Size(166, 17); - this.SaveScreenshotStatesCheckBox.TabIndex = 6; - this.SaveScreenshotStatesCheckBox.Text = "Save Screenshot With States"; - this.SaveScreenshotStatesCheckBox.UseVisualStyleBackColor = true; - this.SaveScreenshotStatesCheckBox.Visible = false; - this.SaveScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveScreenshotStatesCheckBox_MouseHover); - // - // SaveLargeScreenshotStatesCheckBox - // - this.SaveLargeScreenshotStatesCheckBox.AutoSize = true; - this.SaveLargeScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 126); - this.SaveLargeScreenshotStatesCheckBox.Name = "SaveLargeScreenshotStatesCheckBox"; - this.SaveLargeScreenshotStatesCheckBox.Size = new System.Drawing.Size(196, 17); - this.SaveLargeScreenshotStatesCheckBox.TabIndex = 7; - this.SaveLargeScreenshotStatesCheckBox.Text = "Save Large Screenshot With States"; - this.SaveLargeScreenshotStatesCheckBox.UseVisualStyleBackColor = true; - this.SaveLargeScreenshotStatesCheckBox.Visible = false; - this.SaveLargeScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveLargeScreenshotStatesCheckBox_MouseHover); - // - // AllowUDLRCheckBox - // - this.AllowUDLRCheckBox.AutoSize = true; - this.AllowUDLRCheckBox.Location = new System.Drawing.Point(12, 149); - this.AllowUDLRCheckBox.Name = "AllowUDLRCheckBox"; - this.AllowUDLRCheckBox.Size = new System.Drawing.Size(111, 17); - this.AllowUDLRCheckBox.TabIndex = 8; - this.AllowUDLRCheckBox.Text = "Allow U+D or L+R"; - this.AllowUDLRCheckBox.UseVisualStyleBackColor = true; - this.AllowUDLRCheckBox.Visible = false; - this.AllowUDLRCheckBox.MouseHover += new System.EventHandler(this.AllowUDLRCheckBox_MouseHover); - // - // ProfileDialogHelpTexBox - // - this.ProfileDialogHelpTexBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ProfileDialogHelpTexBox.Location = new System.Drawing.Point(218, 12); - this.ProfileDialogHelpTexBox.Name = "ProfileDialogHelpTexBox"; - this.ProfileDialogHelpTexBox.ReadOnly = true; - this.ProfileDialogHelpTexBox.Size = new System.Drawing.Size(198, 154); - this.ProfileDialogHelpTexBox.TabIndex = 2; - this.ProfileDialogHelpTexBox.Text = resources.GetString("ProfileDialogHelpTexBox.Text"); - // - // ProfileOptionsLabel - // - this.ProfileOptionsLabel.AutoSize = true; - this.ProfileOptionsLabel.Location = new System.Drawing.Point(9, 9); - this.ProfileOptionsLabel.Name = "ProfileOptionsLabel"; - this.ProfileOptionsLabel.Size = new System.Drawing.Size(75, 13); - this.ProfileOptionsLabel.TabIndex = 3; - this.ProfileOptionsLabel.Text = "Profile Options"; - // - // CustomProfileOptionsLabel - // - this.CustomProfileOptionsLabel.AutoSize = true; - this.CustomProfileOptionsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CustomProfileOptionsLabel.Location = new System.Drawing.Point(9, 85); - this.CustomProfileOptionsLabel.Name = "CustomProfileOptionsLabel"; - this.CustomProfileOptionsLabel.RightToLeft = System.Windows.Forms.RightToLeft.No; - this.CustomProfileOptionsLabel.Size = new System.Drawing.Size(113, 13); - this.CustomProfileOptionsLabel.TabIndex = 5; - this.CustomProfileOptionsLabel.Text = "Custom Profile Options"; - this.CustomProfileOptionsLabel.Visible = false; - // - // N64CoreSettingsLabel - // - this.N64CoreSettingsLabel.AutoSize = true; - this.N64CoreSettingsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.N64CoreSettingsLabel.Location = new System.Drawing.Point(9, 188); - this.N64CoreSettingsLabel.Name = "N64CoreSettingsLabel"; - this.N64CoreSettingsLabel.Size = new System.Drawing.Size(93, 13); - this.N64CoreSettingsLabel.TabIndex = 9; - this.N64CoreSettingsLabel.Text = "N64 Core Settings"; - this.N64CoreSettingsLabel.Visible = false; - // - // N64CoreTypeComboBox - // - this.N64CoreTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.N64CoreTypeComboBox.FormattingEnabled = true; - this.N64CoreTypeComboBox.Items.AddRange(new object[] { + this.ProfileSelectComboBox.Location = new System.Drawing.Point(12, 27); + this.ProfileSelectComboBox.Name = "ProfileSelectComboBox"; + this.ProfileSelectComboBox.Size = new System.Drawing.Size(156, 21); + this.ProfileSelectComboBox.TabIndex = 4; + // + // SaveScreenshotStatesCheckBox + // + this.SaveScreenshotStatesCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.SaveScreenshotStatesCheckBox.AutoSize = true; + this.SaveScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 88); + this.SaveScreenshotStatesCheckBox.Name = "SaveScreenshotStatesCheckBox"; + this.SaveScreenshotStatesCheckBox.Size = new System.Drawing.Size(166, 17); + this.SaveScreenshotStatesCheckBox.TabIndex = 6; + this.SaveScreenshotStatesCheckBox.Text = "Save Screenshot With States"; + this.SaveScreenshotStatesCheckBox.UseVisualStyleBackColor = true; + this.SaveScreenshotStatesCheckBox.Visible = false; + this.SaveScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveScreenshotStatesCheckBox_MouseHover); + // + // SaveLargeScreenshotStatesCheckBox + // + this.SaveLargeScreenshotStatesCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.SaveLargeScreenshotStatesCheckBox.AutoSize = true; + this.SaveLargeScreenshotStatesCheckBox.Location = new System.Drawing.Point(12, 111); + this.SaveLargeScreenshotStatesCheckBox.Name = "SaveLargeScreenshotStatesCheckBox"; + this.SaveLargeScreenshotStatesCheckBox.Size = new System.Drawing.Size(196, 17); + this.SaveLargeScreenshotStatesCheckBox.TabIndex = 7; + this.SaveLargeScreenshotStatesCheckBox.Text = "Save Large Screenshot With States"; + this.SaveLargeScreenshotStatesCheckBox.UseVisualStyleBackColor = true; + this.SaveLargeScreenshotStatesCheckBox.Visible = false; + this.SaveLargeScreenshotStatesCheckBox.MouseHover += new System.EventHandler(this.SaveLargeScreenshotStatesCheckBox_MouseHover); + // + // AllowUDLRCheckBox + // + this.AllowUDLRCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.AllowUDLRCheckBox.AutoSize = true; + this.AllowUDLRCheckBox.Location = new System.Drawing.Point(12, 134); + this.AllowUDLRCheckBox.Name = "AllowUDLRCheckBox"; + this.AllowUDLRCheckBox.Size = new System.Drawing.Size(111, 17); + this.AllowUDLRCheckBox.TabIndex = 8; + this.AllowUDLRCheckBox.Text = "Allow U+D or L+R"; + this.AllowUDLRCheckBox.UseVisualStyleBackColor = true; + this.AllowUDLRCheckBox.Visible = false; + this.AllowUDLRCheckBox.MouseHover += new System.EventHandler(this.AllowUDLRCheckBox_MouseHover); + // + // ProfileDialogHelpTexBox + // + this.ProfileDialogHelpTexBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.ProfileDialogHelpTexBox.Location = new System.Drawing.Point(218, 12); + this.ProfileDialogHelpTexBox.Name = "ProfileDialogHelpTexBox"; + this.ProfileDialogHelpTexBox.ReadOnly = true; + this.ProfileDialogHelpTexBox.Size = new System.Drawing.Size(198, 200); + this.ProfileDialogHelpTexBox.TabIndex = 2; + this.ProfileDialogHelpTexBox.Text = resources.GetString("ProfileDialogHelpTexBox.Text"); + // + // ProfileOptionsLabel + // + this.ProfileOptionsLabel.AutoSize = true; + this.ProfileOptionsLabel.Location = new System.Drawing.Point(9, 9); + this.ProfileOptionsLabel.Name = "ProfileOptionsLabel"; + this.ProfileOptionsLabel.Size = new System.Drawing.Size(75, 13); + this.ProfileOptionsLabel.TabIndex = 3; + this.ProfileOptionsLabel.Text = "Profile Options"; + // + // CustomProfileOptionsLabel + // + this.CustomProfileOptionsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CustomProfileOptionsLabel.AutoSize = true; + this.CustomProfileOptionsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CustomProfileOptionsLabel.Location = new System.Drawing.Point(9, 70); + this.CustomProfileOptionsLabel.Name = "CustomProfileOptionsLabel"; + this.CustomProfileOptionsLabel.RightToLeft = System.Windows.Forms.RightToLeft.No; + this.CustomProfileOptionsLabel.Size = new System.Drawing.Size(113, 13); + this.CustomProfileOptionsLabel.TabIndex = 5; + this.CustomProfileOptionsLabel.Text = "Custom Profile Options"; + this.CustomProfileOptionsLabel.Visible = false; + // + // N64CoreSettingsLabel + // + this.N64CoreSettingsLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreSettingsLabel.AutoSize = true; + this.N64CoreSettingsLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.N64CoreSettingsLabel.Location = new System.Drawing.Point(9, 173); + this.N64CoreSettingsLabel.Name = "N64CoreSettingsLabel"; + this.N64CoreSettingsLabel.Size = new System.Drawing.Size(93, 13); + this.N64CoreSettingsLabel.TabIndex = 9; + this.N64CoreSettingsLabel.Text = "N64 Core Settings"; + this.N64CoreSettingsLabel.Visible = false; + // + // N64CoreTypeComboBox + // + this.N64CoreTypeComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.N64CoreTypeComboBox.FormattingEnabled = true; + this.N64CoreTypeComboBox.Items.AddRange(new object[] { "Pure Interpreter", "Interpreter", "Dynarec"}); - this.N64CoreTypeComboBox.Location = new System.Drawing.Point(79, 206); - this.N64CoreTypeComboBox.Name = "N64CoreTypeComboBox"; - this.N64CoreTypeComboBox.Size = new System.Drawing.Size(99, 21); - this.N64CoreTypeComboBox.TabIndex = 11; - this.N64CoreTypeComboBox.Visible = false; - // - // N64CoreTypeLabel - // - this.N64CoreTypeLabel.AutoSize = true; - this.N64CoreTypeLabel.Location = new System.Drawing.Point(9, 209); - this.N64CoreTypeLabel.Name = "N64CoreTypeLabel"; - this.N64CoreTypeLabel.Size = new System.Drawing.Size(56, 13); - this.N64CoreTypeLabel.TabIndex = 10; - this.N64CoreTypeLabel.Text = "Core Type"; - this.N64CoreTypeLabel.Visible = false; - // - // OtherOptions - // - this.OtherOptions.AutoSize = true; - this.OtherOptions.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.OtherOptions.Location = new System.Drawing.Point(9, 250); - this.OtherOptions.Name = "OtherOptions"; - this.OtherOptions.Size = new System.Drawing.Size(72, 13); - this.OtherOptions.TabIndex = 12; - this.OtherOptions.Text = "Other Options"; - // - // AutoCheckForUpdates - // - this.AutoCheckForUpdates.AutoSize = true; - this.AutoCheckForUpdates.Location = new System.Drawing.Point(12, 268); - this.AutoCheckForUpdates.Name = "AutoCheckForUpdates"; - this.AutoCheckForUpdates.Size = new System.Drawing.Size(345, 17); - this.AutoCheckForUpdates.TabIndex = 13; - this.AutoCheckForUpdates.Text = "Automatically check for and notify me of newer versions of BizHawk"; - this.AutoCheckForUpdates.UseVisualStyleBackColor = true; - // - // ProfileConfig - // - this.AcceptButton = this.OkBtn; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.CancelBtn; - this.ClientSize = new System.Drawing.Size(428, 372); - this.Controls.Add(this.AutoCheckForUpdates); - this.Controls.Add(this.OtherOptions); - this.Controls.Add(this.N64CoreTypeLabel); - this.Controls.Add(this.N64CoreTypeComboBox); - this.Controls.Add(this.N64CoreSettingsLabel); - this.Controls.Add(this.CustomProfileOptionsLabel); - this.Controls.Add(this.ProfileOptionsLabel); - this.Controls.Add(this.ProfileDialogHelpTexBox); - this.Controls.Add(this.AllowUDLRCheckBox); - this.Controls.Add(this.SaveLargeScreenshotStatesCheckBox); - this.Controls.Add(this.SaveScreenshotStatesCheckBox); - this.Controls.Add(this.ProfileSelectComboBox); - this.Controls.Add(this.CancelBtn); - this.Controls.Add(this.OkBtn); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "ProfileConfig"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Profile Config"; - this.Load += new System.EventHandler(this.ProfileConfig_Load); - this.ResumeLayout(false); - this.PerformLayout(); + this.N64CoreTypeComboBox.Location = new System.Drawing.Point(79, 191); + this.N64CoreTypeComboBox.Name = "N64CoreTypeComboBox"; + this.N64CoreTypeComboBox.Size = new System.Drawing.Size(99, 21); + this.N64CoreTypeComboBox.TabIndex = 11; + this.N64CoreTypeComboBox.Visible = false; + // + // N64CoreTypeLabel + // + this.N64CoreTypeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.N64CoreTypeLabel.AutoSize = true; + this.N64CoreTypeLabel.Location = new System.Drawing.Point(9, 194); + this.N64CoreTypeLabel.Name = "N64CoreTypeLabel"; + this.N64CoreTypeLabel.Size = new System.Drawing.Size(56, 13); + this.N64CoreTypeLabel.TabIndex = 10; + this.N64CoreTypeLabel.Text = "Core Type"; + this.N64CoreTypeLabel.Visible = false; + // + // OtherOptions + // + this.OtherOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.OtherOptions.AutoSize = true; + this.OtherOptions.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.OtherOptions.Location = new System.Drawing.Point(9, 261); + this.OtherOptions.Name = "OtherOptions"; + this.OtherOptions.Size = new System.Drawing.Size(72, 13); + this.OtherOptions.TabIndex = 12; + this.OtherOptions.Text = "Other Options"; + // + // AutoCheckForUpdates + // + this.AutoCheckForUpdates.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.AutoCheckForUpdates.AutoSize = true; + this.AutoCheckForUpdates.Location = new System.Drawing.Point(12, 279); + this.AutoCheckForUpdates.Name = "AutoCheckForUpdates"; + this.AutoCheckForUpdates.Size = new System.Drawing.Size(345, 17); + this.AutoCheckForUpdates.TabIndex = 13; + this.AutoCheckForUpdates.Text = "Automatically check for and notify me of newer versions of BizHawk"; + this.AutoCheckForUpdates.UseVisualStyleBackColor = true; + // + // ProfileConfig + // + this.AcceptButton = this.OkBtn; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CancelBtn; + this.ClientSize = new System.Drawing.Size(428, 337); + this.Controls.Add(this.AutoCheckForUpdates); + this.Controls.Add(this.OtherOptions); + this.Controls.Add(this.N64CoreTypeLabel); + this.Controls.Add(this.N64CoreTypeComboBox); + this.Controls.Add(this.N64CoreSettingsLabel); + this.Controls.Add(this.CustomProfileOptionsLabel); + this.Controls.Add(this.ProfileOptionsLabel); + this.Controls.Add(this.ProfileDialogHelpTexBox); + this.Controls.Add(this.AllowUDLRCheckBox); + this.Controls.Add(this.SaveLargeScreenshotStatesCheckBox); + this.Controls.Add(this.SaveScreenshotStatesCheckBox); + this.Controls.Add(this.ProfileSelectComboBox); + this.Controls.Add(this.CancelBtn); + this.Controls.Add(this.OkBtn); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MinimumSize = new System.Drawing.Size(315, 280); + this.Name = "ProfileConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Profile Config"; + this.Load += new System.EventHandler(this.ProfileConfig_Load); + this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.Motherboard.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.Motherboard.cs index 0e5cbd6bb9..e0f51a0b5d 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.Motherboard.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.Motherboard.cs @@ -168,7 +168,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64 public void Flush() { - Sid.Flush(true); + Sid.Flush(false); } // ----------------------------------------- diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.SoundProvider.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.SoundProvider.cs index a9ca808974..b5a431a523 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.SoundProvider.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.SoundProvider.cs @@ -44,8 +44,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS { Flush(true); - nsamp = _outputBufferIndex; - + _outputBuffer = new short[_outputBufferIndex * 2]; for (int i = 0; i < _outputBufferIndex; i++) { _mixer = _outputBuffer_not_filtered[i] + _outputBuffer_filtered[i]; @@ -53,9 +52,6 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS _mixer = (_mixer * _volume) >> 4; _mixer -= _volume << 8; - //Console.Write(_mixer); - //Console.Write(" "); - if (_mixer > 0x7FFF) { _mixer = 0x7FFF; @@ -65,20 +61,15 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS { _mixer = -0x8000; } - /* - if (_mixer < 0) - { - _mixer = 0; - } - */ - _outputBuffer[i * 2] = (short)_mixer; - _outputBuffer[i * 2 + 1] = (short)_mixer; + _outputBuffer[i * 2] = unchecked((short)_mixer); + _outputBuffer[i * 2 + 1] = unchecked((short)_mixer); + } - //Console.WriteLine(" "); - //Console.WriteLine(" "); + samples = _outputBuffer; - + nsamp = _outputBufferIndex; + last_filtered_value = _outputBuffer_filtered[_outputBufferIndex - 1]; _outputBufferIndex = 0; filter_index = 0; } diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.cs index 231c962636..f31731177a 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Sid.cs @@ -38,7 +38,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS private bool _filterSelectLoPass; private bool _filterSelectHiPass; private int _mixer; - private readonly short[] _outputBuffer; + private short[] _outputBuffer; private int[] _outputBuffer_filtered; private int[] _outputBuffer_not_filtered; private int _outputBufferIndex; @@ -91,7 +91,6 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS for (var i = 0; i < 3; i++) _filterEnable[i] = false; - _outputBuffer = new short[sampleRate]; _outputBuffer_filtered = new int[sampleRate]; _outputBuffer_not_filtered = new int[sampleRate]; } @@ -129,7 +128,6 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS public void Flush(bool flushFilter) { - while (_cachedCycles > 0) { _cachedCycles--; @@ -197,7 +195,6 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS } } //here we need to apply filtering to the samples and add them back to the buffer - if (flushFilter) { if (_filterEnable[0] | _filterEnable[1] | _filterEnable[2]) @@ -218,20 +215,21 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS } filter_index = _outputBufferIndex; - last_filtered_value = _outputBuffer_filtered[_outputBufferIndex - 1]; + if (_outputBufferIndex>0) + last_filtered_value = _outputBuffer_filtered[_outputBufferIndex - 1]; } // if the filter is off, keep updating the filter index to the most recent Flush if (!(_filterEnable[0] | _filterEnable[1] | _filterEnable[2])) { filter_index = _outputBufferIndex; - } + } } public void filter_operator() { - double loc_filterFrequency = (double)(_filterFrequency << 2) + 500; + double loc_filterFrequency = (double)(_filterFrequency << 2) + 750; double attenuation; @@ -260,24 +258,13 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS temp_buffer[(int)i] = _outputBuffer_filtered[(int)Math.Floor((i / (nsamp_2-1) * (nsamp - 1))) + filter_index]; } - /* - for (int i = 0; i< nsamp; i++) - { - Console.Write(_outputBuffer_filtered[(int)i + filter_index]); - Console.Write(" "); - } - - Console.WriteLine(" "); - Console.WriteLine("After"); - */ - // now we have everything we need to perform the FFT fft.ComputeForward(temp_buffer); - + // for each element in the frequency list, attenuate it according to the specs - for (int i = 0; i < nsamp_2; i++) + for (int i = 1; i < nsamp_2; i++) { - double freq = (i + 1) * ((double)(880*50)/nsamp); + double freq = i * ((double)(880*50)/nsamp); // add resonance effect // let's assume that frequencies near the peak are doubled in strength at max resonance @@ -296,10 +283,10 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS } // High pass filter - if (_filterSelectHiPass && freq < _filterFrequency) + if (_filterSelectHiPass && freq < loc_filterFrequency) { //attenuated at 12db per octave - attenuation = Math.Log(freq / _filterFrequency, 2); + attenuation = Math.Log(loc_filterFrequency / freq, 2); attenuation = 12 * attenuation; temp_buffer[i] = temp_buffer[i] * Math.Pow(2, -attenuation / 10); } @@ -308,13 +295,13 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS if (_filterSelectBandPass) { //attenuated at 6db per octave - attenuation = Math.Log(freq / _filterFrequency, 2); + attenuation = Math.Log(freq / loc_filterFrequency, 2); attenuation = 6 * attenuation; temp_buffer[i] = temp_buffer[i] * Math.Pow(2, -Math.Abs(attenuation) / 10); } } - + // now transform back into time space and reassemble the attenuated frequency components fft.ComputeReverse(temp_buffer); @@ -335,14 +322,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.MOS if (i<16) _outputBuffer_filtered[(int)i + filter_index] = (int)((last_filtered_value * Math.Pow(15 - i,1) + _outputBuffer_filtered[(int)i + filter_index] * Math.Pow(i,1))/ Math.Pow(15,1)); - - //Console.Write(_outputBuffer_filtered[(int)i + filter_index]); - //Console.Write(" "); } - - //Console.WriteLine(" "); - //Console.WriteLine("Before"); - } // ---------------------------------- diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper015.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper015.cs index 71704b5f9c..e15ac229bf 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper015.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper015.cs @@ -1,5 +1,6 @@ using BizHawk.Common; using BizHawk.Common.NumberExtensions; +using System; namespace BizHawk.Emulation.Cores.Nintendo.NES { @@ -23,12 +24,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES } prg_bank_mask_8k = (Cart.prg_size / 8) - 1; + // not a maskable size (BF=10111111) + // so just set mask to FF and hope for the best + if (Cart.prg_size==192) + { + prg_bank_mask_8k = 0xFF; + } + prg_banks_8k[0] = 0; prg_banks_8k[1] = 1; prg_banks_8k[2] = 2; prg_banks_8k[3] = 3; ApplyMemoryMapMask(prg_bank_mask_8k, prg_banks_8k); + SetMirrorType(EMirrorType.Horizontal); + return true; } @@ -53,7 +63,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES if (mode==2) prg_low_val = prg_low ? 1 : 0; bool mirror = value.Bit(6); - SetMirrorType(!mirror ? EMirrorType.Horizontal : EMirrorType.Vertical); + SetMirrorType(mirror ? EMirrorType.Horizontal : EMirrorType.Vertical); switch(mode) { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs index dbb0f12d35..35034f8aa1 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/Mapper069.cs @@ -108,7 +108,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES case "MAPPER069": break; case "SUNSOFT-5A": //Batman (J) - AssertPrg(128); AssertChr(128); AssertWram(0); AssertVram(0); AssertBattery(false); + AssertPrg(128); AssertChr(128,256); AssertWram(0,8); AssertVram(0); AssertBattery(false); break; case "SUNSOFT-FME-7": //Barcode World (J) AssertPrg(128, 256); AssertChr(128, 256); AssertWram(0, 8); AssertVram(0); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs index db2565d3f2..34d802312c 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/SxROM.cs @@ -425,6 +425,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES NES.VS_dips[7] = (byte)(NES.SyncSettings.VSDipswitches.Dip_Switch_8 ? 1 : 0); break; case "MAPPER001": + case "NES-SIEPROM": // there's no way to define PRG oversize for mapper001 due to how the MMC1 regs work // so 512KB must mean SUROM or SXROM. SUROM is more common, so we try that if (Cart.prg_size > 256) diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IDisassembler.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IDisassembler.cs index 4f6f6a177e..33a6ac9462 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IDisassembler.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IDisassembler.cs @@ -25,13 +25,14 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx public IEnumerable AvailableCpus { get { yield return "M68000"; } - } - - public string Disassemble(MemoryDomain m, uint addr, out int length) + } + + public string Disassemble(MemoryDomain m, uint addr,out int length) { - _disassemblerInstance.ReadWord = (a) => (short)m.PeekUshort(a, m.EndianType == MemoryDomain.Endian.Big); - _disassemblerInstance.ReadByte = (a) => (sbyte)m.PeekByte(a); - _disassemblerInstance.ReadLong = (a) => (int)m.PeekUint(a, m.EndianType == MemoryDomain.Endian.Big); + const uint mask = 0xFFFFFF; + _disassemblerInstance.ReadWord = (a) => (short)m.PeekUshort(a & mask, m.EndianType == MemoryDomain.Endian.Big); + _disassemblerInstance.ReadByte = (a) => (sbyte)m.PeekByte(a & mask); + _disassemblerInstance.ReadLong = (a) => (int)m.PeekUint(a & mask, m.EndianType == MemoryDomain.Endian.Big); var info = _disassemblerInstance.Disassemble((int)addr); length = info.Length; diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IMemoryDomains.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IMemoryDomains.cs index 25a7791484..6036424b1f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IMemoryDomains.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.IMemoryDomains.cs @@ -48,6 +48,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx mm.Add(new MemoryDomainIntPtrSwap16(name, MemoryDomain.Endian.Big, area, size, name != "MD CART" && name != "CD BOOT ROM")); } } + + //it's gross for this not to be the full 32bits. + //Uhh I mean, I guess the bus is physically smaller.. but the cpu's view of it is larger... + //So... I guess no matter what we do, some badness will propagate. This is probably least bad. + //Anyway, the disassembler, for instance, must have been masked down to size, since code can run from FFxxxxxxxx... var m68Bus = new MemoryDomainDelegate("M68K BUS", 0x1000000, MemoryDomain.Endian.Big, delegate (long addr) { diff --git a/libsnes/bsnes/gameboy/cpu/core/core.cpp b/libsnes/bsnes/gameboy/cpu/core/core.cpp index d0e10dc5c8..0926fa1ce7 100644 --- a/libsnes/bsnes/gameboy/cpu/core/core.cpp +++ b/libsnes/bsnes/gameboy/cpu/core/core.cpp @@ -3,13 +3,18 @@ #include "table.cpp" #include "disassembler.cpp" +uint8 CPU::op_fetch() { + cdlInfo.currFlags = eCDLog_Flags_ExecOperand; + uint8 opcode = op_read(r[PC]++); + cdlInfo.currFlags = eCDLog_Flags_CPUData; + return opcode; +} + void CPU::op_xx() { } void CPU::op_cb() { - cdlInfo.currFlags = eCDLog_Flags_ExecOperand; - uint8 opcode = op_read(r[PC]++); - cdlInfo.currFlags = eCDLog_Flags_CPUData; + uint8 opcode = op_fetch(); (this->*opcode_table_cb[opcode])(); } @@ -20,7 +25,7 @@ template void CPU::op_ld_r_r() { } template void CPU::op_ld_r_n() { - r[x] = op_read(r[PC]++); + r[x] = op_fetch(); } template void CPU::op_ld_r_hl() { @@ -32,7 +37,7 @@ template void CPU::op_ld_hl_r() { } void CPU::op_ld_hl_n() { - op_write(r[HL], op_read(r[PC]++)); + op_write(r[HL], op_fetch()); } template void CPU::op_ld_a_rr() { @@ -40,8 +45,8 @@ template void CPU::op_ld_a_rr() { } void CPU::op_ld_a_nn() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); r[A] = op_read((hi << 8) | (lo << 0)); } @@ -50,17 +55,17 @@ template void CPU::op_ld_rr_a() { } void CPU::op_ld_nn_a() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); op_write((hi << 8) | (lo << 0), r[A]); } void CPU::op_ld_a_ffn() { - r[A] = op_read(0xff00 + op_read(r[PC]++)); + r[A] = op_read(0xff00 + op_fetch()); } void CPU::op_ld_ffn_a() { - op_write(0xff00 + op_read(r[PC]++), r[A]); + op_write(0xff00 + op_fetch(), r[A]); } void CPU::op_ld_a_ffc() { @@ -94,13 +99,13 @@ void CPU::op_ldd_a_hl() { //16-bit load commands template void CPU::op_ld_rr_nn() { - r[x] = op_read(r[PC]++) << 0; - r[x] |= op_read(r[PC]++) << 8; + r[x] = op_fetch() << 0; + r[x] |= op_fetch() << 8; } void CPU::op_ld_nn_sp() { - uint16 addr = op_read(r[PC]++) << 0; - addr |= op_read(r[PC]++) << 8; + uint16 addr = op_fetch() << 0; + addr |= op_fetch() << 8; op_write(addr + 0, r[SP] >> 0); op_write(addr + 1, r[SP] >> 8); } @@ -134,7 +139,7 @@ void CPU::opi_add_a(uint8 x) { } template void CPU::op_add_a_r() { opi_add_a(r[x]); } -void CPU::op_add_a_n() { opi_add_a(op_read(r[PC]++)); } +void CPU::op_add_a_n() { opi_add_a(op_fetch()); } void CPU::op_add_a_hl() { opi_add_a(op_read(r[HL])); } void CPU::opi_adc_a(uint8 x) { @@ -148,7 +153,7 @@ void CPU::opi_adc_a(uint8 x) { } template void CPU::op_adc_a_r() { opi_adc_a(r[x]); } -void CPU::op_adc_a_n() { opi_adc_a(op_read(r[PC]++)); } +void CPU::op_adc_a_n() { opi_adc_a(op_fetch()); } void CPU::op_adc_a_hl() { opi_adc_a(op_read(r[HL])); } void CPU::opi_sub_a(uint8 x) { @@ -162,7 +167,7 @@ void CPU::opi_sub_a(uint8 x) { } template void CPU::op_sub_a_r() { opi_sub_a(r[x]); } -void CPU::op_sub_a_n() { opi_sub_a(op_read(r[PC]++)); } +void CPU::op_sub_a_n() { opi_sub_a(op_fetch()); } void CPU::op_sub_a_hl() { opi_sub_a(op_read(r[HL])); } void CPU::opi_sbc_a(uint8 x) { @@ -176,7 +181,7 @@ void CPU::opi_sbc_a(uint8 x) { } template void CPU::op_sbc_a_r() { opi_sbc_a(r[x]); } -void CPU::op_sbc_a_n() { opi_sbc_a(op_read(r[PC]++)); } +void CPU::op_sbc_a_n() { opi_sbc_a(op_fetch()); } void CPU::op_sbc_a_hl() { opi_sbc_a(op_read(r[HL])); } void CPU::opi_and_a(uint8 x) { @@ -188,7 +193,7 @@ void CPU::opi_and_a(uint8 x) { } template void CPU::op_and_a_r() { opi_and_a(r[x]); } -void CPU::op_and_a_n() { opi_and_a(op_read(r[PC]++)); } +void CPU::op_and_a_n() { opi_and_a(op_fetch()); } void CPU::op_and_a_hl() { opi_and_a(op_read(r[HL])); } void CPU::opi_xor_a(uint8 x) { @@ -200,7 +205,7 @@ void CPU::opi_xor_a(uint8 x) { } template void CPU::op_xor_a_r() { opi_xor_a(r[x]); } -void CPU::op_xor_a_n() { opi_xor_a(op_read(r[PC]++)); } +void CPU::op_xor_a_n() { opi_xor_a(op_fetch()); } void CPU::op_xor_a_hl() { opi_xor_a(op_read(r[HL])); } void CPU::opi_or_a(uint8 x) { @@ -212,7 +217,7 @@ void CPU::opi_or_a(uint8 x) { } template void CPU::op_or_a_r() { opi_or_a(r[x]); } -void CPU::op_or_a_n() { opi_or_a(op_read(r[PC]++)); } +void CPU::op_or_a_n() { opi_or_a(op_fetch()); } void CPU::op_or_a_hl() { opi_or_a(op_read(r[HL])); } void CPU::opi_cp_a(uint8 x) { @@ -225,7 +230,7 @@ void CPU::opi_cp_a(uint8 x) { } template void CPU::op_cp_a_r() { opi_cp_a(r[x]); } -void CPU::op_cp_a_n() { opi_cp_a(op_read(r[PC]++)); } +void CPU::op_cp_a_n() { opi_cp_a(op_fetch()); } void CPU::op_cp_a_hl() { opi_cp_a(op_read(r[HL])); } template void CPU::op_inc_r() { @@ -307,7 +312,7 @@ template void CPU::op_dec_rr() { void CPU::op_add_sp_n() { op_io(); op_io(); - signed n = (int8)op_read(r[PC]++); + signed n = (int8)op_fetch(); r.f.z = 0; r.f.n = 0; r.f.h = ((r[SP] & 0x0f) + (n & 0x0f)) > 0x0f; @@ -317,7 +322,7 @@ void CPU::op_add_sp_n() { void CPU::op_ld_hl_sp_n() { op_io(); - signed n = (int8)op_read(r[PC]++); + signed n = (int8)op_fetch(); r.f.z = 0; r.f.n = 0; r.f.h = ((r[SP] & 0x0f) + (n & 0x0f)) > 0x0f; @@ -596,8 +601,8 @@ void CPU::op_ei() { //jump commands void CPU::op_jp_nn() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); r[PC] = (hi << 8) | (lo << 0); op_io(); } @@ -607,8 +612,8 @@ void CPU::op_jp_hl() { } template void CPU::op_jp_f_nn() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); if(r.f[x] == y) { r[PC] = (hi << 8) | (lo << 0); op_io(); @@ -616,13 +621,13 @@ template void CPU::op_jp_f_nn() { } void CPU::op_jr_n() { - int8 n = op_read(r[PC]++); + int8 n = op_fetch(); r[PC] += n; op_io(); } template void CPU::op_jr_f_n() { - int8 n = op_read(r[PC]++); + int8 n = op_fetch(); if(r.f[x] == y) { r[PC] += n; op_io(); @@ -630,8 +635,8 @@ template void CPU::op_jr_f_n() { } void CPU::op_call_nn() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); op_write(--r[SP], r[PC] >> 8); op_write(--r[SP], r[PC] >> 0); r[PC] = (hi << 8) | (lo << 0); @@ -639,8 +644,8 @@ void CPU::op_call_nn() { } template void CPU::op_call_f_nn() { - uint8 lo = op_read(r[PC]++); - uint8 hi = op_read(r[PC]++); + uint8 lo = op_fetch(); + uint8 hi = op_fetch(); if(r.f[x] == y) { op_write(--r[SP], r[PC] >> 8); op_write(--r[SP], r[PC] >> 0); diff --git a/libsnes/bsnes/gameboy/cpu/core/core.hpp b/libsnes/bsnes/gameboy/cpu/core/core.hpp index 85ebeb1d7c..5d94892cb5 100644 --- a/libsnes/bsnes/gameboy/cpu/core/core.hpp +++ b/libsnes/bsnes/gameboy/cpu/core/core.hpp @@ -1,145 +1,146 @@ -#include "registers.hpp" -void (CPU::*opcode_table[256])(); -void (CPU::*opcode_table_cb[256])(); -void initialize_opcode_table(); - -void op_xx(); -void op_cb(); - -//8-bit load commands -template void op_ld_r_r(); -template void op_ld_r_n(); -template void op_ld_r_hl(); -template void op_ld_hl_r(); -void op_ld_hl_n(); -template void op_ld_a_rr(); -void op_ld_a_nn(); -template void op_ld_rr_a(); -void op_ld_nn_a(); -void op_ld_a_ffn(); -void op_ld_ffn_a(); -void op_ld_a_ffc(); -void op_ld_ffc_a(); -void op_ldi_hl_a(); -void op_ldi_a_hl(); -void op_ldd_hl_a(); -void op_ldd_a_hl(); - -//16-bit load commands -template void op_ld_rr_nn(); -void op_ld_nn_sp(); -void op_ld_sp_hl(); -template void op_push_rr(); -template void op_pop_rr(); - -//8-bit arithmetic commands -void opi_add_a(uint8 x); -template void op_add_a_r(); -void op_add_a_n(); -void op_add_a_hl(); - -void opi_adc_a(uint8 x); -template void op_adc_a_r(); -void op_adc_a_n(); -void op_adc_a_hl(); - -void opi_sub_a(uint8 x); -template void op_sub_a_r(); -void op_sub_a_n(); -void op_sub_a_hl(); - -void opi_sbc_a(uint8 x); -template void op_sbc_a_r(); -void op_sbc_a_n(); -void op_sbc_a_hl(); - -void opi_and_a(uint8 x); -template void op_and_a_r(); -void op_and_a_n(); -void op_and_a_hl(); - -void opi_xor_a(uint8 x); -template void op_xor_a_r(); -void op_xor_a_n(); -void op_xor_a_hl(); - -void opi_or_a(uint8 x); -template void op_or_a_r(); -void op_or_a_n(); -void op_or_a_hl(); - -void opi_cp_a(uint8 x); -template void op_cp_a_r(); -void op_cp_a_n(); -void op_cp_a_hl(); - -template void op_inc_r(); -void op_inc_hl(); -template void op_dec_r(); -void op_dec_hl(); -void op_daa(); -void op_cpl(); - -//16-bit arithmetic commands -template void op_add_hl_rr(); -template void op_inc_rr(); -template void op_dec_rr(); -void op_add_sp_n(); -void op_ld_hl_sp_n(); - -//rotate/shift commands -void op_rlca(); -void op_rla(); -void op_rrca(); -void op_rra(); -template void op_rlc_r(); -void op_rlc_hl(); -template void op_rl_r(); -void op_rl_hl(); -template void op_rrc_r(); -void op_rrc_hl(); -template void op_rr_r(); -void op_rr_hl(); -template void op_sla_r(); -void op_sla_hl(); -template void op_swap_r(); -void op_swap_hl(); -template void op_sra_r(); -void op_sra_hl(); -template void op_srl_r(); -void op_srl_hl(); - -//single-bit commands -template void op_bit_n_r(); -template void op_bit_n_hl(); -template void op_set_n_r(); -template void op_set_n_hl(); -template void op_res_n_r(); -template void op_res_n_hl(); - -//control commands -void op_ccf(); -void op_scf(); -void op_nop(); -void op_halt(); -void op_stop(); -void op_di(); -void op_ei(); - -//jump commands -void op_jp_nn(); -void op_jp_hl(); -template void op_jp_f_nn(); -void op_jr_n(); -template void op_jr_f_n(); -void op_call_nn(); -template void op_call_f_nn(); -void op_ret(); -template void op_ret_f(); -void op_reti(); -template void op_rst_n(); - -//disassembler.cpp -string disassemble(uint16 pc); -string disassemble_opcode(uint16 pc); -string disassemble_opcode_cb(uint16 pc); +#include "registers.hpp" +void (CPU::*opcode_table[256])(); +void (CPU::*opcode_table_cb[256])(); +void initialize_opcode_table(); + +void op_xx(); +void op_cb(); +uint8 op_fetch(); + +//8-bit load commands +template void op_ld_r_r(); +template void op_ld_r_n(); +template void op_ld_r_hl(); +template void op_ld_hl_r(); +void op_ld_hl_n(); +template void op_ld_a_rr(); +void op_ld_a_nn(); +template void op_ld_rr_a(); +void op_ld_nn_a(); +void op_ld_a_ffn(); +void op_ld_ffn_a(); +void op_ld_a_ffc(); +void op_ld_ffc_a(); +void op_ldi_hl_a(); +void op_ldi_a_hl(); +void op_ldd_hl_a(); +void op_ldd_a_hl(); + +//16-bit load commands +template void op_ld_rr_nn(); +void op_ld_nn_sp(); +void op_ld_sp_hl(); +template void op_push_rr(); +template void op_pop_rr(); + +//8-bit arithmetic commands +void opi_add_a(uint8 x); +template void op_add_a_r(); +void op_add_a_n(); +void op_add_a_hl(); + +void opi_adc_a(uint8 x); +template void op_adc_a_r(); +void op_adc_a_n(); +void op_adc_a_hl(); + +void opi_sub_a(uint8 x); +template void op_sub_a_r(); +void op_sub_a_n(); +void op_sub_a_hl(); + +void opi_sbc_a(uint8 x); +template void op_sbc_a_r(); +void op_sbc_a_n(); +void op_sbc_a_hl(); + +void opi_and_a(uint8 x); +template void op_and_a_r(); +void op_and_a_n(); +void op_and_a_hl(); + +void opi_xor_a(uint8 x); +template void op_xor_a_r(); +void op_xor_a_n(); +void op_xor_a_hl(); + +void opi_or_a(uint8 x); +template void op_or_a_r(); +void op_or_a_n(); +void op_or_a_hl(); + +void opi_cp_a(uint8 x); +template void op_cp_a_r(); +void op_cp_a_n(); +void op_cp_a_hl(); + +template void op_inc_r(); +void op_inc_hl(); +template void op_dec_r(); +void op_dec_hl(); +void op_daa(); +void op_cpl(); + +//16-bit arithmetic commands +template void op_add_hl_rr(); +template void op_inc_rr(); +template void op_dec_rr(); +void op_add_sp_n(); +void op_ld_hl_sp_n(); + +//rotate/shift commands +void op_rlca(); +void op_rla(); +void op_rrca(); +void op_rra(); +template void op_rlc_r(); +void op_rlc_hl(); +template void op_rl_r(); +void op_rl_hl(); +template void op_rrc_r(); +void op_rrc_hl(); +template void op_rr_r(); +void op_rr_hl(); +template void op_sla_r(); +void op_sla_hl(); +template void op_swap_r(); +void op_swap_hl(); +template void op_sra_r(); +void op_sra_hl(); +template void op_srl_r(); +void op_srl_hl(); + +//single-bit commands +template void op_bit_n_r(); +template void op_bit_n_hl(); +template void op_set_n_r(); +template void op_set_n_hl(); +template void op_res_n_r(); +template void op_res_n_hl(); + +//control commands +void op_ccf(); +void op_scf(); +void op_nop(); +void op_halt(); +void op_stop(); +void op_di(); +void op_ei(); + +//jump commands +void op_jp_nn(); +void op_jp_hl(); +template void op_jp_f_nn(); +void op_jr_n(); +template void op_jr_f_n(); +void op_call_nn(); +template void op_call_f_nn(); +void op_ret(); +template void op_ret_f(); +void op_reti(); +template void op_rst_n(); + +//disassembler.cpp +string disassemble(uint16 pc); +string disassemble_opcode(uint16 pc); +string disassemble_opcode_cb(uint16 pc); diff --git a/libsnes/bsnes/gameboy/cpu/timing/timing.cpp b/libsnes/bsnes/gameboy/cpu/timing/timing.cpp index cc5e3abd1a..fc03b16f62 100644 --- a/libsnes/bsnes/gameboy/cpu/timing/timing.cpp +++ b/libsnes/bsnes/gameboy/cpu/timing/timing.cpp @@ -1,90 +1,96 @@ -//70224 clocks/frame -// 456 clocks/scanline -// 154 scanlines/frame - -#ifdef CPU_CPP - -#include "opcode.cpp" - -void CPU::add_clocks(unsigned clocks) { - system.clocks_executed += clocks; - if(system.sgb()) scheduler.exit(Scheduler::ExitReason::StepEvent); - - status.clock += clocks; - if(status.clock >= 4 * 1024 * 1024) { - status.clock -= 4 * 1024 * 1024; - cartridge.mbc3.second(); - } - - //4MHz / N(hz) - 1 = mask - if((status.clock & 15) == 0) timer_262144hz(); - if((status.clock & 63) == 0) timer_65536hz(); - if((status.clock & 255) == 0) timer_16384hz(); - if((status.clock & 511) == 0) timer_8192hz(); - if((status.clock & 1023) == 0) timer_4096hz(); - - lcd.clock -= clocks * lcd.frequency; - if(lcd.clock <= 0) co_switch(scheduler.active_thread = lcd.thread); - - apu.clock -= clocks * apu.frequency; - if(apu.clock <= 0) co_switch(scheduler.active_thread = apu.thread); -} - -void CPU::timer_262144hz() { - if(status.timer_enable && status.timer_clock == 1) { - if(++status.tima == 0) { - status.tima = status.tma; - interrupt_raise(Interrupt::Timer); - } - } -} - -void CPU::timer_65536hz() { - if(status.timer_enable && status.timer_clock == 2) { - if(++status.tima == 0) { - status.tima = status.tma; - interrupt_raise(Interrupt::Timer); - } - } -} - -void CPU::timer_16384hz() { - if(status.timer_enable && status.timer_clock == 3) { - if(++status.tima == 0) { - status.tima = status.tma; - interrupt_raise(Interrupt::Timer); - } - } - - status.div++; -} - -void CPU::timer_8192hz() { - if(status.serial_transfer && status.serial_clock) { - if(--status.serial_bits == 0) { - status.serial_transfer = 0; - interrupt_raise(Interrupt::Serial); - } - } -} - -void CPU::timer_4096hz() { - if(status.timer_enable && status.timer_clock == 0) { - if(++status.tima == 0) { - status.tima = status.tma; - interrupt_raise(Interrupt::Timer); - } - } -} - -void CPU::hblank() { - if(status.dma_mode == 1 && status.dma_length) { - for(unsigned n = 0; n < 16; n++) { - bus.write(status.dma_target++, bus.read(status.dma_source++)); - add_clocks(4); - } - status.dma_length -= 16; - } -} - -#endif +//70224 clocks/frame +// 456 clocks/scanline +// 154 scanlines/frame + +#ifdef CPU_CPP + +#include "opcode.cpp" + +void CPU::add_clocks(unsigned clocks) { + system.clocks_executed += clocks; + + auto flags = cdlInfo.currFlags; + + if(system.sgb()) scheduler.exit(Scheduler::ExitReason::StepEvent); + cdlInfo.currFlags = flags; + + status.clock += clocks; + if(status.clock >= 4 * 1024 * 1024) { + status.clock -= 4 * 1024 * 1024; + cartridge.mbc3.second(); + } + + //4MHz / N(hz) - 1 = mask + if((status.clock & 15) == 0) timer_262144hz(); + if((status.clock & 63) == 0) timer_65536hz(); + if((status.clock & 255) == 0) timer_16384hz(); + if((status.clock & 511) == 0) timer_8192hz(); + if((status.clock & 1023) == 0) timer_4096hz(); + + lcd.clock -= clocks * lcd.frequency; + if(lcd.clock <= 0) co_switch(scheduler.active_thread = lcd.thread); + cdlInfo.currFlags = flags; + + apu.clock -= clocks * apu.frequency; + if(apu.clock <= 0) co_switch(scheduler.active_thread = apu.thread); + cdlInfo.currFlags = flags; +} + +void CPU::timer_262144hz() { + if(status.timer_enable && status.timer_clock == 1) { + if(++status.tima == 0) { + status.tima = status.tma; + interrupt_raise(Interrupt::Timer); + } + } +} + +void CPU::timer_65536hz() { + if(status.timer_enable && status.timer_clock == 2) { + if(++status.tima == 0) { + status.tima = status.tma; + interrupt_raise(Interrupt::Timer); + } + } +} + +void CPU::timer_16384hz() { + if(status.timer_enable && status.timer_clock == 3) { + if(++status.tima == 0) { + status.tima = status.tma; + interrupt_raise(Interrupt::Timer); + } + } + + status.div++; +} + +void CPU::timer_8192hz() { + if(status.serial_transfer && status.serial_clock) { + if(--status.serial_bits == 0) { + status.serial_transfer = 0; + interrupt_raise(Interrupt::Serial); + } + } +} + +void CPU::timer_4096hz() { + if(status.timer_enable && status.timer_clock == 0) { + if(++status.tima == 0) { + status.tima = status.tma; + interrupt_raise(Interrupt::Timer); + } + } +} + +void CPU::hblank() { + if(status.dma_mode == 1 && status.dma_length) { + for(unsigned n = 0; n < 16; n++) { + bus.write(status.dma_target++, bus.read(status.dma_source++)); + add_clocks(4); + } + status.dma_length -= 16; + } +} + +#endif diff --git a/output/dll/libsneshawk-32-compatibility.dll b/output/dll/libsneshawk-32-compatibility.dll index 655096c12a..59493c3722 100644 Binary files a/output/dll/libsneshawk-32-compatibility.dll and b/output/dll/libsneshawk-32-compatibility.dll differ diff --git a/output/dll/libsneshawk-32-performance.dll b/output/dll/libsneshawk-32-performance.dll index 3801e894fb..b74645c983 100644 Binary files a/output/dll/libsneshawk-32-performance.dll and b/output/dll/libsneshawk-32-performance.dll differ