Domača koda je oblika računalniške programske kode, ki je konfigurirana za delovanje z uporabo določenega procesorja. Natančna struktura kode je nastavljena tako, da se odzove na navodila, ki jih izda procesor. Vse vrste programske opreme delujejo z izvorno kodo in so napisane tako, da delujejo z optimalno učinkovitostjo z izbrano vrsto procesorja ali s procesorji, ki so izdelani tako, da odražajo konfiguracijo določenega procesorja.
Ker je izvorna koda napisana tako, da omogoča popolno funkcionalnost, ko se izvaja v sistemu z uporabo določenih procesnih komponent, bo odločitev za zagon programske opreme v sistemu brez zahtevanega procesorja povzročila omejen dostop do funkcij paketa. V nekaterih primerih programska oprema morda sploh ne deluje.
Eden od načinov za zagon programske opreme z uporabo nezdružljive izvorne kode je uporaba vmesnega programskega paketa, imenovanega emulator, ki v bistvu pretvori signale iz procesorja v podatke, ki jih koda lahko prebere. Tudi z najnaprednejšimi programskimi paketi emulacijske kode pa sta odziv in dosežena stopnja učinkovitosti ponavadi manjša od izvajanja programa v sistemu, opremljenem s pravilnim procesorjem. Pogosto je najboljša možnost prepisati kodo, da se prilagodi procesorju, ki je trenutno v uporabi.
Pomembno je omeniti, da se izvorna koda razlikuje od tistega, kar je znano kot bajtna koda. Bytecode je preveden za izvajanje v načinu navideznega stroja, ki lahko pretvori splošne komponente bajtno kode v bolj osredotočeno izvorno kodo, ki bo delovala s procesorjem v uporabi. Čeprav je bajtno kodo mogoče pretvoriti, ni mogoče izvesti dejanja v obratni smeri in uporabiti ta pristop za izboljšanje ravni združljivosti s tujim procesorjem.
Domača koda se nahaja v vseh vrstah programskih okolij. Sčasoma se je pogostost tega, da ne deluje dobro z različnimi procesorji, začela zmanjševati. To je na splošno posledica dejstva, da so različni procesorji vse bolj konfigurirani za delovanje z enakimi vrstami protokolov in logičnih zaporedij.