#20855 - Squeezing A Wordle Clone Onto The Game Boy | Hackaday
https://hackaday.com/2022/03/01/squeezing-a-wordle-clone-onto-the-game-boy/Le principe de Wordle a beau être simple (5 lettres, puis une boucle de 3 « if » par lettre), arriver à faire tourner ça sur une machine ultra limitée c’est tout autre chose.
Non seulement il faut limiter la puissance de calcul à utiliser, mais aussi arriver à faire tenir 12972 mots de 5 lettres (donc 64710 octets, en ASCII) dans une mémoire de seulement 32 768 octets.
Ça c’est le rôle d’un algo de compression.
Exemple tout con :
Si on a les mots « bonjour », « bonsoir », « bonheur », au lieu de stocker ça sous la forme « bonjourbonsoirbonheur/7 » (23 caractères), on peut stocker « bon{jousoiheu/3}r » (17 caractères). Le « /7 » et « /3 » donnant la longueur à laquelle il faut scinder la chaine. Cette règle est stockée dans l’algo de compression.
Avec un bon algo, on obtient des taux de compression très bon, et c’est ce qu’il a fait ici : il a stocké seulement quelques mots en entier, puis, pour les autres mots, seulement les différences avec les autres mots. Au final, les 5 lettres des 12k mots tiennent dans seulement 21k octets (au lieu de 65 ko).
Pour info, le glitch dans pokémon rouge/bleu sur GameBoy où des pokémon niveau >100 apparaissent au large de cramois'Île après une manip avec un personnage de Jadielle, c’est dû à un tweak de la mémoire vive dans le jeu.
Ledit bonhomme prenait la place mémoire du personnage principal, qui lui-même était décalé ailleurs. De décalage en décalage, des on se retrouve avec des pokémon divers à des niveaux supérieurs à 100 (comme une Nosféralto nv. 142).
Idem pour le bug permettant d’obtenir Mew (nv. 7 à Lavanville), ou encore « bugville ».