Skip to content

Commit 83bd68f

Browse files
N44: Writing NES assembly programs in Rust DSL (talk) (#1335)
Co-authored-by: Forest Anderson <[email protected]>
1 parent 0f1d8ce commit 83bd68f

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

content/news/044/index.md

+29
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,35 @@ Editor with egui.
260260
["Editors (2/3): Editing entries"]: https://thegrimsey.net/2023/03/12/Bevy-Five-Editor-Two.html
261261
["Editors (3/3): Selection dialog & new entries"]: https://thegrimsey.net/2023/03/21/Bevy-Six-Editor-Three.html
262262

263+
### [Writing NES assembly programs in a Rust DSL][writing-nes-programs-in-rust-video]
264+
265+
[![Title slide from presentation about writing NES assembly programs in Rust](nes-programming-in-rust-cover.jpg)
266+
_Video: Talk about writing NES assembly programs in Rust_][writing-nes-programs-in-rust-video]
267+
268+
This is a talk about writing a program for the Nintendo Entertainment System
269+
that exposes all of its audio processor registers through an interface that lets
270+
the user flip bits using the controller and hear the result in real time. The
271+
program is written in Rust using an Embedded Domain-Specific Language. The talk
272+
demonstrates the features of the language and how they can be used to help
273+
express NES assembly programs in Rust.
274+
275+
Some features of the EDSL:
276+
277+
- defining and calling assembly functions by string labels
278+
- using Rust as a powerful macro language (e.g. generate code inside a for-loop)
279+
- using Rust's type system to catch invalid combinations of instruction and
280+
addressing mode
281+
282+
The source code for the NES program described in the talk is
283+
[here][nes-audio-playground-github] and there is a [demo of the tool on
284+
youtube][nes-audio-tool-demo-video]. The PDF of the slides from the talk are
285+
[here][writing-nes-programs-in-rust-pdf].
286+
287+
[writing-nes-programs-in-rust-video]: https://www.youtube.com/watch?v=hs-MrEoOX5Y
288+
[nes-audio-playground-github]: https://github.com/gridbugs/nes-audio-playground
289+
[writing-nes-programs-in-rust-pdf]: https://raw.githubusercontent.com/gridbugs/nes-programming-in-rust-sydney-rust-meetup-2023-03-01/main/slides.pdf
290+
[nes-audio-tool-demo-video]: https://www.youtube.com/watch?v=QHoISiWdPXo
291+
263292
## Tooling Updates
264293

265294
### Tiger
Loading

0 commit comments

Comments
 (0)