Metalzoic Posted May 25, 2015 Posted May 25, 2015 I'm using the Steam version of TPA and could use some guidance here to give this its own wheel. Like the notes say under Global Emulators Pinball Arcade is set as Virtual. Module is Pinball Arcade.ahk. No exe. No rom path. Skip Checks set to Rom and Emu under settings. Then I made a Pinball Arcade System and set the default emulator to be "Pinball Arcade". No rom path. The module settings say to add the list of tables you own from the "My Tables" folder, but I've run a search of my system and I have no folder with that name (on PC I only have the included TOTAN table so far, not buying any till I know that it all works etc...) Found a database on the RLauncher forums and it will launch TPA, but not to the actual matching table, just to the main menu. Sooo now what? I can't test it from HLHQ because it's a virtual emulator. Anyone already have this set up with it's own wheel that can walk me through getting it to launch to the individual tables?
potts43 Posted May 25, 2015 Posted May 25, 2015 http://www.rlauncher.com/forum/showthread.php?t=931 I think you need to make sure that the emulator is named correctly from the ahk module then surely it will find the XML?
Metalzoic Posted May 25, 2015 Author Posted May 25, 2015 It finds the XML fine and populates the wheel. The problem is that when I try to launch a game it says something like "table doesn't match the MyTables folder" But I can't find any "My Tables" folder anywhere. It isn't in Steam. A system search doesn't find this mystery folder. I went and bought the season 1 pack thinking maybe that would make the game create this folder, but no luck.
potts43 Posted May 25, 2015 Posted May 25, 2015 According to the module notes you should have a physical folder called MyTables which contains the tables you have bought. You should open either HLHQ or RLHQ and click on modules tab when you have Pinball Arcade highlighted. There will be a setting for MyTables. You edit this so that it matches the tables you have in the physical folder. That's how I interpret the module notes.
potts43 Posted May 25, 2015 Posted May 25, 2015 ; Notes: ; Initial setup: ; Manually run Pinball Arcade. If you own all the games and they can all be found in the My Tables folder, Simply Enter the My Tables folder and browse to the first table (alphabetically) and exit Pinball Arcade. ; The module comes default with all the available tables (as of 1/14/2014) alphabetically sorted in the module setting My_Tables. ; It will parse this setting and assume you own all the games. If you do not own all the games, recreate this setting in RocketLauncherUI with all the games you own, and separate each one with a | ; The My_Tables names match the names from your FE's database. ; ; If launching as a Steam game: ; When setting this up in RocketLauncherUI under the global emulators tab, make sure to select it as a Virtual Emulator. Also no rom extensions, executable, or rom paths need to be defined. ; Set Skip Checks to "Rom and Emu" when using this module as roms do not exist. ; ; If not launching through Steam: ; Add this as any other standard emulator and define the PinballArcade.exe as your executable, but still select Virtual Emulator as you do not need rom extensions or rom paths ; Set Skip Checks to "Rom and Emu" when using this module as roms do not exist. ; ; This module requires BlockInput.exe to exist in your Module Extensions folder. It is used to prevent users from messing up the table selection routine. ; If BlockInput is not actually blocking input, it's due to not having admin credentials, which you will need to set this exe to run as admin. ; However, this also means RocketLauncher needs to be set to run as admin as well, keep this in mind. ; ; If you want bezel support set to the game be played in windowed mode ; ; How to run vertical games on a standard monitor: ; There are 3 methods supported by this module to rotate your desktop. Windows shortcuts, display.exe and irotate.exe. If one method does not work on your computer, try another. ; ; If the key sends are not working, make sure your RocketLauncher is set to run as administrator. ; ; Pinball Arcade stores some settings in your registry @ HKEY_CURRENT_USER\Software\PinballArcade\PinballArcade ;----------------------------------------------------------------------------
Metalzoic Posted May 26, 2015 Author Posted May 26, 2015 According to the module notes you should have a physical folder called MyTables which contains the tables you have bought. You should open either HLHQ or RLHQ and click on modules tab when you have Pinball Arcade highlighted. There will be a setting for MyTables. You edit this so that it matches the tables you have in the physical folder. That's how I interpret the module notes. That's how I interpreted it too. That there was an actual folder I had to find in explorer somewhere that stored the names of my tables. Turns out the directions are just poorly written and it's talking about the folder within the main menu of the game.
potts43 Posted May 26, 2015 Posted May 26, 2015 Have you now got it working? If so can you provide an idiots guide so that any tips you have get passed out to the masses?
Metalzoic Posted May 26, 2015 Author Posted May 26, 2015 After spending hours I'm at least closer. Ha! The other problem turned out to be that the new DX11 version of Pinball Arcade has a different Window AHL Class so the module wasn't working right. I've got that fixed, most of the database/tables named correctly etc... Now the problem is the module isn't working its way through the Pinball Arcade menus correctly. They must have altered the Pinball Arcade main menu, because instead of going into the "My Tables" menu and selecting the proper table, it's missing and going into other menus (the module tried to purchased the season 2 pro pack just now). This problem may be beyond me being able to fix. I'll probably have to ask for help on the RLauncher forums for a fix.
Metalzoic Posted May 27, 2015 Author Posted May 27, 2015 OK. Solved. Here's what you need to do to get the durrent DX11 build of TPA working. 1. First update Pinball Arcade to the newest 1.38.10 version. To do this you have to opt out of the beta from Steam (right click the game from your library, properties, beta, opt-out), download the update, re-opt back into the beta. 2. Then to get the DX11 version to work with this module you need to rename the .exe. Go to Programs (x86)/Steam/Steamapps/Common/PinballArcade and rename PinballArcade.exe to Pinball ArcadeDX9.exe (or whatever you want). Then rename PinballArcade11.exe to just PinballArcade.exe (you'll probably have to do this every time they update the game). 3. Here's the module. You'll need to follow the other module instructions and have your tables listed in the module settings, in alphabetical order exactly as they are named in your database file. You also need your starting table listed and named correctly in the module (mine is set as : Addams Family, The (Williams). This module has the changed keys that I posted above and the changed window class for the DX11 version, so this module won't work right with the older/normal DX9 version of TPA. The only changes from original are the TPA Windows class for the DX11 version and the key changes I posted previously. MEmu = Pinball Arcade MEmuV = v1.37.8 MURL = http://www.pinballarcade.com/ MAuthor = djvj MVersion = 2.0.2 MCRC = 7744C758 iCRC = 7893F2F8 mId = 635589857631115764 MSystem = "Pinball Arcade","Pinball" ;---------------------------------------------------------------------------- ; Notes: ; Initial setup: ; Manually run Pinball Arcade. If you own all the games and they can all be found in the My Tables folder, Simply Enter the My Tables folder and browse to the first table (alphabetically) and exit Pinball Arcade. ; The module comes default with all the available tables (as of 1/14/2014) alphabetically sorted in the module setting My_Tables. ; It will parse this setting and assume you own all the games. If you do not own all the games, recreate this setting in RocketLauncherUI with all the games you own, and separate each one with a | ; The My_Tables names match the names from your FE's database. ; ; If launching as a Steam game: ; When setting this up in RocketLauncherUI under the global emulators tab, make sure to select it as a Virtual Emulator. Also no rom extensions, executable, or rom paths need to be defined. ; Set Skip Checks to "Rom and Emu" when using this module as roms do not exist. ; ; If not launching through Steam: ; Add this as any other standard emulator and define the PinballArcade.exe as your executable, but still select Virtual Emulator as you do not need rom extensions or rom paths ; Set Skip Checks to "Rom and Emu" when using this module as roms do not exist. ; ; This module requires BlockInput.exe to exist in your Module Extensions folder. It is used to prevent users from messing up the table selection routine. ; If BlockInput is not actually blocking input, it's due to not having admin credentials, which you will need to set this exe to run as admin. ; However, this also means RocketLauncher needs to be set to run as admin as well, keep this in mind. ; ; If you want bezel support set to the game be played in windowed mode ; ; How to run vertical games on a standard monitor: ; There are 3 methods supported by this module to rotate your desktop. Windows shortcuts, display.exe and irotate.exe. If one method does not work on your computer, try another. ; ; If the key sends are not working, make sure your RocketLauncher is set to run as administrator. ; ; Pinball Arcade stores some settings in your registry @ HKEY_CURRENT_USER\Software\PinballArcade\PinballArcade ;---------------------------------------------------------------------------- StartModule() settingsFile := modulePath . "\" . moduleName . ".ini" rotateMethod := IniReadCheck(settingsFile, "settings", "Rotate_Method",,,1) ; Shortcut, Display, iRotate rotateDisplay := IniReadCheck(settingsFile, "settings", "Rotate_Display", 0,,1) ; 0, 90, 180, 270 moduleDebugging := IniReadCheck(settingsFile, "settings", "Module_Debugging", "false",,1) If windowsRotate { Res := (A_ScreenWidth>A_ScreenWidth) ? A_ScreenWidth : A_ScreenWidth Gui 1: Color, 000000 Gui 1: -Caption +ToolWindow Gui 1: Show, x0 y0 W%Res% H%Res%, BlackScreen ; experimental to hide entire desktop and windows If rotateMethod Rotate(rotateMethod, rotateDisplay) } BezelGUI() FadeInStart() pinballTitleClass := "Pinball Arcade DX11 ahk_class GameWindowClass" fullscreen := IniReadCheck(settingsFile, "settings", "Fullscreen", "true",,1) ; 0, Shortcut, Display, iRotate sleepLogo := IniReadCheck(settingsFile, "Settings", "Sleep_Until_Logo",7000,,1) sleepBaseTime := IniReadCheck(settingsFile, "Settings", "Sleep_Base_Time",1,,1) lastMyTable := "Addams Family, The (Bally)" ; Mytables always starts on Addams Family ; myTables := IniReadCheck(settingsFile, "Settings", "My_Tables","Attack From Mars|Big Shot|Black Hole|Black Knight|Bride of Pin-Bot|Cactus Canyon|Centaur|Central Park|Champion Pub|Cirqus Voltaire|Class of 1812|Creature from the Black Lagoon|Cue Ball Wizard|Dr. Dude|El Dorado - City of Gold|Elvira|Firepower|Fish Tales|Flight 2000|Funhouse|Genie|Goin' Nuts|Gorgar|Harley-Davidson|Haunted House|Medieval Madness|Monster Bash|No Good Gofers|Pin-Bot|Ripley's Believe It or Not|Scared Stiff|Space Shuttle|Star Trek|Tales of the Arabian Nights|Taxi|Tee'd Off|Terminator 2|Theatre of Magic|Twilight Zone|Victory|Whirlwind|White Water",,1) ; | separated list of the tables I own ; myTables := IniReadCheck(settingsFile, "Settings", "My_Tables","Attack from Mars (Bally)|Big Shot (Gottlieb)|Black Hole (Gottlieb)|Black Knight 2000 (Williams)|Black Knight (Williams)|Black Rose (Bally)|Bram Stoker's Dracula (Williams)|Machine - Bride of Pin Bot, The (Williams)|Cactus Canyon (Bally)|Centaur (Bally)|Central Park (Gottlieb)|Champion Pub, The (Bally)|Cirqus Voltaire (Bally)|Class of 1812 (Gottlieb)|Creature from the Black Lagoon (Bally)|Cue Ball Wizard (Gottlieb)|Diner (Williams)|Dr. Dude & His Excellent Ray (Bally)|El Dorado - City Of Gold (Gottlieb)|Elvira and the Party Monsters (Bally)|Firepower (Williams)|Fish Tales (Williams)|Flight 2000 (Stern)|FunHouse (Williams)|Genie (Gottlieb)|Goin' Nuts (Gottlieb)|Gorgar (Williams)|Harley-Davidson, 3rd Edition (Stern)|Haunted House (Gottlieb)|High Roller Casino (Stern)|High Speed (Williams)|Junk Yard (Williams)|Lights... Camera... Action! (Gottlieb)|Medieval Madness (Williams)|Monster Bash (Williams)|No Good Gofers (Williams)|Phantom of the Opera, The (Stern)|Pin Bot (Williams)|Ripley's Believe It or Not! (Stern)|Scared Stiff (Bally)|Space Shuttle (Williams)|Star Trek - The Next Generation (Williams)|Tales of the Arabian Nights (Williams)|Taxi (Williams)|Tee'd Off (Gottlieb)|Terminator 2 - Judgment Day (Williams)|Theatre of Magic (Bally)|Twilight Zone (Bally)|Victory (Gottlieb)|Whirlwind (Williams)|White Water (Williams)|WHO Dunnit (Bally)",,1) ; | v1.31.8 separated list of the tables user owns myTables := IniReadCheck(settingsFile, "Settings", "My_Tables","Addams Family, The (Bally)|Attack from Mars (Bally)|Big Shot (Gottlieb)|Black Hole (Gottlieb)|Black Knight (Williams)|Black Knight 2000 (Williams)|Black Rose (Bally)|Bram Stoker's Dracula (Williams)|Bride of Pin-Bot (Williams)|Cactus Canyon (Bally)|Centaur (Bally)|Central Park (Gottlieb)|Champion Pub, The (Bally)|Cirqus Voltaire (Bally)|Class of 1812 (Gottlieb)|Creature from the Black Lagoon (Bally)|Cue Ball Wizard (Gottlieb)|Cyclone (Williams)|Diner (Williams)|Dr. Dude & His Excellent Ray (Bally)|Earthshaker (Williams)|El Dorado - City Of Gold (Gottlieb)|Elvira and the Party Monsters (Bally)|Firepower (Williams)|Fish Tales (Williams)|Flight 2000 (Stern)|FunHouse (Williams)|Genie (Gottlieb)|Goin' Nuts (Gottlieb)|Gorgar (Williams)|Harley-Davidson, 3rd Edition (Stern)|Haunted House (Gottlieb)|High Roller Casino (Stern)|High Speed (Williams)|Jack-Bot (Williams)|Junk Yard (Williams)|Lights... Camera... Action! (Gottlieb)|Medieval Madness (Williams)|Monster Bash (Williams)|No Good Gofers (Williams)|Party Zone (Bally)|Phantom of the Opera, The (Data East)|Pin-Bot (Williams)|Ripley's Believe It or Not! (Stern)|Scared Stiff (Bally)|Space Shuttle (Williams)|Star Trek - The Next Generation (Williams)|Starship Troopers (Stern)|Tales of the Arabian Nights (Williams)|Taxi (Williams)|Tee'd Off (Gottlieb)|Terminator 2 - Judgment Day (Williams)|Theatre of Magic (Bally)|Twilight Zone (Bally)|Victory (Gottlieb)|Whirlwind (Williams)|White Water (Williams)|WHO Dunnit (Bally)",,1) ; | v1.37.8 separated list of the tables user owns BezelStart() ; get user's save path paUserPath := RegRead("HKCU", "Software\PinballArcade\PinballArcade", "SavePath", "Auto") pinballArcadeDat := CheckFile(paUserPath . "settings.dat") ; Update fullscreen setting res := BinRead(pinballArcadeDat,pinballArcadeDatData,1,8) ; read current fullscreen setting Bin2Hex(hexData,pinballArcadeDatData,res) If (fullscreen = "true" && hexData != "02") { Hex2Bin(binData,"02") res := BinWrite(pinballArcadeDat,binData,1,8) } Else If (fullscreen != "true" && hexData != "00") { Hex2Bin(binData,"00") res := BinWrite(pinballArcadeDat,binData,1,8) } ; Convert myTables into a real array myTablesArray := [] Loop, Parse, myTables, | { myTablesArray[A_Index] := A_Loopfield If (romName = A_Loopfield) { thisTablePos := A_Index ; store the position (in the array) this table was found thisTableArray := "myTablesArray" ; save the array this table was found in lastTable := lastMyTable ; store the last table loaded for the same array as this table Log("Module - Found """ . romName . """ at position " . thisTablePos . " in MyTables") } } CheckFile(moduleExtensionsPath . "\BlockInput.exe") If !thisTableArray ScriptError("This table """ . romName . """ was not found in My Tables folder. Please check its name that it matches what the module recognizes.") Log("Module - Table """ . romName . """ was found in array """ . thisTableArray . """ at position " . thisTablePos) Log("Module - Last Table of array """ . thisTableArray . """ left off at """ . lastTable . """ which was found at position " . lastTablePos) ; Calculate the shortest distance to this table from the lastTable max := %thisTableArray%.MaxIndex() a := 1 b := thisTablePos If (a > { moveDown := a - b moveUp := (max - a) + b } Else If (b > a) { moveDown := b - a moveUp := (max - + a } Else { ; a=b moveDown := 0 moveUp := 0 } moveDirection := If moveUp < moveDown ? "moveUp" : "moveDown" Log("Module - The array """ . thisTableArray . """ has " . max . " tables in it and shortest distance to this table is " . %moveDirection% . " in direction " . moveDirection) hideEmuObj := Object(pinballTitleClass,1) ; Hide_Emu will hide these windows. 0 = will never unhide, 1 = will unhide later HideEmuStart() If executable { Log("Module - Running Pinball Arcade as a stand alone game and not through Steam as an executable was defined.") Run(executable, emuPath) } Else { If !steamPath GetSteamPath() Log("Module - Running Pinball Arcade through Steam.") Steam(238260) } WinWait(pinballTitleClass) WinWaitActive(pinballTitleClass) BezelDraw() Run("BlockInput.exe 30", moduleExtensionsPath) ; start the tool that blocks all input so user cannot interrupt the launch process for 30 seconds If moduleDebugging = true Tooltip, waiting %sleepLogo% seconds for logo SetKeyDelay(80*sleepBaseTime) Sleep % sleepLogo ; sleep till Pinball FX2 logo appears If moduleDebugging = true Tooltip, sending enter to get to the main menu Send, {Enter Down}{Enter Up}100{Down Down}{Down Up}100{Enter Down}{Enter Up} ; get to the Main menu If moduleDebugging = true Tooltip, entering MyTable folder Sleep % 2000*sleepBaseTime ; wait for folder to load If moduleDebugging = true Tooltip, navigating to %romName% SetKeyDelay(80*sleepBaseTime) If (moveDirection = "moveUp") { Loop % %moveDirection% { If moduleDebugging = true Tooltip % "Index: " . A_Index . " | Game: " . %thisTableArray%[A_Index] Send, {Up Down}{Up Up} Sleep % 100*sleepBaseTime } } Else { ; moveDown Loop % %moveDirection% { If moduleDebugging = true Tooltip % "Index: " . A_Index . " | Game: " . %thisTableArray%[A_Index] Send, {Down Down}{Down Up} Sleep % 100*sleepBaseTime } } Send, {Enter Down}{Enter Up} ; select game Sleep % 500*sleepBaseTime If moduleDebugging = true Tooltip, waiting for game to load Send, {Enter Down}{Enter Up}80{Enter Down}{Enter Up} ; select game Sleep % 4800*sleepBaseTime ; waiting for table to load Send, {Enter Down}{Enter Up}80{Enter Down}{Enter Up} ; start game If moduleDebugging = true Tooltip, Finished Process("Close", "BlockInput.exe") ; end script that blocks all input HideEmuEnd() FadeInExit() Process("WaitClose", "PinballArcade.exe") BezelExit() FadeOutExit() If windowsRotate { Gui 1: Show If rotateMethod Rotate(rotateMethod, 0) Sleep % 200*sleepBaseTime Gui 1: Destroy } ExitModule() HaltEmu: disableSuspendEmu := true Send, {ESC down}{ESC up} Return RestoreEmu: Send, {ESC down}{ESC up} Return CloseProcess: FadeOutStart() WinClose(pinballTitleClass) Return
Metalzoic Posted May 27, 2015 Author Posted May 27, 2015 Massive. Massive improvement. It is like night and day. The DX11 version has real lighting implemented so the tables all light up and shadow like the real thing. There are two sliders: One for room lights and another for table bulb brightness and it can be adjusted per table. It's ridiculous how much better it looks.
epayson85 Posted June 8, 2015 Posted June 8, 2015 has any official theme been created for this? I created one simple main menu one that simply launches the pinball arcade. If there are themes / wheels already created for each table I would be interested in going through the trouble of setting this up.
Metalzoic Posted June 8, 2015 Author Posted June 8, 2015 has any official theme been created for this? I created one simple main menu one that simply launches the pinball arcade. If there are themes / wheels already created for each table I would be interested in going through the trouble of setting this up. I haven't seen anything at all for it other than the Pinball Arcade pointer in the downloads sections. I had to make my own theme for it as well. I'll also make a default theme for all tables. No way in hell am I making themes for all 50+ tables.
epayson85 Posted June 9, 2015 Posted June 9, 2015 I found the wheel art in a thread you also commented on. I am going to make a default theme for the tables as well and I have started making the fly over videos. There are some on emumovies, but they are made for hyperpin so its the wrong orientation.
Metalzoic Posted June 10, 2015 Author Posted June 10, 2015 I found the wheel art in a thread you also commented on. I am going to make a default theme for the tables as well and I have started making the fly over videos. There are some on emumovies, but they are made for hyperpin so its the wrong orientation. Wheel art? I don't remember seeing any. I made my own using the official TPA pinball icons.
ninja2bceen Posted June 30, 2015 Posted June 30, 2015 metal can you post your themes? Ya the wheel art is in the download page Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
Metalzoic Posted June 30, 2015 Author Posted June 30, 2015 I probably won't put up anymore of my themes here. Just to much of a hassle.
ninja2bceen Posted June 30, 2015 Posted June 30, 2015 Do you have video snaps too? I checked emumovies and all the videos are for pinball machines wher the video is side ways. I started converting them and flipping them for pc use but didn't want to do the work of flipping the video if u already have. Can you post the ahk and other files that make this like the fx2 wheel? Is there an intro video? Sent from my iPad using Tapatalk Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
Metalzoic Posted June 30, 2015 Author Posted June 30, 2015 No need to use emumovies or flip their videos. I just grabbed a Pinball Arcade video off of Youtube for the main video. I just use the default theme for the individual tables and no video for individual tables. I didn't even build a video frame into the default theme.
ninja2bceen Posted June 30, 2015 Posted June 30, 2015 Can u post the intro video and ahk/vsd file? There isn't any documentation to set this up like fx2 (Tapatalk) Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
Metalzoic Posted June 30, 2015 Author Posted June 30, 2015 AHK? Do you mean my module? And I'm not sure what a VSD file is. If you haven't set it up yet you should wait a couple days. They just updated Pinball Arcade to version 1.39.9 yesterday afternoon and added a fix that was needed. To get this fix to work the module might need to change a bit. I've already made a topic on the RLauncher forum about it. Once that is done then I'll post that stuff. My table listing and Database too if you want. The video I used was this promo vid for PS4, it seems to fit well.
ninja2bceen Posted June 30, 2015 Posted June 30, 2015 Amazing, thanks. Yes please post module, database too please. Not a lot of documentation on this one. Figures since its the last wheel I'm adding to my system. Just gotta polish a few other wheels and dare I say I'm done adding systems :-) Thanks (Tapatalk) Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
Metalzoic Posted June 30, 2015 Author Posted June 30, 2015 In post #9 of this topic I laid out how to get it working. I agree with you that the instructions were very lacking for this one. It took a lot of guesswork and the module needed to be altered for it to work as well.
ninja2bceen Posted June 30, 2015 Posted June 30, 2015 Looking fwd to ur tutorial (Tapatalk) Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
ninja2bceen Posted July 1, 2015 Posted July 1, 2015 I created a framed wheel, main menu theme, and just about done with the default game theme. The wheel is good, the themes are decent. Anyone have upright videos per table? I think the arcade pinball site has some upright promo videos but not for each table. If someone could share the module, videos and set up per table, I'll also post what I made (Tapatalk) Advance the cause to 100%. http://hyperbase.hyperspin-fe.com/ Planet Geekdom, Subscribe for Tutorials! https://www.youtube.com/channel/UCdcby-s2GwriaOHGmVC2vGA?sub_confirmation=1&app=desktop
Recommended Posts
Archived
This topic is now archived and is closed to further replies.