diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index b2eeb98..3934e95 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -44,6 +44,7 @@ jobs: - mooneye-test-suite - same-suite - strikethrough + - turtle-tests steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index a4b7a22..014ee62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ - add [MBC3 Tester:40065adab0](https://github.com/EricKirschenmann/MBC3-Tester-gb/tree/40065adab0) *(2021-03-02)* +- add [TurtleTests:b341ff54ec](https://github.com/Powerlated/TurtleTests/tree/b341ff54ec) + *(2020-09-05)* ## [v6.0](https://github.com/c-sp/gameboy-test-roms/releases/tag/v6.0) *(2023-07-24)* diff --git a/README.md b/README.md index 0be20a2..42c6512 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,8 @@ It includes (in alphabetical order): by [ax6](https://github.com/aaaaaa123456789) * **[SameSuite](https://github.com/LIJI32/SameSuite)** by [Lior Halphon](https://github.com/LIJI32) +* **[TurtleTests](https://github.com/Powerlated/TurtleTests)** + by [Brian Jia](https://github.com/Powerlated) ## Running test suites @@ -92,6 +94,8 @@ Details on this can be found in a separate readme for each test suite: (located at `/same-suite/`) * [Strikethrough](https://github.com/c-sp/gameboy-test-roms/tree/master/src/howto/strikethrough.md) (located at `/strikethrough/`) +* [TurtleTests](https://github.com/c-sp/gameboy-test-roms/tree/master/src/howto/turtle-tests.md) + (located at `/turtle-tests/`) ## Versioning diff --git a/src/assemble.sh b/src/assemble.sh index 7b352a4..f891832 100755 --- a/src/assemble.sh +++ b/src/assemble.sh @@ -28,6 +28,7 @@ print_usage_and_exit() echo " $0 $CMD_GAMBATTE" echo " $0 $CMD_GBMICROTEST" echo " $0 $CMD_LITTLE_THINGS_GB" + echo " $0 $CMD_MBC3_TESTER" echo " $0 $CMD_MEALYBUG_TEAROOM_TESTS" echo " $0 $CMD_MOONEYE_TEST_SUITE" echo " $0 $CMD_MOONEYE_TEST_SUITE_WILBERTPOL" @@ -36,6 +37,7 @@ print_usage_and_exit() echo " $0 $CMD_RTC3TEST" echo " $0 $CMD_SAME_SUITE" echo " $0 $CMD_STRIKETHROUGH" + echo " $0 $CMD_TURTLE_TESTS" echo " $0 $CMD_WLA_DX" exit 1 } @@ -627,6 +629,35 @@ build_strikethrough() } +build_turtle_tests() +{ + print_cmd_title + + chmod +x "$ARTIFACTS_DIR/rgbds/"* + PATH="$ARTIFACTS_DIR/rgbds:$PATH" + + ARTIFACT_NAME=turtle-tests + ARTIFACT=$(mkdir_artifact $ARTIFACT_NAME) + + REPO=$(mktemp -d) + cd "$REPO" + git clone https://github.com/Powerlated/TurtleTests.git . + git checkout b341ff54ec1e6a501d37dd309c556b6968a07eec + +echo $(pwd) + make + + cp README.md "$ARTIFACT" + cd src + rsync -am --include='*.gb' --include='*/' --exclude='*' ./ "$ARTIFACT" + + cd "$SRC_DIR/turtle-tests-expected" + rsync -am ./ "$ARTIFACT" + + cp "$SRC_DIR/howto/turtle-tests.md" "$ARTIFACT/game-boy-test-roms-howto.md" +} + + build_wla_dx() { @@ -675,6 +706,7 @@ CMD_RGBDS=rgbds CMD_RTC3TEST=rtc3test CMD_SAME_SUITE=same-suite CMD_STRIKETHROUGH=strikethrough +CMD_TURTLE_TESTS=turtle-tests CMD_WLA_DX=wla-dx # identify repository directories based on the path of this script @@ -708,6 +740,7 @@ case ${CMD} in "${CMD_RTC3TEST}") build_rtc3test "$@" ;; "${CMD_SAME_SUITE}") build_same_suite "$@" ;; "${CMD_STRIKETHROUGH}") build_strikethrough "$@" ;; + "${CMD_TURTLE_TESTS}") build_turtle_tests "$@" ;; "${CMD_WLA_DX}") build_wla_dx "$@" ;; *) print_usage_and_exit ;; diff --git a/src/howto/turtle-tests.md b/src/howto/turtle-tests.md new file mode 100644 index 0000000..cf9b8d5 --- /dev/null +++ b/src/howto/turtle-tests.md @@ -0,0 +1,27 @@ +# Turtle Tests + +[Turtle Tests](https://github.com/Powerlated/TurtleTests) +are compiled with [RGBDS](https://github.com/gbdev/rgbds). + +## Game Boy Devices & SoC Revisions + +I could not find any information on Game Boy hardware compatibility for this test suite. + +## Exit Condition + +TODO + +## Test Success/Failure + +Test success/failure can be determined by +[screenshot](https://github.com/c-sp/gameboy-test-roms/tree/master/src/turtle-tests/) +comparison. + +To create comparable screenshots, +your emulator should calculate colors as follows: + +- `#000000`, `#555555`, `#AAAAAA` and `#FFFFFF` are used for the four DMG LCD + shades +- LCD shades for CGB compatibility mode are: + - background: `#000000`, `#0063C6`, `#7BFF31` and `#FFFFFF` + - objects: `#000000`, `#943939`, `#FF8484` and `#FFFFFF` diff --git a/src/turtle-tests-expected/window_y_trigger/window_y_trigger-dmg-cgb.png b/src/turtle-tests-expected/window_y_trigger/window_y_trigger-dmg-cgb.png new file mode 100644 index 0000000..12c5b87 Binary files /dev/null and b/src/turtle-tests-expected/window_y_trigger/window_y_trigger-dmg-cgb.png differ diff --git a/src/turtle-tests-expected/window_y_trigger_wx_offscreen/window_y_trigger_wx_offscreen-dmg-cgb.png b/src/turtle-tests-expected/window_y_trigger_wx_offscreen/window_y_trigger_wx_offscreen-dmg-cgb.png new file mode 100644 index 0000000..cc42f59 Binary files /dev/null and b/src/turtle-tests-expected/window_y_trigger_wx_offscreen/window_y_trigger_wx_offscreen-dmg-cgb.png differ