Little Sisyphus: A Month-Long NES Platformer Odyssey

2025-02-19

Little Sisyphus, a physics-based platformer for the NES, was developed in just one month for the 2023 NESDev Compo. The game centers around rolling a ball up a mountain, offering challenging gameplay with a unique art style inspired by ancient Greek pottery. The developer details the creation process, from concept to completion, highlighting the use of NESFab, impulse-based and position-based physics, water effects, and music composition. Limitations of the NES hardware led to compromises, but the final product is a polished testament to efficient development and creative problem-solving, even incorporating AI-generated art assets.

Read more

6502 Code Generator Outperforms GCC and LLVM

2025-02-16

A developer built a 6502 code generator that surprisingly outperforms GCC, LLVM, and other compilers. The speed advantage isn't from superior high-level optimizations, but rather innovative code generation techniques. The compiler leverages "illegal" instructions, computationally expensive instruction selection, and space-for-time optimizations. The core algorithm combines instruction selection with register allocation, cleverly using continuation-passing style. It works with a DAG and SSA-form intermediate representation, generating multiple assembly code combinations, pruning with dynamic programming and branch-and-bound, and finally solving a PBQP problem for optimal selection. While employing some "cheats," the compiler shows remarkable benchmark results, offering fresh perspectives on code generation.

Read more
Development

NESFab: A High-Performance Programming Language for NES Games

2025-02-13

NESFab is a new programming language designed for creating NES games. Optimized for 8-bit limitations, it's more ergonomic than C while producing faster assembly code. It boasts easy-to-use libraries, making it simple to get started, whether it's your first or hundredth NES game. Features include automatic bank switching, streamlined asset loading, and integration with the MapFab level editor for increased development speed. While currently in beta, NESFab outperforms compilers like GCC and LLVM in benchmarks, potentially making it the best-performing 6502 compiler available.

Read more
Development