It's not quite as simple as 'this thing uses that core'.. each application (process) has multiple threads which each do their own processing, i.e. one thread for physics and another thread for game logic, or there could be 10 threads for physics and 5 for game logic. It all depends on how the game is coded.
Windows will automatically allocate each thread to an appropriate core depending on the load of each one and switch them about as necessary.
So generally all of your cores are used by everything at some point. Games that support multiple cores are just games that have multiple important threads, and hence can use more than one core at any given moment. Depending on the workload at the time both threads may end up on the same core or they may not. It doesn't really make any difference. I think the switching happens very quickly and all the time (although I'm not sure about that).
Note that there isn't much point in setting affinity for anything other than compatibility - windows is more efficient than choosing it yourself afaik. Although if there's any benchmarks that say otherwise I would be interested to see them