▲ | q3k 6 days ago | |||||||||||||
Ooh, I have a lot of questions if you're willing to answer them :). I've been reverse engineering the original iPod software for the iPod Nanos for some time now, and I've seen the interface to 'eApps' (what they seem to call loadable applications) from the OS point of view [1], but I've always wondered about the app developer experience. What was the SDK/toolchain like? Did you have any way to test the software in an emulator/simulator on a PC? What was debugging like? Was the iPod software/hardware you were developing against in any way special? [1] - IIRC after the binary is decrypted, loaded into memory at a fixed address, and a symbol table (based on numeric IDs, not strings) is used to populate a trampoline with function pointers that the app requested. There seems to be no privilege separation between the app and the rest of the OS, as is the case for the iPod software in general. | ||||||||||||||
▲ | fidotron 6 days ago | parent [-] | |||||||||||||
TBH had I known too many of the specifics of the platform by now they would be forgotten or I wouldn't be able to mention them! These games were largely heavily derived from their Brew/WinMo/Symbian versions, which were (subset of) C++ games developed on PCs and then retargeted to embedded devices using compilers with annoying licensing servers. Almost everyone that did this enough had their own PC runtime, and would barely touch any device/platform specific emulator even if it existed, a situation that remained the case until Unreal/Unity took over. > There seems to be no privilege separation between the app and the rest of the OS, as is the case for the iPod software in general. This was/is common for most RTOS type environments where MMUs were not a thing. For example, the whole point of Brew and J2ME was to provide some level of separation prior to the later Symbians and then Android/iOS etc. | ||||||||||||||
|