aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 6d99cd4f7f8d1799f046a07da18a2190af8421a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Utilities for NES/Famicom development. Note that this repository is under heavy
development and it's **not** currently usable.

## `nasm`

`nasm` is an assembler specifically tailored for the NES/Famicom. You can simply
run it like so:

```
$ cargo run --bin nasm <path-to-assembly-file>
```

By default it will assume the configuration for an `NROM` file, but this can be
changed with the `-c/--configuration` flag, which accepts the following values:

- `empty`: just `HEADER` and `CODE`. Useful for one-liners (e.g. "how is this
  instruction encoded in binary?").
- `nrom`: the default configuration. It has the following segments: `HEADER`,
  `CODE`, `VECTORS`, and `CHARS`.
- `nrom65`: same as `nrom` but it also has `STARTUP` for compatibility with the
  default linker configuration from [cc65](https://github.com/cc65/cc65).

## `readrom`

The `readrom` reads a given ROM file and shows all the information that can be
gathered from it. For now this only applies to information on the header, but in
the future we might want to add disassembling user-specified segments, for
example.