This could cause the first branch of the bootucode procedure, which
takes its parameters from the AX registers, to run during the ROM init
sequence. Since the ROM doesn't set any of the AX registers, the values
aren't meaningful, and can cause bad DMA transfers and crashes.
Wii.Widescreen is a setting that cannot be changed on the fly after
emulation has started, so anything booted after the initial title
will have an unexpected aspect ratio.
We can just set Video_Settings.AspectRatio instead, which *can* be live
changed, since it doesn't involve messing with the SYSCONF at any time.
This is also much closer to the behaviour of the Wii U, which
configures the DMCU to force 4:3 transparently, instead of doing it the
intrusive way (touching the SYSCONF).
Based off codehandleronly.bin. Improves support for codes with conditionals due to adding cache invalidation on stores. You also have support for mode code lines at once before Dolphin freezes at startup.
- coef: Explicitly set 23 different values that are used by GBA UCode,
and tweaked overall parameters to more closely match those 23 values.
- irom: Moved a few functions to their proper places, updated BootUCode
to configure DMA transfers using AX registers as well as IX registers
(the GBA UCode uses this to do two sequential transfers in one call),
and added partial functions used by GBA UCode.
All functions were reverse-engineered solely based off of observed
effects on the virtual machine: register states before-and-after, dmem
interactions, and DMA transfers. The specific coefficients were observed
being read from dmem, and must be exactly those values to function
properly. I have no knowledge of how the official ROM implements these
functions, or how it is implemented overall.
Tested with The Legend of Zelda: Four Swords Adventures, Final Fantasy
Crystal Chronicles, and Billy Hatcher and the Giant Egg (to download
ChuChu Rocket!).
This adds new themed rating stars to all of the theme folders, with the
intent to eventually replace the awful old ratings stars in
sys/resources. I’m not a coder so it will be up to someone else to use
these files to replace the ratings stars in WX and Qt. Their dimensions
are the same as the old ones, so it should be pretty easy to implement,
though it will require moving over to theme-able files and supporting
HiDPI for them.
@4x files are present for future proofing / possible android usage.
All files have been optimized with opti-png.
This allows us to print user friendly names for titles out of the box,
without requiring the user to manually download a title database and
place it in the correct location.
No auto-update mechanism is implemented as it would be substantially
more complicated and overkill (imo), since titles are not updated
that often. I have however added a script to make updating them easier.
The database can be freely used without any restriction. I have
contacted the author.
Dolphin is able to generate one with all correct default settings, so
we don't need to ship with a pre-generated SYSCONF and worry about
syncing default settings.
Additionally, this commit changes SysConf to work with session SYSCONFs
so that Dolphin is able to generate a default one even for Movie/TAS.
Which SYSCONF needs to be touched is explicitly specified to avoid
confusion about which file SysConf is managing.
(Another notable change is that the Wii root functions are moved into
Core to prevent Common from depending on Core.)
Windows-1252 was sometimes being referred to as ASCII or ANSI
in Dolphin, which is incorrect. ASCII is only a subset of
Windows-1252, and ANSI is (rather improperly) used in Windows
to refer to the current code page (which often is 1252 on
Western systems, but can also be something entirely different).
The commit also replaces "SJIS" with "Shift JIS". "SJIS"
isn't misleading, but "Shift JIS" is more commonly used.
- F.ini: PR #4189 removes the need for 1x IR according to JMC
- GWO.ini: Just force integral resolution, not auto resolution
- GALP01.ini: I have no idea why EFBScale would be forced here
- GINX69.ini: I think JMC said it's fixed, but I can't find his post...
- SNS.ini: https://bugs.dolphin-emu.org/issues/9891
- P INIs: https://bugs.dolphin-emu.org/issues/9938
Set EFBtoTextures=False, fixes issue #9942 from Ocarina of Time, makes Link preview visible in Equipment screen, with EFB to Textures Only enabled the preview stays black, rather than showing Link's current equipment.
The signature DB is very helpful for generating a symbol map for games
which don't ship with debugging symbols, since it includes signatures
for common SDK functions.
However, it isn't very complete and only contained signatures for GC
games -- the current database isn't very helpful for Wii games, which
still have a huge number of unknown functions even after using this DB.
Yet Wii games typically share a lot of code (since they all use the
SDK), and not having symbols makes it a lot harder to look into what
a game is doing… So this commit adds common Wii SDK function signatures
to the database, in order to make generated symbol maps a lot more
useful for Wii games.
The debug info comes from the debugging map that was left in the Wii
version of The Legend of Zelda: Twilight Princess. To avoid cluttering
the DB with game-specific debug info (even though it already contains
some game-specific symbols), some basic filtering was done on the
shipped symbol map:
egrep '(section layout|\.a|m_Do|lib|Lib| OS)' tp-framework.map | grep -v Z2 > common-wii-sdk.map
Then this map was loaded in Twilight Princess, and "append to existing
signature file" was used to append the new hashes to totaldb.dsy.
Set EFBtoTextures=False, fixes issue #9942, makes Link preview visible in Equipment screen, with EFB to Textures Only enabled the preview stays black, rather than showing Link's current equipment.
All the inline comments from the netplay code were removed because they
apparently took up space in game memory (They were maxing out gecko
codes).
"Increase input timing accuracy" was made into its own code entry.
"Netplay Safe Kill Music" code has been updated to prevent desyncs.
BMX XXX can detect forced Progressive Scan in Dolphin but the game will not be playable, the emulator will freeze.
On an original GameCube, GC-Forever reported that "Game does not support component video output.".
By default, it's better to disable the forced Progressive Scan feature on this game to make it playable and also not stuck in a broken startup.
The Legend of Zelda: Ocarina of Time (Master Quest) needs EFB to RAM
for the pause menu background to not be black and for Link to show up
in the pause menu. These are the two most visible issues without EFB
to RAM enabled.
This is consistent with the GameINI for the Collector's Edition
version (PZL).
Just because it was the same game, released in diffrent regions
at around the same time doesn't mean they use the same version
of the Virtual Console emulator.
The previous INIs were based of testing of the US release so I've
move them to 6 letter INIs only effecting the US release. I've
also added a few more and added a few Inis for the few PAL games
that I could confirm also didn't require EFB2Ram.
Updates for Sonic Adventure 2 Battle, Surf's Up, Drawn to Life The Next
Chapter, Boogie, Boogie SuperStar, Quantum of Solace, Tiger Woods PGA
Tour 08, Call of Duty: Black Ops.
Fixes issues 9123, 9191, 9204, 9205, 9206, 9050, 9183.
Using the XPM format for images has become a maintenance problem because
people don't know how to create them. This commit removes all XPM images
and all C files that contain PNG images. DolphinWX now uses the PNGs
in the Resources folder instead, just like DolphinQt and DolphinQt2 do.
fileplatform is moved so it's in the same place as the other platform
icons, and nobanner is moved just because it fits better in Resources.
Both of them were identical in all of Dolphin's themes.
091db36 added a new delay for disc commands in an attempt to fix issues.
It fixed Sonic Riders crashing after the third level... or so we thought.
091db36 also happened changed the order disc reads happen in so that the
data is copied to memory before the emulated delay is finished. This was
inaccurate and caused an audio problem in Resident Evil 3, leading to the
old order being restored in 8cc6e5c. Now that the order is correct,
Sonic Riders is broken again, despite 091db36's delay still existing.
We're more or less back to square one - nobody knows what's broken, and
nobody knows how to fix it. This commit restores SUDTR to Sonic Rider's
game INI so that it'll work out of the box in 5.0 just like in 4.0.
This is mainly a virtual console update. Removes progressive scan option
from snes, genesis, etc. games since it is no longer needed for proper
speed. Adds gameinis for Neo geo, Arcade and missing gameinis for
genesis.
Main Stick is changed to Control Stick and C-Stick is changed to C Stick.
A new ui_name variable is added to ControlGroup so that the UI strings
in DolphinWX can be updated without breaking backwards compatibility
with config INIs and other things that use names as IDs.
Lost Levels NES VC game was missing an INI file and prevented it from
displaying anything but a black screen. This seems to get the graphics
working.
Played though 1-2 without issue.
While going through and testing various NES VC games, I noticed Mega Man
5 was just displaying a black screen but the sound and button inputs
were working as expected. Turns out, there is no INI file for that game
id. Copying and renaming Mega Man 4's INI file appears to be enough to
get the game going.
Stereoscopy values have been tested and a convergence value of 26 is ideal for placing the characters on the convergence plane. No perceived issues with disabling monoscopic shadows.
Completely rewritten Global Melee Netplay Settings. The individual codes can be found here (http://pastebin.com/38CFazXq). The previous Global Melee Netplay Settings have some issues such as not being able to change the random stage select, various crashes in 1P mode, friendly fire being off by default, and a general lack of new features due to its age. Needs to be tested for stability.
Fixes issues 8713 and 8674. Also disables scaled efb copies by default
for New Super Mario Bros to take advantage of the recent efb to texture
spinning coin fix.
Fixes issue 8637 by replacing SkipIdle=0 with SyncOnSkipIdle = False.
Updates gameinis for Resident Evil Archives: Resident Evil Zero, Pokemon
Snap and fixes a mistake in Baldur's Gate: Dark Alliance.
Gameinis are added/updated for:
Shrek SuperSlam, Disney's Donald Duck Goin' Quackers, The Fairly
OddParents: Shadow Showdown, Hot Wheels World Race, MySims Agents, Punch
Out, Alien Syndrome, My Word Coach, Secret Files Tunguska and Secret
Files 2 Puritas Cordis.
Having settings for each game in more than one file is redundant.
Now, region-free INIs are now only for settings, and region-specific
INIs are only for AR codes and patches. Exceptions are made for
titles that share the first three characters of their IDs with
unrelated titles (mostly unlicensed titles and Triforce titles).
Removes STC from Star Wars: Rogue Squadron III: Rebel Strike: Limited
Edition Bonus Disc (Demo). Removes efb to ram setting from Tiger Woods
PGA TOUR 2005, Tiger Woods PGA TOUR 06, Mission: Impossible Operation
Surma and Terminator 3: The Redemption since it is no longer needed.
Sets Army Men Air Combat and Pac-Man World 3 to LLE audio due to audio
issues with HLE (slow audio). Corrects some mistakes in F zero (virtual
console) and The Magic Obelisk ini files. Finally it removes comments
that are simply stating the obvious and references to revs that games
were tested with.
I had moved Hyrule Field Speed Hack to RZDE01r0.ini and
Hyrule Field Speed Hack v2 to RZDE01r2.ini...
But according to issue 8318, v2 is actually made for r0.
This will make some game INIs cover more regions.
For INIs with AR codes or patches, I manually created a region-free
file without region-specific data while keeping the original.
It removes settings that were removed from dolphin to clean up the
database. Modifies some gameinis to use the new 3 letter gameid. Adds
Hyrule field speedup hack for Japanese and American version of Twilight
Princess for wii. Removes efb to ram from Twilight Princess, Tony Hawk's
Pro Skater 3, Tony Hawk's Pro Skater 4, Prince of Persia Forgotten
Sands, Mario Superstar Baseball, Okami, FFCC the Crystal Bearers and The
Simpsons due to the recent dolphin changes. Enables efb to ram for The
Magic Obelisk because it needs it and some more minor changes.
Add Hyrule Field Speed Hack v2 by TheWearyGamer for the wii us version
of Zelda Twilight Princess. Enable mmu and disable anti-aliasing in
Fatal Frame IV: Mask of the Lunar Eclipse fixing issues 8108 and 8109.
Removes speedhacks from metroid prime 1 and 2, and fire emblem series
and update old notes for metroid prime. Capitalize dolphin in the few
inis that weren't from the previous commit.
Capitalizes LLE audio and changes star wars rogue leader and rebel
strike emulation state, addition of Rabbids Go Home and Bad Boys II in
the database, and enables mmu in Need for speed most wanted (gc) to
avoid crashes during loading a stage.
Includes gameinis for the Pal and Ntsc region of TurboGrafx-16, some
Commodore 64 gameinis, removes old notes about mmu games, enforces
virtual xfb in games fixed by PR #1818, updates Star Wars: Rogue Leader
and Star Wars - Rogue Squadron III - Rebel Strike
according to the zfreeze pr updates, MySims Kingdom is added and
Sakura Wars: So Long, My Love is updated.
Fixes issues 8091 and 8086.
Previously the gamecube fonts were based on Arial and Lucida which are not
freely distributable. The new fonts are generated using fonts under free
licenses with the "gc-font-tool" program I wrote.
According to GameTDB's database, this is not a known title ID. It was likely added by mistake. For those wondering, DVDX doesn't use this or it would be in GameTDB's database because they also keep track of homebrew, and Dolphin doesn't have INIs for homebrew/hacks anyway.
Update/addition of Madden NFL 06 (gc), Frogger Beyond (gc), DONKEY
KONGA (gc), Madden NFL 2005 (gc), NBA STREET Vol.2 (gc), Spider-Man
(gc), Star Wars: Rogue Leader (gc), NO MORE HEROES (wii), Super Smash
Bros. Brawl (wii), The Simpsons Game (wii), Suzumiya Haruhi no Heiretsu
(wii).
Fixes issues 7978, 7894, 7883.
Updates for Mario Smash Football, Medabots Infinity 4th Submission,
Super Mario Sunshine, Tom Clancy's Splinter Cell Double Agent, Sonic
Riders, Bigfoot - King of Crush, Turbo: Super Stunt Squad, Kid
Adventures Sky Captain, Toy Story 3.
Fixes issues 7868, 7799, 6586.
This is a cleanup of the gameini database. Specifically:
It removes the "Issues=..." lines and their respective comments since
they don't show up in the gui, are very old and wrong in most cases.
They contain probably more than 4 year old comments (i don't have a clue
who or when wrote them).
Also remove the "EFBCopyCacheEnable = True" lines from the database.
These were put at a time that efb to Ram had resolution issues without
cache being enabled, safe texture cache could be disabled and speed was
detrimental. Now that efb to ram doesn't have the same res issues as
back then, safe texture cache can't be disabled with speed gains being
non existent (you get even a speed hit if texture cache is put to safe)
i think it should be removed from the database.
Updates gameinis for various us wiiware titles. How to Train Your Dragon
2 (wii), Opoona (wii), The Legend of Zelda: Collector's Edition (gc),
Super Mario Sunshine (gc), Super Monkey Ball 2 (gc) updated.
Fixes issues 7491, 7447 and 7581.
In the cases where we support the binding layout keyword, use it for more than binding UBO location.
This changes it so it is supported for samplers as well.
Instances when this is enabled is if a device supports GL_ARB_shading_language_420pack, or if it supports GLES 3.10.
Adds Genesis virtual console games to the database. Fixes issues 7400
and partly 7396. Update for Mario Sunshine (gc), Despicable Me (wii),
Chicken Little: Ace In Action (wii), and a couple of Wiiware titles.
The clean theme was a little rushed. There was barely over a week between it's start date and the 4.0 release, and there was school and other crazy going on at the time. Having lived with the clean theme for a while, the weaknesses of the theme was really beginning to irritate me. So I've taken my time and worked on them over the past few months, and used them day to day to get the feel of them. The result is much better overall - everything has been tweaked from the ground up!
While there is a "full" changelog below, the primary change is a transitions from a gradient + dropshadow (and sometimes etch, don't think about it too hard) to a gradient + etch style. It's the same icons and the same style just, dare I say, cleaner? It's also much more variation friendly, allowing consistant results across all the colors and sizes. It pays off big time; everything that isn't default is drastically improved. For those that just use default, it's still better, thanks to the higher quality.
In my view, this is the completed clean theme.
Changlog:
*No dropshadow - gives the theme a even cleaner look and greatly improves the colored and @2x versions
*Improved etch effect with subtle variations as needed to each icon for best results
*New GameCube Icon - accurate to hardware, matches the accurate wiimote-nunchuk
*Tweaked gradients for a slightly flatter look
*Redone Lite theme. Still weird on light chrome, but awesome on dark chrome. Has a sort of white iPod look.
*@2x icons take better advantage of the higher resolution while still matching
*Improved the open icon's "disc", with precise angles on the reflection and mouseover awesome
*Removed slight curve from the Play icon
*Graphics icon now has a "power light" that no one will ever notice if they don't read this.
*And an obscene amount of tweaks way too small to include here
Update that adds NES and SNES (U) Virtual Console games to the database.
Fixes issue 7349 (More Aggressive Twilight Princess Hack), issue 7337
(Def Jam Vendetta No Cutscenes?) and issue 7258 (Madden NFL 2003
requires RealXFB for videos).
Workaround for issue 7322 (Slow audio ingame in various gamecube games
when using HLE, LLE audio works fine.) by enforcing LLE audio for the
affected games for the time being.
This PR depends upon pr #466 "Allow progressive scan to be set by game
ini".
Updates game inis for Serious Sam: Next Encounter (gc), CAPCOM VS. SNK 2
EO (gc), Baten Kaitos Origins (gc), Baten Kaitos Eternal Wings and the
Lost Ocean (gc), Sonic Adventure 2 Battle (gc), Sonic Riders (gc), Sonic
Adventure DX (gc), Mini Ninjas (wii), The Legend of Zelda Skyward Sword
(wii).
Fixes issues 7146 and 6440.
The Sims 2 Pets (gc), NHL 2005 (gc), NHL06 (gc), Blood Omen 2 (gc),
R:Racing Evolution: Life in the Fast Lane (gc), World Of Zoo (wii),
Super Mario Galaxy 1 and 2 are affected.
Fixes issue 7067.
Metroid: Other M was the only game which required this field, but the
issue in that game can be fixed properly by enabling format change
emulation. Hence, there's no point in having this around anymore.
Fixes issue 6644.
Instead of being vertex-based, it is now primitive (point, line or dissected triangle) based, with proper clipping.
Also, screen position is now calculated based on viewport values, instead of "guesstimating".
This fixes many graphical glitches in Paper Mario: TTYD and Super Paper Mario.
Also, the new code allows Mickey's Magical Mirror and Disney's Hide & Sneak to work (mostly) bug-free. I changed their inis to use bbox.
These changes have a slight cost in performance when bbox is being used (rare), mostly due to the new clipping algorithm.
Please check for any regressions or crashes.
It was disabled because of issue 182, but as this game depeneds on FPRF, it was just 'fixed' because of the fallback to interpreter (which implements FPRF by default).
Also enables FPRF for this game via GameIni, so that the issue is still workaround.
If there are any regressions because of this commit, please try to enable FPRF in GameIni.
He claims they don't work on that revision either, but from a quick
Google they (most of them?) seem to be intended for it, so keep them in
case they're useful for anyone.
# By Ryan Houdek (185) and others
# Via degasus (12) and others
* master: (625 commits)
Revert "Don't open/close file for every file operation." as it was crashing PokePark in Windows builds.
Array overrun fixed in VertexShaderCache for the DX11 plugin.
Fixed DSPTool build.
Windows build fix
Go back to assuming every HID device is a wiimote on Windows. Fixed issue 6117. Unfixed issue 6031.
VideoSoftware: Improve fog range adjustment by using less magic and more comments.
revert RasterFont for VideoSoftware
ogl: fix virtual xfb
Windows build fix from web interface...
Adjusted the audio loop criteria, using >= on the Wii and == on GC. This fixes the audio static that occurred in Wii games after hours of play.
Forced the exception check only for ARAM DMA transfers. Removed the Eternal Darkness boot hack and replaced it with an exception check.
VideoSoftware: Implement fog range adjustment, fixing issue 6147.
implement 4xSSAA for OGL
move ogl-only settings into backend
Fix description of disable fog, and move it to enhancements tab.
Reverted rd76ca5783743 as it was made obsolete by r1d550f4496e4.
Removed the tracking of the FIFO Writes as it was made obsolete by r1d550f4496e4.
Forced the external exception check to occur sooner by changing the downcount.
Mark the Direct3D9 backend deprecated.
Prefer D3D11 and OpenGL over D3D9 by default.
...
Conflicts:
CMakeLists.txt
Source/Core/Common/Common.vcxproj.filters
Source/Core/Common/Src/CommonPaths.h
Source/Core/Core/Core.vcxproj.filters
Source/Core/Core/Src/Core.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp
Source/VSProps/Dolphin.Win32.props
Source/VSProps/Dolphin.x64.props
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.
Added a way to categorise the type of HLE function. Currently, there are debug, floating point, memory and generic functions.
Added a HLE function for OSGetResetCode (Warm reset). Fixes the CSI games.
Added a switch to disable all of the HLE functions if the idle skipping option is disabled.
Metroid Prime Trilogy is working. Wii Sports+Wii Sports Resort is not working. Any games which can be played using the dol replacement trick should work here.
Suspect that the DOL's are meant to receive an argument list which has not been catered for in this code. This probably also means that the Metroid Prime Trilogy games are locked in Veteran difficulty for the time-being.