2010-07-08 13 views
5

अटक गया हूं, अग्रिम में, मैं खुले अंतराल के लिए क्षमा चाहता हूं, और इस सवाल की सामान्य इच्छाशक्ति, क्योंकि ईमानदार होने के लिए इस विषय का मेरा ज्ञान बहुत कमजोर है और मुझे यह मुश्किल लगता है मेरी समस्या का वर्णन करने के लिए भी। मैं वास्तव में पोस्ट नहीं करना चाहता था, लेकिन मैं पूरी तरह से और पूरी तरह से अटक गया हूँ।बेसिक एनईएस इम्यूलेशन सिद्धांत - मैं

मैंने एक एनईएस एमुलेटर शुरू किया है। इसका अर्थ है (इसलिए कोई गतिशील recomp)।

एटीएम यह रोम को लोड और मैप कर सकता है (मैपर 0 रोम) और इनट कोड को निष्पादित करें जहां मुझे इंटरप्ट्स और पीपीयू से निपटना है। वहीं मैं अटक गया हूँ।

यहां मेरे एमएम एटीएम से एक उदाहरण आउटपुट है। निष्पादन 8000 पर शुरू होता है, और मैंने 800 ए पर एक अनंत लूप मारा जहां मुझे नहीं पता कि वहां से कैसे प्रगति की जाए।

8002: LDA #$10 ; read immediate value to set PPU control registers 
8004: STA $2000 ; store value 
8007: LDX #$FF ; load immediate value into X register 
8009: TXS   ; store X register into stack 
800a: LDA $2002 ; read PPU flags into accumulator (set N flag based on bit 7) 
800d: BPL   ; test N flag, branch to 800a if not positive, (N is set) 
800a: LDA $2002 
800d: BPL 
800a: LDA $2002 
800d: BPL 
800a: LDA $2002 
800d: BPL 
etc, etc etc (inf loop) 

तो मेरी सवाल है, कर सकते हैं किसी को एक PPU के माध्यम से मूल बातें 1 यात्रा के बारे में समझाएं मेरे लिए प्रस्तुत करना, चक्र गणना तरह बातें, बीच में आता है आदि (यानी आकर्षित एक पूरे 240 scanline स्क्रीन और पर ले जाने सहित आगामी)।

+0

Ta 6502 टैग –

+1

जोड़ने के लिए http://nesdev.parodius.com/ पर पोस्टिंग आपको परिणाम से कहीं अधिक तेज़ और बेहतर मिलेगा। यह सिर्फ विशिष्ट विषयों के लिए है। –

+0

मैंने पहले ही वहां पोस्ट कर दिया है, लेकिन 5 दिन बाद मेरे पास 1 जवाब है, और यह अनिवार्य रूप से दस्तावेज़ों को पढ़ता था (जो मेरे पास 100 गुना है, लेकिन मैं अभी भी थोड़ा उलझन में हूं)। –

उत्तर

0

वहाँ अनुकरणकर्ता हैं, क्या आपने उत्तर के लिए अपने स्रोतों को देखा है? आम तौर पर उन लोगों को प्रदर्शन के लिए लिखा जाता है और बहुत पठनीय नहीं होता है लेकिन आपको जाने के लिए आपको एक टिड्बी मिल सकती है। क्या कोड एक बाधा को निष्पादित करने का इंतजार कर रहा है और क्या आपने उस बाधा को निष्पादित किया है? यह हो सकता है कि हस्तक्षेप वापसी पते को संशोधित करता है और कार्यक्रम को जारी रखने की अनुमति देता है? एक रजिस्टर में थोड़ा लूप मतदान मतदान है? या यह स्वयं के लिए एक बिना शर्त शाखा है?

+0

मुद्दा यह है कि मेरे पास कोई हस्तक्षेप नहीं है। मैं सचमुच स्मृति मानचित्र से ऑपकोड पकड़ता हूं, उन्हें निष्पादित करता हूं, और काउंटर को बढ़ाता हूं। यह सब ठीक काम कर रहा है। जब मैं सीपीयू चक्रों को समझने की बात आती हूं और यह मुख्य लूप से संबंधित है तो मैं अटक गया हूं। मैं सिर्फ कुछ मूल छद्म कोड की तलाश कर रहा हूं जो कि एमुलेटर को कैसे संसाधित करना चाहिए। –

+0

क्या आप वाकई एक बाधा नहीं हैं? निश्चित रूप से वीडियो प्रतिपादन के साथ और अन्य कारणों से हार्डवेयर में बाधा आती है कि भूमिगत कार्य की प्रतीक्षा है, अंतराल दिनचर्या स्मृति स्थान सेट करता है या इस मामले में ध्वज की प्रतीक्षा करता है? मैं क्षुद्रग्रहों के लिए एक समान अनंत लूप से संघर्ष कर रहा था जब तक कि मुझे समझ में नहीं आया कि यह सब कैसे काम करता है। अन्यथा मदद करने के लिए मुझे समस्या पर अधिक जानकारी चाहिए। –

+0

धन्यवाद दोस्त। मैंने इसे हल कर दिया है। इस प्रश्न को एलओएल - जब मैंने इसे लिखा तो इतना उलझन में था। –

संबंधित मुद्दे