The register cache can be filled to the point that when dumping them the FixupBranch goes over the maximum size of 0x80.
Force them to use the "5byte" variant of the jump.
If we were able to determine if the length we had to jump was <0x80 in the future this could be a slight optimization.
This has to be done in bcctrx, bclrx, and twx. It was already done in bcx before.
This fixes issue 7378.
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
Sometimes (in particular when using non-typesafe functions) it can be convenient to have a getter method rather than performing a potentially lengthy explicit cast.
This allows for removal of the strcpy calls, also it's technically way more safe, though I doubt we'll ever have a log name larger than 128 characters or a short description larger than 32 characters.
Also moved these assignments into the constructor's initializer list.
gcc doesn't optimize this loops with -O2, so using memset now.
A flag to skip the clear funktion was added as the cache is already cleared most of the time.