new to arduino board - how to flash atmega8-16

hi evryone,
i'm so new in this development arduino boards. my first project is i wanted to convert my SNES controller to usb.
i found this website SNES/NES gamepad (and mouse) to USB adapter
in here I confused. after read that article, i need the Atmega8 microcontroller, ATMEGA8-16PU to be flash/fill with sort of *.hex program as i understood this program acts like driver so computer will recognize the snes controller.

now, i have arduino uno with 328 chip.
my questions are
can i flash/upload *.hex file to Atmega8-16PU using this arduino uno ? how to do this ?
im thinking, can i directly flash the atmega8 -16pu by take out the 328 chip on uno board and insert the atmega8-16pu straight to the uno board and the flash/upload the hex code program ?
what do i have to do to flash/upload/fill that atmega8-16pu with *.hex code ? is there any tutorial about this ?

second thing, my friend has this arduino pro mini 328 and usb serial adapter.
can i just flash/upload/fill that pro mini 328 with that *.hex code program ? and the rest i just wire up to my snes controller...
im thinking...can i put a *.hex code program that is build to control atmega8 chip on atmega328 chip ? both chips are same right, afterall their bit are difference.
if the hex code is special for atmega8-16pu, can i change/edit the hex code program to work under atmega328 chip ?

thanks for the great help ! :slight_smile: