Connomore64: Giả lập C64 chính xác theo chu kỳ sử dụng nhiều vi điều khiển

BigGo Editorial Team
Connomore64: Giả lập C64 chính xác theo chu kỳ sử dụng nhiều vi điều khiển

Máy tính Commodore 64 tiếp tục truyền cảm hứng cho những người đam mê phần cứng hàng thập kỷ sau khi ra mắt, với đổi mới mới nhất là một bộ giả lập chính xác theo chu kỳ sử dụng cách tiếp cận độc đáo để tái tạo trải nghiệm của máy tính 8-bit biểu tượng này.

Nhiều vi điều khiển làm việc song song

Dự án Connomore64 sử dụng cách tiếp cận mới cho việc giả lập C64 bằng cách sử dụng nhiều vi điều khiển RP2040/RP2350 làm việc song song, mỗi vi điều khiển giả lập các thành phần cụ thể của hệ thống gốc. Khác với các phần mềm giả lập truyền thống chạy trên một bộ xử lý duy nhất, cách tiếp cận phân tán này cho phép thời gian chính xác đến từng micro giây khớp với phần cứng gốc. Dự án kết nối các vi điều khiển giá rẻ này (chi phí dưới 1 euro mỗi chiếc) bằng bus 8-bit ghép kênh chạy ở tốc độ khoảng 8 MHz, tạo ra một hệ thống có thể giao tiếp với các thiết bị ngoại vi C64 gốc.

Thông số kỹ thuật của Connomore64

  • Vi điều khiển: Nhiều RP2040/RP2350 (dựa trên ARM Cortex M0+)
  • Kết nối liên thông: Bus 8-bit ghép kênh chạy ở tốc độ ~8 MHz
  • Đầu ra video: DVI/HDMI
  • Đầu ra âm thanh: Dựa trên SIDKick pico (sử dụng giả lập reSID)
  • Cổng tương thích: Userport, IEC (ổ đĩa mềm), cổng joystick
  • Hỗ trợ tải nhanh: JiffyDOS, Transwarp
  • Hình dạng phần cứng: PCB tùy chỉnh vừa với vỏ C64 nguyên bản
  • Chi phí tiềm năng: Dưới 20€ cho các triển khai tùy chỉnh nhỏ hơn

Khả năng tương thích với phần cứng thật là điểm nổi bật

Điều làm cho Connomore64 đặc biệt thú vị đối với cộng đồng máy tính hoài cổ là khả năng giao tiếp với phần cứng C64 gốc. Trong khi các bộ giả lập trên PC như VICE cung cấp chất lượng giả lập cao, chúng thường thiếu thời gian thực chính xác cần thiết để làm việc với các thiết bị ngoại vi vật lý. Connomore64 hỗ trợ cổng người dùng của C64, cổng IEC cho ổ đĩa mềm, cổng joystick, và đang hướng tới khả năng tương thích với cổng mở rộng.

Tôi yêu thích điều này! C64 đã giới thiệu tôi đến với thế giới máy tính khi còn nhỏ. Tôi vẫn giữ chiếc máy gần 40 năm tuổi đó trong bộ sưu tập của mình, nhưng tôi luôn lo lắng mỗi khi bật nó lên. Cái này tốt hơn MiSTer ở chỗ tôi có thể sử dụng các thiết bị ngoại vi vật lý với nó.

Khả năng tương thích này mở rộng đến các bộ tải nhanh như JiffyDOS và Transwarp, giúp tăng đáng kể tốc độ tải dữ liệu từ ổ đĩa mềm. Dự án đã được thử nghiệm với nhiều thiết bị ngoại vi khác nhau bao gồm phần cứng cổng người dùng WiC64, chứng minh ứng dụng thực tế của nó vượt xa việc chỉ đơn thuần là giả lập.

Cân bằng giữa độ chính xác và hiệu suất

Mặc dù dự án hướng đến giả lập chính xác theo chu kỳ, một số thành viên cộng đồng đã lưu ý một lựa chọn thiết kế thú vị liên quan đến hiển thị đồ họa. Nhà phát triển đã viết lại mã hiển thị đồ họa để chạy nhanh hơn 5-10 lần so với các triển khai trước đó, nhưng phải đánh đổi một số khả năng tương thích. Quyết định này đã tạo ra cuộc thảo luận về sự cân bằng giữa độ chính xác hoàn hảo và hiệu suất thực tế, đặc biệt là với sức mạnh xử lý hạn chế của các vi điều khiển RP2040/RP2350.

Hiện tại, dự án chỉ giả lập nửa chu kỳ CPU của mỗi chu kỳ C64, điều này hạn chế khả năng tương thích tiềm năng với một số băng mở rộng. Nhà phát triển lưu ý rằng mặc dù có mã cho chu kỳ Phi thấp, các vi điều khiển không đủ nhanh để xử lý nó, điều này cho thấy những thách thức kỹ thuật trong việc đạt được giả lập hoàn hảo trên phần cứng tương đối khiêm tốn.

Những Hạn Chế Hiện Tại

  • Chỉ mô phỏng nửa CPU của mỗi chu kỳ C64
  • Việc hiển thị đồ họa hy sinh một số tính tương thích để đạt tốc độ cao hơn
  • Hỗ trợ cổng mở rộng vẫn đang trong quá trình phát triển
  • Chưa sẵn sàng cho người dùng cuối (đang ở giai đoạn thử nghiệm khái niệm)

Vượt xa sự hoài niệm: Một thành tựu kỹ thuật

Các cuộc thảo luận trong cộng đồng cho thấy sự quan tâm đến giả lập C64 vượt xa sự hoài niệm đơn thuần. Sự kết hợp độc đáo giữa những hạn chế và khả năng trong C64 gốc tiếp tục truyền cảm hứng cho các lập trình viên và người đam mê phần cứng. Như một người bình luận đã lưu ý, CPU 8-bit với không gian địa chỉ 16-bit, ngôn ngữ assembly đơn giản và các thiết bị ngoại vi được ánh xạ bộ nhớ đã tạo ra một môi trường thúc đẩy các lập trình viên phát triển các kỹ thuật sáng tạo tạo ra những kết quả tưởng chừng như không thể trên lý thuyết.

Dự án Connomore64 cũng là một ví dụ về việc chạy phần mềm đòi hỏi nhiều tính toán trên các vi điều khiển giá rẻ, công suất thấp, được kết nối với nhau, có thể cung cấp những hiểu biết cho các ứng dụng điện toán phân tán khác.

Tình trạng hiện tại và tiềm năng tương lai

Hiện tại, Connomore64 chạy hầu hết các trò chơi mà không gặp vấn đề, bao gồm các tựa game kinh điển như Mayhem in Monsterland, R-Type, Bubble Bobble và Turrican. Nó cũng xử lý được phần lớn các bản demo đẩy phần cứng gốc đến giới hạn của nó. Mặc dù dự án được mô tả là một bằng chứng về khái niệm và chưa sẵn sàng cho người dùng cuối, nó đã chứng minh tiềm năng đáng kể.

Nhà phát triển đã tạo ra một PCB tùy chỉnh vừa với vỏ C64 gốc, có các cổng C64 tiêu chuẩn cùng với các đầu ra HDMI và âm thanh hiện đại. Những khả năng trong tương lai bao gồm các PCB tùy chỉnh nhỏ hơn, tiết kiệm chi phí hơn, có thể giảm tổng chi phí xuống dưới 20 euro, biến đây thành một lựa chọn dễ tiếp cận cho những người đam mê C64 muốn bảo tồn trải nghiệm máy tính hoài cổ mà không cần phải rủi ro với phần cứng gốc đã cũ của họ.

Đối với những người quan tâm đến các chi tiết kỹ thuật, dự án được xây dựng dựa trên một số dự án mã nguồn mở hiện có, bao gồm bộ giả lập rp2040js, thư viện giả lập chips, PicoDVI cho đầu ra video và một phiên bản của firmware SIDKick pico cho âm thanh. Cách tiếp cận hợp tác này nhấn mạnh sức mạnh của cộng đồng mã nguồn mở trong việc bảo tồn và mở rộng lịch sử điện toán.

Tham khảo: Connomore64