OSDN Git Service

[VM][FMTOWNS][MEMORY] Temporally revert value around NMI.
[csp-qt/common_source_project-fm7.git] / doc / ABOUT_eFM7_1.en.txt
1 2016 New Year's Anniversary & eFM-7 Transplant One Year Anniversary
2 "eFM-7 and everything else."
3 Jan 1,2016 K.Ohta <whatisthis.sowhat _at_ gmail.com>
4
5 * Sorry, this document is written in Japanese only,
6 I can't use english well, if you interest of this
7 and you can translate from Japanese to any languages,
8 please translate this.
9 This document is released with GFDL, you can copy
10 and redistribute this document under GFDL.
11 This document is written with UTF-8.
12 This document is in line with the GNU Free Document License (GFDL).
13 You can copy and redistribute.
14 As I am not good at English, I will write only in Japanese. Sorry (´・ω・`)
15 If there is anyone who can translate from Japanese to other languages, please do so.
16 Yes m(_ _)m
17
18
19 1) What is this (literal translation)
20 The Common Source Code Project (CSP) is a pre-stage to eFM-7.
21 To Qt + OpenGL on December 30th last year.
22 So, maybe in about 30 years, it might be worth something historically.
23 I thought that I don't know. (^ _ ^ ; I will summarize various things until now.
24 I thought so.
25
26 2. Prehistory : XM7/SDL
27 There has been a very good FM-7 emulator [1] called XM7.
28 However, this only worked on Windows.
29 Whether it was 2008 or 09, this was the South Korean GP2X [2]
30 I want to play Xanadu on a portable game console. The feeling of [3]
31 I asked PI. who made the base with XM7 creator Takegami for permission.
32 Although Mr. PI readily accepted it, I wonder if Mr. Takegami can really do it.
33 At first, it was not so good, but SDL and Gtk
34 When I show you the code and screenshots of the temporary port
35 It was relatively easy to get permission, so we started full-scale work.
36
37 [1] http://retropc.net/ryu/xm7/ Development completed at present
38 [2] https://ja.wikipedia.org/wiki/GP2X
39 [3] In the end, I gave up porting to the GP2X series due to the problem of the machine spec.
40
41 In the beginning, Mr. Gimons ported it to Gtk around 05.
42 So we started by porting the then latest version of XM7 to Gtk and SDL.
43 On top of that, just because Gtk doesn't work with GP2X, you can't run it on SDL.
44 I looked for a GUI toolkit that worked with, and I arrived at something called Agar [4] and adopted it.
45 That's why.
46 [4] http://www.libagar.org/
47
48 At that time, there were a lot of illnesses, and I was on the verge of falling asleep, so I didn't have a keyboard.
49 There are not a few days to hit from a futon, and if you think about it now, even if you die of disease
50 I was in a perfectly normal state, and when I was sick and unable to move my body
51 At the beginning of 2010, there was something that was reasonably practical.
52 I'm here.
53 <B> except that Agar is full of bugs </B>.
54 Then, after eliminating the bugs one by one and seriously considering load balancing along the way
55 Offloading from multithreading [5] to OpenCL around 2011.
56 On top of that, development became sluggish.
57
58 [5] This is also leveraged by eFM-7 and CSP/Qt. OpenCL is
59 I don't think I will do it in the future because the performance doesn't come out.
60
61 The original family (Taegami version XM7) has almost completed it.
62 However, after the Great East Japan Earthquake, I realized the importance of radio.
63 I have decided to focus on the project called Radio [6] [7].
64
65 [6] https://osdn.jp/projects/openi2cradio/
66 [7] http://sky.geocities.jp/artanejp/
67
68 Until the end of 2014, these two projects
69 Open I2C Radio will be nearly stable by mid- 2013 (I think it was)
70 The next project is a USB port for 1-segment reception using RTL2832U.
71 I have done a project (listed in [7]) to convert K to receive short waves and Nakanami.
72 I was doing it.
73
74 3. About XM7
75 With EM7, the prototype of which was originally created when C++ didn't have much performance
76 The GUI part of C++, the FM sound source emulator, and the main body of C language.
77 It's very different, but it does have performance and accuracy.
78 It's better than my eFM7. On top of that, I used a C++ centric UI and SDL
79 Add a renderer, and it becomes like a stack of roof houses.
80 In the middle of 2014, there was a desire to remake it (Sange).
81 On top of that, there is an emulator collector called Anna Wu from Germany (he said).
82 Since about the middle of 2014, Mr. Takegami and his wife, Mr. Takegami
83 But in the end, Mr. Takegami and his surroundings were able to communicate in English.
84 But he didn't like it and had a trouble.
85
86 So I watched the process on Twitter, and I got tired of it, I said
87 He's a terrible English speaker, but originally a bug in Debian GNU/Linux [8], etc.
88 We throw reports, and when we need them, Discussions about development in the English community
89 It is also a person who has become a normal person to do so, so the process is amazing.
90 I felt something was wrong, and thought, "This is not where I should be."
91 He also complained to his old friend, and he was working for a foreign manufacturer.
92 (I can't name him and maybe he's not famous, but the technology is domestic.
93 I think it's top-of-the-line. complaints … "Well, it's good to do it in English.
94 He said "ATA-RI-MAE-YAN (^^)" and pressed his back.
95
96 It was December 28, 2014.
97 In the end, we turned the rudder to put the FM-7 series on the CSP and git on December 30th, 2014.
98 We built a repository [9] and put in it the latest CSP source code of the day.
99 SWISH
100
101 [8] Strangely, on 28 December 2015, Mr. Ian Murdok was beaten to death by the police.
102 He died at the age of 42.
103 [9] https://github.com/Artanejp/common_source_project-fm7
104
105 4. Start of CSP transplantation
106
107 For porting, I initially used Agar as a toolkit.
108 <B> It will work for now, because it's easy to do verification work </B>.
109 So we started with the X1 Turbo and the PC-8801MA. [10] Then
110 Agar has a lot of bugs, portability, and other problems, so it's more general.
111 We decided to use the toolkit. [11]
112
113 [10] There was a lot of software to verify the operation (^_^;
114 [11] I've given up running it on GP2X (^_^;
115
116 So, what should I use? I thought, but Gtk has become 3 and I can get more and more.
117 In addition to the need for it, Gnome 3 has a lot of bugs and it didn't make a good impression.
118 So <B> Well, I've never used it, but let's make it Qt. </B>
119 I looked into it, and I didn't have voice and joystick as standard.
120 So let's leave it to SDL. OpenGL-required around the drawing. There is no mercy.
121 That's why we made a rough policy and transplanted it.
122 This work itself is very dirty and inconsistent code that uses Qt groping.
123 By March 2015, most VMs will be available.
124 I got it.
125 If you look at the git log
126 ・ On January 8th, X1 on Agar was almost passed by the compiler and roughly operated.
127 (commit fc894319809e05692fd447fda5f232a46ebdf17c7 )
128 ・ On January 10th, we decided to switch to Qt by raising the sound of the failure of Agar.
129 (commit 98ac2645ec6a3798072445ac003f08d529d6065c )
130 On January 11th, the compiler went through in Qt.
131 (commit 1033cc86e36b8e1d38771ef404e7d43ad07ebb39 )
132 ・ On January 12th, the drawing system and the basics of the GUI were completed and the VM worked? (but there are bugs)
133 (commit e5887aa7464c7276eef9d2578ea880988f3da60d )
134 ・ On January 13th, the keyboard system was established and the drawing system bug was removed once.
135 (commit 6deec5abac027eca1a71fa89e485650d3c9735da )
136 Start on December 30 December 30th, and then Agar for the next 10 days.
137
138 The design was done, and within a week the basic parts of what we have were built.
139 That's why.
140 Until January 28th, we will be running a number of VMs.
141 Go [12] and from there you can make your existing VMs work and implement FM-7 in earnest.
142 [13]
143
144 [12] commit ce574213769b2685ead0df84c81f193e519d3906 or later
145 [13] We tried to implement FM-7 on December 31st, 2014.
146 (after commit e409be1add5f6b9ddf76bada7c24469cb35ae2bc)
147 I've had a lot to do, so apply Agar and Qt to the home first.
148 But.
149
150 5.eFM-7
151 Now, if we come to this point, it is the transplantation of FM-7. In the 80 s, he was protected from his parents' house.
152 Oh! FM magazine and FM-7 I/O map scattered on the web and VM code of the original CSP.
153 I took the content of the Tips-like hack in the published XM7 source code and made it my own.
154 I rebuilt the code (I don't want to infringe copyright …)
155 We implemented FM-7 from February to March 2015.
156 And even if it doesn't move on March 11th (this is the fourth anniversary of the Great East Japan Earthquake!)
157 The link goes through [14], 6809 MPU description error [15], disk. cpp/mb8877. cpp
158 At the end of March, a number of FM-7 sofs are available, fixing the corresponding part of [16].
159 [17]
160
161 [14] commit 65fe797cd5a681ba25c14a88566d7c80d0a8cd9a
162 [15] This is due to the old version of the underlying MAME code.
163 Of course, miscellaneous undefined instructions were not implemented, and flag behavior is also a problem.
164 Here it is.
165 The correction work around here was dragged until November 2015. Kanagawa prefectural government
166 I went to Kawasaki Library and obtained a lot of materials (which were destroyed at my parents' house).
167 We repeated the correction including the part other than MC6809.
168 I think I can say that the current mc0. 6809. cpp is a completed version. It is dirty (^ _ ^ ;
169 [16] MB8877 converts F5, F6, and F7 in the data string at the time of formatting into commands to the FDC.
170 Since it has been allocated, if you don't do something special, it is difficult to write sector numbers F5 to F7.
171 I can't do it. In the' 80 s, computers used this software for copy protection
172 At that time, the character code of F5 to F7 was "hour, minute and second".
173 This kind of special format was called "hour, minute and second format".
174 Check the hour, minute and second code written in the sector and gap of this "hour, minute and second" ID
175 Or important programs to prevent copying = protect.
176 However, many copy tools (such as CopyBoy7) require only a user's disk drive.
177 It is now possible to reproduce the min-sec format.
178 We put special data in a sector, and read the sector to see if the data changes
179 A set of protection that checks "right" and time, minute and second protection.
180 It has come to be used.
181 [17] commit 3c875fb911e484c15bfdad2f67dadb9bdedd5e75
182
183 The next target was the FM77AV.
184 It contains proprietary devices such as MMU and ALU.
185 The basic command strings for ALU were inspired by XM7.
186 The biggest reason for the dispute between Anna and Takegami is that Mess is inside the devices around here.
187 Despite a protest through Anna over the full ripping of the description from XM7, MESS
188 That there was no response from the community at all.
189 So I thought I wrote this part more carefully than the other parts. [18]
190 At the moment, it works as designed, and it may not be able to hack fine ALU.
191 (like drawing Siobredo).
192 There are some problems with the timing calculation, so I am looking for an opportunity to fix it.
193
194 [18] Internal structure of ALU, written using C division operation with linear interpolation function
195 Actually, that is the reason.
196
197 Including around here, 2 channel's "old PC" board, PC emulator comprehensive wear.
198 I often throw binaries and ask all the Sleazy residents for bug reports and improvements.
199 I think it started around here. At that time it didn't work on Windows.
200 (you'll be able to move it later).
201 This work has been difficult in various ways, so that most of the software will work without any discrepancy.
202 It was around June 16th. It took three months after all. [19]
203
204 [19] commit 1b4320ef6229e75013478fe1ec66ed1eb3c47bd5
205
206 Next, I made the FM-77. It went without so much pain. However
207 It is by giving up the 400 line part of FM-77L4 which does not have the actual product.
208 However, the boot sequence and memory map are slightly different between FM-7 and 77 av.
209 There were things that I noticed later when I almost missed it. especially around boot RAM.
210
211 Now, it is inevitable to implement the DMAC of FM77AV40EX and so on.
212 For a reason. if the number of running software increases, various bugs will come out and need to adjust routines a lot.
213 It will be gone, so it took several months even here for some reasons.
214 Many of the results of this period were fed back into the work of Mr. Takeda, the original author of the CSP.
215 Thank you very much, Takeda-san m(_ _)m
216
217 … So on September 14th, the AV40EX was almost OK [20], and from there Windows application
218 And port all VMs.
219 As for FM-8, I have done a fraud, but I am thinking of doing it.
220
221 [20] commit bbf5ed7132304d6e4c19da3cb2d634923eb55a5b
222
223 And in less than a month, we built a cross-development environment for Windows using MinGW.
224 The Win32 version is also included in the binary package as much as possible to absorb the differences in the API of the library and the API of the library.
225 While having a discussion with Takeda-san through 2channel
226 Translation.
227
228 5) Finally
229 Both CSP and Qt adaptation are still evolving. Some suggestions from my side, Takeda
230 There are also the ones that incorporate the suggestions of Ms. and the ones that incorporate the suggestions of the Sure-tenant of 2channel.
231 I think it's really nice to be able to do something kind of thing which is the best part of FOSS.
232 As for the FM-7 series, it cannot be denied that the verification of the AV series is especially lenient, so I have been doing various things.
233 There will be a lot of trouble, but, well, I will continue to do it at my own pace.
234 Thank you everyone including Takeda-san and users. m(_ _)m
235
236 2016 1.1 K.Ohta <whatisthis.sowhat _at_ gmail.com>
237
238 * Postscript :
239
240 6. Bonus 1 : About the "1/60 second problem".
241 The emulator has a "1/60 second problem".
242 The difference in vertical retrace speed between the actual display and the emulated display.
243 At the very least, the actual display will be out of sync.
244 How do you deal with a gap of 1/60 second per frame?
245 If you don't, there will be a lot of discussion.
246 There are emulators that sell the deviation within 1/60 seconds.
247 My position is, "It can't be helped even if you miss 2 frames."
248 What this means is that the one frame delay comes from the difference between the machines mentioned above.
249 The delay of one frame is due to the fact that Direct X or OpenGL is in between.
250 The structure is commonly provided on the OS side of the host machine.
251 These areas can be difficult to touch directly from the application.
252 In other words, at worst, the shift of about two frames (a little more when the vertical blanking frequency is significantly different)
253 Vertical blanking of the display Let's consider that it cannot be avoided as long as the frequency is different.
254 It's not something a normal application can do to go that far, and it's relaxed by setting on the OS side.
255 It is possible in some cases.
256 In the end, the CSP should synchronize itself with the VBLANK interrupt provided by the OS.
257 I personally think that I don't feel like thinking about such a thing. There's a lot of CSP
258 Try it for those of you who want to customize the base (maybe GL, Direct X or Vulkan pretty much).
259 The code will change …). That's why GPLv2 is there. and so on.
260 (^_^;
261
262
263 Revision History :
264 2022/06/22 FOSS License Clear, National Institute of Information and Communications
265 I retranslated it with "Minna no Machine Translation@TexTra®" ( https://mt-auto-minhon-mlt.ucri.jgn-x.jp ).
266 This still haven't finish yet.
267
268 2016/01/05 Based on what you pointed out in the 2 channel emulator general thread
269 Obtain permission Revised part of the description of the facts. Added paragraph 6 after that.
270
271 In response to the indication about the expression of hour, minute and second protection / format on the board in 2016-01-07 ↑
272 Postscript corrected (scary)
273
274 09/15/2016 Added Google translated Japanese sentence as ABOUT_eFM7_1.en.txt.
275 W E   H A V E N ' T   F I N I S H E D   Y E T .
276