a fork from https://github.com/skmp/nullDCe
- Test current state with every game and report compatibility (see "compatibility" below)
- Create presets for games
- Test 2/3/4 player mode on wiimote & gamecube also, please report
- Help me finding regression (NOT bugs or glitch, only regression for now please)
- Comment / Guides / Documentation (WiiBrew Wiki)
- Test and report Fishing Rod/USB Keyboard/Lightgun/Maracas support
- Controller correct layout, for pro pad and for gamecube pad
- User custom Preset
- Fishing Rod/USB Keyboard/Lightgun/Maracas support (probably unsupported now)
- Put external config file for controllers (controls.cfg)
- fix Volgarr regresion
- DualShock 3 issue: left stick has the Y axis inverted, up is down, and down is up.
- Custom layout : Chuchu rocket/Quake3 (bith Gamecube & wii)
- Custom layout : a toggle to make the right analog stick with supported controllers act as buttons X (Left) - Y (Up) - A (Down) - B (Right). This is useful for twin stick shooters that use the diamond button layout for gameplay (like Xeno Crisis).
- Add a winCE preset to prevent that game isn't supported
- check fps_boost preset matching from cfg, seems not working
- 4/3 support (implemented, need fix on some games like Shenmue)
- Support for CHD/ELF game file
- Return to file list (instead return to homebrew menu)
- Synchronise Dreamcast clock to Wii's clock
- Get RGB565_opaque_alpha AUTO mode
- Get Offset color AUTO mode
- Fix Chuchu Rocket 16Bit PCM bug
- Fix non WinCE games not launching (Rez, San Francisco 2049...)
- Improve gxRend.cpp = main file about specific rendering for Wii
- Splitting gxRend.cpp in multiple files ? (beware this is more tricky than it look)
- Table convertion between SH4 Opcodes of SH4 and the WiiPPC ?
- Use LLVM to port code for PowerPC ? (skmp says its not a good idea in this case)
- Dynarec improvement (very performant right now, but if we can find boost...)
- WinCE Games support #37
- dc_boot.bin
- dc_flash.bin
- fsca-table.bin (included)
- dc_flash_wb.bin (this is the dc_flash but already saved)
- syscalls.bin (needed for elf/bin)
- IP.bin (needed for elf/bin)
dc_nvmem.bin
vmu_default.bin
Test with castlevania Resurrection and Sega Tetris to begin with
Put your folders with GDI in this directory. CDI also works
Might work for ISO / BIN / CUE / NRG / MDS
BIN/CUE/ELF, but you probably need IP.bin/syscalls.bin (take IP.TMPL from bootdreams and rename it IP.Bin)
Check nullDC.cfg at root
| Dreamcast | Wiimote | Wiimote (ChuChu Rocket!) | Gamecube | Gamecube (ChuChu Rocket!) |
|---|---|---|---|---|
| A | A | down & A | A | A |
| B | B | right & B | B | X |
| Y | 1 | up | Y | Y |
| X | 2 | left | X | B |
| START | Home | Home | START | START |
| D-PAD | D-PAD | - no implementation - | D-PAD | D-PAD |
| STICK | Nunchuck Stick | Nunchuck Stick | STICK | STICK |
| L | - (and Nunchuck Z) | - (and Nunchuck Z) | L | L |
| R | + | + | R | R |
| To Exit | - and + | - and + | R + L + Z | R + L + Z |
Exit :
Press - and + (wiimote) or Press L + R + Z (or L + R + Start)
It seems to be supported, but 1rst you'll need to format the VMU in the bios
Files appears at root of /data/ :
- vmu_save_A1.bin
- vmu_save_A2.bin
https://wiibrew.org/wiki/NullDC4Wii/Compatibility
Presets are grouped in the in-emulator menu across 6 pages. The order below follows that exact same order (Page 1 to Page 6).
| Mode | Settings | Rendering |
|---|---|---|
| ORIGINAL | 4/3 pillarbox | Original Dreamcast ratio |
| FULLSCREEN (default) | Stretched to fill screen | Fullscreen |
| AUTO | Picks by console aspect ratio setting (4:3 console → full width, 16:9 console → pillarbox) | Depends on console setting |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (uncapped) | Emulator can run above 100% speed | Uncapped |
| ON (cap 100%) | Stops speed exceeding 100% | Capped |
| Mode | Settings | Rendering |
|---|---|---|
| OFF | No overlay | Nothing displayed |
| ON | Displays gameplay FPS and speed overlay | Overlay shown |
OLD Behavior (Before alpha0.64) :
| Mode | Settings | Best platform |
|---|---|---|
| LOW | GX_NEAR · lod_bias 0.0f · GX_DISABLE |
Wii |
| NORMAL (default) | 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 -0.75f · GX_ENABLE · Anisotropic x4 |
Wii U |
The visual difference is limited for NORMAL/HIGH/EXTRA
NEW behavior (from alpha 0.64) :
| Mode | Settings |
|---|---|
| LOW | GX_NEAR |
| NORMAL (default) | GX_LINEAR |
- Use LOW for 240p games/modes
- Use NORMAL for other games
Important note : LOW can cause Z-Fighting (example in jet set radio, see #115)
| Mode | Settings | Rendering |
|---|---|---|
| VERY_FAST | skmp original algorythm (magic numbers). Buggy in most games | Max FPS |
| FAST | Best performance/accuracy in most case | Almost Max FPS |
| NORMAL (default) | Display mostly correctly | Good FPS |
| QUALITY (SLOW) | Best accuracy. Display correctly | Mid FPS |
Can have huge FPS impact, try to have the lowest parameter.
| Mode (4BPP/8BPP) | Settings | Rendering |
|---|---|---|
| I4_STUB/I8_STUB | Dummy algorythm | Some element doesn't display at all, for max FPS |
| OPTIMIZED | Served as test, in the end CI4/CI(FAST) is better | Very good FPS |
| CI4 (FAST)/CI8 (FAST) | Best performance/quality | Very good FPS |
| CI4 (NORMAL)/CI8 (NORMAL) | Advanced algorythm for CI4/CI8 | Mid FPS |
| RGB565 (ACCURATE) | Most advanced algorythm | Can have massive FPS dropdown (1 FPS) on some games |
| Mode | Settings | Rendering |
|---|---|---|
| 0 (default) | No frame skipped | Every frame drawn |
| 1 | Skip 1 frame | Faster, less smooth |
| 2 | Skip 2 frames | Faster still, less smooth |
| AUTO | Skips frames automatically depending on load | Adaptive |
Still on testing, doesn't have the expected effect for now
| Mode | Settings | Rendering |
|---|---|---|
| NO (default) | Disable | Standard rendering |
| YES | Enable 2D framebuffer | Try for 2D games |
Still on testing
| Mode | Settings | Rendering |
|---|---|---|
| NO | basic alpha threathment | Not accurate |
| YES (default) | additionnal alpha threatment | Near perfect |
Mostly for debug. Should always be on
| Mode | Settings | Rendering |
|---|---|---|
| OFF (LEGACY) | Disable | Not accurate |
| ON (CORRECT) (default) | Activate BLEND_MODE | Accurate, correct for Resident Evil 3 |
If flickerings, try turning off
Note : ADVANCED ALPHA needs to be on for BLEND_MODE
| Mode | Settings | Rendering |
|---|---|---|
| OFF (CORRECT) (default) | Disable | Accurate |
| ON (FASTER) | +2 FPS in BLEND MODE, to the cost of wrong Alpha/Transparency | Not Accurate |
note : ADVANCED ALPHA and BLEND_MODE needs to be on for FPS_BOOST
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster) | Legacy: PT polys drawn last in TR blend state | Faster, less accurate |
| ON (correct) | OP → PT → TR order + PT_ALPHA_REF alpha test | Correct PT list alpha test |
Needed in lot of games
| Mode | Settings | Rendering |
|---|---|---|
| OFF (default) | Disable | not Accurate (faster) |
| ON | can display stuff | Accurate |
Can resolve flickering in some games Needed in lot of games
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster) | RTT frames dropped (legacy) | Faster, mirrors/TV screens missing |
| ON (correct) | EFB copied back into VRAM | Correct mirrors/TV screens |
Needed in some games
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster) | Every render pass presented fullscreen (legacy) | Faster |
| ON (correct) | Partial-clip passes scissored, presented once per vblank | Correct 2P viewports, e.g. Daytona USA |
Needed for 2 players splitscreen or any 2 camera angle games.
| Mode | Settings | Rendering |
|---|---|---|
| CMPR (DXT1) | Compressed format | Use if some movie displays white |
| RGBA8 | Uncompressed, full quality | Slower |
| RGB565 (default, faster) | Uncompressed, no alpha | Faster |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (grey scale) | Grey Scale | Grey scale (a tiny bit faster) |
| ON (default) | Intensity color | Accurate |
Color some pixel (Used in Jet Set Radio Future and Crazy Taxi 1/2)
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster, default) | no decal alpha | Not accurate |
| ON (correct) | Decal alpha implemented | Accurate, fixes Crazy Taxi's cars |
See more : #68
| Mode | Settings | Rendering |
|---|---|---|
| OFF (a bit faster) | Disable | Thin black seam lines between 2D tiles/sprites remain |
| ON (default) | Half-texel UV inset | Fixes black lines between 2D tiles |
Use this or LOW to fix seam lines. See #18
Warning : ON causes a bug with Vertex Displacement (water mostly) : #119
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster, default) | v0 color used for EFB clear only, no background quad drawn | Faster |
| ON (correct) | Barycentric-extrapolated background quad drawn | Correct bg gradient/texture, e.g. Who Wants to Be a Millionaire |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (fmt0 only, default) | Only fmt0 (ARGB1555) forced opaque | Correct for POD 2 |
| ON (fmt0+fmt1) | Force opaque for fmt0(ARGB1555)+fmt1(RGB565) | Turn off for POD 2 |
May disapear in a future
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Disable | Standard sort |
| ON (TR tier sort) | Layer-tiered translucent sort | For 2D scenes drawn at ONE depth |
Helps determine what should be front and back trough looking at texture format/properties. For games that submit their whole 2D scene at a single depth and rely on the Dreamcast's per-pixel autosort: background plates draw first, then stage art, then stage sprites, then everything else. Game-agnostic — used by Hokuto no Ken and Street Fighter III. Was part of the HOKUTO HACK before alpha0.66.
| Mode | Settings | Rendering |
|---|---|---|
| OFF | Disable | Pre-fix behavior |
| ON (default) | Enable fix | For JoJo's Bizarre Adventure |
Has to be used with CI4_FAST/CI8_FAST to reduce massive FPS drop in battle. May use the same technique in other games.
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | XF Z-clipping on, no near margin | 2D/menus can be invisible on real Wii |
| NEAR MARGIN (Wii, default) | Pads vtx_min_Z 0.1% so the nearest 2D layer can't land exactly on the near clip plane | Recommended for Wii |
| NO CLIP (Dolphin) | Matches Dolphin: out-of-range depth clamps instead of the poly vanishing | Matches Dolphin behavior |
It's basically like FIXED_DEPTH, leave it to NEAR MARGIN
| Mode | Settings | Rendering |
|---|---|---|
| NO (default) | Disable | Good |
| WIDE | can help display some stuff - mostly for debug | Bad |
| TIGHT | can help display some stuff | Good |
FIXED_DEPTH can help flickering and Z-Fighting
| Mode | Settings | Rendering |
|---|---|---|
| NO (default) | - | Not active |
| Overlay | Help hud to display when FIXED_DEPTH is on TIGHT | accurate |
| Protect | Help hud to display when FIXED_DEPTH is on TIGHT | Perfect |
| Mostly needed if Fixed Depth is set to tight |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | PVR SCALER_CTL.hscale support disabled | Standard |
| ON (default) | PVR SCALER_CTL.hscale support | ON for Omicron / Wacky Races (render 1280 wide, scaler halves 2:1) |
For Nomad Soul and Wacky Racer. Maybe other games
| Mode | Settings | Rendering |
|---|---|---|
| OFF (640, legacy, default) | Legacy 640 canvas | Standard |
| Custom value | Forces canvas width in 240p modes | e.g. SF3 Double Impact = 384 (the CPS3 arcade width) |
See compatiblity wiki for more info
| Mode | Settings | Rendering |
|---|---|---|
| NO | No Per Polygon Z Write | More compatible |
| YES (default) | Per Polygon Z Write | More accurate |
Try putting NO if you experience troubles, with HUD for example.
| Mode | Settings | Rendering |
|---|---|---|
| DEFAULT (saved) | Leaves the value at its cfg/UI setting | Depends on saved config |
| 0 (never block) | Never blocks/drops on overrun | Fastest, most likely to drop |
| 1 / 2 | Blocks until below N queued buffers | More paced |
| 3 (most paced) | Most conservative pacing | Most paced, safest |
Put audio buffers = 1 generally leads to good audio. To the cost of FPS unfortunatly.
| Mode | Settings | Rendering |
|---|---|---|
| OFF | CD audio tracks silent | No CD music |
| ON (default) | GD-ROM Red Book audio fed to the AICA mixer | CDDA music plays in games |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | All AICA sample formats audible | Standard |
| ON (silence 16B) | 16-bit PCM channels silenced at KEY_ON | Fixes ChuChu Rocket's echoey 16-bit SFX (also mutes any other 16-bit music/voices, so game-specific) |
| Mode | Description |
|---|---|
| FAST (default) | Maximum FPS (higher frame rate), less loading times |
| BALANCED | Good balance between speed and accuracy |
| ACCURATE | Closest behavior to original hardware |
If you experience Freeze in some heavy games like Shenmue, put FAST or BALANCED. FAST may be the default setting in future versions
If you experience various bugs (example that may happens : weird AI controled NPC, weird timing) put ACCURATE
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | CPU blocks in GX_DrawDone until the GPU finishes each frame | 0 frame latency |
| ON (faster, default) | Frame queued, presented one vblank later; SH4 emulates while GPU draws | Faster, to the cost of 1 frame input-lag |
ASYNC_RENDER is generally faster. Can resolve flickering. Works better on real hardware than dolphin
| Mode | Settings | Rendering |
|---|---|---|
| OFF (faster, default) | Legacy: instant list-complete IRQs | Faster |
| ON (hw-like) | Hardware-like staggered ISP/TSP/Video timings | ON for MvC2 and CvSNK |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | Full GPU texture cache invalidate every frame | Standard |
| ON (faster?, default) | Invalidate only on texture re-decode | Keeps GPU texture cache warm |
Haven't seen any effect but keeping on for now
| Mode | Settings | Rendering |
|---|---|---|
| 200MHZ (full, default) | Nominal Dreamcast speed | Full speed |
| Underclock (150-200MHz, step 5) | Lower value = fewer emulated cycles per real second | Lower = faster host, slower game |
Underclocking is supposed to raise FPS. Didn't see any difference
| Mode | Settings | Rendering |
|---|---|---|
| 10MHZ (default) | Sound CPU at normal speed | Standard audio |
| 5MHZ (faster) | Underclocked sound CPU | Faster, check audio! |
| 2.5MHZ (risky) | Heavily underclocked sound CPU | Risky, check audio! |
5 mhz generally works and bring FPS boost
| Mode | Settings | Rendering |
|---|---|---|
| OFF | No stale/self-modified block guard | Fastest, riskiest |
| KNOWN (default) | Guards known self-modifying regions | Balanced |
| ALL RAM (slow) | Guards all RAM | Safest, slowest |
Generally work, no difference
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | Standard PPC-MMU memory access | Slower |
| ON (faster, default) | Branchless JIT MMU-mapped memory access | Faster |
Crash observed in Re-Volt when launching a race. Only game that does that for now.
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Legacy dynamic-branch dispatch | Standard |
| ON (flat) | Flat, 1-cacheline dynamic jump dispatch | Faster dispatch |
L1/L2 cache related. Can help heavy scene with Fast cache like in Shenmue intro maybe
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | fr0-15 not pinned | Standard |
| ON (experimental) | Pins fr0-15 to real PPC FPU registers f14..f29 | Experimental, Floating Point Unit related |
Can help heavy scene with Fast cache like in Shenmue intro maybe
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | No block alignment | Standard |
| ON (32B lines) | Pads every SH4-dynarec block entry to a 32-byte L1 cache line | Better cache hygiene, L1/L2 cache related |
L1/L2 cache related. Can help heavy scene with Fast cache like in Shenmue intro maybe
These doesn't make any change, or usually worse.
| Mode | Settings | Rendering |
|---|---|---|
| OFF (fastest, default) | No mip chain | Fastest, more shimmer far away |
| FAST | Generated GX mip chain + nearest-mip bilinear | Less shimmer far away |
| TRILINEAR (slow) | Best quality | Best quality, halves texture fill rate (e.g. -40% in Test Drive 6) |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Offset/specular color dropped | Standard |
| ON (correct) | PIX = base*tex + offset via 2nd TEV stage | Correct specular highlights |
May cause white surface on some games (ie = berserk, Tokyo highway challenge...)
May fix black surface on some games (ie = sega worldwide soccer)
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Disable | Standard |
| ON (opaque/PT) | Per-poly depth test on opaque/PT lists | Experimental |
| ON (all lists) | Per-poly depth test on all lists | Experimental |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Disable | Standard |
| ON | Per-poly backface cull | Experimental |
| ON (swap winding) | Per-poly backface cull, two cullable windings swapped | Experimental |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Disable | Standard |
| N layers (slow) | Real per-pixel PVR autosort via GX depth peeling, N = max translucent depth layers per pixel | Very GPU-heavy (~2 extra TR walks + 2 EFB Z copies per layer) — per-game only |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy) | Disable | Standard |
| ON (default) | ch2/PVR/Sort/AICA-G2 DMA correctness fixes | Fixes related to loading CDI/GDI file |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (cascade, default) | Legacy cascade scheduling | Standard |
| ON (deadline) | Unified cycle-deadline scheduler | Hardware-order DMA/IRQ completions, related to loading CDI/GDI file (experimental) |
| Mode | Settings | Rendering |
|---|---|---|
| OFF (legacy, default) | Disable | Standard sort |
| ON (HnK addresses) | Hardcoded RAM address hack | Specific fix for Hokuto no Ken |
Refines LAYER SORT using Hokuto no Ken's own VRAM texture addresses, for the debris tiles that texture format/properties alone cannot tell apart from the fighters. Needs LAYER SORT on — it does nothing by itself — and only works for stage 1/2 at the moment. Leave it off in every other game.
| Mode | Settings | Rendering |
|---|---|---|
| INTERPRETER | Interpreted SH4 core | Slow, for debugging only |
| DYNAREC (default) | JIT recompiler | Fast |
LAYER SORT (Hokuto No Ken, Street Fighter III) helps determine what should be front and back trough looking at texture format/properties. HOKUTO HACK adds to it a RAM address check for a few Hokuto no Ken textures that those properties cannot separate — Hokuto no Ken only, and it needs LAYER SORT on.
JOJO FIX (Jojo's Bizarre adventure) has to be used with CI4_FAST to reduce FPS drop in battle. May use the same technique in other games
Vertex color is a special method on Dreamcast to color stuff. Notable example in Crazy Taxi : The arrow and dollar sign are Vertex Colored. You will notice the cars too : They will add to the current texture so the same car with the same texture will appear red, blue, green, etc...
Same for Jet Set Radio, will add color to the logo.
See Compatiblity guide for hints depending of the games
game_presets is a file that reads the file name and directly apply matching presets.
game_presets.cfg needs to be in sd:/discs/
With recent version, multiple file names are suppported :
[crazytaxi2][crazy taxi 2] ; more specific first
depth_clip=1
tex_cache=normal
vertex_color=off
[crazytaxi][crazy taxi]
depth_clip=1
tex_cache=normal
graphics=normal
So in that configuration, your file name should be crazytaxi.gdi or crazytaxi.gdi
I'm not enterely sure spaces are supported right now
Maybe it needs to be more specific, so in this example, just add [crazytaxi1] like this :
[crazytaxi][crazytaxi1][crazy taxi]
Then rename your gdi crazytaxi1.gdi or crazytaxi1.cdi
If everything is correct, in the option menu, you should see something like this :
Best thing to do :
1/ Launch with default preset
2/ play a little bit the game (default stage, just input A A A), 2/3 minutes is enough
3/ If some things doesn't display good, try to change settings. Already we know that works :
- fine (seam) lines in 2D sprites : put "LOW" as graphics
- Z fighting : put FIXED DEPTH to "tight"
- 2 player viewport (or 2 cameras in the same scene) = SPLITSCREEN
4/ Flickering, fix can be :
- BLEND_MODE (set to off)
- TRANS_MODE (set to off)
- ASYNC_RENDER (set to on)
- DEPTH-CLIP (set to tight)
5/ Other graphical things not displaying (or black screen) : try flipping all the other setting, particulary :
- 4BPP/8BPP to CI4_FAST or CI8_FAST
- BG POLYGON to on
- PUNCH Trough to ON
- TRANS_SORT to ON
- RENDER TO TEX to ON
- 2D Famebuffer = ON
6/ off Canvas problem (screen too small or too big)
- try xratio = on (or off)
- CANVAS_WIDTH (try different values)
7/ Restart the game, try CACHE_VERY_FAST and CACHE_FAST. Find the lowest compatible option for the game. They may crash heavy-scene thus, like Shenmue intro
8/ Try if FPS_BOOST is possible and don't break too much the game
9/ If you want to dig more, try the game in early version of NullDC4Wii :
- alpha0.25
- alpha0.28
- alpha0.40
Report to me if you seen any regressions
Fine (seam) lines in 2D example :
CACHE related problem examples :
Off Canvas :
Z Fighting example :
Fastmem crash example :
https://wiibrew.org/wiki/DevkitPPC
Just tick PPC (not ARM, x86, etc).
See this issue : #13
Devkitpro has it's own UNIX terminal, by default it's located here :
C:\devkitPro\msys2\usr\bin\mintty.exe
pacman -Syu # updates MSYS2 and package database
pacman -S wii-dev
In windows variable environnement add C:\devkitPro\devkitPPC\bin to Uservariable PATH
UPDATE MARCH 2026 : This folder seems to be needed also for elf2dol : C:\devkitPro\tools\bin
Modify these system variable
DEVKITPPC : C:\devkitPro\devkitPPC
DEVKITPRO : C:\devkitPro\
Strongly advise you to completly reboot Windows after that (not just relaunching CMD)
Correct errors if they are some errors
dollz3 is a compress tool for *.dol files, and it is in the original "vs_make.bat" file, but it seems not to work
https://wiibrew.org/wiki/Dollz
It should work for Linux & Mac with similar process
Leaving this link for now :
https://wiibrew.org/wiki/DevkitPPC
Activate :
- SD Card
- Display FPS
- For log, in config.ini add "DebugModeEnabled = True" under [Interface]
- (optional) VSync eventually
- (optional) Advanced > Debug > Texture Format Overlay
Make sure you have a good brand (Samsung, Kingston). Optimal card would be between 2Gb and 32Gb (more should work, we support SDXC), formated in FAT32 with 32kb cluster (16kb or 64kb could work). Try another SD card if that's not working
First, try on SD card with a know working game (Castlevania, Chuchu Rocket or Sega Tetris are best candidate).
For USB, try a FAT32 USB key first (32kb cluster) before switching to any other device. It works on my 500HDD FAT32 for information (with a cluster of 4kb)
It's reported working. Step 1 : go to bios. Step 2 : format VMU. Step 3 : exit properly the emulator (+ and -)
Because why not ? At first it was a POC (Proof Of Concept) but digging more and more, it seems somes games are achievable to 100% speed (in PAL50 mode). So yeah !
Please check the compatiblity Wiki : https://wiibrew.org/wiki/NullDC4Wii/Compatibility
We have a Wii U fowarder that also use the speed boot of the Wii U (overclock). A native port for Wii U could be done if someone wants to do port it.
Not yet, this could ask between 0.03 and 0.5Mb of RAM. Doable yes, maybe not really worth the effort. But you can use Atomiswave hacks for dreamcast, lots of them do work.
Definitly not, the recent Dynarec/JIT (= fps boost) and ARM7 cache ask for more RAM, we have no more place to add 16Mb for NAOMI Ram
Open an issue, everything should be ok now
Probably not, this emulator prioritize multiplayer fun games to play friends with. Playing an adventure game like Shenmue or an RPG could be a very frustrating experience that I strongly do not recommand. Use Gamecube/Wii version (if it does exist) or a PC for emulation instead.
Try different games, parameters and report in the compatibility wiki : https://wiibrew.org/wiki/NullDC4Wii/Compatibility
The only way to know this answer is to try our best ! Actually, some 2D games run 100% speed, and some 3D games also ! But we are mostly around 60 or 80% of speed...
We are still trying to improve performance, altough we already done a lot of amazing stuff :
- Improved Dynarec
- Fastmem
- ARM7 CACHE
We also need to work more on TEV (Texture Environnement - a specialized hardware unit inside the graphics chip), it has been tested but only on dolphin. Maybe on real hardware this would have better result.
Another good strategy would be to really have a per-game specific emulator. That would take a long time, so for now we have presets & auto-presets implementation trough game_presets.cfg
Also, it's suggested we build a custom Dolphin-Emulator with some tools to help fine-tuning everything and gain more speed. More info here : #116
Probably ! Wii U has the additional CPU power we need. Test the overlocked fowarder !
The Wii can't read those disc format. Maybe if you change the optical drive and with some code implementation, but that's not worth it.
Maybe it's possible, but we don't have time to focus on this. CDI Files on SD Card/USB are supported since alpha 0.28 anyway.
That an additionnal ressources in CPU and we are limited. That may would make sense for a WiiU Port.
We are currently testing a branch with some implementation but it doesn't seem to work.
Probably not, we are super tight on RAM, and it also cost 1/2% of cpu cycle
Probably not, again, we are very short on RAM/CPU. And on Wii we don't have the 100% speed everytime.
Since I (BenoitAdam) digged the NullDC code, AI has been heavily used to make improvement to the emulator. The very first state of the emulator (alpha 0.02) is 99% hand written code by SKMP and NullDC contributors at the time. Only some few changes have been made to be able to recompile it and make it run. Various AI are used : MistalAI/ChatGPT/Codex/Claude and Deepseek. Claude is very convenient because of artifact and Claude Code. Gemini helped on some improvements, and Deepseek too.
It's ok, you have the right, but without AI this project wouldn't have been resurected. AI for code is really a big help, definitly not the same thing with AI generated images and videos. For information AI for image ask ~10x more power, AI for video ask ~100x more power. A Wii is also using 20x less power than a PS4/PS5.
Reduce CO2 emission & grow trees is the plan for the planet. Also prevent stupid people throwing their cigarett butt & firmly condemn pyromaniacs.
Yes : https://discord.gg/sJst6jmQyH
Yes ! Initially I was against donation but spending this much time & effort (and sometimes money) to this project led me to ask for donation. Not trying to getting rich, just staying afloat.
This is very popular amongst small dev project, I don't know what's the difference or if some people would prefer one over the other one, anyway here are the links :
The classic "Patreon" subscribing is here :
https://www.patreon.com/cw/NullDC4Wii
For those used to Paypal, the link is here : https://www.paypal.com/ncp/payment/2NE7AYS77K6AJ
NullDC https://code.google.com/archive/p/nulldc/source/default/source
NullDC (github) https://github.com/skmp/nullDCe
NullDC for PSP : https://github.com/PSP-Archive/nulldce-psp
NullDC for Xbox360 https://github.com/gligli/nulldc-360
Reicast : https://github.com/skmp/reicast-emulator
Flycast : https://github.com/flyinghead/flycast
Deecy : https://github.com/Senryoku/Deecy
Redream : http://redream.io/
Main website : https://devkitpro.org
GitHub : https://github.com/devkitPro
Installer (releases) : https://github.com/devkitPro/installer/releases
Wii Examples : https://github.com/devkitPro/wii-examples
GitHub (Wii/GameCube system librairy) : https://github.com/devkitPro/libogc
Dolphin Official Website : https://dolphin-emu.org
GitHub (for timings Gekko/CPU) : https://github.com/dolphin-emu/dolphin
Emulation Page : https://wiibrew.org/wiki/Emulation
Homebrew tutorials : https://wiibrew.org/wiki/Main_Page
- skmp (original NullDC creator)
- NullDC contributors
- Joseph Jordan - libiso
- Xale00 (also know as Benoit Adam) - 2026 recompilation
- gligli (Xbox 360 port)
- Xeihro (Xiro28 PSP Port)
- AI because this project would have never existed otherwise lol
- Probably Reicast/Flycast Team also
- Welcome to the IA-age guys and good luck everyone.
All together, let's Cast the Dream.
- skmp because he's the god
- Senryoku, develloper of Deecy emulator
- OriginalDave, developer of Jocasta
- MetalliC, developer of Demul
- Dolphin Team, would have been a pain to test on real hardware everytime otherwise
- devkitPPC/Libogc
- Everyone helping on emuvdev/discord
- Jilou04 for constantly testing on Wii U and reporting
- All testers and all futur testers
- People actually helping me on the wiibrew wiki
- To all people not believing in this project
- People constantly critisizing the fact AI is used in this project (this project wouldn't have existed otherwise...).
