- Added volume controls to UI.
- Renamed "Sega Rally Controls" to "Sega Rally/Dirt Devils Controls" (even though Dirt Devils has no hand brake).
- Hooked up gear shifting and view change for Dirt Devils.
- Removed debug printf()'s from DSB.cpp.
- Removed debug printf() from Real3D.cpp.
- Disabled assertions in SCSPDSP.cpp.
- Converted all error messages in Amp library to Supermodel format.
- Added parameters for DirectInput and XInput force feedback effects (although still need to add code to persist them in configuration file)
- Added extra friction feedback effect and tidied up existing effects
- Fixed an MPEG related crash when loading save states. If usingLoopStart is 0, it is important not to call MPEG_SetLoop()!
- -input-system is working again.
- Changed the format of some messages here and there.
- Moved Logger.h to OSD/, cleaned up comments.
- Command line and config file parsing have been rewritten.
- Began replacing C standard library headers with C++ versions (eg. stdio.h -> cstdio). I think I got most of them, but not all.
- INI file changes: added support for opening and creating files, for a default section alias, and for sections appearing multiple times in the section list (may prevent some bugs).
- CSoundBoard is not derived from CBus.
- Optimized sound board memory handlers (now using switch statements).
- Added DSB emulation (based on R. Belmont's M1 source code).
- Improved ROM loading: only unique ROMs (those not shared amongst games) are used to identify games. The ROM loader will no longer get confused as easily.
- General cleanup here and there, removed unused Render.h file.
- Model LUT now capable of differentiating between texture offset states (linked list of different texture offsets for each model address).
- Removed texOffset uniform attribute from vertex shader -- no longer needed.
- Moved CPU debugger for Turbo68K into separate class CTurbo68KDebug and made C68KDebug base class for later addition of Musashi core
- Fixed typos in ConsoleDebugger
- Added object interface CThread for OSD threading and synchronization, together with SDL implementation
- Added multi-threading to CModel3 so that separate CPUs (PPC of main board, 68K of sound board and Z80 of drive board) can be run in separate threads if requested to improve performance on multi-core PCs
- Added -multi-threaded command line option (default is to run single-threaded still)
- Implemented bank switching for sample ROMs. It is probably incorrect because there is still 2MB of unaccounted-for space.
- Added a few important TO-DO notes.
- Added PPC/68K communication and automatically generated sound IRQs. Sound is now mostly working :)
- Increased SCSP MIDI buffer length to 128 to simulate a large FIFO for PPC->68K commands.
- Added sound ROMs to those games which have 8 MB of sample ROMs.
- Added a 68K interface, CPU/68K/M68K.*.
- Moved Turbo68K source files to CPU/68K/Turbo68K. It is no longer used but is being retained in the source tree for now. The LSR instruction has not been fixed in this update.
- Changed sound board code to use the new 68K interface (and hence, Musashi).
- Changed version string from 0.2-WIP to 0.2a-WIP. This is still an alpha version.
- Above changes have broken the 68K debugger.
- Added CPrintBreakpoint
Changes to console-based debugger:
- Added new scp command and tidied up some other commands
- Tidied up event logging
- Sorted commands into common groups
- Added ReadMe.txt help file
- fixed step-out to work properly
- added ability to enable/disable debugging of individual CPUs
Changes to console-based debugger:
- tidied up syntax and split some commands out to make easier to use
- implemented missing commands (loademustate, saveemustate, resetemu, configinput, configallinputs, help)
- added new commands (nextframe, enablecpu, disablecpu, removeallcomments)
- added ability to redirect command output to a file
- added code to create debugger object and attach it to system,
- added new command lines options -enter-debugger and -disable-debugger,
- added new UI input to halt execution and enter debugger (default Alt+B),
- added new CLogger class to route all output via debugger if required.
- Added ability to configure axis min, centre and max values in INI file. This allows some types of steering wheel pedals that use an inverted value range to work properly with the emulator.
- Modified CINIFile to read and write signed numbers (needed for above change).
- Added check at configuration start for "bad" input sources such as axes that are wrongly calibrated or buttons that are always triggering a value. Otherwise they cause the configuration loop to wait indefinitely for the axis or button to be released.
- Removed superfluous check for XInput devices when XInput is not enabled in CDirectInputSystem.
- Improved force beedback code in CDirectInputSystem and also added the extra feedback effects needed so far for drive board emulation.
- Fixed bug with mapping of multiple assignments.
- Added new ! operator for input mappings, which lets the user specify that an input must not be active.
- Added option to print info about input system (such as settings and detected keyboards, mice and joysticks) during input configuration.
- Added new trigger input for lightgun games with a configurable option to automatically pull trigger when offscreen input is activated (this makes playing with the mouse easier as the gun can be reloaded with single mouse button, rather than having to press both
buttons at the same time).
- Added -xinput command line option that switches to using XInput API rather than DirectInput for XBox 360 controllers (this allows the XBox 360 controller's two triggers to be read independently which works better for driving games when they are mapped to accele
rator and brake).
- Added initial version of force feedback implementation to DirectInputSystem (this still needs work).