mirror of
https://github.com/imjasonh/nescript
synced 2026-07-08 17:06:04 +00:00
66 lines
1.5 KiB
Markdown
66 lines
1.5 KiB
Markdown
|
|
# NEScript Examples
|
||
|
|
|
||
|
|
## Quick Start
|
||
|
|
|
||
|
|
### 1. Build the compiler
|
||
|
|
|
||
|
|
```
|
||
|
|
cargo build --release
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Compile an example
|
||
|
|
|
||
|
|
```
|
||
|
|
cargo run -- build examples/hello_sprite.ne
|
||
|
|
```
|
||
|
|
|
||
|
|
This produces `examples/hello_sprite.nes` — a valid iNES ROM file.
|
||
|
|
|
||
|
|
### 3. Run in an emulator
|
||
|
|
|
||
|
|
Open the `.nes` file in any NES emulator:
|
||
|
|
|
||
|
|
- **[Mesen](https://www.mesen.ca/)** (recommended — best debugging support)
|
||
|
|
- **[FCEUX](https://fceux.com/)**
|
||
|
|
- **[Nestopia](http://nestopia.sourceforge.net/)**
|
||
|
|
|
||
|
|
Use the d-pad (arrow keys in most emulators) to move the sprite.
|
||
|
|
|
||
|
|
## Examples
|
||
|
|
|
||
|
|
| File | Description |
|
||
|
|
|------|-------------|
|
||
|
|
| `hello_sprite.ne` | Move a smiley face with the d-pad |
|
||
|
|
| `bouncing_ball.ne` | A sprite that bounces around the screen automatically |
|
||
|
|
|
||
|
|
## What you'll see
|
||
|
|
|
||
|
|
The ROM displays a small smiley-face sprite (an 8x8 tile built into the
|
||
|
|
compiler's default CHR data). In `hello_sprite`, you control it with the d-pad.
|
||
|
|
In `bouncing_ball`, it moves on its own and bounces off the screen edges.
|
||
|
|
|
||
|
|
## Emulator controls
|
||
|
|
|
||
|
|
| NES Button | Typical Key |
|
||
|
|
|------------|-------------|
|
||
|
|
| D-pad | Arrow keys |
|
||
|
|
| A | Z |
|
||
|
|
| B | X |
|
||
|
|
| Start | Enter |
|
||
|
|
| Select | Right Shift |
|
||
|
|
|
||
|
|
(Exact mappings vary by emulator — check your emulator's input settings.)
|
||
|
|
|
||
|
|
## Compiler commands
|
||
|
|
|
||
|
|
```
|
||
|
|
# Compile to ROM
|
||
|
|
cargo run -- build examples/hello_sprite.ne
|
||
|
|
|
||
|
|
# Compile with custom output path
|
||
|
|
cargo run -- build examples/hello_sprite.ne --output my_game.nes
|
||
|
|
|
||
|
|
# Type-check only (no ROM output)
|
||
|
|
cargo run -- check examples/hello_sprite.ne
|
||
|
|
```
|