
I'd like to submit to your attention and discuss about some patches I've made for Supermodel that I'm working on in my private build. Before going into details, my intention is in fact to make separate topics on the diverse aspects, I'll summarize below what I've made so far (it's a rough, not complete list). Should it be of someone's interest I'll also attach the files themselves to be analyzed.
I've also some idea/suggestion on 3D engine that I'd like to discuss, especially with Ian.
// GNU Toolchain (needs testing outside MSYS2 environment, i.e. Linux)
<Makefile.SDL.Win32.GCC>
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1339
- Try to auto set some compile-time variables (bits, includes, libraries, etc.)
- outputs objects to "_obj" and binaries to "_bin", avoids some clutter.
- Less verbose and more cleaner compile progress status (you can always revert to verbose with VERBOSE = 1)
- Multithread-friendly compilation: issuing "make -jx" with x > 1 now works as expected.
// 3D Engine
(Too many files to mention)
In no particular order:
- Added ability to specify alternative vertex/fragment shader files for 3D layer (like the old engine) and scroll fog. It should make debugging easier for now.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1343
- Completely reworked Spotlight & Fog effects to almost match the arcade counterpart:
- Improved Spotlight effect (size & light decay)
Added Spotlight on Fog effects (see "eca" attract 'dramatic' intro, not the 'tutorial' ones).
Added Spotlight on Scroll Fog (see above)
Changed the fog behavior to consider also "fog ambient" value, again see "eca".
- Reworked MicroTexture behavior and fixed some texturing in "daytona2" and "skichamp", maybe others.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1337
- More polygon header properties cached. Should improve a little bit rendering performance.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1343
- Correctly aligned 3D layer with 2D. Basically *always* shift 2px in both directions.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1342
- (Actually a hack) include more cases of "shadow" polygon as layered/stencil polygons.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1343
- (Work in progress) improvement to fixed shading polygon brightness.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1344
- (Work in progress) Improvement to specular hi-light emulation.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1350
// Core
<ConsoleDebugger.cpp>
- Fixed typo: "loststate"->"loadstate"
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1341
<Model3.cpp>
- (from MAME) Change only one bit for gear shift up/down in Harley. Can't see any difference though.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1340
- Added correct cast/select inputs for "getbass"; for what is worth, since is still unplayable.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1340
- Modified statusCycles for "fvipers2" (faster speed in attract sequence plus almost proper texture loading timing) and "swtrilgya" (proper game speed).
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1341
- *Not sure / need feedback*: removed game patches that do not cause direct / visible improvements. (from MAME) Changed "swtrilgy" so test menu is accessible and you can disable "lever feedback" check from there and pass boot test. (from MAME) Changed "eca" to pass the "cabinet network error". (from info gathered in forum) activated the debug test menu in "scud", a real treasure for testing 3D features.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1341
<Main.cpp>
- Added high-resolution timer in place of SDL_GetTicks() to obtain precise 60 fps.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1341
- Added InputSystem option parsing to supermodel.ini, in addition to command-line.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1340
- Changed (non working) mouse hiding function from "Inputs->GetInputSystem()->SetMouseVisibility()" to "SDL_ShowCursor()" and set to hide it when playing with light gun (Lost Word) or when in fullscreen.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1340
// Input System
<Inputs.cpp>
- Changed neutral values for "fishingReel" from 0x80 to 0x0, so that leaving joystick in neutral position doesn't cause fishing reel to spin.
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1340
// 2D Engine
<Render2D.cpp>
- Simplified code dealing with bottom surfaces or "clearAll" condition
http://www.supermodel3.com/Forum/viewtopic.php?f=7&t=1342