Sunday, March 21, 2010

About signed drivers...

A lot of the problems/issues around PPJoy have centred around driver signing (PPJoy uses test signing certificates which in turn requires Windows to be in Test Mode).

So why not simply sign PPJoy with the proper "real" certificates? Simple answer - they cost a lot of money: see http://www.verisign.com/code-signing/content-signing-certificates/microsoft-authenticode/index.html. $500 per year is downright nasty.

If enough people chip in with donations I will release a properly signed version of PPJoy, possibly as "PPJoyPro". I've been toying with the idea of a non-free PPJoyPro with some extra features (suggestions?)

Unfortunately PayPal does not allow South Africans to receive money - only send money through PayPal. Which means I need to find another way to set up a donate button or similar :-(

And comments/ideas?



73 comments:

  1. Omfg 500 dollars a year?!
    every year?
    whack...
    I guess I nonfree version wouldn't be a bad idea. Your drivers are pretty good quality, and i think your work should get you something. Would you have a version that is free along with a nonfree version? and what sort of extra features are you thinking about implementing?
    sry i didnt contribute any ideas on donations, but i'm not sure how myself.
    Anyways keep up the good work man! =]

    ReplyDelete
  2. I found http://wxmesg.blogspot.com/2009/11/security-warning-publisher-could-not-be.html which may be of interest - $40 for 2 years sounds a bit less nasty than $500 per year..?

    ReplyDelete
  3. Thanks Matt. Unfortunately Microsoft is very picky about the certificates used for signing kernel mode drivers - only six CAs are supported (see http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx) - I think this disqualifies StartCom/StartSSL :-(

    ReplyDelete
  4. Ah - I wasn't aware of the different requirements for drivers, https://forum.startcom.org/viewtopic.php?f=15&t=1768 confirms it's not possible "If you have kernel mode driver code you have written yourself, you will need an SPC, so startcom cannot be used for that.".. :-(

    ReplyDelete
  5. Well I will donate for a Pro version for sure, and I know others that will, too.
    For extra-features in PPJoyJoy.exe I'd suggest:
    -more buttons (32 or even 64)
    -more sliders (4-5 in total)
    -more dials (3 at least)
    -support of POV hats

    this would make my G940 fully functional in MWLL (http://mechlivinglegends.net)
    I already spread the word about your tool and your plans for the license/signing in their wiki (http://wiki.mechlivinglegends.net/index.php?title=PPJoy_for_using_multiple_joysticks)

    Poldi

    ReplyDelete
  6. I agree with Poldi on this. I haven't gotten PPJoy to install/work under Win7 64bit Home edition because of signing issues. And I also want to get the G940 working for the same reason.

    I would 'buy' a professional version for sure. PayPal not working is a problem though. No idea yet - but there has to be a work-around.

    Kirin aka QiLin

    ReplyDelete
  7. I could pay you $500.00 if you could get a capture button working as a joystick button #1 with a webcam/intra-oral camera.

    Most seem to use a Sonix chipset but others use an Empia..

    I would prefer this to work with Sonix. I opened a job on elance yesterday, but I would prefer you to do it, as I stated in the bid I would prefer it too work with ppjoy, but it doesnt have too. I know its possible because someone already did it with your software.

    I could pay you and sell it or you could sell it. Dont care. Dentists love these cheap cameras, then get mad when they capture wont work.

    Just need Sonix SDK for API Calls?


    http://cgi.ebay.com/4M-New-Dentist-Dental-Intraoral-Intra-Oral-Camera-USB_W0QQitemZ390150524130QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item5ad6c88ce2

    ReplyDelete
  8. about receiving money in SA, try this: https://www.moneygram.com

    If Mr. Shafer would pay the whole amount I'm sure people would like to help compensating his spendings ;)

    ReplyDelete
  9. @Justin: please mail me at ppjoy.driver@gmail.com for offline discussion

    @Jörg: Thank you for the suggestions. Curiosity shake, what would you use the extra sliders/dials for? Flight sims? I already have a private build which supports 32 buttons which I can probably increase to a max of 128 :-)

    @All: what kind of activitation / copy protection (if any) would you consider reasonable on a pro version?

    ReplyDelete
  10. I would use it mainly for Mechwarrior (maybe you like it too, posted their website before), although at the moment I couldn't use all those extra functions in there - I'm just thinking other people with the G940 stick might want to map all its functions with PPJoy. Most flight sims I have support multiple joysticks anyways.

    I don't know how many activations you would have to deal with, but maybe you could just send out serials by email on registering/payment.

    If Mr. Shafer and you team up for that dental camera thing you might do a "Dentists only" version to generate the income for a signature and you could still provide a free (or at least still really cheap) tool for casual gamers like me :)

    ReplyDelete
  11. Oh, and in version 0.8.4.6 seems to be a bug regarding the POV1:
    In the joystick.exe window and in games I get a constant output of +17999 on POV1.
    see http://wiki.mechlivinglegends.net/images/d/dc/Joystickexe.jpg

    ReplyDelete
  12. i cant download the 0.8.4.6 version, the link is dead (realy, check the comments in older post!).

    ReplyDelete
  13. Randomish comment. Despite having used PPJoy on and off for years I'd never clicked that you were South African.

    Anyway, FNB are bringing PayPal to SA. Unfortunately I think it's for FNB customers only but maybe they'll let the other banks piggy back. I'm also not sure when they're introducing it but I'm sure a bit of googling would turn it up. Never-the-less there may be hope if you want to go the PayPal route.

    ReplyDelete
  14. @Andrew: Thanks! I also saw the announcement yesterday - this is really great news. I'll definitely open an FNB account and set up the PayPal link. Welcome to the 21st Century :-)

    @Jorg: I'll check out the POV functionality when I get a chance.

    ReplyDelete
  15. Hi Deon!

    I've used a long time ago the PPJoy with a RX transmitter and an old PC. But now I bought a newer one and it doesn't have a parallel port, so I bought too a Parallel USB controller/conversor.

    But, the problem is: It doesn't have an IRQ assigned to it, so PPJoy cannot read it. It's possible to assign an IRQ to it or do PPJoy read it without an IRQ assigned to it?

    Thank you very much.
    Greetins from Brasil! :D

    ReplyDelete
  16. Hi,
    What about other online send/receive money providers?
    Moneybookers , ecocard come to mind for example. I would buy ppjoy just as I would buy 20$ racing game on steam (just to find out that it has no mouse driving, AGAIN).
    Btw I got the driver installed with "manual" installation walkthrough someone posted earlier, somewhere.
    Thx for your work.

    ReplyDelete
  17. @Bernardo
    PPjoy doesn't work with the USB Parallel ports. You will need a PCI extention card with a parallel port on it if you want PPjoy to work.

    ReplyDelete
  18. @Ganoderma
    Hmm, I was afraid of that...
    Anyway, thank you very much by the help!

    See ya!

    ReplyDelete
  19. HI,

    I've written a DLL to communicate with PPJoy Virtual Joystick interface, and i'm missing a rumble feature, or even force feedback.

    About pro/basic version:
    - Basic: just control joystick with keyboard/mouse, basic settings available (like just button mapping)
    - Pro: control joystick with keyboard/mouse/external device/external APP or DLL, advanced settings (like button mapping, port config, ini import/export, ax config)

    and if enough people donate, sign the pro version driver!

    ReplyDelete
  20. Is there a way to interact with PPJoy programmatically (as GlovePie does)?
    I would like to write an utility to map a WiiController to a PPJoy Virtual Joystic.

    ReplyDelete
  21. What's so hard about disabling driver signing?

    Signing offers little protection anyway, bad drivers are still getting through.

    ReplyDelete
  22. Luca,

    Watch the IOCTL sample in the package IOCTLSample.zip (Docs\Diagrams\Virtual\IOCTLSample.zip) i've made WeeWheel wich does communicate with a DLL to ppjoy. you need experienced knowledge of c++ programming.

    ReplyDelete
  23. Deon,

    Why is PPJoyJoy limited to 16 buttons? PPJoy supports 32 yet PPJoyJoy is limited to those 16.

    Is there a way you could release a version that allows you to take advantage of all 32? 16 buttons is far too limiting!

    ReplyDelete
  24. plz send e-mail to me with the file ppjoy0846testrelease
    plz

    vary thx man

    thiagoribeiro82@uol.com.br
    thiagoribeiro82@hotmail.com

    ReplyDelete
  25. @DeonVDW:well you asked "what kind of activitation / copy protection (if any) would you consider reasonable on a pro version?"

    I'm not completely on roll with the whole pro idea but if that makes you enogh money to sign the drivers than I think you should make only one installer to pick which version they want to install for the "pro" version they would have to pay you to send them an email that has a verification key
    that they would have to enter while in the installation process (so they can't hack it by modifeing some installation files before the first run)and after puting the key in then they should have to put their email adress in so that you can make sure that they actualy paid for it.

    I mean if that isn't too complicated for you to do.

    In all of the features you should have something stupid to convince people like automatic updating and make it more user friendly.BTW if you do this or some thing similar you should have something that checks that they didn't just rip you of or something(if they manage it...).

    If you can't do some of this stuff just do the one you can ,don't ask me!

    if you do some of this stuff please tell me at
    dsifriend@gmail.com

    from:dsifriend

    ReplyDelete
  26. @Luca

    GlovePIE works together with PPJoy so you can use GlovePIE to make the nunchuck a virtual joystick. You should be able to use buttons also, but you can map those to keyboard buttons also. I never had any trouble with it this way. (Using a Wiimote to play N64 games on the computer, full range joystick is needed to play most games properly)

    ReplyDelete
  27. @Ganoderma
    I want to bypass GlovePIE and write a custom app which connects to the Wiimote and emulates a joypad (it will be mapped as a steering wheel).

    @Danny Daemen
    I'm checking the example. Thanks!
    I worked on usb and device driver stuff in linux and win environments, so I'll try.

    ReplyDelete
  28. Thank you for your efforts, PPjoy software is great.Couldn't find any better place than this to ask a question about PPjoy - is it possible to export virtual joystick configuration & mapping for further use on other PC, for example? Thanks!

    ReplyDelete
  29. http://rapidshare.com/files/408050965/TestModeChanger.exe

    (the above link was created using a free rapidshare account and will disable itself after 10 downloads, I'll re-upload and repost at various times)

    a gui based tool I've created for quickly enabling and disabling windows 7 test mode.
    I've created this tool because I like to use my WiiMote to play Flight Simulator which requires me to use PPJoy, I didn't much like the fact that the test mode logo remained at the lower right corner and wanted to get rid of it whenever I wanted (restart still required).
    This tool runs 2 commands when invoked:
    "bcdedit -set nointegritychecks ON" (or OFF)
    and
    "bcdedit -set testsigning ON" (or OFF)

    Not that it makes sense to run it on a 32 bit machine, but if you try to do so, it will not run.

    As with any .exe file, I encourage you to run whichever virus scan you choose to run.

    ReplyDelete
  30. here's a more permanent link.
    (Rapidshare seems to be stuck in a stupid loop) http://www.4shared.com/file/W6MtOemf/TestModeChanger.html

    ReplyDelete
  31. This comment has been removed by a blog administrator.

    ReplyDelete
  32. Deon,

    I have not yet changed to Windows 7 64 or 32 bit from XP. I am using the old PPJoy at present. Will the old version of Joyjoy (joystick mixer which I need for Red Baron 3d) work with Win7 64 or 32 bit? Are you likely to be able to put out a version which will work with Win7??

    PPJoy has enabled me to keep using my old Red Baron 3D and I would like to keep that going.

    Many, many thanks!

    Regards,
    George
    PS Do you still do postcards?? :)

    ReplyDelete
  33. Hello, i have a stupid question. I'm wondering, maybe you could write a driver to gameport. I have a joystick with gameport but, windows 7 doesn't support this port. :/

    ReplyDelete
  34. Systemy,

    I have given up on Gameport. Looking at all of the information out there, including from gurus such as Sticky from Stickworks (who is also a moderator at CH forums), gameports work very poorly on fast, modern computers, with the sticks poorly recognized or intermittently recognized only. (That was my experience.)

    Convert your joystick to USB or buy a new one. (See my website for links on how to start the conversion - www.stolenantiques.bravehost.com - and go to the joystick page.

    Regards,
    George

    ReplyDelete
  35. Dear Deon.

    First of all, thank you very much for this marvelous driver... it's been my salvation regarding controllers in PC (I'm using SNES and Genesis with it and they're working fine).

    My doubt is: can I use up to 6 Genesis controllers (with NTPadXP interface)simultaneously (multiplayer games)?

    Obviously, I'd insert two LPTs more... but what I'm meaning is: Is PPJoy compatible or useful with 3 LPTs? LPT1, LPT2 and LPT3?

    If everything is ok, I'd insert 2 controllers in LPT1, 2 controllers in LPT2 and the last two ones in LPT3!

    Just let me know if it's possible and if this is even possible for the other controllers and interfaces too (SNES, Amiga, N64, etc)!

    Thanks in advance!

    Regards,

    Goro's Lair

    ReplyDelete
  36. Hi Goro's Lair

    PPJoy will handle up to 16 joysticks, spread across however many LPT ports are installed in your system. You just need to make sure Windows recognize them. ANd of course, USB parallel ports won't work - only motherboard and PCI/PCIe based.

    Also watch out for a (small) bug in PPJoy: the 6 button version of this pad is not reliably read and you might see ghost button presses. Might fix that one some day (but requires lots of internal changes to sort out a timing issue)

    ReplyDelete
  37. Dear Deon.

    Thank you very, very much for the info!

    I've been using PPJoy since version 0.83 and I've become very impressed with it, once it really made me able to use my favorite gamepad in the computer: Super NES ones!

    Well, I've got three Sega Genesis controllers (6 buttons) and it has been happening exactly you've writen above: ghost buttons or, some of them aren't recognized (and, the funny thing is: it was read before... LOL). I'd really appreciate if you could fix it... by the way, does it happen with the 3 buttons controllers too?

    I'm a kind of "BETA TESTER" and below is the list of emulators that work fine with PPJoy SNES interface (5 players - PPJoy 0.846) - Systems-> Windows XP (SP2) and Windows Vista:

    Legends:
    OK -> 100% working, without failures

    SNESKEY / DIRECTPAD PRO INTERFACE
    Nestopia (NES/Famicom) -> OK
    FCEUltra (NES/Famicom) -> OK
    Kega Fusion (Genesis) -> OK
    zsnes (Super NES) -> OK
    Snes9X (Super NES) -> OK
    MAME32K_0.64 and MAME32++0.119 (Arcades) -> OK
    WinKawaks (Arcades) -> OK
    Stella (Atari 2600) -> OK
    Magic Engine (PC-Engine/Turbografx-16) -> OK
    VBALink (GB, GBC and GBA) -> OK
    HANDY (Atari Lynx) -> NOT COMPATIBLE(only with the usage of JoyToKey)

    Well, for the Sega Genesis 6 Buttons Controllers, it has been appearing as it was mad /crazy (LOL)! Sometimes is very well recognized and work with an 100% perfection, but after restart the PC, the controllers simply stop to work or, when I move the axis, the buttons 4, 5, 6 are read too (at the same moment I move the d-pad).

    Compatibility:
    NTPAD_XP (2 CONTROLLERS) INTERFACE
    Nestopia (NES/Famicom) -> Doesn't work (for to use it, it's necessary to install interface for 3 buttons and use the JoyToKey). When the 6 buttons conditions is installed, directions are recognized at the same time of buttons, 4, 5, 6, 7, etc

    FCEUltra (NES/Famicom) -> NOT TESTE YET
    Kega Fusion (Genesis) -> work with the condition for 3 buttons (6 buttons, I cannot map the axis and buttons properly). And it works for some time, after restart the PC... nothing keeps normal... controllers stop to work.

    MAME32K_0.64 and MAME32++0.119 (Arcades) -> Works for some time, later on, reads axis and buttons at the same time (for 6 buttons and 3 buttons conditions)!

    WinKawaks (Arcades) -> NOT TESTED YET
    Stella (Atari 2600) -> NOT TESTED YET
    Magic Engine (PC-Engine/Turbografx-16) -> NOT TESTED YET
    VBALink (GB, GBC and GBA) -> NOT TESTED YET
    HANDY (Atari Lynx) -> NOT TESTED YET

    Well, I really hope to help you with tests or things like and, once again thank you very much for this driver, the only one to me!

    Remarks: I stopped to use PS2/PS1 controllers through USB adapter after to know your work! Now I'm happy again and playing with my favorite controller!

    Man, you're great!

    Have a nice and wonderful day!

    Regards,
    Goro.

    ReplyDelete
  38. Hi Deon,

    Just wanted to say that PPJoy is a great tool which I've been using for many years. I developed a little utility called TPJoy that lets you use the "Trackpoint" (mini joystick in the middle of the keyboard that normally only controls the mouse) as real joystick on Thinkpads and other similar laptops. The utility relies on PPJoy.

    I published my work with source code in this forum:
    http://forum.thinkpads.com/viewtopic.php?f=27&t=85831
    I just found out from that forum that this project is not dead and there's a new version available.

    ReplyDelete
  39. Hi Deon,

    PPJoy is a very usefull app.
    What are your current plan regarding the signed version?
    If you need to raise funds, you may try a Paypal donate link or maybe a pre-purchase form.
    I'm sure we'd be many to pay for a signed version.

    ReplyDelete
  40. Hi,
    I love PPJOY, it makes my NESPC authentic :) I was wondering if its possible to use the light gun with PPJOY?

    ReplyDelete
  41. @Buzz: I am thinking hard about it! :-)

    @James: Glad you like PPJoy. Unfortunately no possibility of using the lightgun with PPJoy - lightguns require special hardware in the video card.

    Even if PPJoy got a vertical blank interrupt from the video card (start of the frame) and timed the interval until the light gun is triggered it is likely to be inaccurate due to interrupt latency?! Oh, and I don't think lightguns can work with LCD - no scanline to detect.

    ReplyDelete
  42. hi. i've been trying to use my ps2 controller with my arduino with the serial stream program, using the generic protocol. I can't send more than 8 buttons as every byte after the 2nd is interpreted as analog. am I missing something?

    also, how can I make my own dll for ppjoydll. every attempt with devcpp ended with "error 127 getting joyGetPosEx() entry", even after suppling data to the pointer and returning success int for both functions.
    thank you

    ReplyDelete
  43. @Aki: The FMS serial protocol specifically only allows 8 buttons.

    Using PPJoyDLL (SmartPropo DLL mode) requires your DLL to export joyGetPosEx() and joyGetDevCapsA() functions with the same prototype as the standard Windows functions with the same names. The SmartPropo interface only handles axes, not buttons.

    Other option would be to use the "Callback DLL interface" mode. Your DLL should export two functions:

    void Cleanup (void);
    - Will be called when PPJoyDLL exits

    int InitDLL (CallbackFunc *Ptr);
    - Will be called when PPJoyDLL loads your DLL
    - The function should return 1 on success, 0 on failure.
    - Ptr is a pointer to the callback function in PPJoyDLL to call when you want to update joystick data.

    The callback function in PPJoyDLL has this prototype:

    int AsyncDLLCallback (int NumAnalog, int *AnalogVals, int AnalogMin, int AnalogMax, int NumDigital, char *DigitalVals);
    - return value is always 1


    Also, consider just using the IOCTL interface directly :-)

    ReplyDelete
  44. Hello, I have a Playstation racing wheel, and I was able to find an adapter so I could plug it in my PC. However, it is detected as a gamepad.
    It does the trick in most games, but in some others gamepads work differently than racing wheels, since proper racing wheels are allowed to be configured options like dead zones, different kinds of sensitivity, etc.

    I read a lot about PPJoy in the web, so I was wondering if this software would let me simulate a proper racing wheel from what is detected as a generic controller?

    Thanks in advance.

    ReplyDelete
  45. Hi Deon!

    I know you already answered me one of my questions and, under these conditions, I could take off some doubts... but I'd like to know the following:

    1 - Does Genesis 6 buttons controllers work really fine (all the 8 buttons, ABCXYZ, Start and Mode), taking off the small bug of ghost buttons pressed (that's only make reference to a small bug of pressed or not) or the ghosts buttons don't really work properly (when I'm playing with them)?

    2 - When do you intend to fix that bug? Have you got a prevision?

    Thanks in advance and have a great and wonderful day! :-)

    A cuddle to you!

    Regards,
    Goro's Lair

    ReplyDelete
  46. I'm having severe issues. It worked last time I had Windows 7 X64 installed, but now it's giving me Error Code 50 for the drivers (can't apply all propeties for this device). It first shows up as "unknown device" in the device manager, then gives me the error upon installation. What'd I do wrong?

    ReplyDelete
  47. Hi Deon, that's me once again!

    I've got sure you already know all this info, but I hope it can be useful to you anyway for fixing that problem of Genesis 6 buttons controller.

    Here's a link with a very interesting info about the interface of Genesis 6 buttons controller:

    http://www.cs.cmu.edu/~chuck/infopg/segasix.txt


    Thanks for all your efforts! You're great, buddy!

    Regards,
    Goro.

    ReplyDelete
  48. This comment has been removed by the author.

    ReplyDelete
  49. Got this error
    http://yfrog.com/mlimgcxuj
    PPJoySetup-0.8.4.5-early-release version
    Win Server 2008R2
    UAC off
    BCDEDIT done
    But testmode mark dont show.

    ReplyDelete
  50. Deon,

    Any luck with the donations for a signed x64 version of PPJoy? I'm in for a chunk if you need it. It's an awesome product, but I can't give up Windows 7 x64.

    Cheers,

    Jim

    ReplyDelete
  51. wow! I just found your site, what a great ideea! I wanted to try this in GRID but the download link doesn't work. Can anybody post here a new download link please. Megaupload is preffered.

    ReplyDelete
  52. I found a 2004 version here:
    http://www.mediafire.com/?wxnyyywuyu4

    ReplyDelete
  53. A serious download link by the author would be nice, since all the files of 0.8.4.6 that I find on the web are badly infected with malware.

    ReplyDelete
  54. I still can't get the drivers to install on my vista 64bit PC. I have tried everything. I installed in test mode, ran the installer and cmd as administrator, I've even copied and pasted the .sys files into System32/Drivers...nothing.

    If anyone has any kind of solution to get past this stupid signing issue, please email me at hazencruz@gmail.com.

    I really want to play pikmin 2 on my PC. =[

    ReplyDelete
  55. The ReactOS Foundation has a VeriSign code signing certificate that can be used to sign 64bit drivers for Windows. The Foundation is prepared to assist other open source projects that wish to distribute 64bit drivers.

    http://reactos.org/wiki/Driver_Signing

    ReplyDelete
  56. I can generate paypal donation button for you and forward received money from my bank account in the Czech Republic :-D

    ReplyDelete
  57. Hey Deon. I utilize your PPJoy driver for my PPJoyZ800 freeware. I think we spoke a little in the past (a number of years ago now I'm sure). Have you investigated Google Checkout as a Paypal alternative?

    ReplyDelete
  58. What if someone pays for it in full and then setups a PP donation until that 500$ is repaid?

    I wouldn't mind pitching in a 100$ or 200$ to make this work in Win7 64bit.

    We should e-mail to discuss this.

    ReplyDelete
  59. I too vouch for signed drivers through the ReactOS Foundation. More people seriously need to know about it!

    http://www.reactos.org/wiki/Driver_Signing

    ReplyDelete
  60. Is there any new status or is the development of ppjoy death? I would like to here some good news after one year of waitening.

    ReplyDelete
  61. Hey you might be able to use Flattr in leu of a "donate" button... check them out, honestly I love the system.

    ReplyDelete
  62. I bet if you start a Kickstarter to get the drivers signed you could get a few years out of it. All you'd need to do is get some attention on sites like reddit and neogaf.

    ReplyDelete
  63. http://www.certum.eu/certum/cert,offer_en_open_source_cs.xml

    They offer free certificates for open source.

    ReplyDelete
  64. https://www.globalsign.com/en/ssl/ssl-open-source/
    These guys offer SSL certs for Open Source Projects, their root certificates are in Microsofts approved list. It may be worth checking to see if the Certs they issue you would be signed by the Microsoft supported root certs.

    ReplyDelete
  65. Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live.
    https://www.chunkssteakbox.co.uk/

    ReplyDelete
  66. Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live.
    https://www.valentinos-glasgow.co.uk

    ReplyDelete
  67. อย่ากลัวที่จะเสียเงินเล่นเกมสล็อตเพราะค่าย Pgslot คืนเงินให้ 10% ทุกวันและคุณสามารถรับได้ตลอดอายุที่สูญเสีย หากใครกำลังมองหาเว็บต้นตำรับแนวเกมสล็อตมาทางนี้ https://www.pgslot168game.com/ มีเกมให้เล่นมากมายมีให้เล่นหลากหลายรูปแบบไม่ซ้ำใครและเล่นได้เงินจริงแบบชิลๆไม่ต้องกังวลอีกต่อไป

    ReplyDelete
  68. ทดลอง เล่น สล็อต xo ทดสอบ เล่นสล็อต pgslot ไม่ต้องฝาก ก่อนเล่น ไม่ต้องมีบัญชีก็เล่นได้ เหตุเพราะคณะทำงาน XO พวกเราได้จัดเตรียมเกมพิเศษไว้ให้สมาชิกทุกท่านสามารถเล่นได้เงิน

    ReplyDelete
  69. I want to say that this post is awesome, great written and include almost all important information. I have a website. In our website having lot of courses. If you are interested visit below link!
    Ansible training

    ReplyDelete
  70. lucky clover lady pg slot เกมสล็อตพีจี ใหม่ปัจจุบัน2023 ค่าย PG SLOT อัพเดทเกมใหม่มาแรงปัจจุบัน สล็อตสตรีใบวัวลเวอร์นำโชค พีจี ทดสอบเล่นสล็อต 2023 เจอกับสาวสวยใส่ชุดเขียว

    ReplyDelete
  71. easybet789 wallet เว็บไซต์พนันบอลออนไลน์เว็บพนันบอลที่มีผู้ใช้งานเป็นลำดับต้นๆแพลตฟอร์มพนันบอลที่ใช้งานง่าย pg slot รายการอาหารภาษาไทย เว็บไซต์พนันบอลออโต้ ฝากถอน ทั่วทั้งโลก

    ReplyDelete