1 điểm bởi GN⁺ 2026-01-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài viết kể lại giai thoại phụ đề World Warrior của game arcade Street Fighter II đã từng bị gõ nhầm thành World Warrier ngay trước ngày phát hành
  • Khi nhà thiết kế đồ họa Akiman không thể sửa vì GFX ROM đã được ghi xong, ông đã điều chỉnh bằng cách ghép sprite để chữ e trông giống o
  • Ông tái sử dụng một phần tile của World để thay cho ier, nhưng kết quả lại tạo ra The World Warrlor như một vấn đề mới
  • Sau đó, ông tận dụng tile bắp chân của Guile (0x96) để cắt phần trên của chữ l ở mức pixel, tạo ra bản sửa tạm thời khiến nó trông giống chữ i
  • Bản sửa này sau đó đã được thay thế chính thức trong các phiên bản về sau, cho thấy khả năng ứng phó kỹ thuật tỉ mỉ và giải quyết vấn đề đầy sáng tạo trong phát triển game

Phát hiện lỗi chính tả và bắt đầu sửa

  • Người ta phát hiện phụ đề World Warrior của Street Fighter II đã bị ghi sai thành World Warrier chỉ 3 ngày trước khi phát hành
    • Akiman nhớ lại rằng ông đã “phát hiện ra một sai lầm khủng khiếp”, đồng thời giải thích rằng GFX ROM đã được ghi xong nên không thể chỉnh sửa
  • GFX ROM lưu dữ liệu đồ họa, còn 68000 ROM lưu lệnh, và ROM đồ họa ở trạng thái không thể chỉnh sửa
  • Akiman thử chồng sprite để làm cho chữ e trông giống o, từ đó thực hiện một bản sửa mang tính thị giác

Giải pháp tạm thời bằng cách thay tile

  • Logo được cấu thành từ 16 tile (0xC8~0xDF), và Akiman đã loại bỏ 3 tile cuối (0xDD~0xDF) rồi thay bằng 0xCD, 0xCE
  • Vì vậy, World Warrier đổi thành World Warrlor, nhưng vẫn còn vấn đề là chữ l không giống chữ i
  • Vì CPU 68000 không thể chỉnh sửa trực tiếp tile, nên cần đến thao tác tinh chỉnh ở cấp độ pixel

Chỉnh sửa pixel bằng tile của Guile

  • Chìa khóa của lời giải nằm ở tile bắp chân của nhân vật Guile (0x96)
    • Tile này chỉ hiển thị đúng một pixel ở góc dưới bên trái
  • CPU 68000 có thể tự do chọn palette, và đã tận dụng khác biệt màu sắc bằng cách so sánh palette của Guile với palette của logo
    • Ở palette của Guile, chỉ số 14 là màu xanh lá đậm, còn trong palette của logo thì là màu xanh lam đậm
  • Dùng tile này với palette của logo, 255 pixel trở thành trong suốt, chỉ 1 pixel được dùng như một “cây bút chì”
    • Với ba lệnh vẽ, phần trên của chữ l bị cắt đi để trông như dấu chấm của chữ i

Kết quả và các phiên bản sau

  • Nhờ bản sửa tạm thời này, ở màn hình cuối cùng, dòng chữ được hoàn thiện để trông thành World Warrior
  • Ở các phiên bản sau, bộ tile IOR chính xác đã được đưa vào, nhưng không được dùng vì phụ đề đã đổi thành Champion EditionHyper Fighting

Ý nghĩa kỹ thuật

  • Trường hợp này cho thấy ngay cả trong giới hạn của phần cứng arcade dựa trên ROM, vẫn có thể giải quyết vấn đề một cách sáng tạo
  • Bản sửa bằng một pixel là ví dụ cho sự kết hợp giữa điều khiển đồ họa tinh vi và hiểu biết sâu về phần cứng
  • Quá trình sửa lỗi chính tả này được lưu lại như một giai thoại tiêu biểu cho khả năng debug tỉ mỉ và ứng biến thực tế trong phát triển game

1 bình luận

 
GN⁺ 2026-01-05
Ý kiến trên Hacker News
  • Mạng xã hội thực sự ngày xưa chính là tiệm arcade
    Giữa tiếng bóng bowling lăn trong trung tâm thể thao, tôi có thể nhận ra ngay tủ game của mình ở đâu
    Mọi người đứng vây quanh xem, đùa giỡn, và đó là một không gian đầy tập trung lẫn reo hò
    Trong chốc lát, đứa trẻ đang cầm joystick nhận được một chút sự kính nể, rồi tất cả lại vỡ òa khi ngai vàng đổi chủ chỉ bằng một cú dragon punch hoàn hảo
    Đó là thời người ta đặt thêm đồng xu lên máy, chờ tới lượt và cùng chia sẻ dopamine với những người xa lạ
    Bây giờ thế giới kết nối hơn bao giờ hết, nhưng lại có cảm giác chúng ta xa nhau hơn

    • Tôi nhớ hồi sau giờ học đã chơi Street Fighter hàng giờ với bạn bè ở một cửa hàng châu Á trước cổng trường cấp hai
      Tôi chơi cùng những người bạn thế hệ thứ hai gốc H'Mông, con cháu các gia đình di cư sau chiến tranh Việt Nam; tôi chọn Ken, còn họ chọn Ryu
      Khoảng thời gian vừa dạy nhau chiêu thức, vừa cạnh tranh vừa cười đùa đó đúng là một bài học về giao tiếp xã hội thực sự
      Có lẽ những đứa bạn học trường tư đã bỏ lỡ kiểu trải nghiệm này
    • Ở Tây Ban Nha thì gần như không có văn hóa đó
      SF2 có mặt trong các tiệm arcade, nhưng chủ yếu người ta chơi một mình hơn là đấu đối kháng
      Mỗi ván quá đắt nên mọi người thường hợp tác để chơi single-player, và các game PvE như Gauntlet hay Knights of the Round mới phổ biến
      Đó là một nền văn hóa hoàn toàn khác
    • Không sống động bằng thời đá bóng ở bãi đất trống, nhưng vẫn tốt hơn nhiều so với việc chỉ nhìn chằm chằm vào màn hình rồi gọi đó là ‘networking’
    • Ngay cả bây giờ, bạn vẫn có thể ra ngoài giao lưu với mọi người qua những thứ như câu lạc bộ chạy bộ
      Ở Nhật Bản, văn hóa arcade vẫn còn sống
      Những hồi tưởng kiểu này khiến tôi thấy hơi mỉa mai
    • Tôi muốn hỏi liệu bạn đã từng thử một môn thể thao mang tính xã hội như climbing chưa
      Vì cùng chia sẻ một bức tường nên bạn sẽ tự nhiên nói chuyện với người lạ, và chỉ cần bỏ ra vài tiếng là đã thấy rất đáng
      Tôi nghĩ còn rất nhiều môn thể thao xã hội khác phù hợp với từng độ tuổi
  • Đây đúng là một câu chuyện rất thú vị
    Một trong những ví dụ tôi thích là việc Naughty Dog đã dùng EULA để chỉnh sửa Ratchet and Clank
    Có thể xem chi tiết trong bài blog này

    • Thật không thể tin nổi là họ đã dùng buffer overflow trong thông báo EULA như một cơ chế vá lỗi
    • Thấy Dilbert xuất hiện trong bài nên tôi khựng lại một chút, nhưng nhìn ngày tháng thì hiểu ngay
  • Ở quán burger gần chỗ tôi có một tủ SF2, nhưng thay vì decal thì nó được vẽ tay
    Phía trên ghi ‘HYRER FIGHTING’, và nếu nghĩ đến lỗi chính tả ‘WORLD WARRIER’ thì lại thấy hợp một cách kỳ lạ

    • Có người bảo nếu không có ảnh thì khó mà tin nổi
  • Không biết gần đây bạn có xem video YouTube liên quan không


    • Tiêu đề là “It sounds dumb but they really fixed a typo with a human leg”, và đây là link video
      Video được làm khá tốt
  • Hôm nay đọc chuyện này làm tôi tò mò về cách render text hồi đó
    Nó khiến tôi nhớ ra rằng ngày xưa những hàm như drawText đâu có phải điều hiển nhiên
    Đó là thời mà ngay cả việc hiển thị ký tự cũng phải tự triển khai

  • Tôi chợt nhớ tới câu “Thank you for playing Wing Commander!
    Đó là một câu chạm đúng cảm giác của thời kỳ ấy

    • Theo bài viết của WCNews, câu đó thực ra không có trong bản phát hành chính thức
      Nó là một câu tạm thời để tránh va chạm với hệ thống quản lý bộ nhớ
  • Tôi nhớ tới game Continental Circus
    Link Arcade Museum có một mục trivia

    • Nhưng nói cái tên đó là lỗi chính tả của ‘Circuit’ thì không hợp lý
      Trong tiếng Nhật, ‘Circuit’ là サーキット, và nó phát âm hoàn toàn khác với ‘サーカス’
      Hơn nữa, cách gọi F1 là ‘circus’ không chỉ phổ biến ở Nhật mà còn trên toàn thế giới
  • Tôi thấy buồn cười quá khi nghe nói để vẽ bắp chân của Guile, họ đã dùng 3 draw call cho 3 pixel

    • Nhưng ở đây ‘draw call’ chỉ là cách gọi theo thuật ngữ hiện đại; trên thực tế đó là thao tác ghi giá trị vào bộ nhớ bảng sprite
      Đó là thời không có hệ điều hành hay graphics API, mọi thứ được thực hiện bằng cách truy cập trực tiếp vào bộ nhớ phần cứng
    • May là ở màn hình tiêu đề họ không phải làm nhiều việc đến thế
  • Có người đùa rằng ai đó nên sửa lỗi chính tả “Bimmy and Jimmy” trong Double Dragon đi mới phải