-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathwednesday_1.html
194 lines (160 loc) · 9.09 KB
/
wednesday_1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<!DOCTYPE html>
<html lang="en">
<head>
<link href='//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="https://gutomaia.net/theme/stylesheet/style.min.css">
<link rel="stylesheet" type="text/css" href="https://gutomaia.net/theme/pygments/github.min.css">
<link rel="stylesheet" type="text/css" href="https://gutomaia.net/theme/font-awesome/css/font-awesome.min.css">
<link href="https://gutomaia.net/['/css/hacks.css']" rel="stylesheet">
<link href="https://gutomaia.net/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="gutomaia Atom">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<meta name="author" content="Guto Maia" />
<meta name="description" content="Forewords I've been hacking the NES for quite a long time, and since them, I've always been asked for writing an emulator. Although it was never a priority, everytime a question like that stands, I usually answer: "Why not?". Let's think over. Why should I, and why you should to …" />
<meta name="keywords" content="nes, emulator, python">
<meta property="og:site_name" content="gutomaia"/>
<meta property="og:title" content="wedNESday #1"/>
<meta property="og:description" content="Forewords I've been hacking the NES for quite a long time, and since them, I've always been asked for writing an emulator. Although it was never a priority, everytime a question like that stands, I usually answer: "Why not?". Let's think over. Why should I, and why you should to …"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content="https://gutomaia.net/wednesday_1.html"/>
<meta property="og:type" content="article"/>
<meta property="article:published_time" content="2017-01-04 23:00:00-02:00"/>
<meta property="article:modified_time" content="2017-01-07 23:00:00-02:00"/>
<meta property="article:author" content="https://gutomaia.net/author/guto-maia.html">
<meta property="article:section" content="nes"/>
<meta property="article:tag" content="nes"/>
<meta property="article:tag" content="emulator"/>
<meta property="article:tag" content="python"/>
<meta property="og:image" content="https://s.gravatar.com/avatar/760d34405db2c028a3fb099a4510d870?s=100">
<title>gutomaia – wedNESday #1</title>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-8039666399992046",
enable_page_level_ads: true
});
</script>
</head>
<body>
<aside>
<div>
<a href="https://gutomaia.net">
<img src="https://s.gravatar.com/avatar/760d34405db2c028a3fb099a4510d870?s=100" alt="gutomaia" title="gutomaia">
</a>
<h1><a href="https://gutomaia.net">gutomaia</a></h1>
<p>Pythonist with a NES and an ☂</p>
<nav>
<ul class="list">
<li><a href="/pyNES" target="_blank">pyNES</a></li>
<li><a href="/nodeNES" target="_blank">nodeNES</a></li>
<li><a href="/TylerD" target="_blank">TylerD</a></li>
<li><a href="/wedNESday/0.0.x" target="_blank">wedNESday</a></li>
</ul>
</nav>
<ul class="social">
<li><a class="sc-twitter" href="http://twitter.com/gutomaia" target="_blank"><i class="fa fa-twitter"></i></a></li>
<li><a class="sc-github" href="http://github.com/gutomaia" target="_blank"><i class="fa fa-github"></i></a></li>
<li><a class="sc-linkedin" href="http://linkedin.com/in/gutomaia" target="_blank"><i class="fa fa-linkedin"></i></a></li>
</ul>
</div>
</aside>
<main>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads-responsive"
data-ad-client="ca-pub-8039666399992046"
data-ad-slot="2727902218"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<article class="single">
<header>
<h1 id="wednesday_1">wedNESday #1</h1>
<p>
Posted on Wed 04 January 2017 in <a href="https://gutomaia.net/category/nes.html">nes</a>
</p>
</header>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads-responsive"
data-ad-client="ca-pub-8039666399992046"
data-ad-slot="2588301415"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<div>
<div class="section" id="forewords">
<h2>Forewords</h2>
<p>I've been hacking the NES for quite a long time, and since them, I've always been asked for writing an emulator. Although it was never a priority, everytime a question like that stands, I usually answer: "Why not?".</p>
<p>Let's think over. Why should I, and why you should to? There are already several good emulators available, why write another one?</p>
<p>Moreover, googling about the subject "write nes emulator", there are several good stories. I've put the most relevant links at the bottom. I also recomend you to read them.</p>
<p>Therefore. What to tell abount NES emulators that haven't already being told? Well, not saying that I do intend to fishish it, but let's explore more the ideia.</p>
</div>
<div class="section" id="press-start">
<h2>Press Start</h2>
<p>In order to write the emulator, we need to keep up with the overall architecture that was involved. For now, let's focus on the CPU. NES had a Ricoh 2A03 CPU with the same instruaction set of the 6502. Since we are talking about code. Let highlight the code
from Niels Widger's <a class="reference external" href="https://github.com/nwidger/nintengo">Nintengo</a>. It's very polished, and more important, it's filled with tests. So as a experiment, I've rewrote the tests and used on the James Tauber's <a class="reference external" href="https://github.com/jtauber/applepy">ApplePy</a>, most impressive, without mush effort, the test spec payoff, and show how well made ApplePy is.</p>
<p>You can checkout the progress at <a class="reference external" href="https://github.com/gutomaia/wedNESday">wedNESday repository</a>.</p>
</div>
<div class="section" id="next-wednesday">
<h2>Next wedNESday</h2>
<blockquote>
<ul class="simple">
<li>Get a better understand on how IRQ and NMI works</li>
<li>try to do the same with <a class="reference external" href="https://github.com/mnaberez/py65">py65</a>.</li>
</ul>
</blockquote>
</div>
<div class="section" id="references">
<h2>References</h2>
<p><a class="reference external" href="http://nwidger.github.io/blog/post/writing-an-nes-emulator-in-go-part-1/">Writing an NES emulator in Go Part 1</a></p>
<p><a class="reference external" href="http://blog.alexanderdickson.com/javascript-nes-emulator-part-1">Write a NES Emulator with Javascript Part 1</a></p>
<p><a class="reference external" href="http://blog.alexanderdickson.com/javascript-nes-emulator-part-2">Write a NES Emulator with Javascript Part 2</a></p>
<p><a class="reference external" href="https://medium.com/@fogleman/i-made-an-nes-emulator-here-s-what-i-learned-about-the-original-nintendo-2e078c9b28fe#.7535jmlgd">I made an NES emulator Heres what I learned about the original Nintendo</a></p>
</div>
</div>
<div class="tag-cloud">
<p>
<a href="https://gutomaia.net/tag/nes.html">nes</a>
<a href="https://gutomaia.net/tag/emulator.html">emulator</a>
<a href="https://gutomaia.net/tag/python.html">python</a>
</p>
</div>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle ads-responsive"
data-ad-client="ca-pub-8039666399992046"
data-ad-slot="4065034611"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</article>
<footer>
<p>© Guto Maia 2024</p>
<p> Powered by <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a>
</p> </footer>
</main>
<!-- Google Analytics -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-32666248-1', 'auto');
ga('send', 'pageview');
</script>
<!-- End Google Analytics -->
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Blog",
"name": " gutomaia ",
"url" : "https://gutomaia.net",
"image": "https://s.gravatar.com/avatar/760d34405db2c028a3fb099a4510d870?s=100",
"description": ""
}
</script>
</body>
</html>