Stella is written in the C++ programming language and thus is highly portable.[3] The emulator supports all Atari 2600 cartridge bank switching schemes and has support for nearly all Atari 2600 titles. Support is included for NTSC, PAL and SECAM in 60 Hz/50 Hz varieties, including autodetection of those formats (based on the number of scanlines generated in each frame).

Stella emulates most Atari 2600 peripheral devices, including standard joysticks, paddle controllers, the Atari Video Touch Pad, the Atari Keyboard Controller, Atari Indy 500 Driving Controllers, the CBS Booster-Grip controller, the CX-22/CX-80/AmigaMouse trackball controllers, the Sega Genesis controller, and the AtariVox and SaveKey controllers. Stelladaptor and 2600-daptor support allows real joysticks, paddles, and driving controllers to be used, and support is also included to access a real AtariVox device plugged into a serial port (and actually generate sound from the AtariVox device). Stella does not yet support the cassette-based titles designed to work with the Coleco KidVid cassette player but does have support for titles designed to work with the Starpath Supercharger and Spectravideo Compumate.[4]

Stella includes many facilities for homebrew developers, including an extensive built-in interactive debugger and disassembler supporting breakpoints, read/write traps, etc. Other major features include Blargg TV effects, a cheatcode system, support for user-defined palette files, state loading/saving, hardware-accelerated rendering and effects, event remapping, and an extensive built-in, cross-platform user interface (including a ROM launcher frontend).

JStella, a translation of Stella into Java, allows the Stella emulation engine to run as a Java applet on a web page.