So firstly you should find an emulator for whatever you want to play on.
There are many for desktop and mobile devices.
Check[here](https://emulation.gametechwiki.com/index.php/Main_Page) for a list of all the available consoles and their various emulators.
Next what game do you want to play?
[This](https://r-roms.github.io/) is the like the homepage for a shit ton of roms.
Some of the more [popular](https://r-roms.github.io/megathread/popular/) roms are there and other various list like [Sony](https://r-roms.github.io/megathread/sony/) [Nintendo](https://r-roms.github.io/megathread/nintendo/)
After narrowing down your selection you will end up on [myrient](https://myrient.erista.me/) i assume this is just some dope person hosting all these so if you get some use out of it, think of [donating](https://myrient.erista.me/donate/) they even take corn, but other shitcoins too (but thats not the focus here)
Once you download the Rom of the game you want, you will get a compressed (zip) folder, unzip it and within it will be the rom, most systems will identify your emulator and use it open the game. If not, launch the emulator and within it should be an option to open a file, open the file in the unzipped folder.
Enjoy
So you want to Mod?
So every Mod, is a mod for a specific game [ex. Pokemon Blue, Pokemon FireRed, Super Mario Bros.]
so it requires you to get the Rom for that base game, the mod itself, and a tool to patch it.

There is an online tool to easily [patch ](https://www.marcrobledo.com/RomPatcher.js/) the mod to the ROM. IMPORTANT, this will not change any naming, Id recommend having a folder with the base game roms, and a folder for the mods, and lastly a folder for the newly modded roms. Make sure to name or just save the game in modded roms folder after the patch.
Below are a few resource to find various Pokemon Rom mods(sometimes called hacks)
* [r/PokemonROMhacks](https://www.reddit.com/r/PokemonROMhacks/)
* [Good Compilations of Hacks and Resource/Guides ](https://www.pokemoncoders.com/best-pokemon-rom-hacks/)
Personally,
[Pokemon Unbound](https://www.pokemoncoders.com/pokemon-unbound/#Pokemon_Unbound_V2_Download) is considered the best most polished hack.
it runs on Pokemon Fire Red.
[Pokemon Emerald Rouge](https://www.pokemoncoders.com/pokemon-emerald-rogue/#Download_Pokemon_Emerald_Rogue) is a cool take on the popular Rougelite genre.
This runs on base game Pokemon Emerald