संभव डुप्लिकेट:
How do emulators work and how are they written?मैं कंसोल एमुलेटर लिखना कैसे सीखूं?
मैं एक बुनियादी gameboy एमुलेटर लिखने का प्रयास करें, या शायद एनईएस करना चाहते हैं। मैं सी की मूल बातें जानता हूं और मैं जावा में काफी अच्छा हूं, इसलिए मुझे प्रोग्रामिंग की आवश्यक मूल बातें पता हैं। हालांकि मुझे क्या पता नहीं है, यह है कि लोग सभी डेटा को सी प्रोग्राम में कैसे संसाधित करते हैं और इसमें से एक एमुलेटर बनाते हैं। मुझे पता है कि मुझे स्रोत से सीखना चाहिए, लेकिन बिना कोड के लाइनों का एक गुच्छा देखना मुश्किल है कि वे क्यों हैं और उन्हें क्या करना है। अगर मैं ऐसा एमुलेटर लिखना सीखना चाहता हूं तो मुझे कहां से शुरू करना है?
मैंने इंटरनेट की खोज की है, लेकिन मुझे केवल अस्पष्ट ट्यूटोरियल मिले हैं जिनमें स्वयं को समझने के लिए बहुत सारी त्रुटियां हैं। मुझे कहां से शुरू करना है?
मैं सिमुलेटर http://github.com/dwelch67 आप पहली बार सीखने की जरूरत है क्या का एक संग्रह है लक्ष्य सीपीयू के लिए विधानसभा भाषा है, तो एक disassembler कि निष्पादन के क्रम में disassembles पर काम , किसी बिंदु पर आप इसे निर्देश सेट सिम्युलेटर में बदलना शुरू कर सकते हैं। फिर आपको सभी परिधीय के लिए अनुकरणक बनाना होगा। तो आपको उस प्रणाली के लिए अच्छे दस्तावेज़ों की आवश्यकता होगी जो आप अनुकरण कर रहे हैं। –
एक और दृष्टिकोण एक स्थिर बाइनरी अनुवादक, एसबीटी है। http://www.dwelch.com/ipod/asteroids.htm मैंने आईपॉड (क्लासिक) के लिए किया है, उस रिलीज के बाद से उस पर बहुत अधिक काम है, हालांकि कहीं भी प्रकाशित नहीं हुआ है। विषय पर एक अच्छा ट्यूटोरियल। http://www.gtoal.com/sbt/ आप गतिशील अनुवाद भी कर सकते हैं, स्थिर के बजाए फ्लाई पर अनुवाद करें। जब तक आप स्थैतिक नहीं कर सकते तब तक मैं गतिशील कोशिश नहीं करता। –