mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-12-16 04:09:39 +00:00
Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.
At the end of July 2011, LM published a free DSP ROM that works with games
using the Zelda UCode. His ROM only has the code to handle UCode loading and a
few utility functions, the rest is missing. This includes the four large sound
mixing functions used by the AX UCode and the DROM containing coefficients used
for polyphase resampling in AX.
This is an improved, updated version of this ROM, which changes the following:
- We now have a free DROM that works for polyphase resampling by "emulating"
linear interpolation. The coefficients contained in the DROM are normally a
list of { c1, c2, c3, c4 } which are used to interpolate a sample value from
four previous samples:
out_sample = prev1 * c1 + prev2 * c2 + prev3 * c3 + prev4 * c4
The coefficients are chosen depending on the fractional part of the current
position (basically, our position between the previous and the next sample).
We can use this fact to generate (c1, c2, c3, c4) for each possible
fractional part so that:
out_sample = prev3 * curr_pos + prev4 * (1 - curr_pos)
Which is the formula for linear interpolation between prev3 and prev4. Linear
interpolation is not as good as polyphase resampling but it still works very
well and I couldn't really hear any difference between the two. If someone
wants to generate real polyphase filter coefficients, they are welcome to
submit a patch.
- The IROM now contains the 4 mixing functions used by the AX UCode: mix_add,
mix_add_two, mix_add_ramp, mix_add_ramp_two. They are large, inlined
functions (probably for performance reasons) in the official DSP IROM, our
version prefers to use a loop. This *should* be more performant with our DSP
JIT implementation, but I did not benchmark that.
Because the new DSP ROM is working just as well as the official ROM in 95% of
cases, it is now shipped by default with Dolphin and will be used with DSPLLE
if you don't have an official DSP ROM in User/GC. It will still display a panic
alert at every boot to notice you that you are using a non official DSP ROM
made by us, which is not perfect.
Games using the CARD, IPL or GBA UCodes are still broken. I don't know what
games this actually impacts, but this is a very small proportion compared to
what works.
|
||
|---|---|---|
| CMakeTests | ||
| Data | ||
| docs | ||
| Externals | ||
| Installer | ||
| Languages | ||
| Source | ||
| Tools | ||
| .gitignore | ||
| .hgeol | ||
| .hgignore | ||
| CMakeLists.txt | ||
| license.txt | ||
| Readme.txt | ||
Dolphin-emu - The Gamecube / Wii Emulator
==========================================
Homesite: http://dolphin-emu.org/
Project Site: http://code.google.com/p/dolphin-emu
Dolphin-emu is a emulator for Gamecube, Wii, Triforce that lets
you run Wii/GCN/Tri games on your Windows/Linux/Mac PC system.
Open Source Release under GPL 2
Project Leaders: F|RES, ector
Team members: http://code.google.com/p/dolphin-emu/people/
Please read the FAQ before use:
http://dolphin-emu.org/docs/faq/
System Requirements:
* OS: Microsoft Windows (XP/Vista or higher) or Linux or Apple Mac OS X (10.6 or higher).
Windows XP x64 is NOT supported.
* Processor: Fast CPU with SSE2 supported (recommended at least 2Ghz).
Dual Core for speed boost.
* Graphics: Any reasonably modern graphics card (Direct3D9/OpenGL 2.1, shader model 3.0).
[Command line usage]
Usage: Dolphin [-h] [-d] [-l] [-e <str>] [-b] [-V <str>] [-A <str>]
-h, --help Show this help message
-d, --debugger Opens the debugger
-l, --logger Opens the logger
-e, --exec=<str> Loads the specified file (DOL,ELF,WAD,GCM,ISO)
-b, --batch Exit Dolphin with emulator
-V, --video_backend=<str> Specify a video plugin
-A, --audio_emulation=<str> Low level (LLE) or high level (HLE) audio
[Libraries]
Cg: Cg Shading API (http://developer.nvidia.com/object/cg_toolkit.html)
*.pdb = Program Debug Database (use these symbols with a program debugger)
[DSP Emulator Engines]
HLE: High Level DSP Emulation
LLE: Low Level DSP Emulation (requires DSP dumps)
Recompiler is faster than interpreter but may be buggy.
[Video Backends]
Direct3D9: Render with Direct3D 9
Direct3D11: Render with Direct3D 11
OpenGL: Render with OpenGL + Cg Shader Language
Software Renderer: Render using the CPU only (for devs only)
[Sys Files]
totaldb.dsy: Database of symbols (for devs only)
font_ansi.bin/font_sjis.bin: font dumps
setting-usa/jpn/usa.txt: config files for Wii
[Support Folders]
Cache: used to cache the ISO list
Config: emulator configuration files
Dump: anything dumped from dolphin will go here
GameConfig: holds the INI game config files
GC: Gamecube memory cards
Load: custom textures
Logs: logs go here
Maps: symbol tables go here (dev only)
OpenCL: OpenCL code
ScreenShots: screenshots are saved here
Shaders: post-processing shaders
StateSaves: save states are stored here
Wii: Wii saves and config is stored here