在完成了基礎(chǔ)步驟之后,王秋陽所編撰的6502同顯最大發(fā)色數(shù)的謎底,也水到渠成。和同色號發(fā)色一樣,漸近色號也能夠通過相同的原理完成同屏發(fā)色。
比如死機的花屏顏色,現(xiàn)在已經(jīng)排除了黑階,灰階兩種色號。如果再人為的制造花屏,電腦會自動尋找剩下的顏色,比如藍屏,紅屏都很正常。
接下來,就是使用漸近色號,取代原本電腦默認的花屏色號。比如用02色號深藍取代12號湛藍,又比如用07號深紅取代05號正紅。
只要在重新Hack游戲的時候,把五十二種色號全部排選一遍,最后在理論上就能夠使用任何一個色號。這就是6502同顯六十四色號的原理。
這套匯編理論,也是二十一世紀的百度達人“周哥”完成的。王秋陽曾經(jīng)用它Hack過好幾款游戲,記憶尤深,如今也能把它很明晰的描述了出來。
首先,
ch_join:;色號(02)進棧
inc p_stack
bne ch_join02
inc p_stack
ch_join02:
ldy #$00
sta (p_stack),y
rts
然后,留存進棧數(shù)據(jù),到達另一個棧,也就是臨時貯存器’
et_stack03:;色號出棧到(02’)
ldy #$00
lda (p_stack),y
ldy p_stack
dey
sty p_stack
cpy #$ff
back
dec p_stack
rts
接下來,新色號再次指定入棧條件
Inftosuf04:
c #12;“’“
bne inftosuf #12’
jsr ch_join ;遇“’”時直接入棧’
j inftosuf02 ;返回02循環(huán)
最后,得出棧頂算符優(yōu)先級別,在(top_lev)中
ldy #$00
sty top_lev
lda (p_stack),y
c #12;“(“
beq stack_lev06 ;把棧中的“(”設(shè)為0級
c #$00
beq stack_lev06
ldx #$ff
如此一來,電腦原本顯示藍屏的色號,就由12替換成02,都是藍屏。
湛藍的色號是12。
假設(shè)X等于3
lda $2002, x;
從內(nèi)存地址($2002+3)處載入數(shù)據(jù),即從$2005處;
假設(shè)Y等于2
lda $2000, y;
從內(nèi)存地址$2002處載入數(shù)據(jù)
其中:load和store指令可以采用一個標(biāo)簽作為基地址。
通過代碼:
solabel:.in “our.pal“;顯示一個pal文件,
標(biāo)簽即為它的首地址lda solabel, x;
從標(biāo)簽表示的地址+X處向12載入一個值y.
于是色號02被鎖死,但貢獻出12這個色號可以任意使用。
再重復(fù)一遍這個步驟,把12色號鎖死,用22色號代替。這個時候02色號將獲得釋放,它和22色號將能夠達到同顯,于是發(fā)色數(shù)又增加了一款!
在理論上,6502的五十二款色號,將有一個將永遠無法使用。而實際上,在排選的過程中,可以通過釋放灰階00和10兩個色號,將被鎖死的色號由兩個相同灰階色號中的30取替,就像最開始釋放02的時候一樣。
這個時候,再進行第二遍排選。
6502的黑色色號有十一款之多,分別是0D至3D,0E至3E,1F至3F。由此可以相繼貢獻出十款被鎖死,從而取替出十種可使用的彩色色號。
最后6502鎖定了一款灰階和十款黑色,單片機除了顯示最初不占用內(nèi)存,也就是肉眼判定為黑色(0D),白色(灰階20)兩款色號之外,還能使用剩余彩色中的任意二十二款色號。
這就是FC現(xiàn)在能夠達到的最頂尖的機能。
“好吧,我對此無話可說?!睓M井俊平放下了日志本,感覺好像看了一場大片一樣。他整個人都有些虛脫,但又有一種難言的滿足感。
“二十四色!能夠真正運用于游戲中的,可以達到同顯二十四色?黑科技,黑科技,貨真價實的Hack!”
“這是真的,數(shù)據(jù)是不會騙人的,我要見見這個人。如果他能夠改良一款游戲,我和上村先生將有理由說服社長,把目光重新轉(zhuǎn)移到主機之上!”
橫井俊平坐了起來,拿起了電話,撥通了冬野美紀的公寓:“喂,美紀醬?是我,橫井叔叔。我,想見見這位寫匯編的人?!?br/>
冬野美紀也并不意外:“您知道不是我寫的?”
橫井俊平笑了笑:“你別生氣,如果是,橫井叔叔倒會驚訝了。告訴我,這個人在哪兒?”
冬野美紀說道:“您昨天還請他吃過飯呢。”
“什么?真的是他!”
……
九月九日,星期三。
“您好橫井先生,沒有想到又能有幸受到您的邀請。”
這天放學(xué),冬野美紀再次將王秋陽約了出來。不過這一回并沒有帶上胖子和夏雨詩,因為這是比較正式的會面,發(fā)出邀請的正是橫井俊平。
王秋陽的劇本很成功。不光是匯編寫得好,一步步將橫井俊平勾搭了出來。同時他也把握住了身邊的機會,以冬野美紀同學(xué)的身份,蹭過一頓飯。
果然,兩人見面沒有那么生分的感覺,橫井俊平也不再為王秋陽只是一個普通大學(xué)生感到不必要的震撼了。他掏出了那本日志,微笑著放在了王秋陽的手上。
“年輕人,你真的把我吸引住了。沒有想到中國的留學(xué)生中,竟然還有這樣的人物,只是你的手段有些不夠漂亮。其實你直接向任天堂投稿,我也會采納你的提案?!?br/>
王秋陽實話實說:“橫井先生請見諒,因為我到底是外國人,如果突然涉及到FC的匯編,恐怕會引起不必要的麻煩。所以才會出此下策?!?br/>
橫井俊平聽了,也明白了王秋陽的意思:“你說得也有道理。美紀啊,你真是認識了一位了不起的年輕人呢!”
冬野美紀的臉色又是微微發(fā)紅,不過目光中頗有些驕傲的神采。
橫井俊平說道:“現(xiàn)在剛剛放課,想來你們也餓了吧?我們先去吃飯,然后橫井叔叔想和王君好好討論一下FC的發(fā)展!王君,你想吃點什么?”
王秋陽撓了撓頭,說道:“老是蹭飯,怪讓人不好意思的。橫井先生,如果您不介意,我想吃那個行嗎?”
現(xiàn)在亰都還在“黃金周”,大小街道比平時更要熱鬧許多。二人順著王秋陽的手指望去,見街邊有一個手推式的面包鋪。
“密瓜包?”橫井俊平有些哭笑不得。中國的男孩喜歡吃甜食嗎?
王秋陽也有些不好意思,只說道:“在中國的時候就特別想嘗一嘗日夲的密瓜包了,可惜一直沒有機會。如今來了這里,又囊中羞澀……”
“行,就吃它吧。你要幾個?”
“六個!”