- Bản vá Halo 2 HD cho Xbox nguyên bản là một dự án kết hợp chỉnh sửa tệp thực thi, cải tạo phần cứng console và xây dựng công cụ benchmark để thử đưa kết xuất vượt quá 480p lên 720p và 1080p
- Halo 2 bản cũ, dù được ghi là 480p, thực tế vẽ vào back buffer 640×480 rồi để GPU upscale lên 720×480, nên để hỗ trợ HD thì cả bộ đệm D3D lẫn cách xử lý chế độ video đều phải thay đổi
- Chạy ở 720p vượt quá khả năng của 64MB RAM mặc định, nên cần nâng cấp RAM lên 128MB và hot patch kernel để lách giới hạn cấp phát bộ nhớ vật lý liên tục cho GPU trong 64MB trên
- Hiệu năng được cải thiện nhờ triple buffering, tiling render target texaccum và ép xung GPU từ 233.33MHz lên 300MHz; cảnh benchmark Zanzibar tăng từ khoảng 19FPS lên mức 27~28FPS
- RAM bổ sung cũng được dùng để mở rộng cache texture·geometry và cải thiện tốc độ truyền HDD; bản vá cuối cùng đưa 720p lên mức dùng được, còn 1080p chủ yếu gần như một phần thưởng để chụp screenshot
Mục tiêu dự án và tiền đề phần cứng
- Mục tiêu là bổ sung hỗ trợ độ phân giải HD cho phiên bản Halo 2 trên Xbox nguyên bản và kiểm tra xem phần cứng console đã được mod có thể chịu được đến đâu
- Phạm vi công việc gồm vá game, chỉnh sửa phần cứng console Xbox và viết công cụ tùy biến để benchmark hiệu năng
- Chiếc Xbox mod làm nền tảng cho dự án được gọi là “god box” và gồm các thay đổi sau
- Thay CPU Pentium 3 733MHz mặc định bằng biến thể Pentium 3 1.4GHz thông qua một bo interposer tùy chỉnh
- Có thể ép xung CPU lên khoảng 2GHz
- Thêm RAM và dùng SSD
- Dùng kernel tùy chỉnh hoặc ảnh BIOS hỗ trợ mod phần cứng
- Độ phân giải video tối đa mà Halo 2 hỗ trợ là 480p, và mục tiêu là thêm hỗ trợ 720p cùng 1080i nếu có thể
- Khi tăng độ phân giải, khối lượng tính toán của pixel shader tăng lên làm GPU nặng hơn, nên chỉ đáng làm nếu có thể ép xung GPU
- Sau đó đã có thể ép xung GPU khoảng 15%, và console “GENESIS-3” được chuẩn bị cho việc phát triển
480p của Halo 2 và cấu trúc render nội bộ
- Halo 2 trên vỏ hộp ghi hỗ trợ 480p, nhưng trong D3D present parameter không bật
D3DPRESENTFLAG_PROGRESSIVE, và tỉ lệ kích thước màn hình luôn là1.0f screen_boundsnội bộ được đặt thành 640×480 bất kể chế độ video- Trên Xbox nguyên bản, 480p được xem là 720×480
- Halo 2 render vào back buffer 640×480 rồi để GPU upscale lên 720×480 trước khi gửi đến bộ mã hóa video
- Ở chế độ widescreen, game dùng camera anamorphic 1.33:1 để nén một khung hình rộng hơn vào cùng surface 640×480
- Cách này có thể nhằm bù lại việc kéo giãn ngang ở chế độ stretch của TV
- Bản vá cũng thêm tùy chọn tắt anamorphic scaling
Bản vá D3D cho render HD
- Để hỗ trợ độ phân giải mới, ba hàm là mục tiêu chỉnh sửa chính
_rasterizer_detect_video_mode: sửa để progressive scan được bật cả ở 720p_rasterizer_init_screen_bounds: đặt kích thước 640×480, 720×480, 1280×720, 1920×1080 tùy chế độ videorasterizer_device_initialize: thiết lập back buffer D3D và present flag
- Ở chế độ 1080i, sau khi xác nhận chiều rộng màn hình là 1920, bản vá gỡ
D3DPRESENTFLAG_PROGRESSIVEvà bậtD3DPRESENTFLAG_INTERLACED - Sau thay đổi ban đầu, bộ lọc xanh ở menu chính biến mất, đồng thời xuất hiện lỗi sọc lặp và cắt xén hình học mặt nước
- Một phần nguyên nhân là do view 640×480 bị hardcode cho back/front/depth buffer
- Khi texture/surface view nhìn cùng một vùng nhớ với chiều rộng khác nhau, cách sắp xếp scan line bị lệch
Bộ nhớ D3D và tái cấu trúc render target
- Xbox nguyên bản dùng kiến trúc bộ nhớ hợp nhất, nơi CPU và GPU dùng chung RAM
- Nó không giống PC, nơi cấp phát D3D nằm trong VRAM và do GPU quản lý
- CPU có thể tạo vùng nhớ cho texture, render target, vertex buffer rồi đưa trực tiếp địa chỉ cho GPU
- Halo 2 dùng khoảng 25 render target nhưng thực tế chỉ có 4~5 vùng đệm được cấp phát duy nhất
- Nhiều render target chia sẻ cùng một vùng nhớ dưới dạng các resource view khác nhau để tiết kiệm bộ nhớ
rasterizer_primary_targets_initializetạo thêm render target và texture view từ back/front/depth buffer mà D3D tạo ra, và nó đang hardcode kích thước 640×480- Bản vá bọc hàm này bằng hook, để sau khi hàm gốc chạy xong thì sửa kích thước texture/surface theo độ phân giải back buffer hiện tại
- Pitch của bộ nhớ tiled có thể khác công thức thông thường
width * bpp, nên phải tính bằngD3D_CalcTilePitch - Pitch sai có thể tạo hiệu ứng sọc, đặc biệt ở 1080i
- Pitch của bộ nhớ tiled có thể khác công thức thông thường
Sửa kích thước render target texaccum
- Lỗi cắt xén hình học mặt nước ở menu chính xảy ra vì render target texaccum bị cố định ở 640×480
- Triển khai DirectX trên Xbox chỉ cho phép lấy mẫu tối đa 4 texture trong mỗi pixel shader pass
- Những object cần hơn 4 texture đầu vào phải render qua nhiều pass
- Lớp texaccum sẽ trộn trước các detail texture rồi dùng làm đầu vào cho pass lightmap
rasterizer_targets_initializeđang cấp phát render target texaccum ở 640×480- Bản vá bọc
_rasterizer_alloc_and_create_render_targetbằng hook để đổi chiều rộng và chiều cao của target texaccum khitarget_index == 1theo kích thước back buffer hiện tại - Sau thay đổi này, lỗi cắt xén hình học mặt nước biến mất, và khi load map cũng không còn thấy lỗi render rõ rệt
- Vấn đề bộ lọc xanh được giải quyết bằng cách cập nhật kiểm tra kích thước đơn giản, nhưng không nêu chi tiết quá trình
Giới hạn bộ nhớ chặn việc chạy 720p
- Khi đặt 720p, game bị crash ngay lúc khởi động; nguyên nhân là thiếu bộ nhớ do front/back/depth buffer và rasterizer target lớn hơn
- Xbox nguyên bản có mẫu thương mại 64MB RAM và bộ dev kit/debug console 128MB RAM
- Trên bo mạch retail vẫn có sẵn vị trí để gắn thêm chip RAM
- Nếu hàn chip RAM và dùng kernel đã chỉnh sửa thì có thể truy cập thêm 64MB đó
- Để chạy ở 720p trở lên, cần nâng cấp RAM lên 128MB
- Ngay cả để chạy 480p bình thường mà không nâng cấp RAM, cũng phải lấy bớt bộ nhớ từ cache texture trong RAM của game, khiến texture pop-in tăng lên
Bản vá bộ quản lý bộ nhớ của Halo 2
- Khi khởi động, Halo 2 cấp phát khoảng 48.9MB trong 64MB khả dụng thành một vùng dữ liệu runtime lớn duy nhất
- Vùng này được chia cho metadata của level, texture, geometry, animation, cache âm thanh, rasterizer target, tài nguyên mạng/mô phỏng v.v.
- Để trực quan hóa việc dùng bộ nhớ, tác giả đã viết XboxImageGrabber
- Công cụ này duyệt page table entry để trực quan hóa tình trạng sử dụng RAM dưới dạng bitmap
- Vùng dữ liệu runtime được cấp phát tại địa chỉ hardcode 0x80061000
- Tag data trong file map được tuần tự hóa theo địa chỉ gốc này, nên phần dữ liệu đó luôn phải nằm đúng địa chỉ cũ
- Các dữ liệu runtime khác thì có thể di chuyển
- Những vùng được chọn để di chuyển là rasterizer target, texture cache và geometry cache
- Một số lệnh gọi cấp phát cụ thể được hook để chuyển sang debug memory region
- Khi giải phóng, như lúc load level mới, các lệnh free phù hợp cũng được thêm vào
- Kích thước vùng dữ liệu runtime cũng được giảm để bớt lãng phí
physical_memory_mallocđã bị compiler inline, nên phải vá riêng từng call site
Hot patch kernel Xbox và bộ nhớ vật lý ở 64MB trên
- Địa chỉ bộ nhớ đưa cho GPU phải là địa chỉ vật lý và vùng đó phải liên tục
- GPU không có khái niệm page table hay dịch địa chỉ ảo
- Ngay cả trên kernel 128MB RAM, việc cấp phát vật lý liên tục mặc định vẫn chỉ khả dụng trong 64MB đầu, còn cấp phát ảo thì dùng được toàn bộ 128MB
- Việc thử thủ công dùng page table entry của 64MB trên như bộ nhớ GPU đã thành công
- Hạn chế không dùng được bộ nhớ vật lý cho GPU ở 64MB trên là giới hạn phần mềm của kernel, không phải giới hạn phần cứng
- Bên trong
MmAllocateContiguousMemoryExcó kiểm traMAX_USABLE_PFN- Giá trị cũ là 0x83FE0000, tương đương 64MB - 128KB
- 128KB trên cùng được dành cho vùng scratch 64KB của GPU và page table 64KB của CPU
- Bản vá kiểm tra xem console có 128MB RAM khi game khởi động hay không, rồi tìm lệnh
mov edx, 0x3FDFtrongMmAllocateContiguousMemoryExvà sửa sang giá trị mới phù hợp với cấu hình 128MB - Sau đó dùng
MmAllocateContiguousMemoryExvàMmFreeContiguousMemoryđể cấp phát/giải phóng bộ nhớ vật lý liên tục trên toàn bộ 128MB - Cũng có tác dụng phụ
- Nếu thoát game rồi quay lại dashboard hoặc eject khay DVD bằng warm reboot thay vì cold reboot, app/game kế tiếp có thể gặp artifact đồ họa nặng và crash
- Để che điều này, một bản vá bổ sung ép cold reboot khi thoát game đã được thêm vào
Kết quả render 720p/1080p và nút thắt hiệu năng
- Render 720p nhìn đẹp hơn rõ rệt, nhưng hiệu năng rất thấp ở những cảnh nặng, có lúc FPS tụt xuống dưới 10
- 1080p có thể render native, nhưng đầu ra của console Xbox chỉ hỗ trợ tín hiệu 1080i
- Nếu dump trực tiếp D3D back buffer thì có thể lấy screenshot 1080p trước khi GPU đổi nó thành half frame cho bộ mã hóa video
- Việc đo hiệu năng so sánh ba cấu hình: Xbox gốc, god box chỉ ép xung CPU, và god box ép xung cả CPU lẫn GPU
- Một điểm nặng trong Zanzibar được dùng làm “zanzibar benchmark scene”
- Ở đo đạc ban đầu, FPS của ba cấu hình gần như giống nhau, và biểu đồ hiệu năng cho thấy nguyên nhân là swap stall
- Halo 2 dùng vsync on và double buffering
- Có tình huống GPU phải chờ vblank nên không thể xoay swap chain, gây stall
Triple buffering và xác nhận nút thắt GPU
- Giải pháp là tăng số back buffer lên 2 để dùng triple buffering gồm 1 front buffer và 2 back buffer, tổng cộng 3 buffer
- Trong
D3DPRESENT_PARAMETERS, thiết lậpBackBufferCount = 2,D3DSWAPEFFECT_DISCARD,D3DPRESENT_INTERVAL_ONE - Vì engine render của Halo 2 vốn giả định double buffering và hoán đổi con trỏ back/front buffer mỗi frame, nên hook swap và hook khởi tạo primary target cũng phải sửa theo
- Hai primary render surface và texture view được đổi để luôn tham chiếu đến back buffer hiện tại
- Dù game vẫn swap hai con trỏ nội bộ, chúng thực chất trỏ tới cùng một vùng nhớ nên gần như trở thành no-op
- Ở cảnh benchmark Zanzibar, FPS với GPU mặc định đạt khoảng 22FPS
- Tăng khoảng 3FPS so với trước
- Tăng khoảng 10% nếu lấy mốc cap 30FPS
- Swap stall biến mất và mức sử dụng GPU chạm tối đa, xác nhận GPU là nút thắt
Ép xung GPU và RAM
- Đổi render target texaccum sang bộ nhớ tiled mang lại thêm 1~2FPS
- Cảnh benchmark Zanzibar được cải thiện từ khoảng 19FPS lên 23~24FPS
- Khi god box ép xung GPU, cảnh benchmark Zanzibar ghi nhận 27~28FPS
- Khi chạy quanh map, phần lớn giữ được 30FPS và chỉ tụt ở một số khu vực nặng
- Để tránh phải flash lại BIOS, game tự chỉnh trực tiếp memory-mapped IO register của bộ tạo xung GPU khi khởi động
- Việc tính xung GPU dựa trên các giá trị M, N, P của
NVPLL_COEFFvà base clock 16.6667MHz- Giá trị N mặc định là 28 tạo ra xung GPU 233.33MHz
- Tác giả điều chỉnh giá trị N để đặt được theo bước khoảng 8MHz và cho phép cấu hình bằng file ini
- Mức ép xung GPU 300MHz tăng thêm khoảng 3FPS ở benchmark Zanzibar so với GPU mặc định
- Giới hạn ép xung khác nhau tùy từng GPU
- GPU trên các console revision 1.0~1.4 thường chạm giới hạn ở vùng low 300MHz
- Có trường hợp GPU của console revision 1.6 chạy ổn định trên 400MHz
- Xung RAM cũng được thử nghiệm
- Băng thông lý thuyết tối đa của bus nhớ Xbox là 6.4GB/s, còn mức sử dụng thực tế khoảng 70%, tức 4.5GB/s
- RAM mặc định đã gần 200MHz, nên chỉ cần tăng thêm khoảng 10MHz cũng có thể mất ổn định
- Khi thử khoảng 208MHz, quan sát thấy tăng 0.7FPS
- Tác giả cũng đã đặt mua chip RAM có thể chạy 250MHz, nhưng đến thời điểm viết bài vẫn chưa lắp và thử thêm
Giảm pop-in và mở rộng cache
- Halo 2 vốn đã có vấn đề pop-in texture và geometry, và điều này càng dễ thấy hơn trên console dùng HDD cơ học đầu những năm 2000
- RAM bổ sung được dùng để mở rộng texture cache và geometry cache
- Geometry cache mặc định là 6.5MB cho map chơi đơn và 7MB cho map multiplayer
- Texture cache thay đổi theo kích thước map, dùng phần không gian còn lại sau tag data và trước low detail texture cache
- Cache hoạt động theo cơ chế LRU
- Cứ mỗi 30 frame, dữ liệu không được dùng trong 30 frame gần nhất sẽ bị loại bỏ
- Nếu cache đầy, bên gọi có thể yêu cầu eviction cưỡng bức, hoặc yêu cầu load sẽ thất bại và được thử lại ở frame kế tiếp
- Texture có thể có các buffer LOD low/medium/high
- Nếu không load được high LOD thì game thử medium hoặc low LOD
- LOD thấp có thể hiện trước rồi mới chuyển sang LOD cao hơn, gây pop-in
- Trong map còn có emergency low detail texture cache với kích thước từ 2×2 đến tối đa 8×8
- Nó được dùng để tạm thời vẽ model trên màn hình khi việc load texture thường thất bại
- Hiện tượng địa hình hiện texture cực thấp khi mở rồi đóng menu bạn bè Xbox Live có liên quan đến cache này
- Tác giả tái dựng chức năng trực quan hóa biểu đồ trong debug build của Bungie để quan sát trực tiếp lượng cache sử dụng và điều chỉnh kích thước
- Cấu hình cuối cùng tăng geometry cache lên 20MB và cố định texture cache ở 30MB
- Cả hai cache đều gần như lớn gấp đôi cấu hình mặc định
- Trong cutscene mở đầu của Outskirts, Master Chief hiện ngay với texture độ phân giải cao và vẫn còn dư không gian cache
- Để giảm thêm pop-in, tốc độ truyền HDD cũng được tăng lên
- UDMA 2 mặc định đạt khoảng 33.3MB/s
- UDMA 3 đạt khoảng 44.4MB/s
- Nếu có cáp IDE 80 pin thì có thể đặt UDMA 5 ở khoảng 100MB/s
- Với cáp IDE mặc định, tốc độ truyền tăng khoảng 10%; với cáp IDE nâng cấp, mức tăng lý thuyết tối đa là 300%
- Profile bộ nhớ 720p cuối cùng sử dụng hơn 75% trong 128MB RAM
- Ở chế độ 1080p, bộ nhớ cho swap chain và rasterizer target quá lớn nên phải giảm kích thước cache, và thực tế dùng gần như toàn bộ 128MB
Kết quả
- Nhìn chung, bản vá 720p đã được cải thiện đến mức có thể chơi được, còn hỗ trợ 1080p chủ yếu gần như phần thưởng thêm để chụp screenshot
- Vẫn còn dư địa để tối ưu thêm về hiệu năng và thay đổi bộ nhớ, nhưng đây là kết quả đã đẩy giới hạn của Halo 2 và console Xbox đi rất xa
- Bản tải về của Halo 2 HD patch và mã nguồn được công khai trên GitHub
1 bình luận
Ý kiến trên Hacker News
Liên kết video ở cuối bài: https://www.youtube.com/watch?v=O_nk21389u8
Video có phần so sánh song song giữa bản gốc được upscale 480p và 720p, và từ khoảng phút thứ 7 giải thích cần những gì để đạt 720p trong khi vẫn duy trì gameplay khoảng 30fps
Bài viết cũng rất hay, nhưng video tóm tắt các thay đổi cần thiết để có độ phân giải cao hơn cũng tốt
Chuyện 720×480 không phải độ phân giải 16:9 hay không phải “480p thật” thực ra nên phàn nàn với phía chuẩn hóa ITU từ thập niên 1970: https://tech.ebu.ch/docs/techreview/trev_304-rec601_wood.pdf
Trong một bản ghi nhớ tháng 2 năm 1980, người ta nói rằng để bao quát mọi khoảng thời gian dòng quét hữu hiệu của các chuẩn châu Âu, số mẫu trên mỗi dòng hữu hiệu phải lớn hơn 715,5; về sau 720 mẫu được dùng trong Rec. 601 và SMPTE 125 đã trở thành giá trị đầu tiên “hoạt động được”
Rec. 601 cung cấp 720 mẫu trên mỗi dòng hữu hiệu cho kênh độ chói, và 360 mẫu cho mỗi tín hiệu sắc sai; khi định nghĩa HDTV, người ta nhân đôi độ phân giải ngang của hệ TV hiện có này và áp dụng tỷ lệ khung hình 16:9, dẫn tới 1920 mẫu/dòng và 1080 dòng
Hệ thống quét tuần tự 1280×720 cũng thuộc cùng họ 720 pixel này, và phần lớn các hệ thống TV số, DVD, MPEG đều được phái sinh từ định dạng chuẩn cơ sở 4:2:2 đó
Bản thân “tinh thần hacker” thì hoàn toàn chính đáng, nhưng tôi tò mò liệu có lý do riêng nào để bỏ công thêm bộ nhớ cho console và ép xung GPU để chơi Halo 2 theo cách này thay vì bản PC không
Có nhiều video phân tích chi tiết các lỗi ở nhiều cấp độ
https://youtu.be/03K2Uz3s1hg?si=zaFO1XdzMcFvI1F6
Nó giống như chứng minh rằng điều đó hoàn toàn khả thi, hoặc thậm chí còn tốt hơn
Có lẽ gần như là một rào cản tâm lý, nhưng nhìn chung là kiểu nhẹ nhàng và vui, như mặt đối lập với nỗi ám ảnh phải mua mẫu mới nhất của một thiết bị phổ biến trước mọi người
Cả hai đều đem lại một dạng cảm giác vượt trội
Hiện nay vẫn có thể chơi Halo 2 qua lobby online hoặc campaign, và cũng có thể chọn đồ họa gốc của 343 hoặc đồ họa HD remaster
Trong bài có đoạn: “hệ thống dữ liệu tag được thiết kế linh hoạt và nhanh nhất có thể, còn cách hoạt động bên trong thì rất ấn tượng về mặt kỹ thuật. Tôi có thể viết hẳn một bài chỉ để nói vì sao nó khiến Blam trở thành một trong những engine linh hoạt nhất, nhưng điều đó không liên quan đến bài này”; nếu bài đó thật sự được viết thì tôi rất muốn đọc
Tôi quá mới nên khó theo kịp cách nó hoạt động, và nó quá động đến mức tôi về căn bản không hiểu nổi rằng một cấu trúc như vậy có thể tồn tại
Tôi không hiểu làm sao vị trí người chơi lại có thể nằm trong cùng ngữ cảnh với một vũ khí có các thiết lập, rồi cả hiệu ứng cũng nằm trong cùng một danh sách
Rốt cuộc, nhiều thứ tôi quan tâm hiện nay vẫn cứ xoay quanh các khái niệm như thế
Tôi ước thời kỳ mod Xbox và Halo 2 sẽ quay trở lại trong thời hiện đại
Giai đoạn đó đã ảnh hưởng lớn đến lựa chọn nghề nghiệp của tôi, và đến giờ tôi vẫn tin Halo 2 là trò chơi online mang tính cách mạng nhất mọi thời đại
Khi đó chỉ cần mua một công cụ đơn giản để tải game save là có thể softmod Xbox trong vài phút, còn console ngày nay thì kích hoạt e-fuse, chặn downgrade, và có nhiều lớp bảo mật hơn rất nhiều
Cùng với dự án Insignia bắt đầu hỗ trợ Halo 2, đây thật sự là thời điểm rất tốt cho Halo 2 cổ điển
Một trong những lý do tôi trở thành kỹ sư phần mềm ngày nay là vì khi đó có thể dễ dàng nhìn vào cách một trang web hoạt động, nghịch bộ nhớ chương trình, mở phần cứng ra để xem bên trong
Thời Halo PC, tôi học được rất nhiều về những gì cấu thành một trò chơi khi mod level, và việc biết “BSP” là gì có thể chỉ là kiến thức vụn vô dụng, nhưng nó cho tôi sự tự tin rằng mình có thể hiểu thêm nhiều thứ
Ngày nay vẫn có thể bước vào và học công nghệ, nhưng con đường đi qua việc tự tay mày mò thật sự thì khó thấy hơn
Phần mềm đã khó crack hay debug hơn nhiều; không phải là bất khả thi, nhưng rào cản gia nhập đã cao hơn rất nhiều
Trang web thì vẫn có thể soi được, nhưng nhiều trang hiện nay đã trở thành đống div chỉ để chống đỡ những con quái vật JavaScript bị minify và obfuscate, còn game thì ngày càng phụ thuộc vào việc stream nội dung từ server nên nhiều trường hợp gần như không thể
Phần cứng cũng phải đối mặt với các quy trình bảo mật có thể biến thiết bị thành cục gạch, súng khò nhiệt để mở viền bezel dán keo, và nguy cơ hư hại vĩnh viễn
Mỗi thay đổi như vậy hẳn đều có lý do, nhưng trong quá trình đó phần lớn niềm vui cũng biến mất, và dù công cụ ngày nay tốt hơn về mặt kỹ thuật, mod game không còn như xưa nữa
Ngày nay vẫn có thể mày mò thoải mái với PC hoặc các console dựa trên PC như Steam Deck, nên tôi không hiểu vì sao phải đấu với những console độc quyền được thiết kế để khóa chặt
Ngoài việc có được quyền truy cập vào phần cứng x86 tùy biến có thể mua rẻ trên thị trường, cũng không rõ còn thu được gì
Các FPS online cạnh tranh có cộng đồng mod mạnh đã rất sôi động trên PC hơn 10 năm trước đó rồi
Nhờ Project Cartographer mà vẫn có cộng đồng hoạt động: https://halo2.online/home/
Người này có vẻ tận tâm với Halo 2 hơn cả mức Bungie ngày nay dành cho IP của chính họ
IP thuộc sở hữu của Microsoft và việc phát triển do 343 Industries đảm nhiệm
Bungie hiện có Destiny/Destiny 2 và tựa extraction shooter Marathon sắp ra mắt
Tôi đã đổ vào trò chơi đó thật sự rất nhiều thời gian, và thật vui khi có người khác cũng bị cuốn vào thứ ma thuật ấy như tôi
Dù thế, mức độ tận tâm này vẫn rất đáng khâm phục
Nghe có thể quá hoài nghi, nhưng bản thân dự án thật sự rất tuyệt
Tuy nhiên, tôi tự hỏi liệu có thể nói rằng việc thay CPU và overclock, tăng RAM, thêm bộ lưu trữ thể rắn, rồi overclock cả GPU là đang đẩy giới hạn của Xbox gốc hay không
Đến thời điểm đó thì về cơ bản nó có vẻ không còn là Xbox nữa
Khi nói độ hàng loạt động cơ và hệ thống treo cho Honda Civic rồi đẩy nó đến giới hạn, việc hỏi “nhưng nó có thật sự còn là Civic không?” có thể đúng về mặt kỹ thuật nhưng nghe giống bắt bẻ câu chữ
Tác giả có quyền đặt tiêu đề mình muốn, và ta chỉ cần đọc trong đầu thành kiểu “mod OG Xbox đến sát ngưỡng chết” là được
Vì Halo 2 có thể chạy ở độ phân giải cao hơn trên 360, nên việc nói rõ đây là dự án mod nhắm vào Xbox gốc là hữu ích
Không phải nói theo nghĩa đen về một chiếc Xbox chưa chỉnh sửa, mà là đối tượng được mod là Xbox gốc
Họ cũng nói trên console dùng cáp IDE mặc định thì tốc độ truyền tăng 10%, còn nếu dùng cáp IDE đã nâng cấp thì về lý thuyết có thể tăng tối đa 300%
Nếu có 128MB RAM, có thể tận dụng phần RAM bổ sung để bật các chế độ video 720p và 1080i, đồng thời tăng cache bộ nhớ texture và geometry để gần như loại bỏ pop-in
Nếu chỉ muốn 480p thì chỉ cần overclock GPU trên console nguyên bản và dùng cáp IDE khác
Cách diễn đạt liên quan đến SSD có vẻ đã vô tình gây hiểu nhầm, và có lẽ ý là tổ hợp cáp 80 chân với SSD
CPU overclock là không cần thiết và CPU cũng không phải nút thắt cổ chai; RAM tăng thêm chỉ cần khi muốn từ 720p trở lên
Phản hồi này đã được chuyển đi, nên bài blog có thể sẽ được cập nhật để làm rõ hơn phần này
Giới máy tính retro là như vậy, và độ xe cũng tương tự
Có người muốn một chiếc Corvette hoàn hảo đúng trạng thái xuất xưởng, có người lại muốn một chiếc Model A gắn động cơ mới hơn 50 năm
Bẻ cong một thứ quen thuộc và đã biết theo ý mình là một việc rất ngầu
Khối lượng công việc cực lớn
Cũng thú vị là người bạn “doom” không muốn tiết lộ danh tính của mình