What happens at every startup: - GAMELIST.INI is loaded - INTERFACE.INI is loaded - DIRECTORIES.INI is loaded
When you launch a game: - MAME.INI is loaded - Values stored is DIRECTORIES.INI are copied and overwritten to MAME.INI in memory. (Only core directories values are copied, the other options are discarded to not have conflict with MAME.INI) - the core starts to play selected game using the merged options.
The same method is applied to individual games INI files and/or to VERTICAL.INI, HORIZONTAL.INI which allows you to set different options for example to all VERTICAL games and so on.