comparison README @ 1692:5dacaef602a7 segacd

Merge from default
author Michael Pavone <pavone@retrodev.com>
date Sat, 05 Jan 2019 00:58:08 -0800
parents 35c308355bfb
children 8aeac7bd9fa7
comparison
equal deleted inserted replaced
1504:95b3a1a8b26c 1692:5dacaef602a7
1 BlastEm 0.5.1 1 BlastEm 0.6.0
2 ------------- 2 -------------
3 3
4 Installation 4 Installation
5 ------------ 5 ------------
6 6
7 Extract this archive to a directory of your choosing. If you wish to change the 7 Extract this archive to a directory of your choosing.
8 configuration settings, copy default.cfg to $HOME/.config/blastem/blastem.cfg
9 and modify the copy. If you are on Windows, the config file should be placed in
10 %localappdata%\blastem. You may also whish to add the blastem directory to your
11 PATH environment variable.
12 8
13 NOTE: Prior to version 0.4.1, BlastEm was still using Unixy locations for config 9 NOTE: Prior to version 0.4.1, BlastEm was still using Unixy locations for config
14 and save files. If you're upgrading from a previous version on Windows, you will 10 and save files. If you're upgrading from a previous version on Windows, you will
15 need to move them manually. For config files, the relevant paths are in the 11 need to move them manually. For config files, the relevant paths are in the
16 previous paragraph. For save files, move all the directories found in 12 previous paragraph. For save files, move all the directories found in
17 %userprofile%\.local\share\blastem to %localappdata%\blastem 13 %userprofile%\.local\share\blastem to %localappdata%\blastem
18 14
19 Usage 15 Usage
20 ----- 16 -----
21 17
22 This version of BlastEm has an experimental GUI that is implemented as a Genesis 18 This version of BlastEm has a GUI that allows access to most configuration options.
23 ROM running inside the emulator. This UI can be operated with either a mouse or 19 Simply start BlastEm without passing a ROM filename on the command line to access
24 the first emulated gamepad. By default, both the keyboard and the first game 20 the main menu. You can also access the menu by hitting the button mapped to the ui.exit
25 controller are mapped to said gamepad. For more information on bindings see the 21 action (default Esc).
26 Bindings section. 22
23 If Open GL is disabled or unavaible, or you explicitly request it, the old ROM-based UI
24 will be used instead. This UI does not support configuration so you will need to modify
25 the configuration file manually if you use it. See the rest of this README for instructions
26 on modifying the configuration file.
27 27
28 Some operations are currently only supported through the command line. To get a 28 Some operations are currently only supported through the command line. To get a
29 list of supported command line options on Linux or OSX type: 29 list of supported command line options on Linux or OSX type:
30 30
31 ./blastem -h 31 ./blastem -h
147 147
148 This section lists the various "UI" actions that can be triggered by a key or 148 This section lists the various "UI" actions that can be triggered by a key or
149 gamepad binding. 149 gamepad binding.
150 150
151 ui.release_mouse Releases the mouse if it is currently captured 151 ui.release_mouse Releases the mouse if it is currently captured
152 ui.vdp_debug_mode Cycles through the various VDP debug views 152 ui.plane_debug Toggles the VDP plane debug view
153 ui.vdp_debug_pal Cycles through the selected palette when viewing 153 ui.vram_debug Toggles the VDP VRAM debug view
154 the VDP memory viewer 154 ui.cram_debug Toggles the VDP CRAM debug view
155 ui.compositing_debug Toggles the VDP compositing debug view
156 ui.vdp_debug_mode Cycles the mode/palette of the VDP debug view
157 that currently has focus
155 ui.enter_debugger Enters the debugger for the main CPU of the 158 ui.enter_debugger Enters the debugger for the main CPU of the
156 currently emulated system 159 currently emulated system
157 ui.screenshot Takes an internal screenshot 160 ui.screenshot Takes an internal screenshot
158 ui.exit Returns to the menu ROM if currently in a game 161 ui.exit Returns to the menu ROM if currently in a game
159 that was launched from the menu. Exits otherwise 162 that was launched from the menu. Exits otherwise
211 214
212 "vsync" controls whether the drawing of frames is synchronized to the monitor 215 "vsync" controls whether the drawing of frames is synchronized to the monitor
213 refresh rate. Valid values for this setting are "off", "on" and "tear". The 216 refresh rate. Valid values for this setting are "off", "on" and "tear". The
214 latter will attempt to use the "late tear" option if it's available and normal 217 latter will attempt to use the "late tear" option if it's available and normal
215 vsync otherwise. Currently it's recommended to leave this at the default of 218 vsync otherwise. Currently it's recommended to leave this at the default of
216 "off" as BlastEm synchronizes to audio and does not yet have the necessary code 219 "off" as it may not work well with the default "audio" sync method and the
217 to fully handle conflicts between the audio rate and monitor refresh rate. 220 "video" sync method will automatically enable "vsync". See "Sync Source and
218 Additionally, the "turbo" feature does not function properly with vsync 221 VSync" for more details.
219 enabled. These issues will be addressed in a future release. If you wish to use
220 vsync, please see the VSync section at the bottom of the README.
221 222
222 "fullscreen" controls whether BlastEm starts in fullscreen or windowed mode. 223 "fullscreen" controls whether BlastEm starts in fullscreen or windowed mode.
223 This can be overridden on the command line with the -f flag. If fullscreen 224 This can be overridden on the command line with the -f flag. If fullscreen
224 is set to "off", -f will turn it on. Conversely, if fullscreen is set to "on" 225 is set to "off", -f will turn it on. Conversely, if fullscreen is set to "on"
225 in the config, -f will turn it off. 226 in the config, -f will turn it off.
364 from a pseudo-random number generator. This option is mostly useful for 365 from a pseudo-random number generator. This option is mostly useful for
365 developers that want to debug initialization issues in their code. 366 developers that want to debug initialization issues in their code.
366 367
367 "default_region" determines the console region that will be used when region 368 "default_region" determines the console region that will be used when region
368 detection fails and when there are multiple valid regions. The default of 'U' 369 detection fails and when there are multiple valid regions. The default of 'U'
369 specifies a 60Hz "foreign" console. 370 specifies a 60Hz "foreign" console.
371
372 "sync_source" controls whether BlastEm uses audio or video output to control
373 execution speed. "video" can provide a smoother experience when your display
374 has a similar refresh rate to the emulated system, but has some limitations
375 in the current version. The default value is "audio".
376
377 "megawifi" enables or disables support for MegaWiFi cart emulation. MegaWiFi
378 is a cartridge that contains WiFi hardware for network functionality. Enabling
379 this means that ROMs potentially have access to your network (and the internet)
380 which obviously has security implications. For this reason, it is disabled by
381 default. If you wish to try out MegaWiFi emulation, set this to "on". Note that
382 the support for MegaWiFi hardware is preliminary in this release.
370 383
371 Debugger 384 Debugger
372 -------- 385 --------
373 386
374 BlastEm has an integrated command-line debugger loosely based on GDB's 387 BlastEm has an integrated command-line debugger loosely based on GDB's
443 dis - 68K disassembler 456 dis - 68K disassembler
444 zdis - Z80 disassembler 457 zdis - Z80 disassembler
445 vgmplay - Very basic VGM player 458 vgmplay - Very basic VGM player
446 stateview - GST save state viewer 459 stateview - GST save state viewer
447 460
448 VSync 461 Sync Source and VSync
449 ----- 462 -----
450 463
451 This section includes information about using VSync with BlastEm. As mentioned 464 This section includes information about using VSync with BlastEm. Currently,
452 above, the code is currently designed to only sync to audio and has some issues 465 the best way to use VSync is to set the sync source to "video". This will force
453 with VSync as a result. That said, if your computer is fast enough and you 466 VSync on and use video output for controlling the speed of emulation. In this
454 don't care about turbo mode, it can generally made to work. 467 mode, audio will have it's rate automatically adjusted to keep pace with video.
455 468 The code for this is still a bit immature, so you may experience dropouts or
456 The native refresh rate of an NTSC Genesis is approximately 59.92 Hz which is 469 pitch changes in this mode.
457 probably not the native refresh rate of your monitor. Fortunately, it is 470
458 most likely lower than your refresh rate. As long as this is true, VSync will 471 If you experience problems, please switch back to the "audio" sync source,
459 generally work as long as your computer is fast enough to cope with the time 472 which is the default. You can also enable vsync when using the "audio" sync
460 lost waiting for VSync and the audio buffer is large enough to not run out of 473 source by changing the "vsync" setting. This will generally work okay as long
461 samples during that delay. Latency will suffer a bit and you'll get a doubled 474 as the emulated refresh rate is below your monitor refresh rate (even if only
462 frame every once and a while, but generally things will be fine. 475 slightly), but you will occassionally get a doubled frame (or frequently if
463 476 the refresh rates are very different).
464 If you enable VSync and you're getting audio dropouts, first try doubling the 477
465 audio buffer setting. If you still experience dropouts, it's possible your 478 Turbo mode will currently not work when vsync is on, regardless of which sync
466 computer is not fast enough or that your monitor's actual refresh rate is in 479 source is used. Slow mode will work with "audio" sync, but not "video" sync.
467 fact lower than that of the emualted console. Not much can be done about the 480
468 former (apart from disabling VSync), but the latter can be dealt with by
469 lowering the default speed slightly in the "clocks" section.
470
471 A future release will support VSync in a less hacky fashion.
472
473 Special Thanks
474 -------------- 481 --------------
475 482
476 My work has been made much easier by the contributions of those in the Genesis 483 My work has been made much easier by the contributions of those in the Genesis
477 community past and present. I'd like to thank the people below for their help. 484 community past and present. I'd like to thank the people below for their help.
478 485
498 505
499 Titan - Titan has created what are without a doubt the most 506 Titan - Titan has created what are without a doubt the most
500 impressive demos on the Megadrive. Additionally, I am very 507 impressive demos on the Megadrive. Additionally, I am very
501 grateful for the documentation provided by Kabuto and the 508 grateful for the documentation provided by Kabuto and the
502 assistance of Kabuto, Sik and Jorge in getting Overdrive 2 509 assistance of Kabuto, Sik and Jorge in getting Overdrive 2
503 to run properly in BlastEm. 510 to run properly in BlastEm.
511
512 flamewing - flamewing created a very handy exhaustive test ROM for 68K
513 BCD instructions and documented the proper behavior for
514 certain BCD edge cases
515
516 r57shell - r57shell created a test ROM for 68K instruction sizes that
517 was invaluable in fixing the remaining bugs in my 68K instruction
518 decoder
504 519
505 I'd also like to thank the following people who have performed compatibility 520 I'd also like to thank the following people who have performed compatibility
506 testing or submitted helpful bug reports 521 testing or submitted helpful bug reports
507 522
508 micky, Sasha, lol-frank, Sik, Tim Lawrence, ComradeOj, Vladikcomper 523 micky, Sasha, lol-frank, Sik, Tim Lawrence, ComradeOj, Vladikcomper