Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build-app/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ runs:
- name: 'Build'
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: v5.5
esp_idf_version: v6.1
path: .
# The export reset prevents an error when building other targets
# The default environment variable is set to "esp32" by the GitHub Action
Expand Down
4 changes: 2 additions & 2 deletions Apps/Brainfuck/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
id=tactility.brainfuck
version.name=0.12.0
version.code=12
version.name=0.13.0
version.code=13
name=Brainfuck
description=Brainfuck esoteric language interpreter
app.0.id=tactility.brainfuck
Expand Down
4 changes: 2 additions & 2 deletions Apps/Breakout/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
id=tactility.breakout
version.name=0.15.0
version.code=15
version.name=0.16.0
version.code=16
name=Breakout
description=Classic brick-breaking arcade game
app.0.id=tactility.breakout
Expand Down
4 changes: 2 additions & 2 deletions Apps/Calculator/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
id=tactility.calculator
version.name=0.13.0
version.code=13
version.name=0.14.0
version.code=14
name=Calculator
app.0.id=tactility.calculator
app.0.name=Calculator
Expand Down
4 changes: 2 additions & 2 deletions Apps/CoreUtils/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=posix-x86_64,esp32s3
id=tactility.coreutils
version.name=0.2.0
version.code=2
version.name=0.3.0
version.code=3
name=CoreUtils
description=Commandline utilities
app.0.id=tactility.coreutils.echo
Expand Down
4 changes: 2 additions & 2 deletions Apps/Diceware/main/Source/Diceware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
#include <esp_random.h>
#include <esp_log.h>

constexpr char* TAG = "Diceware";
static constexpr auto* TAG = "Diceware";

/** Must match manifest.properties' app.id */
static constexpr const char* APP_ID = "tactility.diceware";
static constexpr auto* APP_ID = "tactility.diceware";

static void skipNewlines(FILE* file, const int count) {
char c;
Expand Down
4 changes: 2 additions & 2 deletions Apps/Diceware/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32,esp32s3,esp32c6,esp32p4
id=tactility.diceware
version.name=0.15.0
version.code=15
version.name=0.16.0
version.code=16
name=Diceware
description=Password generator
app.0.id=tactility.diceware
Expand Down
8 changes: 5 additions & 3 deletions Apps/Doom/main/Source/DoomAudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -382,15 +382,17 @@ void Sound_CacheSounds(sfxinfo_t* /*sounds*/, int /*num_sounds*/) {}
// i_sound.c's I_BindSoundVariables() binds these as config variables under
// FEATURE_SOUND, but they are normally defined by i_sdlsound.c / i_allegrosound.c,
// neither of which is built here.
extern "C" int use_libsamplerate = 0;
extern "C" float libsamplerate_scale = 1.0f;
extern "C" {
int use_libsamplerate = 0;
float libsamplerate_scale = 1.0f;

extern "C" sound_module_t DG_sound_module = {
sound_module_t DG_sound_module = {
soundDevices, 3,
Sound_Init, Sound_Shutdown, Sound_GetSfxLumpNum,
Sound_Update, Sound_UpdateSoundParams, Sound_StartSound,
Sound_StopSound, Sound_SoundIsPlaying, Sound_CacheSounds
};
}

void doomAudio_Init() {
// i_oplmusic.c opens the OPL chip at snd_samplerate, and the mixer renders
Expand Down
21 changes: 19 additions & 2 deletions Apps/Doom/main/Source/DoomEsp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ static constexpr const char* APP_ID = "tactility.doom";
// to resolve the user data path degrades to M_SetConfigDir's own "no config
// dir" handling rather than silently writing into the WAD folder, which is what
// the old "/sdcard/doom" default did.
extern "C" char doomEsp_savedir[128] = "";
extern "C" { char doomEsp_savedir[128] = ""; }

// Doom's native render resolution (set via DOOMGENERIC_RESX/RESY)
constexpr int DOOM_W = DOOMGENERIC_RESX;
Expand Down Expand Up @@ -243,6 +243,8 @@ extern "C" void doom_draw_frame(const uint32_t* buffer) {
.block_offset_x = 0,
.block_offset_y = 0,
.srm_cm = PPA_SRM_COLOR_MODE_RGB565,
.yuv_range = PPA_COLOR_RANGE_LIMIT,
.yuv_std = PPA_COLOR_CONV_STD_RGB_YUV_BT601,
},
.out = {
.buffer = outputBuffer,
Expand All @@ -252,10 +254,20 @@ extern "C" void doom_draw_frame(const uint32_t* buffer) {
.block_offset_x = 0,
.block_offset_y = 0,
.srm_cm = PPA_SRM_COLOR_MODE_RGB565,
.yuv_range = PPA_COLOR_RANGE_LIMIT,
.yuv_std = PPA_COLOR_CONV_STD_RGB_YUV_BT601,
},
.rotation_angle = PPA_SRM_ROTATION_ANGLE_90,
.scale_x = (float)scaledH / (float)DOOM_W,
.scale_y = (float)scaledW / (float)DOOM_H,
.mirror_x = false,
.mirror_y = false,
.rgb_swap = false,
.byte_swap = false,
.alpha_update_mode = PPA_ALPHA_NO_CHANGE,
.alpha_fix_val = 0,
.mode = PPA_TRANS_MODE_BLOCKING,
.user_data = nullptr,
};

ppa_do_scale_rotate_mirror(ppaClient, &srmConfig);
Expand Down Expand Up @@ -485,7 +497,12 @@ void doomEsp_Run(Device* display) {
}

// 3. Register the PPA client
ppa_client_config_t ppaConfig = { .oper_type = PPA_OPERATION_SRM };
ppa_client_config_t ppaConfig = {
.oper_type = PPA_OPERATION_SRM,
.max_pending_trans_num = 1,
.data_burst_length = PPA_DATA_BURST_LENGTH_128,
.flags = { .allow_pd = 0 },
};
ESP_ERROR_CHECK(ppa_register_client(&ppaConfig, &ppaClient));

// 3b. Discover all keyboard devices (best-effort - Doom runs fine without them)
Expand Down
9 changes: 8 additions & 1 deletion Apps/Doom/main/doomgeneric/doomgeneric/doomtype.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@

typedef bool boolean;

#else
#elif !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L

typedef enum
{
Expand All @@ -89,6 +89,13 @@ typedef enum
undef = 0xFFFFFFFF
} boolean;

#else

// C23 makes false/true reserved keywords, so this enum can no longer declare them as
// enumerator names. C23 already has a real bool, so alias boolean to it directly.
typedef bool boolean;
#define undef 0xFFFFFFFF

#endif

typedef uint8_t byte;
Expand Down
7 changes: 6 additions & 1 deletion Apps/Doom/main/doomgeneric/doomgeneric/r_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,12 @@ typedef struct
// If false use 0 for any position.
// Note: as eight entries are available,
// we might as well insert the same name eight times.
boolean rotate;
// Not `boolean`: R_InstallSpriteLump (r_things.c) needs a third state, distinct from both
// false and true, to detect "not yet installed" after this struct is memset(-1). A real
// (C23) 1-byte `bool` can only ever compare equal to 0 or 1 - reading back the memset(-1)
// sentinel through one triggers undefined behavior instead of correctly comparing unequal
// to both.
byte rotate;
Comment thread
KenVanHoeylandt marked this conversation as resolved.

// Lump to use for view angles 0-7.
short lump[8];
Expand Down
2 changes: 1 addition & 1 deletion Apps/Doom/main/doomgeneric/doomgeneric/r_things.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,8 @@ void R_InitSpriteDefs (char** namelist)
{
switch ((int)sprtemp[frame].rotate)
{
case -1:
// no rotations were found for that frame at all
case 0xff:
I_Error ("R_InitSprites: No patches found "
"for %s frame %c", spritename, frame+'A');
break;
Expand Down
4 changes: 2 additions & 2 deletions Apps/Doom/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32p4
id=tactility.doom
version.name=0.6.0
version.code=6
version.name=0.7.0
version.code=7
name=Doom
description=Classic DOOM. Tab5 only, keyboard required to play.
app.0.id=tactility.doom
Expand Down
4 changes: 2 additions & 2 deletions Apps/EpubReader/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32s3,esp32p4
id=tactility.epubreader
version.name=0.12.0
version.code=12
version.name=0.13.0
version.code=13
name=ePub Reader
description=ePub and text file reader. Requires PSRAM!
app.0.id=tactility.epubreader
Expand Down
4 changes: 2 additions & 2 deletions Apps/EspNowBridge/manifest.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ manifest.version=0.3
target.sdk=0.8.0-dev
target.platforms=esp32p4
id=tactility.espnowbridge
version.name=0.10.0
version.code=10
version.name=0.11.0
version.code=11
name=ESP-NOW Bridge
description=Companion app for updating P4 device C6 co-processor firmware to enable ESP-NOW bridge support.
app.0.id=tactility.espnowbridge
Expand Down
2 changes: 1 addition & 1 deletion Apps/GPIO/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include("$ENV{TACTILITY_SDK_PATH}/TactilitySDK.cmake")

file(GLOB_RECURSE SOURCE_FILES Source/*.c*)
tactility_component_register(SRCS ${SOURCE_FILES} REQUIRES driver)
tactility_component_register(SRCS ${SOURCE_FILES})
Loading
Loading