Merge branch 'master' into waterbox2

Conflicts:
	BizHawk.Client.EmuHawk/MainForm.Events.cs
	BizHawk.Client.EmuHawk/MainForm.cs
This commit is contained in:
adelikat 2017-06-04 18:18:11 -05:00
commit 4ae0b2cd22
21 changed files with 948 additions and 877 deletions

View File

@ -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

View File

@ -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

View File

@ -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<C64>(), GetCoreSyncSettings<C64>());

View File

@ -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"),

View File

@ -116,7 +116,10 @@ namespace BizHawk.Client.Common
["Open"] = 'O',
["Close"] = 'C',
["Pedal"] = 'P'
["Pedal"] = 'P',
["Next Disk"] = '>',
["Previous Disk"] = '<'
};
private readonly Dictionary<string, Dictionary<string, char>> _systemOverrides = new Dictionary<string, Dictionary<string, char>>
@ -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' ,

View File

@ -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);

View File

@ -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", "*.*");
}
}

View File

@ -28,211 +28,222 @@
/// </summary>
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();
}

View File

@ -168,7 +168,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
public void Flush()
{
Sid.Flush(true);
Sid.Flush(false);
}
// -----------------------------------------

View File

@ -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;
}

View File

@ -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");
}
// ----------------------------------

View File

@ -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)
{

View File

@ -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);

View File

@ -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)

View File

@ -25,13 +25,14 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
public IEnumerable<string> 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;

View File

@ -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)
{

View File

@ -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<unsigned x, unsigned y> void CPU::op_ld_r_r() {
}
template<unsigned x> void CPU::op_ld_r_n() {
r[x] = op_read(r[PC]++);
r[x] = op_fetch();
}
template<unsigned x> void CPU::op_ld_r_hl() {
@ -32,7 +37,7 @@ template<unsigned x> 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<unsigned x> void CPU::op_ld_a_rr() {
@ -40,8 +45,8 @@ template<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> 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<unsigned x> void CPU::op_inc_r() {
@ -307,7 +312,7 @@ template<unsigned x> 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<unsigned x, bool y> 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<unsigned x, bool y> 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<unsigned x, bool y> 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<unsigned x, bool y> 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<unsigned x, bool y> 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);

View File

@ -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<unsigned x, unsigned y> void op_ld_r_r();
template<unsigned x> void op_ld_r_n();
template<unsigned x> void op_ld_r_hl();
template<unsigned x> void op_ld_hl_r();
void op_ld_hl_n();
template<unsigned x> void op_ld_a_rr();
void op_ld_a_nn();
template<unsigned x> 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<unsigned x> void op_ld_rr_nn();
void op_ld_nn_sp();
void op_ld_sp_hl();
template<unsigned x> void op_push_rr();
template<unsigned x> void op_pop_rr();
//8-bit arithmetic commands
void opi_add_a(uint8 x);
template<unsigned x> void op_add_a_r();
void op_add_a_n();
void op_add_a_hl();
void opi_adc_a(uint8 x);
template<unsigned x> void op_adc_a_r();
void op_adc_a_n();
void op_adc_a_hl();
void opi_sub_a(uint8 x);
template<unsigned x> void op_sub_a_r();
void op_sub_a_n();
void op_sub_a_hl();
void opi_sbc_a(uint8 x);
template<unsigned x> void op_sbc_a_r();
void op_sbc_a_n();
void op_sbc_a_hl();
void opi_and_a(uint8 x);
template<unsigned x> void op_and_a_r();
void op_and_a_n();
void op_and_a_hl();
void opi_xor_a(uint8 x);
template<unsigned x> void op_xor_a_r();
void op_xor_a_n();
void op_xor_a_hl();
void opi_or_a(uint8 x);
template<unsigned x> void op_or_a_r();
void op_or_a_n();
void op_or_a_hl();
void opi_cp_a(uint8 x);
template<unsigned x> void op_cp_a_r();
void op_cp_a_n();
void op_cp_a_hl();
template<unsigned x> void op_inc_r();
void op_inc_hl();
template<unsigned x> void op_dec_r();
void op_dec_hl();
void op_daa();
void op_cpl();
//16-bit arithmetic commands
template<unsigned x> void op_add_hl_rr();
template<unsigned x> void op_inc_rr();
template<unsigned x> 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<unsigned x> void op_rlc_r();
void op_rlc_hl();
template<unsigned x> void op_rl_r();
void op_rl_hl();
template<unsigned x> void op_rrc_r();
void op_rrc_hl();
template<unsigned x> void op_rr_r();
void op_rr_hl();
template<unsigned x> void op_sla_r();
void op_sla_hl();
template<unsigned x> void op_swap_r();
void op_swap_hl();
template<unsigned x> void op_sra_r();
void op_sra_hl();
template<unsigned x> void op_srl_r();
void op_srl_hl();
//single-bit commands
template<unsigned b, unsigned x> void op_bit_n_r();
template<unsigned b> void op_bit_n_hl();
template<unsigned b, unsigned x> void op_set_n_r();
template<unsigned b> void op_set_n_hl();
template<unsigned b, unsigned x> void op_res_n_r();
template<unsigned b> 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<unsigned x, bool y> void op_jp_f_nn();
void op_jr_n();
template<unsigned x, bool y> void op_jr_f_n();
void op_call_nn();
template<unsigned x, bool y> void op_call_f_nn();
void op_ret();
template<unsigned x, bool y> void op_ret_f();
void op_reti();
template<unsigned n> 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<unsigned x, unsigned y> void op_ld_r_r();
template<unsigned x> void op_ld_r_n();
template<unsigned x> void op_ld_r_hl();
template<unsigned x> void op_ld_hl_r();
void op_ld_hl_n();
template<unsigned x> void op_ld_a_rr();
void op_ld_a_nn();
template<unsigned x> 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<unsigned x> void op_ld_rr_nn();
void op_ld_nn_sp();
void op_ld_sp_hl();
template<unsigned x> void op_push_rr();
template<unsigned x> void op_pop_rr();
//8-bit arithmetic commands
void opi_add_a(uint8 x);
template<unsigned x> void op_add_a_r();
void op_add_a_n();
void op_add_a_hl();
void opi_adc_a(uint8 x);
template<unsigned x> void op_adc_a_r();
void op_adc_a_n();
void op_adc_a_hl();
void opi_sub_a(uint8 x);
template<unsigned x> void op_sub_a_r();
void op_sub_a_n();
void op_sub_a_hl();
void opi_sbc_a(uint8 x);
template<unsigned x> void op_sbc_a_r();
void op_sbc_a_n();
void op_sbc_a_hl();
void opi_and_a(uint8 x);
template<unsigned x> void op_and_a_r();
void op_and_a_n();
void op_and_a_hl();
void opi_xor_a(uint8 x);
template<unsigned x> void op_xor_a_r();
void op_xor_a_n();
void op_xor_a_hl();
void opi_or_a(uint8 x);
template<unsigned x> void op_or_a_r();
void op_or_a_n();
void op_or_a_hl();
void opi_cp_a(uint8 x);
template<unsigned x> void op_cp_a_r();
void op_cp_a_n();
void op_cp_a_hl();
template<unsigned x> void op_inc_r();
void op_inc_hl();
template<unsigned x> void op_dec_r();
void op_dec_hl();
void op_daa();
void op_cpl();
//16-bit arithmetic commands
template<unsigned x> void op_add_hl_rr();
template<unsigned x> void op_inc_rr();
template<unsigned x> 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<unsigned x> void op_rlc_r();
void op_rlc_hl();
template<unsigned x> void op_rl_r();
void op_rl_hl();
template<unsigned x> void op_rrc_r();
void op_rrc_hl();
template<unsigned x> void op_rr_r();
void op_rr_hl();
template<unsigned x> void op_sla_r();
void op_sla_hl();
template<unsigned x> void op_swap_r();
void op_swap_hl();
template<unsigned x> void op_sra_r();
void op_sra_hl();
template<unsigned x> void op_srl_r();
void op_srl_hl();
//single-bit commands
template<unsigned b, unsigned x> void op_bit_n_r();
template<unsigned b> void op_bit_n_hl();
template<unsigned b, unsigned x> void op_set_n_r();
template<unsigned b> void op_set_n_hl();
template<unsigned b, unsigned x> void op_res_n_r();
template<unsigned b> 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<unsigned x, bool y> void op_jp_f_nn();
void op_jr_n();
template<unsigned x, bool y> void op_jr_f_n();
void op_call_nn();
template<unsigned x, bool y> void op_call_f_nn();
void op_ret();
template<unsigned x, bool y> void op_ret_f();
void op_reti();
template<unsigned n> void op_rst_n();
//disassembler.cpp
string disassemble(uint16 pc);
string disassemble_opcode(uint16 pc);
string disassemble_opcode_cb(uint16 pc);

View File

@ -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