7 คะแนน โดย ffdd270 2021-12-24 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องเกมในอดีตวาดสไปรต์แบบอิงไทล์ และ CPS-1 ใช้ไทล์ขนาด 16x16 ดังนั้นการวาดตัวละครหนึ่งตัวจึงต้องประกอบขึ้นจากไทล์ 16x16 หลายชิ้น

  • ปัญหาคือ ในยุคนั้นขนาด ROM ถูกจำกัดอย่างมากเพราะต้นทุน ทำให้หน่วยความจำที่จัดสรรให้ทีมอาร์ตมีอยู่อย่างจำกัดมาก Street Fighter 2 ได้รับการจัดสรรประมาณ 4.6 MiB และต้องใช้อย่างมีประสิทธิภาพ

  • ดังนั้นจึงมีการนำ "แผ่นกระดาษ" มาใช้ โดยวางไทล์ 16x16 ลงบนแผ่นที่เขียนเมมโมรีแมปไว้ วิธีนี้ทำให้สามารถวาดไทล์ได้ในลักษณะที่คล้ายกับการจัดสรรลงในเมมโมรีแมปจริง

  • นี่คือตัวอย่างภาพว่าทีมอาร์ตทำงานกันอย่างไรด้วยวิธีนี้ (อย่าลืมอ่านต้นฉบับ!)

  • หัวใจสำคัญคือการอัดข้อมูลให้แน่นที่สุดเพื่อให้สามารถวาดได้โดยไม่สิ้นเปลืองหน่วยความจำ พร้อมใช้ประโยชน์จากความสามารถของ CPS-1 ด้วย

2 ความคิดเห็น

 
budlebee 2021-12-24

พอพูดถึง memory map ของเกมคลาสสิก ก็ทำให้นึกถึงวิดีโอด้านล่างนี้เลยครับ

https://www.youtube.com/watch?v=FPzuYWbnln4

ใน Super Mario Land 2 แต่ละ map tile จะสอดคล้องกับที่อยู่หน่วยความจำหนึ่งตำแหน่ง และเขาว่ากันว่าสามารถใช้ทริกบางอย่างเพื่อออกไปนอกแผนที่ปกติ แล้วไปทำลายไทล์เพื่อเปลี่ยนค่าหน่วยความจำของเกมได้

ดังนั้นการไปแตะไทล์นอกแผนที่ปกติเพื่อควบคุมหน่วยความจำ ก็เลยถูกนำไปใช้ใน speedrun ด้วยเหมือนกันครับ

 
alstjr7375 2021-12-24

การปรับแต่งให้เกมสมัยก่อนทำงานได้อย่างมีประสิทธิภาพนี่น่าสนุกดีนะครับ

เมื่อก่อนผมสนใจเรื่องนี้เลยเคยรวบรวมวิดีโอใน YouTube เอาไว้สองสามคลิป

https://black7375.tumblr.com/post/663908279732289536/