Multi Thần điện Ninh Tiền Đô 816 bit

  • Thread starter Thread starter SPC700
  • Ngày gửi Ngày gửi
Cách render của monospaced font và proportional font trên máy game.

 
Trong bài trước, bạn đã biết rằng máy Genesis/Megadrive của Xé Gà có tốc độ xử lý nhanh gấp đôi so với máy Sufami/Snes của Ninh Tiền Đô, cho nên hình ảnh chuyển động mượt hơn.

Ok, tốc độ xử lý nhanh hơn thì hình ảnh mượt hơn. Dĩ nhiên rồi. Đó là một sự thật hiển nhiên. Nhưng nguyên lý của sự thật hiển nhiên này là gì thì không phải ai cũng hiểu rõ.
Và đây là bài giải thích về logic đằng sau sự thật hiển nhiên này.

Để hiểu được nội dung bài này thì trước hết bạn cần nắm rõ một số thông tin tiền đề như bên dưới.

1. 60 fps
Các loại Retro console như Famicom, Genesis, Sufami đều chạy ở tốc độ gần 60 fps với hệ màu NTSC (chính xác là 5994 Hz, ở đây ta làm tròn thành 60). 60 khung hình mỗi giây là một con số vẫn còn lý tưởng cho đến ngày nay.

2. Cách hiện ảnh của Tivi CRT
Các loại Tivi CRT được dùng để kết nối với console đương thời cũng đều chạy được 60 fps, giống như các loại console cùng thời.
Cách hoạt động của Tivi CRT là:

- Tia điện tử quét khắp màn hình Tivi, bắn vào lớp lân tinh (tiếng Anh: phosphor ) được phủ trên màn hình, khiến những phần lân tinh được bắn sẽ sáng lên, hiện rõ hình ảnh.
- Tia điện tử quét tuần tự từ trái sang phải, từ trên xuống. Khi tia này quét đến mép ngoài cùng bên phải của màn hình thì nó quay trở lại điểm ngoài cùng bên trái của màn hình, nhưng cách 1 hàng về phía bên dưới so với lúc trước.
- Khi tia điện tử quét xuống hàng cuối cùng của Tivi thì nó sẽ quay lại điểm xuất phát ban đầu ở gốc trên cùng, phía ngoài cùng bên trái của Tivi.
- Khoảng thời gian mà tia điện tử quét hết các đường ngang rồi quay trở lại điểm gốc được gọi là một frame. Như ở 1. có đề cập, trong mỗi giây, tia điện tử của Tivi CRT lặp lại chu trình này 60 lần.

Trong hình minh họa bên dưới, đường màu vàng biểu thị cho chiều quét ngang của tia điện tử. Đường nét đứt màu xanh biểu thị cho việc tia điện tử trở lại mép bên trái của màn hình nhưng cách 1 dòng về bên dưới. Đường màu đỏ biểu thị cho việc tia điện tử quay trở lại gốc tọa độ.
Các đường quét này được gọi ;à tẩu tra tuyến (tiếng Anh: scanline).

Như vậy, toàn bộ hình ảnh không hiện ra một lần trên màn hình, mà chúng xuất hiện dần dần qua mỗi đường quét. Tia điện tử quét tới đâu thì hình ảnh xuất hiện tới đó. Nếu dùng máy quay có tốc độ cao để quay lại màn hình của Tivi CRT thì bạn sẽ thấy rõ điều này. Hình ảnh không liền mạch, mà xuất hiện từng phần rồi biến mất trước khi một frame mới lặp lại.
Còn nếu hỏi tại sao chúng ta lại thấy toàn bộ hình ảnh xuất hiện một cách liền mạch thì đó là do đặc điểm lưu ảnh trên võng mạc của mắt người. Nhờ có nó mà chúng ta thấy phim hoạt hình không phải là những hình ảnh rời rạc.

3. Blanking
Blanking là khoảng thời gian tắt của màn hình, và là một trong những khái niệm quan trọng bậc nhất khi lập trình game console đời cũ.
Tivi CRT có 3 thời điểm tắt màn hình. Tắt ở đây không có nghĩa như bạn nhấn ngón tay vào nút nguồn, mà có nghĩa là tia điện tử ngưng quét, khiến lớp lân tinh trên màn hình không phát sáng và kết quả là ta thấy một màn hình đen tuyệt đối.

Vậy 3 thời điểm tắt màn hình ở đây là gì?

- Force blank: là khoảng thời gian tia điện tử ngừng quét một cách có chủ đích theo ý muốn của nhà lập trình. Nó thường được dùng để chuyển một khối lượng lớn dữ liệu hình ảnh vào Vram. Khi bạn mở cửa vào một căn phòng thì ngay sau đó là màn hình đen. Đó chính là khoảng thời gian Force blank, và mục đích của nó là để load toàn bộ asset đồ họa bên trong căn phòng vào Vram.

- H-blank: là khoảng thời gian tắt màn hình tự động, một cách chu kỳ khi tia điện tử đạt đến điểm cực hữu của màn hình và chuẩn bị quay về điểm cực tả ở hàng bên dưới.

- V-blank: cũng là khoảng thời gian tắt màn hình tự động, một cách chu kỳ khi tia điện tử đạt đến điểm dưới cùng của màn hình và chuẩn bị quay về điểm gốc của tọa độ, chấm dứt một frame.

Dữ liệu hình ảnh chỉ được cập nhật trong 3 thời điểm blanking kể trên. Nhưng vì H-blank diễn ra rất chóng vánh nên hầu như không đủ thời gian để cập nhật hình ảnh.
Thực tế, các nhà lập trình thường dùng Force blank để chuyển hình ảnh vào V-Ram nếu chúng có kích thước lớn. Còn với các dữ liệu có khối lượng nhỏ nhẹ hơn thì chúng được chuyển vào thời kỳ V-blank.

Vậy bạn có thắc mắc là tại sao khi tia điện tử đến điểm dưới cùng của màn hình thì màn hình sẽ tắt để reset tia điện tử về điểm gốc mà mắt ta vẫn thấy hình ảnh xuất hiện liên tục chứ đâu có thấy ngừng chút nào?
Đó là do tính chất tàn ảnh của võng mạc như đã đề cập ở trên, và ngoài ra thì lớp lân tinh vẫn tiếp tục phát sáng vài mili giây sau khi tia điện tử ngừng quét. Điều này khiến ta cảm thấy hình ảnh xuất hiện liên tục, chứ thật ra là trong mỗi giây có tới 60 lần tia điện tử ngừng quét một khoảng thời gian đủ lâu để chuyển dữ liệu vào V-Ram.

4. Cách hoạt động của console

Trong phần trên, bạn đã biết về cách hoạt động của Tivi CRT. Nhưng bản thân nó không tự hoạt động. Những event như Force blank, H-blank hay V-blank đều là do console ra lệnh, còn Tivi không tự phán đoán thời điểm.
Nếu Tivi không được kết nối với máy game, mà chỉ xem vô tuyến bình thường thì nhà đài chính là bên ra lệnh cho Tivi khi nào thì thực hiện các khoảng Blanking.
Mặc dù H-blank và V-blank xảy ra theo chu kỳ nhưng chu kỳ đó là do tín hiệu từ console gửi đến Tivi.

Ngoài việc phát tín hiệu blanking đến Tivi thì console còn hoạt động theo lưu đồ khái quát ở phía bên phải của ảnh minh họa.
Sau khi khởi động xong thì CPU sẽ tính toán các dữ liệu để chuyển hình ảnh vào V-ram hoặc ra lệnh phát âm thanh.
Phần tính toán được thực hiện khi tia điện tử còn đang quét ngang màn hình.
Khi CPU đã tính toán xong mà tia điện tử còn chưa đến đường dưới cùng của màn hình thì CPU không làm gì cả ngoài việc đợi cho đến khi V-blank xảy ra. Khi V-blank xảy ra thì hình ảnh được cập nhật lên màn hình theo kết quả vừa được tính toán.
Đối với các game nhẹ, tính toán đơn giản thì lưu trình này khá phổ biến. Và ta thấy hình ảnh được làm mới mỗi frame. Độ mượt của Genesis với Sufami là tương đương nhau, đều cùng 60 fps.

Nhưng khi game có nhiều dữ liệu để tính toán thì sự khác biệt sẽ xảy ra. Với CPU tốc độ cao của Genesis thì nó vẫn tính toán được khối dữ liệu đó trong khi tia điện tử còn đang quét, và sau đó nó đợi V-blank như thông thường.
Còn với CPU của Sufami thì tốc độ xử lý chỉ bằng một nửa Genesis, nên đến khi tia điện tử quét đến đường dưới cùng của màn hình, V-blank bắt đầu xảy ra thì nó vẫn chưa tính toán xong.
Chưa tính toán xong có nghĩa là sẽ không có hình ảnh mới nào được chuyển vào V-ram trong frame đó hết, hoặc chỉ chuyển một phần.
Nó phải đợi đến frame sau mới xử lý xong, và lúc này hình ảnh mới được chuyển vào V-ram ở kỳ V-blank của frame thứ 2.
Đó là khi lag xảy ra.
Rất nhiều game Sufami chạy ở tốc độ 30 fps trong khi cả Tivi và hệ máy đều có khả năng chạy 60 fps là vì lý do đó. Nó cần đến 2 frame để xử lý hết khối lượng tính toán.

Và đôi khi tình hình còn tệ hơn. Khi nhiều hình ảnh, nhiều quân địch xuất hiện cùng lúc trên màn hình thì CPU cần tới 3, 4 hoặc 5 frame để xử lý dữ liệu. Điều này có nghĩa là phải mất tới 3, 4 hoặc 5 frame để một hình ảnh xuất hiện trên màn hình thay vì xuất hiện từ frame. Đó chính là hiện tượng mà ta gọi là "lag".

Và đó cũng chính là lý do tại sao tốc độ CPU càng cao thì càng cho hình ảnh mượt mà hơn. Tốc độ CPU càng cao thì nó xử lý dữ liệu càng nhanh, xác suất để gửi hình ảnh sau xử lý vào V-ram ngay trong frame đó càng cao.
Khi tốc độ CPU càng chậm thì nó cần càng nhiều frame để xử lý dữ liệu hình ảnh trước khi gửi chúng vào V-ram.

1780703185614.png
 
Về tạo hình nhân vật trong "Na-tra cứu mẹ/vợ" (Kage no Densetsu/Legend of Kage)




Có thể bạn sẽ thấy bất ngờ: cuốn sách này và trò chơi điện tử "Na-tra cứu mẹ/vợ" có mối liên hệ với nhau.
Tên gốc của game là: 影の伝説 (Kage no densetsu), tạm dịch là "truyền thuyết về Kage", nhưng hầu hết thế hệ 7x, 8x, 9x ở Việt Nam đều biết nó dưới cái tên "Na-tra cứu mẹ/vợ", hay đôi khi là "Ninja cứu mẹ/vợ".
Từ "kage" trong tiếng Nippon (Nhật Bản) có nghĩa là cái bóng, và là một danh từ quốc dân để đặt tên cho các nhân vật Ninja trong văn hóa đại chúng.
Có khá nhiều bài viết chỉ ra rằng chẳng có bà mẹ hay cô vợ nào trong con game này, và nhân vật chính không phải là Na-tra.
Thế nhưng chưa có bài nào chỉ ra nguồn gốc tạo hình của nhân vật này.

image.png


Cuốn sách trong ảnh là 伊賀忍法帖 (Iga Nimpōchō, tạm dịch là "bí kiếp nhẫn pháp Iga"), một cuốn tiểu thuyết truyền kỳ được nhà văn Yamada Fūtarō (Sơn Điền Phong Thái Lang) viết vào năm 1964.
Đến năm 1982, hãng phim Tōei (Đông Ánh) dựng bản chiếu rạp dựa trên nội dung của cuốn tiểu thuyết trên.
Nhân vật chính là Jōtarō (Thành Thái Lang), chàng Ninja xuất thân từ phái Iga. Nhân vật này do nam tài tử Sanada Hiroyuki (Chân Điền Quảng Chi) thủ diễn.
Tạo hình nhân vật như trong ảnh.
Do phần cứng của Arcade tốt hơn Famicom nên có thể thấy là hình ảnh tạo hình nhân vật ở bản Arcade bám sát bản phim điện ảnh hơn.
Năm 1985, hãng Taitō (bây giờ là Square Enix) làm con game 影の伝説 chạy trên máy Arcade, và họ lấy luôn tạo hình nhân vật nam chính Jōtarō (Thành Thái Lang) và nữ chính Câu Hỏa (Kagari-bi) trong bộ phim cho hình ảnh nam chính và nữ chính trong game, mặc dù nội dung của game chẳng liên quan gì tới bộ phim hay cuốn tiểu thuyết trên.
Đến năm 1987 thì Taitō port con game này lên máy Famicom, và từ đó nó trở thành một huyền thoại gắn liền với tuổi thơ của rất nhiều người do sự phổ biến của băng Famicom lậu giá rẻ tràn lan khắp Đông Nam Á trong thời kỳ đó.



image.png


Bạn đã biết tạo hình nhân vật chính trong game "Na-tra cứu mẹ/vợ" (影の伝説 - Kage no densetsu) được truyền cảm hứng từ bộ phim "Iga Nimpōchō" vốn được dựng từ tiểu thuyết cùng tên của nhà văn Yamada Fūtarō.
Vậy nội dung của game có liên quan gì tới bộ phim hay tiểu thuyết này không?
Câu trả lời là không.
Bối cảnh game được thiết lập vào cuối thời Edo ở xứ Nippon.
Người chơi vào vai chàng Ninja trẻ tuổi tên là Kage (nghĩa là cái bóng, và là một danh từ quốc dân để đặt tên cho các nhân vật Ninja trong văn hóa đại chúng) lên đường đi giải cứu công nương Kiri (sương mù) đã bắt cóc bởi quân đoàn ma quỷ do Yukigusa Yōshirō lãnh đạo.
Thế nhưng các nhân vật trong game không hề có bất cứ một lời thoại nào, và khi kết thúc game thì chỉ có vài câu thoại mơ hồ và không hề nhắc đến bất cứ yếu tố nào trong số những thứ kể trên, ngoài cái tên của hai nhân vật chính.
Vậy nội dung kể trên từ đâu mà ra?
Đó là những dòng giới thiệu được in trong sách hướng dẫn đi kèm với băng game.
Hầu hết game thời Famicom dù có đơn giản đến đâu đi nữa thì cũng đều có câu chuyện của nó.
Do phần cứng thời đó có nhiều hạn chế nên phần giới thiệu câu chuyện, giới thiệu nhân vật đều được in trong sách hướng dẫn đi kèm của nhà sản xuất.
Truyền thống này vẫn tiếp diễn qua nhiều đời phần cứng máy game sau đó.



image.png


Tôi nhớ hồi nhỏ khi chơi "Na-tra cứu mẹ/vợ" (Kage no densetsu) trên máy Famicom thì sợ nhất nhân vật ông sư phun lửa bên địch.
Vì sao gọi là "ông sư"?
Trong phần mở đầu game có đoạn giới thiệu tên các nhân vật.
Trong đó có cái tên Yōbō, được chú thích tiếng Anh bên dưới là "magic monk".
Còn trong sách hướng dẫn của nhà sản xuất thì nó được ghi bằng chữ Hán 妖坊 (yêu phường).
Trong đó "yêu" trong "yêu ma", "yêu quái" còn "phường" là khu vực địa lý được phân chia, nhưng trong tiếng Nippon thì nó còn có nghĩa là thầy tu, thầy chùa.
Vậy Yōbō hay "yêu phường" mang nghĩa là thầy chùa dùng yêu thuật, đúng như chú thích tiếng Anh là "magic monk".
Đây không phải là tên riêng, mà là danh từ chung chung.
Nhân vật này được tạo hình nhà sư với bộ đồ và cái nón lá đặc trưng của giới tăng sĩ Phật giáo bên Nippon.
Trong bản Arcade, con quái này phun lửa một đoạn ngắn, nhưng trên bản Famicom thì nó bắn ngọn lửa xuyên suốt cả màn hình.
Điểm khó chịu là cho dù có ngồi thụp xuống thì vẫn chết như thường.
Thành ra thời đó mỗi lần gặp con quái này thì xác suất hẹo cực cao, nhất là khi đang phi thân lên cây mà bị nó khè lửa là hết đường né tránh.



image.png


Trùm cuối trong "Na-tra cứu mẹ/vợ" (Kage no densetsu) là Yukigusa Yōshirō (雪草 妖四郎 - Tuyết Thảo Yêu Tứ Lang), nhân vật sử dụng song kiếm và được giới thiệu trong sách hướng dẫn của nhà sản xuất là thủ lãnh của màn tuyết, đồng thời cũng là thủ lãnh của ma giới. Hắn sai khiến đám Yōbō (yêu phường, thầy chùa phun lửa) và đám Ninja hòng chinh phục Nippon.
Tạo hình của nhân vật này trong game cùng những lời giới thiệu về hắn rất giống với trùm cuối Amakusa Shirō (天草四郎 - Thiên Thảo Tứ Lang) trong bộ phim "Makai Tenshō" (chuyển sinh ma giới) của hãng Tōei năm 1981.
Bộ phim này được dựng dựa trên cuốn tiểu thuyết truyền kỳ cùng tên của nhà văn Yamada Fūtarō, được viết vào năm 1967.
Vậy ta có thể thấy là hình mẫu của trùm cuối Yukigusa Yōshirō trong game chính là Amakusa Shirō trong phim.
Amakusa Shirō là nhân vật lịch sử có thật vào cuối thời Edo bên Nippon.
Ông này là thủ lĩnh của cuộc nổi loạn ở Shimabara chống lại chính quyền bấy giờ.
Amakusa Shirō là người Cơ Đốc giáo, trong khi chính quyền Nippon lúc đó ra sức đàn áp tầm ảnh hưởng của tôn giáo ngoại lai này.
Cuộc khởi nghĩa Shimabara kết thúc trong thất bại, Amakusa Shirō bị giết chết cùng vô số tín đồ khác.
Sự kiện lịch sử này trở thành đề tài cho rất nhiều bộ tiểu thuyết và phim ảnh, game trong văn hóa đại chúng ở Nippon.
Trong tiểu thuyết của Yamada Fūtarō thì Amakusa Shirō bán mình cho quỷ dữ để báo thù cái chết của hàng vạn tín đồ, quyết đưa cả nước Nippon xuống địa ngục.
Vậy có thể thấy là bản thân con game "Na-tra cứu mẹ/vợ" chịu ảnh hưởng khá nhiều từ những bộ phim được dựng từ tiểu thuyết truyền kỳ của Yamada Fūtarō.
Nhân vật chính Kage được tạo hình theo nam tài tử Sanada Hiroyuki trong, và công nương Kiri được tạo hình theo minh tinh Watanabe Noriko trong phim "Iga Nimpōchō".
Còn nhân vật trùm cuối Yukigusa Yōshirō lại được tạo hình, và bối cảnh của hắn cũng giống hệt nhân vật Amakusa Shirō trong phim "Makai Tenshō".
Cả hai bộ phim này đều được dựng từ tiểu thuyết cùng tên của Yamada Fūtarō.
 
Back
Top