原理图参考这个 stm32_arduboy_V1.0
介绍视频参考这个: stm32_arduboy_V1.0游戏机 - 介绍
安装必要的软件包
$ sudo apt-get install build-essential git gdb-multiarch
从链接下载gcc,找gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 ,解压到/opt
从链接下载openocd,找xpack-openocd-0.11.0-5-linux-x64.tar.gz ,解压到/opt
以编译ARDUBREAKOUT为例
$ export PATH=$PATH:/your/path/gcc-arm-none-eabi-10.3-2021.10/bin
$ make APP_ARDUBREAKOUT=1
$ /your/path/xpack-openocd-0.12.0-1/bin/openocd -f config/jlink.cfg -f config/stm32f1x.cfg \
-c init -c "reset halt" -c wait_halt \
-c "flash write_image erase build/Arduboy2_stm32f103c8t6.bin 0x08000000" \
-c reset -c shutdown
$ /your/path/xpack-openocd-0.12.0-1/bin/openocd -f config/jlink.cfg -f config/stm32f1x.cfg
$ gdb-multiarch build/Arduboy2_stm32f103c8t6.elf
(gdb) tar ext:3333
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
BeepDemo | 来源: 链接,commit 编译方法: make APP_BEEPDEMO=1 |
可正常运行 | |
Buttons | 来源: 链接,commit 编译方法: make APP_BUTTONS=1 |
可正常运行 | |
FontDemo | 来源: 链接,commit 编译方法: make APP_FONTDEMO=1 |
可正常运行 | |
HelloWorld | 来源: 链接,commit 编译方法: make APP_HELLOWORLD=1 |
可正常运行 | |
RGBled | 来源: 链接,commit 编译方法: make APP_RGBLED=1 |
可正常运行 | |
SetSystemEEPROM | 来源: 链接,commit 编译方法: make APP_SETSYSTEMEEPROM=1 |
可正常运行 | |
PlayTune | 来源: 链接,commit 编译方法: make APP_PLAYTUNE=1 |
可正常运行 | |
ID-51-EEPROM-TOOL | 来源: 链接,commit 编译方法: make APP_EEPROMTOOL=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
arduboy-rund-ino | 来源: 链接,commit 编译方法: make APP_RUND=1 |
可正常运行 | |
arduboy-rund-ino/halloweend | 来源: 链接,commit 编译方法: make APP_HALLOWEEND=1 |
可正常运行 | |
Ardynia | 来源: 链接,commit 编译方法: make APP_ARDYNIA=1 |
可正常运行,走到图像边缘有bug 已经尝试修改但不一定对 |
|
CastleBoy | 来源: 链接,commit 编译方法: make APP_CASTLEBOY=1 |
可正常运行 | |
Mystic Balloon | 来源: 链接,commit 编译方法: make APP_MYSTICBALLOON=1 |
可正常运行 | |
Epic Crates Of Mass Destruction | 来源: 链接,commit 编译方法: make APP_ECOMD=1 |
可正常运行 | |
Helmets & Hordes | 来源: 链接,commit 编译方法: make APP_HELMETSHORDES=1 |
不正常 | |
SanSan | 来源: 链接 编译方法: make APP_SANSAN=1 |
可正常运行 会有图像错误 |
|
Shadow Runner | 来源: 链接,commit 编译方法: make APP_SHADOWRUNNER=1 |
可正常运行 | |
hollow | 来源: 链接,commit 编译方法: make APP_HOLLOW=1 |
可正常运行 | |
Rooftop Rescue | 来源: 链接,commit 编译方法: make APP_ROOFTOP=1 |
可正常运行,可能有bug | |
KONG | 来源: 链接,commit 编译方法: make APP_KONG=1 |
不正常 | |
Chicken-Cross-Arduboy | 来源: 链接,commit 编译方法: make APP_CHICKENX=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
PINBALL | 来源: 链接,commit 编译方法: make APP_PINBALL=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
03_tiny_2048 | 来源: 链接,commit 编译方法: make APP_2048=1 |
可正常运行 | |
Ardu-man | 来源: 链接,commit,PR 编译方法: make APP_ARDUMAN=1 |
可正常运行 | |
ArduBreakout | 来源: 链接,commit 编译方法: make APP_ARDUBREAKOUT=1 |
可正常运行 | |
Bomberboy | 来源: 链接,commit 编译方法: make APP_BOMBERBOY=1 |
可正常运行 | |
Ardusweeper | 来源: 链接,commit 编译方法: make APP_MINESWEEPER=1 |
可正常运行 | |
Flappy Ball | 来源: 链接,commit 编译方法: make APP_FLAPPYBALL=1 |
可正常运行 | |
ArduboyTetris | 来源: 链接,commit 编译方法: make APP_ARDUBOYTETRIS=1 |
可正常运行 | |
Dark-And-Under | 来源: 链接,commit 编译方法: make APP_DARKANDUNDER=1 |
可正常运行 | |
Bubble PoP | 来源: 链接,commit 编译方法: make APP_BUBBLEPOP=1 |
可正常运行 | |
ID-20-Escaper-Droid | 来源: 链接,commit 编译方法: make APP_ESCAPERDROID=1 |
可正常运行 | |
Blob Attack | 来源: 链接,commit 编译方法: make APP_BLOBATTACK=1 |
可正常运行 | |
BEGEMMED | 来源: 链接,commit 编译方法: make APP_BEGEMMED=1 |
可正常运行 | |
Reverse Mermaid Hockey | 来源: 链接,commit 编译方法: make APP_RMH=1 |
可正常运行 | |
Trolly Fish | 来源: 链接,commit 编译方法: make APP_TROLLYFISH=1 |
可正常运行 | |
petris | 来源: 链接,commit 编译方法: make APP_PETRIS=1 |
可正常运行 | |
Minesweeper | 来源: 链接,commit 编译方法: make APP_MINESWEEPER2=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
Mini Rogue | 来源: 链接,commit 编译方法: make APP_MINIROGUE=1 |
可正常运行 | |
DICE of FATE | 来源: 链接,commit 编译方法: make APP_DICEOFFATE=1 |
可正常运行 | |
Fantasy Rampage | 来源: 链接,commit 编译方法: make APP_FANTASYRAMPAGE=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
MicroCity | 来源: 链接,commit 编译方法: make APP_MICROCITY=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
ARDUVENTURE | 来源: 链接,commit 编译方法: make APP_ARDUVENTURE=1 |
可正常运行 |
应用/游戏名称 | 预览 | 来源/编译方法 | 备注 |
---|---|---|---|
Catacombs of the damned! | 来源: 链接,commit 编译方法: make APP_ARDUBOY3D=1 |
可正常运行 | |
VIRUS LQP-79 | 来源: 链接,commit 编译方法: make APP_VIRUSLQP79=1 |
可正常运行 | |
Sirène | 来源: 链接,commit 编译方法: make APP_SIRENE=1 |
不正常 | |
Outpost Defense | 来源: 链接,commit 编译方法: make APP_OUTPOSTDEFENSE=1 |
可正常运行 | |
Sunfire | 来源: 链接,commit 编译方法: make APP_SUNFIRE=1 |
可正常运行 | |
ArduboyArcodia | 来源: 链接,commit 编译方法: make APP_ARDUBOYARCODIA=1 |
可正常运行 | |
CosmicPods | 来源: 链接,commit 编译方法: make APP_COSMICPODS=1 |
可正常运行 | |
Humanity Revenge Director's Cut | 来源: 链接,commit 编译方法: make APP_HUMANITYREVENGEDC=1 |
可正常运行 | |
Night Raid | 来源: 链接,commit 编译方法: make APP_NIGHTRAID=1 |
可正常运行 | |
Omega Chase | 来源: 链接,commit 编译方法: make APP_OMEGACHASE=1 |
可正常运行 | |
SpaceFighter | 来源: 链接,commit 编译方法: make APP_SPACEFIGHTER=1 |
可正常运行 | |
ArduBoy Jet Pac | 来源: 链接,commit 编译方法: make APP_ARDUBOYJETPACK=1 |
可正常运行 | |
Glove | 来源: 链接,commit 编译方法: make APP_GLOVE=1 |
可正常运行 | |
Evade | 来源: 链接,commit 编译方法: make APP_EVADE=1 |
可正常运行 |
STM32F103C8T6 | FUNC | JLINK | DESC |
---|---|---|---|
PA9 | USART1_TX | pin17 | TX |
PA13 | SYS_JTMS-SWDIO | pin7 | SWDIO |
PA14 | SYS_JTCK-SWCLK | pin9 | SWCLK |
STM32F103C8T6 | FUNC | USB | DESC |
---|---|---|---|
PA11 | USB_DM | USB_DM | |
PA12 | USB_DP | USB_DP | |
PA8 | GPIO_Output | EN |
STM32F103C8T6 | FUNC | Nor Flash PIN | DESC |
---|---|---|---|
PA4 | GPIO_Output | pin1 | CS |
PA5 | SPI1_SCK | pin6 | CLK |
PA6 | SPI1_MISO | pin2 | IO1/MISO |
PA7 | SPI1_MOSI | pin5 | IO0/MOSI |
STM32F103C8T6 | FUNC | IRQT17 PIN | DESC |
---|---|---|---|
PA0 | GPIO_Output | BL | |
PA1 | GPIO_Output | pin4 | CS |
PA15 | GPIO_Outout | pin5 | RST |
PA3 | GPIO_Outout | pin6 | DC |
PB13 | SPI2_SCK | pin7 | SCL |
PB15 | SPI2_MOSI | pin8 | SDA |
STM32F103C8T6 | FUNC | AT24C02 PIN | DESC |
---|---|---|---|
PB6 | I2C1_SCL | pin6 | SCL |
PB7 | I2C1_SDA | pin5 | SDA |
STM32F103C8T6 | FUNC | LED | DESC |
---|---|---|---|
PB0 | GPIO_Outout | RED | |
PB1 | GPIO_Outout | GREEN | |
PB2 | GPIO_Outout | BLUE |
STM32F103C8T6 | FUNC | BTN | DESC |
---|---|---|---|
PB10 | GPIO_Input | Left | |
PB11 | GPIO_Input | Right | |
PB8 | GPIO_Input | Up | |
PB9 | GPIO_Input | Down | |
PC13 | GPIO_Input | A | |
PC14 | GPIO_Input | B |
STM32F103C8T6 | FUNC | speaker | DESC |
---|---|---|---|
PB4 | S_TIM3_CH1 | SPEAKER_1 | |
PB3 | S_TIM2_CH2 | SPEAKER_2 |
STM32F103C8T6 | FUNC | DESC | |
---|---|---|---|
PA2 | ADC1_EXTI15 |
产生频率和占空比可以调的PWM,用来输出音符对应的频率来驱动无源蜂鸣器。最高频率1MHZ,占空比分辨率1/500=0.2%
产生频率和占空比可以调的PWM,用来输出音符对应的频率来驱动无源蜂鸣器。最高频率1MHZ,占空比分辨率1/500=0.2%
产生周期可以配置的定时中断,定时的周期更具不同的音频方案,做不同的配置。 SND1_ARDUBOYPLAYTUNE 配置1KHZ,SND2_ARDUBOYTONES配置1KHZ,SND3_ATMLIB配置31.25KHZ。
产生周期可以配置的定时中断,定时的周期更具不同的音频方案,做不同的配置。 SND1_ARDUBOYPLAYTUNE 配置1KHZ,SND2_ARDUBOYTONES配置1KHZ,SND3_ATMLIB不配置。
不支持。现在使用的stm32f103c8t6的sram只有20KB,同时也不支持FSMC,无法搞一个loder的功能,所以当前版本不打算做多个游戏打包。
目前只能使用JLINK烧写单个游戏到单片机,要换另一个游戏就要重新烧录。
不支持。还没有做开发。
- 使用RP2040再做另外一个版本,这样就可以支持多个游戏打包。具体计划未定。
- 在当前平台好几个游戏有bug,尝试看看能不能在当前平台解决
- EEPROM的支持