2 điểm bởi GN⁺ 2025-01-01 | 1 bình luận | Chia sẻ qua WhatsApp
  • dca3-game là bản port GTA III/VC cho Dreamcast do The Gang thực hiện, một dự án nhằm chạy các game thế giới mở của Rockstar trên hệ máy console cũ
  • Bản port dựa trên re3, mã nguồn reverse hoàn chỉnh của GTA III/VC, và sử dụng KallistiOS làm môi trường phát triển Dreamcast
  • Để tạo CDI, cần có bản cài đặt Grand Theft Auto III hoặc Grand Theft Auto: Vice City; phiên bản đã được kiểm thử là Grand Theft Auto: The Trilogy
  • Lộ trình tạo được khuyến nghị là Google Notebook; cách thủ công yêu cầu DreamSDK r3 và git-scm nên không phù hợp với người dùng phổ thông
  • Trên trình giả lập, cần tắt tùy chọn trails để tránh lớp phủ trắng; 24 bpp và Anti Aliasing hiện vẫn là các thiết lập thử nghiệm

Tính chất của dca3-game

  • dca3 là bản port GTA III/VC cho Dreamcast
  • Được The Gang thực hiện và dựa trên re3
  • re3 là mã nguồn reverse hoàn chỉnh của GTA III/VC
  • Dự án được khởi xướng bởi Stefanos Kornilios Mitsis Poiitidis và sử dụng KallistiOS

Tạo CDI: khuyến nghị dùng Google Notebook

Tạo CDI: cách thủ công

  • Cách thủ công không được khuyến nghị cho người dùng phổ thông
  • Cần có bản cài đặt Grand Theft Auto III hoặc Grand Theft Auto: Vice City
  • Một số phiên bản có thể không hoạt động; đã có trường hợp d4_gta.mp3 bị hỏng
  • Cần có bản sao hợp lệ không có file hỏng, nếu không quy trình sẽ không chạy
  • Công cụ cần thiết:
  • Clone kho lưu trữ trong DreamSDK shell bằng git clone --branch beta https://gitlab.com/skmp/dca3-game.git

Build GTA III: liberty

  • Tạo thư mục liberty và sao chép các file GTA III vào đó
    • Nếu dùng bản 2 CD-ROM, cũng phải sao chép nội dung của play disc vào cùng thư mục
  • Tải liberty prebuilt elf từ bản phát hành beta và giải nén dca-liberty.elf vào thư mục dreamcast
  • CDI cho GD-EMU được tạo bằng make cdi-prebuilt
    • Thời gian xử lý khoảng 5~15 phút
    • Do vấn đề của DreamSDK, lần chạy đầu có thể không hoàn tất hoàn toàn nên cần chạy lại cùng lệnh đó
    • Sau khi hoàn tất sẽ tạo ra dca-liberty.cdi với dung lượng khoảng 900MB
  • CDI để ghi ra CD-ROM được tạo bằng make FOR_DISC=1 cdi-prebuilt
    • Thông báo hoàn tất là *** CDI Baked Successfully***
    • File kết quả phải có dung lượng khoảng 700MB hoặc 260MB
    • Nếu dung lượng không đúng, chạy rm -rf repack-data rồi bắt đầu lại bước đó từ đầu

Build GTA Vice City: miami

  • Tạo thư mục miami và sao chép các file GTA:VC vào đó
  • Tải miami prebuilt elf từ bản phát hành beta và giải nén dca-miami.elf vào thư mục dreamcast
  • CDI cho GD-EMU được tạo bằng FOR_DISC=2 make cdi-prebuilt
    • Thời gian xử lý khoảng 5~15 phút
    • Do vấn đề của DreamSDK, lần chạy đầu có thể không hoàn tất hoàn toàn
    • Có thể cần đóng cửa sổ DreamShell vài lần rồi khởi động lại quy trình
    • Sau khi hoàn tất sẽ tạo ra dca-miami.cdi với dung lượng khoảng 1.5GB
  • CDI để ghi ra CD-ROM được tạo bằng make FOR_DISC=1 cdi-prebuilt
    • Thông báo hoàn tất là *** Repack Completed Successfully***
    • File kết quả có dung lượng khoảng 700MB hoặc 550MB

Chạy và thiết lập đồ họa

  • Khi chạy trên trình giả lập, cần tắt tùy chọn trails trong phần thiết lập đồ họa
    • Nếu bật trails, có thể xuất hiện lớp phủ trắng trên phần render 3D
  • Có hai chế độ thử nghiệm trong thiết lập đồ họa
    • 24 bpp: 640x480x24
    • Anti Aliasing
  • Với đầu ra HDMI hoặc VGA, nên bật chế độ 24 bpp
    • Trong trường hợp này vẫn phải tắt hiệu ứng trails
  • Anti Aliasing hoạt động cả khi có hoặc không có trails
    • Khi trails đang bật, ảnh hưởng hiệu năng sẽ lớn hơn
  • Khi bật 24 bpp hoặc Anti Aliasing, một số hình học có thể bị thiếu trong các cảnh nặng
    • Khả năng này cao hơn ở chế độ AA
    • Có thể dùng cả hai chế độ cùng lúc

Báo cáo issue và giấy phép

  • Khi báo cáo issue, hãy chụp ảnh TV/màn hình và VMU rồi mở issue mới để mô tả vấn đề
  • Mã nguồn chỉ nên được sử dụng cho mục đích giáo dục, tài liệu hóa và modding
  • Không khuyến khích sử dụng bản sao lậu hoặc dùng cho mục đích thương mại
  • Các công việc phái sinh phải được giữ ở dạng mã nguồn mở và ghi công phù hợp

1 bình luận

 
GN⁺ 2025-01-01
Ý kiến trên Hacker News
  • Tốt nhất là nên giữ một bản sao mã nguồn ở đâu đó trước khi phía bản quyền của Rockstar gỡ xuống như lần re3 trước đây
    https://news.ycombinator.com/item?id=28402640
    https://news.ycombinator.com/item?id=26199879

    • re3 ít nhất đã quay lại online dưới một hình thức nào đó
      https://github.com/halpz/re3/
    • Engine re3 cần có một bản sao trò chơi để chạy, nên tôi không rõ vì sao họ lại phải gỡ đến mức đó
    • RE3 là sản phẩm của reverse engineering, tức là một triển khai tương thích ABI được suy ra dựa trên mã nguồn và logic gốc
      Lĩnh vực này luôn là vùng xám hoặc gần như bất hợp pháp một cách khá lộ liễu, và đó cũng chính là lý do Compaq nói rằng họ tạo BIOS theo cách clean room vào năm 1982
      Mỗi lần nghe những lời phàn nàn kiểu này là tôi lại ngán ngẩm. Nếu làm triển khai clean room như OpenRA thì về mặt pháp lý khá an toàn, còn dùng tài sản trí tuệ của người khác thì chỉ cần đủ gây chú ý là rất dễ bị đóng cửa
  • Ước gì Dreamcast tồn tại lâu hơn. Nhiều người đã đánh giá thấp việc chiếc console này xuất sắc đến mức nào
    Dù vậy tôi cho rằng phần lớn là do Sega đã không thúc đẩy hệ máy đủ mạnh. Tôi nghĩ phần cứng của nó vượt trội hơn nhiều so với PS2 ra mắt cùng năm, và có vẻ Sega cũng không cân nhắc đủ việc Dreamcast đắt hơn thế nào so với các máy cạnh tranh
    Dĩ nhiên XBOX cuối cùng đã đóng dấu số phận của nó

    • PS2 ra mắt ở Nhật muộn hơn hơn 1 năm, còn ở Bắc Mỹ thì sau DC vài tháng nhưng lại rơi vào mùa mua sắm cuối năm, nên thực tế gần như là ra mắt năm sau. Dù vậy chỉ riêng việc công bố cũng đã làm màn ra mắt của DC suy yếu đáng kể
      Tôi rất thích Dreamcast, sở hữu vài máy, trước đây từng hack với KallistiOS, và với cá nhân tôi nó có ý nghĩa lớn hơn PS2 nhiều, nhưng nói phần cứng của nó vượt trội áp đảo thì không đúng
      GPU có vài tính năng thú vị, VRAM và nén texture phần cứng cũng tốt nên chất lượng hình ảnh đẹp hơn, nhưng nó thua ở hầu hết các chỉ số quan trọng hơn như xử lý hình học, ánh sáng, fill rate, và thời đó đa số cũng không dùng đầu ra VGA
      “Emotion Engine” đúng là cồng kềnh so với kiến trúc tao nhã nơi SH-4 chỉ đơn giản được nối với PowerVR và AICA, nhưng về xử lý hình học thuần dấu phẩy động/SIMD và DMA thì có thể khai thác được nhiều hiệu năng hơn. Sự đơn giản của kiến trúc không quan trọng với phần lớn game thủ
      Một số game giai đoạn đầu trông rất tệ vì khó tận dụng phần cứng, nhưng nếu nhìn vào vòng đời của PS2 và các game hậu kỳ, đặc biệt là tác phẩm của Konami, thì chúng đã vượt khá xa năng lực của DC. DVD cũng vượt trội khách quan so với GD-ROM và còn tốt để làm máy xem phim
      Xbox ra mắt sau khi Sega đã khai tử Dreamcast, nên số phận đã được định đoạt từ trước đó rồi
      Sony có phóng đại hiệu năng PS2, nhưng nó có ổ DVD, đồ họa cũng đẹp hơn sau khi các nhà phát triển quen tay, lại có nhiều franchise mạnh và các tựa game hạng S hơn. Dreamcast có tỷ trọng game chuyển thể từ arcade quá lớn
      Trong thị trường thắng ăn cả thời đó, Dreamcast đã chịu thiệt đúng như vậy; nếu ra mắt năm 1998 với thư viện game lớn hơn, có lẽ nó đã có đường băng để cầm cự
    • PS2 có phát DVD, sự hậu thuẫn từ các franchise cực kỳ nổi tiếng, và phản ứng rất tích cực dành cho PS1
      Tôi không rõ nếu so thuần hiệu năng với Dreamcast thì thế nào, nhưng so với GameCube và Xbox thì PS2 chắc chắn đứng cuối về mặt đó. Cuối cùng, vì game và khả năng phát DVD, khác biệt ấy trở nên không còn quan trọng
    • Xbox ra mắt khá lâu sau khi DC đã bị ngừng sản xuất. Hơn nữa, một số người từng tham gia DC cũng tham gia Xbox
      Ở một khía cạnh nào đó, Xbox giống Dreamcast 2
    • Tôi tò mò bạn thấy phần cứng Dreamcast vượt trội áp đảo ở điểm nào. Theo trí nhớ của tôi thì CPU chậm hơn, GPU cũng chậm hơn, và bộ nhớ cũng ít hơn
    • Giá ra mắt của Dreamcast vào tháng 9/1999 tại thị trường Mỹ là 199 đô la
      Giá ra mắt của PlayStation 2 vào tháng 3/2000 tại thị trường Mỹ là 299 đô la
      https://en.wikipedia.org/wiki/Dreamcast
      https://en.wikipedia.org/wiki/PlayStation_2
      Vì vậy Dreamcast rẻ hơn PlayStation 2 rất nhiều. Tôi không rõ ý bạn là nó rẻ hơn chứ không phải đắt hơn, hay có chi tiết nào tôi đã bỏ sót
  • Đáng đọc: câu chuyện phát triển bộ ba GTA và IV [0]

    nguyên mẫu đầu tiên của gta3 chạy trên Dreamcast. Tất cả chúng tôi đều có Dreamcast và chơi Phantasy Star Online. Nhưng Dreamcast không tồn tại được lâu khi bị Playstation 2 lấn át, và chúng tôi đã chuyển hướng.
    [0] https://web.archive.org/web/20231120194646/https://insideroc...

  • Ảnh chụp màn hình ở đây
    https://dca3.net/screenshots/

    • Đúng vậy, trông đúng như ảnh chụp màn hình GTA3
  • Nhân tiện, vừa có một game Sonic 3D rất hay dành cho Sega 32X. Đó là bản port của “Sonic Robo Blast 2”, vốn dựa trên Doom

    • Một cái tên thật lâu rồi mới nghe lại. Có lẽ đã khoảng 20 năm rồi
  • Modern Vintage Gamer đã đăng một video rất hay về bản phát hành này, và gần như gọi đây là bản port đáng kinh ngạc nhất mà anh từng thấy
    https://www.youtube.com/watch?v=6MFN7QiF83M

  • Điện toán retro thật sự rất thú vị. Nó hoàn toàn đảo ngược khái niệm “console cũ”
    Không phải là giá trị bị giảm vì có lựa chọn tốt hơn, mà chúng trở thành những chiếc máy tính bất biến vĩnh viễn để lập trình viên nhắm tới
    Những console đã được sản xuất sẽ còn tồn tại lâu hơn nhiều trong tương lai. Chiếc N64 của tôi vẫn chạy tốt và đang chạy các ROM hack mới bằng Everdrive
    Ngay cả khi toàn bộ phần cứng hỏng hết, các emulator vẫn sẽ tiếp tục tồn tại, bảo tồn kiến trúc đó ở trạng thái bất biến
    Trước đây tôi từng nghĩ “tại sao lại viết phần mềm mới cho console cũ”, nhưng nhìn lại theo cách này thì nó thú vị không kém, thậm chí còn hơn, so với việc dùng phần mềm cho phần cứng hiện đại

    • Hoàn toàn đồng ý, và đi xa hơn một chút thì tôi cho rằng console và máy tính cũ là những máy ảo duy nhất sẽ sống lâu
      Nếu 500 năm nữa chúng ta vẫn còn tồn tại, tôi tin rằng mã nhắm tới NES có khả năng chạy được cao hơn mã nhắm tới các trình duyệt ngày nay, .NET hay JVM
      Các máy ảo cạnh tranh tuy được tài liệu hóa tốt nhưng cực kỳ phức tạp, và mã chạy trên chúng thường phụ thuộc vào những hành vi đặc thù của hệ điều hành hiện tại, trình duyệt, thậm chí cả phần cứng
      Ngoài ra, bản thân phần cứng retro chính là tài liệu tối thượng. Ngày nay, với thiết bị dễ tiếp cận, ta có thể soi vào mọi con chip và tạo bản sao hoàn hảo bằng phần mềm hoặc FPGA. Trong khi đó, tài liệu về máy ảo có thể chứa sai sót
      Dự đoán kiểu khoa học viễn tưởng của tôi hôm nay là: chỉ phần mềm nhắm tới các kiến trúc tương đối đơn giản mới chịu được thử thách của thời gian
    • Phần cứng rồi sẽ hỏng theo thời gian, có vẻ do những thứ như tụ điện bị rò
      Người chơi đam mê và các tiệm sửa có thể giữ một số máy sống thêm một thời gian, và những nơi như PCBWay cũng có thể làm linh kiện thay thế
      Dù vậy tôi rất đồng ý rằng emulator là quan trọng, vì chúng cho phép ta trải nghiệm những thứ này cả sau khi phần cứng không còn thực dụng nữa
      Chúng cũng cho phép thử một lượng game khổng lồ mà không cần di chuyển hay vận chuyển. Tôi cũng muốn thử các giải pháp FPGA, nhất là nếu chúng hỗ trợ save state
    • Dreamcast sẽ còn tồn tại lâu, nhưng thời chơi game từ đĩa quang thì sẽ không kéo dài
      Dreamcast dùng một định dạng có mật độ gấp đôi chuẩn Yellow Book, và khi ổ đĩa của tôi hỏng, chuyển sang lựa chọn dùng flash rẻ hơn nhiều so với mua ổ thay thế
    • Theo hiểu biết hạn chế của tôi, Dreamcast là một trong những kiến trúc đơn giản nhất trong thế hệ đó. Có lẽ vì Sega đã rút kinh nghiệm từ cấu trúc quái vật của Saturn, nên nó hẳn là mục tiêu tốt cho homebrew
      GPU cũng là thiết kế PowerVR đời đầu, nên có thể tận dụng phần nào kiến thức về GPU di động hiện đại thay vì nhắm tới các kiến trúc độc quyền của GameCube hay PS2
      Tất nhiên Xbox đời đầu về cơ bản là PC, nên port game PC lên đó chắc đơn giản hơn, vì vậy nó không thật sự hợp với cuộc thảo luận này
    • Những người độ máy retro thành dạng “hiện đại” hơn cũng khá đáng nể ở phía phần cứng
      Gã điên này đã làm một chiếc PS4 cầm tay: https://youtu.be/bJSLscnFd_M
  • Tôi tò mò không biết GTA III ban đầu đã được code để tương thích với Dreamcast nên chỉ cần dọn nốt các phần nối còn lại, hay là ai đó đã viết lại một phần rất lớn của engine, thậm chí toàn bộ, để nó tương thích với Dreamcast

    • Gần với vế sau hơn. Tôi đã theo dõi quá trình phát triển, và một trong những thủ thuật được dùng là chuyển dữ liệu hình học của model từ danh sách tam giác sang dải tam giác, phù hợp hơn với PowerVR
      Nhờ vậy có thể đẩy tam giác vào phần cứng nhanh hơn, và frame rate cũng tăng tương ứng
      https://x.com/falco_girgis/status/1821266502412075174?lang=e...
      Nhân tiện, Falco khá hài. Anh ấy thường viết về Dreamcast như thể cuộc chiến console thế hệ đó đang diễn ra ngay lúc này
    • Đây là bản port engine xuất phát từ dự án decompile RE3. Để chạy được thì phải thay đổi rất nhiều thứ
    • Việc GTA III được làm bằng RenderWare, một game engine nổi tiếng, cũng giúp ích
  • Đây là video chạy trên phần cứng Dreamcast
    https://youtu.be/6MFN7QiF83M?si=kYSxVa0N2GDsrAfP

  • gameplay capture nào quay trên phần cứng thật không?