Executando verificação de segurança...
1

Desenvolvimento de Jogos em C para Nintendo DS

Introdução

Um belo dia estava me perguntando como que se desenvolvia jogos de antigamente, e pensei em desenvolver meu próprio classico só que no nosso tempo, e a primeira coisa que eu tinha que fazer foi escolher a plataforma, e eu optei pelo Nintendo DS, já por ter o console e ter uma curiosidade tremenda de como funciona o desenvolvimento de algo que precisa do touch achei a escolha perfeita.

Buscando o Kit

Como de costume todo o console da nintendo possui um kit de desenvolvimento, até mesmo o nintendo swich possui o seu, assim como um console somente utilizado para testar seus jogos, no nintendo ds existia uma biblioteca chamada libnds que era utililazada no desenvolvimento de jogos para o console em conjunto com a linguagem de programação C.
Existem diversas possibilidades de download, mas o mais comum é pelo site devKitPro lá você encontrará um passo a passo de instalação para cada sistema operacional.

Desenhando com o touch

Para esse simples tutorial, escolhi desenvolver um simples local para desenho, utilizando a caneta do nintendo ds, deixarei abaixo o código desenvolvido, mas recomendo a todos estudarem programação em C.

main.c

#include <nds.h>

int main() {
    // Inicializa a tela de toque
    touchPosition touch;

    // Inicializa a tela de vídeo
    videoSetMode(MODE_FB0);
    vramSetBankA(VRAM_A_LCD);

    while(1) {
        // Verifica se a tela de toque foi pressionada
        scanKeys();
        if (keysHeld() & KEY_TOUCH) {
            touchRead(&touch);
            VRAM_A[(touch.py * 256) + touch.px] = RGB15(31,31,31);
        }
        
        swiWaitForVBlank();
    }

    return 0;
}

Makefile

Esse arquivo é necessário para compilar o código.

TARGET := $(shell basename $(CURDIR))
BUILD := build
SOURCES := source
INCLUDE	:=	-I$(DEVKITPRO)/libnds/include
LIBS := -lnds9
CC := arm-none-eabi-gcc

ARCH	:=	-mthumb -mthumb-interwork
CFLAGS	:=	-g -Wall -O2\
        $(ARCH)

CFLAGS	+=	$(INCLUDE) -DARM9
CXXFLAGS	:= $(CFLAGS) -fno-rtti -fno-exceptions

ASFLAGS	:=	-g $(ARCH)
LDFLAGS	=	-specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map) -L/opt/devkitpro/libnds/lib

app: main.c
	@$(CC) $(CFLAGS) $(LDFLAGS) main.c -o $(TARGET).elf $(LIBS)
	@ndstool -c $(TARGET).nds -9 $(TARGET).elf

Execute o seguinte comando no seu terminal: make

Sua saida deve ser o nome do seu jogo com a extensão .nds, para executar sugiro um emulador ou insira o arquivo dentro do seu R4 e execute no console.

Carregando publicação patrocinada...