Page 1 sur 1

Probleme Catchsound

Publié : mar. 03/févr./2026 20:48
par drfloyd
Bonjour,

J'ai besoin d'aide, appel aux experts du PURE BASIC !

Pour inserer des sons WAV dans mon jeu j'utilise cette technique :

Code : Tout sélectionner

CatchSound (0,?sound0)
CatchSound (1,?sound1)
CatchSound (2,?sound2)
CatchSound (3,?sound3)
etc.......


datasection

  sound0:
  IncludeBinary "beep.wav"
  sound1:
  IncludeBinary "valid.wav"
  sound2:
  IncludeBinary "valid2.wav"
  sound3:
  IncludeBinary "faux.wav"
  etc....

enddatasection

Bon, tout allait bien. Mais depuis aujourd'hui ca ne fonctionne plus... j'en ai rajouté pas mal et je suis arrivé a environ 20 sons pour environ 120Mo, et quand je lance mon PRG voici le msg d'erreur :

Image

A priori un probleme de memoire ? Car des que je retire 1 ou 2 .WAV le message disparait.... mais bon 120Mo de WAV ce n'est pas énorme ?

Mais que signifie ce msg d'erreur qui parle d'"image" ????

Re: Probleme Catchsound

Publié : mar. 03/févr./2026 23:58
par Jacobus
Sans code tu n'auras pas beaucoup de réponse...
A tout hasard, vérifie quand même si le format de tes WAV est bien compatible.

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 0:29
par falsam
POLINK : Fatal error: internal error:write_executable_image
Dans le dossier d'installation de PureBasic tu trouveras polink.exe.
Son objectif est de lier des librairies en relation avec ton code.
Apparemment POLINK n’a pas réussi à écrire le fichier exécutable final !
drfloyd a écrit : mar. 03/févr./2026 20:48 Mais que signifie ce msg d'erreur qui parle d'"image" ????
➡️ write_executable_image = échec d’écriture du fichier EXE

Ton code est compilé correctement mais POLINK n’a pas pu créer le fichier éxécutable.

A tout hasard, désactive ton antivirus et essayes de créer l'éxécutable en changeant son nom dans un dossier se trouvant à la racine de ton disque.

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 9:13
par Mesa

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 11:28
par drfloyd
Mesa a écrit : mer. 04/févr./2026 9:13 Il y a une limite à 10Mo par fichier.

Voir ici
https://www.purebasic.fr/english/viewto ... it#p609413

Réponse de fred
https://www.purebasic.fr/english/viewto ... 39#p552739

M.
Bah la limite de 10mo j'ai du mal à y croire car j'ai 3 fichiers de 15, 20 et 25Mo et ca passe nickel...

Sauf que arrivé à un moment je n'arrive plus à en rajouter sans ce fichu msg d'erreur

Ca ne serait pas l'EXE global qui deviendrait trop gros plutot ???

PS : PUREBASIC n'accepte toujours pas le MP3 ????

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 11:36
par drfloyd
Bon je crois que c'est ca, l'EXE est trop gros en compilation.....

La mon fichier fait 130Mo (il integre tout : code, images, sons) et on doit pas etre loin de la limite... si quelqu'un connait cette limite ?

Désormais des qu eje rajoute des trucs ca genere le msg d'erreur

Si c'est bien ca, y a une technique pour contourner ?

j'imagine que ne pas integrer les images et le son dans l'EXE serait la solution ?????

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 12:44
par falsam
drfloyd a écrit : mer. 04/févr./2026 11:36 j'imagine que ne pas integrer les images et le son dans l'EXE serait la solution ?????
Oui 👍
drfloyd a écrit : mer. 04/févr./2026 11:28 PUREBASIC n'accepte toujours pas le MP3 ????
➡️ Non. Mais tu peux avec une DLL https://github.com/pbcodex/FMODEX-MIN-U ... master.zip 🌞

❓Je suppose que l'objectif de ton application est d'écouter de la musique.
Peux tu nous en dire un peu plus sur les fonctionnalités ?

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 13:29
par drfloyd
ah non pas du tout c'est un jeu de role rétro !

Le code fait pour l'instant 15 000 lignes
Y a environ 10 images chargées en mémoire, dans lesquelles je decoupe les sprites
et environ 150 Mo de .WAV

donc à priori c'est trop pour un .EXE unique.... C'est surprenant, personne ne peut créer un code de 150Mb du coup (en un seul EXE) ????

Solutions ?

Pas d'EXE global ? et donc :
chargement des images sans stockage et decoupe des sprites ?
Lecture des WAV à la volée ?

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 14:29
par falsam
Les images tu peux les laisser dans ton jeu.
Par contre les sons à l'extérieur.

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 15:39
par falsam
Au cas ou tu aurais envie d'utiliser fmod, je te donne un exemple simple pour lire un fichier mp3 ou flac. Tu pourras aussi lire des fichier wav.

Le tout dans ce fichier compressé http://falsam.com/download/purebasic/fmod.zip
Ce fichier contient :
- fmodex.dll 32bits
- fmodex64.dll 64bits
- fmodex-min.pbi
- test.mp3
- test.flac
- basic.pb

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 16:27
par drfloyd
Merci pour le lien MP3, et comment tu gères les boucles ? (musique en continue)

Sinon j'ai opté pour la solution simple : j'ai sorti les WAV de Include.... c'est quand meme le plus simple ! Et pas de dll pour le MP3....


Bon sinon, il y a confirmation, meme en pure DATA, il y a une limitation de taille un peu de dessus de 100 Mo pour les EXE ??????

Re: Probleme Catchsound

Publié : mer. 04/févr./2026 18:30
par falsam
drfloyd a écrit : mer. 04/févr./2026 16:27 comment tu gères les boucles ? (musique en continue)
C'est une très bonne question et ce n'était pas prévu dans l'include 👿

➡️ Ajout de la fonction FMOD_Sound_SetMode(Sound.l, mode)
- Sound : Identifiant du son qui est généré par la fonction FMOD_System_CreateStream()
- Mode : #FMOD_LOOP_OFF ou #FMOD_LOOP_NORMAL

Exemple de code

Code : Tout sélectionner

EnableExplicit 

IncludeFile "fmodex-min.pbi"

Define fmodSystem.i, channel.i, Sound.i, Volume.f = 0.5, isPlaying
Define file.s = "sncf.wav" 

OpenWindow(0, 0, 0, 20, 20, "")

;Declarer FMOD system
FMOD_System_Create(@fmodsystem)

;Initialisation FMOD System
FMOD_System_Init(fmodSystem, 1, #FMOD_INIT_NORMAL, 0)

; Creation du flux 
FMOD_System_CreateStream(fmodSystem, Ascii(File), #FMOD_SOFTWARE, 0, @sound)

; Jouer le flux mode loop
FMOD_System_PlaySound(fmodsystem, #FMOD_CHANNEL_FREE, sound, #False, @channel)
FMOD_Sound_SetMode(sound, #FMOD_LOOP_NORMAL)

;Et on ajuste le volume sur le channel (le son est compris entre 0.0 et 1.0)
FMOD_Channel_SetVolume(channel, 0.5)

; Boucle évenementielle
Repeat : Until WaitWindowEvent(1) = #PB_Event_CloseWindow 
➡️ Tu peux récupérer les tests dans ce fichier.
https://falsam.com/download/purebasic/fmod.zip

Re: Probleme Catchsound

Publié : ven. 06/févr./2026 8:16
par drfloyd
Merci pour le code.

Ca servira à d'autres membres,

car je pense rester sur du WAV en le chargeant à la volée dans le jeu.

Du coup, je n'ai pu avoir de reponse pour l'instant sur la taille maxi d'un .EXE Purebasic, je suppose que les créateurs de ce langage ont la réponse. Perso j'ai eu l'impression que la compilation plantait autour de 130Mo...