How to make Opera usable
Update: 31.01.01 Missing lines when saving pages as text
Update: 06.02.01 Mail client low resolution version
Update: 09.02.01 Missing linefeeds in copy & paste actions
Update: 12.02.01 Build 856 support
Last Update: 23.02.01 Fullscreen vertical scrollbar
Important version information:
There are different versions of Opera 5.02 out there. Eight days after
the first release, the download sites changed from Build 855 to 856.
The differences are negligible, except that mail headers are now
inconveniently missing when viewing mails, so I continue to use
Build 855. The patches for OPERA.EXE are for both Builds, but all mail
client offsets are only valid for 855. However, the patched OMAIL32.DLL
can also be used for 856. You can check your current build with
"Help/About Opera".
Sadly, Opera 5.02 didn't make this page unnecessary. So again new patches
can be downloaded. The list of things which I want Opera to do MY way has
expanded, there are two sections below, the first deals with real bugfixes,
the second with "adjustments".
The bytes which have to be changed in the appropriate file and the
corresponding offsets are given in hexadecimal. If you don't know how
to do byte patches (which by the way you SHOULD, there are quite enough
tutorials and tools out there, for example the
XVI32 Hex Editor),
the fixed and tweaked files are available for download at the bottom,
but of course just downloading and replacing them denies you the possibility
of choosing which bugfixes/tweaks to apply and which not.
For those still interested in older versions of Opera, see the
<../iixii50/old50.htm>4.02/5.0 version or the <../iixii501/old501.htm>5.01 version
of this page.
Feel free to submit this site to any mailing lists/search engines/discussion
groups/FAQs, it is important to reach those desperate Opera users which would
otherwise turn their backs on this good program and return to Nutscrape or
Internet Exploiter.
If you have any suggestions concerning this site or discover/repair bugs which
aren't addressed here yet, email me.
Hope this helps,
IIXII
To be sure you have exactly the same version, check the file sizes:
All byte changes apply to
OMAIL32.DLL (299,071 bytes) or OPERA.EXE (1,904,701 bytes).
This page also can be found at Fravia's (Introduction/Tutti all'opera!).
Bugfixes:
Miscellaneous tweaks:
Downloads
Timezone correction
Up to Opera 5.01, the timestamp of incoming mails wasn't converted to local
time, causing sort order anachronisms. In Opera 5.02, this was supposed to
be fixed. Nice try. Here is the patch to make it WORK.
OMAIL32.DLL
OFFSET 1F8 2D -> 52 (increase code section)
OFFSET 3598 01 62 -> B1 74 (gmtime -> localtime)
OFFSET FDCA 2D -> 2B
OFFSET FDD6 2B -> 2D (fix sign error)
OFFSET FC7E 14 01 00 -> AB 2D 02 (call inserted code for incoming timestamp)
OFFSET 32A2D 5F 38 5E 02 74 18 8B F0 E8 C4 A1 FF FF 8B 87 1E
97 02 00 99 B9 10 0E 00 00 F7 F9 29 46 08 E8 46
D3 FD FF FF E7
Corrupted Drafts folder
While composing mails, they are automatically saved in the Drafts folder in a
one minute interval as a backup. When they are finally moved into Outbox
and deleted from the Drafts folder, the DRAFTS.MBS file is truncated to
zero bytes, so the folder is completely emptied. To prevent that, this patch
disables the autosave feature.
OMAIL32.DLL
OFFSET 12360 57 68 -> EB 0F
Column sort bug
In a mail folder window, you can click on the column headers of the mail
list and the mails are sorted accordingly. This setting is saved, on opening
a new mail folder window, the red arrow is where it should be, only the
sorting isn't performed! On adding a new mail to the list, it is always
inserted at the end of the list.
A jump has to be inserted to force resorting of the list on opening a folder.
If you apply the patch, the bug still occurs when unread mails are retrieved
from the server. Just change to a different folder and back to Inbox,
then they are sorted.
OMAIL32.DLL
OFFSET 187E1 74 2D -> EB 24
Word wrap bug
In the email preferences, you can specify the maximum characters per line,
longer lines are automatically wrapped. The mail input field is a RichEdit
control, which supports wrapping automatically, but the line width must
be set in twips, which are calculated using the current screen resolution
in dpi. On all three machines I tested this on, Windows tells Opera that the
resolution is 96 dpi, while the RichEdit control seems to need different
values according to the font size used. Can anyone give me a hint on this??
If you experience the same problem, that the lines are much longer than
specified, use the following patch. The value 7B is for composing with
Courier New 9, if you use any other font, you may have to experiment a little.
OMAIL32.DLL
OFFSET 1651A 75 03 6A 60 -> 90 90 6A 7B
MDI window redraw bug
While composing a mail, when the window bar is enabled at the bottom and
windows are maximized, switching to a window containing a web page and then
back to the compose window doesn't redraw the mail body. So you can't see
what you typed before, but instead the contents of the web page are
"shining through".
The culprit is the status bar at the bottom of the mail compose window,
that little gray bar with the "sunken" middle where nothing is ever displayed,
so I wonder why it's there anyway. When switching to the mail compose window,
it is resized to full size, and immediatly resized again by 4 pixels to
create the little border around the status bar. The second resize occurs while
Windoze is still processing the first, and so it screws up.
This bug was definitely the most difficult to patch, and it took me a long
debugging night to figure it out. Because most window functions are used
for all windows in Opera, it wasn't possible to take out that second resize.
Instead I inserted a bit of code checking all resize actions and cancelling
that 4 pixel resize. Works fine.
OMAIL32.DLL
OFFSET 1F8 2D or 52 -> 78 (increase code section)
OFFSET 12A08 FF 75 10 8B CE -> E8 45 00 02 00
OFFSET 32A52 5F 8B 55 10 83 7D 08 05 75 17 8B CA 87 8F DB 1F
03 00 2B CA 81 F9 00 00 04 00 75 05 83 C7 0B FF
E7 52 8B CE FF E7
Wrong tabs and linefeeds in mails
If you ever wondered why tabs in mails show as little boxes, and two links
separated by a line feed are concatenated to form a single line, it's
time to grab a text editor and edit the file "email.css" in Opera's "Styles"
subdirectory. In the section PRE.BODY you will find the line
white-space: -pre-wrap;
I really don't know why it's there, but removing it fixes the above-mentioned
problems.
Missing lines when saving pages as text
When a page is saved as text, and it contains parts whose font size is set
using a style sheet, then every 4th line of that text is missing. Try
saving this document as text for demonstration.
This is especially annoying when saving mails, because mails are converted
to HTML to be displayed using the style sheet email.css, and then converted
back to text when saved, instead of using the original text. The reason
for the bug are wrong scaling factors inside Opera, and the workaround
is to change the general scaling factors for plaintext saving:
OPERA.EXE
OFFSET 6B178 0A = vertical positioning scaling factor
OFFSET 6772E 0A = horizontal positioning scaling factor
It's funny to play with those, and adjusting the vertical factor to 08
kind of fixes the problem, but on the other hand it causes normal text to
be scaled by inserting empty lines. Oh well.
Missing line feeds for copy & paste actions
When trying to copy & paste text from emails or web pages, Opera removes
multiple linefeeds completely, so if there are two lines of text with
empty lines between them, the text lines are concatenated to a single line.
Furthermore, when copying from a web page, linefeeds from the HTML source code
are also copied although not visible on the page. The following patch cures
the line concatenation.
OPERA.EXE
OFFSET 210 1B or CB -> DE
OFFSET 817E3 74 07 C6 04 -> 75 DA EB 05
OFFSET 164248 4F 2F 48 -> CB EF 55
OFFSET 15EFCB 00 00 .. -> 8B 45 E8 8B 55 08 C7 04 10 0D 0A 00 00 8D 40 02 C2 18 00
Vertical scrollbar missing in fullscreen mode
When browsing in fullscreen mode (F11), the scrollbar is off by default. It
can be turned on by pressing CTRL+F7, or the cursor keys can be used for
scrolling. But often, sites using frames can't be scrolled either way, so
only the top portion is shown. Patch follows:
OPERA.EXE
OFFSET 76639 89 46 44 33 C0 -> 33 C0 89 46 44
Disable password warning
When entering passwords on a page, sometimes they are checked using
JavaScript, and Opera will display the warning "A script wants to read the
password(s) in the form. Do you want to give the script access to your
password(s)?". This can get annoying, so with this patch the answer can
be hardcoded as "yes" or "no".
OPERA.EXE
OFFSET A2B97 6A 00 -> EB 26 (yes)
6A 00 68 D6 57 -> E9 16 F9 FF FF (no)
Disable online mode message
If you are in Offline mode and want to preselect several bookmarks in
several windows to load them all when finally going online, Opera will
ask about switching to Online mode every time. Again, "yes" or "no" can
be hardcoded.
OPERA.EXE
OFFSET AA2F4 68 FA -> EB 50 (yes)
-> EB 7C (no)
Persistent download log
All entries in the transfer window are deleted after 48 hours. If you
want them to be persistent, apply this patch.
OPERA.EXE
OFFSET 203CD 7C 71 -> 90 90
Characters per line when saving as text
When saving a page as text, the linefeeds aren't generated properly because
the file is opened in "w" mode instead of "wb". Fix follows:
OPERA.EXE
OFFSET B5FF1 F8 7B -> 14 73
Additionally, the line width is always 80 characters. If you want to adjust
the line width up to 127 characters, use the following patch,
where xx is the new line width:
OPERA.EXE
OFFSET B6012 50 -> xx
For very long lines, use the following patch, where yy yy yy yy is the
new line width in little endian format, e.g. 2C 01 00 00 for 300 characters:
OPERA.EXE
OFFSET B6002 85 FF 59 74 47 8B 46 4C 6A 00 68 FF 7F 00 00 6A 50
-> 59 90 8B 46 4C 6A 00 68 FF 7F 00 00 68 yy yy yy yy
Exchanging mailbox columns
The columns can be resized, but not exchanged. This is bad because I'm
used to having the subject appear before date and size. So what?
BTW: There are quite a lot of bytes to change. The first three exchange
the labels, the next three exchange the contents, and the rest are responsible
for making the sort criteria work again.
OMAIL32.DLL
OFFSET 171D1 CC -> CB
OFFSET 171F6 CF -> CC
OFFSET 17225 CB -> CF (labels)
OFFSET 174ED 1C -> 20
OFFSET 174F7 20 -> 24
OFFSET 1750B 24 -> 1C (contents)
OFFSET 1819C 0F 84 9E 00 00 00 49 74 51 49 0F 85 09 02 00 00
-> 74 0E 49 0F 84 9B 00 00 00 49 EB 4E 90 90 90 90
OFFSET 17D6A & 17D6D & 17D8A & 17D8D 1C -> 20
OFFSET 181BA & 181D4 06 -> 04
OFFSET 18204 & 1821E 05 -> 06
OFFSET 1824E & 18268 04 -> 05
OFFSET 181AF AC -> A8
OFFSET 181F9 AA -> AC
OFFSET 18243 A8 -> AA (sort on header click)
Default mailbox column size
You can resize the columns, but the setting is not saved. So you can change
the default sizes, the proposed values are best for the exchanged columns.
OMAIL32.DLL
OFFSET 170BE 14 -> 00 Column 1&2
OFFSET 17157 14 -> 13 Column 3
OFFSET 171A3 A0 Column 4 (lowres: 80)
OFFSET 171E5 78 00 -> 8B 01 Column 5 (lowres: 20 01)
OFFSET 17210 32 -> 78 Column 6 (lowres: 74)
OFFSET 17222 -1 Column 7
For low resolutions or small screens it is useful to reduce the hotlist
width, but that causes the Unread and Total columns to disappear unless
their size is permanently adjusted as well:
OFFSET 19E7A 8B 4D F4 6A 14 89 48 2A -> 6A 1A 59 6A 35 89 48 4C Column 3&1
OFFSET 19E8A 7D 03 -> 90 90 ^^ ^^
OFFSET 1A3F7 14 -> 1A Column 2
OFFSET 424D8 61 -> 00
OFFSET 424E6 65 -> 00
Downloads
DO NOT link to these downloads directly, FortuneCity
doesn't like externally linked files. They have a rather annoying method
to check if you visited this page before downloading: You must have
a certain cookie ("rand=...") on your PC, containing a random ID assigned
to you when visiting this page. If you get a "can't supply file" error page,
please make sure that your browser accepts cookies (in Opera see
File/Preferences/Privacy), then refresh this page so the cookie will be
generated.
Download patched OMAIL32.DLL (archive 129 kB) for v5.02
Download patched OMAIL32.DLL 800x600 low resolution version (archive 130 kB) for v5.02
Warning: The DLL contains all bugfixes and tweaks mentioned above. It is
compressed with ASpack, so it makes Opera even smaller on your hard disk
because it is decompressed to memory every time you run Opera, and it loads
faster, because decompression time is less than the time saved by shorter
disk access due to smaller size. Still check the size of the file you replace.
Made with Norton Editor 2.0 for DOS [und vieeel Zeit]