Session
Schedule FOSDEM 2022
Emulator Development

Fuzzing, or How I Generated 1,000,000 New Processor Test Cases in an Afternoon

Fill your boots. Then fill somebody else's.
D.emulator
Thomas Harte
<p>Most emulator authors will have encountered a test suite; a series of compliance tests that indicate whether their implementation matches original hardware. But these suites tend to assume a lot of working functionality beyond the part they are specifically testing, often being designed by an intelligent human being to test finished emulators.</p> <p>This presentation covers an alternative source and target of tests: random numbers, to test individual processor instructions, so that future emulator authors can test from day one.</p>

Additional information

Type devroom

More sessions

2/6/22
Emulator Development
Roland van Laar
D.emulator
<p>ScummVM reached a milestone with the release of 2.5.0. Version 0.0.1 was released 20 years ago. The latest release was also the first release that included support for a few Director games.</p> <p>MacroMedia Director, later Adobe Director, was a multimedia application authoring platform. Its ease of use led to a huge number of graphic adventure games being written with it. This was the late 90's. Some well known games are the Journeyman Project, Total Distortion and Spaceship Warlock.</p> ...
2/6/22
Emulator Development
Anisse Astier
D.emulator
<p>While writing a Z80 emulator, you might ask yourself: should it be 100% accurate ? Maybe not, if you just want to run old software. But what if you're not and this old software accidentally depends on undocumented behavior ? In this talk we'll explore how, 30 years after its design, a few people on a Russian retro-computing forum reverse engineered an undocumented Z80 register: MEMPTR. And how 6 years later, another even less known secret register was discovered.</p>
2/6/22
Emulator Development
Stefanos Kornilios Mitsis Poiitidis
D.emulator
<p>Emulators, especially ones targeting real time performance, can become very complex, and can present unique debugging challenges - more akin to cpu, operating system and compilers than typical software projects.</p> <p>In this talk I will cover common and not-so-common classes of bugs that manifest themselves in a vast range of emulators (gameboy, dreamcast, x86/64 usermode will be used as examples), and strategies and heuristics I've used over the years to identify, prevent, mitigate, fix ...
2/6/22
Emulator Development
Alexandro Sanchez Bach
D.emulator
<p>The PlayStation 3 features one of the most ambitious and fascinating architectures among video game consoles. Once deemed near-impossible to emulate in real-time, we now celebrate the 10th anniversary of its most popular emulator: RPCS3, a free and open-source software capable of running two thirds of the console's catalogue on PC.</p> <p>This talk describes the hardware and software stack of the PlayStation 3, covering the IBM Cell/B.E. CPU, Nvidia RSX GPU and Sony's CellOS operating system ...
2/6/22
Emulator Development
Stephanie Gawroriski
D.emulator
<p>SquirrelJME is a from-scratch and clean-room built Java Virtual Machine implementation which targets the J2ME/Java ME runtimes which have been historically used for mobile applications such as those running on flip phones. The presentation will go over the unique challenges of implementing a JVM along with differences compared to traditional CPUs. Additionally due to the rapidly changing nature of traditional desktop Java Virtual Machines, backwards compatibility with older byte codes is not ...
2/6/22
Emulator Development
Thomas Harte
D.emulator
<p>A disadvantage of many emulators is that they require the user to know how they should configure a machine — which model, which expansions and peripherals — and what they need to type before they can use their desired classic software. Wouldn't it be nice if the emulator could just figure all that stuff out for you?</p> <p>This presentation covers three means of doing so: ahead-of-time static analysis, runtime dynamic analysis, and brute-force try-them-all parallel execution.</p>
2/6/22
Emulator Development
Warner Losh
D.emulator
<p>Venix/86 was the first commercially available Unix for the IBM PC. PC/IX was the first one that IBM supported, but VentureCom created released this port about the time PC/IX was announced. They ported it to a number of the 'near compatible' systems as well, so for many people the first Unix available on those early 8086/8088 machines was Venix. This included the DEC Rainbow 100B with Venix/86R.</p> <p>A companion project to recreate the sources for Venix/86 from 7th edition tapes now ...