I worked at a startup, Javaground [1], where we ported and developed games for J2ME phones. We had a room full of dressers full of all the different mobile phones of the day.
Each phone had different implementation quirks, such as variable audio delay when playing a file, audio/image formats that were faster/slower, odd button events (some used press, some used ondown, some had no ondown, etc). A lot of our work was learning all of these quirks and implementing them into the automated porting platform.
Then the iPhone came out and started to build momentum.
I still have my old flip phone, the one with the least quirks, with some of our games on it.
Each phone had different implementation quirks, such as variable audio delay when playing a file, audio/image formats that were faster/slower, odd button events (some used press, some used ondown, some had no ondown, etc). A lot of our work was learning all of these quirks and implementing them into the automated porting platform.
Then the iPhone came out and started to build momentum.
I still have my old flip phone, the one with the least quirks, with some of our games on it.
1: https://en.wikipedia.org/wiki/Javaground