顯示具有 ARCADE 標籤的文章。 顯示所有文章
顯示具有 ARCADE 標籤的文章。 顯示所有文章

2025年11月14日 星期五

MVS MV1FZ 維修記錄 #9

MVS MV1FZ 維修記錄 #9

忙了一陣子總算有時間繼續處理MVS的部份。PCB也已經收到一陣子了,花了一點時間把CPLD焊到PCB上,開始思考各個IO要怎麼配置,手焊配線的時候才不會很混亂。 

再來就是最麻煩的部份了:總共48條線得一個個焊到MVS跟CPLD板上。邊作才發現自己的CPLD板留下來的test pad距離太近,加上老花眼實在是非常挑戰自己的焊接功力。分兩天好不容易才完成:


雖然看起來密密麻麻,但其實做的事情還蠻單純的,Verilog的程式也才80行而已,不考慮空間的話也可以用74-series IC來湊出一樣功能。

焊好後上機測試!

YES!diag測試通過,z80部份測試也都正常了。接下來準備把CPLD再拆下來(?)要來把它放到主板正面。在背面很容易不小心就碰到其它東西,而且正面還有塑膠殼部份保護住相對安全一點。

2025年10月11日 星期六

MVS MV1FZ 維修記錄 #8

MVS MV1FZ 維修記錄 #8

開始準備用CPLD來取代NEO-C1的損壞部份。已經有前人解析出NEO-C1內部完整邏輯了,以這個為出發點,稍微整理一下需要用CPLD實作有哪些。目前已知D12跟D13是有問題的,所以跟這部份有關聯的都需要。大致上就是68k <-> z80溝通用的register,IN00~IN27,SD0~SD7,還有跟register讀寫有關的位址線和控制訊號。不過因為要用的CPLD是XC9572XL-VQ64,IO有52個,但實際需要的IO有53個,得需要思考一下有哪些IO是可以省略的。

看了一下MV1FZ的schematic,看起來IO24~IO27其實是直接連到VCC的,所以其實可以不需要這4個IO,直接在verilog裡面實作這部份就好。這樣子IO數就夠了,verilog的部份也很快速地實作完。再來就是得想一下要怎麼把CPLD接到板子上測試,畢竟有可能實作會有bug,用一般的轉板有點太大而且還需要給XC9572XL的+3.3V電源,還是自己設計一個小小轉板好了:

很簡單的轉板,把所有的IO都拉出來到test pad上方便焊線,左下角則是+3.3V LDO,中間一排則是燒錄用的JTAG。

再來就是等送pcb廠了,不過得等手邊其它案子的pcb完成之後跟著一起生產,得先放置一陣子了。

2025年9月30日 星期二

MVS MV1FZ 維修記錄 #7

MVS MV1FZ 維修記錄 #7 

已經確定D12是有問題之後,又再一次檢查,其實D13也是一樣跟VCC電阻只有數百歐母。先懷疑的是NEO-C1,看了一下pinout,還好在IC邊邊還算好處理,努力用鑷子跟烙鐵把D12跟D13解焊然後在pad上簡單貼個膠帶絕緣:


就這樣直接上電測試了,開機沒問題準備重測BRAM跟WRAM:

就正常了😃,放了一整晚跑測試也沒問題👐。所以真的確定NEO-C1是問題原因,不過要找到替代品有點困難。但網路上已有人解析出完整的邏輯,也許可以用個CPLD把損壞的部份替代掉?這邊還要再研究一下。

2025年9月24日 星期三

MVS MV1FZ 維修記錄 #6

MVS MV1FZ 維修記錄 #6

把1SS352換成BAT760後, BRAM總算能夠正常開始測試了。不過放著讓它跑大概30分鐘左右就又跑出錯誤:

懷疑也許還是電源有問題,快速用三用電表量了一下也有4.8V,應該不至於電壓不足。把跟BRAM有關的電解電容換掉也還是一樣。沒頭緒下,先測試WRAM的部份好了,結果一樣一開始沒問題,但放久之後會錯誤: 

看了一下錯誤的內容,怎麼覺得有點類似。都是EXPECTED 8080但是ACTUAL 9080,都是D12有問題。這樣問題有可能不是在BRAM或WRAM上,而是其它也有使用68K data bus的元件上。

簡單用三用電表確認一下D12跟VCC之間的電阻:

 

304歐母,似乎有點太低。再量一下其它data bus信號跟VCC的電阻值:

 

29.05M,這看起來比較正常,到這邊幾乎可以確定D12信號是有問題的,只不過犯人是誰...。第一個當然先懷疑是已經確定有問題的NEO-C1了,而且NEO-C1也有用到data bus中D8-D15。不過要怎麼確定有點麻煩,也許先想辦法把NEO-C1接到D12的接腳先解焊試看看?

2025年9月23日 星期二

MVS MV1FZ 維修記錄 #5


MVS MV1FZ 維修記錄 #5

準備要詳細測試細部功能,基本目標是每個部份都能跑一小時都沒問題之後,再讓每個部份能跑過一整晚。 

馬上就檢查出BRAM錯誤,首先用三用電表看一下BRAM電壓:

BRAM VCC=4.3V,看一下BRAM(CXK58257AM)的datasheet

 

要求的最小工作電壓是4.5V,看來BRAM測試不過的原因應該就是它了。翻到PCB背面看一下BRAM電源是怎麼產生的:

 

把原本蓋在上面的塑膠片跟泡棉移除後稍微看一下,電池的供電從D4過來,然後+5V經由D3。一般運作時就只跟D3有關。看一下1SS352的datasheet:

VF居然至少有0.62V,這樣子BRAM VCC最多也只會有5 - 0.62 = 4.38V,跟三用電表測出來的值差不多。

解決方法一個是把BRAM換掉,改用工作電壓範圍比較寬鬆的IC。另一個是換掉D3改用VF較低的二極體。手邊剛好有多的BAT760:

 

電流100mA時,VF只有0.3V左右,這樣子BRAM VCC也有4.7V,就決定先這樣修改了。 

2025年9月15日 星期一

MVS MV1FZ 維修記錄 #4

MVS MV1FZ 維修記錄 #4

又花了一點時間看一下neogeo-diag-bios的程式,打算讓它跑完測試後直接進入按鈕測試。幸好它的架構簡單明確而且程式都有分好功能,一下子就修改好了:

 

還未接上任何搖桿,畫面上就看得出來P1D鈕一直卡在按下狀態,P2則是上下左右都按下狀態。接上搖桿測試後P1只有上下左右和A鈕還有START跟SELECT正常,P2則是完全失效。但是從示波器是可以看到進入NEO-C1的狀態是正常的,看來NEO-C1真的有問題。

不過還是想嘗試其它的測試,想把可能有問題的部份都找出來。但是只有A鈕有反應一定過不了測試完的畫面,只能再改程式讓它不要判定ABCD同時按了。好在這部份也蠻好改的,花了一點點時間就修改完畢,連帶其它測試畫面會需要用到ABCD鈕的部份也都改成對應到上下左右,免得之後測試麻煩。


 改完收工,詳細測試等之後再說吧。

2025年9月14日 星期日

MVS MV1FZ 維修記錄 #3

MVS MV1FZ 維修記錄 #3

準備來修改neogeo-diag-bios,至少能讓它做完基本68K相關測試。

自已是mac環境,按照說明準備好vasm跟vlink相關的編譯跟設定後,準備編譯neogeo-diag-bios。但在make時候會出現以下錯誤💥:

gen-crc-mirror.c:57:9: error: call to undeclared function 'htobe32'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   57 |   crc = htobe32(crc);
      |         ^
1 error generated.

這是因為macos缺少htobe32的定義,網路上可以找到很多解決方法。加入定義後就可以正常建出sp1.bin和m1.bin了👍。

稍微看一下sp1.asm瞭解一下架構後,嘗試小修改,再燒錄到EPROM上之後測試:

 


總算看到正常的結果💪,版本顯示a99是我自己改的,方便確認是自己修改的版本。但是按ABCD仍然無法進入MAIN MENU,看來按鈕輸入部份真的有問題了💦。

接下來要再詳細看一下程式看是否能在初步測試完成後進到MAIN MENU中,因為按鍵測試要從那邊才能進入啊😵。 

2025年9月13日 星期六

MVS MV1FZ 維修記錄 #2

 MVS MV1FZ 維修記錄 #2

到手兩顆M27C1024🙌,準備用來寫入neogeo-diag-bios和uni-bios。

首先把原本PCB上的原廠BIOS解焊下來,然後裝上圓孔IC座,再裝上已寫入neogeo-diag-bios的EPROM後開機測試💥。

快速閃過許多測試畫面,最後停在這邊。看起來是在測試Z80部份出錯😓。但是按照說明這部份除非有在開機時按下特定按鈕才會觸發,因為這段需要在卡匣CHA板上裝上專用的M1測試ROM才能正常測試。

詳細看了一下neogeo-diag-bios的說明,這部份是要在開機時按住D鈕才會進入,開始懷疑是不是按鈕輸入的部份有問題💭。不過用示波器看了一下各按鈕的輸入狀態也都正常,那會不會是處理按鈕輸入的IC有問題😵,因為Z80 ERROR是代表68K跟Z80之間溝通有問題,可能的原因就有Z80本身,Z80 RAM或是溝通用的IC,剛好按鍵輸入跟溝通部份都是在neo-c1這個IC上面處理,看來neo-c1的嫌疑最高了。

不過還是想把68K的部份完整測試完,所以得想個辦法讓測試程式能夠不要檢查按鍵輸入。最直接的方法是直接改neogeo-diag-bios讓它強制不會進入Z80測試,幸好它有在gihub上公開source code,再把程式拉回來看看好了。

2025年9月12日 星期五

MVS MV1FZ 維修記錄 #1

MV1FZ維修記錄 #1。

初步檢查:

1. PCB相對乾淨但灰塵多,電池沒有漏液。JAMMA輸出銅箔露出,可能之前環境潮濕導致氧化嚴重。

2. 24MHz XTAL外表鏽蝕。

3. 右下角U17跟RTC以及左下角音量VR有維修痕跡。

4. 背面DIP IC針腳多嚴重彎曲,可能之前有砸到地上...👀?

先將DIP IC針腳用尖嘴鉗跟鑷子慢慢扳正,避免互相短路。處理完IC針腳後三用電表測試GND與其它電源都無短路。移除電池後準備上電測試💥。

上電測試無火花或爆電容,測量各電源電壓皆在正常範圍內。接上電視顯示Z80 ERROR,希望不要是Z80本身或是YM2610損壞⋯🙏。


 

不過到這邊至少知道68K這部份應該還正常運作,先關閉電源然後準備水洗PCB💦。 

水洗後丟到除濕機上努力除濕至少一天。

中間空檔來準備好neogeo-diag-bios,細部的系統檢查就要靠它了。