Commit graph

  • 37065ce478 Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-10-31 23:50:33 +0000
  • 8fea5bd3bf gm_mathew - the line scroll values, the top 16bits are the even lines, the bottom 16bits are the odd lines. We had it swapped. This fixes the number below the word results in daytona, when you finish a game. Ian Curtis 2023-10-31 23:50:19 +0000
  • d42317db83
    Update README.md to define GIF widths (for Safari) Bart Trzynadlowski 2023-10-30 14:47:25 -0700
  • acab274526 Set language standard to c++ 17 Ian Curtis 2023-10-30 14:04:48 +0000
  • f89da17f17 Fix white gfx on linux / intel gpus. These optimisations originally came from toxieainc Ian Curtis 2023-10-27 10:45:16 +0100
  • c5f9a3ad26 Amend the ambient fog logic to be disabled if fog density/start is set to zero. This fixes a regression where the sky stops drawing in lost world. Ian Curtis 2023-10-24 10:17:15 +0100
  • a214c6dae8 Prior scroll fog logic was nearly correct. For scroll fogging to draw it needs either a start value or a fog density value, but these can come from a different viewport if they have the same colour fog set. This fixes the credits in vf3 which sets scroll fog, but it never draws on the original hardware. Ian Curtis 2023-10-22 21:07:35 +0100
  • 2af0787279 Remove debug code Ian Curtis 2023-10-17 17:33:26 +0100
  • 79ddc8c739 Rewrite the logic for the scoll fog (render buffer clear colour). Each viewport can potentially have a scroll fog value so the logic of which value to pick wasn't immediately clear. TLDR I think it picks the highest value starting from the lowest priority layers. This fixes the sky in daytona battle on the edge. Ian Curtis 2023-10-17 17:30:14 +0100
  • 86d477263f Scroll fog is like a clear colour for the render target, but can be semi transparent as the tilegen layer can be shown underneath. I assumed that transprent polys would be drawn to the render target for transparent polys but unfortunately the logic does not work. So where else could it be drawn? Well with limited memory it must be draw to the buffer for opaque polys, which means this render target is also blended. Ian Curtis 2023-10-15 17:16:52 +0100
  • 392900fee2 Implement correct "round to nearest" mode On PowerPC round to nearest ties to even, not away from zero Also implement correct behavior for ppc_fresx Fixes "tips to win" sequence in Daytona 2 BOTE gm-matthew 2023-10-15 00:54:59 +0100
  • d32641030d Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-10-14 20:05:07 +0100
  • 6595b9320e Rewrite the renderer a bit to spit out the finished graphics from the 3d chip on separate buffers. One buffer is for opaque pixels, and 2 more for translucent pixels. Before the frame was composited on the back buffer, which meant the tilegen had to have been drawn first. This way the images are now totally independant of the tilegen chip so can be drawn as soon as the register write 0xC is written to the tilegen. Ian Curtis 2023-10-14 20:05:00 +0100
  • 0e494a0219 Updated build script to use SFTP (Supermodel3.com server upgrade no longer supports ftp) Bart Trzynadlowski 2023-10-03 18:02:19 -0700
  • d656643087 gm_mathew worked out that the camera flashes in sega rally 2 have the 'reset-matrix' attribute set inside the culling nodes, which was unsupported until now because we never found any games to have used this bit. The reset matrix is a bit strange, I would assume it would just reset the matrix back to identity, instead it seems to just reset the rotation back to identity whilst preserving the scale/position. Ian Curtis 2023-09-27 16:33:53 +0100
  • e6b5468680
    Update README.md: copyright dates. Bart Trzynadlowski 2023-09-25 14:46:28 +0200
  • 7867c0145e
    Model3.cpp: Comment describing scan line timing. Bart Trzynadlowski 2023-09-25 14:45:57 +0200
  • 801945d066 Whitespace Matthew Daniels 2023-09-03 19:29:58 +0100
  • 24d24db988 Ping-pong flip timing depends of the value of tilegen register 0x08 Also make the debugger display 16 bytes per line when using the "listmemory" command. Mirrored system registers can now be watched gm-matthew 2023-09-03 16:51:18 +0100
  • a00e8de988 Update rules file. Not tested this but hopefully it should work Ian Curtis 2023-09-23 17:28:18 +0100
  • 6b0d5c453a Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2023-09-23 15:27:12 +0100
  • c6ea81d996 Emulate the entire tilegen chip in a GLSL shader. (This is now possible with opengl 3+). The tilegen drawing was emulated on the CPU, but was one of the most expensive functions in the emulator according to a profiler. On a modern GPU it's pretty much free, because a GPU is a massive SIMD monster. Ian Curtis 2023-09-23 15:27:04 +0100
  • 38a95088e8 Prevent "ROLLING START" scrolling glitch in Scud Race There is a quirk of the tilegen chip that causes this glitch not to occur on real hardware, but we can't be sure what it is without testing Much easier to just patch all the Scud Race ROM sets gm-matthew 2023-08-28 03:12:43 +0100
  • c9b718e89a Fix Z80Debug.cpp compile with C++20 String literals should not be used to initialize char* but C++17 and earlier were letting it slide gm-matthew 2023-09-01 13:52:13 +0100
  • ebff9a8b2d SCSP: added more detail to comment explaining 68K clock speed as recommended by Brian Troha Bart Trzynadlowski 2023-09-02 20:32:11 -0700
  • b2fee4242c DMA device register always returns Step 1.x PCI ID Step 2.x games by AM3 request PCI ID this way and expect to see 0x16c311db gm-matthew 2023-08-19 23:47:00 +0100
  • 7924fed369 Set soundboard CPU to correct clock speed The 68K on the soundboard is rated at 12 MHz but runs at 11.2896 MHz, which is 256 cycles/sample with a 44100 Hz sample rate. Removed SoundClock and Freq as they are not needed gm-matthew 2023-07-05 02:45:35 +0100
  • 015e8e9212 Drive board uses the value 0xFF (not 0x00) on ports 42 and 45 to stop all effects when port 46 is set to 0xFF; fixes FFB effects continuing after game ends gm-matthew 2023-06-26 10:56:04 +0100
  • 84aa972ef2 Add description of swtrilgy patch from MAME Matthew Daniels 2023-05-16 02:49:35 +0100
  • ac0e6407b4 Games.xml: Removed seemingly unnecessary swtrilgy and swtrilgya patches, which should re-enable JTAG configuration and fix Endor Death Star tunnel shading Bart Trzynadlowski 2023-05-07 21:51:22 -0700
  • 583d237b2b Fix GCC 13 build. ToBul 2023-05-06 19:36:42 +0100
  • 18f3c23a9f Work around to prevent I/O error after a while on fishing games with tension CapitaineSheridan 2023-03-31 10:36:50 +0200
  • 813edb8218 Crosshair optimization: -create crosshairs only once in Init() instead of created them at every cycle -use matrix scale to apply the aspect ratio CapitaineSheridan 2023-04-05 15:03:32 +0200
  • 6993dfcfb0 Makefile.Win32: fixed detection of Windows Command Prompt for rmdir command Bart Trzynadlowski 2023-03-28 15:38:43 -0700
  • 87de86f7d1 Crosshair: use actual adjusted viewport resolution (configuration resolution is not the same thing). Fixes crosshair alignment for resolutions with non-Model 3 aspect. Bart Trzynadlowski 2023-03-17 23:00:44 -0700
  • 95fc08e0a3 Windows app manifest added to enable PerMonitorV2 DPI awareness Bart Trzynadlowski 2023-03-15 18:24:01 -0700
  • f497de50d1 Update README.txt ToBul 2023-03-15 21:38:14 +0000
  • 5fdb50a869 README.txt: Updated Section 5 (video settings), squeezed everything back into 80 columns, changed 'Virtua Fighter 2 '98' to 'Virtua Striker 2 '98' in Section 10 Bart Trzynadlowski 2023-03-14 17:56:17 -0700
  • b5ca365928 NetBoard: guard against freeing null pointers and INetBoard needed a virtual destructor (was causing crashes on exit on some systems) Bart Trzynadlowski 2023-03-14 11:18:20 -0700
  • 3848d276da Autobuild script update following crosshair update CapitaineSheridan 2023-03-14 08:43:24 +0100
  • abc2900770 m_crosshair is not needed and the config should be checked every frame because otherwise Alt-I command was broken (the number of crosshairs to render is mapped to a UI key) [Bart] CapitaineSheridan 2023-03-13 08:55:58 +0100
  • a319bbee0c Better optimisations. Moved all UI rendering from Main to CCrosshair. Take care of syntax about crosshair style. CapitaineSheridan 2023-03-12 11:22:27 +0100
  • b19fdb6a77 Change Media folder to Assets folder. Naming variable convention. Command line change -crosshair-style = vector|bmp. Config ini variable change CrosshairStyle = vector|bmp. CCrosshair::DrawCrosshair optimisation. Modifying UpdateCrosshairs() to eliminate global variable. CapitaineSheridan 2023-03-12 11:15:27 +0100
  • 1b066fe4b3 Crosshair refactor -add a new separate class for crosshair -crosshair coordinates are calculated by matrix instead of recreating every object at correct coordinates -add ability to scale crosshair by dpi -add ability to use bitmap crosshair (located in ./Media/). 32bits bmp format + alpha -cmd line "-bitmapcrosshair" or "-vectorcrosshair" and/or BitmapCrosshair=0|1 in config file -these changes are only for lost world game with Crosshairs=1|2|3 CapitaineSheridan 2022-12-23 17:36:26 +0100
  • 0cc1b37f95 README.txt: Fixed a typo, end-of-sentence formatting in section 10, and added ECA cheat codes as per Brian Troha's suggestion Bart Trzynadlowski 2023-03-13 20:10:08 -0700
  • 05c57abc2f README.txt: fixed typo Bart Trzynadlowski 2023-03-11 11:08:10 -0800
  • 188bb5c285 README.txt: Added region codes to section 10 (c/o Brian Troha) Bart Trzynadlowski 2023-03-10 15:00:24 -0800
  • 7e7686c6f2 Games.xml: Corrected name of Virtual On 2 to Cyber Troopers Virtual-On Oratorio Tangram Bart Trzynadlowski 2023-03-10 14:59:10 -0800
  • ae5af4c036 Fixed window position config storage and command line parsing Bart Trzynadlowski 2023-03-04 11:59:49 -0800
  • 83144f80b7 Config nodes: added the ability to clear out node values or create empty leaf nodes Bart Trzynadlowski 2023-03-04 11:58:52 -0800
  • 043f901c80 comply to @trzy requested changes # joachim 2023-03-04 12:40:57 +0100
  • 4a64a0df71 comply to @trzy requested changes joachim 2023-03-04 01:04:25 +0100
  • c301a574ed -pos=<x>,<y> -> correct error when not present joachim 2023-03-02 14:30:12 +0100
  • c97e3acce7 Add two video settings: -pos=<x>,<y> Position [Default: centered] -borderless Windowed mode with no border joachim 2023-03-02 14:07:06 +0100
  • 5fa190490d Allow joystick to be fetch if windows has no focus in SDL input mode. This is usefull for multiple instance of supermodel networked on the same machine. joachim 2023-03-02 14:01:52 +0100
  • f7dcc1c445 Games.xml and README.txt updated by Brian Troha (new Ocean Hunter ROM sets and several updates to version descriptions, etc.) Bart Trzynadlowski 2023-03-06 21:47:03 -0800
  • ffc320904e Update README.md with macOS build details The Brink of Tomorrow 2023-02-25 10:39:00 -0500
  • 78f5056223 Add missing filename to ErrorLog call. Aaron Paden 2022-12-28 21:56:34 -0600
  • 7e025e64a2 Memory allocated but not released. CapitaineSheridan 2022-12-23 11:29:30 +0100
  • 69a458ecf7 Make sure to invalidate texture memory when going fullscreen otherwise it might not be syned correctly. Ian Curtis 2022-12-25 00:32:01 +0000
  • 11c01a349f SDL_SetWindowFullscreen isn't needed as we call ResizeGLScreen which sets the fullscreen mode afterwards. Ian Curtis 2022-12-24 23:54:47 +0000
  • 6dcf144694 We must explicitly call SDL_SetWindowFullscreen after setting the display mode otherwise the refresh rate doesn't change. Ian Curtis 2022-12-24 17:29:08 +0000
  • ad0aed42a4 be a bit more flexible with the display frequencies we'll match Ian Curtis 2022-12-19 14:11:21 +0000
  • 25604512f4 The model 3 (actually model 1,2 and 3) all used some crazy refresh rate of 57.524hz. If your screen refresh rate is 60hz, supermodel will work fine, but really run too fast. Anyway if you create a custom refresh rate, supermodel will automatically pick this, and set it when the emulator is in fullscreen mode. Apparently this works with most monitors, even cheapo low end ones. Ian Curtis 2022-12-19 00:13:08 +0000
  • 984f78ad1b Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2022-12-17 23:46:11 +0000
  • 57ead6037d Better opengl resource allocation. Fixes going fullscreen and back. Ian Curtis 2022-12-17 23:46:02 +0000
  • 50d947deee Add FileSystemPath.cpp to Visual Studio project gm-matthew 2022-12-14 00:39:13 +0000
  • d83e4754fe Fixed build on macOS Fernando Casas Schössow 2022-12-06 13:25:20 +0100
  • 07429b9187 Switched to Util::Format() to generate screenshot filename Fernando Casas Schössow 2022-12-04 19:42:19 +0100
  • 317f8bacde First review code changes (identation and cosmetic changes) Fernando Casas Schössow 2022-11-21 22:27:15 +0100
  • d11efb8553 Changed pathType from string var to enum Fernando Casas Schössow 2022-11-15 17:40:01 +0100
  • df7787f040 Keep Supermodel files (config, nvram, saves, etc.) in a predictable path when running on Linux Fernando Casas Schössow 2022-11-14 20:06:09 +0100
  • db455ba5c1 add undefd codepath for correct use of the 18bit DAC path (which seems to be triggered for all games) toxieainc 2022-11-08 08:11:14 +0100
  • 153c510009 Fix uniform location. Ian Curtis 2022-11-26 12:58:07 +0000
  • 7513cc769a Update Model3.cpp Matthew Daniels 2022-11-25 23:02:37 +0000
  • 6a392f2cc9 Add comment gm-matthew 2022-11-25 22:44:22 +0000
  • 916d3d3af1 whitespace gm-matthew 2022-11-22 02:02:10 +0000
  • 2063303a4d Wait until IRQ2 is acknowledged before starting IRQ40 sequence. Fixes Ski Champ hanging at FBI screen when region set to USA gm-matthew 2022-11-22 01:43:38 +0000
  • 79a2414f3f Incomplete texture headers uploaded via FIFO are now discarded. Ski Champ sends one more 32-bit word via DMA than it should which was causing Supermodel to erroneously intepret the extra word as another texture gm-matthew 2022-11-20 01:27:50 +0000
  • acc7161ca5 [Makefile.Win32] $MSYSTEM check never fails. ToBul 2022-11-13 03:16:45 +0000
  • 5f30614c4c FIx shaders failing to build on apple h/w Ian Curtis 2022-11-09 18:56:15 +0000
  • fe36b07702 Update makefile Ian Curtis 2022-11-08 10:35:05 +0000
  • e47258c61d Remove some left over depreciated opengl functions. They were basically no-op anyway with shader path. Ian Curtis 2022-11-07 23:52:44 +0000
  • 9348fd852d Merge branch 'master' of https://github.com/trzy/Supermodel Ian Curtis 2022-11-07 21:33:08 +0000
  • 40c8259130 Rewrite the whole project for GL4+. I figured if we removed the limitation of a legacy rendering API we could improve things a bit. With GL4+ we can do unsigned integer math in the shaders. This allows us to upload a direct copy of the real3d texture sheet, and texture directly from this memory given the x/y pos and type. This massively simplifies the binding and invalidation code. Also the crazy corner cases will work because it essentially works the same way as the original hardware. Ian Curtis 2022-11-07 21:33:01 +0000
  • 4c727abdc8 change all INT16 mixing/intermediate clamping to floats toxieainc 2022-11-03 11:49:35 +0100
  • 121f81c742 68K now uses run-time hooks for IRQ and instruction hook callbacks Bart Trzynadlowski 2022-11-02 15:38:52 -0700
  • 33c04ce345 Games.xml: Added re-dumped magtruck and retained old ROM set with patch (mgtrkbad) for users who fail to obtain newest MAME ROMs Bart Trzynadlowski 2022-10-29 11:44:34 -0700
  • b2e5a200da Fix build for linux (just missing header) Ian Curtis 2022-10-17 09:34:11 +0100
  • f0872cc998 Upgrade the glsl shader class a bit. Add a const char* comparitor so we can use a map with a simple "string" key. Fine to use when performance is not critical. Ian Curtis 2022-10-16 21:03:41 +0100
  • 6fbf938335 Add a proper git ignore file .. And fix the legacy renderer to build with new visual studio (2019) Ian Curtis 2022-10-16 20:45:40 +0100
  • e644751f01 after clarifications, minor cleanup toxieainc 2022-10-07 09:01:45 +0200
  • 75771b3d14 remove 2 dupe function calls, where ProcessLos should actually be rather costly toxieainc 2022-10-05 16:50:03 +0200
  • 412e9232d7 Fix new 3D engine texture2DLod function missing error on Linux/MESA. MESA requires needed extensions to be explicitly declared in code otherwise it will not enable them. Fernando Casas Schössow 2022-10-04 08:23:11 +0200
  • aae58edd62 change one more place with potential aliasing issue toxieainc 2022-10-03 04:47:39 +0200
  • 5f97e5af6c address review toxieainc 2022-10-03 04:30:59 +0200
  • 519d695f57 address review and move bit casts to new header toxieainc 2022-10-01 03:44:22 +0200
  • 1b0e3be8dc use correct slash toxieainc 2022-08-25 21:58:20 +0200
  • 22ffb5cc19 Harmless math warning fixes. map->unordered_map in CNew3D::CacheModel. Avoid general aliasing problems (using bit_cast or the recommended/optimized-away memcpy). toxieainc 2022-08-19 21:34:22 +0200
  • 0eef09ba2b Revert "port some changes from MAME/MESS" toxieainc 2022-08-08 09:18:59 +0200