Update README.md
This commit is contained in:
41
README.md
41
README.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user