hook
useVemu
Core VEMU hook. Manages wasm init, board selection, firmware loading, the RAF render loop, UART I/O, and peripheral inspector state.
function useVemu(options?: { loadModule?: () => Promise<VemuLoader> }): UseVemuResultReturns: UseVemuResult
Examples
function Emu() {
const { boards, selectedBoard, setSelectedBoard, loadProgram,
hasVideo, setDraw, setUartSink, sendUart } = useVemu();
return (
<>
<select value={selectedBoard} onChange={(e) => setSelectedBoard(e.target.value)}>
{boards.map((b) => <option key={b.id} value={b.id}>{b.name}</option>)}
</select>
<button onClick={async () => {
const bytes = new Uint8Array(await (await fetch("/demo.elf")).arrayBuffer());
loadProgram(bytes, "elf");
}}>Run</button>
<VemuCanvas hasVideo={hasVideo} setDraw={setDraw} />
<VemuTerminal setUartSink={setUartSink} sendUart={sendUart} />
</>
);
}