# Introduction

Welcome to the VMU Pro SDK documentation. This comprehensive guide will help you build amazing applications and games for the VMU Pro device using either **LUA** or **C/C++**.

## 1. What is a VMU Pro?

The VMU Pro is a tiny smart memory card for the Dreamcast gaming console that doubles as a tiny handheld gaming device with a powerful dual-core processor, ample memory and a sharp backlit IPS TFT 16-bit colour display.

Any developer can write applications or games for it and either freely distribute as a downloadable package or distribute it through the amazing VMU Pro Store directly on VMU Pro devices!

## 2. VMU Pro Technical Specifications

**Display**

* Backlit 16-bit IPS TFT Colour Display (65,536 Colours) in RGB565 format
* 240x240 pixel resolution, 1.5" diagonal
* Up to 80FPS refresh rate (controllable through your app).

**Controls**

* Eight way directional pad (D-pad)
* Two primary buttons (A, B)
* Two programmable auxilliary buttons (Sleep, Mode)

**Sound**

* Internal Mono 0.7W Speaker (default 44.1KHz, 16-bit)
* USB-C Audio Out support

**Connectivity**

* WiFi
* Bluetooth LE
* MAPLE Port

**Memory & Storage**

* 8MB RAM (5MB usable in LUA Apps and Games)
* micro-SD card port with support for up to 2TB microSD cards

**Processing**

* Dual-core 240MHz CPU with threading support
* Third Low-power core at 40MHz
* Adjustable CPU Frequency

## 3. Choose Your SDK

The VMU Pro supports two development approaches:

### LUA SDK

* **Best for**: Rapid prototyping, simpler games, and applications
* **Language**: LUA scripting
* **Build process**: No compilation needed — write LUA scripts, package, and deploy
* **Key features**: Sprites with animation, collision detection, synthesizers, MIDI playback
* [Get started with LUA](https://8bitmods.gitbook.io/vmupro-sdk/lua-sdk/lua-sdk-overview)

### C/C++ SDK

* **Best for**: Performance-critical applications, advanced games, and hardware-level access
* **Language**: C/C++ with ESP-IDF framework
* **Build process**: Compile with ESP-IDF toolchain, then package and deploy
* **Key features**: Native performance, full C standard library, PeerNet wireless P2P, advanced blitting
* [Get started with C/C++](https://8bitmods.gitbook.io/vmupro-sdk/c-c++-sdk/c-sdk-overview)

Both SDKs share the same packaging and deployment tools and produce `.vmupack` files that run on any VMU Pro device.

## 4. Quick Start

1. **Choose**: Pick the [LUA SDK](https://8bitmods.gitbook.io/vmupro-sdk/lua-sdk/lua-sdk-overview) or [C/C++ SDK](https://8bitmods.gitbook.io/vmupro-sdk/c-c++-sdk/c-sdk-overview)
2. **Setup**: Install the required tools and dependencies
3. **Code**: Create your application
4. **Package**: Use the packer tool to create a `.vmupack` file
5. **Deploy**: Send your application to the VMU Pro device

## 5. API Categories

Both SDKs provide access to the same core hardware features:

* **Graphics**: Drawing primitives, text rendering, blitting, and display management
* **Sprites**: Sprite loading, animation, visual effects, and scene management (LUA) / blitting operations (C)
* **Audio**: Volume control, sample playback, and audio streaming
* **Input**: D-pad and button reading
* **File System**: File and folder operations (limited to `/sdcard` directory)
* **System**: Timing, logging, and utility functions
* **PeerNet**: Peer-to-peer wireless networking (C SDK)

## Getting Help

* Check the [Getting Started](https://8bitmods.gitbook.io/vmupro-sdk/lua-sdk/getting-started) guide
* Browse the API Reference for [LUA](https://8bitmods.gitbook.io/vmupro-sdk/lua-api-reference/display) or [C](https://8bitmods.gitbook.io/vmupro-sdk/c-api-reference/c-display)
* Look at the examples for [LUA](https://8bitmods.gitbook.io/vmupro-sdk/examples/hello-world) or [C](https://8bitmods.gitbook.io/vmupro-sdk/examples/c-examples)

Ready to start building? Head over to the [Getting Started](https://8bitmods.gitbook.io/vmupro-sdk/lua-sdk/getting-started) guide!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://8bitmods.gitbook.io/vmupro-sdk/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
