I am splitting this topic from the AFP hacks topic, collecting information on how to code new projects to be compatible with the AFP.
Here's a list of what is known so far, mostly provided by Nukey:
The AFP has the equivalent of one joystick controller. Two player turn games would have to use the same joystick for each player.
The AFP has the console switches as buttons, an these can be repurposed for other functions in a game.
Overly frequent port polling (SWCHA/SWCHB) seems to cause issues
The color/bw switch does not keep its state, similar to the Atari 7800.
DPC+ is completely unsupported
code in VBLANK doesn't seem to work.
Mirrored RIOT addresses are not supported
Superchip RAM is not detected if it is zeroed out.
"Illegal" opcodes are not supported (except for DCP and SBX?)
Early HMOVE does not work
+1 cycle by branch over page does not work
For bB users (like me), the titlescreen kernel sadly does not work on the portable, either, but it shouldn't prevent the game from running.
Any other considerations that I have missed?
Nukey had a thought on how the AFP could be detected in code, but I'm afraid it flew over my head:
In that regard, the AFP should actually be detectable (just do a late PF write that has no effect on real hardware but DOES on the AFP, and check for a sprite collision positioned there)
Could anyone expand on this, or show a code sample that can test if it's running on the AFP?