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