मैं वर्तमान में सी # में लिख रहा हूं जिसे मूल रूप से एनईएस हार्डवेयर की अपनी खुद की व्याख्या कहा जा सकता है जिसे मैं विकसित कर रहा हूं। मैंने एफसीई को निकाल दिया है और देख रहा है कि एनईएस ने ग्राफिक्स को कैसे प्रदर्शित किया और प्रस्तुत किया।'एनबीएस अनुप्रयोगों' पर 'बैंक स्विचिंग' स्प्राइट्स
संक्षेप में, एनईएस में दो बिटमैप ग्राफिकल जानकारी के लायक हो सकते हैं, प्रत्येक 128x128 के आयामों के साथ। इन्हें पीपीयू टेबल कहा जाता है। एक बीजी टाइल्स के लिए था और दूसरा sprites के लिए था। स्क्रीन पर खींचे जाने के लिए इस स्मृति में डेटा होना चाहिए था। अब, यदि एक गेम में अधिक ग्राफिकल डेटा था तो इन दो बैंकों, यह इन बैंकों को इस नई जानकारी के हिस्सों को लिख सकता था - प्रत्येक फ्रेम के अंत में, वहां क्या लिखा था, और अगले फ्रेम से इसे आगे बढ़ाएं।
तो पुराने गेम में प्रोग्रामर बैंक स्विच कैसे किया गया? मेरा मतलब है, स्तर के डिजाइन के भीतर, वे कैसे जानते थे कि कौन सा ग्राफिक सेट लोड हो रहा है? मैंने देखा है कि मेगा मैन 2 बैंकविच करता है जब स्क्रीन प्रोग्राम के स्तर के एक भाग से अगले भाग तक स्क्रॉल करती है। लेकिन उन्होंने इस जानकारी को स्तर में कैसे स्टोर किया - पीपीयू टेबल में कॉपी करने के लिए क्या sprites, और उन्हें कहां लिखना है?
एक और उदाहरण MM2 में रोक देगा। विराम के दौरान बीजी टाइल्स ओवर-लिखित हो जाते हैं, और तब खिलाड़ी को रोक दिए जाने पर पुनर्स्थापित किया जाता है। उन्हें याद आया कि उन्होंने किस टाइल को बदल दिया और उन्हें कैसे बहाल किया?
अगर मैं आलसी था, तो मैं सिर्फ एक विशाल स्थैतिक बिटमैप बना सकता हूं और इस तरह मूल्यों को पकड़ सकता हूं। लेकिन मैं खुद को अधिक मूल्यवान अनुभव बनाने के लिए इन मानों को सीमित करने के लिए मजबूर कर रहा हूं। मैंने एमसी के बारे में अद्भुत गाइड पढ़ा है। बच्चों को बनाया गया था, और मैं इस खेल को प्रोग्राम करने के तरीके के बारे में नंगे होने की कोशिश कर रहा हूं। यह अभी भी मेरे दिमाग को चकित करता है कि इन प्रोग्रामर ने जो कुछ किया उसके साथ उन्होंने क्या किया।
संपादित करें: एकमात्र समाधान जो मैं सोच सकता हूं, अलग-अलग तालिकाओं को पकड़ना होगा जो बताते हैं कि पीपीयू में कौन सी टाइल्स होना चाहिए, लेकिन मुझे लगता है कि यह एक बड़ी स्मृति संसाधन होगा जो एनईएस सक्षम नहीं होगा संभालने के लिए।
धन्यवाद, यह बहुत उपयोगी था। –
प्रशंसा के लिए धन्यवाद :) –