Aller au contenu

[SINGE 2] New LD Engine + Games (3.32 update + DLIIe surprise)


Messages recommandés

Posté(e)
On 8/19/2022 at 1:51 PM, Karis said:

I began the analysis and cut (not reasonnable). This video is a mess ;)

 

A mess in what sense, surely it's the same order as the original source CD-i disk material?

 

Or is the video just jumbled badly originally and hard to follow ?   i.e. blame the original video devs......

 

I guess it would be a great help to have the original game source so see the frame skips sigh.....

 

 

3 hours ago, mazinger4life said:

Hey Karis je discutais avec scott sur un le genre light gun games et il a dit c'est tres facile a faire avec singe si on comprends bien le langague LUA,l,algebre etc ,j'aimerais savoir ce que tu penses de ca ,si c'est fesable pour toi si oui pourrais tu donner un un fichier exemple comme BLANk pour situer les developpeurs ex changer les nombres dans le script par rapport au video choisi .

 

I think the base issue with gun games is detecting what a **hit** is.

 

If like ActionMax you can register a hit by the color of a pixel in a video frame then fairly straightforward, i.e. detect a while flashing circle is visible, and active, at the point of trigger pull at the gun co-ordinates.

 

If the video doesn't have such artefacts, and is based on an **area** within a specific group of frames (ala MadDog), then you need to manually create 'hitboxes' within frame slots. A laborious time consuming task to say the least, hat off to RDG for all the original gun games.

 

Correct me if I am wrong here guys.

 

Posté(e)
Il y a 15 heures, mazinger4life a dit :

Hey Karis je discutais avec scott sur un le genre light gun games et il a dit c'est tres facile a faire avec singe si on comprends bien le langague LUA,l,algebre etc ,j'aimerais savoir ce que tu penses de ca ,si c'est fesable pour toi si oui pourrais tu donner un un fichier exemple comme BLANk pour situer les developpeurs ex changer les nombres dans le script par rapport au video choisi .

Ben la difficulté pour ce type de jeu c'est surtout les Hitbox.

Frame par frame il faut définir des carrés qui sont les zones où il faut toucher. Ce n'est pas difficile en soit, mais excessivement long.

 

Par exemple dans Mad Dog, le niveau de a banque seul représente 2000 lignes à calculer une par une. Et faut pas se tromper.

 

Il y a 8 heures, GodElite a dit :

@Karis Not sure if it helps, but here's some BD13 guides (walkthrough and death guide):

 

https://gamefaqs.gamespot.com/3do/584317-brain-dead-13/faqs/15299

 

https://gamefaqs.gamespot.com/3do/584317-brain-dead-13/faqs/65190

 

https://www.theworldofcdi.com/cd-i_encyclopedia/brain-dead-13-tips/

 

Please everybody, let's help any way possible to preserve this game remastered in 4K in SINGE!

 

Thx

Il y a 12 heures, xxOToTOxx a dit :

 

A mess in what sense, surely it's the same order as the original source CD-i disk material?

 

Probably Yes. I mean the order is quite erratic anyway

 

Il y a 12 heures, xxOToTOxx a dit :

 

Or is the video just jumbled badly originally and hard to follow ?   i.e. blame the original video devs......

 

Yes, hard to follow. That said they had physical constraints we have not (i mean they had to read a physical thing, so they probably needed some sequences close to each other).

 

 

Il y a 12 heures, xxOToTOxx a dit :

 

I guess it would be a great help to have the original game source so see the frame skips sigh.....

 

 

I will find a way.

 

Il y a 12 heures, xxOToTOxx a dit :

 

I think the base issue with gun games is detecting what a **hit** is.

 

Exactly.

2 ways :

- Detecting a Box

- Detecting a color (better with anime style but works with ActionMax too) 

 

 

Il y a 12 heures, xxOToTOxx a dit :

 

If like ActionMax you can register a hit by the color of a pixel in a video frame then fairly straightforward, i.e. detect a while flashing circle is visible, and active, at the point of trigger pull at the gun co-ordinates.

 

I answered too fast ;)

 

 

Il y a 12 heures, xxOToTOxx a dit :

 

If the video doesn't have such artefacts, and is based on an **area** within a specific group of frames (ala MadDog), then you need to manually create 'hitboxes' within frame slots. A laborious time consuming task to say the least, hat off to RDG for all the original gun games.

 

Yeah, the guy is either crazy or he had access to those hitboxes at some point.

 

Il y a 12 heures, xxOToTOxx a dit :

 

Correct me if I am wrong here guys.

 

 

You are totally right.

Posté(e)

Instead of creating per-frame hitboxes for gun games we (uh, you, not me) need to build some code that allows for linear interpolation of targeting data.  For example, a guy enters from the left side, moves to the center, and stands there aiming at you.  Instead of creating a couple hundred individual hit boxes, you create key frames.  One would be when he enters the screen.  The next is when he stops moving.  The last is when he fires.  Let the computer calculate everything in the middle.

Posté(e)

Good idea but, generally speaking, characters have several hitboxes to ensure precision.

 

A character who's close from the front will generally have 5 hitboxes (head, torso, both arms, legs) where a character who's far only 1.

For example bottles, in the tutorial each have 2 hitboxes: one for the neck and one for the rest.

 

Bottles doesn't move but characters do and it might be difficult with those close guys.

Posté(e)
18 minutes ago, Karis said:

Good idea but, generally speaking, characters have several hitboxes to ensure precision.

 

A character who's close from the front will generally have 5 hitboxes (head, torso, both arms, legs) where a character who's far only 1.

For example bottles, in the tutorial each have 2 hitboxes: one for the neck and one for the rest.

 

Bottles doesn't move but characters do and it might be difficult with those close guys.

 

Dump the ROM data strings and get all the data from one convenient source 🙈🙉🙊

 

 

Posté(e)

quand j install KarisFramework dans ma version singe , et bien tous mes jeux ne fonctionne plus , les deux fichiers en cause se trouve dans script ce sont :

globals.singe

et 

service.singe

je suis obliger de laisser les deux vieux car sinon tous mes jeux singe quitte des l ouverture de la fenetre de jeux , je me demande ou peut etre le probleme...

Merci d'avance

Posté(e)
Il y a 20 heures, Karis a dit :

A character who's close from the front will generally have 5 hitboxes (head, torso, both arms, legs) where a character who's far only 1.

For example bottles, in the tutorial each have 2 hitboxes: one for the neck and one for the rest.

 

Bottles doesn't move but characters do and it might be difficult with those close guys.

 

Following discussions with @mazinger4life I'm interested to code a tool to help with the creation of hitboxes for key frames for light gun games. @Karis can I have the link to the tutorial you are refering to here please?

 

Thanks in advance.

Posté(e)
31 minutes ago, LovCAPONE said:

 

Following discussions with @mazinger4life I'm interested to code a tool to help with the creation of hitboxes for key frames for light gun games. @Karis can I have the link to the tutorial you are refering to here please?

 

Thanks in advance.

 

Not meaning to step on @Karis toes here, but this would be a fantastic function() to have.

 

I believe the tutorial you are referring to could be: https://mega.nz/file/tW51lS5J#cG0SBu2_9cb-65hMcXc4nTErEKue_FXZ8eK8ZshjXJk

 

Can I also suggest that it might be a good idea to use one of the existing "gun" games as a "control" for this "code tool". If you can get the results close to an existing game you know you are on the right track. My 2c.

 

Thanks for looking at this, would be fantastic.

 

 

Posté(e)
Il y a 1 heure, xxOToTOxx a dit :

 

Not meaning to step on @Karis toes here, but this would be a fantastic function() to have.

 

I believe the tutorial you are referring to could be: https://mega.nz/file/tW51lS5J#cG0SBu2_9cb-65hMcXc4nTErEKue_FXZ8eK8ZshjXJk

 

Can I also suggest that it might be a good idea to use one of the existing "gun" games as a "control" for this "code tool". If you can get the results close to an existing game you know you are on the right track. My 2c.

 

Thanks for looking at this, would be fantastic.

 

 

 

Thanks for the reply @xxOToTOxx

 

I already read the tutorial you linked me and it's only for FMV game à la Dragon's Lair. The tutorial @Karisrefered to seems to be a different one (or is it?).

 

About the tool, actually what I wanted to do is first do an analysis of the actual problem (looking at existing gun games, etc.). Then code the tool that solves the problem and do a prototype game with @mazinger4life And as we go along we get feedback from you guys. When @mazinger4life  told me about this I was immediatly interested.

 

So @xxOToTOxx when I'm done with the analysis, before actually staring to code I'll share with you (and anyone interested) my solution.

Posté(e)
19 minutes ago, LovCAPONE said:

I already read the tutorial you linked me and it's only for FMV game à la Dragon's Lair. The tutorial @Karisrefered to seems to be a different one (or is it?).

 

Ok, not sure then....

 

19 minutes ago, LovCAPONE said:

About the tool, actually what I wanted to do is first do an analysis of the actual problem (looking at existing gun games, etc.). Then code the tool that solves the problem and do a prototype game with @mazinger4life And as we go along we get feedback from you guys. When @mazinger4life  told me about this I was immediatly interested.

 

So @xxOToTOxx when I'm done with the analysis, before actually staring to code I'll share with you (and anyone interested) my solution.

 

Sounds perfect.

 

Posté(e)

I'm still hoping for some 2 players versions of the alg gun games. I'd love to play these with a friend, like the wii version but with a much better quality and with my 2 sinden guns.

I'm wondering what needs to be done for that. As all the hit boxes are already defined, and the game logic is implemented for player 1, an important part of the hard and tedious work seems already done. Depending on where the bullet impact is (left or right part of the screen), player 1 or player 2 would take damage.
 
Even if it's not perfectly authentic (although I think I saw a 2 players cabinet when I was young), it would be much more fun than solo play. Probably a lot of work, but that would be awesome (and would certainly please a bunch of people). Anyway, thanks for your hard work everyone. Much appreciated.
Posté(e)

Hi @xxOToTOxx , so the first thing I wanted to do was to analyze how the game "Maddog McCree HD" was handling its hitboxes. So I coded a quick test program that extracts a frame from the game's video file and "blits" hitboxes on the frame (just as a visual proof that my analysis was right). So here's a frame from the bank level.

 

So for the next step I'll research existing tools for hitbox managam ent in game engines to see if I can use/extend an existing tool so that I don't reinvent the wheel.

hboverlayoutput.jpg

Posté(e)
39 minutes ago, LovCAPONE said:

Hi @xxOToTOxx , so the first thing I wanted to do was to analyze how the game "Maddog McCree HD" was handling its hitboxes. So I coded a quick test program that extracts a frame from the game's video file and "blits" hitboxes on the frame (just as a visual proof that my analysis was right). So here's a frame from the bank level.

 

So for the next step I'll research existing tools for hitbox managam ent in game engines to see if I can use/extend an existing tool so that I don't reinvent the wheel.

hboverlayoutput.jpg

 

Looks very promising :)

Posté(e)

Hi @xxOToTOxx , so for the problem of defining hitboxes in light gun games, I think I found a solution. By using the OpenCV library and the Mask R-CNN technique, the definition of hitboxes can be computed automatically.

 

In the picture, all the blue boxes were placed automatically. It's not perfect but imagine all the work that it saves! On a Intel Core i5 2.5 Ghz laptop, the computation takes about 3 seconds.

So, the next thing to program is an algorithm to reduce the number of hitboxes (all boxes that are adjacent can be "merged" into bigger hitboxes). Then test this technique on actual frames of existing light gun games.

 

So I think that with a decent tool that will allow the user to "adjust" the hitboxes in an intuitive way, this could be a decent solution.

 

Tell me what you think.

Mask_R-CNN_Test001_2022-09-13-18-54.jpg

Posté(e)
14 hours ago, LovCAPONE said:

Hi @xxOToTOxx , so for the problem of defining hitboxes in light gun games, I think I found a solution. By using the OpenCV library and the Mask R-CNN technique, the definition of hitboxes can be computed automatically.

 

In the picture, all the blue boxes were placed automatically. It's not perfect but imagine all the work that it saves! On a Intel Core i5 2.5 Ghz laptop, the computation takes about 3 seconds.

So, the next thing to program is an algorithm to reduce the number of hitboxes (all boxes that are adjacent can be "merged" into bigger hitboxes). Then test this technique on actual frames of existing light gun games.

 

So I think that with a decent tool that will allow the user to "adjust" the hitboxes in an intuitive way, this could be a decent solution.

 

Tell me what you think.

 

This is really good stuff. I have two things that spring to mind about doing this, I suspect more will arise as games are created.

 

1. The hitboxes should, as you have stated, be aggregated the largest box areas to minimise the checks in the code, we don't want to create large lists of if/else statements in LUA. Not only for the inefficiency but also due to the resource consumption it will cause, particularly on smaller CPU devices like the RPi. Which leads me to the next point.

 

2. The overlay size these hitboxes are created within. All the original gun games were created by RDG on a 360x240 overlay (if I recall correctly). i.e. half the 720x480 original video resolution. All the existing gun games are created with this overlay scale, including the HD versions thanks to Karis's magic in the LUA. This again has the advantage of keeping resource consumption low and making game decision execution faster. The overlay size in Hypseus is based on original Singe 1 codebase, this is the reason is works so well on the Pi currently due to the 8bit nature and restrictions on the overlay size. If overlay sizes are increased then more resources are required, I know this has even affected some PC CPU setups on large resolution games. So, and I admit there is a vested interest in keeping new gun games playable on the Pi, I think using the current overlay size would be a benefit if you want these games available to a wider audience (The Sinden Pi guys will go crazy for a new Singe Gun Game). This would probably also aide your calculations in the algorithm as it would have less pixel area to concern itself with, maybe at the loss of some finer control, but hey these are lightguns, accuracy is only so "accurate" :)

 

Throwing open to discussion here.....

 

 

Posté(e)
Il y a 1 heure, xxOToTOxx a dit :

The overlay size these hitboxes are created within. All the original gun games were created by RDG on a 360x240 overlay (if I recall correctly). i.e. half the 720x480 original video resolution. All the existing gun games are created with this overlay scale, including the HD versions thanks to Karis's magic in the LUA. This again has the advantage of keeping resource consumption low and making game decision execution faster. The overlay size in Hypseus is based on original Singe 1 codebase, this is the reason is works so well on the Pi currently due to the 8bit nature and restrictions on the overlay size. If overlay sizes are increased then more resources are required, I know this has even affected some PC CPU setups on large resolution games. So, and I admit there is a vested interest in keeping new gun games playable on the Pi, I think using the current overlay size would be a benefit if you want these games available to a wider audience (The Sinden Pi guys will go crazy for a new Singe Gun Game). This would probably also aide your calculations in the algorithm as it would have less pixel area to concern itself with, maybe at the loss of some finer control, but hey these are lightguns, accuracy is only so "accurate"

 

Actually, with the OpenCV library, the input bitmap has to be of size 600x600 ideally but with scaling I can support any video resolution. For example if the original video frame resolution is 720x480, I will just resize the bitmap to 600x400. Because from what I saw, in the game Mad Dog McCree, hitboxes were defined in a different resolution than the actual video frame (I think the hitbox resolution was in 360x240 as you said). So with a bit of scaling it's not a problem.

 

But when I originally had the idea to use object recognition for this problem, I was sure it wouldn't work. I talked about it with @mazinger4life a bit with no hope. But when I discovered the Mask R-CNN technique I was pretty excited with the possibilities. My last fear is the speed of the computation, that can be a major deal breaker since now it's done on the CPU and not the GPU. So I haven't tested when on the input bitmap there are a lot of object  to detect.

 

So I hope @Karis and @sduensin can give us their inputs on this also...

Posté(e)
19 hours ago, LovCAPONE said:

Hi @xxOToTOxx , so for the problem of defining hitboxes in light gun games, I think I found a solution. By using the OpenCV library and the Mask R-CNN technique, the definition of hitboxes can be computed automatically.

 

In the picture, all the blue boxes were placed automatically. It's not perfect but imagine all the work that it saves! On a Intel Core i5 2.5 Ghz laptop, the computation takes about 3 seconds.

So, the next thing to program is an algorithm to reduce the number of hitboxes (all boxes that are adjacent can be "merged" into bigger hitboxes). Then test this technique on actual frames of existing light gun games.

 

So I think that with a decent tool that will allow the user to "adjust" the hitboxes in an intuitive way, this could be a decent solution.

 

Tell me what you think.

Mask_R-CNN_Test001_2022-09-13-18-54.jpg

 

That's fantastic!  OpenCV never even occurred to me!  Even stuck with CPU calculations it's a hell of a lot faster than doing it by hand.  And what others have said about the overlay being half the video size is typically true.  That was how it worked under Daphne so it's the default in Singe 2.  However, you can change the overlay resolution to be anything you want.

 

This is very promising!

Posté(e)
Il y a 20 heures, sduensin a dit :

OpenCV never even occurred to me!  Even stuck with CPU calculations it's a hell of a lot faster than doing it by hand.

It was said that GPU support would be implemented but I don't know when exactly. Maybe it's event avaible now, so that would be even more sweet.

  • 2 semaines après...
Posté(e)
Le 30/08/2022 à 22:12, LovCAPONE a dit :

 

Thanks for the reply @xxOToTOxx

 

I already read the tutorial you linked me and it's only for FMV game à la Dragon's Lair. The tutorial @Karisrefered to seems to be a different one (or is it?).

 

About the tool, actually what I wanted to do is first do an analysis of the actual problem (looking at existing gun games, etc.). Then code the tool that solves the problem and do a prototype game with @mazinger4life And as we go along we get feedback from you guys. When @mazinger4life  told me about this I was immediatly interested.

 

So @xxOToTOxx when I'm done with the analysis, before actually staring to code I'll share with you (and anyone interested) my solution.

 

Actually, there is no tutorial for the Gun games. They are converted one by one because they were all made differently (with variants).

As the hitbox is still an issue for now, i did not created a generic engine to manage Gun Games. Of course if there is hope i will think about it.

 

For your knowledge, all the HD versions of ALG were done using maths. In order to keep the hitbox as they were (cause there are thousands of hitboxes per game) i use the original 360*240 hitboxes and convert them in realtime to the resolution of the game.

The formula is based on a central symmetry and includes the slight zoom i generally apply to remove the tiny black lines. A bit crazy but this is really precise.

 

 

 

 

Posté(e)
il y a 29 minutes, Karis a dit :

Actually, there is no tutorial for the Gun games. They are converted one by one because they were all made differently (with variants).

As the hitbox is still an issue for now, i did not created a generic engine to manage Gun Games. Of course if there is hope i will think about it.

The tool I'm coding right now focuses first on the hitboxes definitions. But would you give me permission to extend your framework to support light gun games?

 

The way I see it is that first the user would load all the video frames. Then with my tool, place all the hitboxes for each frame. Using the Mask R-CNN technique a lot of this work would be done for the user by the CPU (or GPU).

 

For the framework, instead of processing inputs for "moves", the framework extension would process inputs (position on screen) VS hitboxes. There would be a lot of modification to be done on the original code but if you give me permission I can do it. If not, then I can just focus on coding the hitbox tool and when you can, you'll extend your framework if you see a need for it.

  • 2 semaines après...
  • 2 semaines après...
Posté(e)

 

@Karis Is there a post with links to the Hypseus versions of the games to download?  I found this link for the Singe2 versions: http://www.emuline.org/topic/2134-singe-2-new-ld-engine-games-332-update-dliie-surprise/ but those links don't seem to contain the .txt files, for example, dle.txt in order to get them running in Hypseus on a Retropie.  I've downloaded many of the links I found on archive, thank you very much for those, but wondering if you had a complete list of everything.  Thank you for all of this!

Posté(e)
On 10/25/2020 at 5:51 PM, Karis said:

GAMES: 

 

You can find the links for the games on the Singe website. For my own games i provide you this link (i suggest you use it since it's updated as soon as i make modifications/corrections) : 

For easy maintenance (future updates) I separated the app from the games directory. So you have now to download each game separately. 

 

 

Do you have any updated game links for some of the newer games like Friday the 13th, Rollercoaster, Dragon Trainer, Platoon, Future Boy Carbon, etc...  Looking for the original .mp4 movie files on those.  Thank you!

Posté(e)
Le 24/10/2022 à 19:08, mrobss a dit :

 

Avez-vous des liens de jeu mis à jour pour certains des jeux les plus récents comme Friday the 13th, Rollercoaster, Dragon Trainer, Platoon, Future Boy Carbon, etc. Vous recherchez les fichiers de film .mp4 originaux sur ceux-ci. Merci!

https://filen.io/d/5dd1ba5c-2d35-4ebf-b3c6-7176607f3f3f#!S27KSTqJ69dgxzcXljQLMnqJEaBejdUR 

https://uptobox.com/kgidc95lkh0l

https://uptobox.com/ylbxbuqoru9r

https://uptobox.com/kgidc95lkh0l

https://mega.nz/file/tkUCxaAa#exKYPoKpqVkrljzL1npBJsPl0JRV3kIDQNLTmCyckMM

Posté(e) (modifié)

please i need help i isolated the UP command in the Karisframework in the file KarisFramework/Script/main.singe
I have already isolated part of the code

the overlay displays the animation
I have the text message in case of failed movements
but I don't have the part with the sound for the movement succeeds
and the part with the sound for the miss movement
I can't isolate it

Karis is missing again I can't ask for his help, can someone help me please

 

 


here is the isolate part of the code


------------  part 1

elseif (move[currentMove][correctMove] == UP) then

                fontPrint(getMiddle("UP"), OVLH/2, "UP")

--------------- part 2

else

            fontSelect(fontBig)
            if (move[currentMove][correctMove] == UP) then

                fontPrint(getMiddle("YOU SHOULD HAVE GONE UP"), OVLH/2, "YOU SHOULD HAVE GONE UP")


----------------- part 3

elseif thisMove == UP then

                goTimer(0.1)

                if heartbeat then

                    if posyUARROW > endyUARROW then posyUARROW = posyUARROW-LINEH end
                    spriteDraw(posxUDARROWS,posyUARROW,sprArrow[UP])

                end

------------------ part 4

sprArrow[UP]         = spriteLoad(MYDIR..MIDIRES.."arrowup.png") (modifié)

 

 

 

 

 

 

please i need help i isolated the UP command in the Karisframework in the file KarisFramework/Script/main.singe
I have already isolated part of the code

the overlay displays the animation
I have the text message in case of failed movements
but I don't have the part with the sound for the movement succeeds
and the part with the sound for the miss movement
I can't isolate it

Karis is missing again I can't ask for his help, can someone help me please

 

 


here is the isolate part of the code


------------  part 1

elseif (move[currentMove][correctMove] == UP) then

                fontPrint(getMiddle("UP"), OVLH/2, "UP")

--------------- part 2

else

            fontSelect(fontBig)
            if (move[currentMove][correctMove] == UP) then

                fontPrint(getMiddle("YOU SHOULD HAVE GONE UP"), OVLH/2, "YOU SHOULD HAVE GONE UP")


----------------- part 3

elseif thisMove == UP then

                goTimer(0.1)

                if heartbeat then

                    if posyUARROW > endyUARROW then posyUARROW = posyUARROW-LINEH end
                    spriteDraw(posxUDARROWS,posyUARROW,sprArrow[UP])

                end

------------------ part 4

sprArrow[UPBAD]         = spriteLoad(MYDIR..MIDIRES.."arrowup.png") (modifié)

main.singe UP.txt

Modifié par BLADESCATER
Posté(e)
Le 25/10/2022 à 01:08, mrobss a dit :

 

Do you have any updated game links for some of the newer games like Friday the 13th, Rollercoaster, Dragon Trainer, Platoon, Future Boy Carbon, etc...  Looking for the original .mp4 movie files on those.  Thank you!

all in my site

Posté(e) (modifié)

Quelqu un aurait un fichier configuration pour une manette xbox 360 car pas moyen de la configurer , je ne comprends pas

 

Bon voila je me suis amusé a refaire sur mon ordi ma section singe , j ai mis a jour singe et le frameworkkaris et apres, je repris les jeux qui ne marcher plus , maintenant je peux lancer le menu.bat et je vois bien mes jeux avec ce menu.

Le probleme c'est que ma manette ne fonctionne toujours pas et que lorsque je lance un jeux je suis obliger aussi d'utiliser le clavier , mais voila,pour contrer ce probleme je lance antimicro ou antimicroX (j'ai configuré les touche clavier avec ce programme pour ma manette) et maintenant je parviens trés bien a jouer avec ma manette avec un jeux lancé par menu.bat.

je recherche toujours un bon fichier controls.cfg qui fonctionne avec la manette x-box 360 ....

Modifié par ViRuS-MaN

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...