Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f930d22
FRLG 00.26: the Bike Voucher from the Fan Club, back to Cerulean, the…
dayfine Nov 4, 2026
f9d0e01
FRLG tests: register the story rows' sim tests together
dayfine Nov 4, 2026
51c0ce6
FRLG 00.27: east over Route 9 to Route 10's Pokemon Center
dayfine Nov 4, 2026
cc43650
Merge commit '130344db1cb2a394693019d734145f8c295c589b' into HEAD
dayfine Nov 5, 2026
7eb6517
FRLG: use shared wall recovery without changing navigation behavior (…
dayfine Nov 5, 2026
4f40579
Merge origin/frlg/stage6-vermilion into frlg/stage7-celadon (align wi…
dayfine Nov 6, 2026
dd43ed6
Merge origin/frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 6, 2026
8d6bbe7
Use string views for Celadon test checkpoint lookups
dayfine Nov 7, 2026
34c559b
Merge Vermilion Gym test portability fix into Celadon
dayfine Nov 7, 2026
fa131a8
FRLG: build maps from pinned Packages resources (#238)
dayfine Nov 7, 2026
9ea101e
Merge origin/frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 7, 2026
184bb0e
Merge remote-tracking branch 'origin/frlg/stage6-vermilion' into frlg…
dayfine Nov 8, 2026
e6de8c8
Fix missing native test fixtures and MSVC narrowing warning (#243)
dayfine Nov 8, 2026
fc23a7f
Merge frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 8, 2026
74d0471
Merge remote-tracking branch 'origin/frlg/stage6-vermilion' into HEAD
dayfine Nov 9, 2026
20d6eca
FRLG: author Parcel checkpoint in JSON and execute it through the sto…
dayfine Nov 9, 2026
14dc3bc
Merge frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 9, 2026
3e4cbd8
Merge frlg/stage6-vermilion (story action table) into frlg/stage7-cel…
dayfine Nov 9, 2026
0a1bba1
Merge frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 9, 2026
c5c2604
Merge frlg/stage6-vermilion: check the save stands at the checkpoint'…
dayfine Nov 9, 2026
37f1ca3
Merge frlg/stage6-vermilion: keep the simulation tests' line endings
dayfine Nov 9, 2026
a328c4c
FRLG AutoStory: 00.27 itself from a save below Cerulean Center's door
dayfine Nov 9, 2026
78c01f9
FRLG AutoStory: red tests for row 00.27's walk to Route 10's Center
dayfine Nov 9, 2026
85c3890
Merge frlg/stage6-vermilion: time an interrupt's step from its screen…
dayfine Nov 9, 2026
2e2cebc
FRLG: sim test for a wild battle seen after an open leg's hold
dayfine Nov 9, 2026
0e732b4
FRLG AutoStory: 00.27 finds its place on walls on the way to Route 10…
dayfine Nov 9, 2026
3d62951
FRLG: place a wild battle seen after an open leg's hold by its screen…
dayfine Nov 9, 2026
25d866b
Merge frlg/stage7-celadon: 00.27 finds its place on walls on the way …
dayfine Nov 9, 2026
6ce3846
Merge frlg/stage6-vermilion: run the sim through the action table
dayfine Nov 9, 2026
4447711
Merge frlg/stage6-vermilion: check a loaded save's start against a ke…
dayfine Nov 9, 2026
eb2dfc8
Merge b0f7e3faa (#122 via parent) into frlg/stage7-celadon
dayfine Nov 9, 2026
cf8535e
Merge FRLG between-step interrupts (52103a26f) into #224
dayfine Nov 9, 2026
3052e09
Merge FRLG between-step interrupts (effe4c008) into #224
dayfine Nov 9, 2026
802099e
Merge FRLG sim interrupts (141797149) into #224
dayfine Nov 9, 2026
9eab4d7
Merge FRLG interrupt actions move (fe3210ec6) into #224
dayfine Nov 9, 2026
4f85f30
Merge frlg/stage6-vermilion into frlg/stage7-celadon (hold watchers f…
dayfine Nov 9, 2026
f2d20c7
Merge frlg/stage6-vermilion into frlg/stage7-celadon
dayfine Nov 9, 2026
195ed57
Merge frlg/stage6-vermilion into frlg/stage7-celadon (wait for a batt…
dayfine Nov 9, 2026
b83cc4c
Merge frlg/stage6-vermilion into frlg/stage7-celadon (scene ends afte…
dayfine Nov 9, 2026
a4e3de3
Merge frlg/stage6-vermilion into frlg/stage7-celadon: a step on the S…
dayfine Nov 9, 2026
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
49 changes: 48 additions & 1 deletion .github/workflows/cpp-ci-serial-programs-base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,49 @@ jobs:
ref: 'master'
path: 'Arduino-Source/Packages'

- name: Install Python for pinned map preparation
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Prepare approved FRLG map resources
id: map-resources
uses: dayfine/PokemonSimulation/integrations/arduino-source/verify-map-packs@906956e94fc912ae9adb0e44845da780f3bc7e4c
with:
layout: resources
operation: prepare
consumer-directory: Arduino-Source

- name: Checkout authored checkpoint simulator
if: startsWith(inputs.os, 'ubuntu') && inputs.run-tests
uses: actions/checkout@v7
with:
repository: dayfine/PokemonSimulation
ref: 8cb831caf8bfe1f06b1aec9a4a7e55e6e09b0604
path: AuthoredStorySource

- name: Check identical authored Parcel JSON and replay its scenarios
if: startsWith(inputs.os, 'ubuntu') && inputs.run-tests
env:
PYTHONPATH: AuthoredStorySource/src
run: |
python3 - <<'PYTHON'
from pathlib import Path
from pokesim.story.replay_binding import load_binding
from pokesim.story.replay_cases import read_cases, check_case
from pokesim.story.checkpoint_replay import run
source = Path('AuthoredStorySource')
folder = source / 'data/story/parcel-pilot'
native = Path('Arduino-Source/SerialPrograms/Source/VideoGames/PokemonFRLG/Programs/AutoStory/StoryData')
assert (native / 'frlg-parcel-00.05.plan.json').read_bytes() == (folder / 'frlg-parcel-00.05.plan.json').read_bytes()
binding = load_binding(folder / 'authored-binding.json', source)
cases = read_cases(folder / 'cases.json')
for case in cases:
check_case(case, run(binding, case['input']))
print(case['id'] + ': authored JSON replay passed')
assert len(cases) == 7
PYTHON

- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
Expand Down Expand Up @@ -204,6 +247,8 @@ jobs:
# every file missed, compiling took 10-40% longer than before on Linux and macOS, and
# about twice as long on Windows.
CCACHE_DEPEND: 1
POKESIM_TOOLS_SOURCE: ${{ steps.map-resources.outputs.tools-source }}
POKESIM_SOURCE_CACHE: ${{ steps.map-resources.outputs.source-cache }}
run: |
cd Arduino-Source/SerialPrograms
mkdir bin
Expand Down Expand Up @@ -265,7 +310,9 @@ jobs:
uses: actions/checkout@v7
if: inputs.run-tests
with:
repository: 'PokemonAutomation/CommandLineTests'
# Complete fork fixtures include pending FRLG image submissions.
repository: 'dayfine/CommandLineTests'
ref: 'd150a6c547434110a920f95ba7857b93d5bb9222'
path: 'CommandLineTests'

# The unit tests assume the downloadable resources they need are already downloaded
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,6 @@ Packages/*
# Local agent/linter environments.
.venv-code-health/
__pycache__/

# External PokemonSimulation tools/data cache; prepared maps live in ignored Packages.
.pokesim-map-source/
6 changes: 5 additions & 1 deletion SerialPrograms/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -227,10 +227,14 @@ add_library(SerialProgramsLib STATIC ${CORE_LIBRARY_SOURCES} ${LIBRARY_SOURCES})
include(cmake/EmbedTextFiles.cmake)
pa_embed_text_files(SerialProgramsLib Source/Pokemon/Navigation/TestMaps
Pokemon/Navigation/Pokemon_Navigation_Tests.h PokemonAutomation::Pokemon navigation_test_map_json)
pa_embed_text_files(SerialProgramsLib Source/VideoGames/PokemonFRLG/Overworld/Maps
include(cmake/PokesimMapResources.cmake)
pa_frlg_map_resources(FRLG_MAP_RESOURCES)
pa_embed_text_files(SerialProgramsLib "${FRLG_MAP_RESOURCES}"
VideoGames/PokemonFRLG/Overworld/PokemonFRLG_OverworldMaps.h PokemonAutomation::NintendoSwitch::PokemonFRLG overworld_map_json)
pa_embed_text_files(SerialProgramsLib Source/VideoGames/PokemonFRLG/Programs/AutoStory/BattleData
VideoGames/PokemonFRLG/Programs/AutoStory/PokemonFRLG_AutoStoryBattleData.h PokemonAutomation::NintendoSwitch::PokemonFRLG autostory_battle_json)
pa_embed_text_files(SerialProgramsLib Source/VideoGames/PokemonFRLG/Programs/AutoStory/StoryData
VideoGames/PokemonFRLG/Programs/AutoStory/Data/JsonParser.h PokemonAutomation::NintendoSwitch::PokemonFRLG autostory_checkpoint_json)


# Create binary target
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ class PlaceNameMatcher : public OCR::SmallDictionaryMatcher{
{"cerulean-city", "Cerulean City"},
{"route-24", "Route 24"},
{"route-25", "Route 25"},
{"route-10", "Route 10"},
{"vermilion-city", "Vermilion City"},
}){
JsonArray names;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ImageFloatBox save_card_title_box();

// The place on the save card: "pallet-town", "viridian-city",
// "viridian-forest", "pewter-city", "route-1" to "route-4", "cerulean-city",
// "route-24", "route-25", "vermilion-city"; empty if it can't be read, as
// "route-10", "route-24", "route-25", "vermilion-city"; empty if it can't be read, as
// in a language the reader has no names for.
std::string read_save_card_location(Logger& logger, Language language, const ImageViewRGB32& screen);

Expand Down

This file was deleted.

Loading
Loading