Show HN: An NES emulator written in Rust
github.com
github.com
https://github.com/mozilla/rust/pull/4610
Independence from external build tools is one of the coolest features of Go, so I'm really excited about seeing more languages take this route.
[1]: https://twitter.com/pcwalton/status/298134945531035648
[2]: https://twitter.com/pcwalton/status/299401519890042880I'm at a junction where I've been using Scala happily, but it falls down for numerical work because it can't call C libraries using large arrays without copying, because of the different memory layout used by the JVM vs. C, which really hurts for large data.
There's something to be said though for being able to write programs that will already be doing real work before the pinky finger has released the return key that launched them, I like the feel of that and I've missed that with the JVM.
EDIT: I should have looked more closely; looking into 'mapper.rs' reveals that it currently supports only the vanilla NES memory-map.
Thanks! quite interesting use case for Rust.
May I ask you - was it your side project or did you actually work on this at the office?
Since when does an NES take "decent processing power" to emulate? I emulated NES games on a 386DX40 and SNES games on a 486DX266. Certainly the emulation wasn't as accurate as what you get today, but neither is this tech-demo example.
"Its purpose is to serve as a technology demonstration to show how the Rust programming language is suitable for systems software such as emulators. [...] sprocketnes is also designed to be a relatively clean example codebase, showing off various Rust idioms."
[1] http://arstechnica.com/gaming/2011/08/accuracy-takes-power-o...
What I was getting is that I think turning off the frame limiter and counting how many frames run in, say, 10 seconds would be a nice benchmark of compiler optimization.
* Note: Rust is my language for the year. I can read Rust, follow program flow and I understand the major ideas but I've only put together toy programs.
http://static.rust-lang.org/doc/tutorial.html
From there, if you have questions I recommend you stop by the IRC channel (#rust on irc.mozilla.org, most active on weekdays).
I'm sure that will change, but for now it seems unfortunate. For example, there's an HTTP lib as part of Servo but according to some people in the IRC, it's not even very good.