Compare commits

1 Commits

Author SHA1 Message Date
40f6ec20d7 Préparation du projet 2022-05-27 12:51:04 +02:00
14 changed files with 1936 additions and 0 deletions

26
CMakeLists.txt Normal file
View File

@@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.14)
set(CMAKE_C_STANDARD 11)
# Initial Variables
set(SDK $ENV{PLAYDATE_SDK})
# Game Name Customization
set(PLAYDATE_GAME_NAME c_template)
set(PLAYDATE_GAME_DEVICE c_template_DEVICE)
# Source files
#TODO include a txt from src that keeps an updated list of files to compile
file(
GLOB_RECURSE
SOURCE_FILES
src/*.c
)
# Configure project
project(${PLAYDATE_GAME_NAME} C ASM)
add_executable(${PLAYDATE_GAME_DEVICE} ${SDK}/C_API/buildsupport/setup.c ${SOURCE_FILES})
# Make sure we get rid of any existing builds on clean
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "../${PLAYDATE_GAME_NAME}.pdx" "../Source/pdex.bin")
include(${SDK}/C_API/buildsupport/playdate_game.cmake)

BIN
Source/pdex.bin Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1}]}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,60 @@
{
"configurations" :
[
{
"directories" :
[
{
"build" : ".",
"jsonFile" : "directory-.-Debug-d0094a50bb2071803777.json",
"minimumCMakeVersion" :
{
"string" : "3.14"
},
"projectIndex" : 0,
"source" : ".",
"targetIndexes" :
[
0
]
}
],
"name" : "Debug",
"projects" :
[
{
"directoryIndexes" :
[
0
],
"name" : "c_template",
"targetIndexes" :
[
0
]
}
],
"targets" :
[
{
"directoryIndex" : 0,
"id" : "c_template_DEVICE::@6890427a1f51a3e7e1df",
"jsonFile" : "target-c_template_DEVICE-Debug-75a2fb39341eb2bd14e0.json",
"name" : "c_template_DEVICE",
"projectIndex" : 0
}
]
}
],
"kind" : "codemodel",
"paths" :
{
"build" : "C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template vsc/build",
"source" : "C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template vsc"
},
"version" :
{
"major" : 2,
"minor" : 4
}
}

View File

@@ -0,0 +1,14 @@
{
"backtraceGraph" :
{
"commands" : [],
"files" : [],
"nodes" : []
},
"installers" : [],
"paths" :
{
"build" : ".",
"source" : "."
}
}

View File

@@ -0,0 +1,110 @@
{
"cmake" :
{
"generator" :
{
"multiConfig" : false,
"name" : "Ninja"
},
"paths" :
{
"cmake" : "C:/Program Files/CMake/bin/cmake.exe",
"cpack" : "C:/Program Files/CMake/bin/cpack.exe",
"ctest" : "C:/Program Files/CMake/bin/ctest.exe",
"root" : "C:/Program Files/CMake/share/cmake-3.23"
},
"version" :
{
"isDirty" : false,
"major" : 3,
"minor" : 23,
"patch" : 1,
"string" : "3.23.1",
"suffix" : ""
}
},
"objects" :
[
{
"jsonFile" : "codemodel-v2-186d0c6b10b2e5895177.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 4
}
},
{
"jsonFile" : "cache-v2-67806f595a89659dd2f1.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "toolchains-v1-c2c88990de69a07c1984.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
],
"reply" :
{
"client-vscode" :
{
"query.json" :
{
"requests" :
[
{
"kind" : "cache",
"version" : 2
},
{
"kind" : "codemodel",
"version" : 2
},
{
"kind" : "toolchains",
"version" : 1
}
],
"responses" :
[
{
"jsonFile" : "cache-v2-67806f595a89659dd2f1.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "codemodel-v2-186d0c6b10b2e5895177.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 4
}
},
{
"jsonFile" : "toolchains-v1-c2c88990de69a07c1984.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
]
}
}
}
}

View File

@@ -0,0 +1,325 @@
{
"artifacts" :
[
{
"path" : "c_template_DEVICE"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_executable",
"target_link_options",
"include",
"target_compile_options",
"add_compile_definitions",
"target_compile_definitions",
"include_directories"
],
"files" :
[
"CMakeLists.txt",
"C:/Program Files/PlaydateSDK/C_API/buildsupport/playdate.cmake",
"C:/Program Files/PlaydateSDK/C_API/buildsupport/playdate_game.cmake"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 21,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 26,
"parent" : 0
},
{
"file" : 2,
"parent" : 2
},
{
"command" : 2,
"file" : 2,
"line" : 1,
"parent" : 3
},
{
"file" : 1,
"parent" : 4
},
{
"command" : 1,
"file" : 1,
"line" : 35,
"parent" : 5
},
{
"command" : 1,
"file" : 1,
"line" : 36,
"parent" : 5
},
{
"command" : 1,
"file" : 1,
"line" : 37,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 23,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 24,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 27,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 28,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 29,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 30,
"parent" : 5
},
{
"command" : 3,
"file" : 1,
"line" : 31,
"parent" : 5
},
{
"command" : 4,
"file" : 1,
"line" : 12,
"parent" : 5
},
{
"command" : 5,
"file" : 1,
"line" : 22,
"parent" : 5
},
{
"command" : 6,
"file" : 1,
"line" : 7,
"parent" : 5
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : "-g"
},
{
"backtrace" : 9,
"fragment" : "-Wall"
},
{
"backtrace" : 9,
"fragment" : "-Wno-unknown-pragmas"
},
{
"backtrace" : 10,
"fragment" : "-O2"
},
{
"backtrace" : 11,
"fragment" : "-mthumb"
},
{
"backtrace" : 11,
"fragment" : "-mcpu=cortex-m7"
},
{
"backtrace" : 11,
"fragment" : "-mfloat-abi=hard"
},
{
"backtrace" : 11,
"fragment" : "-mfpu=fpv5-sp-d16"
},
{
"backtrace" : 11,
"fragment" : "-D__FPU_USED=1"
},
{
"backtrace" : 12,
"fragment" : "-falign-functions=16"
},
{
"backtrace" : 12,
"fragment" : "-fomit-frame-pointer"
},
{
"backtrace" : 13,
"fragment" : "-gdwarf-2"
},
{
"backtrace" : 14,
"fragment" : "-fverbose-asm"
},
{
"backtrace" : 15,
"fragment" : "-ffunction-sections"
},
{
"backtrace" : 15,
"fragment" : "-fdata-sections"
},
{
"fragment" : "-std=gnu11"
}
],
"defines" :
[
{
"backtrace" : 16,
"define" : "TARGET_EXTENSION=1"
},
{
"backtrace" : 17,
"define" : "TARGET_PLAYDATE=1"
}
],
"includes" :
[
{
"backtrace" : 18,
"path" : "C:/Program Files/PlaydateSDK/C_API"
}
],
"language" : "C",
"languageStandard" :
{
"backtraces" :
[
1
],
"standard" : "11"
},
"sourceIndexes" :
[
0,
1
]
}
],
"id" : "c_template_DEVICE::@6890427a1f51a3e7e1df",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-g",
"role" : "flags"
},
{
"fragment" : "",
"role" : "flags"
},
{
"backtrace" : 6,
"fragment" : "-mthumb",
"role" : "flags"
},
{
"backtrace" : 6,
"fragment" : "-mcpu=cortex-m7",
"role" : "flags"
},
{
"backtrace" : 6,
"fragment" : "-mfloat-abi=hard",
"role" : "flags"
},
{
"backtrace" : 6,
"fragment" : "-mfpu=fpv5-sp-d16",
"role" : "flags"
},
{
"backtrace" : 6,
"fragment" : "-D__FPU_USED=1",
"role" : "flags"
},
{
"backtrace" : 7,
"fragment" : "\"-TC:/Program Files/PlaydateSDK/C_API/buildsupport/link_map.ld\"",
"role" : "flags"
},
{
"backtrace" : 8,
"fragment" : "-Wl,-Map=game.map,--cref,--gc-sections,--no-warn-mismatch",
"role" : "flags"
}
],
"language" : "C"
},
"name" : "c_template_DEVICE",
"nameOnDisk" : "c_template_DEVICE",
"paths" :
{
"build" : ".",
"source" : "."
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "C:/Program Files/PlaydateSDK/C_API/buildsupport/setup.c",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/main.c",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,48 @@
{
"kind" : "toolchains",
"toolchains" :
[
{
"compiler" :
{
"id" : "GNU",
"implicit" : {},
"path" : "C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/ARM_Toolchain/11.2 2022.02/bin/arm-none-eabi-gcc.exe",
"version" : ""
},
"language" : "ASM",
"sourceFileExtensions" :
[
"s",
"S",
"asm"
]
},
{
"compiler" :
{
"id" : "GNU",
"implicit" :
{
"includeDirectories" : [],
"linkDirectories" : [],
"linkFrameworkDirectories" : [],
"linkLibraries" : []
},
"path" : "C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/ARM_Toolchain/11.2 2022.02/bin/arm-none-eabi-gcc.exe",
"version" : "11.2.1"
},
"language" : "C",
"sourceFileExtensions" :
[
"c",
"m"
]
}
],
"version" :
{
"major" : 1,
"minor" : 0
}
}

BIN
build/.ninja_deps Normal file

Binary file not shown.

4
build/.ninja_log Normal file
View File

@@ -0,0 +1,4 @@
# ninja log v5
4 228 6749445182282233 CMakeFiles/c_template_DEVICE.dir/C_/Program_Files/PlaydateSDK/C_API/buildsupport/setup.c.obj e38c311519e902c3
5 109 6749978027886999 CMakeFiles/c_template_DEVICE.dir/src/main.c.obj f39c622fce5e9e72
110 228 6749978028628903 c_template_DEVICE 97fa6f5c91bbeda9

154
build/build.ninja Normal file
View File

@@ -0,0 +1,154 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Ninja" Generator, CMake Version 3.23
# This file contains all the build statements describing the
# compilation DAG.
# =============================================================================
# Write statements declared in CMakeLists.txt:
#
# Which is the root file.
# =============================================================================
# =============================================================================
# Project: c_template
# Configurations: Debug
# =============================================================================
#############################################
# Minimal version of Ninja required by this file
ninja_required_version = 1.5
#############################################
# Set configuration variable for custom commands.
CONFIGURATION = Debug
# =============================================================================
# Include auxiliary files.
#############################################
# Include rules file.
include CMakeFiles/rules.ninja
# =============================================================================
#############################################
# Logical path to working directory; prefix for absolute paths.
cmake_ninja_workdir = C$:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template$ vsc/build/
# =============================================================================
# Object build statements for EXECUTABLE target c_template_DEVICE
#############################################
# Order-only phony target for c_template_DEVICE
build cmake_object_order_depends_target_c_template_DEVICE: phony || CMakeFiles/c_template_DEVICE.dir
build CMakeFiles/c_template_DEVICE.dir/C_/Program_Files/PlaydateSDK/C_API/buildsupport/setup.c.obj: C_COMPILER__c_template_DEVICE_Debug C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/setup.c || cmake_object_order_depends_target_c_template_DEVICE
DEFINES = -DTARGET_EXTENSION=1 -DTARGET_PLAYDATE=1
DEP_FILE = CMakeFiles\c_template_DEVICE.dir\C_\Program_Files\PlaydateSDK\C_API\buildsupport\setup.c.obj.d
FLAGS = -g -Wall -Wno-unknown-pragmas -O2 -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -D__FPU_USED=1 -falign-functions=16 -fomit-frame-pointer -gdwarf-2 -fverbose-asm -ffunction-sections -fdata-sections -std=gnu11
INCLUDES = -I"C:/Program Files/PlaydateSDK/C_API"
OBJECT_DIR = CMakeFiles\c_template_DEVICE.dir
OBJECT_FILE_DIR = CMakeFiles\c_template_DEVICE.dir\C_\Program_Files\PlaydateSDK\C_API\buildsupport
build CMakeFiles/c_template_DEVICE.dir/src/main.c.obj: C_COMPILER__c_template_DEVICE_Debug C$:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template$ vsc/src/main.c || cmake_object_order_depends_target_c_template_DEVICE
DEFINES = -DTARGET_EXTENSION=1 -DTARGET_PLAYDATE=1
DEP_FILE = CMakeFiles\c_template_DEVICE.dir\src\main.c.obj.d
FLAGS = -g -Wall -Wno-unknown-pragmas -O2 -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -D__FPU_USED=1 -falign-functions=16 -fomit-frame-pointer -gdwarf-2 -fverbose-asm -ffunction-sections -fdata-sections -std=gnu11
INCLUDES = -I"C:/Program Files/PlaydateSDK/C_API"
OBJECT_DIR = CMakeFiles\c_template_DEVICE.dir
OBJECT_FILE_DIR = CMakeFiles\c_template_DEVICE.dir\src
# =============================================================================
# Link build statements for EXECUTABLE target c_template_DEVICE
#############################################
# Link the executable c_template_DEVICE
build c_template_DEVICE: C_EXECUTABLE_LINKER__c_template_DEVICE_Debug CMakeFiles/c_template_DEVICE.dir/C_/Program_Files/PlaydateSDK/C_API/buildsupport/setup.c.obj CMakeFiles/c_template_DEVICE.dir/src/main.c.obj
FLAGS = -g
LINK_FLAGS = -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16 -D__FPU_USED=1 "-TC:/Program Files/PlaydateSDK/C_API/buildsupport/link_map.ld" -Wl,-Map=game.map,--cref,--gc-sections,--no-warn-mismatch
OBJECT_DIR = CMakeFiles\c_template_DEVICE.dir
POST_BUILD = cmd.exe /C "cd /D "C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc\build" && "C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\ARM_Toolchain\11.2 2022.02\bin\arm-none-eabi-objcopy.exe" -Obinary c_template_DEVICE "C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template vsc/Source/pdex.bin" && cd /D "C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc" && "C:\Program Files\PlaydateSDK\bin\pdc" -sdkpath "C:/Program Files/PlaydateSDK" Source c_template.pdx"
PRE_LINK = cd .
TARGET_FILE = c_template_DEVICE
TARGET_PDB = c_template_DEVICE.dbg
#############################################
# Utility command for edit_cache
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
COMMAND = cmd.exe /C "cd /D "C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc\build" && "C:\Program Files\CMake\bin\cmake-gui.exe" -S"C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc" -B"C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc\build""
DESC = Running CMake cache editor...
pool = console
restat = 1
build edit_cache: phony CMakeFiles/edit_cache.util
#############################################
# Utility command for rebuild_cache
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
COMMAND = cmd.exe /C "cd /D "C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc\build" && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -S"C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc" -B"C:\Users\VBidolet.DEFO.000\Nextcloud\playdate_dev\template vsc\build""
DESC = Running CMake to regenerate build system...
pool = console
restat = 1
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
# =============================================================================
# Target aliases.
# =============================================================================
# Folder targets.
# =============================================================================
#############################################
# Folder: C:/Users/VBidolet.DEFO.000/Nextcloud/playdate_dev/template vsc/build
build all: phony c_template_DEVICE
# =============================================================================
# Built-in targets
#############################################
# Re-run CMake if any of its inputs changed.
build build.ninja: RERUN_CMAKE | ../CMakeLists.txt C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeASMInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeCInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeCommonLanguageInclude.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeGenericSystem.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeInitializeConfigs.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeLanguageInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeSystemSpecificInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeSystemSpecificInitialize.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/CMakeCommonCompilerMacros.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU-ASM.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU-C.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Platform/Generic.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/arm_patched.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/playdate.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/playdate_game.cmake CMakeCache.txt CMakeFiles/3.23.1/CMakeASMCompiler.cmake CMakeFiles/3.23.1/CMakeCCompiler.cmake CMakeFiles/3.23.1/CMakeSystem.cmake
pool = console
#############################################
# A missing CMake input file is not an error.
build ../CMakeLists.txt C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeASMInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeCInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeCommonLanguageInclude.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeGenericSystem.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeInitializeConfigs.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeLanguageInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeSystemSpecificInformation.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/CMakeSystemSpecificInitialize.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/CMakeCommonCompilerMacros.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU-ASM.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU-C.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Compiler/GNU.cmake C$:/Program$ Files/CMake/share/cmake-3.23/Modules/Platform/Generic.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/arm_patched.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/playdate.cmake C$:/Program$ Files/PlaydateSDK/C_API/buildsupport/playdate_game.cmake CMakeCache.txt CMakeFiles/3.23.1/CMakeASMCompiler.cmake CMakeFiles/3.23.1/CMakeCCompiler.cmake CMakeFiles/3.23.1/CMakeSystem.cmake: phony
#############################################
# Clean all the built files.
build clean: CLEAN
#############################################
# Print all primary targets available.
build help: HELP
#############################################
# Make the all target the default.
default all

BIN
build/c_template_DEVICE Normal file

Binary file not shown.

59
src/main.c Normal file
View File

@@ -0,0 +1,59 @@
//
// main.c
// Extension
//
// Created by Dave Hayden on 7/30/14.
// Copyright (c) 2014 Panic, Inc. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include "pd_api.h"
static PlaydateAPI *pd = NULL;
static LCDFont *font;
#define TEXT_WIDTH 86
#define TEXT_HEIGHT 16
int x = (LCD_COLUMNS - TEXT_WIDTH) / 2;
int y = (LCD_ROWS - TEXT_HEIGHT) / 2;
int dx = 1;
int dy = 2;
static int buttonstatus(int button) {}
static int update(__attribute__((unused)) void *ud)
{
pd->graphics->setDrawMode(kDrawModeFillWhite);
pd->graphics->drawText("Hello World!", strlen("Hello World!"), kASCIIEncoding, x, y);
pd->graphics->setDrawMode(kDrawModeFillBlack);
x += dx;
y += dy;
if (x < 0 || x > LCD_COLUMNS - TEXT_WIDTH)
dx = -dx;
if (y < 0 || y > LCD_ROWS - TEXT_HEIGHT)
dy = -dy;
pd->graphics->drawText("Hello World!", strlen("Hello World!"), kASCIIEncoding, x, y);
pd->system->drawFPS(0, 0);
return 1;
}
int eventHandler(PlaydateAPI *playdate, PDSystemEvent event, __attribute__((unused)) uint32_t arg)
{
if (event == kEventInit)
{
pd = playdate;
pd->display->setRefreshRate(0);
pd->system->setUpdateCallback(update, NULL);
font = pd->graphics->loadFont("/System/Fonts/Asheville-Sans-14-Bold.pft", NULL);
}
return 0;
}