From 5683b0117ff0fd6bf053d1235d08a2bffb020996 Mon Sep 17 00:00:00 2001 From: Christoph Sprenger <66515552+c-sp@users.noreply.github.com> Date: Sat, 17 Feb 2024 14:03:45 +0100 Subject: [PATCH] add TurtleTests --- .github/workflows/build-and-release.yml | 1 + CHANGELOG.md | 2 ++ README.md | 4 +++ src/assemble.sh | 33 ++++++++++++++++++ src/howto/turtle-tests.md | 27 ++++++++++++++ .../window_y_trigger-dmg-cgb.png | Bin 0 -> 2006 bytes .../window_y_trigger_wx_offscreen-dmg-cgb.png | Bin 0 -> 2095 bytes 7 files changed, 67 insertions(+) create mode 100644 src/howto/turtle-tests.md create mode 100644 src/turtle-tests-expected/window_y_trigger/window_y_trigger-dmg-cgb.png create mode 100644 src/turtle-tests-expected/window_y_trigger_wx_offscreen/window_y_trigger_wx_offscreen-dmg-cgb.png 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 0000000000000000000000000000000000000000..12c5b87e963290baa11f5db7a1c07ef91ccc7210 GIT binary patch literal 2006 zcmV;{2Pyc8P)0058(1^@s6kF{Wc000M_Nkl z*|wx03`O;>`u|_HUs@MM5i*bv)U%(uuQHlqI3&6s$8l``+4p_hwrwl^#KNVau1m`* z?`!@0WHf&Y&%Rg@&-PpRNGtMG$_~Dx0gW=V{jK~z<%LN0eZLB>%WIXd?Sx+b9@L|6 ztA4#YOGoU{>%IDo;938&exLH@hzD0rmsBN3I!ltjC%uO&U2g3A-u%H>uS@G^MO(iX z^%CmjLnZJ;Q_&UkZIPHCR+%UBk`_k(pBa8=<@+HfkGN0>N9@#&u7oat``udaEkK;Jr+yNk$ zecQHU+n|Sm9R9K^0N%}qT8m)x12gzJ34!5(nKajc0LzQiKdO5z%f-?mKNZ{?S=iPn{nP=;l5Z&@N@#g&HP!6fbaSS;ejHE9gIF$#Lzoz~@<2%!92LMYN zY5Lj+(0h=&M!={cwuE!2yrY*(iPc{(+S_Gh4HrHIue5Gkp$;RAjzTBi1Hj7t`k|a5 zSMxXX&ffx6Kacun_J5CP`+z?nNae>H#$%+Ik>^M`+WO3@e{?;l^ilmL;mZJ5=w$FN z+yc`_*9g7zJsr=QzlG752rgf)eZ4%TF&UD2Nba?i-{P-K>~VzC)0CohKxzG~c<6v5 z^rq0Ve6If~to0vhzl#hb-34+w;N8hu!bGbGQY`H!r(mst%n-6y$J$;G16rZ~E#>{V zV_8SUku?za07iAZJLrJrxwPd$dgyf4`j509Iv_}e^oYKbUCugA^e88DohGgS%;VXn zGs3E@bZ%{dtN-2GXCds}FfARAx~|RNvcQf$Yt^)$@-Qj?9nn6Gj%dl>g3A=l38@}J zaxWcc;Iqo-@{bw;N2k_V&#y%@DCw>;3a2wh>vT`o0VCSCls{lJ(QVA^!x=hYMEm~g zQNv=8bspOEmU67=B0M_0@*g?I^L~E4>#oP7&;dav zwC8cjFryDus{?Awl;p3`xx95Y>GgBRYE9p|?xC}0F+~TY?$eT`18VgD*JI92c}?<1*Tw-3Z`I?3Z`I?%Fov_ z0hq~D9Z(y+Hal+k?Q7qR_BY=RlNFTo^tj>Z`mNsn7E1&r)g!Q_Bg;IjKb~1}#oD-F zZP@3E?I-i4HX)vcT!ks)YrXQ9E-|9wnYH!p29rw=p(9r^~l^?6ZhJ< zdi$ICA}$zY@-+qbtb0b#QuZP`YX-Rc%rinWDz4_7?<0r!H_)11pH#jjfAS=x%(TSv zein($(E2}Dj~eL+C%M;BzBIjM0iUTuYOibB_jhKt!thW1g6c(hPeme1uc>3>Q4S}buA!ZAySaQT1K59dCuz0VUU^jOu)&WbdNEFJJChy={2!x)krJ z&r)`DIY7q}VVPdLJV_a6In+Hc&bcgMfZHZt!;O}4(vup%JeD~Lv91AIB6lzSc|TYK z=zt&yq-RAbM@tRQ~1tzz67nAeFB*pk#dow{_r&I4)Rv4*(j({(vw( z5P?Vs#O@A6!Rml8J`jmmh^{vun3919A|0>qwIv_}e^#>gB1q6UY1T2zV#Z0YNIz0YNHef57@a04%UNp!8*x09a7@1L75B zz#G&10bzW=3$+Xb;{%>R2L!3W06{9y0YNJGUNA@n-wOt*ATAiB^0fxU6bxpgdOskh oVBig87?2A50YNIz0YNJN07c6IJmlZn1ONa407*qoM6N<$g0dXhYybcN literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..cc42f5954d9161beeaf938827cf276e21c9149ee GIT binary patch literal 2095 zcmV+~2+;S5P)0058(1^@s6kF{Wc000N}Nkl z$(G|F3`KEH{{NTLn|6-NL1;$Ues|SfU<6oUc!*^Cd_JG{pKaS(Yposr#KJv8rAuuc z^Y#9{<1L>evM<0d@BJU#i?}OCXMqFF=iS;I=i9dJ`(n@bdiJ$WFe*QS^XS{F->A;g z5!;(Ss^5ydTWhH=?l@gio#^Q-N%@hCUaoYxv29!T17l5>)^A1Ld=@`cM_#4;o~;Tb z1H_e_ueC`I$T6CN_Yv-x=W1)UUK=#&$9#7q%mF>?IBmWwZkT$T9cg;cLGR*>+vhGV zSs1Ouozw5k_W681o(_=cbl%0XrhXE;Tp4#_^=bXxTThL4Sr*P^X{Jz3{j8$+otdd~ zTFOt~gdEo|=TR~WN>}7`M{eCUvZ2-CJmt@rq9b)m&EWN>8XDQa^CEh-48x^sM^3E{ z7p3z_>|4;*uZMMT`8f%B()6^W-DO(SxTQz+?p`AkMfpj04X8n))19ZM71esp8ra%r zT>k1lk$$iu-{IC;BTKRDgwOvUt+%3g!JbV>G&bUt*)1A37kYWEc$t z-vrtGiH2$InOYgB<8}NGoDawvvoECAVbHz61a!7N^qI5YsVa7V)c;NfQ%48Tl& zqG2LVDUM`Cz|7<-_4n433)VOib{5PT;(&&@2Htf%^?Y``=rR}6rDu(jXV1?|&Z>Ki zMuOS#f+Mn=Zw9Yp1+qu3{gX2a5T$}hC3v1cww)@2DqmB7E?)3hhNkYGcQ<w7dE%p!XP z=#_7Qs$WF?J!`;BsJ;uk4uE(-Pzf0kov{X)vB{Cxv1*;wpVe%gFS_3(eAj^0oeQ2x z+IPc5u7M)%L`3YcJvyMIT&{hiG9~tY=!J_})+5Q&aQrEAN#EU>djcuo7M2$SQ#Guo%o5iR9g2sw)5gwzNjdGs9T;Ir&= zM}S@jD^2$o@c8eqd(|AQ|m@oktDJ@Omyo z`@F@D^|=T=FsppeQDOA^8>L6~A9O%a3b_esEq@)66>I>m0~wN^f!9&sX!nD>m>#J^ zNpvtx`4u`K_q;TH-?3Vs@1;lRtW|v1fDz8;)xorO&VN4=sRL^DJ5Feh*5NXBx@>-A zm@8D8B1;F<>TK3D?PK0|HxN6%^E0j-SseXm27?Gc&ncmG)7 zQ<$+vmQH~c>+`Jke}AegJC<(-)_6e)5q(6}kBj#^+8niU_4aqmMLZy=qifYdaaTA#Cvrp=?Evu zYq2kV-m-wN)FHL$n)bc+!d4jmsZY>(5kArpIVr<3ic2>EBYKyZdUiaU5UYKzd`bUH z+Sg-=lMs$sIvhv#^vUUz+4e^V64P|Rk#Vb+M>JrCv+9h~2e18E<)`X^(u#QuTb*|& zLWi3`Gm20EahiqZHkh;=|oI!D%YB{>!79qdOPy2JVGh;%?n zdKJ_TjjHde?RYAz4k$^N;??=QRPUm}FMqVVYF5mPXTK(q^n8G%s4k|T{~m?p;=05> zb%|bUn=1d9AH)D15R~#~4JcV(A#5E)BEA#f2aXcWL4`d+H0kOLSS+F`FoDXCo z7NXCa4@}7*0+9}Q1S2Ad1Ueung^dUF!~z1qA&LiV4Gsr#z`bBlis<_RdubREK?Leu zaBFqpP~d)uglJ6BAd4m90l{;D4hTvy{a!GY2LLT19T3NFAPZIpg!6$+paX(Zmbw=V zp2sr369S$IbU;uFbU;vwIUeww4*(0S4k-PyN&qaV;sNm$Wgr^U_XEQDKon{j2F?c} zfer{tfdhh4paX(Z@O#0a6#QN=C