Jump to content

Help
Latest News Article

White Text Fix

1.2.5 bug fix font renderer white text unicode colour 1.2.4 1.2.3 1.2 1.1

192 replies to this topic

Poll: Meow; development? (7 member(s) have cast votes)

What version of Minecraft to develop next?

  1. Latest (1.2.5, 1.2.4) (6 votes [85.71%])

    Percentage of vote: 85.71%

  2. 1.2, 1.2.3 (0 votes [0.00%])

    Percentage of vote: 0.00%

  3. 1.1 (0 votes [0.00%])

    Percentage of vote: 0.00%

  4. Spoutcraft (0 votes [0.00%])

    Percentage of vote: 0.00%

  5. HackSlashMine (1 votes [14.29%])

    Percentage of vote: 14.29%

  6. Other (specify) (0 votes [0.00%])

    Percentage of vote: 0.00%

What should be implemented after the core features (colour, alpha/transparancy, positioning and improved bold styling)?

  1. micro-optimizations of questionable value (5 votes [27.78%])

    Percentage of vote: 27.78%

  2. methods and tags from later versions (3 votes [16.67%])

    Percentage of vote: 16.67%

  3. extended formatting tags (arbitary colours, repositioning) (3 votes [16.67%])

    Percentage of vote: 16.67%

  4. import HD Fonts support (for default) (5 votes [27.78%])

    Percentage of vote: 27.78%

  5. import TxVortex's OpenType Font support (2 votes [11.11%])

    Percentage of vote: 11.11%

Vote Guests cannot vote

#1

  • Minecraft: Snow_Cat

Posted 29 January 2012 - 12:50 AM

Update
    Series C now in Spoutraft build #1480!
    See post #191(in this thread) for details!



Description
  • In a nutshell;
    This is an awesome fix for those of us using older computers that don't fully support OpenGL(1.1), and renders most/virtually-all text as white.
    • Series A (discontinued)
      Spoiler
    • Series B (discontinued)
      Spoiler
    • Series C Corrects this by moving the GL pointers to preloaded buffers in memory. Text-decorations (underline, overline, encircle) do this incidentally by calling tesselator. This also restores alpha-handling and therefore transparancy/fading.
      Even with the extra program-flow cost this allows hardware enhancements tesselator is aware of to be called upon justifying inclusion with other mods/clients.



Features
  • Coloured Text w/ Alpha Blending
    • Restores colour on 95% of affected machines!
      Posted Image Posted Image
  • Improved text shadows
    • Transparent shadows allow for better contrast between text and background ( where background contrasts with text to begin with ).
    • This makes black text more readable during the day.
    • Compare Series B with Series C.
      Spoiler
  • Improved Bold Text
    • Spaces are now the same width as standard spaces, as is the standard behaviour for most text renderers.
    • Unicode glyphs are now drawn using two layer offset by 0.5px(normalized) instead of the default 1px(normalized). This should eliminate the double-vision/blurry images we normally see.
    • Default characters and custom fonts are now drawn by stretching one layer 0.5px (normalized), and the the other offset by the default 1px(normalized).
      This seems to be a reasonible compromize between stroke width detection and GUI-scaling.
    • Development. Notes:
      Spoiler
  • Improved Text Positioning
    • Includes ThVortex's improved unicode text positioning fix. No longer need unicode text be uncentered.
    • Precision errors inherited from Vanilla (by Optifine) are eliminated in the calculation of unicode glyph widths.
    • Non-bold text is now calculated at the correct width.
    • (Effects of previous versions remain representative of current version.)
      Spoiler
  • Comprehensive test cases.
    • Text positioning.
    • Line wrapping.
    • Text formatting.
    • Alpha fade/blending.
    • Custom fonts (Optifine).
    • More. (Samples from Vanilla 1.2.5 Prerelease and represent only a subset of the tests performed.)
      Spoiler

Screenshots
  • Before.
    • Vanilla 1.2.5 - Default and Unicode.
      Posted Image Posted Image
    • Optifine 1.2.5 HD A9 - Default, Unicode and Custom.
      Posted Image Posted Image Posted Image
  • After Series C.
    • Vanilla 1.2.5 w/ Series C - Default, Unicode and Unicode fade.
      Posted Image Posted Image Posted Image
    • Optifine 1.2.5 HD A9 w/ Series C - Default, Unicode, Custom and Custom fade.
      Posted Image Posted Image Posted Image Posted Image
  • ais.class for 1.2.3 - changes wrapping in chat.
    Spoiler



Downloads
  • Series C.

    Alpha-enabled text with Transparant shadows and improved bold text. Predicted 95% success rate.

    • nl.class for vanilla 1.2.5(and also 1.2.4)
    • nl.class for Optifine 1.2.5 HD B1
    • nl.class for Optifine 1.2.5(and also 1.2.4) HD A9 (and A11, A7, A6, A5, A4, A3, A2, A)
    • does not implement
    • does implement
      • restored coloured text
      • Improved text shadows
      • ThVortex's improved unicode text positioning fix
      • Improved bold text
      • Improved bold text positioning
    • Tested with
      • ModLoader
      • SPC
      • SSP
      • SMP
      • Bukkit
      • Essentials
      .

    Alpha-enabled text with Transparant shadows and improved text wrapping. Predicted 90% success rate.

      ni and ais for Vanilla 1.2.3 ni for ais for OptiFine 1.2.3 HD-B
    • ni.class implements
      • Restored Coloued text
      • Transparent text and text shadows
      • ThVorex's improved text positioning
    • ais.class implements (using ni)
      • chat wrapping on words
      • preserved formmating on wrap
  • Series B. Opaque text with shadows. No alpha transparancy effects (fading). Predicted 95% success rate.
    Spoiler
  • Series A - Alpha-enabled Text, no shadows. Predicted 70% success rate. Under certain circumstances (such as after an independant Color4f call, or for some chat lines while on Essentials servers) will still render white text.
    Spoiler



Installation
  • FAQ:
  • For Optifine:
    • Download sp614x's Optifine
    • Install sp614x's Optifine first
    • Make certain that Optifine is working as intended.
      • Error report include the line "java.lang.SecurityException: SHA1 digest error[...]"?
        Did you delete META-INF from minecraft.jar?
      • Still crashing?
        Did you use WindowsZip?
      • Does the screenshot look like the one above for "Before"?
        Yes? Good!
    • Then download the for Optifine version of this fix/mod.
    • Install the for Optifine fix after/on top of Optifine.
  • For Vanilla:
    • download the appropriate version of this fix/mod for your version of the game.
    • backup your minecraft.jar file.
    • delete META-INF from your minecraft.jar file.
    • copy the .class file from your download into the your minecraft.jar file.
  • For MagicLauncher:
    • this will also solve "Bad video card drivers" most of the time(post #104 in this thread)
      Spoiler
  • For Spoutcraft:
    • Open the Spoutcraft Launcher
    • Click 'options'
    • Either
      • click 'Always use development builds'
      • click 'manual build selection' then 'Select Spoutcraft build' 1480 or later from the dropdown box.
  • For Hack Slash Mine:
    • Download ni for ais for OptiFine 1.2.3 HD-B - Main download. (docs.google.com)
    • backup //.techniclauncher/hackslashmine/binmodpack.jar
    • replace the ni.class file in //.techniclauncher/hackslashmine/binmodpack.jar with the one for Optifine 1.2.3 HD B.
    • Do not replace ais.class. I did not determine what changes were made, and assume that mine is probabably incompatible with Hack/Slash/Mine and therefore should not be used.
  • Troubleshooting
    • Error report include the line "java.lang.SecurityException: SHA1 digest error[...]"?
      Did you delete META-INF from minecraft.jar?
    • Still crashing?
      Did you use WindowsZip?
      Does the version of the fix match the version of your game? (Vanilla/Optifine V#.#.#)
    • Not having any effect?
      Close all archiver/file-patcher/editor windows, then install the fix again.
      If using a 'loader/patcher' make certain that this fix is loaded last, and that there are no .class file conflicts.
    • Still not working?
      (see Addendum)
  • Uninstallation
      All mods can be uninstalled by
    • opening the minecraft.exe launcher
    • clicking 'options'
    • then click 'force update'
      This will redownload the .minecraft/bin files, incl. minecraft.jar.

Addendum

To help me fix this problem would you please post the following:

  • What version of sp614x's Optifine you are using. (minecraftforum.net)
  • What series and target fix are you using (A/B - A,C,D,etc.)
  • A Crash Report. (minecraftwiki.net)
  • What version of Java you have. (java.com)
  • Your OS (Windows, Mac, Linux, ROS, etx.)
  • Your Graphics Adapter/GPU (ATI, Intel, Nvidia, etc.)



Compatibility with other Clients/Mods
  • Modloader does not muck about with FontRenderer and tesselator, so compatibility is expected to continue into the future.
  • Forge... I don't know. I haven't intentionally maintained compatibility with it, but I haven't heard any complaints either. Not that I am making any promises if I do.
  • ThVortex's OpenType font support mod restores colour too!
    Spoiler
  • Spoutcraft (#124 from this thread) definitely has this fixed.
    Previously- With instruction form Top_Cat and a last minute bug-fix from zml2008 I've managed to kludge mine into a pull request with mine as a toggleable option. However, that was a port of the obsolete Series B. and required a menu option like this,
    Spoiler
    Afforess took pity upon me and merged my commits together into Spoutcraft build #1480 (availble in the launcher). After I spent many hours much flailing about with a now obsoleted version or SmartGit. Somehow deleting my local repository when I clicked "push", then later increasing the number of commits when I attemted to 'rebase HEAD;', and later mysteriously re-asserting the same damn changes an extra commit when told to 'pull'. And PortableGIT too failed repatededly to git rebase -i HEAD~#{2,4} because of the existing pull request.
    AlphaText Series C - Before and After screenshots:
    Spoiler
    Many servers will still make a mess by prewrapping text, however servers that don't prewrap will nolonger cause even larger messes (chat doubling). But this will change soon. See post #191(in this thread) for details.
  • Hack Slash Mine (#183 from this thread) got a look after Spoutcraft had it's fix.
    Officially([1.2.3] Hack Slash Mine on this forum) you can install Optifine ontop of this mod, so I've made a version of Series C for Optifine 1.2.3 HD B.
    After discussion with the mod developer, and concersn over compatibility with future versions, I am implementing an extension to FontRenderer that implements the current 1.2.5 interface w/ default interpreter-safe custom tags for arbiary colour values, and maybe kerning.
  • Other Versions are not schededuled to be updated.



Details (irrelevant)
Spoiler



Re: forum keywords as paramiters
Spoiler


Edited by snow_cat, 19 May 2012 - 08:16 PM.


Register or log in to remove.

#2

  • Location: Somewhere between Space and Time
  • Minecraft: DarkRsing

Posted 29 January 2012 - 01:04 AM

why is this a problem?
Recently FriendZoned

#3

  • Minecraft: Snow_Cat

Posted 29 January 2012 - 01:18 AM

Well, for players like myself who do not have the means to obtain computers that aren't pants at rendering graphics- coloured chat on servers is difficult to follow. Colour carries allot of information such as a player's rank, and also provides an immeadiate indication/seperation of messages needing attention.

And the idea that a player would need to get a better machine for no functional reason is preposterous.

Unless you mean the missing text shadows; those provide immeadiate contrast around letters making them easier to read.

#4

  • Minecraft: Snow_Cat

Posted 29 January 2012 - 09:45 PM

Archiver did not actually replace the version in the archive with the patched one.

I have uploaded the fixed version of the optifine patch.

I'll look at the other one later when I am less angry.

#5

    drg09

    Out of the Water

  • Members
  • 2 posts

Posted 29 January 2012 - 10:52 PM

OMG so much thanks! it works perfrectly! thanks thanks thanks

#6

  • Minecraft: Jerred26

Posted 29 January 2012 - 11:20 PM

OH GOD I LOVE YOU SO MUCH!!!!
I will bump this post, great work, I fucking love you ;)

#7

  • Location: Crabshack in the troposphere
  • Minecraft: Sevenedges

Posted 29 January 2012 - 11:22 PM

Small yet applicable idea. I like small aesthetic mods like these.

Posted Image


#8

  • Minecraft: Jerred26

Posted 29 January 2012 - 11:42 PM

This is also a bit buggy and Optifine MQ.class doesnt work

::Delete Meta-Inf on mq.class vannila!::

And this barely helps me

And can u post ur coding?

Bugs:

Posted Image


See how [Notice] is white?
That Notice should be colored
And when people talk there rank is still white
And [User] on me should be grey

Please fix this!

#9

    xSoul

    Gold Miner

  • Members
  • 428 posts
  • Location: Right behind you

Posted 29 January 2012 - 11:45 PM

Just what i needed :D Thanks!!!
Posted Image

#10

  • Minecraft: Jerred26

Posted 30 January 2012 - 12:52 AM

Lol thanks 4 puttin mah name in the install :D

#11

    Kellee

    Full Stack

  • Members
  • 64 posts
  • Location: Kentucky
  • Minecraft: Kellee8

Posted 30 January 2012 - 01:00 AM

Thanks loads!

Posted Image


#12

  • Minecraft: Snow_Cat

Posted 30 January 2012 - 01:16 AM

View Postthejm1236, on 29 January 2012 - 11:42 PM, said:

This is also a bit buggy and Optifine MQ.class doesn't work.
[...]
And this barely helps me.
  • I know that what I have posted is buggy it trades one bug for another less annoying one- which is arguably still an improvement.
  • As for Optifine;
    I derived the linked to mq.class directly from OptiFine HD A4 Standard for Minecraft 1.1, I appologise if you are using Smooth, Multi-Core or AA edition(s) as I do not intend to create specific versions for those until I have the second-pass-inhibit problem licked, and strongly suspect that sp614x will figure post a better solution before I can anyways...

View Postthejm1236, on 29 January 2012 - 11:42 PM, said:

::Delete Meta-Inf on mq.class vannila!::
  • I assumed that people would know to do this, and I know better than to have done so.
  • I therefore offer my appologies for having caused you such distress to warrant a reply in bold red text.

View Postthejm1236, on 29 January 2012 - 11:42 PM, said:

And can you post your coding?
  • Here!
  • within mq.a said:

    aload_0
    aload_0
    invokespecial mq/checkUpdated()V
    aload_0
    getfield mq/bidiFlag Z
    ifeq 10
    aload_0
    aload_1
    invokespecial mq/bidiReorder(Ljava/lang/String;)Ljava/lang/String;
    astore_1
    aload_0
    aload_1
    iload_2
    iconst_1
    iadd
    iload_3
    iconst_1
    iadd
    iload 4
    iconst_1
    invokespecial mq/a(Ljava/lang/String;IIIZ)V

    aload_0
    aload_1
    iload_2
    iload_3
    iload 4
    iconst_0
    invokespecial mq/a(Ljava/lang/String;IIIZ)V
    return

View Postthejm1236, on 29 January 2012 - 11:42 PM, said:

Bugs:
[...]
Please fix this!
  • Sure, I'll need a few things
    • I will require screenshots from your fellow players on that server.
    • Binary access to the exact combination mods installed on that server, and the configuration there to.
    • Unobstificated source code for all plugins, mods and scripts involved.
  • Also a box of doughnuts wouldn't hurt.

View Postthejm1236, on 30 January 2012 - 12:52 AM, said:

Lol thanks 4 puttin mah name in the install :D
  • You pointed out my mistake; credit where credit is due. :)


#13

  • Minecraft: Jerred26

Posted 30 January 2012 - 01:21 AM

View Postsnow_cat, on 30 January 2012 - 01:16 AM, said:

  • I know that what I have posted is buggy it trades one bug for another less annoying one- which is arguably still an improvement.
  • As for Optifine;
    I derived the linked to mq.class directly from OptiFine HD A4 Standard for Minecraft 1.1, I appologise if you are using Smooth, Multi-Core or AA edition(s) as I do not intend to create specific versions for those until I have the second-pass-inhibit problem licked, and strongly suspect that sp614x will figure post a better solution before I can anyways...


  • I assumed that people would know to do this, and I know better than to have done so.
  • I therefore offer my appologies for having caused you such distress to warrant a reply in bold red text.


  • Here!


  • Sure, I'll need a few things
    • I will require screenshots from your fellow players on that server.
    • Binary access to the exact combination mods installed on that server, and the configuration there to.
    • Unobstificated source code for all plugins, mods and scripts involved.
  • Also a box of doughnuts wouldn't hurt.


  • You pointed out my mistake; credit where credit is due. :)
+ I did have Optifine Standard
Posted Image

Posted Image

Notice how [Member] was appointed to be yellow while it was still white.
And [Helper] was actually a post to be like a baby blue color, but again white.
And the [User] was apposed to be grey, but u can see some of the players rank title was white.

Here are a few plugins I know from the server /w colors:
Essentials Group Manager
AuthMe

/./ Also note that this is a public server so I can't get all of the info from it...

And the box of donuts, what flavor?

#14

  • Minecraft: Snow_Cat

Posted 30 January 2012 - 02:10 AM

It might be:
ess.khhq.net - Group Manager > Variables

Quote

  • prefix: '[Admin]' : Produces a simple <[Admin]User>
  • prefix: '&e[VIP]&f' : Produces a coloured <[VIP]User>
But I would need to be able to play with the server config files and have coloured screenshots from players not using my 'fix' to really know. Best leave it alone for now.

View Postthejm1236, on 30 January 2012 - 01:21 AM, said:

And the box of donuts, what flavor?
I'm partial to iced cherry jelly.

#15

  • Minecraft: Jerred26

Posted 30 January 2012 - 02:20 AM

View Postsnow_cat, on 30 January 2012 - 02:10 AM, said:

It might be:
ess.khhq.net - Group Manager > Variables

But I would need to be able to play with the server config files and have coloured screenshots from players not using my 'fix' to really know. Best leave it alone for now.


I'm partial to iced cherry jelly.

I do know that he has made the prefixes like that. And I would also know that because my varibles on my server are just like that. Also they were all completely colored in 1.0

Oh ya, and my promise :)
Posted Image

#16

  • Minecraft: Snow_Cat

Posted 30 January 2012 - 07:39 PM

Meow; does anyone know the bytecode to duplicate java strings?

#17

  • Minecraft: Jerred26

Posted 30 January 2012 - 10:29 PM

Man I realized its probably Essentials etc becuase those have updated but I dont think Server OP has updated yet.

#18

Posted 30 January 2012 - 11:35 PM

i am also having the same problem and i tried both files the vanilla one and the opti something the vanilla worked for me but when people talk the ranks are still not colored which kind of anoys me but thx very much for the bit less anoying fix. i would still like it to be complete so please finish the chat fix so it can be like before 1.1 and we can see all the colors and not just a few and the rest white. anyways thx and plz reply to this when you have the full fix :P cya.
EPFB!!!

#19

Posted 31 January 2012 - 12:29 AM

HECKKKK YESS!!!! TYYYYYYY TTYYYY TYYYY YOUR MY HERO!!!

"-(Owner of Doomsday Servers)-"


#20

Posted 31 January 2012 - 12:39 AM

View Post94ge7j998, on 31 January 2012 - 12:29 AM, said:

HECKKKK YESS!!!! TYYYYYYY TTYYYY TYYYY YOUR MY HERO!!!
did it wok for you like even when ppl talk you can see their rank color and stuff???
EPFB!!!