iniciando o projeto
This commit is contained in:
150
MENU_README.md
Normal file
150
MENU_README.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# Menu Interativo com Navegação por Joystick - R36 Ultra
|
||||
|
||||
## ✅ Compilado com Sucesso para ARM64!
|
||||
|
||||
Sistema de menu interativo com suporte a navegação por joystick/gamepad para R36 Ultra.
|
||||
|
||||
## 📦 Arquivos
|
||||
|
||||
- **`menu_demo.c`** - Código fonte do menu interativo
|
||||
- **`menu_demo`** - Binário ARM64 (755KB, estaticamente linkado)
|
||||
- **`compile_menu.sh`** - Script de compilação
|
||||
|
||||
## 🎮 Características
|
||||
|
||||
### Interface
|
||||
- ✅ 5 botões navegáveis
|
||||
- ✅ Destaque visual do botão selecionado
|
||||
- ✅ Bordas coloridas (amarelo quando selecionado)
|
||||
- ✅ Fundo escuro com texto claro
|
||||
- ✅ Título "MENU PRINCIPAL"
|
||||
- ✅ Instruções na parte inferior
|
||||
|
||||
### Controles Suportados
|
||||
- **D-Pad Cima/Baixo** - Navegar entre botões
|
||||
- **Botão A / Enter** - Selecionar opção
|
||||
- **ESC** - Sair
|
||||
- **Ctrl+C** - Forçar saída
|
||||
|
||||
### Opções do Menu
|
||||
1. **INICIAR JOGO**
|
||||
2. **CONFIGURACOES**
|
||||
3. **CARREGAR SAVE**
|
||||
4. **CREDITOS**
|
||||
5. **SAIR** (encerra o programa)
|
||||
|
||||
## 🚀 Como Usar
|
||||
|
||||
### Transferir para R36 Ultra
|
||||
|
||||
**Via SCP:**
|
||||
```bash
|
||||
scp menu_demo user@r36ultra:/home/user/
|
||||
```
|
||||
|
||||
**Via USB/SD Card:**
|
||||
1. Copie `menu_demo` para USB/SD
|
||||
2. Insira no R36 Ultra
|
||||
3. Copie para o dispositivo
|
||||
|
||||
### Executar no R36 Ultra
|
||||
|
||||
```bash
|
||||
chmod +x menu_demo
|
||||
sudo ./menu_demo
|
||||
```
|
||||
|
||||
## 🎨 Cores e Visual
|
||||
|
||||
- **Botão Normal**: Fundo cinza escuro (80,80,80) com borda clara
|
||||
- **Botão Selecionado**: Fundo azul (50,100,200) com borda amarela (255,200,0)
|
||||
- **Texto**: Branco (255,255,255)
|
||||
- **Fundo**: Cinza escuro (30,30,30)
|
||||
|
||||
## 🔧 Recompilar
|
||||
|
||||
### Para ARM64 (cross-compile):
|
||||
```bash
|
||||
./compile_menu.sh arm64
|
||||
```
|
||||
|
||||
### Para nativo (x86_64):
|
||||
```bash
|
||||
./compile_menu.sh
|
||||
```
|
||||
|
||||
## 📝 Personalização
|
||||
|
||||
### Adicionar Novos Botões
|
||||
|
||||
Edite a função `main()` em `menu_demo.c`:
|
||||
|
||||
```c
|
||||
menu_add_button(&menu, "NOVO BOTAO");
|
||||
```
|
||||
|
||||
### Alterar Cores
|
||||
|
||||
Edite a função `draw_button()`:
|
||||
|
||||
```c
|
||||
// Botão selecionado (B, G, R, A)
|
||||
draw_rectangle(fb, btn->x, btn->y, btn->width, btn->height, 200, 100, 50, 255);
|
||||
```
|
||||
|
||||
### Alterar Tamanho dos Botões
|
||||
|
||||
No topo do arquivo:
|
||||
|
||||
```c
|
||||
#define BUTTON_HEIGHT 60
|
||||
#define BUTTON_WIDTH 500
|
||||
#define BUTTON_MARGIN 10
|
||||
```
|
||||
|
||||
## 🎯 Detecção de Entrada
|
||||
|
||||
O programa tenta abrir automaticamente os seguintes dispositivos:
|
||||
- `/dev/input/event0`
|
||||
- `/dev/input/event1`
|
||||
- `/dev/input/event2`
|
||||
- `/dev/input/event3`
|
||||
- `/dev/input/js0`
|
||||
|
||||
Se nenhum dispositivo for encontrado, o programa ainda funciona mas você precisará usar SSH ou terminal para enviar comandos.
|
||||
|
||||
## 🔍 Debugging
|
||||
|
||||
Para ver qual dispositivo de entrada foi aberto:
|
||||
```bash
|
||||
sudo ./menu_demo
|
||||
# Saída: "Opened input device: /dev/input/eventX"
|
||||
```
|
||||
|
||||
Para listar dispositivos de entrada disponíveis:
|
||||
```bash
|
||||
ls -la /dev/input/
|
||||
```
|
||||
|
||||
## 💡 Próximos Passos
|
||||
|
||||
Para adicionar funcionalidade aos botões, edite o switch case em `main()`:
|
||||
|
||||
```c
|
||||
case BTN_SOUTH: // A button
|
||||
case KEY_ENTER:
|
||||
printf("Activated: %s\n", menu.buttons[menu.selected].text);
|
||||
if (menu.selected == 0) { // INICIAR JOGO
|
||||
// Adicione sua lógica aqui
|
||||
}
|
||||
break;
|
||||
```
|
||||
|
||||
## 📊 Informações Técnicas
|
||||
|
||||
- **Resolução**: 720x720 pixels
|
||||
- **Formato**: BGRA (4 bytes por pixel)
|
||||
- **Framebuffer**: `/dev/fb0`
|
||||
- **Arquitetura**: ARM64 (aarch64)
|
||||
- **Linkagem**: Estática (sem dependências)
|
||||
- **Tamanho**: 755KB
|
||||
Reference in New Issue
Block a user