top of page
loading_reduced.jpg

78f5056 / 29-12-2022

SuperModel

Accuracy

Performance

Features

average rating is 4 out of 5
average rating is 4 out of 5
average rating is 4 out of 5
competition

SuperModel emulates Sega's Model 3 arcade platform which uses OpenGL and SDL library to those arcade games. It's still considered to be in "alpha" stage of development, meaning it lacks many planned features and does not yet have a user-friendly graphical interface, game compatibility remains average, and all CPUs are emulated using straightforward interpretation rather than fast just-in-time translation. 


Front-end UI available are either available SuperModel 3 UI or SuperModel Assistant.


This is also a fork which adds native Sinden light gun support and it named Sega Model 3 Arcade Emulator (Sinden).

 ... 

Most Recent Changes

--78f5056--

  • Add missing filename to ErrorLog call

  • Memory allocated but not released.



--69a458e--

  • Make sure to invalidate texture memory when going fullscreen otherwise it might not be syned correctly.

  • SDL_SetWindowFullscreen isn't needed as we call ResizeGLScreen which sets the fullscreen mode afterwards.

  • We must explicitly call SDL_SetWindowFullscreen after setting the dis… …play mode otherwise the refresh rate doesn't change.



--ad0aed4--

  • Be a bit more flexible with the display frequencies we'll match



--2560451--

  • The model 3 (actually model 1,2 and 3) all used some crazy refresh ratete 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.

    To active set your command line to:
    -res=1920,1080 -vsync -fullscreen -true-hz

    Replace the resolution with whatever your monitor's native resolution is.

  • Better opengl resource allocation. Fixes going fullscreen and back.



--50d947d--

  • Add FileSystemPath.cpp to Visual Studio project



--d83e475--

  • Fixed build on macOS

  • Switched to Util::Format() to generate screenshot filename

  • First review code changes (identation and cosmetic changes)

  • Changed pathType from string var to enumcasasfernando

  • Keep Supermodel files (config, nvram, saves, etc.) in a predictable path when running on Linux



--db455ba--

  • add undefd codepath for correct use of the 18bit DAC path



--153c510--

  • Fix uniform location.

  • Update Model3.cpp

  • whitespace

  • Wait until IRQ2 is acknowledged before starting IRQ40 sequence. 



--79a2414--

  • 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



--acc7161--

  • [Makefile.Win32] $MSYSTEM check never fails.



--5f30614--

  • FIx shaders failing to build on apple h/w



--fe36b07--

  • Update makefile

  • Remove some left over depreciated opengl functions. They were basical… 

  • Merge branch 'master' of https://github.com/trzy/Supermode

  • Rewrite the whole project for GL4+. I figured if we removed the limit…



--4c727ab--

  • change all INT16 mixing/intermediate clamping to floats



--121f81c--

  • 68K now uses run-time hooks for IRQ and instruction hook callbacks



--33c04ce--

  • Games.xml: Added re-dumped magtruck and retained old ROM set with patch



--b2e5a20--

  • Fix build for linux (just missing header)



--6fbf938--

  • Upgrade the glsl shader class a bit. Add a const char* comparitor

  • Add a proper git ignore file...

  • And fix the legacy renderer to build...



--e644751--

  • after clarifications, minor cleanup

  • remove 2 dupe function calls, where ProcessLos should actually be rat

  • Fix new 3D engine texture2DLod function missing error on Linux/MESA



--aae58ed--

  • change one more place with potential aliasing issue

  • address review and move bit casts to new header

  • use correct slash

  • Harmless math warning fixes. map->unordered_map in CNew3D::CacheModel



--0eef09b--

  • Revert "port some changes from MAME/MESS

  • fix missing version GLSL compiler warnings on startup 

  • port some changes from MAME/MESS



--a60f998--

  • Revert "port some changes from MAME/MESS"

  • Optimize quad rendering by replacing the double 

  • Port some changes from MAME/MESS



--e06788e--

  • Fix SUPERMODEL_DEBUGGER build



--d4633a8--

  • Revert "port some changes from MAME/MESS"

  • Port some changes from MAME/MESS

  • Equivalent optimizations, NFC

  • Port some (simple) changes from MAME/MESS



--d60feab--

Fix some errors, fix some performance warnings, and some simple (but effective) optimizations



--bd4399b--

Games.xml: Align ROM names with MAME.



--46eff8c---

supermodel_build_bot.py: New build bot script for GitHub



--r888--

Fix build with SUPERMODEL_DEBUGGER enabled. Probably last commit as source has moved to git.



--r887--

njz3: Fix sound volume with new quadrophonic audio code



--r886--

values must be signed, to handle negative numbers, my bad



--r885--

minor fix



--r884--

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 ...



--r883--

njz3: Proper quadrophonic audio support. Need 4+ speakers to take advantage otherwise down mixed to stereo.



--r882--

Added default values for PortIn, PortOut, and AddressOut



--r881--

fix: explicit specialization requires 'template <>'



--r880--

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)



--r879--

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.



--r878--

Added a -dump-textures option (config key DumpTextures) that writes texture BMP files, one for each known format (12 in all currently)



--r877--

Adjust the number of PowerPC cycles executed per frame to assume 57.524 Hz refresh rate



--r876--

Double buffer the line of sight values. Should allow the correct values to be returned if GPU threading is enabled



--r875--

Fixing Magical Truck Adventure bad ROM dump which was causing attract mode to stop rendering



--r874--

Methods should be marked as noexcept because they cannot throw



--r873--

white space



---r872--

Better document real3d registers



--r871--

Clear all Real3D DMA registers on reset; uninitialized values were causing issues with MSVC debug builds



--r870--

Another header include fix



--r869--

Include required header files in Model3GraphicsState.h - fixes potential build errors in GCC



--r868--

Increase MIDI FIFO buffer size for SCSP; should prevent FIFO overflows



--r867--

PowerPC IRQ line deassertion; DMA only fires interrupts when required



--r866--

Getting rid of most of the includes from Supermodel.h; each file now explicitly includes the header files it needs.



--r865--

Shared RAM on simulated netboard is now double-buffered; Spikeout Final Edition no longer requires a hack to work.



--r864--

New JTAG patch for Sega Rally 2; linked mode now fully working.



--r863--

Increase size of DSB2 FIFO buffer; fixes Sega Rally 2 music occasionally not switching or fading ou



--r862--

Non-linked games no longer falsely list the net board under extra hardware


----


UI Update Details (06-01-2021)

  • following recent rom set name changes in Games.xml 

  • Added – list view of all the supported games

  • Added – preview of each game (snaps).

  • Added – button of the roms directories.

  • Added – check Load button (Load Rom)

  • Added – all video options

  • Added – all sound options

  • Added – all control options (for the time being it uses the supermodel configurator (accurate and will never fail)

  • Added – system link options (preliminary) will only work with the only version created by Spindizzi2560451

Show Previous Changes

--r861--

  • Fix 16-bit variables not displaying correctly in Z80 debugger (at least in MSVC builds)



--r860-

  • Fix netboard resets and detection of simulated netboard linking to itself



--r859--

  • Adding simulated netboard; all linked games except Sega Rally 2 working at full speed.



--r858--

  • 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.



--r857--

  • 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.



--r856--

  • DSB2 clock speed from 4MHz to 11MHz.



--r855--

  • New dumps added:



--r854--

  • Fixed cycle counting overflow that was causing DSB2 to halt execution.



--r853--

  • missing header



--r852--

  • DSB2 IRQ 2 now fires at 1KHz rather than once per frame, improving



--r851--

  • Just a few compile warnings



--r850--

  • Fix project file



--r849--

  • Build bot script.



--r846--

  • 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]



--r845--

  • The controls of bass/getbass games were no longer good, following recent rom set name changes in Games.xml.



--r844--

  • Corrected game set names & game titles (Brian Troha)



--r843-- 

  • Added rumble skipad in Ski Champ game.



--r842--

  • Service menu activated in swtrilgyp.



--r841--

  • Add -O3 optimization option for OSX and Linux.



--older--

  • Cannot locate older

bottom of page