Mercurial > repos > blastem
comparison README @ 1014:ef923c4b8977
More README updates
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 02 May 2016 18:27:07 -0700 |
parents | f2f983e262e2 |
children | 216fa63749b3 |
comparison
equal
deleted
inserted
replaced
1013:f2f983e262e2 | 1014:ef923c4b8977 |
---|---|
15 This version of BlastEm has an experimental GUI that is implemented as a Genesis | 15 This version of BlastEm has an experimental GUI that is implemented as a Genesis |
16 ROM running inside the emulator. This UI can be operated with either a mouse or | 16 ROM running inside the emulator. This UI can be operated with either a mouse or |
17 the first emulated gamepad. By default, both the keyboard and the first game | 17 the first emulated gamepad. By default, both the keyboard and the first game |
18 controller are mapped to said gamepad. For more information on bindings see the | 18 controller are mapped to said gamepad. For more information on bindings see the |
19 Bindings section. | 19 Bindings section. |
20 | |
21 | 20 |
22 Some operations are currently only supported through the command line. To get a | 21 Some operations are currently only supported through the command line. To get a |
23 list of supported command line options on Linux or OSX type: | 22 list of supported command line options on Linux or OSX type: |
24 | 23 |
25 ./blastem -h | 24 ./blastem -h |
108 vsync, please see the VSync section at the bottom of the README. | 107 vsync, please see the VSync section at the bottom of the README. |
109 | 108 |
110 Audio | 109 Audio |
111 ----- | 110 ----- |
112 | 111 |
113 The audio section contains settings that affect the audio output of BlastEm | 112 The audio section contains settings that affect the audio output of BlastEm. |
114 | 113 |
115 "rate" selects the preferred sample rate for audio output. Your operating | 114 "rate" selects the preferred sample rate for audio output. Your operating |
116 system may not accept this value in which case a different rate will be chosen. | 115 system may not accept this value in which case a different rate will be chosen. |
117 This should generally be either the native sample rate of your sound card or an | 116 This should generally be either the native sample rate of your sound card or an |
118 integral divisor of it. Most modern sound cards have a native output rate that | 117 integral divisor of it. Most modern sound cards have a native output rate that |
125 "lowpass_cutoff" controls the cutoff, or knee, frequency of the RC-style | 124 "lowpass_cutoff" controls the cutoff, or knee, frequency of the RC-style |
126 low-pass filter. The default value of 3390 Hz is supposedly what is present in | 125 low-pass filter. The default value of 3390 Hz is supposedly what is present in |
127 at least some Genesis/Megadrive models. Other models reportedly use an even | 126 at least some Genesis/Megadrive models. Other models reportedly use an even |
128 lower value. | 127 lower value. |
129 | 128 |
129 Clocks | |
130 ------ | |
131 | |
132 The clocks section contains settings that affect how fast things run. | |
133 | |
134 "m68k_divider" describes the relationsip between the master clock (which is | |
135 53693175 Hz for NTSC mode and 53203395 Hz for PAL mode). The default value of 7 | |
136 matches the real hardware. Set this to a lower number to overclock the 68000 | |
137 and set it to a higher number to underclock it. | |
138 | |
139 "max_cycles" controls how often the system is forced to synchronize all | |
140 hardware. BlastEm generally uses a sync on demand approach to synchronizing | |
141 components in the system. This can provide perfect synchronization for most | |
142 components, but since the Z80 can steal cycles from the 68000 at unpredictable | |
143 times 68000/Z80 synchronization is imperfect. The default value of 3420 | |
144 corresponds to the number of master clock cycles per line. Larger numbers may | |
145 produce a modest performance improvement whereas smaller numbers will improve | |
146 68000/Z80 synchronization. | |
147 | |
148 "speeds" controls the speed of the overall emulated console at different | |
149 presets. Preset 0 is the default speed and should normally be set to 100. The | |
150 other presets enable the slow/turbo mode functionality. | |
151 | |
152 UI | |
153 -- | |
154 | |
155 The UI section contains settings that affect the graphical user interface. | |
156 | |
157 "rom" determines the path of the Genesis/Megadrive ROM that implements the UI. | |
158 Relative paths will be loaded relative to the BlastEm executable. | |
159 | |
160 Other Settings | |
161 -------------- | |
162 | |
163 "default_region" determines the console region that will be used when region | |
164 detection fails and when there are multiple valid regions. The default of 'U' | |
165 specifies a 60Hz "foreign" console. | |
166 | |
130 Debugger | 167 Debugger |
131 -------- | 168 -------- |
132 | 169 |
133 BlastEm has an integrated command-line debugger loosely based on GDB's | 170 BlastEm has an integrated command-line debugger loosely based on GDB's |
134 interface. The interface is very rough at the moment. Available commands in the | 171 interface. The interface is very rough at the moment. Available commands in the |
135 68K debugger are: | 172 68K debugger are: |
136 b ADDRESS - Set a breakpoint at ADDRESS | 173 b ADDRESS - Set a breakpoint at ADDRESS |
137 d BREAKPOINT - Delete a 68K breakpoint | 174 d BREAKPOINT - Delete a 68K breakpoint |
138 di[/(x|X|d|c)] VALUE - Print a register or memory location when a | 175 co BREAKPOINT - Run a list of debugger commands each time |
139 breakpoint is hit | 176 BREAKPOINT is hit |
140 co BREAKPOINT - Run a list of debugger commands when BREAKPOINT is | |
141 hit | |
142 a ADDRESS - Advance to address | 177 a ADDRESS - Advance to address |
143 n - Advance to next instruction | 178 n - Advance to next instruction |
144 o - Advance to next instruction ignoring branches to | 179 o - Advance to next instruction ignoring branches to |
145 lower addresses (good for breaking out of loops) | 180 lower addresses (good for breaking out of loops) |
146 s - Advance to next instruction (follows bsr/jsr) | 181 s - Advance to next instruction (follows bsr/jsr) |
147 c - Continue | 182 c - Continue |
148 bt - Print a backtrace | 183 bt - Print a backtrace |
149 p[/(x|X|d|c)] VALUE - Print a register or memory location | 184 p[/(x|X|d|c)] VALUE - Print a register or memory location |
185 di[/(x|X|d|c)] VALUE - Print a register or memory location each time | |
186 a breakpoint is hit | |
150 vs - Print VDP sprite list | 187 vs - Print VDP sprite list |
151 vr - Print VDP register info | 188 vr - Print VDP register info |
152 zb ADDRESS - Set a Z80 breakpoint | 189 zb ADDRESS - Set a Z80 breakpoint |
153 zp[/(x|X|d|c)] VALUE - Display a Z80 value | 190 zp[/(x|X|d|c)] VALUE - Display a Z80 value |
154 q - Quit BlastEm | 191 q - Quit BlastEm |
157 de BREAKPOINT - Delete a Z80 breakpoint | 194 de BREAKPOINT - Delete a Z80 breakpoint |
158 a ADDRESS - Advance to address | 195 a ADDRESS - Advance to address |
159 n - Advance to next instruction | 196 n - Advance to next instruction |
160 c - Continue | 197 c - Continue |
161 p[/(x|X|d|c)] VALUE - Print a register or memory location | 198 p[/(x|X|d|c)] VALUE - Print a register or memory location |
162 di[/(x|X|d|c)] VALUE - Print VALUE before every debugger prompt | 199 di[/(x|X|d|c)] VALUE - Print a register or memory location each time |
200 a breakpoint is hit | |
163 q - Quit BlastEm | 201 q - Quit BlastEm |
164 | 202 |
165 The -d flag can be used to cause BlastEm to start in the debugger. | 203 The -d flag can be used to cause BlastEm to start in the debugger. |
166 Alternatively, you can use the ui.enter_debugger action (mapped to the 'u' key | 204 Alternatively, you can use the ui.enter_debugger action (mapped to the 'u' key |
167 by default) to enter the debugger while a game is running. | 205 by default) to enter the debugger while a game is running. To debug the menu |
206 ROM, use the -dm flag. | |
168 | 207 |
169 GDB Remote Debugging | 208 GDB Remote Debugging |
170 -------------------- | 209 -------------------- |
171 | 210 |
172 In addition to the native debugger, BlastEm can also act as a GDB remote | 211 In addition to the native debugger, BlastEm can also act as a GDB remote |
203 stateview - GST save state viewer | 242 stateview - GST save state viewer |
204 | 243 |
205 VSync | 244 VSync |
206 ----- | 245 ----- |
207 | 246 |
208 This section includes information | 247 This section includes information about using VSync with BlastEm. As mentioned |
248 above, the code is currently designed to only sync to audio and has some issues | |
249 with VSync as a result. That said, if your computer is fast enough and you | |
250 don't care about turbo mode, it can generally made to work. | |
251 | |
252 The native refresh rate of an NTSC Genesis is approximately 59.92 Hz which is | |
253 probably not the native refresh rate of your monitor. Fortunately, it is | |
254 most likely lower than your refresh rate. As long as this is true, VSync will | |
255 generally work as long as your computer is fast enough to cope with the time | |
256 lost waiting for VSync and the audio buffer is large enough to not run out of | |
257 samples during that delay. Latency will suffer a bit and you'll get a doubled | |
258 frame, but things will be fine. | |
259 | |
260 If you enable VSync and you're getting audio dropouts, first try doubling the | |
261 audio buffer setting. If you still experience dropouts, it's possible your | |
262 computer is not fast enough or that your monitor's actual refresh rate is in | |
263 fact lower than that of the emualted console. Not much can be done about the | |
264 former (apart from disabling VSync), but the latter can be dealt with by | |
265 lowering the default speed slightly in the "clocks" section. | |
266 | |
267 A future release will support VSync in a less hacky fashion. | |
209 | 268 |
210 License | 269 License |
211 ------- | 270 ------- |
212 | 271 |
213 BlastEm is free software distributed under the terms of the GNU General Public | 272 BlastEm is free software distributed under the terms of the GNU General Public |