This specific one only works on a PS2. The general idea (save, reload, reset RNG, fight) works on every platform, but the actual manipulation slightly differs on PS1, emulator, etc.
I used a lot of savestates in this game because the RNG is pretty brutal when trying to learn moves and such. And I discovered that the actual learning of the move takes place when the fight starts and is modify if you do different things (like making him put into defense instead of attacking every time). But most of the times, the RNG must be reset if you don't learn a move and try to use a savestate to do so.