Repository navigation
Releases: Thorhax/supermodel-nx
Release list
SuperModel NX 1.2.1
Small performance update for SuperModel NX, the Sega Model 3 arcade emulator for Nintendo Switch.
What's new
- Cheaper line-of-sight reads. 1.2.0 moved line-of-sight depth reads out of the middle of the frame. 1.2.1 now reads all of them with a single call at the start of the next frame, instead of one call per check. Each read is a round trip to the GPU on the Switch, so this cuts the cost per frame in Scud Race from 1.1–1.4 ms to 0.9–1.0 ms. Scud Race races run at 60 FPS throughout with the GPU at its standard 768 MHz.
Installation
- Copy
supermodel.nroto/switch/supermodel/on your SD card, replacing the old one. - Put your MAME-style ROM zips in
/switch/supermodel/ROMs/. - Optional: put your NVRAM files in
/switch/supermodel/NVRAM/(e.g.daytona2.nv), or set each game up once in its test menu. - Requires Atmosphère. Launch in title mode (hold R while opening a game) for full memory.
Your existing Config/Supermodel.ini is kept. The recommended 3D settings are the defaults: New3DAsyncLOS = 1, New3DEarlyDepth = 0, New3DBatchedDraws = 0.
No ROMs or NVRAM data are included. Not affiliated with or endorsed by Sega or Nintendo.
By ToniiSound and Thorhax. Based on Supermodel (The Supermodel Team) and Libretro-Supermodel. Licensed under GPL v3.
❤️ Enjoying the port?
If this project helped you out, consider buying me a coffee on Ko-fi or supporting on Patreon to support future updates!
SuperModel NX 1.2.0
Performance update for SuperModel NX, the Sega Model 3 arcade emulator for Nintendo Switch.
What's new
- No more stalls in the middle of a frame in 3D-heavy games. Some games read back a depth value for line-of-sight checks (Scud Race does this twice per frame). Reading it during the frame made the CPU wait for the GPU every time, costing 7–11 ms per frame in Scud Race races. The value is now copied on the GPU and read at the start of the next frame, which is when the game was getting it anyway. Scud Race now holds 60 FPS in races with the GPU at its standard 768 MHz, where 1.1.0 ran at 49–56 FPS, or needed a 998 MHz overclock to hold 60. (
New3DAsyncLOS, on by default.) - Sharper
RenderScaleupscale. When rendering below full resolution,RenderScaleFilter = 1(the default) uses Catmull-Rom instead of a soft bilinear stretch. - Optional 3D settings for testing and other GPUs:
New3DEarlyDepthandNew3DBatchedDraws. Both are off by default, because neither helped on the Switch. - Log diagnostics. The log now shows GPU time per stage of each frame, and where the CPU spends its time in the 3D draw passes.
Installation
- Copy
supermodel.nroto/switch/supermodel/on your SD card, replacing the old one. - Put your MAME-style ROM zips in
/switch/supermodel/ROMs/. - Optional: put your NVRAM files in
/switch/supermodel/NVRAM/(e.g.daytona2.nv), or set each game up once in its test menu. - Requires Atmosphère. Launch in title mode (hold R while opening a game) for full memory.
When you update, your existing Config/Supermodel.ini is kept, and new settings use their defaults until you add them under [ Global ]. If you raised the GPU clock for 1.1.0, try the standard 768 MHz again. If you set New3DBatchedDraws = 1 while testing 1.1.0, set it back to 0: it adds GPU work on the Switch.
Tips
- If a game's 3D looks wrong, try
New3DAsyncLOS = 0, and please report it with yourLog/Supermodel.log. The log keeps the three previous runs (Supermodel.1.logto.3.log). - Do not use
New3DBatchedDraws = 2on the Switch: it hangs the GPU.
No ROMs or NVRAM data are included. Not affiliated with or endorsed by Sega or Nintendo.
By ToniiSound and Thorhax. Based on Supermodel (The Supermodel Team) and Libretro-Supermodel. Licensed under GPL v3.
SuperModel NX 1.1.0
Audio and performance update for SuperModel NX, the Sega Model 3 arcade emulator for Nintendo Switch.
What's new
- Sound effects and speech no longer crackle. SDL's audio thread was starting at the lowest priority on the same core as the renderer, so long frames starved it. It now runs on its own core above the emulator threads, with larger audio buffers.
- No more stutter during loading and attract mode. 3D textures now upload in one call per texture area instead of one call per row, and the 2D layers rotate between three textures so uploads never wait on the GPU. In Scud Race, drops to 20–30 FPS and hitches of 100–440 ms are gone.
- Faster PowerPC recompiler. Reads of the PowerPC decrementer register are now compiled instead of interpreted. Scud Race does up to 150,000 of these per frame.
- 3D state from one buffer. Each mesh's settings now come from a single buffer per pass instead of about 25 shader uniforms per mesh (
New3DBatchedDraws, on by default). A self-test at startup picks a method the GPU driver handles correctly. - New
RenderScaleoption (25–100, default 100). Renders at a percentage of the resolution and upscales. - Better logs. The log reports audio timing and a breakdown of 3D render time. It also keeps the logs of the three previous runs (
Supermodel.1.logto.3.log).
Installation
- Copy
supermodel.nroto/switch/supermodel/on your SD card, replacing the old one. - Put your MAME-style ROM zips in
/switch/supermodel/ROMs/. - Optional: put your NVRAM files in
/switch/supermodel/NVRAM/(e.g.daytona2.nv), or set each game up once in its test menu. - Requires Atmosphère. Launch in title mode (hold R while opening a game) for full memory.
When you update from 1.0, your existing Config/Supermodel.ini is kept. The new settings use their defaults until you add them under [ Global ].
Tips
- In 3D-heavy races (e.g. Scud Race), the GPU is the limit. With sys-clk, raise the GPU clock rather than the CPU's.
RenderScale = 75holds 60 FPS in Scud Race races (52–57 FPS at 100), but the image is softer.- If a game shows no 3D, set
New3DBatchedDraws = 0to go back to the original rendering path, and please report it with yourLog/Supermodel.log. Do not useNew3DBatchedDraws = 2on the Switch: it hangs the GPU.
No ROMs or NVRAM data are included. Not affiliated with or endorsed by Sega or Nintendo.
By ToniiSound and Thorhax. Based on Supermodel (The Supermodel Team) and Libretro-Supermodel. Licensed under GPL v3.
❤️ Enjoying the port?
If this project helped you out, consider buying me a coffee on Ko-fi or supporting on Patreon to support future updates!