-
In this blog post, we’ll dive deep into the implementation of a cooperative multitasking scheduler for STM32 microcontrollers. Cooperative multitasking, unlike preemptive multitasking, relies on the tasks themselves to yield control periodically, making it particularly suitable for real-time applications where predictable execution is crucial. We’ll explore the design, implementation, and debugging of a lightweight scheduler capable of managing multiple tasks efficiently. [Read More]
-
Building a Custom Gameboy Color Emulator in C++
Dive into the intricacies of emulating classic gaming hardware
By Lester Knight ChaykinIntroduction [Read More] -
Moore’s Law - Legacy, Limits, and the Future of Computing
A Deep Dive into the Past, Present, and Future of Moore’s Law
By Lester Knight ChaykinFor more than half a century, Moore’s Law has shaped the trajectory of technological progress, guiding the design and production of ever more powerful and affordable computers. However, as the semiconductor industry approaches fundamental physical limits, Moore’s Law is beginning to slow. In this post, we’ll explore the history, mathematics, technological drivers, and future challenges of Moore’s Law, while also looking at potential innovations that could take computing beyond this famous trend. [Read More] -
Building a Gameboy Color Emulator - Performance Optimization and Stability
Improving Speed, Reducing Lag, and Ensuring Stability
By Lester Knight ChaykinIn this post, we’ll focus on optimizing the performance of our Gameboy Color emulator. Performance optimization is crucial for ensuring the emulator runs smoothly, with minimal lag, across a wide range of devices. Additionally, we’ll cover how to make the emulator more stable by managing resources effectively and preventing crashes. [Read More] -
Building a Gameboy Color Emulator - Palette, PPU, and Memory Bank Controllers
Rendering Colors, Managing Memory Banks, and Handling Graphics
By Lester Knight ChaykinIn this post, we’ll dive into some critical systems of the Gameboy Color emulator: the Palette, Pixel Processing Unit (PPU), and Memory Bank Controllers (MBCs). These components are responsible for rendering the game’s colors, handling graphics output, and managing memory switching for larger game cartridges. [Read More] -
Building a Gameboy Color Emulator - Graphics Rendering
How to Emulate the Gameboy Color’s Display
By Lester Knight ChaykinIn this post, we’re going to explore how graphics are rendered in the Gameboy Color emulator. We will dive into the Gameboy’s LCD display, VRAM, and the process of drawing tiles and sprites to the screen. This is a critical part of the emulator, as it is responsible for rendering everything you see during gameplay. [Read More] -
Building a Gameboy Color Emulator - Audio Emulation
Recreating the Sound of the Gameboy Color
By Lester Knight ChaykinIn this post, we’ll explore how to emulate the sound hardware of the Gameboy Color. The Gameboy uses multiple sound channels to generate different types of audio, and accurately reproducing this is key to making the emulator feel authentic. We’ll go over how sound channels work, how waveforms are generated, and how to integrate audio into the emulator. [Read More] -
Building a Gameboy Color Emulator - CPU Execution and Memory Management
Diving Into CPU Instructions, Timers, and Memory Mapping
By Lester Knight ChaykinIn this post, we will dive deeper into how the CPU processes instructions in the Gameboy Color emulator, how timing is managed, and the intricacies of memory mapping. Now that we’ve set up the emulator and mapped the inputs, we’ll focus on the core components that make the emulation work—specifically, how the CPU fetches and executes instructions and how the memory is structured. [Read More] -
Building a Gameboy Color Emulator - I/O Registers and Save States
Handling Input/Output and Saving Game States
By Lester Knight ChaykinIn this post, we’ll explore how to manage input/output (I/O) in the emulator, focusing on how the Gameboy Color interacts with buttons, timers, and hardware registers. We’ll also cover the implementation of save states, a feature that allows you to save and load game states at any point in time. [Read More] -
Building a Gameboy Color Emulator from Scratch
A Deep Dive into Gameboy Color Emulation
By Lester Knight ChaykinIn this blog post, I will explore how to build a Gameboy Color emulator from scratch using Dart and Flutter. We’ll cover essential parts of the emulator, including CPU handling, gamepad input, memory mapping, and rendering. I’ll guide you through the key components of the project and share code snippets to explain how they fit together. [Read More]