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月27日 星期六

Parallels Desktop加入其它實體硬碟

最近電腦因為更新Tahoe結果失敗導致得用Apple Configurator重置整台電腦,花了一周重新弄好環境跟回復備份,Bootcamp裝好後又回到以前遇到的難題:讓PD加入其它實體硬碟。其實已經有前人研究好方法了,自己以前也是用這個方法成功過,但是這次因為重新分割硬碟所以又得重做一次,又遇到很多問題。好不容易在許多try & error之後成功了,這邊記錄一下:
 
1. 外接NVME磁碟不行。這邊的"外接",意思是NVME SSD是裝在PCI-E轉卡上的,但OS顯示它是external。本來是想讓Windows的資料碟放在這個NVME上面的,然後VM啟動就把它掛到VM底下當成實體硬碟。但問題是PD雖然有抓到,但是不管怎樣啟動VM時就是會顯示無法找到該磁碟。猜測是PD根本就不支援"external"硬碟,因為以前也有試過把Windows裝在該NVME上面,但PD搜尋Bootcamp分區時都不會顯示那個磁碟...。也許有其它的PCI-E介面卡可以讓OS辨識為internal? 這邊不太確定。
 
2. 已經知道external NVME不行了,那還是用回SATA磁碟。這邊按照前人的步驟弄好,config.pvs內的設定還有幾個地方要注意:
  • <Size>的值是硬碟容量,單位是MBytes,可用diskutil info <drive>中的Disk Size (xxx bytes)除以1048576取整數部份就好。
  • <DiskVersion>需設定為2 (重要!!),範例裡是填0,也許PD14可以,但PD19不行。這邊還好還有留以前舊硬碟的設定,比對一下跟著改成2,啟動時就不會一直顯示分割區有錯。
  • <CompatLevel>設定level2 (跟DiskDescriptor.xml裡一樣)
  • 最重要的,在VM設定加入硬碟後,記得要在啟動順序裡「取消」新加入硬碟的啟動,因為這個卡關了一小時,因為PD怎麼樣都不會把磁碟掛到VM上。
成功加入硬碟的話,會看到設定裡可以按選擇分區:(External NVME的話不會顯示這個按鈕)
 
 
到這邊啟動VM,PD應該就能自動unmount加入的磁碟,然後掛到VM上面去。研究了兩天總算回到以前熟悉的環境👐。

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,再把程式拉回來看看好了。