It's my pleasure to annouce that Poseidon is available as a new version V2.2. It can be downloaded from my website. Major HID class update! Now supports Joypads! Registration process open again. Read more in the full news body.
Dear Poseidon users,
it's my pleasure to annouce that Poseidon is available as a new version
After my seven months break due to my diploma thesis, I have reworked the
HID class quite a bit. It now supports digital and analogue joypads via the
lowlevel.library. Moreover, the class now supports changing of HID Output
and Feature items (i.e. for keyboard LEDs or Force Feedback/Rumble
joypads). Input values for items can now be scaled and clipped and flipped.
There is support for local and global variables. The value that is used for
the action can now also be redirected to origin from these variables,
timers, click counts, etc, or randomly (e.g. for auto fire). Actions can
now be triggered upon definable condition codes, making it even more
powerful (you want to do a special action on three clicks with the middle
mouse button, or when shift is pressed?, no problem!). The default keyboard
mapping can now also be changed. All this comes with a price -- the GUI is
now a bit more complex. But no worries -- you don't have to use these
features, if you don't like to. The english version of the manual has been
updated a bit to reflect the changes -- unfortunately, the german
translation (done by Michael Böhmer) has been lost in a crash. I will
update the guide accordingly, but this will take some more time.
Several classes have been updated, such as the massstorage.class. It now
has some new default settings and fall back options.
The poseidon main library now fixes the problems created by broken Olympus
cameras not being bound to the MSD class. It now also tries to assign
better names to devices that don't come with string descriptors.
Trident has been rewritten into subclasses for the MorphOS mprefs and is
now a bit more stable (I hope).
The installer script has been slightly updated and now contains spanish
strings, kindly translated by Dámaso Domínguez.
The AddUSBHardware command now has an "ALL" option, allowing to take the
stack offline by just issuing an "AddUSBHardware REMOVE ALL" line -- handy
for game starting scripts.
Finally, the device driver for the Algor has been optimized a bit, and also
a bug had been fixed.
That's it concerning the update (see below for changelog).
Now for something completely different. In August, I stopped taking
registrations, because Elbox treated me badly (as a summary) and I hoped,
that they would change their mind. I should have known better. They kept
selling their cards, even though they knew that the users wouldn't be able
to use them. They didn't care at all about the users and their fate.
As of today, the registration process is open again. Keyfiles can again be
obtained from me directly (cash or bank transfer, no credit cards!). Please
note that the licence fee has been increased a bit to reflect the new
features added. Of course, no new keyfile are required for current users to
use the V2.2 version.
IOSpirit will offer a bundle for ArakAttack users soon, details will be
announced by IOSpirit in a few days (please don't bugger them right now).
ArakAttack currently works on Amithlon and OpenPCI supported PCI bridge
boards for OHCI and UHCI PCI cards (and onboard USB). EHCI (USB2.0) is
being implemented and will be available later.
ArakAttack currently does not work on Mediator boards, but means are being
prepared to get it running on these machines to offer a high-quality USB
driver for any PCI card (including the Spider).
That's it for now. Hope you will enjoy the new Poseidon release and have a
merry xmas and a happy new year. Who knows, maybe we will see many nice
things happing during 2004. Such as the AmigaOS4 release or the Pegasos II.
Stay healthy! There's still much to come.
----------------------------- changelog -----------------------------------
o Querying DA_CurrCfg now calls the USB command to be sure that the
current config number is up to date (suggested by Uwe Ryssel). Removed
that again, because he reported it to be of no use.
o Fixed a race condition for interface and device bindings. Caused some
havoc on my Pegasos with four root hubs during PsdRestart.
o Added Epson mass storage interface patch for printers with card slots.
o Poseidon no longer ignores configurations, if the config was set
without error but nevertheless returns a bad GetConfiguration number.
Fixes problems with broken Olympus cameras.
o Implemented DA_CloneCount. Mounting two devices with exactly the same
VendorID, ProductID and serial number will give it a unique clone count
number (e.g. required when plugging in two joypads from the very same
vendor -- this still allows different prefs for the second one).
o Due to popular demand, the "welcome" line has been cosmetically fixed.
o Now generates more meaningful names for the device name according to
the interface class, if the device cannot say its name itself.
o Empty device descriptor strings are now considered to be invalid.
o More rewriting for subclasses.
o Lots of internal changes, I cannot remember.
o Lots of fixes for the subwindow handling.
o Automatic updating works again.
o Reintroduced Poseidon-Logo to USB.mprefs.
o Generally, more robust.
o Added Online/Offline menu items.
Installer script 1.8
o Added spanish installer strings and licence translation courtesy of
o Small changes for better ArakAttack support.
o Added detection of Sitecom serial adapter (reported by Jens Bagh).
o Added default settings for epson scanners, as requested by FelixS.
o Simple SCSI patchflag now disables geometry scan.
o Added two new GUI option for patchflags.
o Fixed a misplaced CloseLibrary() reported by jacaDcaps
o Improved fssm check as suggested by Heinz Wrobel.
o Changed default settings to CMD6->CMD10, no initial reset and simple
o Restricted assignment of mouse buttons and pointer movement to mouse
and tablet items (connecting joypads don't block the mouse anymore).
o Raw keymap strings enhanced to be user readable and more friendly.
o Added missing keyboard mapping stuff.
o Added option to disable all actions.
o Added option to show the current values of an item.
o Added absolute to relative value translation (i.e. for joypads
o Added clipping of values.
o Added scaling of values.
o Added pre-condition codes for actions (you probably do not grasp the
power that's behind this tiny line, but just read the manual).
o Added input redirection for action values.
o Added optional tracking of key events for keyboard mapping.
o Generated default actions for joypads.
o Added patching of lowlevel.library/ReadJoyPort() for digital joystick
emulation (works great on MAME).
o Added a button to copy an existing action (might come in handy).
o Introduced a new trigger if the value returned was out of bound (needed
for hatswitch, stupid stupid design flaw of the HID specs IMHO).
o Added default actions for digital pads (hatswitches).
o Added default actions for analogue sticks. Warning: if you have got
a joypad with hatswitch (digital pad), you need to disable the
hatswitch default actions, because they will interfere with the
analogue stick handling (or use another port for it? :) ).
o Added a column for the current/last value in the items list. It does
not get updated automatically, except for the selected item, if you
enable "Report current values".
o Optimized action updating process when switching between two items
(e.g. in track events mode).
o Fixed reading of item arrays that were not one or eight bits wide.
Obviously, this code was never used (as I did not encounter one
device yet that uses arbitarily sized items for an array).
o Added output and feature items and actions! Yay! This means you can
now toggle the leds on a keyboard, toggle the force feedback (rumble)
of a joypad, send out all kinds of data to the device.
o Added default actions for caps lock led.
o Added a new report/collection with two items to add actions on
connection and disconnecting (i.e. variable initialization or sound
o Lots and lots of internal changes I cannot quite remember.
o Source code for the HID class is now about 450 KB, just to get the
o Last Action Hero subtask is now created on demand. This fixes the
problems (reported by Hartmut Schulze) of the task not being generated
at boot point (FlashRom), due to the lack of some of the required
o Accepts now short packets on recieving without outputting an error
o Now searches in MOSSYS:Classes/USB instead of SYS:Classes/USB,
o Added an ALL option. When used for adding hardware, all units are
added until one fails. When used on REMOVE, it removes all active
USB controller hardware, effectively switching off the stack.
o On removal, checks only the given device name and not the path as
requested by Günther Nikl.
o Fixed a bug with packet size calculation on interrupt endpoints with
MaxPktSize != 2^x. Sorry!!!
o Optimized interrupt ETD allocation. Turned on immediate interrupts for
all endpoints. This should stop the performance loss some people have
reported when connecting hubs.
o Now also returns IDStrings for Devices and Interfaces.
o Properly reports Application Bindings.
o Outputs a google search line ;)
o Replaced printf by Printf (smaller binary).