Ian Curtis
db013491b4
hopefully fix building on linux
2020-09-19 14:45:51 +00:00
SpinDizzy
981cdc33f5
Added Screenshot feature (ALT+S).
2020-09-19 07:54:26 +00:00
SpinDizzy
ca57659fcb
Remove using namespace from headers.
2020-09-16 07:03:03 +00:00
Ian Curtis
c0729c1048
fix compiling with visual studio
2020-09-15 08:51:23 +00:00
Ian Curtis
75f8ee61a3
fix missing polys with quad renderer
2020-09-14 20:01:52 +00:00
SpinDizzy
309537d64e
Balance initial value set to "0" rather than "false". "False" is interpreted as 0 when decoded as a float, so there will be no effect here, but this expresses the intended logic better.
2020-09-14 07:01:54 +00:00
SpinDizzy
72b2c0eb28
Fixed a longstanding bug that caused stereo channels to be flipped incorrectly.
...
This was due to the initial audio buffer write position being aligned to the middle of a 4 byte (2 byte left, 2 byte right) audio sample.
In multi-threaded mode, some sort of race condition caused this alignment to be fixed until audio playback was temporarily paused (via pausing, loading a state, etc.)
Audio playback should now be fixed and work consistently in all cases.
2020-09-14 06:59:38 +00:00
Ian Curtis
38c3ff61f9
Clip scroll fog to viewport, instead of filling entire screen. Fixes fog bug in Daytona credits.
2020-09-08 09:10:24 +00:00
Ian Curtis
aaa26f678c
Update scroll fog logic. Should fix the credits in virtua fighter and daytona that have fogging applied to the background layer and shouldn't.
2020-09-07 16:25:18 +00:00
SpinDizzy
60c923f45f
- Reworked logging system to support output to multiple outputs: files, stdout, stderr, and syslog (OutputDebugString on Windows, syslog on other systems).
...
- Added ordinal logging level: all, debug, info, error. Compiling with DEBUG defined is no longer necessary for debug logging. Be careful when logging debug level because it produces copious output.
- Fixed -enter-debugger options when compiled with SUPERMODEL_DEBUGGER.
- Command line parse errors no longer ignored; Supermodel will now exit.
2020-08-31 09:28:35 +00:00
SpinDizzy
6491ed46a7
Rename command line SCSP option to -legacy-scsp and -new-scsp
2020-08-26 16:14:54 +00:00
SpinDizzy
d3955062e4
Correct the returned value from previous getbass patch
...
There was a strange side effect on Ocean Hunter game
2020-08-26 16:05:23 +00:00
SpinDizzy
9e8e993026
Getbass related
...
Game now boots in game
Add missing analog input and buttons
2020-08-25 08:48:25 +00:00
SpinDizzy
97d61a970c
Small oversight in the new SCSP code
2020-08-24 10:09:01 +00:00
Ian Curtis
816d541b98
Various SCSP improvements and code cleanup:
...
- Ported MAME's implementation
- Corrected FM sound for songs in VF3 that use it
- Music tempo now closer to real hardware thanks to emulating two SCSP chips.
- Add LegacySoundDSP config option for games with SCSP DSP glitches (ex. engine noises in Sega Rally 2, and loud garbage on Bahn's stage in Fighting Vipers 2)
- Renamed SysFPS to "SoundClock" (since raising this appears to adjust the sound frequency).
(Submitted by Paul Prosser)
2020-08-22 20:41:47 +00:00
SpinDizzy
27cda80abb
Low level z80 core bug
...
Discovered when looking at lemans ffb board (real Model3 rom, not Model2 stcc one)
This could affect other ffb board and/or scud race DSB1 sound board
However I didn't notice any bad things
2020-08-22 09:00:13 +00:00
Ian Curtis
d77433b525
Remove some debug code
2020-08-01 09:02:04 +00:00
Ian Curtis
ba917aca6d
Update glew version
2020-07-31 19:18:51 +00:00
Ian Curtis
5e434e2644
build fixes for mac
2020-07-27 10:28:48 +00:00
SpinDizzy
6af882548f
Linux build compatibility changes
2020-07-03 09:15:08 +00:00
Ian Curtis
f7d75b783d
silence a few casting warnings
2020-07-01 17:51:21 +00:00
SpinDizzy
a73a06d546
Netboard related : Define a new hardware line in games.xml
2020-07-01 15:56:21 +00:00
SpinDizzy
345310fbee
_rotl() replacement
2020-06-17 16:31:22 +00:00
Ian Curtis
9a651bdb61
Only try and make a connection if we have enabled EmulateNet
2020-06-17 15:11:58 +00:00
Ian Curtis
1a3407bec8
Fix corrupted memory in network mode
2020-06-17 11:41:41 +00:00
Ian Curtis
597ea93749
remove old files
2020-06-16 12:01:13 +00:00
Ian Curtis
daef27be37
Replace network code with new tcp implementation
2020-06-16 11:55:38 +00:00
Ian Curtis
8071efbf79
Add SDLnetworking + some basic tcp classes
2020-06-13 19:46:12 +00:00
Ian Curtis
d688fdd3d5
cache variable, without it is unusably slow in debug mode
2020-06-12 17:33:21 +00:00
Ian Curtis
f69d7c7006
fix output values
2020-06-08 10:14:03 +00:00
Ian Curtis
6f6c98c671
The translator map seems to work with paletted colour values too, and the result is not clamped. Colours are passed to the GPU as unsigned bytes to multiplying by 16 will overflow, so we do the logic in the shader. If we passed floats we could skip the shader logic.
2020-05-11 09:05:46 +00:00
Ian Curtis
e2ad593e88
When the translator map is enabled the colour values seem to use 4 bits, 0-16. Why not 0-31 I don't know. Anyway virtua on is overflowing these values for some of the smoke effects. For us the numbers were wrapping around. Clamping is enough to fix this. (Thanks model123)
2020-05-07 19:34:22 +00:00
SpinDizzy
5b406059ce
custom resolution bug fix
2020-04-24 07:04:41 +00:00
SpinDizzy
4f347ff3f1
SDL1 to SDL2 internal changes
2020-04-19 08:34:58 +00:00
Ian Curtis
5ace960f14
tweak value so the map indicator still works at the start of spikeout
2020-01-04 18:15:30 +00:00
Ian Curtis
6b8a29105a
Sutherland-Hodgeman clipping only works for planar primitives. Scud is rendering non planar quads and this breaks our algorithm a little when using the quad renderer. Stretching the near plane a few % is enough to fix it.
2020-01-04 13:48:14 +00:00
Ian Curtis
d711afade1
Only need to clip against 4 planes for poly culling
2020-01-04 13:45:55 +00:00
Ian Curtis
605dad2c02
Fix the sky in harley in first person mode where pixels in the sky are culled when they shouldn't be with the quad renderer. Basically we were running out of precision in a rare corner case. Doing the maths with double precision and casting back to float was enough to fix the issue.
2019-12-27 21:36:46 +00:00
Ian Curtis
a5858e635d
To calculate the mipmap value the opengl needs to calculate the difference in the texture coordinates between adjacent pixels. If there are no adjacent pixels the hw may need to spawn invisible fragments outside of the visible polygon. Our algorithm was culling these out so the mipamp calculation failed for edge pixels. Anyway this fixes quad rendering looking broken with the latest nvidia drivers.
2019-12-10 11:40:39 +00:00
Ian Curtis
06688de5fc
Really should cull against 5 frustum planes.
2019-11-15 20:00:25 +00:00
Ian Curtis
e1827cfd13
Stretch the time the ping_pong bit flips a bit to bump writes into correct frame. Otherwise they end up getting written at like 99.8% of the frame and overlapping with the next.
2019-11-08 20:36:11 +00:00
Ian Curtis
2e6968fe9d
Thanks to our anonymous contributor who managed to patch a model 3 game and run it on real h/w, we were able to obtain some timing values we had been long been missing for correct emulation. The h/w polls something called the ping_pong bit at start-up to sync the GPU with the CPU. Unfortunately we didn't have the correct values and just manually used some per game hacks to get games to run. This mostly worked, but some games were writing more or less frames than they should have been for a given time period. When the ping_pong bit flips at 66% of the frame time, games were writing data for a new frame, which meant writes were often straddling 2 separate frames. We aren't 100% sure if IRQ2 or the ping_pong bit is vblank.
2019-11-07 20:29:17 +00:00
Ian Curtis
06b43c45b3
Ocean hunter in the middle of the game is passing a few matrices with FLT_MAX inside them, which blows apart our near/far calculation. The hardware must have some method to sanitize the near/far for instance if you render something extremely close to the origin you will also blow apart any near/far calc.
2019-11-02 20:11:48 +00:00
Ian Curtis
714f6a123a
skip invalid culling nodes
2019-07-28 12:14:13 +00:00
Ian Curtis
17f4103123
A culling node must follow immediately after a viewport.
2019-07-26 16:39:58 +00:00
Ian Curtis
cc830003f5
Fix possible negative pointer arithmetic which was causing the music to wrap around.
2019-02-22 01:00:41 +00:00
Ian Curtis
8aa476aeeb
Previous mpeg audio code worked for me in debug mode, but the release build had some serious corruption issues when being built in visual studio. Replaced the old spaghetti code with a more modern implementation.
2019-02-21 14:56:25 +00:00
SpinDizzy
c86dab0fe9
- Disabled Alt-O (dump timings) and Alt-U (dump input state) when
...
SUPERMODEL_DEBUGGER not defined
- Option '-print-inputs' works again if no ROM set specified
2019-02-19 09:24:31 +00:00
SpinDizzy
6fe878b1d3
Restore Sega Rally 2 music in some practice stages
2019-02-07 06:32:46 +00:00
SpinDizzy
383e6ac85c
Fixed MPEG music looping glitch.
2019-02-05 10:30:50 +00:00