OSDN Git Service

[VM][UPD7810] Fix FTBFS.
[csp-qt/common_source_project-fm7.git] / doc / ABOUT_eFM7_1.en.2.txt
1 2016 New Year memorial & eFM-7 One year anniversary of porting work,
2 "eFM-7 and other things"
3       Jan 1,2016 K.Ohta <whatisthis.sowhat _ at_ gmail.com>
4
5 * Sorry, this document is written in Japanese only,
6   I can not 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 compliance with GFDL (GNU Free Document License)
13 You can copy and redistribute it.
14   I write Japanese only because I am bad at English, sorry ( '· ω · `)
15   If there are people who can translate from Japanese to other languages, please do come I will m(_ _)m
16
17
18 1. What is this (literal translation)?
19 As a precursor to making eFM - 7, Common Source Code Project (CSP) to Qt + OpenGL from the beginning, the first anniversary of December 30 last year. So, perhaps thirty years later historical value may come out I thinking (^ _ ^; Now bringing together a variety of miscellaneous things I thought.
20
21 2. Prehistory: XM7/SDL
22 There was a very excellent FM - 7 emulator [1] called XM 7 from the front. However, this only worked on Windows.At the time that it was 2008 or was 2009, this is referred to as GP 2 X [2] in Korea I want to try Xanadu by working it with a mobile game machine. I feel like [3] there, I gave permission to PI. Who made a base with XM 7 author's RYU Takegami.However, although PI. Was accepted, how can I really be able to do an injury?
23 It seemed to have been suspected at first but it was not good at the beginning, but to SDL and Gtk after showing the code and screenshot of the temporarily ported one, because I got permission relatively easily, I started full-scale work.
24
25 [1] http://retropc.net/ryu/xm 7/ Current development end
26 [2] https://en.wikipedia.org/wiki/GP2X
27 [3] After all I gave up the porting to the GP 2X system due to machine spec problem ...
28
29 In the first term, referring to Mr. Gimons portinging to Gtk around 2005 then I started at the time of porting the latest version of XM 7 to Gtk and SDL. On that, Gtk can not run on GP 2X. Just for the reason, on SDL look for a GUI tool kit that works with, and get to what you call Agar [4] and adopt it that's why.
30 [4] http://www.libagar.org/
31
32 Back then, a variety of illnesses were blowing out and the keyboard was on the verge of being jealous even though I do not have much days to hit from the futon,It was in a state that was not entirely amusing, sewing intervals where the body does not move due to sickness although it was the work of, in the beginning of 2010, there is something that has practicality so far came.
33 <B> However, except Agar has bugs a lot </ B>.
34 After that, I crushed each bug one by one, and thoughtfully thought load distribution on the way offroad from multithreaded [5] to OpenCL was done around 2011, on that basis, development has become sluggish.
35
36 [5] This is also applied to eFM - 7 and CSP / Qt. OpenCL,
37     Since I do not get performance, I do not think I will probably do it in the future.
38    
39 The head family (Mr. Tagagami version XM 7) has almost been completed. However, I have noticed the importance of the radio in the Great East Japan Earthquake, Open I2C Radio,it is great that we focused on the project called Radio [6] [7].
40
41 [6] https://osdn.jp/projects/openi2cradio/
42 [7] http://sky.geocities.jp/artanejp/
43
44 With such a reason, until 2014 comes closer to the end, we have two projects advance, Open I2C Radio is almost stable in mid 2013 (I think it was) as the next project, USB dong for 1 seg reception using RTL 2832U we used a project (included in [7]) to divert short wave and medium wave to receive it was rice.
45
46 3. About XM7
47 Originally, in the era when C ++ is not able to produce much performance, draw EM7 ​​which was originally made in order to be inherited, C ++ GUI part, FM sound source emulator, C language body,it is very chaotic, but indeed the performance comes out and accuracy is still tt is better than my eFM-7. Then I used C ++-centered UI and SDL.
48 Add a renderer, something like a rooftop store has become a thing and once, once I want to recreate it from. Desire to be in the middle of 2014 (confession).
49 On top of that, the German anna Wu said that the emulator collector I wonder? ) Exchanged with Takehira from around mid 2014.
50 It seems I was in the end, but in the end Mr. Tegaki and his surroundings in English. There was a thing that I was disliked, I was able to tamele.
51
52 So, I was watching the process on Twitter and I was disgusted or not, I.
53 It is a messy English person but originally a bug in Debian GNU / Linux [8] etc.
54 Discuss the development in the English community if you throw a report or need it because it is also a human being that it is normal to do it, something amazing in its process I felt a sense of incompatibility, "I think that this place is not where I should be," I thought, I complained to my old friends, well, that person is also working at a foreign manufacturer.
55 Because I was a person to go (I can not name it and I'm probably not famous, I think it is top class), asking for bitches ... "Well, I want to do it in English
56 Yan before Ri if there is to me to say that (^ ^) ", I mean that was pushed in the back.Maybe it was December 28, 2014?
57 After all, I steered the helm in the direction to ride the FM - 7 system to the CSP, git on 30th December 2014 building the repository [9] and putting the latest CSP source code of the time there.
58
59 [8] Strangely, on December 28, 2015, Mr. Ian Murdok died by police assault.Year of age 42.
60 [9] https://github.com/Artanejp/common_source_project-fm7
61
62 4. Porting of CSP started
63
64 At the time of portingation, we first used Agar for the tool kit.
65 <B> I'll move in the meantime. It is easy because the verification work is easy.
66 So I first moved X1 Turbo and PC-8801MA. [10] On top of that,
67 Since Agar has many bugs and portability and various problems, it has another versatile I decided to use the toolkit. [11]
68
69 [10] There were lots of software to verify the operation (^ _ ^;
70 [11] I have already given up running on GP 2X (^ _ ^;
71
72 So, what should I use? I thought, but Gtk got 3 and steadily got "Alecore" In addition to becoming necessary, there was also a lot of bugs in Gnome 3 and the impression was not good.
73 So, <B> then, I have never used it at all, but let me make it Qt. </ B>. When I looked it up, I did not have voice relations and joystick as standard let's leave it to SDL. Let's make OpenGL mandatory around the drawing. There is no mercy.
74 By saying that, I made a rough policy, I portinged the translation.
75 This work itself, using Qt fumble and it is very dirty code that is not uniform although it was, it will be possible to put most VMs in March of 2015 I arrived.
76 Looking at the log of git,
77   · On January 8, Agar allowed roughly the compiler to pass X1
78      (Shortly after commit fc 894319809e 0 5692 fd 447 a 5 f 232 a 46 ebd f 17 c 7)
79   · On January 10, I decided to raise the sound of Agar and switch to Qt
80      (Commit 98ac2645ec6a3798072445ac003f08d529d6065c)
81 · January 11, the compiler came to pass through Qt
82 (Commit 1033 cc 86 e 36 b 8 e 1 d 3877 1 e f 404 e 7 d 43 ad 07 e b b 39)
83 · On January 12, the foundation of the drawing system and GUI was completed and the VM moved? (With bug)
84      (Commit e 5887 aa 7464 c 7276 ef 9 d 2578 ea 880988 f 3 da 60 d)
85   · On January 13, I got a keyboard system and once I got drawing bugs
86      (Commit 6deec5abac027eca1a71fa89e485650d3c9735da)
87 As I said, I started on December 30, and 10 days from there I will manage with Agar
88 I decided to switch to Qt, and I found out the basics for applying Qt in one day
89 The design went up, and in a week from there, the underlying part of the present was finished
90 It is a translation.
91 From there, I will keep moving some VMs more and more, so until January 28
92 Advance [12], from there to make existing VMs move and full-scale implementation of FM-7
93 It was a translation. [13]
94
95 [12] commit ce 574213769 b 2685 read 0 df 84 c 81 f 193 e 519 d 3906 or later
96 [13] On December 31, 2014 I tried implementing FM - 7
97      (Commit e409be1add5f6b9ddf76bada7c24469cb35ae2bc or later),
98      Since I did not stand a lot, I will first apply to Agar and Qt's original family
99      Although it became a thing ...
100
101 5. eFM-7
102 Well, if you come here, it is a porting of FM-7. In the 80s protected from parents' house
103 Oh!FM magazine and the I/O map of FM-7 scattered on the Web and the VM code of the original CSP, after that
104 Take a look at the contents of hack like Tips in the published XM7 source code,
105 I rebuilt the code (because I do not want copyright infringement ... so)
106 From February to March of 2015 I was doing the implementation of FM-7.
107 So, on March 11 (oddly it is the fourth anniversary day after the Great East Japan Earthquake!)
108 Links now go through [14], wrong description of 6809 MPU [15] and disk.cpp / mb8877.cpp
109 The hour / minute / second format in [16] Correcting the corresponding part, at the end of March, many soft FM - 7
110 I started to move. [17]
111
112 [14] commit 65fe797cd5a681ba25c14a88566d7c80d0a8cd9a
113 [15] This is derived from the old version of the code of the underlying MAME,
114 Of course, miscellaneous undefined instructions were not implemented, and flag movement also has problems
115    was.
116 The correction work here is dragging until November 2015, and on the way it is Kanagawa prefecture
117 I went to the Kawasaki library and got a lot of materials (which have been destroyed at my parents house)
118 Including the part other than MC 6809, we fixed it to fix.
119 I think that mc6809.cpp now is not a problem as it is a completed version. It is dirty (^ _ ^;
120 [16] MB 8877 uses F5, F6, F7 in the data string at the time of formatting as a command for FDC
121      As we allocate it, if you do not do special things, you can write sectors F5 to F7
122      I can not do it. In the 1980's, on a personal computer, software that used this for copy protection
123      There were plenty, and since the character codes of F5 to F7 at that time were "hour and minute second"
124      The special format of this hand was called "hour and minute second format".
125      Check the hour, minute, and second code written in the sector and gap of this "hour and minute second" ID
126      Or, by placing an important program, I was aiming for copy protection = protect
127      However, when many copy tools (such as CopyBoy 7) use only the user's disk drive
128      Since it became possible to reproduce the minute / second format, unstable data · bit
129      Put special data called called "sectors" into sectors, read the sectors and change the data
130      Protect like checking "correct" things, hour and minute protected by set
131      It came to be used.
132 [17] commit 3 c 875 fb 911 e 484 c 15 bfdad 2 f 67 dad b 9 bded d 5 e 75
133
134 The next target was FM77AV.
135 It has its own device called MMU and logical operation · linear interpolation LSI (ALU)
136 The basic command sequence of ALU was referred to XM7.
137 The biggest reason Mr. Anna and Mr. Tikigami had troubled were that MESS was inside the device around here
138 Although protesting through Mr. Anna against the fact that the description was circled from XM 7, MESS
139 There is no answer from the community at all. By saying that it started out with a very funny story
140 Because I did it, I'm going to write about this neighborhood more carefully than other parts. [18]
141 Currently, it is designed to move according to specifications, maybe ALU's fine hack is not created ...
142 It is the feeling of saying (like the drawing of Sio Braided letters).
143 Since some problems have come up in the timing calculation, I have heard the opportunity to fix it.
144
145 [18] The internal structure of the ALU is written using the linear interpolation function using the division operation of C language
146 Actually, it is because of that kind of reason.
147
148 Including these sides, 2 PCs 'old PC' board, PC emulator comprehensive thread
149 After throwing out the binary for a while, I will ask bug reports and improvement proposals to the resident
150 I think that it was from this neighborhood that I became like it. At that time it did not work on Windows
151 Although it is, it becomes possible to move it later.
152 This work was difficult for some reason, so that most software moves consistently
153 It was about June 16th that it became it. It took me three months after all. [19]
154
155 [19] commit 1b 4320ef 622e e 75013478fe 1ec 66 ed 1 eb 3 c 47 b d 5
156
157 Next, I made FM-77. It was promoted without so much pain. However,
158 By giving up the 400 line part of FM-77L4 that does not have spot.
159 However, where the boot sequence and memory map are slightly different from both FM-7 and 77AV
160 It seemed to overlook, sometimes I noticed it later. Especially around boot RAM.
161
162 Well, until this point, it will become inevitable to implement DMAC and others of FM77AV40EX
163 In translation, ... As more software moves, various bugs spurt out, you have to finger a lot
164 It took a few months here because it was gone, so somehow.
165 Many of the accomplishments at this time are fed back to the work of Takeda of CSP authorship.
166 Mr. Takeda, thank you very much m (_ _) m
167
168 ..., On the 14th of September, AV40EX got almost okay [20], from which it applies to Windows
169 And, it is a translation to porting all VMs.
170 FM - 8 has made fraud as a fraud, but I'm thinking I'm going to do something bad.
171
172 [20] commit bbf5ed7132304d6e4c19da3cb2d634923eb55a5b
173
174 And building a cross development environment for Windows using MinGW in just under a month from there
175 It also absorbs differences in library API, Win32 version also included as a binary package as much as possible
176 As we go through discussions with Mr. Takeda via 2channels, we will reach the present
177 It is a translation.
178
179 5. Finally
180 Both CSP and Qt applied versions are still evolving. Some suggest from my side, Takeda
181 Some suggested things suggested by Mr. and Mr. Threeway's suggestion from Thres inhabitants.
182 I think that it is really nice to be able to do something like the real pleasure of FOSS like this.
183 And, with regard to FM - 7 system, we can not deny that the verification of the AV system is particularly sweet, so we do a lot of things
184 There will be plenty of time. Well, well, as I will continue at my own pace,
185 Mr. Takeda and all of you, thank you everyone m (_ _) m
186
187                                2016 1.1 K.Ohta <whatisthis.sowhat _ at_ gmail.com>
188
189 ※ Additional note:
190
191 6. Extra 1: About "1/60 second problem".
192 The emulator says "1/60 second problem".
193 The actual display and the speed of the vertical retrace of the emulating display are different.Because it is often said that timing can not be synchronized, at the very least,how to make a shift of 1 frame = 1/60 seconds. To tell this story, to eliminate this gap the argument often happens without doing it.
194 There are also some emulators that sell deviations within 1/60 seconds. My position is "It can not be helped even if it is out of two frames."
195 As for what it is, the delay of 1 frame comes out from the difference of the above machine, it is already the delay of one frame is due to the fact that Direct X and OpenGL are sandwiched in between, "It was drawn in the previous frame period it eliminates flicker by displaying things "structure is normally prepared on the OS side of the host machine,it is because there are times when it is difficult to touch directly from the application directly from the application.
196 That is, in the worst case, a deviation of about two frames (a little more when the vertical retrace frequency is significantly different)
197 Let's think that it can not be avoided beyond the difference in the vertical retrace frequency of the display. By saying.
198 It is not what ordinary applications do to thrust into it, relaxed by setting on OS side.It is possible that it is possible.
199 Ultimately, it would be better to synchronize the CSP side with the VBLANK interrupt prepared by the OS side.What is it like to think of such a thing? And personally I think. Sorry around, CSP try it with people who customize it (probably GL or Direct X or Vulkan pretty because the code will change ...). GPLv2 is for that reason too. And I think is (^_^;
200
201
202 Revision history:
203 2016-01-05 2 On the basis of your pointed out at the Total Emulator Total thread,partial review of the description of the facts that gaining permission. Later, add item 6.
204  
205 2016-01-07 In response to an indication on expression of hour / minute / second protection / format on ↑ board,added amendment (frightening)
206
207 2016-09-15 It just can not be helped Japanese phrase translated by Google was added as ABOUT_eFM7_1.en.txt.There are still no such things as word or phrase calibration
208