Emudev Survey Results

by cqcumbers on 10 Jan 2021

The emulator developer survey has just wrapped up, and as promised the results are summarized here. Many thanks to every one of the 143 people who filled out this survey, this was made possible by your participation. The survey was open for 2 weeks between December 28 2020 and January 10 2021, and most people probably saw it on either the emudev discord or r/emudev on reddit.

Are you currently writing an emulator?

76%
109
Yes
24%
34
No

Single select.

Have you written an emulator?

87%
125
Yes
13%
18
No

Single select. About 75% of the people who responded were working on an emulator at the time, and even more of them have written an emulator in the past.

Have you contributed to an existing emulator project?

28%
40
Yes
72%
103
No

Single select. Emulator development seems to be a solitary effort for most, with only around a quarter of respondents having contributed to an existing project.

How are your emulators licensed?

23%
30
Closed Source
49%
63
MIT
12%
16
BSD
11%
14
GPL2
17%
22
GPL3
6%
8
Apache
18%
23
Other

Multiple select. Despite mostly being developed alone, it seems most developers appreciate the value of open source, with almost half of respondents using the permissive MIT license. Among open source licenses, the distant second in popularity is GPL3, followed by BSD. In the “Other” category, the most popular option was source visible but not licensed.

What systems have you emulated?

64%
88
Chip-8
4%
5
Bytepusher
3%
4
Pac-Man
11%
15
Space Invaders
56%
76
Game Boy or Game Boy Color
15%
21
Game Boy Advance
7%
9
Nintendo DS
4%
5
Nintendo 3DS
28%
38
Nintendo Entertainment System
1%
1
Super Nintendo
4%
6
Nintendo 64
2%
3
Game Cube
2%
2
Nintendo Wii
1%
1
Nintendo Switch
12%
17
Playstation 1
1%
1
Playstation 2
2%
3
Playstation 3
2%
3
Playstation 4
11%
15
Sega Master System
2%
3
Sega Genesis / Master Drive
2%
3
Sega Saturn
3%
4
Commodore 64
4%
5
Apple Macintosh
0%
0
Tamagotchi
1%
1
Original Xbox
1%
1
Xbox 360
6%
8
IBM PC related
16%
22
Other

Multiple select. The most popular beginner systems, Chip-8 and Game Boy, dominate here, followed by the NES. Game Boy Advance, Playstation, and Sega Master System follow. Past the fifth generation of consoles experience gets much scarcer. The write-ins varied a great deal, but included various arcade systems, VAX, and Game Gear.

What system would you recommend to beginners?

68%
91
Chip-8
1%
1
Bytepusher
3%
4
Space Invaders
17%
22
Game Boy or Game Boy Color
3%
4
Nintendo Entertainment System
3%
4
Sega Master System
5%
7
Other

Single select. About 2/3 of respondents would recommend Chip-8 to beginners, and about 1/6 would recommend Game Boy. NES is less popular than expected, perhaps because of the number of mappers needed. The Sega Master System was the most popular of the write-ins, enough so to merit its own category.

What systems are you interested in emulating in the future?

7%
9
Chip-8
5%
7
Bytepusher
4%
6
Pac-Man
4%
6
Space Invaders
29%
40
Game Boy or Game Boy Color
39%
53
Game Boy Advance
22%
30
Nintendo DS
7%
9
Nintendo 3DS
29%
39
Nintendo Entertainment System
29%
40
Super Nintendo
19%
25
Nintendo 64
7%
10
Game Cube
5%
7
Nintendo Wii
7%
9
Nintendo Switch
20%
27
Playstation 1
13%
18
Playstation 2
2%
3
Playstation 3
5%
7
Playstation 4
11%
15
Sega Master System
20%
27
Sega Genesis / Master Drive
5%
7
Sega Saturn
9%
12
Commodore 64
4%
6
Apple Macintosh
4%
5
Tamagotchi
4%
6
Original Xbox
4%
5
Xbox 360
8%
11
IBM PC related
16%
22
Other

Multiple select. The Game Boy Advance tops this list by a decent margin, perhaps because it appears as the logical step up from the ever-popular Game Boy, as well as having a large library of memorable games. The Super Nintendo is second, followed by the NES and Game Boy. The original Sony Playstation and Sega Genesis are next as the most popular non-Nintendo systems. The most popular write-in response was the NEC PC-98, a line of x86-based personal computers big in Japan.

What languages have you used to write emulators?

43%
60
C
58%
81
C++
22%
31
Rust
12%
16
C#
10%
14
Java
6%
8
Javascript
9%
12
Python
6%
9
Assembly
13%
18
Other

Multiple select. C++ is unsuprisingly the most popular language for emulators, but its dominance is somewhat less than expected, with just under 60% of respondents having used it for emudev. The most popular write-in was golang.

Which of the following techniques have you used?

16%
11
Static Recompilation
24%
17
Dynamic Recompilation
27%
19
Cached Interpretation
16%
11
Virtualization
41%
29
Hardware (GPU) Rendering
11%
8
Custom Hardware or FPGA
11%
8
Fastmem
36%
25
Schedulers
16%
11
Coroutines

Multiple select. Note that more than half of the people who responded to this survey did not select any of the provided options. Interestingly, fewer people have experience using dynarecs than cached interpretation, despite (anecdotally) the latter term being less well known. Presumably this is because the latter is more easily added to an existing interpreter. The number of people who’ve used static recompilers and virtualization is also a little suprising, given how infrequently these topics seem to be discussed.

Which frontend libraries have you used?

78%
96
SDL
28%
34
dear imgui
14%
17
Qt
14%
17
Web (HTML/CSS)
7%
8
libretro
20%
24
Other

Multiple select. SDL is the standard front-end choice, used by almost 80% of respondents. Imgui is popular but not quite as univeral, while libretro, though well-known to users, is rarely useful for developers. The most popular write-in was SFML, followed by GLFW and WGPU.

What platform do you primarily develop on?

43%
61
Windows
13%
18
macOS
43%
61
Linux
1%
1
Other

Single select. Developers are evenly split between Linux and Windows as their primary development platform. macOS is significantly less common.

What platforms have you targeted?

73%
101
Windows
38%
53
macOS
76%
106
Linux
9%
13
Android
1%
2
iOS
17%
23
Web
12%
17
Game consoles
12%
16
Embedded device
6%
8
Other

Multiple select. Although one would think their users make up a minority of the general emulation userbase, Linux is the most popular target in this survey, beating out Windows by a small margin. macOS also seems disproportionately represented for its market share, while Android and iOS appear underserved. The write-ins include both non-macOS BSDs and DOS.

If you’ve written assembly, what is your favorite ISA?

21%
20
x86
32%
30
ARM
9%
8
MIPS
5%
5
Z80
12%
11
6502
8%
7
m68k
2%
2
PowerPC
5%
5
MINA
6%
7
Other

Single select. About one third of respondents did not answer this question.

Have you written homebrew or test ROMs?

43%
61
Yes
57%
80
No

Single select. Almost half of respondents have written some homebrew or test ROM, probably for exploring behavior or debugging issues against another emulator. I suspect (from my own experience) most of these are not made public, though.

Have you written hardware documentation?

22%
31
Yes
78%
109
No

Single select. Writing human-readable hardware documentation is less common, involving less than a quarter of respondents. Since many developers gravitate towards already well-documented systems, this could be due to lack of original content to write about, as well as lack of time and interest.

How useful do you find unofficial docs, as compared to official ones?

62%
83
Essential
26%
35
Somewhat better
11%
14
Somewhat worse
1%
1
Unnecessary

Single select. People really appreciate unofficial documentation, with 62% finding them essential for writing an emulator, and nobody calling them unnecessary - which perhaps speaks to how incomplete and inaccurate official documentation tends to be for most systems.

What topics would you like to see more written about?

39%
51
Interpreter design
68%
90
Recompiler design
57%
76
Graphics pipeline
50%
67
Reverse engineering
42%
56
Debugging process
7%
9
Other

Multiple select. Lots of people are eager for more articles about recompilers, though there aren’t many experts with time to write, and many possible optimizations to discuss. The graphics pipeline is also a highly requested topic, though this probably has to be more system specific. The most popular write-in response was sound emulation. If you’re interested in contributing an article on these topics and would like help, please get in touch on discord.

Where do you interact with other emulator developers?

70%
90
Discord
72%
92
Reddit
13%
16
IRC
10%
13
Forums
32%
41
Github
12%
15
Twitter
2%
3
Other

Multiple select. As expected from where this survey was posted, most respondents use Discord and Reddit.

How often do you interact with other emulator developers?

31%
42
About once a year of less
30%
40
About once a month
12%
16
About once a week
10%
14
About once a day
17%
23
Multiple times a day

Single select. Most respondents only occasionally interact with other emudevs, and so represent a different slice of the community than one might get only looking at the most active or well-known participants.

How would you rate your interactions with the emulator development community?

0%
0
Very negative
2%
2
Negative
16%
21
Neutral
32%
42
Positive
51%
67
Very positive

Single select. The people who took this survey generally find their interactions with the community positive, despite not interacting very often.

Have you been paid for emulation work?

9%
12
Yes
91%
130
No

Single select. The emulation community is 90% hobbyist, but there is a small minority who have been paid for emulation work. I would assume this mostly consists of hobby projects that have found donors to fund their work, but it could also be from employers like VMWare who develop emulation commercially.

How long have you been writing emulators?

37%
52
Less than a year
18%
25
1 to 2 years
8%
11
2 to 3 years
9%
12
3 to 4 years
7%
10
4 to 5 years
5%
7
5 to 6 years
1%
1
6 to 7 years
4%
6
7 to 8 years
1%
1
8 to 9 years
1%
2
9 to 10 years
4%
5
10 to 15 years
3%
4
15 to 20 years
2%
3
More than 20 years

Single select. Those who answered this survey are largely beginners, with more than a third having less than a year of experience with emulation. Less than 10% have more than 10 year of experience in emulation specifically.

How long have you been programming?

0%
0
Less than a year
4%
5
1 to 2 years
6%
9
2 to 3 years
4%
6
3 to 4 years
9%
13
4 to 5 years
9%
12
5 to 6 years
9%
13
6 to 7 years
3%
4
7 to 8 years
2%
3
8 to 9 years
5%
7
9 to 10 years
16%
22
10 to 15 years
13%
18
15 to 20 years
20%
28
More than 20 years

Single select. It seems most emulator developers have lots of experience writing other software - almost half of respondents had more than 10 years of experience in programming.

What country do you live in?

1%
1
Argentina
2%
3
Australia
1%
1
Austria
2%
2
Belgium
2%
3
Brazil
1%
1
Canada
1%
1
Denmark
1%
1
Estonia
2%
2
Finland
3%
4
France
4%
5
Germany
2%
2
Greece
2%
2
Hungary
1%
1
India
1%
1
Israel
2%
3
Italy
1%
1
Japan
1%
1
Lithuania
2%
3
Netherlands
1%
1
New Zealand
1%
1
Norway
2%
2
Poland
1%
1
Portugal
1%
1
Saudi Arabia
2%
2
Slovakia
1%
1
Spain
4%
5
Sweden
1%
1
Switzerland
2%
2
Turkey
14%
18
United Kingdom
44%
59
United States
1%
1
Vietnam

Single select. Most developers are from the United States or United Kingdom, and the remainder are largely from European countries. 3% are from South America, 3% are from Australia or New Zealand, and 5% are from Asia, including Turkey.

How old are you?

3%
4
Under 15 years old
20%
27
15 to 19 years old
25%
34
20 to 24 years old
15%
21
25 to 29 years old
16%
22
30 to 34 years old
12%
16
35 to 39 years old
5%
7
40 to 45 years old
5%
7
Over 45 years old

Single select. Emulator development may seem to attract younger people than the wider programming community, but not by that much. The average American Stack Overflow user is about 34, while our global median age is in the 25-29 range.

What is your gender?

5%
7
Female
92%
125
Male
3%
4
Nonbinary

Single select. The emulation community seems to be about 90% male, which is roughly the same as on Stack Overflow. Nonbinary representation seems a bit higher than average and female representation a bit lower.

Are you transgender?

5%
7
Yes
95%
129
No

Single select. About 5% of those surveyed were transgender.

Are you a student?

34%
47
Yes, full time
5%
7
Yes, part time
61%
85
No

Single select. Contrary to the stereotype of emulator developers as students with lots of free time, only a third of those surveyed were full time students.

What is the highest level of education you have completed?

13%
17
Less than high school diploma
19%
26
High school diploma
17%
23
Some college
4%
5
Associate's degree
35%
48
Bachelor's degree
10%
14
Master's degree
2%
3
Professional degree
0%
0
Doctoral degree

Single select. Many developers are highly educated, with two thirds having some kind of college degree. However, nobody with a doctorate seems to have the time to write emulators (and answer this survey).

Do you write software professionally?

53%
75
Yes
32%
45
No, but I intend to in the future
15%
21
No

Single select. Professional programmers make up the majority of emulator devs, though not overwhelmingly so. About 30% plan to write software professionally in the future, but the remainder would prefer it remain a hobby.

How frequently do you work on emulators?

30%
41
Less than an hour a week
33%
45
1 to 5 hours a week
19%
26
5 to 10 hours a week
9%
13
10 to 15 hours a week
4%
6
15 to 20 hours a week
3%
4
20 to 40 hours a week
2%
3
More than 40 hours a week

Single select. For most people, emulation is a hobby, and the amount of time respondents spend on it lines up with that. The median is between 1 and 5 hours a week spent developing emulators.

How frequently do you program?

1%
4
Less than an hour a week
12%
16
1 to 5 hours a week
17%
23
5 to 10 hours a week
12%
17
10 to 15 hours a week
13%
18
15 to 20 hours a week
22%
31
20 to 40 hours a week
23%
32
More than 40 hours a week

Single select. People spend a remarkable amount of time programming every week, with nearly a quarter doing more than 40 hours, over a full workweek spent exclusively writing software.

What other kinds of software do you write?

28%
35
Programming languages
25%
32
Operating systems
36%
46
Video games
34%
43
Game engines
35%
44
Embedded software
23%
29
Web frontend
36%
46
Web backend
14%
18
Mobile apps
11%
14
Other

Multiple select. Video games and web backend were the most popular categories of other software people write, followed by game engines and embedded software. Interestingly, emulator developers are more likely to have experience creating programming languages than designing websites, despite the latter being a much more common job. The similarities in how languages and emulators are implemented likely play a role. The “Other” category varied a lot, but included desktop apps and simulation software.

What other communities are you a part of?

30%
14
Speedrunning
19%
9
Esports
9%
4
Chiptune
34%
16
Game decompilation
19%
9
Demoscene
17%
8
Other

Multiple select. About two thirds of respondents did not choose any of the options given for this question. The most popular response was game decompilation, followed by speedrunning. Write-ins included hacking and game collecting.

What are some tools or resources you think emudevs should be more aware of?

Free response. Only a few people answered this question. The responses are difficult to summarize, but many included Ghidra, an open source decompiler and reversing tool.

What do you think the emulator development community should prioritize more?

Free response. These also vary a lot, but many stressed reverse engineering of obscure systems, as well as better documentation and more tests in general.