Update README.md

This commit is contained in:
2026-02-21 23:10:43 +00:00
parent f3912b8071
commit 89b2f67e87

View File

@@ -1,31 +1,20 @@
<div align="center"> # NES Development Test
<br/>
<p>
<img src="resources/img/rxcc.png"
title="rxcc" alt="rxcc logo" width="120" />
<h1>rxcc - Rochester X C Compiler</h1>
</p>
<p width="120">
An x86 C compiler written in Swift.
</p>
<br/>
</div>
<!--Readme header inspired by https://helium.computer-->
# Overview ## Overview
Have you ever woken up one day and said to yourself, "Y'know what? I'd really like to build a compiler today."? This is a place where I mess around with developing for the NES. It is written completely in 6502 assembly, compiled to the iNES ROM format with [CA65](https://cc65.github.io/).
Could be just me. My main source of documentation is the [NESDev wiki](https://www.nesdev.org/wiki/Nesdev_Wiki), and the project structure is a heavily modified of [this NES project template](https://github.com/bbbradsmith/NES-ca65-example/tree/master).
Well, ever since that fateful day, I've been chiseling away at this mammoth task, adding functionality in stages by following [this series](https://norasandler.com/2017/11/29/Write-a-Compiler.html). ## Features
# Features
> [!NOTE] > [!NOTE]
> This project is under active development, and the implemented features are rapidly changing. > This project is under active development, and the implemented features are rapidly changing. It has no real goal yet, but may end up being a port of my game [Reboot](https://rochesterx.itch.io/reboot).
Here is a list of the currently implemented C language features:
* __Unary Operators__: The ~ (bitwise compliment), - (negation), and ! (logical negation) operators are implemented for integers, and can be applied to any term.
* __Arithmetic Operators__: The + (addition), - (subtraction), * (multiplication), and / (division) operators are implemented for integers, parsed according to their precedence levels in C.
* __Functions__: Each file currently supports exactly one function (so you'd be wise to make it "main"), with exactly one statement: an integer return statement. So yeah, not so useful yet.
* __Variables__: To be implemented soon.
Here is a list of the features I've implemented so far:
* 8x16 sprite character
* Character animation
* NES controller input
* Two nametable level structure
* Two nametable player positioning
* Background tile/attribute placement based on level structure
* Collision detection based on level structure
* PPU scrolling