I?m unable to do direct video access to screens, because AmigaOS does not have a GBAR colour format (Green, Blue, Alfa, Red), so colours are messed up if I try, maybe it works better in 16bit I have not tried, I have therefore decided to render in to a bitmap whit BltBitMapRastPort() this way colour conversion is done automatically (but it?s slower).
Why on earth are they using such a strange colour format? Surely we've got enough variants as it is.
@Hans Well that?s how ARGB PowerPC / MC680X0 format looks in Intel format, I have tried optimizing a bit, but 32 bit is slower.
@Elwood I have tried writing my own Blit command, but it does not give and major effect.
@all Some good news, in 16bit it a lot faster, but no direct video.
A possibility for 16bit / 32bit direct video is to allocate memory page, then set the memory area as read only, set up fault handler, and implement some kind byte swap on write, I have no idea how fast this can be, I like do some experiments but its a big job to implement (I think).
Edited by LiveForIt on 2007/9/27 17:44:15
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
FYI: the byte order is reverse between big and little endian modes (not the word order).
ARGB (BE) and BGRA (LE) is constructed formats, while GBAR is what you get when you having (BE) and (LE) problems,
Int32 the words are in revere order. Int16 the bytes the bytes are reverse order. Bytes are the same in Intel and Motorola format.
Ok, but why are there any endianness issues here? PowerPC and 68k use the same endianness. Is the emulator converting things to intel format somewhere along the line? If so, that should be removed, as it's unnecessary.
Wrong, that's the case with PDP endian (0x1234 big endian = 0x3412 PDP endian), but little endian is completely reversed (0x1234 big endian = 0x4321 little endian).
I'm currently adding RDB support to Basilisk 2, because I hate the current format where you need to add start block, and size of partition in blocks, in Amiga world the partitions are defined as LowCyl, HiCyl, this means that you need to calculate where the partition starts.
Start in blocks = LowCyl * heads * sectors_per_track. Size in blocks = (HiCyl ? LowCyl) * Heads * sectors_per_track
It?s so easy to do some thing wrong, and when you repartition your disk, you might get big problems whit the old format.
That?s way decided to change the format in configuration file to
disk /dev/device/unit/devicename
device=a1ide.device unit=0 devicename=mac0
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
I was wondering, how does Basilisk's networking support compare with Shapeshifter's?
I think works in the same way; I know there some limitations, on what type of packages that can be sent, for example I don?t think ping works, general TCP/IP packages should work, but I have not tested this.
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.