Speed boost (between +3 to +6% FPS)
AUDIO Improvement
Freeze fix ! More games playable !
⚙️ Improvements
JIT FIPR/FTRV: jit_fipr preset - sum in double, round to single once like the SH4 (default on)
Speed boost (between +3 to +6% FPS)
thanks @skmp for his precision guide on FPU
ChuChu rocket sound fix !
New preset : arm7_str_align
Fixed bug #73
thanks Mayo !
Sonic Adventure 2
adpcm_loop (default ON): fixes Sonic Adventure 2's held SFX going silent. Not mentioned.
MMUCR_FIX Games stuck at launch : Fixed (Rez, KOF, etc...)
thanks Mayo !
GD-ROM/CDI: cdi_hdr_fix + cdda_pause_fix presets
cdi_hdr_fix: only V3.5 stores the CDI header offset from the end of the
file; V2/V3 store an absolute offset (cdirip). Legacy read V2 from 0 and
V3 from the end, so those images were rejected (Crazy Taxi PAL).
cdda_pause_fix: SPI_CD_SEEK param 4 pauses CD audio and keeps the
position (nullDC-v1/Reicast/Flycast), instead of seeking to FAD 150 and
reporting STANDBY, so music resumes after a pause.
Ported from flycastPS3 other_fix.md 1.1 / 1.2.
thanks Mayo !
flash_broadcast (default =on)
off | disc | ntsc (the 50/60 Hz setting stored in your
;; dc_flash.bin. With a PAL flash most games run at
;; 50 Hz on composite/RGB, which judders on a 60 Hz
;; Wii output. off (default): the flash decides.
;; disc: 60 Hz when the game's disc says Japan or
;; USA, 50 Hz when it says Europe only (GDI images
;; always count as 60 Hz). ntsc: always 60 Hz. The
;; flash file itself is not changed. Unlike cable=2
;; (VGA), no game refuses to boot over it. From the
;; PS3 port (Rayman 2 and CvS2 went from 50 to 60 Hz
;; there); not yet tested on Wii.)
thanks Mayo !
AICA/ARM7: arm7_reset_fix + aica_race (+ aica_ca_clamp) presets; fix presets default ON
arm7_reset_fix: ARM7 reset enters SVC (ARMv3 has no System mode) and
clears the e68k FIQ latch (Flycast reset()).
aica_race: Flycast G2-DMA/IRQ rules - ADEN polarity, address advance and
ADSUSP at DMA end, busy start ignored, Read_SB_ADST live, SCIEB/MCIEB
applied at once, ARM7 slice +50 cycles after it raises the SH4 IRQ
(cached engine + ARM7 JIT slow-write stub).
aica_ca_clamp: Flycast's CA-read workaround, default OFF (game hack).
Session fix presets now default ON in main.cpp and game_presets.cfg.
Ported from flycastPS3 other_fix.md 1.6 / Flycast.
thanks Mayo !
SH4: interp_fix preset - interpreter div1/addv/subv/mul.l/mac per manual
Speed boost probably also
div1 picked add/sub from old Q alone and lost the shifted-out bit (75%
of single steps wrong over 20M random states vs Flycast's div1, which
the new body, the PS3 form and the jit_carry canonical all match).
addv/subv/mul.l used signed overflow (UB at -O3, no -fwrapv); mac.w S=1
skipped the op and mac.l S=1 verify()-hung -- both now saturate through
the shared sh4_mac_w/l. Ported from flycastPS3 other_fix.md 3.2.
thanks Mayo !
=== Various JIT/Interpreter fix :
ACCURACY split (accuracy_int / accuracy_fpu, commit a66a9da)
jit_link_guard (default ON): a freeze fix that depends on code layout.
div32_fix (default ON, commit 04894b4): fixes wrong quotients for unsigned 64/32 and about a third of signed divides.
thanks Mayo !
GD-ROM: gdrom_stat_fix + gdrom_hang_fix presets
stat: REQ_STAT took the FAD bytes from a u8[3] overlay of a u32 (bits 31-8
on big endian: 45150 read as 176) - shift the FAD, and take track and
ctrl/ADR from the TOC (new libGDR_GetTrackForFAD). GET_SCD format 1 had
every byte one late and cut the absolute FAD; use Flycast's 14-byte layout.
hang: abort unknown ATA commands, complete EXEC_DIAG, full IDENTIFY_DEV
block, CD_READ2 length bytes 6-7, clamp GET_TOC/SET_MODE, SET_MODE byte
offset, DRVSEL/COMMAND rules, SB_GDLEN 0 = 32 MB, DMA longer than its read
ends once (Flycast guard), 2340-byte sectors. All from Flycast; ported
per flycastPS3 other_fix.md 3.3.
thanks Mayo !
📝 Presets updated
Game Presets
The defaut preset for these games have been updated :
- Chuchu Rocket
- OOga Booga (Playable !)
- Puyo Puyo Fever (Playable !)
- Ikaruga (Playable !)
- Izumo (jp) (Playable !)
- Interlude (jp) (Playable !)
- Karous (Playable ! Prefer Wii native version !)
- KOF 2000 (Playable !)
- KOF 2001
- KOF 2002
- KOF XI (AW) (Playable !)
- KOF Neowave (Playable !)
- Last Blade 2 (still buggy thus)
- Rez (Playable with major flaws for now)
- Sonic Shuffle (Playable !)
- Triggerheart Exelica (Playable !)
Doesn't necessarly mean these games are 100% compatible or what. Check Compatibility wiki
Remember that this emulator goal is primary about multiplayer games
👨💻 Developers
🧰 Please update compatibility Guide
Please tell me any finding of better presets on discord or update compatiblity wiki :
https://wiibrew.org/wiki/NullDC4Wii/Compatibility
🎮 Optional Extras
Wii & WiiU Fowarders : See alpha 0.76
Wii Forwarder by @Ploggy
Wii U Overclock Forwarder (integrated) by @Zeox-Gamer