Skip to content

seitanmeitoo/ForzaPainter6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forza Painter 6

Outil qui convertit une image en formes géométriques (rectangles + ellipses tournées) et les amène dans l'éditeur de vinyles de Forza Horizon 6 — soit en exportant un JSON, soit en les injectant directement dans la mémoire du jeu.

Application native Windows en C pur : un seul .exe autonome, GUI Nuklear + GDI, génération CPU multi-thread, aucune dépendance runtime. L'implémentation Python d'origine est conservée dans legacy/ à titre de référence.

État

Étape Statut
Génération image → formes + GUI (natif C) ✅ fait
Export JSON FH6 ✅ fait
Injection mémoire FH6 (étape 2b) ✅ fait
Import via contrôle souris (étape 2a) ❌ abandonné
Génération Python + GUI Tkinter (étape 1) ✅ archivée dans legacy/

Fonctionnalités

Génération

  • Charge n'importe quelle image (PNG / JPG / BMP)
  • Détection automatique du canal alpha. Si l'image est transparente, choix entre :
    • Garder la transparence (mode sticker) : aucune forme posée sur les zones vides
    • Remplacer par une couleur opaque (color picker)
  • 6 presets de qualité ajustables par sliders ; nombre de formes plafonné à 3000 (limite FH6)
  • 6 types de formes : rectangles et ellipses tournées (natifs FH6, sans perte) ; cercles, ellipses, carrés tournés, triangles (convertis/approximés à l'export)
  • Génération en arrière-plan avec preview live et progression

Amener les formes dans FH6

  • Export JSON compatible FH6 / forza-painter (Exporter JSON FH6...)
  • Injection mémoire directe (étape 2b) : écrit les formes dans le processus du jeu via WriteProcessMemory, sans saisie manuelle. Localise le groupe de vinyles dynamiquement (empreinte de sphères + fallback RTTI) et valide avant d'écrire (refuse si pas de candidat fiable, pour ne pas corrompre l'état du jeu). Offsets confirmés sur FH6 build 354.221, surchargeables sans recompiler.

Build & lancement

Pré-requis : MSYS2 UCRT64 avec GCC. Depuis le shell MSYS2 UCRT64 :

cd native
make release      # produit ./vinyl-painter.exe (GUI, optimisé -O3 + LTO)
make run          # lance l'exe
make debug        # build console avec symboles (prints visibles)

Détails (windres, icône, manifest DPI) dans native/README.md.

Version Python (legacy)

L'ancienne application (GUI Tkinter + moteur de génération en Python, accélération GPU CuPy optionnelle) reste fonctionnelle dans legacy/ :

pip install -r legacy/requirements.txt
python legacy/main.py

Crédits

Voir NOTICES.md pour la chaîne complète d'attribution.

About

Outil qui convertit une image en formes géométriques (rectangles + ellipses tournées) et les amène dans l'éditeur de vinyles de Forza Horizon 6 — soit en exportant un JSON, soit en les injectant directement dans la mémoire du jeu.

Topics

Resources

License

Stars

Watchers

Forks

Contributors