···11# Rust Starter Project Template
2233## Important Note
44-This template currently produces unoptimised builds. This is required due to TIC-80's memory layout placing data at the address 0, which Rust does not understand.
55-If you aren't using direct framebuffer access, you should be able to use another level by changing the `Cargo.toml`.
44+Don't access TIC-80's I/O memory by dereferencing raw pointers. The optimiser will ruin attempts to do this, because Rust has no equivalent to C's `volatile` for direct access. Instead, use [`std::ptr::read_volatile`](https://doc.rust-lang.org/std/ptr/fn.read_volatile.html) and [`std::ptr::write_volatile`](https://doc.rust-lang.org/std/ptr/fn.write_volatile.html), or just use the standard TIC-80 `peek`/`poke`.
6576This is a Rust / TIC-80 starter template. Before using it, make sure you have installed the `wasm32-unknown-unknown` target using rustup:
87```
···3736```
3837wasm-opt -Os target/wasm32-unknown-unknown/release/cart.wasm -o cart.wasm
3938```
4040-This will create a new, smaller `cart.wasm` file in the working directory.3939+This will create a new, smaller `cart.wasm` file in the working directory.