23-Apr-2024 22:30 GMT.
UNDER CONSTRUCTION
Anonymous, there are 34 items in your selection
[Files] PNG icons with WB3.5 & 3.9ANN.lu
Posted on 20-Oct-2003 15:00 GMT by Amon_Re34 comments
View flat
View list
Elena Novaretti has produced a superb PNG icon patch for OS 3.5/3.9 which lets you use PNG icons, like those in Morph OS.

Download PowerIcons. (Info found on aw.net)

PNG icons with WB3.5 & 3.9 : Comment 1 of 34ANN.lu
Posted by Amon_Re on 20-Oct-2003 13:00 GMT
Some people might find this to be very usefull, and please, don't come complaining about the fact that i found this on "the other" place.

Cheers
PNG icons with WB3.5 & 3.9 : Comment 2 of 34ANN.lu
Posted by Bill Hoggett on 20-Oct-2003 13:15 GMT
In reply to Comment 1 (Amon_Re):
@Amon_Re

Actually, the news has been up on amiga.org for a few days now, so I doubt anyone will be too bothered about where you sourced your information from.
PNG icons with WB3.5 & 3.9 : Comment 3 of 34ANN.lu
Posted by Peter Gordon on 20-Oct-2003 13:24 GMT
In reply to Comment 2 (Bill Hoggett):
Check out my PowerIcon enhanced OS3.9 .. http://www.pgordon.clara.net/xeronbench.png (720Kb)
PNG icons with WB3.5 & 3.9 : Comment 4 of 34ANN.lu
Posted by Anonymous on 20-Oct-2003 13:42 GMT
Even if you don't use PNG icons, the patch provides two
nice functions:

* Shadow/Outline on WB text (the only patch that works for me)
* All normal icons (GlowIcons, NewIcons, thumbnails of pics) are rendered in a 16(24?)-bit colorspace, so they all look their best. :) Especially those
UAE game icons that use 256 colors look great now.
PNG icons with WB3.5 & 3.9 : Comment 5 of 34ANN.lu
Posted by Anonymous on 20-Oct-2003 13:47 GMT
In reply to Comment 4 (Anonymous):
AND, you get a lot more free pens as well, available for use
by other programs. :)
PNG icons with WB3.5 & 3.9 : Comment 6 of 34ANN.lu
Posted by takemehomegrandma on 20-Oct-2003 14:46 GMT
In reply to Comment 1 (Amon_Re):
> Some people might find this to be very usefull, and please, don't come
> complaining about the fact that i found this on "the other" place.

You mean morphos-news.de ??
PNG icons with WB3.5 & 3.9 : Comment 7 of 34ANN.lu
Posted by Amon_Re on 20-Oct-2003 14:55 GMT
In reply to Comment 6 (takemehomegrandma):
No, Amigaworld.net

I don't visit that site you mentioned

Cheers
PNG icons with WB3.5 & 3.9 : Comment 8 of 34ANN.lu
Posted by Kjetil on 20-Oct-2003 17:21 GMT
In reply to Comment 3 (Peter Gordon):
Nicely done I just Hope this patch will continue to work with the new AmigaOS4.0,
it will give AmigaOS4.0 the extra dot over Amiga name.
PNG icons with WB3.5 & 3.9 : Comment 9 of 34ANN.lu
Posted by Amon_Re on 20-Oct-2003 17:26 GMT
In reply to Comment 8 (Kjetil):
Personally, i don't really care that much about the issue, but according to Rogue the patch (in this form) will not work, because libs have both an 68k & a PPC jumptable, with the 68K ones pointing at the PPC functions.

Even if the patch was loaded, since WB is PPC it would never be called.

He also said it should be fairly easy to implement this in AOS4 natively, wether or not they actually will do it, i don't know

Cheers
PNG icons with WB3.5 & 3.9 : Comment 10 of 34ANN.lu
Posted by Kjetil on 20-Oct-2003 18:49 GMT
In reply to Comment 9 (Amon_Re):
I believe there is function to patch the library's, don't remember the name of the function how ever I think snoopdos uses it to patch functions to log there activity in AmigaOS4.0, if that is the case it should be quite easy to rework the patch so it will work with AmigaOS4.0, I think if the functions should be able to modify the pointer values at the same time (jmp-table and new function-table), you can probably just extend the patch as it becomes an new 3rd party icon.library any way.

or you can wait until AmigaOS4.1 or AmigaOS4.0 booing bag 1,2 or 3 is out.
PNG icons with WB3.5 & 3.9 : Comment 11 of 34ANN.lu
Posted by itix on 20-Oct-2003 18:57 GMT
In reply to Comment 9 (Amon_Re):
This means SnoopDOS is not going to work on OS4 either...?
PNG icons with WB3.5 & 3.9 : Comment 12 of 34ANN.lu
Posted by Kjetil on 20-Oct-2003 19:12 GMT
In reply to Comment 9 (Amon_Re):
// 68k & a PPC jumptable

small correction, the so called 'PPC jumptable' do not contain the 68k nor the PPC jump instruction so it's simply a table of functions whit in the library,

in fact this what makes the new library header faster then the old one, one less instructions, how ever indirects addressing adds more clock cycles then direct addressing so the gain is one instruction but not the half of the numbers clock cycles it might improve jmp speed whit about 25% speed increase (my guess), well it depends if you count the RTS or not, if we count it I say 15%.

as for the overall speed gain per functions will probably be like 0.1% you most remember that 0.1% time gain on 90% of all functions count for about 9% overall speed increase whit in the OS it self, and that is just neat. :D
PNG icons with WB3.5 & 3.9 : Comment 13 of 34ANN.lu
Posted by Roj on 20-Oct-2003 19:33 GMT
In reply to Comment 3 (Peter Gordon):
...but you're using Workbench. If I stored tools in folders on my Workbench, every time I pulled out a hammer I'd land the thing on my foot!
PNG icons with WB3.5 & 3.9 : Comment 14 of 34ANN.lu
Posted by Tony on 20-Oct-2003 19:34 GMT
In reply to Comment 12 (Kjetil):
excellent and really nice tool.
Hope it will soon work under Scalos AOS3.9.
PNG icons with WB3.5 & 3.9 : Comment 15 of 34ANN.lu
Posted by IamCleverToo on 20-Oct-2003 23:51 GMT
And Elena is CUTE :-)

Is she single?
PNG icons with WB3.5 & 3.9 : Comment 16 of 34ANN.lu
Posted by Hagge on 21-Oct-2003 02:15 GMT
In reply to Comment 3 (Peter Gordon):
I don't like the look of KDE-icons, but it could have looked good =P
PNG icons with WB3.5 & 3.9 : Comment 17 of 34ANN.lu
Posted by Amon_Re on 21-Oct-2003 02:38 GMT
In reply to Comment 11 (itix):
It was my understanding that there's a new version of it for AOS4

Cheers
PNG icons with WB3.5 & 3.9 : Comment 18 of 34ANN.lu
Posted by Amon_Re on 21-Oct-2003 02:39 GMT
In reply to Comment 15 (IamCleverToo):
Dunno, don't know her

Cheers
PNG icons with WB3.5 & 3.9 : Comment 19 of 34ANN.lu
Posted by Seldon on 21-Oct-2003 05:16 GMT
In reply to Comment 9 (Amon_Re):
Actually, the fact that libraries will have both the old jump-table and the new system, means that old 68k programs will be able to work with NEW PPC libraries. Old 68k libraries should work as always too. Though PowerIcons is another matter. Since it uses most likely the SetFunction() API call to patch the icon.library, we must wait and see if it'll work with the new PPC (I presume) icon.library that will come with OS4 (besides I've heared SetFunction() will change as well). Anyway... that patch is nice and well down, 256 colour icons are ugly on 16/24 desktops. I hope OS4 team will add such functionality or will add PowerIcons' patch as default.
PNG icons with WB3.5 & 3.9 : Comment 20 of 34ANN.lu
Posted by Anonymous on 21-Oct-2003 10:49 GMT
In reply to Comment 12 (Kjetil):
> as for the overall speed gain per functions will probably be like 0.1

Well, if you don't unroll loops, you might arrive at that conclusion. In reality, it will of course be more like 0.0000001 and the claim of improved performance is hocus-pocus: You are talking about one single additional instruction at the beginning of library functions. The entry code to a function is not what consumes time. It is what happens IN functions. Those loops that get get excuted thousands of times, to blit, to rotate, to encode, to do all the time consuming things.
PNG icons with WB3.5 & 3.9 : Comment 21 of 34ANN.lu
Posted by Anonymous on 21-Oct-2003 10:56 GMT
In reply to Comment 19 (Seldon):
> Though PowerIcons is another matter. Since it uses most likely the SetFunction() API call to patch the icon.library, we must wait and see

If AOS4 does not support m68k-style SetFunction(), it is dead in the water. That function is critical, not only for hack and patch style programs but for serious applications. Leaving it out has a major impact on compatibility. The people designing AOS4 are smart people, so it will work with AOS4. If not: hasta la vista, AOS4. By the way, MorphOS supports SetFunction() seamlessly.
PNG icons with WB3.5 & 3.9 : Comment 22 of 34ANN.lu
Posted by Kjetil on 21-Oct-2003 12:35 GMT
In reply to Comment 20 (Anonymous):
Well it quite normal to execute library functions whit inn loops as well as out side loops, so the time gain should be extra on loops if they execute functions whit in the loop.

The library function can contain loops, they do not need to contain loops, library functions on OS level will normal just add data to existing structure of data, this do not require a loop, nor do basic gfx operations, more advanced functions like drawing a line or box will need a loop, it depends on how many times it need to loop as well, so basic my numbers are only as an example of how it can benefit the overall OS performance, by optimizing some thing as frequently used as library API structures.

If you do the calculations, % gain per instructions

1 instruction is removed
x number of instructions

(1 * 100) / x
(1 * 100) / 50 = 2%
(1 * 100) / 100 = 1%
(1 * 100) / 200 = 0.5%
(1 * 100) / 300 = 0,33%
(1 * 100) / 400 = 0,25%
(1 * 100) / 500 = 0,2%
(1 * 100) / 10000 = 0,01%
(1 * 100) / 20000 = 0,005%
(1 * 100) / 30000 = 0,004%
(1 * 100) / 40000 = 0,0025%
(1 * 100) / 50000 = 0,002%

as you can se the number are not linier they curve your number are far to pessimistic for the average % gain per library function, you can probably never calculate the right performance gain as simple as I done whit my example. You need to do real life test to measure the gain, than again we have no version of AmigaOS4.0 whit out the new API so the real life performance gain can never be found!
PNG icons with WB3.5 & 3.9 : Comment 23 of 34ANN.lu
Posted by Huh!? on 21-Oct-2003 14:19 GMT
In reply to Comment 21 (Anonymous):
Which serious app is using SetFunction?
PNG icons with WB3.5 & 3.9 : Comment 24 of 34ANN.lu
Posted by Georg Steger on 21-Oct-2003 14:28 GMT
In reply to Comment 12 (Kjetil):
> small correction, the so called 'PPC jumptable' do not contain the 68k nor the PPC jump instruction so it's simply a table of
> functions whit in the library,
>
> in fact this what makes the new library header faster then the old one, one less instructions

Even with a jumptable containing jmp opcodes, you do not necessarily
need to have library calls jump to the address of the LVO entry (the
jmp opcode). Example:

instead of a

jsr -30(a6) /* which then does jmp 0x12345678 */

you can also do:

move.l -30+2(a6),a0
jsr (a0)

dos.library is of course an exception.
PNG icons with WB3.5 & 3.9 : Comment 25 of 34ANN.lu
Posted by Kjetil on 21-Oct-2003 16:36 GMT
In reply to Comment 24 (Georg Steger):
Well it quite neat your example in 68k assembler code and it bit extra fuss, but how neat is it in C program code?

most program are written in C code in the modern days to make the program translate a program form Linux to Amiga and from Amiga to Mac or what ever.
PNG icons with WB3.5 & 3.9 : Comment 26 of 34ANN.lu
Posted by Georg Steger on 21-Oct-2003 18:32 GMT
In reply to Comment 25 (Kjetil):
Well, compilers like gcc "implement" library calls through
inline assembly anyway:

#define PutMsg(port, message) \
LP2NR(0x16e, PutMsg, struct MsgPort *, port, a0, struct Message *, message, a1, \
, EXEC_BASE_NAME)

#define LP2NR(offs, name, t1, v1, r1, t2, v2, r2, bt, bn) \
({ \
t1 _##name##_v1 = (v1); \
t2 _##name##_v2 = (v2); \
{ \
register struct Library *const _##name##_bn __asm("a6") = (struct Library*)(bn); \
register t1 _n1 __asm(#r1) = _##name##_v1; \
register t2 _n2 __asm(#r2) = _##name##_v2; \
__asm volatile ("jsr a6@(-"#offs":W)" \
: /* no output */ \
: "r" (_##name##_bn), "rf"(_n1), "rf"(_n2) \
: "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \
} \
})

But you can actually do that even without assembly. Basically
you just need to type cast the function address pointer in the
LVO to a "pointer to a function with register params xyz ..."
and call it. AROS does that. It looks kinda complicated when
looking at all the macros, etc., but it's basically like this:

struct LVO
{
UWORD jmp_opcode;
ULONG func_addr;
};

#define PutMsg(port,message) \
(\
(void (*)(register struct MsgPort *_port asm("a0"), register struct Message *_message asm("a1"))) \
( ( ((struct LVO *)ExecBase) [-61]).func_addr ) \
(port,message) \
)
PNG icons with WB3.5 & 3.9 : Comment 27 of 34ANN.lu
Posted by nasu on 21-Oct-2003 19:49 GMT
In reply to Comment 3 (Peter Gordon):
Nice work!

Any chance you could make Birdie/Visual Prefs/icon set etc. for dl?
PNG icons with WB3.5 & 3.9 : Comment 28 of 34ANN.lu
Posted by Huh!? on 21-Oct-2003 19:52 GMT
In reply to Comment 24 (Georg Steger):
dos.library is no exception to this since OS2.0!
PNG icons with WB3.5 & 3.9 : Comment 29 of 34ANN.lu
Posted by Damo Eurock on 21-Oct-2003 23:42 GMT
What a nifty bit of software this is - I like it. Now to get some PNG icons...
PNG icons with WB3.5 & 3.9 : Comment 30 of 34ANN.lu
Posted by Anonymous on 22-Oct-2003 10:01 GMT
In reply to Comment 21 (Anonymous):
Serious applications SHOULD NOT use Setfunction. SetFunction is the last thing which you should use, if there is no otherway to do what you want. There is some rare situation when you want to use, it but you really should avoid using it.
PNG icons with WB3.5 & 3.9 : Comment 31 of 34ANN.lu
Posted by Anonymous on 22-Oct-2003 10:32 GMT
In reply to Comment 22 (Kjetil):
> as you can se the number are not linear they curve your number are far to pessimistic for the average % gain

The CPU can execute millions of instructions per second but no program calls millions of library functions. It's just not going to make a difference, get over it. As to your numbers: Using percent rather than a factor makes them look better by a factor of 100 than mine. For example, when you say it's 0.02% faster, than it's faster by a factor of 0.0002. In a 1.5 hour benchmark, you might see 1 second difference.
PNG icons with WB3.5 & 3.9 : Comment 32 of 34ANN.lu
Posted by StAn on 22-Oct-2003 15:56 GMT
In reply to Comment 31 (Anonymous):
Actually, it would be faster by a factor of 1.0002 :-)
PNG icons with WB3.5 & 3.9 : Comment 33 of 34ANN.lu
Posted by StAn on 22-Oct-2003 17:36 GMT
In reply to Comment 30 (Anonymous):
Of course, SetPatch is not a serious application, I suppose.
PNG icons with WB3.5 & 3.9 : Comment 34 of 34ANN.lu
Posted by Anonymous on 22-Oct-2003 23:17 GMT
In reply to Comment 33 (StAn):
> Of course, SetPatch is not a serious application, I suppose.

Well, it's obviously not an application but a small patch shipped with the OS (and OS4 can have it's own native SetPatch). But *if* OS4 does not allow m68 applications to set functions we would need new native versions of quite a few useful utilities like SnoopDos and other montitoring programs (particulary useful to developers). Some of those are just not available for porting. Btw, even big applications use SetFunction(): Run kiskometer from Aminet for a few days to find out.
Anonymous, there are 34 items in your selection
Back to Top