Skip to content

NullDC4Wii - Alpha 0.06

Choose a tag to compare

@BenoitAdam BenoitAdam released this 01 Mar 15:56
59ef5bc

🚀 Release Notes

This update focuses on performance improvements, early graphics fixes, and the introduction of new presets to prepare for future optimization and compatibility enhancements.

⚠️ IMPORTANT Please update Compatibility guide whenever you can

https://wiibrew.org/wiki/NullDC4Wii/Compatibility

(Update : both tested on Dolphin & a real Wii : works)

🔄 Summary of Changes

  • ⚡ Faster loading times
  • 🎨 Partial 2D & 3D color fixes (most 3D textures still glitching)
  • 🧮 New Accuracy preset (keep ACCURATE for now — minimal impact at this stage)
  • 🖼️ New Graphics preset (keep LOW for now)

Loading speed improvements were achieved by removing excessive CD-ROM loop messages that were impacting performance.


🛠️ Detailed Changes

Core Improvements

  • sh4_fpu improved
  • ccn improved
  • drkPvr.cpp improved
  • SGP.cpp improved
  • driver.cpp improved
  • wii-driver.cpp improved
  • memutil.cpp improved
  • mmu.cpp improved
  • sh4_mem.cpp improved
  • sh4_area0.cpp improved
  • Multiple improvements across /dc/mem files

Graphics

  • gx_rend improved
    • Fixes several 2D colors
    • Example fixes:
      • 2D titles in Castlevania
      • Ape model in Sega Tetris

(Most 3D texture glitches are still being worked on.)

Memory & Stability

  • _vmem.cpp improved
    • May fix some crashes
    • Further improvements still required

Controls

  • maple.cfg updated (control improvements)

🆕 Presets (New Feature)

⚠️ These presets are in early stages and will be refined over time.
Currently, they only affect a few internal routines.


🧮 Calculation Accuracy Preset

Mode Description
FAST Maximum FPS (higher frame rate)
BALANCED Good balance between speed and accuracy
ACCURATE (default) Closest behavior to original hardware

For now, differences are minor — but long term, this system should help improve both FPS and compatibility.


🖼️ Graphics Preset

Mode Settings Best platform
LOW (default) GX_NEAR · lod_bias 0.0f · GX_DISABLE Wii
NORMAL GX_LINEAR · lod_bias 0.0f · GX_DISABLE Wii
HIGH GX_LINEAR · lod_bias -0.5f · GX_ENABLE · Anisotropic x2 Wii U
EXTRA GX_LINEAR · lod_bias -1.0f (may need to adjust to -0.75) · GX_ENABLE · Anisotropic x4 Wii U

While the emulator is still in alpha, the visual difference is limited.

📊 Estimated future performance gap (once stable):
LOW → EXTRA ≈ 10 FPS difference


👨‍💻 Developer Notes

Debug Improvements

  • Added memory debug info at render initialization:
    • MEM1 free
    • MEM2 free
  • Added texture/cache size logs:
    sizeof(TextureCacheDesc)
    sizeof(GXTexObj)
    sizeof(GXTlutObj)````
    ## CDI Support
  • Continued work to improve CDI compatibility
  • Added extensive logging to help diagnose issues (see issue #10)

Debug Control Toggle

All excessive loop debug messages are now controlled by:

g_debug_message
  • Located in main.cpp
  • Default value: 0
  • Set to 1 to re-enable verbose logging

🎮 Optional Extras


📌 Status

The emulator remains in alpha state.

This release lays the groundwork for:

  • Better performance scaling
  • Improved compatibility
  • More refined graphics options

More improvements coming soon 🚀