Commit graph

929 commits

Author SHA1 Message Date
Bart Trzynadlowski 9f6a01eb55 Made save states 64-bit safe. 2011-09-05 20:07:14 +00:00
Bart Trzynadlowski 498d90d667 Multithreading was always enabled in the CModel3 constructor. Disabled this behavior. 2011-09-05 19:05:47 +00:00
Bart Trzynadlowski 99149124e6 First part of SCSP clean up: pointer arithmetic made more safe (I hope). To-do: convert data types to Supermodel standards. 2011-09-05 06:53:26 +00:00
Nik Henson 7b58fd0644 Fixed bug which meant that a buffer over-run occuring under certain conditions would leave the write position dangling past the end of the buffer, causing no further sound to be written to the buffer and leaving playback looping indefinitely. 2011-09-01 21:58:10 +00:00
Bart Trzynadlowski bda9efebac - getbass now uses MPC106.
- Fixed some error messages in 53C810.cpp.
- Fixed stereo (was swapped) and added a flip stereo option.
2011-09-01 06:43:01 +00:00
Nik Henson b25cbb2391 Removed setting of writeWrapped to false always on buffer under-run when underRunLoop is true as this is wrong. Suspect this may have been causing looping bug. 2011-08-31 22:30:45 +00:00
Bart Trzynadlowski de3e56fc96 Inadvertently left SUPERMODEL_LOG_SOUND enabled. Now disabled. 2011-08-29 16:32:24 +00:00
Bart Trzynadlowski b647cd5a4b - Added Spikeout Final Edition.
- Minor change to DSB save state loading: only loopEnd is checked before using MPEG_SetLoop().
2011-08-28 20:56:36 +00:00
Bart Trzynadlowski 87dc5b4181 - Fixed format strings for messages involving __LINE__.
- 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.
2011-08-28 04:37:41 +00:00
Bart Trzynadlowski 8be2966ecb - Added crosshairs for light gun games and disabled mouse cursor in full screen mode (no way to re-enable it now).
- Fixed Real3D FIFO buffer overflow bug.
- Input system cannot be changed for non-Windows builds (only SDL is available).
- Added Spikeout-specific controls.
2011-08-27 21:37:37 +00:00
Bart Trzynadlowski b19f600fec - Added mappings for individual joysticks in Virtual On for dual-joystick gamepads.
- Input settings are now only read from "global" to avoid confusion.
2011-08-26 05:06:34 +00:00
Bart Trzynadlowski a2ce64745f Detailed config is logged. 2011-08-20 16:56:40 +00:00
Bart Trzynadlowski bedbfd26d3 Detailed config is logged. 2011-08-20 16:53:52 +00:00
Bart Trzynadlowski dbc1dbb0e8 - Forgot to add OSDConfig.h.
- Changed more C standard library headers to C++ versions.
2011-08-19 23:47:33 +00:00
Bart Trzynadlowski d318efe58c - Program settings are now managed by the CConfig class.
- 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.
2011-08-19 20:43:07 +00:00
Bart Trzynadlowski 5e1ea75374 Fixed memory pool macros to (hopefully) work with gcc. 2011-08-15 05:59:33 +00:00
Bart Trzynadlowski 6c5b4293eb Musashi context is now cleared in M68KCtx constructor. The internal Musashi context is zeroed out initially but the dynamically allocated external contexts would sometimes be filled with garbage, which would trigger interrupts at the very first instruction after reset, making the 68K go off into the weeds. This fixes a nasty randomly-occurring bug I was seeing. 2011-08-14 23:59:01 +00:00
Bart Trzynadlowski 4e7b7cc59b - Fixed DSB2 save states: M68K context wasn't being set.
- 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).
2011-08-10 07:46:42 +00:00
Bart Trzynadlowski 12e4d82471 - DSB2 save state support.
- krom made a minor optimization of the byte reverse routines in ppc.cpp.
2011-08-10 05:35:42 +00:00
Bart Trzynadlowski 91c9b9869b R. Belmont's changes to compile under MacOS and Linux. 2011-08-10 04:24:15 +00:00
Bart Trzynadlowski 06f6bf093b Save state support for 68K, Z80, sound board, DSB1, and MPEG playback. 2011-08-09 18:36:29 +00:00
Bart Trzynadlowski 52cd9d834b Save state support for 68K, Z80, sound board, DSB1, and MPEG playback. 2011-08-09 18:16:06 +00:00
Nik Henson 07fd26003e Added option to loop play position back to beginning of audio buffer when a buffer under-run occurs, rather than stalling output as before. This option is now the default behaviour. 2011-08-07 23:09:18 +00:00
Bart Trzynadlowski 6c71ec28af Protection now works for ecax. 2011-08-07 03:10:07 +00:00
Nik Henson 416fead447 Fixed mistake in previous commit! 2011-08-07 01:07:48 +00:00
Nik Henson 466997b318 Small bug fix to get MIDI music to play at correct speed (68K was running at wrong frequency) 2011-08-07 00:30:52 +00:00
Bart Trzynadlowski 603bd1bb86 - Added a patch for vs215. 2011-08-05 06:49:51 +00:00
Bart Trzynadlowski d859115074 - krom's patches for vf3a, harleyb, and ecax. 2011-08-05 06:22:34 +00:00
Bart Trzynadlowski 67c1b94b35 - Fixed DSB2 music looping. 2011-08-04 05:52:26 +00:00
Bart Trzynadlowski 915a6c5a17 - Fixed a DSB2 bug: masking of bytes when constructing start/end addresses is now correct (previously was allowing uninitialized garbage into upper 8 bits, which ought to be 0). 2011-08-03 06:06:18 +00:00
Bart Trzynadlowski 6a6788952c - Fixed Daytona 2 Advertise song. DSB2 MPEG state machine can now begin playing songs from state ST_GOTA4.
- krom: Minor fixes to Main.cpp to support wider ROM set names (up to 9 chars) and compilation under MinGW.
2011-08-03 04:29:33 +00:00
Bart Trzynadlowski 6b55cfb765 - krom added remaining ROM sets. Spikeout Final Edition disabled because it is a bad dump.
- Added patches for scuda and scudj.
- Added a TO-DO reminder in INIFile.cpp.
2011-08-03 03:18:51 +00:00
Bart Trzynadlowski fce3c7ad7c - skichamp now works, but controls are not hooked up and seems to overload the display lists like many non-working Step 2.x games do. To bypass the drive board error, enter the test menu and exit again. It will reboot and run.
- Added some notes on the cause of the "NO DAUGHTER BOARD DETECTED" error in Real3D.cpp.
- Removed some debug code from texture uploader.
2011-08-02 03:33:40 +00:00
Bart Trzynadlowski 2ca7898f1a - Changes submitted by krom: cleaned up spacing in Games.cpp, optimized byte swapping functions in Supermodel.h, minor changes to fix compiler errors in gcc. 2011-08-01 19:12:44 +00:00
Bart Trzynadlowski 4c02a8af05 - Fixed Ski Champ loading. Fails with a "NO DAUGHTERBOARD" error. 2011-07-31 19:19:59 +00:00
Bart Trzynadlowski d8960ad133 - Commented out debug log stuff. Now produces less noisy debug.log files. 2011-07-31 17:16:15 +00:00
Bart Trzynadlowski 357536ea5a - Added a C fallback for inline assembly code when the compiler is not MSVC. 2011-07-31 17:12:02 +00:00
Bart Trzynadlowski cbf28944a5 - Alphabetized ROM sets (thanks to krom) and added DSB ROMs to Spikeout. 2011-07-31 17:08:05 +00:00
Bart Trzynadlowski c5d823f054 - Fixed compilation when DEBUG is defined. 2011-07-31 17:07:17 +00:00
Bart Trzynadlowski 4b994a873e - Removed an unneeded printf() statement. 2011-07-31 04:58:39 +00:00
Bart Trzynadlowski ddd6fa92ef - Improved 68K interface. Now supports context switching.
- 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.
2011-07-31 02:37:31 +00:00
Nik Henson 62f695cc96 Added instruction cycle counting to new Z80 core 2011-07-26 21:47:59 +00:00
Bart Trzynadlowski 79e8172340 - Textures are no longer decoded for un-textured polygons (not sure if this fixes anything yet). 2011-07-22 19:01:45 +00:00
Bart Trzynadlowski d2ecec7997 - Textures are no longer decoded for un-textured polygons (not sure if this fixes anything yet). 2011-07-22 18:56:35 +00:00
Bart Trzynadlowski 5b373f687f - Sega Bass Fishing now uses an MPC106, allowing it to boot. 2011-07-22 06:43:53 +00:00
Bart Trzynadlowski a033058deb - Texture offsets: models are now decoded for each individual texture offset state and texture coordinates are adjusted while generating the vertex data.
- 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.
2011-07-21 08:12:16 +00:00
Nik Henson b94537341d - Added check of reserved flag back into PPC stwcx. instruction 2011-07-20 21:40:10 +00:00
Nik Henson 45dd662dee - Updated debugger classes to get them to compile with latest changes
- Moved CPU debugger for Turbo68K into separate class CTurbo68KDebug and made C68KDebug base class for later addition of Musashi core
- Fixed typos in ConsoleDebugger
2011-07-20 21:39:11 +00:00
Nik Henson 03fa9532eb - Added function-based interface Audio for OSD sound output, together with SDL implementation
- 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)
2011-07-20 21:14:00 +00:00
Bart Trzynadlowski 12693a70f6 - Patched out a decrementer loop that was preventing Spikeout from starting up. 2011-07-20 06:20:40 +00:00
Bart Trzynadlowski 097b87e3c9 - CPU/Z80.h included from Supermodel.h 2011-07-18 19:59:37 +00:00
Bart Trzynadlowski 99b9c7838f - Added Z80 emulator from YAZE-AG.
- CBus now has IO bus functions to support the Z80.cpp
- Bus.h moved to CPU/ directory.
2011-07-18 19:48:57 +00:00
Bart Trzynadlowski 004339e601 - Added sound ROMs to Daytona 2 (BOTE and PE).
- 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.
2011-07-16 04:53:12 +00:00
Bart Trzynadlowski 325f9ab2e8 - stwcx. now always writes to memory.
- 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.
2011-07-13 07:11:27 +00:00
Bart Trzynadlowski b2afd274cb 2011-07-13 05:29:02 +00:00
Bart Trzynadlowski c73cb830dc - Added the Musashi 68K emulator by Karl Stenerud. Obtained Karl's explicit permission to relicense the code under GPL.
- 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.
2011-07-12 04:57:12 +00:00
Bart Trzynadlowski 95d61ce8bb Several ROM sets were added (contributed by krom@gbadev.org). 2011-07-06 05:08:02 +00:00
Bart Trzynadlowski b0e8755afc Added Spikeout protection data.
Added code to detect and abort erroneous 0-length texture transfers (was causing Spikeout to hang the emulator).
2011-07-06 05:07:04 +00:00
Bart Trzynadlowski a90075830c Texture offsets. 2011-07-06 05:05:38 +00:00
Bart Trzynadlowski cd2621b2ce Added texture offsets. Vertex shader has been updated in Shaders/Vertex.glsl.
Added palette initialization to 2D renderer. Fixes 2D graphics corruption when loading states (most visible in Scud Race).
2011-07-04 20:53:37 +00:00
Nik Henson 97ac46c82a Changes to debugger classes:
- 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
2011-06-29 23:21:50 +00:00
Nik Henson 8e2e8adeb3 Changes to debugger classes:
- 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
2011-06-28 23:20:19 +00:00
Nik Henson 0153a02b19 Added version of ConfigInputs that doesn't take display dimensions 2011-06-28 23:16:40 +00:00
Nik Henson 9416f9c521 New debugger classes - implementations for ppc and Turbo68K CPU cores 2011-06-28 00:29:20 +00:00
Nik Henson 8a9924b884 Changes for new built-in console-based debugger (only compiled in if SUPERMODEL_DEBUGGER defined):
- 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.
2011-06-27 23:44:51 +00:00
Nik Henson 036c371592 Added headers for new debugger classes 2011-06-27 23:22:50 +00:00
Nik Henson 2465354ef6 New CLogger class that handles logging from Supermodel. Added so that log messages can be routed through debugger if required, rather than printed to console. 2011-06-27 23:21:43 +00:00
Nik Henson aa0c598a4c Added hooks into debugger classes 2011-06-27 23:19:22 +00:00
Nik Henson 46944e8c96 Added option to call user supplied debug function before every instruction 2011-06-27 23:10:51 +00:00
Nik Henson 809892c69c Added check for error that occurs when calling CoInitialize from a managed context 2011-06-27 23:06:08 +00:00
Nik Henson 7f53bd4816 Added new UI input to break execution and enter debugger (default mapping Alt+B) 2011-06-27 23:04:34 +00:00
Nik Henson efefc65ecf Removed couple of debugger commands that not yet working 2011-06-27 23:01:15 +00:00
Nik Henson eddc1df03a New debugger classes 2011-06-27 22:55:03 +00:00
Nik Henson 187f0016fb Fixed small bug with formatting in DecodeSigned16 2011-06-27 19:53:24 +00:00
Nik Henson 2800f86935 Small change to allow Supermodel to compile under Linux 2011-06-22 20:46:53 +00:00
Nik Henson 2e14ec3e6e Small code tidy up (moved some code out of header file into cpp file where it belongs) 2011-06-22 20:18:40 +00:00
Nik Henson e8782b98fa Changes relating to input system:
- 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.
2011-06-22 13:06:52 +00:00
Nik Henson 5e247021be Changes relating to input system:
- 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).
2011-06-05 20:53:39 +00:00
Bart Trzynadlowski 783446fca2 Fixing import mistake: moving source code to trunk/Src. 2011-04-24 01:19:40 +00:00