I recently had and solved this problem. I am posting this for reference.
I was playing Project Reality mod, by mistake I tried to join a vanilla bf2 map.
BF2 shut down to do a mod switch (this is normal when switching between mods)
It did not come back!
Now whenever I tried to play, the BF2 splash screen comes up, the CD is checked - and nothing else.
There is a BS2 process running, but the game never launched.
When I went to logout or shut down I would get
BF2 Memory Error
memory.dll: thread xxxx is deallocating main thread memory
I read forum posts that reported that an uninstall and re-install of BF2 would not solve this problem
The problem was in the profile stored under My Documents
I emptied the My Documents\Battlefield2 directory and started the game - it re-created this directory.
Now the game works again. I recovered this directory from a backup.
I hope this helps someone in the future.
I was playing Project Reality mod, by mistake I tried to join a vanilla bf2 map.
BF2 shut down to do a mod switch (this is normal when switching between mods)
It did not come back!
Now whenever I tried to play, the BF2 splash screen comes up, the CD is checked - and nothing else.
There is a BS2 process running, but the game never launched.
When I went to logout or shut down I would get
BF2 Memory Error
memory.dll: thread xxxx is deallocating main thread memory
I read forum posts that reported that an uninstall and re-install of BF2 would not solve this problem
The problem was in the profile stored under My Documents
I emptied the My Documents\Battlefield2 directory and started the game - it re-created this directory.
Now the game works again. I recovered this directory from a backup.
I hope this helps someone in the future.