momo zone

调核人的blog

Monthly Archives: 六月 2009

win7_X64_build7201 下的胧村正

win7 64bit 下的模拟器比较难搞些,主要是显卡驱动难搞,我的X800 只能装手动安装驱动,否则就认不到.装完催化剂后就可以支持opengl 了(否则只能用D3D,会有贴图错误,win7自带的ATI驱动不支持opengl的)
然后记得安装DX runtime ,C++的runtime 不是必须的(X64 的一般都很全的)
模拟器版本是3025 , 非常流畅,平均都在60帧.
放些截图
 
 
 
胧村正醍醐味很浓,很传统的ACT游戏,而这类游戏以后恐怕只会越来越少. 能模拟Wii玩到它真的很幸运.

朧劍百鬼夜行 百姬傳


序章
百姬醒來,發現自己四周都是墳墓,心想難道自己來到了黃泉之國嗎……
正在哀嘆自己怎麼這麼苦命,一旁的靈魂卻讓百姬嚇了一大跳。
「你……你不就是襲擊雪之丞的暴徒嗎……!」

這個靈魂說自己名叫飯綱陣九郎,是朧劍流的劍豪。原來他為了成為朧劍流最強的傳人,
甚至不惜殺害自己的宗師。但是他卻染有肺病,已經來日無多。
於是他想到了一個邪門歪道:利用一把散發黑色光芒的妖刀,只要用這把刀砍殺人,
就能使用「移魂之術」將自己的靈魂轉移到目標的身上。而他看上的目標就是劍術精湛的
劍豪柳生雪之丞。沒想到在襲擊雪之丞的時候,百姬突然衝出來代替雪之丞挨了這一刀,
所以陣九郎的靈魂就這麼附在百姬身上。(真正的砍掉重練……)
這時突然陰風四起,出現了妖怪青和尚,當下之急是先擊退眼前的妖怪要緊。

一陣混亂之後,百姬的靈魂被剛才一旁的亂戒和尚帶走了。此時出現了一名女子紺菊,
她是伏見地區的妖狐,陣九郎開口問她東西拿來了沒有。原來紺菊對陣九郎傾心,
因此偷偷將刀匠村正的靈魂附身的面具從神社偷了出來,但是路上為了避開明神的使者
而繞了遠路。得到面具的陣九郎,就能夠過村正的力量打造妖刀了。
紺菊表示,帶走百姬靈魂的亂戒和尚逃到了江戶的吉原,也就是風化場所……


二章
追到吉原的陣九郎,好不容易在青樓裡找到了亂戒和尚。不過亂戒和尚說,
百姬的靈魂已經被妖怪輪入道給搶走了。由於百姬是找回移魂黑刀的重要線索,
因此陣九郎衝去找輪入道要回百姬的靈魂,其實就是用搶的啦。

戰勝以後,亂戒和尚表示柳生已經派出了大量追兵和忍者要追殺陣九郎。
同時陣九郎也為了找尋移魂黑刀的下落,因此決定親自去找雪之丞。
另外得知這把黑刀的來歷,是地獄鬼卒讓人在地獄接受殘酷刑罰的時候,
讓人復活以繼續接受刑罰的工具。後來這工具被人從地獄偷了出來,打造成刀的模樣,
因此黑刀才擁有這種移魂的力量。


三章
在伊豆的海邊追到了雪之丞。雖然外貌是百姬,但是雪之丞還是認出了,
眼前的百姬就是之前意圖襲擊自己的狂徒陣九郎,因此兩人在海邊展開激戰。

眼看戰勝的陣九郎要對雪之丞不利,百姬的靈魂在情急之下,硬是將陣九郎的靈魂擠出了
身體。這就是愛情力量的偉大嗎……由於百姬堅決保護雪之丞,同時沒有移魂黑刀,
就算現在殺了雪之丞也無法移魂。因此陣九郎將目標先鎖定在奪回黑刀,
根據雪之丞所述,黑刀已經在襲擊雪之丞失敗之後交給鳴神藩藩主了,現在應該在庫房。
同時得知百姬就是鳴神藩藩主的女兒,因此陣九郎決定利用這一點,潛入鳴神藩。


四章
得知路上有僧侶埋伏,陣九郎目的是從甲州街道,迂迴經過飛驒前往美濃。
山裡遇到小猴子的話,牠會帶領百姬去泡溫泉。也不知道是陣九郎識相,還是覺得過意不
去,泡溫泉的時候居然會同意將身體還給百姬……同時偶爾會在溫泉裡碰到鬼助或紺菊。

好不容易爬到了山上,卻遇見了巨大的吃人妖怪一本だたら,
連一隻腳指頭都比百姬大上好幾倍。
當然體型大不代表一定會贏,一番激戰之後打的妖怪現出原形,竟然是一隻超大野豬,
原來他為了不讓具有靈效的溫泉被人破壞,才刻意變成妖怪阻止人類進入。
同時還可以看到紺菊入浴的鏡頭……


五章
來到美濃國,「潛入」鳴神藩的城堡裡(大概沒有人這麼囂張的潛入吧)。
百姬一眼就認出這個現任藩主是父親的家臣顰彈正。原來他背叛了自己的主子,
私底下和幕府的忍者勾結,害的鏡見家被滅門。同時他還向德川幕府討到了藩主的位置,
濫用自己的力量為非作歹,也就是時代劇裡常見的「惡代官」角色。
旁人雖然看不出來,不過陣九郎馬上識破了顰彈正身上散發出來的妖氣。
因此顰彈正現出自己的力量:一種叫做「鵺」的怪物和陣九郎交戰。

想也知道這種笨蛋不會是陣九郎的對手。陣九郎逼問顰彈正說出黑刀的下落,但是他卻說
庫房裡根本沒有什麼黑刀。諒他也不敢說謊……那麼黑刀有可能是被地獄鬼卒拿回去了,
因為那畢竟是地獄裡的東西,不應該存在於世界上。因此陣九郎要求紺菊帶路,
他決定親自闖地獄一遭,奪回黑刀。


六章
從山城國的京都六道路口前往地獄。在地獄裡見到一些人的鬼魂,包括八十八的父親,
(就是經常四處旅行的兩人組,穿黃衣服的),說因為八十八在他死的時候沒有供養,
才會害他下地獄。等八十八來到地獄,一定要好好教訓他。同時還會見到剛才的顰彈正,
他也被幕府砍了腦袋下地獄來了。

往深處走會遇見負責看守這一區的大鬼,沒想到陣九郎的靈魂一下子就被大鬼吞了下去。
這下可好,手無寸鐵的百姬在地獄裡根本就是上天無路下地無門。眼見不知道如何是好的
時候,百姬卻突發奇想……她自動走到大鬼面前,要求大鬼將自己一口吞下肚子裡去,
還說這是目前人界吃沙西米最新的吃法,千萬不可以咀嚼哦。
被吞到肚子的百姬果然遇到陣九郎的靈魂,連陣九郎都誇獎百姬的急智。現在可以展開
反擊了。

擊敗大鬼之後陣九郎逼問黑刀的下落,但是大鬼卻說沒有……再鬧下去怕會驚動閻羅王,
陣九郎只好離開地獄。既然黑刀的線索斷了,陣九郎只好另外尋找方法。
而他所想到的方法就是通過天門,只要能進入天界的高天原,就能獲得神通力成為天魔。
因此他吩咐紺菊帶路,從伊勢國前往天門。


七章
一路從伊勢國殺到高天原的入口,在天門前碰到了風神和雷神。
(小的是風神,大的是雷神,而且這雷神還是女的……)雖然雷神也看出百姬弱女子的
外表之下是不尋常的力量,不過當然不會就這麼放她過去。於是陣九郎拔刀和雷神應戰。

一陣混戰之後雷神和陣九郎都摔到地上。雖然沒有什麼大礙,但是從伊勢通過天門的方法
已經行不通,再打下去也沒有意義。不過陣九郎還不死心,因為通往天界高天原的入口
不只伊勢,在大和國也有。只不過大和國的天界入口在真言蓮華宗的總本山金剛山,
也就是一直追殺陣九郎的僧侶們……


大結局
一路殺到總本山的大殿,卻遇到雪之丞。雪之丞表明自己不是來討戰的,而是從亂戒和尚
那裡聽到了百姬所受的苦。這時雪之丞竟然拿出黑刀來,原來黑刀一直在雪之丞的身上,
怪不得陣九郎怎麼找都找不到。雪之丞要求陣九郎離開百姬的身體,代價是可以幫陣九郎
找個死刑犯的身體,不過陣九郎卻打著趁機奪取雪之丞身體的歪主意。

這時候明王的左右護法,制吒迦童子和矜羯羅童子突然出現,並且將黑刀奪走。
「讓我試試看,號稱神佛兩斷的妖刀村正是否真的名不虛傳吧。」
陣九郎於是拔劍對付明王像和左右護法。木像身上有些地方有結界,得先打跑兩個護法
才能針對這些地方破壞。
解決了木像之後,不動明王真身顯靈……

「什麼神佛兩斷,在明王面前簡直弱不禁風……」
只見明王一擊就將陣九郎的刀打斷,陣九郎眼見刀被毀,也終於放棄了想要成為天魔的
念頭。不過百姬的魂魄畢竟還在,因此陣九郎向明王求情,寧願自己下地獄贖罪,
換取讓百姬回到人界。
最後百姬也對陣九郎甘願犧牲換取自己的性命有所感動,情願出家為陣九郎超渡……


大結局之二
來到總本山的山頂,卻見到紺菊的狐狸妹妹,而且還遍體鱗傷。
原來紺菊將面具從神社偷出來的事情曝了光,不僅紺菊被抓,稻荷明神的使者還率人
包圍了金鋼山要抓陣九郎。此時弓弦葉現身,同時還有被剝奪神通力,變回原形的紺菊。
而弓弦葉找來對付陣九郎的人就是同樣使用朧流劍法的鬼助。而陣九郎也從鬼助身上
散發的殺氣認出,他就是師匠朧夜千十,而且還使用了朧流祕奧義合魂之術和鬼助的
靈魂結合。因此這場仗也等於是朧流最強傳人的決定戰。

勝利後的陣九郎以為自己終於成為朧流最強傳人,沒想到鬼助在臨死之前奇襲,
讓陣九郎也受了重傷。眼見自己性命也即將不保,陣九郎心中強烈的願望,就是朧流
不要就此失傳……

鏡頭來到半年後,百姬在一間茶棧工作,並且很親切的稱呼茶棧的老夫婦。
同時也看到狐狸模樣的紺菊,不過老夫婦卻稱呼百姬為阿朧。原來半年前百姬倒在這間店
的門口,老夫婦好心收留了百姬。雖然百姬大難不死,但是卻失去了記憶,只有口中不斷
唸著「朧」和「陣九郎」,因此老夫婦也就稱呼百姬為阿朧。
某一日惡鬼出現在茶棧,做勢要吃掉百姬。只見百姬持刀,一瞬間就解決掉了惡鬼。
百姬也認為自己再待下去,只會讓老夫婦再度遭到惡鬼的襲擊,因此依依不捨告別
救命之恩的老夫婦,並且踏上尋找自我之旅,同時也想弄清楚「陣九郎」這三個字代表
什麼意義。

於是,江湖上出現了一位女劍豪,她以高超的劍技闖蕩四方,接連二三擊敗各大流派……


大結局之三
同第一個結局,雪之丞要求陣九郎歸還百姬的身體,代價是可以幫陣九郎物色新的身體。
破壞明王像之後,不動明王真身顯靈……

鏡頭來到美濃的鳴神城門前,陣九郎竟然回到了自己的身體裡。
難道剛才的激戰一切都是夢嗎?
不,仔細想想,或許是朧村正的影響吧。號稱神佛兩斷的村正,
連過去的因緣和業果都能夠斬斷,
所以陣九郎等於是回到了在鳴神城門前襲擊雪之丞的那天晚上。
這時候陣九郎想通了,一切的業障都肇因於當天晚上他襲擊雪之丞,只要他不動手,
就不會落得這種下場。
因此陣九郎目送雪之丞和百姬兩人卿卿我我離開……(其實這樣反而更想扁雪之丞吧?)
「我改變了命運……這樣你滿意了吧,村正……」

然後鏡頭轉到大和的柳生家大廳內,雪之丞和百姬已經結為連理,兩人恩愛的模樣
真叫人嫉妒……羨慕。
從此雪之丞退出了歷史的舞台,不過依然在幕後活躍著。而百姬也正如其名,
活到了百歲,並且和雪之丞育有三子。
當雪之丞想為自己的流派取個新名字的時候。
「這個……就命名為朧……不,飯綱流吧。」

妖刀村正忍法帖 鬼助傳


序幕
失去記憶的鬼助,被伊賀忍者群追殺。
從這些忍者的口中得知,鬼助自從接受了奪取某把刀的任務之後
性情大變,被伊賀忍者眾視為叛徒。
雖然不明究理,但是總不能坐以待斃,因此鬼助被迫還擊。

打贏之後出現一名自稱弓弦葉的神秘女子,她是伏見稻荷明神(狐仙)的使者,
為了成就怨靈刀匠村正的遺願,因此將村正妖刀交給鬼助,並且跟著鬼助同行。
村正的目的是打造最強的妖刀,只要斬殺活物就能吸取靈魂以打造妖刀。
現在鬼助正被伊賀忍者追殺,沒有理由不收下好刀的道理。


二章
到伊賀忍者的大本營去一探究竟。伊賀忍者眾對鬼助的敵意絲毫未減,
同時有一名叫做柳生雪之丞的武士,鬼助說自己不認識他,
他聽了之後勃然大怒,說鬼助連雇用自己的主人都忘了。
這時候一陣天搖地動……原來鬼助硬闖的時候破壞了結界,
而這個結界是為了鎮壓建造城堡的時候犧牲的一百名「人柱」
(註:犧牲活人,祈禱工程順利完成的祭品)的怨靈。
現在怨靈變成了大蜈蚣作亂,雖然伊賀忍者在追殺鬼助,但鬼助還是出手相助。
「一想到這是因為我的緣故,如果不出手的話,晚上睡覺都無法安寧啊。」

伊賀忍者還是一口咬定這是鬼助的幻術,不過雪之丞給他一個將功贖罪的機會:
到美濃國找鳴神藩的鏡見家公主虎姬,鎮壓她起兵叛亂的意圖。


三章
來到美濃國見到虎姬,卻看到她騎在一匹幽靈鬼馬上(死靈法師?),
旁邊都是鏡見家家臣的亡靈武士。而且虎姬似乎認識鬼助,大罵鬼助別再騙她了。
在摸不著頭緒之下,鬼助還是拔刀和虎姬一戰。

戰勝之後鬼助卻因為某些原因而手下留情……這時虎姬才說明自己要反叛的原因。
原來她們鏡見家族密藏了一把妖刀「狗頭龍村正」,這把妖刀代代都由鏡見家
具有靈力的女性(巫女~)負責封印。結果將軍卻看上了這把刀,
因此硬逼鳴神藩藩主,也就是虎姬的父親自盡。
虎姬一心要完成封印狗頭龍村正的使命,不惜起兵反抗將軍。
於是鬼助就目送虎姬率領亡靈起兵前往江戶。(真的是死靈法師……)


四章
直覺認為虎姬和自己有著不尋常的關係……鬼助追著虎姬來到了三河。
沒想到卻在秋葉山看到被殲滅的鏡見家亡靈武士。原來這座山脈的結界
讓這些亡靈武士難以跨越雷池,同時又出現了一名自稱降魔巫女的小夜。
她認定鬼助和這些亡靈是一夥的,因此和鬼助大打出手。

戰勝以後鬼助終於想起忘卻的記憶……原來鬼助當時就是被派遣前往鏡見家偷取
狗頭龍村正的忍者之一,但是鬼助卻對虎姬產生了愛慕之情,
因此在鏡見家被滅門的時候,鬼助代替虎姬挨了一刀而瀕臨死亡。
在死亡之際出現了朧劍流的宗師朧夜千十,他對於朧劍流有著超乎常人的執著,
但是卻被自己的徒弟殺害,因此雖然死亡,但是靈魂依然在尋找對象,
讓連神佛都能斬殺的朧劍流能繼續流傳。瀕臨死亡的鬼助當然毫不猶豫答應了他的要求。
因此千十以移魂之業和鬼助的靈魂結合,讓鬼助從瀕臨死亡的重傷奇蹟似的復原。


五章
亡靈武士說虎姬人在大和的善禱寺,於是鬼助跟著過去。
到了大殿卻看到大殿佈滿了蜘蛛網,原來妖怪土蜘蛛佔據了佛寺,同時也抓住了虎姬
準備開動。鬼助立刻衝上前去斬殺鬼蜘蛛,救出虎姬。
不過一旁的法然和尚看到虎姬卻很驚訝,原來這法然和尚是鏡見家的遠親,
鏡見家被滅門的時候,虎姬還是他親手埋葬的。
這時虎姬才說,她對封印狗頭龍村正使命的執著感動了佛祖,因此佛祖特地開恩,
讓虎姬可以在人界待到七七四十九天,因此虎姬才有能力率領亡靈武士。


六章
虎姬為了招兵買馬而來到了八幡原的川中島古戰場。這裡曾經是戰國時代
武田信玄和上杉謙信交戰的地方,亡靈數量相當多。
沒想到卻被以血狂毘沙門率領的亡靈軍隊打敗,虎姬陷入危機。
這時候鬼助為了愛人,當然義無反顧單挑大將。經過一番激戰總算戰勝,
卻中了對方臨死前的反擊而身負重傷……幸好有弓弦葉帶來的明神靈藥,才保住一命。

鬼助醒來之後,得知虎姬為了破壞江戶城的結界,前往富士山要破壞靈脈。
因此再度追著虎姬前往富士山。


七章
虎姬破壞靈脈的行動觸怒了龍神的逆麟,連代表稻荷明神的弓弦葉勸說也無效。
鬼助只好先和龍神打一架,讓龍神清醒一點再說。
同時弓弦葉也透露為何要一直跟著鬼助,原來自古狐狸和狗就是仇敵,
而被稻荷明神消滅的犬神附在狗頭龍村正上,因此弓弦葉一方面幫助村正完成願望,
同時希望鬼助能消滅附身在狗頭龍村正上的犬神。

龍神清醒之後也透露,現在江戶城的結界很不安定。龍神必須負責鎮住富士山的靈脈,
否則富士山會爆發。所以現在江戶成就沒有結界保護,因此虎姬可以前往江戶成了。


大結局
殺進江戶城的鬼助,看到的卻是倒在地上奄奄一息的虎姬。
原來將軍德川綱吉獲得了狗頭龍村正,又吸收了結界的靈力,被村正上的犬神控制。
而犬神意圖利用這股靈力開啟天門,只要通過天門,犬神就能獲得神通力而變成天魔。
(江戶幕府五代將軍德川綱吉是何許人也?他就是頒布「生殺哀憐之令」,
 打蚊子要被流放,射鳥要被處死刑,搞的大家雞飛狗跳的傢伙。同時他耗費鉅資
 飼養了上萬隻野狗,被後人譏為「犬將軍」。)

「就算殺你一百次也難消我心頭之恨……!」
雖然辛苦戰勝了犬神,但是鬼助對於自己無法挽救虎姬而懊惱不已。
透過狗頭龍村正的妖力讓鬼助見到了佛祖,鬼助向佛祖求情,
希望能以自己的生命換取虎姬。
但是佛祖卻說,人死不能復生是天地萬物之理,而且虎姬已經洗淨罪業升天,
何必再重返苦海輪迴?
「連個女人也救不了,什麼神魔兩斷!什麼狗屁妖刀!」
最後鬼助以切腹表達對佛祖無言的抗議,結束了短暫而波瀾壯闊的一生……

這時虎姬向佛祖求情,希望自己能和鬼助在一起,不論鬼助淪落修羅道或是畜生道……

物換星移,鏡頭來到一名貌似鬼助的少年在祠堂旁嬉戲,不過名字卻叫鎮兵衛。
同時還有一名自稱是お花的女子,她說晚上經常夢到狐仙對她說,她的名字是虎姬。
而鎮兵衛也說自己夢到狐仙說他叫鬼助,兩人相談甚歡。一旁還看到柳生雪之丞說,
鎮兵衛的面貌極像十幾年前的一名少年……
原來鬼助投胎轉世後,成為八十八的兒子。
(八十八就是在遊戲中四處旅行的雙人組,穿黃色衣服的那個)
而跟著鬼助投胎轉世的虎姬,也生在平凡人家。但是根據輪迴轉世之理,
兩人都忘卻了轉世之前的記憶,於是弓弦葉扮起月下老人想撮合兩人。
這對命運坎坷的情侶,終於可以在平凡的人生中共續續這段前世的因緣……


大結局之二
殺進江戶城的鬼助,看到一名帶刀的女子,但是她竟然對鬼助拔刀相向……
而虎姬說,這名女子就是自己的妹妹百姬,但是卻又不是,彷彿別人似的。
詢問旁邊的靈魂才發現,百姬的身體已經被別人的靈魂佔據。
而佔據身體的不是別人,正是殺害朧劍流宗師朧夜千十的不肖徒弟,飯綱陣九郎。
陣九郎發現朧夜千十以合魂之術和鬼助的靈魂結合,所以鬼助才會朧劍流。
為了斬草除根,陣九郎決定除掉鬼助,讓自己成為朧劍流最強的傳人。

打敗陣九郎之後,陣九郎的靈魂也被朧劍流斬殺而魂飛魄散。
然而虎姬的大限已到,唯一掛念不下的就是還在人世的百姬。
因此虎姬將百姬託付給鬼助,希望鬼助能好好照顧百姬。

畫面一轉,一個被花魁大夫(江戶時代的藝妓)拒絕的男子,拔出一把叫做籠釣瓶村正
的刀要砍人。這時鬼助出現,一出手就解決了這個大笨蛋,旁邊跟著鬼助的是百姬。
原來世上還有許多村正妖刀,一般人隨意拔刀的話,很容易受到控制而不自覺想砍人。
兩人雲遊四方的目的就是破壞流傳在世上的妖刀。看他們兩人的親密樣,
好個只羨鴛鴦不羨仙……


大結局之三
擊敗了德川綱吉之後,鬼助回到了美濃的明神藩大廳,而且身負偷刀的使命。不過……
「就算丟了性命也不能去偷刀,只要能保護虎姬,忍者之里的戒條算什麼……」
這時候鬼助注意到背上有條蜈蚣……不,是刀傷。
「這不是刀傷嗎……竟然和夢裡的刀傷一樣,那麼這刀是……斬斷因業的刀,朧村正?」
下定決心的鬼助,決定背叛忍者之村脫逃,並且帶著狗頭龍村正一起走。
「即使妳覺得我卑鄙也無妨,我絕對不會讓妳再死第二次……」
而虎姬在鬼助的告知下,也察覺到家臣顰彈正謀反的陰謀。

當鬼助再度出現在虎姬的面前時,虎姬要求鬼助將刀還給她。
「稻荷明神託付的使命已經結束了,妳不知道嗎?弓弦葉那女人竟然這麼混。
 我的劍術可是能自在操使妖刀靈刀的朧流,狗頭龍村正在我的手上絕對無法為惡。
 別那麼驚訝……妳不相信我無妨,我已經向佛祖立誓。所以妳已經是自由之身,
 不用再肩負封印妖刀巫女的任務了……」
「噢……船要開了。我要到異國去斬殺惡鬼魔神,耗盡狗頭龍的怨念。
 如果朧夜千十說的沒錯,朧流是天下第一劍術,那麼就比比看狗頭龍和朧流誰先敗吧。
 不過我一定會回來的,到時候妳要嫁給我啊!」

asus 好阴险啊

有两年没有升级P5B-D 主板的BIOS了(~ 两年没用台式机了嘛) , 今天特意下载准备升级,过程十分顺利,然后reboot , 黑屏 …….
 
不要紧张,拔掉电源再打开电源就能初始化coms(华硕主板的独门绝技!!)。ok ,点亮了,然后去超频,  折腾了2个小时,外频只能上到375MHZ ,这怎么行啊,主频只有2.4G ~~  然后继续折腾…….不行要放弃了,也许这个bios 不适合超频。打算刷回老版本,
 
令人心跳的事情发生了  :ASUS 不让刷回老版本了~~~ 。 哭了,赶紧去用AMI 官方工具去刷,抱错了,无论是win还是dos 都会报“不支持AFU"  , 这个也是asus 的独门绝技了,只有asus的工具才能刷asus的bios ,我冷静了一下估计是asus的刷新工具搞得鬼,换主板自带的老版本试试, 抱着极大的希望 …. 最终… 可以刷了 , 现在 E6300 又能驰骋在3.25G 的主频了。
 
现在回想一下,还是后怕阿,万一最后那招不灵,岂不是要拔下bios 花钱去刷咯 。有P5B-D 的同志还是继续有1101 版吧,这个还是最能超的。
 

系统 学习 vim

这几年一直半吊子似的用vi编辑代码,实在忍无可忍了 ,要系统学习一番了,预计3天完成 。
开始修行 。

:#,#s/ted/mny/gc
:%s/mnt/gcm/g
……………

晕头转向 啊

关于 pulse-audio 的 一个框架图

升级到最新的 X-server 后 fglrx 挂了 ……

升级到 xorg-x11-7.4-32.4 后 …

(II) LoadModule: "glx"
(II) Loading /usr/lib/xorg/modules/extensions//libglx.so
dlopen: /usr/lib/xorg/modules/extensions//libglx.so: undefined symbol: miInitVisualsProc
(EE) Failed to load /usr/lib/xorg/modules/extensions//libglx.so
(II) UnloadModule: "glx"
(EE) Failed to load module "glx" (loader failed, 7)
(II) LoadModule: "fglrx"
(II) Loading /usr/lib/xorg/modules/drivers//fglrx_drv.so
(II) Module fglrx: vendor="FireGL – ATI Technologies Inc."
        compiled for 1.4.99.906, module version = 8.56.4
        Module class: X.Org Video Driver
[atiddxSetup] X version mismatch – detected X.org 7.1.-1.3, required X.org 7.4.-1.906
(II) UnloadModule: "fglrx"
(II) Unloading /usr/lib/xorg/modules/drivers//fglrx_drv.so
(EE) Failed to load module "fglrx" (module requirement mismatch, 0)
(EE) No drivers available.

已提交bug report ,希望官方赶紧修复

Pulse audio and SPDIF output in Kubuntu (Hardy Heron 8.04)

Pulse audio and SPDIF output in Kubuntu (Hardy Heron 8.04)




at
1:16 AM

Preface

Here I will explain how I got my Realteck ALC888 SPDIF digital output working with pulseaudio in Kubuntu Hardy Heron (8.04).

Background (rant so skip if you are in a hurry)

I have a MSI board with integrated Realtek ALC888 Audio card that came with analog outputs only. Fortunately these boards usually come with a SPDIF header where you can connect a SPDIF
bracket to get a digital output. These brackets are difficult to get
and in my case I had to call the main board dealer (calling customer
support) and they sold me one for about USD/30.00. Another alternative
I considered was to buy a cheap sound card with SPDIF outputs for about the same amount like the ENVY24HTS-PCI or the CMI8768-8CHPCI but the idea of wasting the ALC888 was daunting.

I needed the SPDIF ouput because my ALLA VIBRAR 5.1ch Headphones have only SPDIF (Coax and Fiber) inputs.

After trying a lot, and I mean a LOT!, alsa
was not working well with my Headphones, anything I played througth the
digial output would be accompanied by all kinds of artifacts (cracks,
skips, pauses) coming out from the headphones.

So I decided to try the recent pulseaudio and once I got my audio working I never looked back at alsa again.

For
some reason pulseaudio did not came as default with any of the beta, rc
and final installations of Hardy Heron (Kubuntu 8.04 KDE4) so here is
how I managed to get Pulseaudio working for me.

Pulse Audio in Kubuntu (Hardy Heron 8.04)

First we install the necessary packages:


sudo aptitude install pulseaudio libao-pulse pulseaudio-module-hal

  pulseaudio-module-x11 pulseaudio-utils libsdl1.2debian-pulseaudio

and then create a .asoundrc configuration file to tell all ALSA applications to use pulse.

pcm.!default {

    type plug

    slave {

         pcm "spdif"

     }

}

This
configuration file will set pulseaudio as the default sound server and
in this particular case it will also set the digital (SPDIF) output as default. If you prefer the analog outputs simply remove the type plug and slave sections.

The above configuration works and I get sound on the SPDIF
output but I also have a stereo jack in the front panel of the PC that
was getting wasted. So after some research I got the following asoundrc
configuration file:

pcm.!default {

    type pulse

    type plug

     slave {

         #pcm "spdif"

         pcm multi

     }

     ttable.0.0 1.0

     ttable.1.1 1.0

     ttable.0.2 1.0

     ttable.1.3 1.0

}

clt.!default {

   type pulse

}

pcm.stereo {

  type pulse

  type plug

  slave {

  pcm multi

  }

  ttable.0.0 1.0

  ttable.1.1 1.0

  ttable.0.2 1.0

  ttable.1.3 1.0

  }

 

 ctl.stereo {

  type pulse

  card 0

  }

pcm.multi {

  type multi

  slaves.a.pcm "analog-hw"

  slaves.a.channels 2

  slaves.b.pcm "digital-hw"

  slaves.b.channels 2

  bindings.0.slave a

  bindings.0.channel 0

  bindings.1.slave a

  bindings.1.channel 1

  bindings.2.slave b

  bindings.2.channel 0

  bindings.3.slave b

  bindings.3.channel 1

  }

 

 ctl.multi {

  type hw

  card 0

  }

I
really do not understand this file so don’t ask. This configuration
file also allows output from the front stereo jack so I can have both
the 5.1ch headphones on SPDIF and an additional stereo headphone working simultaneously.

Starting the server
Let us start the pulseaudio server so we can test some applications:


1 pulseaudio –system=1 –high-priority=1 -D

The recomended way to start the pulseaudio system is per user/session so instead of editing the /etc/default/pulseaudio file I simply create a pulsestart.sh script and put it in our KDE Autostart dir (i.e. $HOME/.kde4/Autostart).


1 !#/bin/bash

2 pulseaudio –system=1 –high-priority=1 -D

This
way everytime I start KDE the pulseaudio server gets started too. Now
with the server running we need to tell our applications to use it
instead of directly accessing alsa.

Pulse audio with Amarok in Kubuntu (Hardy Heron 8.04)
This one is the easiest as it has a configuration panel that allows you to choose the output plugin. See screenshot:

Pulse audio with MPlayer in Kubuntu (Hardy Heron 8.04)

MPlayer
in Kubuntu Hardy Heron comes by default with pulseaudio support and in
fact uses it as default. If it is not default then you can also force
mplayer to use pulse audio with the -ao pulse switch. One way
to check if mplayer is really using pulseaudio is to run mplayer from
command line and look for a line that looks like AO: [pulse] 48000Hz 2ch s16le (2 bytes per sample). If instead you see alsa or anything else between the square brackets then something is wrong with your installation.

Pulse audio with SDL applications in Kubuntu (Hardy Heron 8.04)

Most
games in Linux (i.e. Urban Terror) use SDL audio so we must ensure all
SDL applications use the pulseaudio server. When you install the
pulseaudio packages this should be done automatically but one bug was preventing the dependency manager to install the needed package: libsdl1.2debian-pulseaudio with:

sudo aptitude install libsdl1.2debian-pulseaudio

Installing this package will enable SDL applications to use the pulseaudio server. We can check this by running a game like Urban Terror and looking at the console. We should see something like:

—— Initializing Sound ——
Initializing SDL audio driver…
SDL audio driver is "pulse".
SDL_AudioSpec:
Format: AUDIO_S16LSB
Freq: 22050
Samples: 1024
Channels: 2
Starting SDL audio callback…
SDL audio initialized.

Pay attention to the SDL audio driver and see what it says. If it says alsa or anything different from pulse then you are not using pulse audio.

Pulse audio with Flash player in Kubuntu (Hardy Heron 8.04)

This one is a little more complicated as we need to install an experimental library but not that complicated and it worked flawlessly in Konqueror and Firefox. Simply follow the next steps:


1 sudo aptitude install  build-essential automake1.9 autoconf libtool libesd0-dev libpulse-dev libssl-dev

2 git-clone http://git.0pointer.de/repos/libflashsupport.git/ libflashsupport

3 cd libflashsupport

4 ./bootstrap.sh

5 make

6 sudo make install

What
we are doing here is installing some dependencies, downloading the
source code of the library from a Git repository, compiling, installing
and that is it. Now we have pulse audio support in flash.

The
only way I can test that flash is really using the pulseaudio server is
to play a flash video and at the same time play music in amarok. If
flash is using pulseaudio then you should be able to hear both the
flash audio and amarok music simultaneously. If flash is not using
pulse audio then the flash video will have no sound or amarok will not
play any audio.

Pulse audio with AC3/DTS pass thru in Kubuntu (Hardy Heron 8.04)
Ok so not everything is perfect and pulseaudio does not solves all my desires. The whole idea of the digital ouput (SPDIF)
is to be able to send raw AC3 sound to my headphones receivers. This
offers the best quality since these headphones have a hardware AC3
decoder so I can get full 5.1 channel surround sound out of them. The
problem is that pulseaudio is not able to pass thru the AC3/DTS streams
to the SPDIF output.

The solution is to use alsa in this case with the mplayer hwac3 switch like:

mplayer -ac hwac3

that
works perfect and there is no need to stop the pulseaudio server. The
only inconvenient is that you cannot use any other sound application
while the AC3 audio is playing. This is because during the time the AC3
audio is playing alsa is taking control of the sound card and all other applications that rely now in pulseaudio cannot get access to the card.

In
my case is not really that big of a problem because when I am seeing a
DVD I do not want to hear any other sounds from my PC like knotify.

speaker-test

I also had alot of problems with non-functioning or garbled SP/DIF
ouput. For instance when using VLC with a surround DVD it will set the
SP/DIF output configuration to 192 kHz or something, rendering output
useless for my DCC-900. After stopping VLC it will not revert to the
previous setting, and there is no easy way of setting up the SP/DIF
configuration.

But you can still set the ouput to your liking by using the terminal
program "speaker-test". You can supply arguments to it like amount of
channels, sampling rate etc to test speakers, but happily enough it
also sets SP/DIF configuration to the values you use in this tool and
the output retains this till another program changes it.

For inspiration, I use this command in the terminal to get the right sampling rate on the output for instance:
speaker-test -Dspdif -r44100 -c2 -f3000 -tsine

-Dspdif = output to use
-r44100 = sampling frequency/stream rate
-c2 = number of channels
f3000 = test signal frequency
tsine = waveform

To get a description of more options type ‘speaker-test –h’ or ‘man
speaker-test’ and play around a little with the values and the output
format, maybe it will help you.

修改该ATI 卡的Framebuffer设定

因为换了显示器需要调整framebuffer
 
[问题]

我的显卡是ati X800的显卡,显示器分辨率1920×1200,在Archlinux启动的时候,没办法启用Framebuffer,控制台非常的难看。

[尝试1]

在Grub里给内核加参数:

代码:
kernel /vmlinuz26 root=/dev/hdaX ro video=vesafb:mtrr:3,ywrap,1920x1200-32@60

没有任何效果

[尝试2]

在Grub里给内核加参数:

代码:
kernel /vmlinuz26 root=/dev/hdaX ro vga=0x31B video=vesafb:mtrr:3,ywrap

有效果,启用vesafb,但是分辨率不够,只有1280×1024

[解决方案]

让内核启动的时候启用radeonfb模块,查了一下资料,需要对initrd.img(kernel26.img)做一下设定。
a) 编辑/etc/mkinitcpio.conf文件。
在MODULES="aaa bbb …" 里追加radeonfb:

代码:
# MODULES # The following modules are loaded before any boot hooks are # run. Advanced users may wish to specify all system modules # in this array. For instance: # MODULES="piix ide_disk reiserfs" MODULES="ata_generic ata_piix radeonfb"

b)重新生成initrd.img(kernel26.img):

代码:
mkinitcpio -p kernel26

c) 修改Grub配置文件:

代码:
kernel /vmlinuz26 root=/dev/hdaX ro video=radeonfb:mtrr:3,ywrap,1920x1200-32@60

重新启动,成功启用1920×1200的Framebuffer.。

解决alsa兼容 oss时/dev/dsp 丢失问题

该脚本会依据内核已编译的驱动,重新加载alsa模块。能解决很多设备找不到的问题。
#!/bin/sh
# Load the mixer settings and OSS compatibility for ALSA.
# (the Advanced Linux Sound Architecture)

# A function to load the ALSA mixer settings:
load_alsa_mixer() {
  if [ -r /etc/asound.state ]; then
    echo "Loading ALSA mixer settings:  /usr/sbin/alsactl restore"
    /usr/sbin/alsactl restore
  else
    echo "ALSA warning:  No mixer settings found in /etc/asound.state."
    echo "  Sound may be muted.  Use 'alsamixer' to unmute your sound card,"
    echo "  and then 'alsactl store' to save the default ALSA mixer settings"
    echo "  to be loaded at boot."
  fi
}

# A function to load the ALSA OSS compat modules:
load_alsa_oss_modules() {
  if ! cat /proc/modules | grep -w snd-pcm-oss 1> /dev/null 2> /dev/null ; then
    echo "Loading OSS compatibility modules for ALSA."
    modprobe snd-pcm-oss
    modprobe snd-mixer-oss
  fi
}

# If hotplug or something else has loaded the ALSA modules, then
# simply load the mixer settings and make sure the OSS compat
# modules are loaded:
if [ -d /proc/asound ]; then
  load_alsa_mixer
  load_alsa_oss_modules
else
  # If there are ALSA modules defined in /etc/modules.conf, but
  # ALSA is not yet loaded, then load the modules now:
  DRIVERS=`modprobe -c | grep -E "^[[:space:]]*alias[[:space:]]+snd-card-[[:digit:]]" | awk '{ print $3 }'`
  if [ ! "$DRIVERS" = "" ]; then
    echo "Loading ALSA kernel modules."
    for module in $DRIVERS; do
      modprobe $module
    done
  fi
  # If ALSA is now up, then load the mixer settings and OSS modules:
  if [ -d /proc/asound ]; then
    load_alsa_mixer
    load_alsa_oss_modules
  fi
fi

bash 下的判断语句

运算符 描述 示例

文件比较运算符
-e
filename
如果
filename存在,则为真
[ -e /var/log/syslog ]
-d
filename
如果
filename为目录,则为真
[ -d /tmp/mydir ]
-f
filename
如果
filename为常规文件,则为真
[ -f /usr/bin/grep ]
-L
filename
如果
filename为符号链接,则为真
[ -L /usr/bin/grep ]
-r
filename
如果
filename可读,则为真
[ -r /var/log/syslog ]
-w
filename
如果
filename可写,则为真
[ -w /var/mytmp.txt ]
-x
filename
如果
filename可执行,则为真
[ -L /usr/bin/grep ]
filename1-nt
filename2
如果
filename1
filename2新,则为真
[ /tmp/install/etc/services -nt /etc/services ]
filename1-ot
filename2
如果
filename1
filename2旧,则为真
[ /boot/bzImage -ot arch/i386/boot/bzImage ]

字符串比较运算符
(请注意引号的使用,这是防止空格扰乱代码的好方法)
-z
string
如果
string长度为零,则为真
[ -z "$myvar" ]
-n
string
如果
string长度非零,则为真
[ -n "$myvar" ]
string1=
string2
如果
string1
string2相同,则为真
[ "$myvar" = "one two three" ]
string1!=
string2
如果
string1
string2不同,则为真
[ "$myvar" != "one two three" ]

算术比较运算符
num1-eq
num2
等于 [ 3 -eq $mynum ]
num1-ne
num2
不等于 [ 3 -ne $mynum ]
num1-lt
num2
小于 [ 3 -lt $mynum ]
num1-le
num2
小于或等于 [ 3 -le $mynum ]
num1-gt
num2
大于 [ 3 -gt $mynum ]
num1-ge
num2
大于或等于 [ 3 -ge $mynum ]

有时,有几种不同方法来进行特定比较。例如,以下两个代码段的功能相同:

 if [ "$myvar" -eq 3 ]
then
echo "myvar equals 3"
fi


if [ "$myvar" = "3" ]
then
echo "myvar equals 3"
fi

上面两个比较执行相同的功能,但是第一个使用算术比较运算符,而第二个使用字符串比较运算符。

字符串比较说明

大多数时候,虽然可以不使用括起字符串和字符串变量的双引号,但这并不是好主意。为什么呢?因为如果环境变量中恰巧有一个空格或制表键,bash
将无法分辨,从而无法正常工作。这里有一个错误的比较示例:

 if [ $myvar = "foo bar oni" ]
then
echo "yes"
fi

在上例中,如果 myvar 等于
"foo",则代码将按预想工作,不进行打印。但是,如果 myvar 等于 "foo
bar oni",则代码将因以下错误失败:

 [: too many arguments

在这种情况下,"$myvar"(等于 "foo bar oni")中的空格迷惑了
bash。bash 扩展 "$myvar" 之后,代码如下:

 [ foo bar oni = "foo bar oni" ]

因为环境变量没放在双引号中,所以 bash
认为方括号中的自变量过多。可以用双引号将字符串自变量括起来消除该问题。请记住,如果养成将所有字符串自变量用双引号括起的习惯,将除去很多类似的编程错误。"foo
bar oni" 比较
应该写成:

 if [ "$myvar" = "foo bar oni" ]
then
echo "yes"
fi