
I will list some reasons why games not run on specific platform(s), without intention to be complete (as some problems are still not clarified) or to list them in some order by how frequent they are.
1: Game runs on machine with 512KB, but not on machines with more RAM. This is probably something stupidest possible, but is not so rare, unfortunately.
The reason is always bad programming. In most cases crackers are culprits, but happens by originals too.
Solution can be to try another crack, and more perspective: using one of small utils to set machine to act as has only 512K - for ST, STE. Get it here: http://www.atari-forum.com/viewtopic.ph ... mu#p115386
2: TOS version related:
2.1: Game is written so that runs on fixed, low RAM locations (not relocatable code). As newer TOS versions reserve more RAM for system, game code will conflict with system, and crash is almost inevitable. Examples: Millennium 2.2, Sapiens.
In some cases game will give message about insufficient RAM at start. Even on machines with 4MB. But game checks actually is there enough free space between system and 512KB.
Possible solutions: running game from AUTO folder. Looking for adapted version. Using Hole.
2.2: Timer C stop problem. It happens on TOS 2.06 , 4.xx (Falcon) . Examples: Space Harrier, Falcon F16, FOTI.
Reason is that Atari changed TOS code by Trap calls, and system will stuck if timer C (200Hz) is stopped by regular Traps.
Solution is: using adapted versions where restart of Timer C is solved somehow. Or running lower TOS version in RAM.
2.3: Sometimes code runs well on some TOS version(s), but not on another one(s). It is mostly because of bad programming (even bugs sometimes), bad system function calls, jumps in ROM and similar.
Solutions: trying with another crack. Looking for patched version. Example: Predator.
3: Hardware related:
Mostly when try running ST(E) games on Falcon.
3.1: Different CPU in Falcon - Stack frame is different by interrupts and Traps. CPU cycles are different. There is cache in CPU. Used stack space is bigger.
Solutions: turning off code and/or data cache. Increasing stack space. Setting CPU clock to 8MHz.
3.2: Falcon uses PMMU table for normal work. It is placed at $700. If some game writes in that area it will crash. Solution is moving of PMMU table in unused RAM.
3.3: PSG shadow registers - Falcon will crash by long writes to PSG (YM) registers. Cure is setting of so called STE emulating bus mode. In some cases it will result with very bad sound, Then only correcting game code may help. Example: Princ of Persia.
3.4: Different video HW registers: screen disalign may happen by direct writing in video base registers. Solution is to use system calls by setting screen base, resolution. There are likely some other problems, as some games crash, freeze by certain points, what needs further investigation.
4. Special, mixed problems: As STE has palette of 4096 colors instead 512 by ST there may happen some problems because of that. Example is Defender of the Crown by which raiding stucks if run on STE. Cure was to correct palette by some pictures where were invalid 12-bit entries instead 9-bit ones. However, it was TOS version related too, since by older TOS versions game worked without stucking (Steem).
Here is one, little older, but very good Falcon compatibility list - we probably have no better so far...
http://www.ppest.org/atari/f_games.htm
to be continued...