Hi, I’m George Morgan

I like to do awesome projects that involve both hardware and software.

Check out my latest project at flipper.io.

Resume

You can find my resume here.

GitHub

I publish many of the projects that I work on GitHub.

Embedded Operating System

View the souce code to my embedded operating system and development tools at https://github.com/flipper-io/flipper.

Embedded Development Platform

View the hardware CAD files for my embedded development platform at https://github.com/flipper-io/carbon.

Email Me

george@george-morgan.com


My Projects

r64 - A Nintendo 64 emulator written in Rust.

I wanted to learn how to do low level CPU emulation in Rust, so I decided to create a VR4300i emulator using the programming language. As some of you may know, this is the RISC MIPS64 CPU used in the Nintendo 64. After hacking at the CPU for a while, I decided to turn the project into a “verbose and unoptimized Nintendo 64 emulator”. The project has no goals of cycle accurate emulation, supporting more games than Super Mario 64, or competing with established Nintendo 64 emulators. This project was simply an execrise to create the foundation of a more complex console emulator to superscede my NES emulator.

You can check out the project here.

My Publications

A Multi-Architectural Approach to the Development of Embedded Hardware

Download

This paper outlines the steps that I took to create an embedded development platform, called Flipper, from scratch. In this paper I describe the methodologies that I used to design the hardware, firmware, and general architecture of the platform. This project is open source and is available on GitHub here.

Operating System Design and Development Continued

Download

This project was a continuation of the project below. This paper describes the performance improvements that arise from writing the operating system in an object oriented programming language.

Reflective, Object Oriented Operating System Kernel Design and Development for the ARM Architecture

Download

This paper outlines the design decision that were made to create a prototype object oriented operating system in Objective-C. The operating system was written to run on an ARM processor emulated through QEMU.