Commit graph

932 commits

Author SHA1 Message Date
Ian Curtis e3bc56c8f1 values must be signed, to handle negative numbers, my bad 2022-06-14 21:24:43 +00:00
Ian Curtis 78eab65749 minor fix 2022-06-14 18:14:06 +00:00
Bart Trzynadlowski 7be381c9ba Added configurable refresh rate. Default is 60 but -true-hz on the command line enables 57.524 Hz mode, which some players report making Spikeout and the timing of combos in VF3 more authentic. The config key is RefreshRate and is specified as a floating point value. Should the desire arise, arbitrary refresh rates can be set in Supermodel.ini using this key but almost no validation of the value is performed. Thanks to forum user trap15 for the original code and PonMi for advocating for this patch to be included. 2022-06-12 17:51:57 +00:00
Ian Curtis 83e7b5f45d njz3: Proper quadrophonic audio support. Need 4+ speakers to take advantage otherwise down mixed to stereo. 2022-06-09 21:10:39 +00:00
Bart Trzynadlowski 5e61e2f388 Added default values for PortIn, PortOut, and AddressOut 2022-03-31 23:09:32 +00:00
Ian Curtis 84ae9df665 fix: explicit specialization requires 'template <>' 2022-02-06 17:32:44 +00:00
Bart Trzynadlowski fe7baa108f Bitmap size field in the BITMAPV4HEADER was not being set correctly (the image viewers I've been using are unaffected by this but it ought to be corrected) 2022-02-05 06:44:53 +00:00
Bart Trzynadlowski 3f6937e1a6 When dumping textures, two T1RGB5 texture maps are written: with and without contour processing. Contour processing can be disabled per-polygon and some textures intended to be used without contour processing contain pixels with T=1 that are clearly not supposed to be transparent. We now output textures_t1rgb5_contour.bmp and textures_t1rgb5_opaque.bmp. 2022-02-05 00:52:34 +00:00
Bart Trzynadlowski 32933ef9b0 Added a -dump-textures option (config key DumpTextures) that writes texture BMP files, one for each known format (12 in all currently) 2022-02-01 23:15:06 +00:00
Matthew Daniels 646b46fd4b Adjust the number of PowerPC cycles executed per frame to assume 57.524 Hz refresh rate
Fighting Vipers 2 attract mode no longer requires 100+ MHz to run smoothly

Supermodel itself still runs at 60 Hz
2022-01-23 15:32:53 +00:00
Ian Curtis 0ef90899e1 Double buffer the line of sight values. Should allow the correct values to be returned if GPU threading is enabled. 2022-01-02 12:48:09 +00:00
Matthew Daniels 1a7e319aaf Fixing Magical Truck Adventure bad ROM dump which was causing attract mode to stop rendering 2021-12-29 13:18:20 +00:00
Ian Curtis bc774ca10e methods should be marked as noexcept because they cannot throw 2021-12-19 17:48:38 +00:00
Ian Curtis b8aac0a4f8 white space. 2021-12-17 23:58:20 +00:00
Ian Curtis 6f7130c50b Better document real3d registers 2021-12-17 23:57:12 +00:00
Matthew Daniels 6ff099b5ba Clear all Real3D DMA registers on reset; uninitialized values were causing issues with MSVC debug builds 2021-12-17 23:36:54 +00:00
Matthew Daniels 3e9c887277 Another header include fix 2021-12-15 14:47:41 +00:00
Matthew Daniels 94772ae3d9 Include required header files in Model3GraphicsState.h - fixes potential build errors in GCC 2021-12-15 13:55:27 +00:00
Matthew Daniels 0c47ac831a Increase MIDI FIFO buffer size for SCSP; should prevent FIFO overflows
Also use similar macro for DSB FIFO buffer
2021-11-30 23:01:37 +00:00
Matthew Daniels e93c5d710f PowerPC IRQ line deassertion; DMA only fires interrupts when required
PowerPC no longer clears its own IRQ line; it is now cleared by the IRQ controller when there are no more pending interrupts. Not all games clear DMA interrupts so it was necessary to tweak the 53C810 SCSI controller and the Real3D DMA interface to only fire interrupts if a certain register is correctly set. 53C810 has the documented DIEN (DMA Interrupt Enable) register; Real3D DMA seems to use the low bit of the dmaConfig register.

Also I removed the net IRQ as no games seem to actually use it.
2021-11-28 01:11:11 +00:00
Matthew Daniels 9ffce8b92a Getting rid of most of the includes from Supermodel.h; each file now explicitly includes the header files it needs.
Making changes to a header file should no longer force the entire project to recompile.
2021-11-22 17:15:06 +00:00
Matthew Daniels 50465f9a5a Shared RAM on simulated netboard is now double-buffered; Spikeout Final Edition no longer requires a hack to work.
Preparing to enable simulated netboard to run in its own thread
2021-11-05 00:23:29 +00:00
Matthew Daniels b62110617b New JTAG patch for Sega Rally 2; linked mode now fully working.
Few other minor changes
2021-10-30 23:00:49 +00:00
Matthew Daniels 94d8a1b22d Increase size of DSB2 FIFO buffer; fixes Sega Rally 2 music occasionally not switching or fading out 2021-10-26 22:47:24 +00:00
Matthew Daniels b18f6d1b54 Non-linked games no longer falsely list the net board under extra hardware 2021-05-09 23:22:18 +00:00
Matthew Daniels b7755c9ae1 Fix 16-bit variables not displaying correctly in Z80 debugger (at least in MSVC builds) 2021-05-09 18:12:40 +00:00
Matthew Daniels a20366d338 Fix netboard resets and detection of simulated netboard linking to itself 2021-04-19 22:15:50 +00:00
Matthew Daniels 5a570ce7fe Adding simulated netboard; all linked games except Sega Rally 2 working at full speed. 2021-04-14 01:20:45 +00:00
Matthew Daniels 98d4f1c6f6 Corrected alignment issues with netboard RAM; send/receive parameters no longer need to be manipulated to work correctly. Fixes bugs including Scud Race linked car orientation. 2021-03-22 01:08:45 +00:00
Ian Curtis 4b9221ecd6 Add some async network methods. Async send copies to an internal buffer and sends in another thread so doesn't block at all. Added CheckDataAvailable method to the TCPReceive class. Can check or wait for data without blocking. 2021-03-15 15:55:39 +00:00
SpinDizzy 020e2d1b32 DSB2 clock speed from 4MHz to 11MHz. 2021-03-13 08:17:11 +00:00
SpinDizzy eb61bd91e5 New dumps added:
Virtua Striker 2 '99.1 (Step 1.5, Export, USA, Revision B)
Virtua Striker 2 '99.1 (Step 1.5, Japan, Revision B)
Thanks to Brian Troha and The Dumping Union
2021-03-07 10:14:36 +00:00
SpinDizzy de470aaf52 Fixed cycle counting overflow that was causing DSB2 to halt execution. 2021-03-07 10:12:37 +00:00
Ian Curtis 6cf9974102 missing header 2021-03-03 20:31:57 +00:00
SpinDizzy 46b1de2238 DSB2 IRQ 2 now fires at 1KHz rather than once per frame, improving
music timing in Daytona USA 2 and Sega Rally 2. DSB1 CPU timing 
increased from 1MHz to 4MHz, improving music fade timing in Scud Race. 
Thanks to gm_matthew for these discoveries.
2021-03-03 15:30:19 +00:00
Ian Curtis e3374256ff Just a few compile warnings 2021-02-20 22:19:16 +00:00
Ian Curtis 0bfc2aea31 Fix project file 2021-02-19 11:03:48 +00:00
SpinDizzy f23b2f96f9 Build bot script. 2021-02-18 10:37:03 +00:00
SpinDizzy e4998f57fd Skichamp Driveboard error fix. 2021-02-18 10:35:38 +00:00
SpinDizzy 08d4735ee8 Huge refactor of the Driveboard:
-Separate each possible boards (wheel, joystick, skipad, billboard).
-Defined a Driveboard type in Games.xml for each games.
-Due to the refactoring, Driveboard Savestates have changed (a common base data + a specific board data are saved).
-Backwards compatibility with previous save states is maintained.
-Driveboard rom section is no longer required anymore. This disables Driveboard emulation in case the rom is not found.
-Added Billboard emulation (vf3, vs2, fvipers2, von2). 7 segments and lamps Outputs are redirected to Supermodel outputs.
-Changes project to C++ 17 standard.
2021-02-18 10:29:15 +00:00
SpinDizzy ab367774d3 Introduce new config keywords.
In xinput mode, lets the choice to have left and right gamepad motors vibrate together.
XInputStereoVibration = 1 (both motors) [default]
XInputStereoVibration = 0 (separate motors)

In sdl input mode, new control option to set minimum strength above which a Model 3 constant force command will be simulated on an sdl gamepad device.
SDLConstForceThreshold = 30 [default]
note : the vibration strength can be mod with SDLConstForceMax = [val]
2021-01-30 09:54:03 +00:00
SpinDizzy 6627b1e95f The controls of bass/getbass games were no longer good, following recent rom set name changes in Games.xml. 2021-01-05 14:24:57 +00:00
SpinDizzy 2fa9c8d0d7 Corrected game set names & game titles (Brian Troha)
New clones
-Sega Bass Fishing Deluxe (USA) (Brian Troha)
-Dirt Devils (USA, Revision A) (Brian Troha)

------------
Note/Warning:
This will match future Mame 0.228 changes.
Please Check/Edit carefully all your rom set because there are many changes (e.g. set name).
Thinking of delete or rename your nvram, or restart from the start.
2021-01-05 14:23:24 +00:00
SpinDizzy 6626afc8bb Added rumble skipad in Ski Champ game.
This is only a simulation (cmd are interpreted), not an emulation because we lack informations on the game itself and its driveboard (does it have dedicated cpu/rom ?).
2020-12-30 17:14:14 +00:00
SpinDizzy f3a7ec52ba Service menu activated in swtrilgyp.
Note : The "feedback stick test" always failed (change cab type DX to SD if needed).
2020-12-30 16:38:13 +00:00
SpinDizzy c8f47cc52b - Add -O3 optimization option for OSX and Linux.
- Revert netboard to disable by default.
2020-12-30 16:05:25 +00:00
SpinDizzy 34c24c0104 - Suppressed net board console output (using debug logging now)
- Added GPL headers to net board source files
2020-12-28 16:22:12 +00:00
SpinDizzy 8df56ddcbf - Star Wars Trilogy untextured Death Star surface bug in gcc builds was caused by -Ofast (thanks to rokfpoewrkcpoqwkcp for discovering this). Using -O3 now.
- Net board enabled by default.
2020-12-27 13:14:37 +00:00
SpinDizzy cce9914a13 Updated rules file. 2020-12-25 08:29:18 +00:00
SpinDizzy 53185c3eff Introducing a special release build target with SVN version stamping. 2020-12-24 10:20:26 +00:00