mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
feat: align gap analysis coherence, add 7 BIOS files, unsourceable field
cross_reference.py: add bios_mode/agnostic/load_from filters, archive grouping, unsourceable field support. verify.py: case-insensitive by_name lookup, storage:release in_repo, unsourceable skip, trailing slash fix. generate_site.py: enriched all_declared, platform-relevant profile filtering, proper in_repo resolution on emulator pages, acknowledged gaps section. New BIOS: delta2.rom (XRoar), tilekey.dat + sprites.sif (NXEngine), Gram Kracker.ctg + cf7+.ctg + ti-pcard.ctg (ti99sim), desc.dat (SDLPAL). Profiles: hle_fallback on tilekey.dat/key.txt, unsourceable on 7 files with source-verified reasons.
This commit is contained in:
BIN
bios/Dragon/Dragon/delta2.rom
Normal file
BIN
bios/Dragon/Dragon/delta2.rom
Normal file
Binary file not shown.
BIN
bios/Other/NXEngine/nxengine/data/sprites.sif
Normal file
BIN
bios/Other/NXEngine/nxengine/data/sprites.sif
Normal file
Binary file not shown.
BIN
bios/Other/NXEngine/nxengine/tilekey.dat
Normal file
BIN
bios/Other/NXEngine/nxengine/tilekey.dat
Normal file
Binary file not shown.
BIN
bios/Texas Instruments/TI-99/Gram Kracker.ctg
Normal file
BIN
bios/Texas Instruments/TI-99/Gram Kracker.ctg
Normal file
Binary file not shown.
BIN
bios/Texas Instruments/TI-99/cf7+.ctg
Normal file
BIN
bios/Texas Instruments/TI-99/cf7+.ctg
Normal file
Binary file not shown.
BIN
bios/Texas Instruments/TI-99/ti-pcard.ctg
Normal file
BIN
bios/Texas Instruments/TI-99/ti-pcard.ctg
Normal file
Binary file not shown.
301
bios/sdlpal/desc.dat
Normal file
301
bios/sdlpal/desc.dat
Normal file
@@ -0,0 +1,301 @@
|
|||||||
|
本說明檔由 Eric-Chen 整理
|
||||||
|
http://hi.baidu.com/eric_chensoft
|
||||||
|
|
||||||
|
適用於 SDLPAL (http://sdlpal.codeplex.com)
|
||||||
|
|
||||||
|
3d(觀音符)=以觀音聖水書寫的靈符。*HP+150
|
||||||
|
3e(聖靈符)=具有女媧神強大靈力的符咒。*全體HP+300
|
||||||
|
3f(金剛符)=使用後如有金鐘鐵罩護身。*增加防禦七回合。
|
||||||
|
40(淨衣符)=具有祛病、驅邪的法力,*可解赤毒、屍毒、瘴毒。
|
||||||
|
41(靈心符)=具有寧神、驅邪的靈效,*可解瘋魔、妖縛、昏睡、封咒。
|
||||||
|
42(天師符)=茅山道士用來對付妖怪的符咒。
|
||||||
|
43(風靈符)=產生風系法術的符咒。
|
||||||
|
44(雷靈符)=產生雷系法術的符咒。
|
||||||
|
45(水靈符)=產生冰系法術的符咒。
|
||||||
|
46(火靈符)=產生火系法術的符咒。
|
||||||
|
47(土靈符)=產生土系法術的符咒。
|
||||||
|
48(舍利子)=得道高僧佛身火化後,*結成如珠狀的東西。*最大真氣值+3
|
||||||
|
49(玉菩提)=墨玉菩提樹的種籽。*最大真氣值+5
|
||||||
|
4a(銀杏子)=銀杏樹所結的白色核果。*最大體力值+3
|
||||||
|
4b(糯米)=糯稻的米,富於黏性,*可解屍毒。
|
||||||
|
4c(糯米糕)=糯米加麥芽、甜豆所煮的米糕,*可解屍毒。HP+25
|
||||||
|
4d(鹽巴)=取海水煎熬或曝曬而成,用來調*味,有時可解毒。
|
||||||
|
4e(茶葉蛋)=雞蛋水煮後,以茶葉入味。*便宜而好吃的食物。*HPMP+15
|
||||||
|
4f(雞蛋)=便宜而常見的食物。*HPMP+10
|
||||||
|
50(糖葫蘆)=以竹簽串李子,裹上麥芽糖,*形如葫蘆,故稱「糖葫蘆」。*HPMP+22
|
||||||
|
51(蠟燭)=用蠟製的點火照明的東西。
|
||||||
|
52(符紙)=泛黃的空白符紙。
|
||||||
|
53(檀香)=含有檀香料的一種香,點燃用以*薰衣、薰室內,驅逐惡氣。
|
||||||
|
54(大蒜)=具有除穢、祛病、護身等功能,*可以入藥。*戰鬥中服食避毒率+30%
|
||||||
|
56(酒)=以米加酒麴釀製而成,*可解赤毒。HPMP+15
|
||||||
|
57(雄黃)=天然產的礦物,塊狀、色黃,*可解赤毒。
|
||||||
|
58(雄黃酒)=一點點的雄黃,撒在酒中,*習俗在端午節喝這種酒;*可解赤毒、瘴毒。
|
||||||
|
59(九節菖蒲)=一種水草,葉子狹長如劍,*可解赤毒、屍毒、瘴毒、毒絲。
|
||||||
|
5a(驅魔香)=以大蒜、雄黃、艾草、檀香等混合*煉製而成,點燃後發出魔物厭惡*的氣味,使魔物不敢接近。
|
||||||
|
5b(十里香)=以生血、內藏、肉桂等煉製,*點燃後散發出吸引魔物的香味。
|
||||||
|
5c(水果)=養顏美容、幫助消化。*HPMP+20
|
||||||
|
5d(燒肉)=以炭火熏烤的醬汁豬肉。*HPMP+30
|
||||||
|
5e(醃肉)=用鹽巴醃漬的豬肉。*HP+85
|
||||||
|
5f(還魂香)=點燃後會散發奇異的香氣,*能牽引離體魂魄回歸軀體。*HP恢復10%
|
||||||
|
60(贖魂燈)=以蓮燈作法與鬼差交涉,*贖回死者魂魄。*HP恢復30%
|
||||||
|
61(孟婆湯)=消除死者罪孽業障,*使死者復活。*HP恢復50%
|
||||||
|
62(天香續命露)=以大量珍貴秘藥精煉而成,*具有肉白骨、藥死人之奇效。*HP恢復100%
|
||||||
|
63(止血草)=嚼碎後敷在傷口上,可迅速止血。*HP+50
|
||||||
|
64(行軍丹)=活血順氣的藥丸。*HP+100
|
||||||
|
65(金創藥)=上等刀傷藥,去腐生肌。*HP+200
|
||||||
|
66(蟠果)=西王母蟠桃園遺種,*籽小肉厚汁液香甜。*HP+450
|
||||||
|
67(紫菁玉蓉膏)=依宮廷秘方,采珍貴藥材煉製,*是療傷藥的極品。*HP+1000
|
||||||
|
68(鼠兒果)=產於山間野地,多為鼠類所食,*經人發現移種平地。*MP+36
|
||||||
|
69(還神丹)=寧神醒腦的藥丸。*MP+50
|
||||||
|
6a(龍涎草)=經蛟龍唾涎灌溉而生,*具有補中益氣之療效。*MP+110
|
||||||
|
6b(靈山仙芝)=寄生於枯木上的菌類,俗稱瑞草,*具有養氣培元之神效。*MP+260
|
||||||
|
6c(雪蓮子)=白玉雪蓮之蓮子,其形珠圓玉潤,*服食者真氣充盈,經脈通暢。*MP+400
|
||||||
|
6d(天仙玉露)=觀音菩薩淨瓶甘露水,*人間難求的仙界聖藥。*MP+700
|
||||||
|
6e(神仙茶)=神仙廣成子養生延壽之秘方。*HPMP+440
|
||||||
|
6f(靈葫仙丹)=修道隱士所煉丹藥。*HPMP+250
|
||||||
|
70(試煉果)=藥王神農氏嘗百草時,*最早發現的珍藥。*靈力最大值+3
|
||||||
|
71(女媧石)=女神媧皇煉石補天後,*所遺之五色石。*防禦最大值+3
|
||||||
|
72(八仙石)=八仙石洞中所采集之丹礦。*防禦最大值+2
|
||||||
|
73(蜂巢)=蜜蜂的窩,可以拿來丟敵人。
|
||||||
|
74(屍腐肉)=沾染屍毒的腐敗肉塊。*毒性: 屍毒
|
||||||
|
75(毒蛇卵)=煉蠱的材料。*毒性: 赤毒
|
||||||
|
76(毒蠍卵)=煉蠱的材料。*毒性: 赤毒
|
||||||
|
77(毒蟾卵)=煉蠱的材料。*毒性: 赤毒
|
||||||
|
78(蜘蛛卵)=煉蠱的材料。*毒性: 赤毒
|
||||||
|
79(蜈蚣卵)=煉蠱的材料。*毒性: 赤毒
|
||||||
|
7a(鶴頂紅)=七大毒蠱,中毒後每回合損血,*至死方休。*解藥: 血海棠 致命藥引: 孔雀膽
|
||||||
|
7b(孔雀膽)=七大毒蠱,中毒後每回合損血,*至死方休。*解藥: 金蠶蠱 致命藥引: 鶴頂紅
|
||||||
|
7c(血海棠)=七大毒蠱,中毒後每回合損血,*至死方休。*解藥: 斷腸草 致命藥引: 三屍蠱
|
||||||
|
7d(斷腸草)=七大毒蠱,中毒後每回合損血,*至死方休。*解藥: 三屍蠱 致命藥引: 金蠶蠱
|
||||||
|
7e(醍醐香)=紫葉小白花,散發濃鬱香氣,*聞到香氣,便如酒醉一般。*妖縛四回合。
|
||||||
|
7f(忘魂花)=青藍色小花,散發淡淡香氣,*聞到香氣,便會渾然忘我、*昏睡三回合。
|
||||||
|
80(紫罌粟)=服食者會產生幻覺,敵我不分。*瘋魔四回合。
|
||||||
|
81(鬼枯藤)=具毒性的黑褐色野生藤蔓,*可解赤毒、屍毒、瘴毒、毒絲。*HP-30
|
||||||
|
82(腹蛇涎)=腹蛇的毒涎。*毒性: 瘴毒
|
||||||
|
83(蜂王蜜)=蜜蜂所釀最好的蜜。*HPMP+150
|
||||||
|
84(雪蛤蟆)=生長於天山極寒之地,僅銅錢般大*小。武術最大值+2 防禦最大值+2*靈力最大值+2
|
||||||
|
85(赤蠍粉)=以整只赤尾蠍研磨成的粉末,*可使敵方全體中赤毒。
|
||||||
|
86(化屍水)=碰到傷口血水,便腐蝕潰爛,*受傷者沾染立斃。
|
||||||
|
87(迷魂香)=點燃蒙汗藥散發迷香,*可使敵人昏睡五回合。
|
||||||
|
88(九陰散)=服食前若已中毒,可補滿體力,*但無法解毒;*服食前若沒中毒,即刻斃命。
|
||||||
|
89(無影毒)=七大毒蠱,中毒後立即發作,*耗損一半體力。
|
||||||
|
8a(三屍蠱)=七大毒蠱;中毒後,潛伏片刻即*會發作,毒性非常猛烈。*解藥: 孔雀膽 致命藥引: 血海棠
|
||||||
|
8b(金蠶蠱)=七大毒蠱,中毒後每回合損血,*至死方休。*解藥: 鶴頂紅 致命藥引: 斷腸草
|
||||||
|
8c(幻蠱)=分泌的毒液會影響人的腦部,*使人敵我不分,*瘋魔五回合。
|
||||||
|
8d(隱蠱)=如帶刺甲蟲,將其身體捏破,*散發之煙霧可助我方隱匿形跡。*全體隱形三回合。
|
||||||
|
8e(冰蠶蠱)=以雪山冰洞內所產所冰蠶培養的*蠱蟲,可做為攻擊道具。
|
||||||
|
8f(火蠶蠱)=以麒麟炎洞內所產火蠶所培養的*蠱蟲,可做為攻擊道具。
|
||||||
|
90(食妖蟲)=寄生宿主吸取靈氣,九回合後,*可煉成靈蠱。
|
||||||
|
91(靈蠱)=以稀有藥物豢養的雌蠱。*全體MP+250
|
||||||
|
92(爆烈蠱)=預先將法力灌輸在蠱蟲體內,*投擲敵人產生強烈爆炸。
|
||||||
|
93(碧血蠶)=寄生宿主吸取血液,九回合後,*可煉成赤血蠶。
|
||||||
|
94(蠱)=巫師施法所需的材料。
|
||||||
|
95(赤血蠶)=吸血維生的毒蠱,*服食後體力完全恢復。
|
||||||
|
96(金蠶王)=蠱中之王,月夜散發金色磷光,*服食後可提升修行。
|
||||||
|
97(引路蜂)=跟隨引路蜂而行,*可回到迷宮起點。
|
||||||
|
98(傀儡蟲)=湘西雲貴巫師用以控制屍體,*可使死者繼續攻擊九回合。
|
||||||
|
99(梅花鏢)=形如梅花的暗器。*敵人HP-90
|
||||||
|
9a(袖裏劍)=暗藏在衣袖中的飛劍。*敵人HP-170
|
||||||
|
9b(透骨釘)=精鐵打造、三寸長的鐵針是*很鋒利的暗器。*敵人HP-250
|
||||||
|
9c(雷火珠)=填充火藥的鐵珠,投擲撞擊*後會爆裂傷人。*敵人HP-135
|
||||||
|
9d(毒龍砂)=以腹蛇毒煉製成的細砂,*可使敵方全體中瘴毒。*HP-55
|
||||||
|
9e(吸星鎖)=鐵製鋼抓,尾端系以靈蠱蠶絲,*可吸取敵人HP180
|
||||||
|
9f(纏魂絲)=千年蜘蛛的毒絲。*毒性: 毒絲
|
||||||
|
a0(捆仙繩)=施有咒術的粗麻繩,*可令妖怪動彈不得,*妖縛五回合。
|
||||||
|
a1(無影神針)=細如牛毛,傷人於無形。*敵人HP-400
|
||||||
|
a2(血玲瓏)=紅色鐵球,四周裝有鋒利刀片。*敵方全體HP-300
|
||||||
|
a3(長鞭)=生牛皮製的七尺軟鞭。*武術+20 身法+20
|
||||||
|
a4(九截鞭)=以鐵節鐵環組成的九節軟鞭。*武術+66 身法+33
|
||||||
|
a5(金蛇鞭)=以蛇皮絞以金絲編織成九尺軟鞭。*武術+99 身法+60
|
||||||
|
a6(木劍)=用木材雕刻的劍,小孩玩具。*武術+2 身法+3
|
||||||
|
a7(短刀)=一尺半長的鈍刀,可用來劈*砍木材。*武術+6 身法-5
|
||||||
|
a8(鐵劍)=一般鐵匠大量生產的劍,打造*得頗為粗劣。*武術+10 防禦+3
|
||||||
|
a9(大刀)=刀身寬而長,刃部鋒利,*背部厚重。*武術+16 防禦+1
|
||||||
|
aa(仙女劍)=一尺長的雙手劍,適合女子*使用,可發出兩次攻擊。*武術+8 防禦+5
|
||||||
|
ab(長劍)=一般鐵匠接受訂造的劍,*比鐵劍精致鋒利。*武術+25
|
||||||
|
ac(紅纓刀)=精鋼打造,背厚刃薄,*刀柄飾以紅色長穗。*武術+38
|
||||||
|
ad(越女劍)=劍身寬僅兩指,*專為女子打造。*武術+22 身法+8
|
||||||
|
ae(戒刀)=佛門中人練武所用之刀,*嚴禁傷生染血。*武術+55 防禦+5 靈力+10
|
||||||
|
af(玄鐵劍)=以珍貴的黑色鐵礦打造而成,*堅韌鋒利但極笨重。*武術+70 身法-20 靈力-15 防禦+9
|
||||||
|
b0(芙蓉刀)=百花派獨門兵器雙手彎刀,*可發出兩次攻擊。*武術+16 身法+8
|
||||||
|
b1(柳月刀)=細長鐵製雙刀,形如柳葉新月,*可發出兩次攻擊。*武術+28 身法+12 防禦+3
|
||||||
|
b2(青鋒劍)=名家精心打造的劍,輕薄鋒利。*武術+75 身法+15
|
||||||
|
b3(苗刀)=苗族戰士所慣用的佩刀。*武術+70 身法+32
|
||||||
|
b4(鳳鳴刀)=出鞘之聲有如鳳鳴,*故稱「鳳鳴刀」。武術+124*防禦+9 身法+32 靈力+16
|
||||||
|
b5(雙龍劍)=與一般劍長度相同的雙手劍,*可發出兩次攻擊。*武術+62 防禦+9 身法+9
|
||||||
|
b6(玉女劍)=鴛鴦雙劍中的雌劍,與金童劍為*一對。武術+100 靈力+15*身法+20 吉運+30
|
||||||
|
b7(金童劍)=鴛鴦雙劍中的雄劍,與玉女劍為*一對。武術+100 吉運+30*身法+20 靈力+15 防禦+3
|
||||||
|
b8(龍泉劍)=龍泉的水質非常適合造劍,*當地生產的劍叫龍泉劍。*武術+88 身法+20 吉運+22
|
||||||
|
b9(鬼牙刀)=苗刀的一種,刀尖倒鉤,*又稱「勾魂刀」。*武術+90 身法+26 吉運-9
|
||||||
|
ba(七星劍)=劍身鑲嵌七顆金黃寶石,可吸取北*斗七星之精氣。武術+120 靈力+50*身法+32 吉運+33 防禦+7
|
||||||
|
bb(玄冥寶刀)=可連續攻擊敵方全體兩次,*傳說是魔族的邪異兵器。*武術+98 身法+98 吉運+98
|
||||||
|
bc(巫月神刀)=苗族拜月教鎮教之寶。*武術+132 靈力+55 防禦+29*身法+45 吉運+36
|
||||||
|
bd(盤龍劍)=鑄劍宗師歐冶子所煉寶劍,劍身鑄*有青龍盤柱。武術+134 靈力+37*防禦+8 身法+40 吉運+32
|
||||||
|
be(太極劍)=道祖張陵之隨身配劍,天師仗以降*妖伏魔。武術+158 靈力+90*防禦+35 身法+50 吉運+33
|
||||||
|
bf(無塵劍)=上古神劍,指天天崩、劃地地裂。*武術+200 防禦+20 身法+77*吉運+33
|
||||||
|
c0(青蛇杖)=雕刻雙蛇纏繞的綠玉杖。*武術+50 靈力+62 防禦+6
|
||||||
|
c1(鬼頭杖)=苗族巫師役鬼煉蠱之法器,*頭顱中囚禁四十九條生魂。*武術+70 靈力+88 防禦+11
|
||||||
|
c2(冥蛇杖)=來自冥界之魔杖,號令群邪,*杖頭鑲嵌千年蛇王內丹。*武術+88 靈力+120 防禦+22
|
||||||
|
c3(天蛇杖)=女神媧皇煉化五色石所用法杖。*武術+100 靈力+150 防禦+33*吉運+36
|
||||||
|
c4(頭巾)=以剩餘布料縫製的頭巾。*防禦+1
|
||||||
|
c5(青絲巾)=青色的絲織髮帶。*防禦+2
|
||||||
|
c6(髮飾)=錫製的女子頭飾。*防禦+3
|
||||||
|
c7(銀釵)=純銀的髮釵。*防禦+5
|
||||||
|
c8(翠玉金釵)=鑲有綠翡翠的黃金髮釵。*防禦+9
|
||||||
|
c9(皮帽)=羊皮縫製的帽子,非常保暖。*防禦+4
|
||||||
|
ca(珍珠冠)=以珍珠縫綴的紅色錦冠。*防禦+13
|
||||||
|
cb(天師帽)=道士做法時所戴的帽子。*防禦+11 靈力+3
|
||||||
|
cc(紫金冠)=紫金冠以薄銅片鑄成,*外殼以紫飾金而成。*防禦+18
|
||||||
|
cd(天蠶絲帶)=以極珍貴的天蠶絲織成,*輕薄柔韌。*防禦+25 身法+8
|
||||||
|
ce(鳳凰羽毛)=金翅鳳凰腹部的銀色羽毛。*防禦+7 身法+24 吉運+9
|
||||||
|
cf(沖天冠)=天兵神將遺留的護頭金盔,*頂插雙雉尾羽。*防禦+28法+5 靈力+3 吉運+3
|
||||||
|
d0(布袍)=粗布縫製的交領長袖白袍。*防禦+3
|
||||||
|
d1(藤甲)=以荊藤編製的護甲。*防禦+7
|
||||||
|
d2(絲衣)=以蠶絲紡織而成,輕柔透氣。*防禦+3 身法+4
|
||||||
|
d3(鐵鎖衣)=以鐵環扣鎖製成的護甲。*防禦+13 身法-10
|
||||||
|
d4(夜行衣)=暗黑色的緊身衣靠,*便於隱匿夜色之中。*防禦+18 身法+12 吉運+12
|
||||||
|
d5(青銅甲)=青銅製的獸面紋胸護甲。*防禦+22 身法-13
|
||||||
|
d6(羅漢袍)=修行得道的和尚所穿的衣袍。*防禦+10 吉運+10 靈力+10
|
||||||
|
d7(鐵鱗甲)=以魚鱗形甲片編綴而成的鎧甲。*防禦+28 身法-4
|
||||||
|
d8(天師道袍)=天師道祖修行時所穿的法衣。*防禦+33 靈力+28
|
||||||
|
d9(精鐵戰甲)=以橢圓形的精鐵片編綴而成,*光亮照人,*又稱「光明鎧」。防禦+40 身法-7
|
||||||
|
da(金縷衣)=以金線穿玉片編製而成*又稱「金縷玉衣」。*防禦+7 身法-10
|
||||||
|
db(鬼針冑)=長滿倒刺的銅製盔甲。*防禦+55 武術+9
|
||||||
|
dc(天蠶寶衣)=以極珍貴的天蠶絲織成,*輕薄柔韌。*防禦+66
|
||||||
|
dd(青龍寶甲)=龍鱗編綴而成,世間絕頂*戰甲。*防禦+90
|
||||||
|
de(白虎之鎧)=以罕見的白虎皮製成的皮甲。*防禦+80
|
||||||
|
df(玄武戰袍)=以玄武的殼甲鍛造而成,*材質堅韌色黑而無光澤。*防禦+80
|
||||||
|
e0(朱雀戰衣)= 以南方火鳥的羽毛編織而成。*防禦+80
|
||||||
|
e1(披風)=無領對襟、無袖的披衣,*俗稱「斗篷」。*防禦+2
|
||||||
|
e2(護肩)=披於肩臂上的鎧甲,*又稱「掩膊」。*防禦+6
|
||||||
|
e3(武士披風)=將帥所穿有護肩軟甲的戰帔。*防禦+12
|
||||||
|
e4(護心鏡)=防護前胸要害的披甲,形如*銅鏡。防禦+20
|
||||||
|
e5(霓虹羽衣)=東海霓虹鳥的羽毛織成的*披肩。*防禦+18 身法+18 吉運+18
|
||||||
|
e6(菩提袈裟)=高等僧衣,又名「無垢衣」,*多為高僧與長老所穿。*防禦+31 靈力+16
|
||||||
|
e7(虎紋披風)=以整張千年白額虎虎皮製成,*毛皮呈黃色,帶黑色橫紋。*防禦+40
|
||||||
|
e8(鳳紋披風)=相傳為織女縫製的披風,*繡鳳織錦,光彩奪目。*防禦+52
|
||||||
|
e9(龍紋披風)=布面繡雙龍搶珠之彩紋,*有神龍護體之功效。*防禦+60
|
||||||
|
ea(聖靈披風)=巫后的遺物,潛藏神聖的力*量。防禦+66 靈力+30
|
||||||
|
eb(草鞋)=以藺草編織而成,十分便宜,*穿起來很輕便,適宜行走。*防禦+1
|
||||||
|
ec(木鞋)=以木材削製而成,鞋面刻有吉祥*圖案。*防禦+2
|
||||||
|
ed(布靴)=粗布縫製的長統靴。*防禦+3 身法+2
|
||||||
|
ee(繡花鞋)=以絲緞縫製,鞋面繡有龍頭鳳尾*花。*防禦+4
|
||||||
|
ef(鐵履)=鞋底夾縫鐵片,較普通布靴重。*防禦+6
|
||||||
|
f0(武僧靴)=羅漢僧練武所穿的布靴。*防禦+8 身法+6
|
||||||
|
f1(鹿皮靴)=鞋面以鹿皮毛縫製,質地輕柔,*行動可如鹿般迅捷。*防禦+11 身法+9
|
||||||
|
f2(疾風靴)=以薄如雲霧的蟬紗織成,*助穿者疾行如風。*防禦+14 身法+17
|
||||||
|
f3(蓮花靴)=飾以金蓮的長統繡花鞋。*防禦+18 身法+5
|
||||||
|
f4(虎皮靴)=取自東北虎的皮毛縫製。*防禦+21 身法+16
|
||||||
|
f5(龍鱗靴)=以龍鱗編綴而成。*防禦+25 身法+12
|
||||||
|
f6(步雲靴)=雲中子羽化登仙後,*所遺留之神靴。*防禦+28 身法+20
|
||||||
|
f7(魅影神靴)=妖魔附體,身如鬼魅。*防禦+32 身法+26
|
||||||
|
f8(香袋)=填充木屑、香粉的小布包,*常用來裝飾兼避邪的物品。*靈力+8 吉運+9 避毒率+20%
|
||||||
|
f9(護腕)=粗布縫製之腕部護套。*防禦+2
|
||||||
|
fa(鐵護腕)=精鋼打造之腕部護環。*防禦+5
|
||||||
|
fb(竹笛)=青竹削製之七孔橫笛。*吉運+18
|
||||||
|
fc(珍珠)=蚌類所生的球狀物,*是珍貴的裝飾品。*吉運+20
|
||||||
|
fd(玉鐲)=戴在手臂上的玉製環形首飾。*防禦+5 吉運+9
|
||||||
|
fe(唸珠)=佛教徒記數唸經咒或佛號次數的*計算珠。*靈力+5 防禦+5
|
||||||
|
ff(銀針)=用銀針刺肉,以痛楚喚醒神智,*可解妖縛、昏睡、瘋魔。HP-9
|
||||||
|
100(銅鏡)=青銅鑄造的照容用具。*防禦+6
|
||||||
|
101(八卦鏡)=用朱砂在鏡面畫八卦,*可借用自然界的靈氣。*靈力+8 防禦+8
|
||||||
|
102(幹坤鏡)=銅鏡背面鑄有太極乾坤圖,*可吸取天地陰陽靈氣。*靈力+14 防禦+14
|
||||||
|
103(豹牙手環)=收集花豹的利牙串成的手環。*防禦+9
|
||||||
|
104(聖靈珠)=女媧末族祖傳寶物,曆代聖魂歸依*之所。合體法術: 武神*靈力+128 防禦+15 避毒率+35%
|
||||||
|
105(金罡珠)=大羅金仙修煉千年的內丹。*防禦+90
|
||||||
|
106(五毒珠)=成精蟾怪的內丹,*佩戴後百毒不侵。
|
||||||
|
107(風靈珠)=女媧降伏風神後,禁制風神於內的*寶珠。合體法術: 風卷殘雲*避風率+50%
|
||||||
|
108(雷靈珠)=女媧降伏雷神後,禁制雷神於內的*寶珠。合體法術: 狂雷*避雷率+50%
|
||||||
|
109(水靈珠)=女媧降伏雪妖後,禁制雪妖於內的*寶珠。合體法術: 風雪冰天*避水率+50%
|
||||||
|
10a(火靈珠)=女媧降伏火神後,禁制火神於內的*寶珠。合體法術: 煉獄真火*避火率+50%
|
||||||
|
10b(土靈珠)=女媧降伏山神後,禁制山神於內的*寶珠。合體法術: 泰山壓頂*避土率+50% 可用於脫離洞窟
|
||||||
|
10c(煉蠱皿)=可將毒蛇卵、毒蠍卵、毒蟾卵、*蜘蛛卵、蜈蚣卵煉成蠱。
|
||||||
|
10d(壽葫蘆)=戰鬥中發出真氣補充持有者,*有提神振氣之奇效。*HPMP每回合+20
|
||||||
|
10e(紫金葫蘆)=收妖煉丹,需與靈葫咒配合。
|
||||||
|
10f(布包)=長安富商的行李。
|
||||||
|
110(桂花酒)=摻了水的酒。
|
||||||
|
111(紫金丹)=水月宮最珍貴的仙丹靈藥。
|
||||||
|
112(玉佛珠)=西方如來檀前的唸珠,經佛法薰陶*變化通靈。合體法術: 佛法無邊*靈力+88 防禦+18 避毒率+30%
|
||||||
|
113(金鳳凰蛋殼)=藥材。
|
||||||
|
114(火眼麒麟角)=藥材。
|
||||||
|
116(毒龍膽)=千年毒蛟的膽,以毒攻毒可解天下*所有的毒。*若沒中毒吃毒龍膽會斃命。
|
||||||
|
117(破天錘)=用來敲碎仙靈島石像的法寶。
|
||||||
|
118(包袱)=嬸嬸替逍遙收拾的行李。
|
||||||
|
119(銀杏果)=藥材。
|
||||||
|
11a(鯉魚)=藥材。
|
||||||
|
11b(鹿茸)=藥材。
|
||||||
|
11c(釣竿)=借來的,記得還!
|
||||||
|
11d(捕獸夾)=獵戶放置的捕鹿的道具。
|
||||||
|
11e(六神丹)=韓家藥鋪的祖傳婦女良藥。
|
||||||
|
11f(情書)=士兵委托的情書。
|
||||||
|
120(玉佩)=婢女委托的玉佩。
|
||||||
|
121(石鑰匙)=開啟隱龍窟後洞石門的鑰匙。
|
||||||
|
122(天書)=書中仙附身於書中。
|
||||||
|
123(香蕉)=誰喜歡吃香蕉?
|
||||||
|
124(鳳紋手絹)=某人交付的信物。
|
||||||
|
125(手卷)=李逍遙的父母親所留下的武功*秘笈。
|
||||||
|
126(蘆葦漂)=可載人漂浮水面的草席。
|
||||||
|
127(夢蛇)=女媧族的變身魔法,*能力大幅提升。
|
||||||
|
128(氣療術)=我方單人HP+75
|
||||||
|
129(觀音咒)=我方單人HP+150
|
||||||
|
12a(凝神歸元)=我方單人HP+220
|
||||||
|
12b(元靈歸心術)=我方單人HP+500
|
||||||
|
12c(五氣朝元)=我方全體HP+300
|
||||||
|
12d(還魂咒)=我方單人復活*HP恢復10%
|
||||||
|
12e(贖魂)=我方單人復活*HP恢復30%
|
||||||
|
12f(回夢)=敵方單人昏睡四回合。
|
||||||
|
130(奪魂)=吸取敵人魂魄,中者立斃。
|
||||||
|
131(鬼降)=敵方單人瘋魔四回合。
|
||||||
|
132(淨衣咒)=解赤毒、屍毒、瘴毒。
|
||||||
|
133(冰心訣)=解妖縛、昏睡、瘋魔、咒封。
|
||||||
|
134(靈血咒)=解赤毒、屍毒、瘴毒、毒絲、*麻痹、催眠、瘋魔、咒封。
|
||||||
|
135(金剛咒)=使用後如有金鐘鐵罩護身,*增加防禦七回合。
|
||||||
|
136(真元護體)=使用後如有鐵鎧金甲護體,*增加防禦九回合。
|
||||||
|
137(天罡戰氣)=七回合內,使用武器攻擊,*威力提升。
|
||||||
|
138(風咒)=風系初級法術,*攻擊敵方單人。
|
||||||
|
139(旋風咒)=風系中級法術,*攻擊敵方全體。
|
||||||
|
13a(風卷殘雲)=風系高級法術,*攻擊敵方全體。
|
||||||
|
13b(風神)=召喚風神,*最強的風系法術。
|
||||||
|
13c(雷咒)=雷系初級法術,*攻擊敵方單人。
|
||||||
|
13d(五雷咒)=雷系中級法術,*攻擊敵方全體。
|
||||||
|
13e(天雷破)=雷系高級法術,*攻擊敵方單人。
|
||||||
|
13f(狂雷)=雷系高級法術,*攻擊敵方全體。
|
||||||
|
140(雷神)=召喚雷神,*最強的雷系法術。
|
||||||
|
141(冰咒)=冰系初級法術,*攻擊敵方單人。
|
||||||
|
142(玄冰咒)=冰系中級法術,*攻擊敵方全體。
|
||||||
|
143(風雪冰天)=冰系高級法術,*攻擊敵方全體。
|
||||||
|
144(風雪冰天)=冰系高級法術,*攻擊敵方全體。
|
||||||
|
145(雪妖)=召喚雪妖,*最強的冰系法術。
|
||||||
|
147(炎咒)=火系初級法術,*攻擊敵方單人。
|
||||||
|
148(三昧真火)=火系中級法術,*攻擊敵方全體。
|
||||||
|
149(炎殺咒)=火系高級法術,*攻擊敵方單人。
|
||||||
|
14a(煉獄真火)=火系高級法術,*攻擊敵方全體。
|
||||||
|
14c(土咒)=土系初級法術,*攻擊敵方單人。
|
||||||
|
14d(飛岩術)=土系中級法術,*攻擊敵方全體。
|
||||||
|
14e(地裂天崩)=土系中級法術,*攻擊敵方全體。
|
||||||
|
14f(泰山壓頂)=土系高級法術,*攻擊敵方全體。
|
||||||
|
150(山神)=召喚山神,*最強的土系法術。
|
||||||
|
151(氣劍指)=蘇州林家的家傳武藝,*攻擊敵方全體。
|
||||||
|
154(一陽指)=聚勁食指,發出剛猛的氣芒,*攻擊敵方單人。
|
||||||
|
155(七訣劍氣)=以指代劍,發出裂地劍氣*攻擊敵方全體。
|
||||||
|
156(斬龍訣)=以雄渾氣勁橫掃群魔,*攻擊敵方全體。
|
||||||
|
158(銅錢鏢)=將金錢當做暗器,攻擊敵方*單人,一次使用五百文錢。
|
||||||
|
159(禦劍術)=蜀山派入門劍法,*攻擊敵方單人。
|
||||||
|
15a(萬劍訣)=劍芒如雨直落,*攻擊敵方全體。
|
||||||
|
15c(天劍)=人劍合一,身化利劍,*攻擊敵方全體。
|
||||||
|
15d(天師符法)=茅山道士用來對付妖怪*的符法,攻擊敵方單人。
|
||||||
|
15f(武神)=召喚武神,神刀斬魔。
|
||||||
|
160(三屍咒)=下蠱攻擊敵方單人,*有蠱時才能使用。
|
||||||
|
161(禦蜂術)=以笛音指揮毒蜂,*攻擊敵方全體。
|
||||||
|
162(萬蟻蝕象)=操縱食人毒蟻,*攻擊敵方單人。
|
||||||
|
16b(劍神)=召喚劍神,萬劍齊飛。
|
||||||
|
172(酒神)=召喚酒神,*用全身真氣爆發攻擊敵人。
|
||||||
|
174(萬蠱蝕天)=放蠱攻擊敵方全體,*有蠱時才能使用。
|
||||||
|
176(爆炸蠱)=預先將法力灌輸在蠱蟲體*內,投擲敵人產生強烈爆炸。
|
||||||
|
179(飛龍探雲手)=偷取敵人的物品或金錢。
|
||||||
|
180(靈葫咒)=當妖物體力低於四分之一時,*可將其收入紫金葫蘆中煉藥。
|
||||||
|
185(火神)=召喚火神,*最強的火系法術。
|
||||||
|
186(醉仙望月步)=五回合內,使用武器攻擊,*可連續出手兩次。
|
||||||
|
188(金蟬脫殼)=戰鬥中逃跑。
|
||||||
|
189(仙風雲體術)=身法暫時提升九回合。
|
||||||
|
18a(乾坤一擲)=使用金錢鏢攻擊敵方全體,*會耗損大量金錢。
|
||||||
127
database.json
127
database.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"generated_at": "2026-04-01T23:11:49Z",
|
"generated_at": "2026-04-02T12:45:07Z",
|
||||||
"total_files": 7296,
|
"total_files": 7302,
|
||||||
"total_size": 9190327032,
|
"total_size": 9190488848,
|
||||||
"files": {
|
"files": {
|
||||||
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
|
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
|
||||||
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
|
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
|
||||||
@@ -30004,8 +30004,8 @@
|
|||||||
"adler32": "0cb8a7e3"
|
"adler32": "0cb8a7e3"
|
||||||
},
|
},
|
||||||
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60": {
|
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60": {
|
||||||
"path": "bios/Dragon/Dragon/deltados.rom",
|
"path": "bios/Dragon/Dragon/delta2.rom",
|
||||||
"name": "deltados.rom",
|
"name": "delta2.rom",
|
||||||
"size": 8192,
|
"size": 8192,
|
||||||
"sha1": "686ebb5f39dd4fc907a0b748867d0a022d2f1a60",
|
"sha1": "686ebb5f39dd4fc907a0b748867d0a022d2f1a60",
|
||||||
"md5": "024eac3db20f1b5cf98c30a0e4743201",
|
"md5": "024eac3db20f1b5cf98c30a0e4743201",
|
||||||
@@ -40453,6 +40453,26 @@
|
|||||||
"crc32": "0c0644ba",
|
"crc32": "0c0644ba",
|
||||||
"adler32": "c7b3f901"
|
"adler32": "c7b3f901"
|
||||||
},
|
},
|
||||||
|
"73acccee601b56a2b7f624b0227fa7e1d662ef4b": {
|
||||||
|
"path": "bios/Other/NXEngine/nxengine/data/sprites.sif",
|
||||||
|
"name": "sprites.sif",
|
||||||
|
"size": 59482,
|
||||||
|
"sha1": "73acccee601b56a2b7f624b0227fa7e1d662ef4b",
|
||||||
|
"md5": "ebc011b876b9a4755fe44fa45d366996",
|
||||||
|
"sha256": "e80d72041dc20ddffb3fa7e22e4c51acb06d95e81058d5eeb888b5bf308424ea",
|
||||||
|
"crc32": "4e42c240",
|
||||||
|
"adler32": "f7421b99"
|
||||||
|
},
|
||||||
|
"74c14b15dbc2f36c81d2ad9cb65e2893298415da": {
|
||||||
|
"path": "bios/Other/NXEngine/nxengine/tilekey.dat",
|
||||||
|
"name": "tilekey.dat",
|
||||||
|
"size": 1028,
|
||||||
|
"sha1": "74c14b15dbc2f36c81d2ad9cb65e2893298415da",
|
||||||
|
"md5": "d74d5681ad8d825f5c229db1ee931bbb",
|
||||||
|
"sha256": "e84df7374f8eff014458c6d8611c44f03b39b8d1a7abf30a2347dbb085b55232",
|
||||||
|
"crc32": "57841d84",
|
||||||
|
"adler32": "2a2a106e"
|
||||||
|
},
|
||||||
"2d539603665b8194c671ef5189c5a2b6db3ac645": {
|
"2d539603665b8194c671ef5189c5a2b6db3ac645": {
|
||||||
"path": "bios/Other/QEMU/bios-256k.bin",
|
"path": "bios/Other/QEMU/bios-256k.bin",
|
||||||
"name": "bios-256k.bin",
|
"name": "bios-256k.bin",
|
||||||
@@ -72553,6 +72573,16 @@
|
|||||||
"crc32": "b3ef7ac7",
|
"crc32": "b3ef7ac7",
|
||||||
"adler32": "479a8ee1"
|
"adler32": "479a8ee1"
|
||||||
},
|
},
|
||||||
|
"56dd520570cdcdd60dda2eedc8af1e02a781dcc5": {
|
||||||
|
"path": "bios/Texas Instruments/TI-99/Gram Kracker.ctg",
|
||||||
|
"name": "Gram Kracker.ctg",
|
||||||
|
"size": 7587,
|
||||||
|
"sha1": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5",
|
||||||
|
"md5": "7551f1d578a32cccd97efd1adff15252",
|
||||||
|
"sha256": "3e63f6a54a8001ddd75ecde70572c7030776d79817f46ee0dfcf5274dd03047f",
|
||||||
|
"crc32": "f1c12fb2",
|
||||||
|
"adler32": "16c3134e"
|
||||||
|
},
|
||||||
"4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8": {
|
"4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8": {
|
||||||
"path": "bios/Texas Instruments/TI-99/TI-994A.ctg",
|
"path": "bios/Texas Instruments/TI-99/TI-994A.ctg",
|
||||||
"name": "TI-994A.ctg",
|
"name": "TI-994A.ctg",
|
||||||
@@ -72563,6 +72593,16 @@
|
|||||||
"crc32": "a092207d",
|
"crc32": "a092207d",
|
||||||
"adler32": "ba312438"
|
"adler32": "ba312438"
|
||||||
},
|
},
|
||||||
|
"698c638e1773244a6bf8a353c87d210047cce402": {
|
||||||
|
"path": "bios/Texas Instruments/TI-99/cf7+.ctg",
|
||||||
|
"name": "cf7+.ctg",
|
||||||
|
"size": 5768,
|
||||||
|
"sha1": "698c638e1773244a6bf8a353c87d210047cce402",
|
||||||
|
"md5": "d3fd9bc1fcaf48e5ed681c5ac31bc194",
|
||||||
|
"sha256": "8998c8525a9014a7983a8ed3b03fa8210a08c205dacccd654f139f78f20623da",
|
||||||
|
"crc32": "81f3aec2",
|
||||||
|
"adler32": "23a55284"
|
||||||
|
},
|
||||||
"382292295c00dff348d7e17c5ce4da12a1d87763": {
|
"382292295c00dff348d7e17c5ce4da12a1d87763": {
|
||||||
"path": "bios/Texas Instruments/TI-99/spchrom.bin",
|
"path": "bios/Texas Instruments/TI-99/spchrom.bin",
|
||||||
"name": "spchrom.bin",
|
"name": "spchrom.bin",
|
||||||
@@ -72583,6 +72623,16 @@
|
|||||||
"crc32": "1a52b40c",
|
"crc32": "1a52b40c",
|
||||||
"adler32": "152e6876"
|
"adler32": "152e6876"
|
||||||
},
|
},
|
||||||
|
"c7bf5fcfea0502011dca76d12efcc242e23421b9": {
|
||||||
|
"path": "bios/Texas Instruments/TI-99/ti-pcard.ctg",
|
||||||
|
"name": "ti-pcard.ctg",
|
||||||
|
"size": 71924,
|
||||||
|
"sha1": "c7bf5fcfea0502011dca76d12efcc242e23421b9",
|
||||||
|
"md5": "63f161f0d634e6092a1729b97efb00d1",
|
||||||
|
"sha256": "06eae0519b66734b546d4a6508f8f20ab3f57d21819c469ff748e68816e27bce",
|
||||||
|
"crc32": "62b3c3d0",
|
||||||
|
"adler32": "4224aa4e"
|
||||||
|
},
|
||||||
"e05575b630bea7ff98b9ca1f083d745abb3110b6": {
|
"e05575b630bea7ff98b9ca1f083d745abb3110b6": {
|
||||||
"path": "bios/Texas Instruments/TI-99/ti99_4a.zip",
|
"path": "bios/Texas Instruments/TI-99/ti99_4a.zip",
|
||||||
"name": "ti99_4a.zip",
|
"name": "ti99_4a.zip",
|
||||||
@@ -72962,6 +73012,16 @@
|
|||||||
"sha256": "7dc407fbccbf684dc677bed81120f45f0d3406ff7945eaf207a5c38b036c30e0",
|
"sha256": "7dc407fbccbf684dc677bed81120f45f0d3406ff7945eaf207a5c38b036c30e0",
|
||||||
"crc32": "a42ef0fd",
|
"crc32": "a42ef0fd",
|
||||||
"adler32": "0d15827f"
|
"adler32": "0d15827f"
|
||||||
|
},
|
||||||
|
"8c20ff26ebfefbf9b050b67af8083704003595ba": {
|
||||||
|
"path": "bios/sdlpal/desc.dat",
|
||||||
|
"name": "desc.dat",
|
||||||
|
"size": 16027,
|
||||||
|
"sha1": "8c20ff26ebfefbf9b050b67af8083704003595ba",
|
||||||
|
"md5": "084b6bc9804710a89a542335a3e4b1e0",
|
||||||
|
"sha256": "0d6487d6832488130bc94b1ec5ee71766717b929c249693327089e461460ae40",
|
||||||
|
"crc32": "5ea6b7fc",
|
||||||
|
"adler32": "27df2df0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexes": {
|
"indexes": {
|
||||||
@@ -77011,6 +77071,8 @@
|
|||||||
"82a22231d402cd3284c698ba16a51d1d": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
"82a22231d402cd3284c698ba16a51d1d": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
||||||
"9a432244d9ee4a49e8ddcde64af94e05": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
"9a432244d9ee4a49e8ddcde64af94e05": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
||||||
"f20bb7bc1b97453161e63964f24a2785": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
"f20bb7bc1b97453161e63964f24a2785": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
||||||
|
"ebc011b876b9a4755fe44fa45d366996": "73acccee601b56a2b7f624b0227fa7e1d662ef4b",
|
||||||
|
"d74d5681ad8d825f5c229db1ee931bbb": "74c14b15dbc2f36c81d2ad9cb65e2893298415da",
|
||||||
"e8dcffae189b20fbe2722b857faa487c": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
"e8dcffae189b20fbe2722b857faa487c": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
||||||
"8bef06d1aa74c9ff45b268a18efcc954": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
"8bef06d1aa74c9ff45b268a18efcc954": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
||||||
"07ec9c82c2ac93d091f46236e93c8bbb": "359becb4c1dcd61c139ab3786983da9640677701",
|
"07ec9c82c2ac93d091f46236e93c8bbb": "359becb4c1dcd61c139ab3786983da9640677701",
|
||||||
@@ -80221,9 +80283,12 @@
|
|||||||
"c6ff8204c5c81b7be34614dbbd690c8b": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
"c6ff8204c5c81b7be34614dbbd690c8b": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
||||||
"6e30e823ddba73234480984ee50730c1": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
"6e30e823ddba73234480984ee50730c1": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
||||||
"42f768a66fa8b27dadb8361dd2e2e012": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
"42f768a66fa8b27dadb8361dd2e2e012": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
||||||
|
"7551f1d578a32cccd97efd1adff15252": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5",
|
||||||
"412ecbf991edcb68edd0e76c2caa4a59": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
"412ecbf991edcb68edd0e76c2caa4a59": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
||||||
|
"d3fd9bc1fcaf48e5ed681c5ac31bc194": "698c638e1773244a6bf8a353c87d210047cce402",
|
||||||
"7adcaf64272248f7a7161cfc02fd5b3f": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
"7adcaf64272248f7a7161cfc02fd5b3f": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
||||||
"04714f43347cefb2a051a77116344b3f": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
"04714f43347cefb2a051a77116344b3f": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
||||||
|
"63f161f0d634e6092a1729b97efb00d1": "c7bf5fcfea0502011dca76d12efcc242e23421b9",
|
||||||
"3df4d280ad76edc0662c2e89ad4f2f74": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
"3df4d280ad76edc0662c2e89ad4f2f74": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
||||||
"01770fde15c34ff88bb49526d38cb1f6": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
"01770fde15c34ff88bb49526d38cb1f6": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
||||||
"12ae505e36b850030f5188e960864775": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
"12ae505e36b850030f5188e960864775": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
||||||
@@ -80261,7 +80326,8 @@
|
|||||||
"a9082f02d4f93c1f6c4e428e06b834e8": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
"a9082f02d4f93c1f6c4e428e06b834e8": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
||||||
"8d4abc7dd31a64f2ddd811c19ae8c09e": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
"8d4abc7dd31a64f2ddd811c19ae8c09e": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
||||||
"6e7e391c629332cc9d29902b98e52f94": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
"6e7e391c629332cc9d29902b98e52f94": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
||||||
"bbd27768c16e6077b1a90dc0eb8558a3": "24a487f22f3da292e179b3edd6c30222a8ff933d"
|
"bbd27768c16e6077b1a90dc0eb8558a3": "24a487f22f3da292e179b3edd6c30222a8ff933d",
|
||||||
|
"084b6bc9804710a89a542335a3e4b1e0": "8c20ff26ebfefbf9b050b67af8083704003595ba"
|
||||||
},
|
},
|
||||||
"by_name": {
|
"by_name": {
|
||||||
"3do_arcade_saot.bin": [
|
"3do_arcade_saot.bin": [
|
||||||
@@ -88782,7 +88848,7 @@
|
|||||||
"ddos42.rom": [
|
"ddos42.rom": [
|
||||||
"7747fe3d431b745b570629fe7f3f5d51b6d6f393"
|
"7747fe3d431b745b570629fe7f3f5d51b6d6f393"
|
||||||
],
|
],
|
||||||
"deltados.rom": [
|
"delta2.rom": [
|
||||||
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60"
|
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60"
|
||||||
],
|
],
|
||||||
"dplus48.rom": [
|
"dplus48.rom": [
|
||||||
@@ -91706,6 +91772,12 @@
|
|||||||
"Doukutsu.exe": [
|
"Doukutsu.exe": [
|
||||||
"91d75a87872cbb88964bead92e0cbf8b72e836b6"
|
"91d75a87872cbb88964bead92e0cbf8b72e836b6"
|
||||||
],
|
],
|
||||||
|
"sprites.sif": [
|
||||||
|
"73acccee601b56a2b7f624b0227fa7e1d662ef4b"
|
||||||
|
],
|
||||||
|
"tilekey.dat": [
|
||||||
|
"74c14b15dbc2f36c81d2ad9cb65e2893298415da"
|
||||||
|
],
|
||||||
"bios-256k.bin": [
|
"bios-256k.bin": [
|
||||||
"2d539603665b8194c671ef5189c5a2b6db3ac645"
|
"2d539603665b8194c671ef5189c5a2b6db3ac645"
|
||||||
],
|
],
|
||||||
@@ -100468,15 +100540,24 @@
|
|||||||
"630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
"630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
||||||
"e05575b630bea7ff98b9ca1f083d745abb3110b6"
|
"e05575b630bea7ff98b9ca1f083d745abb3110b6"
|
||||||
],
|
],
|
||||||
|
"Gram Kracker.ctg": [
|
||||||
|
"56dd520570cdcdd60dda2eedc8af1e02a781dcc5"
|
||||||
|
],
|
||||||
"TI-994A.ctg": [
|
"TI-994A.ctg": [
|
||||||
"4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8"
|
"4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8"
|
||||||
],
|
],
|
||||||
|
"cf7+.ctg": [
|
||||||
|
"698c638e1773244a6bf8a353c87d210047cce402"
|
||||||
|
],
|
||||||
"spchrom.bin": [
|
"spchrom.bin": [
|
||||||
"382292295c00dff348d7e17c5ce4da12a1d87763"
|
"382292295c00dff348d7e17c5ce4da12a1d87763"
|
||||||
],
|
],
|
||||||
"ti-disk.ctg": [
|
"ti-disk.ctg": [
|
||||||
"693f5b4fe1e5eb6429fd6614fb7bb14350939814"
|
"693f5b4fe1e5eb6429fd6614fb7bb14350939814"
|
||||||
],
|
],
|
||||||
|
"ti-pcard.ctg": [
|
||||||
|
"c7bf5fcfea0502011dca76d12efcc242e23421b9"
|
||||||
|
],
|
||||||
"mo5-v1.1.rom": [
|
"mo5-v1.1.rom": [
|
||||||
"8d2865996a1a8d8a13fc9965c1bcf490f9621399"
|
"8d2865996a1a8d8a13fc9965c1bcf490f9621399"
|
||||||
],
|
],
|
||||||
@@ -100581,6 +100662,9 @@
|
|||||||
"Tortuga.dat": [
|
"Tortuga.dat": [
|
||||||
"24a487f22f3da292e179b3edd6c30222a8ff933d"
|
"24a487f22f3da292e179b3edd6c30222a8ff933d"
|
||||||
],
|
],
|
||||||
|
"desc.dat": [
|
||||||
|
"8c20ff26ebfefbf9b050b67af8083704003595ba"
|
||||||
|
],
|
||||||
"goldstar_fc1_enc.bin": [
|
"goldstar_fc1_enc.bin": [
|
||||||
"8ef7503c948314d242da47b7fdc272f68dac2aee"
|
"8ef7503c948314d242da47b7fdc272f68dac2aee"
|
||||||
],
|
],
|
||||||
@@ -101713,6 +101797,12 @@
|
|||||||
"d64tano2.rom": [
|
"d64tano2.rom": [
|
||||||
"e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e"
|
"e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e"
|
||||||
],
|
],
|
||||||
|
"deltados.rom": [
|
||||||
|
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60"
|
||||||
|
],
|
||||||
|
"Premier Micros - DeltaDOS": [
|
||||||
|
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60"
|
||||||
|
],
|
||||||
"exos20.rom": [
|
"exos20.rom": [
|
||||||
"6033a0535136c40c47137e4d1cd9273c06d5fdff"
|
"6033a0535136c40c47137e4d1cd9273c06d5fdff"
|
||||||
],
|
],
|
||||||
@@ -108265,6 +108355,8 @@
|
|||||||
"29e86dbc": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
"29e86dbc": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
||||||
"aa727c5d": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
"aa727c5d": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
||||||
"0c0644ba": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
"0c0644ba": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
||||||
|
"4e42c240": "73acccee601b56a2b7f624b0227fa7e1d662ef4b",
|
||||||
|
"57841d84": "74c14b15dbc2f36c81d2ad9cb65e2893298415da",
|
||||||
"7db5c908": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
"7db5c908": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
||||||
"e7e3ac4c": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
"e7e3ac4c": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
||||||
"e3f1ee0a": "359becb4c1dcd61c139ab3786983da9640677701",
|
"e3f1ee0a": "359becb4c1dcd61c139ab3786983da9640677701",
|
||||||
@@ -111475,9 +111567,12 @@
|
|||||||
"200dd7d0": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
"200dd7d0": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
||||||
"ea0cc014": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
"ea0cc014": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
||||||
"b3ef7ac7": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
"b3ef7ac7": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
||||||
|
"f1c12fb2": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5",
|
||||||
"a092207d": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
"a092207d": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
||||||
|
"81f3aec2": "698c638e1773244a6bf8a353c87d210047cce402",
|
||||||
"58b155f7": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
"58b155f7": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
||||||
"1a52b40c": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
"1a52b40c": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
||||||
|
"62b3c3d0": "c7bf5fcfea0502011dca76d12efcc242e23421b9",
|
||||||
"f93bd9f7": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
"f93bd9f7": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
||||||
"71879a28": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
"71879a28": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
||||||
"237c60bf": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
"237c60bf": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
||||||
@@ -111515,7 +111610,8 @@
|
|||||||
"4a39a474": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
"4a39a474": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
||||||
"bf1e4b9b": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
"bf1e4b9b": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
||||||
"e6b9ebfb": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
"e6b9ebfb": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
||||||
"a42ef0fd": "24a487f22f3da292e179b3edd6c30222a8ff933d"
|
"a42ef0fd": "24a487f22f3da292e179b3edd6c30222a8ff933d",
|
||||||
|
"5ea6b7fc": "8c20ff26ebfefbf9b050b67af8083704003595ba"
|
||||||
},
|
},
|
||||||
"by_sha256": {
|
"by_sha256": {
|
||||||
"72a88b5b47b76bd5604b30c102c948fa7e0ee90ccbc83aba496c45cf90b5a0e7": "520d3d1b5897800af47f92efd2444a26b7a7dead",
|
"72a88b5b47b76bd5604b30c102c948fa7e0ee90ccbc83aba496c45cf90b5a0e7": "520d3d1b5897800af47f92efd2444a26b7a7dead",
|
||||||
@@ -115563,6 +115659,8 @@
|
|||||||
"3ca567f014a71ea24734559ee63df8184886f17debeef41c4bf4cd6313d70bd1": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
"3ca567f014a71ea24734559ee63df8184886f17debeef41c4bf4cd6313d70bd1": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
|
||||||
"0ed991887342fba9e4b71668ff4c14ed93c2b3a19b4874dd0282404a1c442094": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
"0ed991887342fba9e4b71668ff4c14ed93c2b3a19b4874dd0282404a1c442094": "86fc8dc0932f983efa199e31ae05a4424772f959",
|
||||||
"8a7a63b24bb21557fb597697bdf09248c1ab7e3298cacfa1166d764dd81e7fc3": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
"8a7a63b24bb21557fb597697bdf09248c1ab7e3298cacfa1166d764dd81e7fc3": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
|
||||||
|
"e80d72041dc20ddffb3fa7e22e4c51acb06d95e81058d5eeb888b5bf308424ea": "73acccee601b56a2b7f624b0227fa7e1d662ef4b",
|
||||||
|
"e84df7374f8eff014458c6d8611c44f03b39b8d1a7abf30a2347dbb085b55232": "74c14b15dbc2f36c81d2ad9cb65e2893298415da",
|
||||||
"ae6f6aa973aaccc143f57aa960fb035fd9de4daee4ad0cd713322f8c259e7650": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
"ae6f6aa973aaccc143f57aa960fb035fd9de4daee4ad0cd713322f8c259e7650": "2d539603665b8194c671ef5189c5a2b6db3ac645",
|
||||||
"3dfd946d0c03ab0e022f84f10c3eb5f1dd507761f73e7d8067511ba35a10f776": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
"3dfd946d0c03ab0e022f84f10c3eb5f1dd507761f73e7d8067511ba35a10f776": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
|
||||||
"e8fc9e55790dbe3cb31f019a3deb57206ba6c54f5e581adb2ab2677a9d391472": "359becb4c1dcd61c139ab3786983da9640677701",
|
"e8fc9e55790dbe3cb31f019a3deb57206ba6c54f5e581adb2ab2677a9d391472": "359becb4c1dcd61c139ab3786983da9640677701",
|
||||||
@@ -118773,9 +118871,12 @@
|
|||||||
"55c318616fad4fc32335c59f97fbca21f0a02424bece13b088cc11e0af73d993": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
"55c318616fad4fc32335c59f97fbca21f0a02424bece13b088cc11e0af73d993": "8177bc6d5489d575cbfa9a004d097fc08c6f8c86",
|
||||||
"5b4dc460e53715e422e9dd86e4f7e7f323cc5320d35213dcd56b960fb8876003": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
"5b4dc460e53715e422e9dd86e4f7e7f323cc5320d35213dcd56b960fb8876003": "630b9f529b954851fbdcfeb1d91a950d4bda0547",
|
||||||
"172db86fc7f03808084fcf846ae1e53143d2d26ec6a72f437b9726c6b4295359": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
"172db86fc7f03808084fcf846ae1e53143d2d26ec6a72f437b9726c6b4295359": "8212fbd8899a2808c7ace4559245861e5bee2c9a",
|
||||||
|
"3e63f6a54a8001ddd75ecde70572c7030776d79817f46ee0dfcf5274dd03047f": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5",
|
||||||
"5a1787ece8a37db887d60953471084e2ea44a6dbe529d20882f4824d97536fa4": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
"5a1787ece8a37db887d60953471084e2ea44a6dbe529d20882f4824d97536fa4": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8",
|
||||||
|
"8998c8525a9014a7983a8ed3b03fa8210a08c205dacccd654f139f78f20623da": "698c638e1773244a6bf8a353c87d210047cce402",
|
||||||
"1a7481f3e7e2d464772b540f9b9e4d529dc61df372f181adf7432f0df9876c16": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
"1a7481f3e7e2d464772b540f9b9e4d529dc61df372f181adf7432f0df9876c16": "382292295c00dff348d7e17c5ce4da12a1d87763",
|
||||||
"c0a5c744fffa9265fd3ee49020d0697717eaf5aa2fefacd0387ad997b1165b5a": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
"c0a5c744fffa9265fd3ee49020d0697717eaf5aa2fefacd0387ad997b1165b5a": "693f5b4fe1e5eb6429fd6614fb7bb14350939814",
|
||||||
|
"06eae0519b66734b546d4a6508f8f20ab3f57d21819c469ff748e68816e27bce": "c7bf5fcfea0502011dca76d12efcc242e23421b9",
|
||||||
"d7bb2d9b65a766dcc03376c6afd9a605df5fe302cf61584f801653b7be87279a": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
"d7bb2d9b65a766dcc03376c6afd9a605df5fe302cf61584f801653b7be87279a": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
|
||||||
"a8bf18e99904f9c14969a3be1da84da2438ee3d206928ead28eaff758e4449dd": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
"a8bf18e99904f9c14969a3be1da84da2438ee3d206928ead28eaff758e4449dd": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6",
|
||||||
"c15d3d6732399a879bb6de5ae2fcb9aadfd64da86d95652ced9ad96a2ae8e692": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
"c15d3d6732399a879bb6de5ae2fcb9aadfd64da86d95652ced9ad96a2ae8e692": "8d2865996a1a8d8a13fc9965c1bcf490f9621399",
|
||||||
@@ -118813,7 +118914,8 @@
|
|||||||
"c5e08982bc797752118eff67950f42d9c6ef6b9668d03f152c88b8ef8ed6a63b": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
"c5e08982bc797752118eff67950f42d9c6ef6b9668d03f152c88b8ef8ed6a63b": "d07114a9f3490338a265fb30d16b052c8da3bb7d",
|
||||||
"c06a6ae0804b20ded47b9ab9101ffe3a6438382b9ec664a2ec0fcd010f8566f4": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
"c06a6ae0804b20ded47b9ab9101ffe3a6438382b9ec664a2ec0fcd010f8566f4": "b3730071e789877bea3373ffa59ca673a4b1f4c9",
|
||||||
"37ed55d89afe24a013de30feecf21fb0d75c58f3f0ff9a8449098eaaabe75aac": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
"37ed55d89afe24a013de30feecf21fb0d75c58f3f0ff9a8449098eaaabe75aac": "48024e2f5943ed86cb1b8e9443603991cdb05808",
|
||||||
"7dc407fbccbf684dc677bed81120f45f0d3406ff7945eaf207a5c38b036c30e0": "24a487f22f3da292e179b3edd6c30222a8ff933d"
|
"7dc407fbccbf684dc677bed81120f45f0d3406ff7945eaf207a5c38b036c30e0": "24a487f22f3da292e179b3edd6c30222a8ff933d",
|
||||||
|
"0d6487d6832488130bc94b1ec5ee71766717b929c249693327089e461460ae40": "8c20ff26ebfefbf9b050b67af8083704003595ba"
|
||||||
},
|
},
|
||||||
"by_path_suffix": {
|
"by_path_suffix": {
|
||||||
".variants/aa310.zip": [
|
".variants/aa310.zip": [
|
||||||
@@ -124297,6 +124399,12 @@
|
|||||||
"Oric/colour.rom": [
|
"Oric/colour.rom": [
|
||||||
"bda81f64be319d8793d284bf9d40f01d19b33515"
|
"bda81f64be319d8793d284bf9d40f01d19b33515"
|
||||||
],
|
],
|
||||||
|
"nxengine/data/sprites.sif": [
|
||||||
|
"73acccee601b56a2b7f624b0227fa7e1d662ef4b"
|
||||||
|
],
|
||||||
|
"nxengine/tilekey.dat": [
|
||||||
|
"74c14b15dbc2f36c81d2ad9cb65e2893298415da"
|
||||||
|
],
|
||||||
"nvr/adgold.bin": [
|
"nvr/adgold.bin": [
|
||||||
"e3b28842515140c82e2e897a53ad39333ed9512c"
|
"e3b28842515140c82e2e897a53ad39333ed9512c"
|
||||||
],
|
],
|
||||||
@@ -132582,6 +132690,7 @@
|
|||||||
"d3b78c3dbac55f5199f33f3fe0036439811f7fb3",
|
"d3b78c3dbac55f5199f33f3fe0036439811f7fb3",
|
||||||
"1983b4fb398e3dd9668d424c666c5a0b3f1e2b69",
|
"1983b4fb398e3dd9668d424c666c5a0b3f1e2b69",
|
||||||
"e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e",
|
"e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e",
|
||||||
|
"686ebb5f39dd4fc907a0b748867d0a022d2f1a60",
|
||||||
"6033a0535136c40c47137e4d1cd9273c06d5fdff",
|
"6033a0535136c40c47137e4d1cd9273c06d5fdff",
|
||||||
"81193965a374d77b99b4743d317824b53c3e3c78",
|
"81193965a374d77b99b4743d317824b53c3e3c78",
|
||||||
"8f70d1b74483ba3a37e86cf16c849d601a8c3d2c",
|
"8f70d1b74483ba3a37e86cf16c849d601a8c3d2c",
|
||||||
|
|||||||
@@ -238,6 +238,7 @@ files:
|
|||||||
- name: CARTS.CRC
|
- name: CARTS.CRC
|
||||||
required: false
|
required: false
|
||||||
bundled: false
|
bundled: false
|
||||||
|
unsourceable: "dead legacy code path, never created or distributed, replaced by CARTS.SHA"
|
||||||
note: "CRC database for cartridge identification and mapper detection. Tried first, before CARTS.SHA (fMSX/MSX.c:2697)."
|
note: "CRC database for cartridge identification and mapper detection. Tried first, before CARTS.SHA (fMSX/MSX.c:2697)."
|
||||||
|
|
||||||
- name: CARTS.SHA
|
- name: CARTS.SHA
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ files:
|
|||||||
path: "np2kai/gpib.rom"
|
path: "np2kai/gpib.rom"
|
||||||
size: 8192
|
size: 8192
|
||||||
required: false
|
required: false
|
||||||
|
unsourceable: "never publicly dumped, GP-IB emulation is stub code (source comment: not implemented)"
|
||||||
note: >
|
note: >
|
||||||
GP-IB interface BIOS ROM (8 KB). If missing, GP-IB emulation
|
GP-IB interface BIOS ROM (8 KB). If missing, GP-IB emulation
|
||||||
is disabled entirely.
|
is disabled entirely.
|
||||||
@@ -198,6 +199,8 @@ files:
|
|||||||
- name: "key.txt"
|
- name: "key.txt"
|
||||||
path: "np2kai/key.txt"
|
path: "np2kai/key.txt"
|
||||||
required: false
|
required: false
|
||||||
|
hle_fallback: true
|
||||||
|
unsourceable: "user-created keyboard config, no default distributed in any NP2kai release"
|
||||||
note: >
|
note: >
|
||||||
Keyboard remapping configuration (text file). User-created file
|
Keyboard remapping configuration (text file). User-created file
|
||||||
for custom keyboard layout. The core uses built-in defaults if absent.
|
for custom keyboard layout. The core uses built-in defaults if absent.
|
||||||
|
|||||||
@@ -81,5 +81,6 @@ files:
|
|||||||
system: cave-story
|
system: cave-story
|
||||||
description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)"
|
description: "Tile attribute lookup table (maps tile codes to collision/behavior attributes)"
|
||||||
required: false
|
required: false
|
||||||
|
hle_fallback: true
|
||||||
source_ref: "map.cpp:290-303 (loaded at init, hardcoded default if missing)"
|
source_ref: "map.cpp:290-303 (loaded at init, hardcoded default if missing)"
|
||||||
note: "Not part of the freeware distribution. Generated by the standalone NXEngine extraction tool. The libretro core has hardcoded defaults in map.cpp:30."
|
note: "Not part of the freeware distribution. Generated by the standalone NXEngine extraction tool. The libretro core has hardcoded defaults in map.cpp:30."
|
||||||
|
|||||||
@@ -247,6 +247,7 @@ files:
|
|||||||
- name: "WHDLoad.key"
|
- name: "WHDLoad.key"
|
||||||
system: commodore-amiga
|
system: commodore-amiga
|
||||||
required: false
|
required: false
|
||||||
|
unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2"
|
||||||
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
|
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
|
||||||
source_ref: "libretro/libretro-core.c:5985-5998"
|
source_ref: "libretro/libretro-core.c:5985-5998"
|
||||||
|
|
||||||
|
|||||||
@@ -251,6 +251,7 @@ files:
|
|||||||
- name: "WHDLoad.key"
|
- name: "WHDLoad.key"
|
||||||
system: commodore-amiga
|
system: commodore-amiga
|
||||||
required: false
|
required: false
|
||||||
|
unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2"
|
||||||
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
|
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
|
||||||
source_ref: "libretro/libretro-core.c:5903-5916"
|
source_ref: "libretro/libretro-core.c:5903-5916"
|
||||||
|
|
||||||
|
|||||||
@@ -397,5 +397,6 @@ files:
|
|||||||
system: dragon64
|
system: dragon64
|
||||||
description: "Ikon Ultra Drive Dragonfly ROM 2.3"
|
description: "Ikon Ultra Drive Dragonfly ROM 2.3"
|
||||||
required: false
|
required: false
|
||||||
|
unsourceable: "not yet dumped, only v1.3 publicly available, XRoar support is experimental (#ifdef WANT_EXPERIMENTAL)"
|
||||||
source_ref: "xroar.c:715 (romlist ikon), ikon.c:151 (default @ikon)"
|
source_ref: "xroar.c:715 (romlist ikon), ikon.c:151 (default @ikon)"
|
||||||
note: "Experimental. Ikon Ultra Drive storage interface. Older version: dragonfly-1.3."
|
note: "Experimental. Ikon Ultra Drive storage interface. Older version: dragonfly-1.3."
|
||||||
|
|||||||
@@ -138,6 +138,8 @@ files:
|
|||||||
|
|
||||||
- name: Custom.dat
|
- name: Custom.dat
|
||||||
path: zc210/sfx/Custom.dat
|
path: zc210/sfx/Custom.dat
|
||||||
|
category: game_data
|
||||||
description: user-provided custom SFX replacement
|
description: user-provided custom SFX replacement
|
||||||
required: false
|
required: false
|
||||||
|
unsourceable: "user placeholder slot, README says 'rename your own SFX dat file to this name'"
|
||||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||||
|
|||||||
@@ -140,6 +140,20 @@ def _resolve_source(
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def _resolve_archive_source(
|
||||||
|
archive_name: str,
|
||||||
|
by_name: dict[str, list],
|
||||||
|
by_name_lower: dict[str, str],
|
||||||
|
data_names: set[str] | None = None,
|
||||||
|
by_path_suffix: dict | None = None,
|
||||||
|
) -> str:
|
||||||
|
"""Resolve source for an archive (ZIP) name, returning a source category string."""
|
||||||
|
result = _resolve_source(
|
||||||
|
archive_name, by_name, by_name_lower, data_names, by_path_suffix,
|
||||||
|
)
|
||||||
|
return result if result is not None else "missing"
|
||||||
|
|
||||||
|
|
||||||
def cross_reference(
|
def cross_reference(
|
||||||
profiles: dict[str, dict],
|
profiles: dict[str, dict],
|
||||||
declared: dict[str, set[str]],
|
declared: dict[str, set[str]],
|
||||||
@@ -175,6 +189,10 @@ def cross_reference(
|
|||||||
emu_files = profile.get("files", [])
|
emu_files = profile.get("files", [])
|
||||||
systems = profile.get("systems", [])
|
systems = profile.get("systems", [])
|
||||||
|
|
||||||
|
# Skip filename-agnostic profiles (BIOS detected without fixed names)
|
||||||
|
if profile.get("bios_mode") == "agnostic":
|
||||||
|
continue
|
||||||
|
|
||||||
if all_declared is not None:
|
if all_declared is not None:
|
||||||
platform_names = all_declared
|
platform_names = all_declared
|
||||||
else:
|
else:
|
||||||
@@ -184,13 +202,28 @@ def cross_reference(
|
|||||||
|
|
||||||
gaps = []
|
gaps = []
|
||||||
covered = []
|
covered = []
|
||||||
|
unsourceable_list: list[dict] = []
|
||||||
|
archive_gaps: dict[str, dict] = {}
|
||||||
|
seen_files: set[str] = set()
|
||||||
for f in emu_files:
|
for f in emu_files:
|
||||||
fname = f.get("name", "")
|
fname = f.get("name", "")
|
||||||
if not fname:
|
if not fname or fname in seen_files:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Collect unsourceable files separately (documented, not a gap)
|
||||||
|
unsourceable_reason = f.get("unsourceable", "")
|
||||||
|
if unsourceable_reason:
|
||||||
|
seen_files.add(fname)
|
||||||
|
unsourceable_list.append({
|
||||||
|
"name": fname,
|
||||||
|
"required": f.get("required", False),
|
||||||
|
"reason": unsourceable_reason,
|
||||||
|
"source_ref": f.get("source_ref", ""),
|
||||||
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Skip pattern placeholders (e.g., <bios>.bin, <user-selected>.bin)
|
# Skip pattern placeholders (e.g., <bios>.bin, <user-selected>.bin)
|
||||||
if "<" in fname or ">" in fname:
|
if "<" in fname or ">" in fname or "*" in fname:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Skip UI-imported files with explicit path: null (not resolvable by pack)
|
# Skip UI-imported files with explicit path: null (not resolvable by pack)
|
||||||
@@ -202,6 +235,61 @@ def cross_reference(
|
|||||||
if file_mode == "standalone":
|
if file_mode == "standalone":
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Skip files loaded from non-system directories (save_dir, content_dir)
|
||||||
|
load_from = f.get("load_from", "")
|
||||||
|
if load_from and load_from != "system_dir":
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Skip filename-agnostic files (handled by agnostic scan)
|
||||||
|
if f.get("agnostic"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
archive = f.get("archive")
|
||||||
|
|
||||||
|
# Check platform declaration (by name or archive)
|
||||||
|
in_platform = fname in platform_names
|
||||||
|
if not in_platform and archive:
|
||||||
|
in_platform = archive in platform_names
|
||||||
|
|
||||||
|
if in_platform:
|
||||||
|
seen_files.add(fname)
|
||||||
|
covered.append({
|
||||||
|
"name": fname,
|
||||||
|
"required": f.get("required", False),
|
||||||
|
"in_platform": True,
|
||||||
|
})
|
||||||
|
continue
|
||||||
|
|
||||||
|
seen_files.add(fname)
|
||||||
|
|
||||||
|
# Group archived files by archive name
|
||||||
|
if archive:
|
||||||
|
if archive not in archive_gaps:
|
||||||
|
source = _resolve_archive_source(
|
||||||
|
archive, by_name, by_name_lower, data_names,
|
||||||
|
by_path_suffix,
|
||||||
|
)
|
||||||
|
archive_gaps[archive] = {
|
||||||
|
"name": archive,
|
||||||
|
"required": False,
|
||||||
|
"note": "",
|
||||||
|
"source_ref": "",
|
||||||
|
"in_platform": False,
|
||||||
|
"in_repo": source != "missing",
|
||||||
|
"source": source,
|
||||||
|
"archive": archive,
|
||||||
|
"archive_file_count": 0,
|
||||||
|
"archive_required_count": 0,
|
||||||
|
}
|
||||||
|
entry = archive_gaps[archive]
|
||||||
|
entry["archive_file_count"] += 1
|
||||||
|
if f.get("required", False):
|
||||||
|
entry["archive_required_count"] += 1
|
||||||
|
entry["required"] = True
|
||||||
|
if not entry["source_ref"] and f.get("source_ref"):
|
||||||
|
entry["source_ref"] = f["source_ref"]
|
||||||
|
continue
|
||||||
|
|
||||||
# --- resolve source provenance ---
|
# --- resolve source provenance ---
|
||||||
storage = f.get("storage", "")
|
storage = f.get("storage", "")
|
||||||
if storage in ("release", "large_file"):
|
if storage in ("release", "large_file"):
|
||||||
@@ -235,22 +323,21 @@ def cross_reference(
|
|||||||
source = "missing"
|
source = "missing"
|
||||||
|
|
||||||
in_repo = source != "missing"
|
in_repo = source != "missing"
|
||||||
in_platform = fname in platform_names
|
|
||||||
|
|
||||||
entry = {
|
entry = {
|
||||||
"name": fname,
|
"name": fname,
|
||||||
"required": f.get("required", False),
|
"required": f.get("required", False),
|
||||||
"note": f.get("note", ""),
|
"note": f.get("note", ""),
|
||||||
"source_ref": f.get("source_ref", ""),
|
"source_ref": f.get("source_ref", ""),
|
||||||
"in_platform": in_platform,
|
"in_platform": False,
|
||||||
"in_repo": in_repo,
|
"in_repo": in_repo,
|
||||||
"source": source,
|
"source": source,
|
||||||
}
|
}
|
||||||
|
|
||||||
if not in_platform:
|
|
||||||
gaps.append(entry)
|
gaps.append(entry)
|
||||||
else:
|
|
||||||
covered.append(entry)
|
# Append grouped archive gaps
|
||||||
|
for ag in sorted(archive_gaps.values(), key=lambda e: e["name"]):
|
||||||
|
gaps.append(ag)
|
||||||
|
|
||||||
report[emu_name] = {
|
report[emu_name] = {
|
||||||
"emulator": profile.get("emulator", emu_name),
|
"emulator": profile.get("emulator", emu_name),
|
||||||
@@ -264,6 +351,7 @@ def cross_reference(
|
|||||||
"gap_data": sum(1 for g in gaps if g["source"] == "data"),
|
"gap_data": sum(1 for g in gaps if g["source"] == "data"),
|
||||||
"gap_large_file": sum(1 for g in gaps if g["source"] == "large_file"),
|
"gap_large_file": sum(1 for g in gaps if g["source"] == "large_file"),
|
||||||
"gap_details": gaps,
|
"gap_details": gaps,
|
||||||
|
"unsourceable": unsourceable_list,
|
||||||
}
|
}
|
||||||
|
|
||||||
return report
|
return report
|
||||||
@@ -301,7 +389,12 @@ def print_report(report: dict) -> None:
|
|||||||
req = "*" if g["required"] else " "
|
req = "*" if g["required"] else " "
|
||||||
src = g.get("source", "missing").upper()
|
src = g.get("source", "missing").upper()
|
||||||
note = f" -- {g['note']}" if g["note"] else ""
|
note = f" -- {g['note']}" if g["note"] else ""
|
||||||
print(f" {req} {g['name']} [{src}]{note}")
|
archive_info = ""
|
||||||
|
if g.get("archive"):
|
||||||
|
fc = g.get("archive_file_count", 0)
|
||||||
|
rc = g.get("archive_required_count", 0)
|
||||||
|
archive_info = f" ({fc} files, {rc} required)"
|
||||||
|
print(f" {req} {g['name']} [{src}]{archive_info}{note}")
|
||||||
|
|
||||||
total_gaps += gaps
|
total_gaps += gaps
|
||||||
for key in totals:
|
for key in totals:
|
||||||
|
|||||||
@@ -1709,6 +1709,35 @@ def generate_gap_analysis(
|
|||||||
)
|
)
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
|
# ---- Section 4: Acknowledged gaps (unsourceable files) ----
|
||||||
|
|
||||||
|
all_unsourceable: list[dict] = []
|
||||||
|
for emu_name, data in sorted(report.items()):
|
||||||
|
for u in data.get("unsourceable", []):
|
||||||
|
all_unsourceable.append({
|
||||||
|
"name": u["name"],
|
||||||
|
"emulator": data["emulator"],
|
||||||
|
"reason": u["reason"],
|
||||||
|
"source_ref": u.get("source_ref", ""),
|
||||||
|
})
|
||||||
|
|
||||||
|
if all_unsourceable:
|
||||||
|
lines.extend([
|
||||||
|
"## Acknowledged Gaps",
|
||||||
|
"",
|
||||||
|
f"{len(all_unsourceable)} files documented as unsourceable "
|
||||||
|
"(verified from source code).",
|
||||||
|
"",
|
||||||
|
"| File | Emulator | Reason | Source ref |",
|
||||||
|
"|------|----------|--------|-----------|",
|
||||||
|
])
|
||||||
|
for u in sorted(all_unsourceable, key=lambda x: x["name"]):
|
||||||
|
lines.append(
|
||||||
|
f"| `{u['name']}` | {u['emulator']} | {u['reason']} "
|
||||||
|
f"| {u['source_ref']} |"
|
||||||
|
)
|
||||||
|
lines.append("")
|
||||||
|
|
||||||
lines.extend(["", f'<div class="rb-timestamp">Generated on {_timestamp()}.</div>'])
|
lines.extend(["", f'<div class="rb-timestamp">Generated on {_timestamp()}.</div>'])
|
||||||
return "\n".join(lines) + "\n"
|
return "\n".join(lines) + "\n"
|
||||||
|
|
||||||
|
|||||||
@@ -298,13 +298,23 @@ def _name_in_index(
|
|||||||
by_name: dict,
|
by_name: dict,
|
||||||
by_path_suffix: dict | None = None,
|
by_path_suffix: dict | None = None,
|
||||||
data_names: set[str] | None = None,
|
data_names: set[str] | None = None,
|
||||||
|
by_name_lower: dict[str, str] | None = None,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""Check if a name is resolvable in the database indexes or data directories."""
|
"""Check if a name is resolvable in the database indexes or data directories."""
|
||||||
|
# Strip trailing slash for directory-type entries (e.g. nestopia/samples/foo/)
|
||||||
|
name = name.rstrip("/")
|
||||||
if name in by_name:
|
if name in by_name:
|
||||||
return True
|
return True
|
||||||
basename = name.rsplit("/", 1)[-1]
|
basename = name.rsplit("/", 1)[-1] if "/" in name else name
|
||||||
if basename != name and basename in by_name:
|
if basename != name and basename in by_name:
|
||||||
return True
|
return True
|
||||||
|
# Case-insensitive by_name lookup
|
||||||
|
if by_name_lower:
|
||||||
|
key = name.lower()
|
||||||
|
if key in by_name_lower:
|
||||||
|
return True
|
||||||
|
if basename != name and basename.lower() in by_name_lower:
|
||||||
|
return True
|
||||||
if by_path_suffix and name in by_path_suffix:
|
if by_path_suffix and name in by_path_suffix:
|
||||||
return True
|
return True
|
||||||
if data_names:
|
if data_names:
|
||||||
@@ -345,6 +355,7 @@ def find_undeclared_files(
|
|||||||
declared_dd.add(ref)
|
declared_dd.add(ref)
|
||||||
|
|
||||||
by_name = db.get("indexes", {}).get("by_name", {})
|
by_name = db.get("indexes", {}).get("by_name", {})
|
||||||
|
by_name_lower = {k.lower(): k for k in by_name}
|
||||||
by_path_suffix = db.get("indexes", {}).get("by_path_suffix", {})
|
by_path_suffix = db.get("indexes", {}).get("by_path_suffix", {})
|
||||||
profiles = (
|
profiles = (
|
||||||
emu_profiles
|
emu_profiles
|
||||||
@@ -378,6 +389,10 @@ def find_undeclared_files(
|
|||||||
fname = f.get("name", "")
|
fname = f.get("name", "")
|
||||||
if not fname or fname in seen_files:
|
if not fname or fname in seen_files:
|
||||||
continue
|
continue
|
||||||
|
# Skip unsourceable files (documented reason, not a gap)
|
||||||
|
if f.get("unsourceable"):
|
||||||
|
seen_files.add(fname)
|
||||||
|
continue
|
||||||
# Skip pattern placeholders (e.g., <user-selected>.bin)
|
# Skip pattern placeholders (e.g., <user-selected>.bin)
|
||||||
if "<" in fname or ">" in fname or "*" in fname:
|
if "<" in fname or ">" in fname or "*" in fname:
|
||||||
continue
|
continue
|
||||||
@@ -416,7 +431,8 @@ def find_undeclared_files(
|
|||||||
if archive:
|
if archive:
|
||||||
if archive not in archive_entries:
|
if archive not in archive_entries:
|
||||||
in_repo = _name_in_index(
|
in_repo = _name_in_index(
|
||||||
archive, by_name, by_path_suffix, data_names
|
archive, by_name, by_path_suffix, data_names,
|
||||||
|
by_name_lower,
|
||||||
)
|
)
|
||||||
archive_entries[archive] = {
|
archive_entries[archive] = {
|
||||||
"emulator": profile.get("emulator", emu_name),
|
"emulator": profile.get("emulator", emu_name),
|
||||||
@@ -447,11 +463,20 @@ def find_undeclared_files(
|
|||||||
else:
|
else:
|
||||||
dest = f.get("path") or fname
|
dest = f.get("path") or fname
|
||||||
|
|
||||||
# Resolution: try name, then path basename, then path_suffix
|
# Resolution: storage flag, then name, then path basename
|
||||||
in_repo = _name_in_index(fname, by_name, by_path_suffix, data_names)
|
storage = f.get("storage", "")
|
||||||
|
if storage in ("release", "large_file"):
|
||||||
|
in_repo = True
|
||||||
|
else:
|
||||||
|
in_repo = _name_in_index(
|
||||||
|
fname, by_name, by_path_suffix, data_names, by_name_lower,
|
||||||
|
)
|
||||||
if not in_repo and dest != fname:
|
if not in_repo and dest != fname:
|
||||||
path_base = dest.rsplit("/", 1)[-1]
|
path_base = dest.rsplit("/", 1)[-1]
|
||||||
in_repo = _name_in_index(path_base, by_name, by_path_suffix, data_names)
|
in_repo = _name_in_index(
|
||||||
|
path_base, by_name, by_path_suffix, data_names,
|
||||||
|
by_name_lower,
|
||||||
|
)
|
||||||
|
|
||||||
checks = _parse_validation(f.get("validation"))
|
checks = _parse_validation(f.get("validation"))
|
||||||
undeclared.append(
|
undeclared.append(
|
||||||
|
|||||||
Reference in New Issue
Block a user