Just out of pure curiosity, I'm wondering how classic 2D games of the 80s/90s (The Legend of Zelda, Super Mario, Warcraft, ...) approached collision detection/resolution.
For some reason I can't picture them doing things like a separating axis test, or using lots linear algebra anyway. Do correct me if I'm wrong, but all that seems to have appeared with 3D graphics.
The alternative I can come up with is the kind of algorithm I came up with in my earlier games; basically some home-grown AABB test. I wouldn't get any information about the time of impact, so to resolve collisions, I had to write some rather fiddly, bug-prone code.
(Thinking a bit about it, I could have made my characters move in fixed step sizes and position all objects as multiples of that, I suppose. Resolving a collision would simply be a matter of undoing the last step. But that seems quite limiting, and a bit difficult to implement with dynamic frame rates.)
Does anybody know how collision detection/resolution was commonly done back in the day?
Edit: Came across this, it's quite interesting: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/