From b82e8ce616302d2055f7f583ef96d89ec85ded35 Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 14:47:29 +1000 Subject: [PATCH 1/8] build: Cleared out old VS2019 solution --- build/VS2019/GGPO.sln | 44 ----- build/VS2019/GGPO/GGPO.vcxproj | 179 ----------------- build/VS2019/GGPO/GGPO.vcxproj.filters | 55 ------ build/VS2019/VectorWar/VectorWar.vcxproj | 184 ------------------ .../VectorWar/VectorWar.vcxproj.filters | 61 ------ 5 files changed, 523 deletions(-) delete mode 100644 build/VS2019/GGPO.sln delete mode 100644 build/VS2019/GGPO/GGPO.vcxproj delete mode 100644 build/VS2019/GGPO/GGPO.vcxproj.filters delete mode 100644 build/VS2019/VectorWar/VectorWar.vcxproj delete mode 100644 build/VS2019/VectorWar/VectorWar.vcxproj.filters diff --git a/build/VS2019/GGPO.sln b/build/VS2019/GGPO.sln deleted file mode 100644 index d406fbe..0000000 --- a/build/VS2019/GGPO.sln +++ /dev/null @@ -1,44 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29326.143 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GGPO", "GGPO\GGPO.vcxproj", "{79A8B179-8CC3-4653-BD92-667FABA10B73}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VectorWar", "VectorWar\VectorWar.vcxproj", "{D253FCCB-21DD-4D82-B890-1622C570C615}" - ProjectSection(ProjectDependencies) = postProject - {79A8B179-8CC3-4653-BD92-667FABA10B73} = {79A8B179-8CC3-4653-BD92-667FABA10B73} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Debug|x64.ActiveCfg = Debug|x64 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Debug|x64.Build.0 = Debug|x64 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Debug|x86.ActiveCfg = Debug|Win32 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Debug|x86.Build.0 = Debug|Win32 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Release|x64.ActiveCfg = Release|x64 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Release|x64.Build.0 = Release|x64 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Release|x86.ActiveCfg = Release|Win32 - {79A8B179-8CC3-4653-BD92-667FABA10B73}.Release|x86.Build.0 = Release|Win32 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Debug|x64.ActiveCfg = Debug|x64 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Debug|x64.Build.0 = Debug|x64 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Debug|x86.ActiveCfg = Debug|Win32 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Debug|x86.Build.0 = Debug|Win32 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Release|x64.ActiveCfg = Release|x64 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Release|x64.Build.0 = Release|x64 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Release|x86.ActiveCfg = Release|Win32 - {D253FCCB-21DD-4D82-B890-1622C570C615}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {65465B65-389D-4A65-A601-C122547725DC} - EndGlobalSection -EndGlobal diff --git a/build/VS2019/GGPO/GGPO.vcxproj b/build/VS2019/GGPO/GGPO.vcxproj deleted file mode 100644 index 82415fb..0000000 --- a/build/VS2019/GGPO/GGPO.vcxproj +++ /dev/null @@ -1,179 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - 16.0 - {79A8B179-8CC3-4653-BD92-667FABA10B73} - Win32Proj - GGPO - 10.0 - - - - StaticLibrary - true - v142 - Unicode - - - StaticLibrary - false - v142 - true - Unicode - - - StaticLibrary - true - v142 - Unicode - - - StaticLibrary - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - NotUsing - Level3 - Disabled - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - - - $(MSBuildProjectDirectory)\..\..\..\src\include;$(MSBuildProjectDirectory)\..\..\..\src\lib\ggpo;%(AdditionalIncludeDirectories) - - - Windows - true - - - - - NotUsing - Level3 - Disabled - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - - - $(MSBuildProjectDirectory)\..\..\..\src\include;$(MSBuildProjectDirectory)\..\..\..\src\lib\ggpo;%(AdditionalIncludeDirectories) - - - Windows - true - - - - - NotUsing - Level3 - MaxSpeed - true - true - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - - - $(MSBuildProjectDirectory)\..\..\..\src\include;$(MSBuildProjectDirectory)\..\..\..\src\lib\ggpo;%(AdditionalIncludeDirectories) - - - Windows - true - true - true - - - - - NotUsing - Level3 - MaxSpeed - true - true - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - - - $(MSBuildProjectDirectory)\..\..\..\src\include;$(MSBuildProjectDirectory)\..\..\..\src\lib\ggpo;%(AdditionalIncludeDirectories) - - - Windows - true - true - true - - - - - - \ No newline at end of file diff --git a/build/VS2019/GGPO/GGPO.vcxproj.filters b/build/VS2019/GGPO/GGPO.vcxproj.filters deleted file mode 100644 index e485121..0000000 --- a/build/VS2019/GGPO/GGPO.vcxproj.filters +++ /dev/null @@ -1,55 +0,0 @@ - - - - - {0d94886c-28b3-4f14-b73e-8d63a5cbb2d9} - - - {1a8a935e-99ee-4739-95ca-07bd478c0e35} - - - {6556380c-b6f9-4bf5-a381-d43b9a78bc76} - - - - - Source Files\Backends - - - Source Files\Backends - - - Source Files\Backends - - - Source Files\Network - - - Source Files\Network - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/build/VS2019/VectorWar/VectorWar.vcxproj b/build/VS2019/VectorWar/VectorWar.vcxproj deleted file mode 100644 index 50cca57..0000000 --- a/build/VS2019/VectorWar/VectorWar.vcxproj +++ /dev/null @@ -1,184 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 16.0 - {D253FCCB-21DD-4D82-B890-1622C570C615} - Win32Proj - VectorWar - 10.0 - - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - Application - true - v142 - Unicode - - - Application - false - v142 - true - Unicode - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - - - Level3 - Disabled - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - $(MSBuildProjectDirectory)\..\..\..\src\include - - - Windows - true - $(TargetDir)GGPO.lib;ws2_32.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - Disabled - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - $(MSBuildProjectDirectory)\..\..\..\src\include - - - Windows - true - $(TargetDir)GGPO.lib;ws2_32.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - MaxSpeed - true - true - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - $(MSBuildProjectDirectory)\..\..\..\src\include - - - Windows - true - true - true - $(TargetDir)GGPO.lib;ws2_32.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - Level3 - MaxSpeed - true - true - true - _WINSOCK_DEPRECATED_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - $(MSBuildProjectDirectory)\..\..\..\src\include - - - Windows - true - true - true - $(TargetDir)GGPO.lib;ws2_32.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/VS2019/VectorWar/VectorWar.vcxproj.filters b/build/VS2019/VectorWar/VectorWar.vcxproj.filters deleted file mode 100644 index cd2a7ec..0000000 --- a/build/VS2019/VectorWar/VectorWar.vcxproj.filters +++ /dev/null @@ -1,61 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;ipp;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - - - Resource Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file From d5a01266e6f80f2f4aecfb3720ea545d17404e13 Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 14:47:48 +1000 Subject: [PATCH 2/8] gitignore: Use C++ gitignore template --- .gitignore | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 7451ae6..d99efa9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,32 @@ -# ignore visual studio directies and local files -.vscode -build/VS2019/x64/** -build/VS2019/.vs/** -build/VS2019/Release/** -build/VS2019/Debug/** -build/VS2019/GGPO/Release/** -build/VS2019/GGPO/Debug/** -build/VS2019/GGPO/x64/** -build/VS2019/GGPO/GGPO.vcxproj.user -build/VS2019/Vectorwar/Release/** -build/VS2019/Vectorwar/Debug/** -build/VS2019/Vectorwar/x64/** -build/VS2019/VectorWar/VectorWar.vcxproj.user +# Prerequisites +*.d +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app \ No newline at end of file From 3f0b045224eef8af6417b97bf13a850376b61895 Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 14:48:25 +1000 Subject: [PATCH 3/8] build: Dont track build folder contents --- build/.gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 build/.gitignore diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..a9b2856 --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,3 @@ +# Track the build directory but not its contents. +* +!.gitignore \ No newline at end of file From d580a1416d1edf97b83337a78293de84772cfdb6 Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 14:48:49 +1000 Subject: [PATCH 4/8] vectorwar: Removed compiled resource file - See https://stackoverflow.com/questions/33261966/what-is-app-aps-file-in-visual-c --- src/apps/vectorwar/VectorWar.aps | Bin 4188 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/apps/vectorwar/VectorWar.aps diff --git a/src/apps/vectorwar/VectorWar.aps b/src/apps/vectorwar/VectorWar.aps deleted file mode 100644 index c7e178aefa42cc96e2bf626c37629ea2f74fb049..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4188 zcmbVPOLNm!6h3mpKxjjG^!;=xZA06*mK_o&t17Y#YHUj*D-RfVRAZYYgJWmxgaE4y zt1i3fvI~Af7i>GzC6Dl!340c-x@nnC*HyoBC0Vka1d2RY);;fY?m6e)OGFgMa9wZU zv*($@>=ed1TA&&HyRPKphll(R+CD<0PM7C8^>(LhwwkqiyS%it)+%?})pBKRty8{I zudcV+o0WEXUVJT7+KG0R`Cr8t$FNDGMZ9$?l1h1+qbwkyz9fbE+VxIrqg|~hmWkea zE`JOZL{a`vSDMwvMy(z{S-Er-!V=3TM-GGL6^#9DVTxW^%yO7Um!CNB>Upg7^)DiyX@XgO}Lx25C#POBHJNSQFV2L>3LG*nP9fxiS^46(ME7YVV z%Hh93bx3Z~C2E22PcTV{z&OT~_`irZ!Hzcp59qVt=}=Y3S%bV4@HT~-E5K9%X#uxM z75J*q8h#DXR56dzPGChtne*UmLux2Xrmw-DjJ#!`BSpjDW1H6nPZM$*h){)AF(>M` zftkLe6X3}Mza*$tShz;lga=Es3`xk#0a%XQm`XQ85V`y9)T>w=jBMU{vb9y z+ue=?v|kk#vOOG66Ea#%Ok~pYb_W;Iid?D|ThBYVw%CH|LqTBTQ)(M_aPLePu#DLeG zv#*V~v6dcpA1Cw9f_D_W+b^tZr$?6si&mkJ zD`$UgtZRq9fUf&5pv#NnLB#QgZXAoyv5qdlD|GMb&y$ay$>EIVfhp6ou!vy%)uSa{xeI2zOU7ub*;#e& zpFxHO8IL2nE`y#ca(C;mIK&r3vlw&WDaoR*GNvL=>P*Qr=aM? zoTU^1Ol1g3t7o&$yr$ZQwV+r|R#)=ISumvFmcS`9#+*H4ED9mR3@bPS2EaIBLuY`t zsN0yI;S-9U)kA>*PSR^0uvAd;c>prVeNd@AR8weG0$4b&t40y6>veBlvK3obX-uYL z49GgBX5|V@kxbGX9*vqeN*Vwu>?uNs@X*OCX8}y}v4_>=4OPiI$~jHR0z6JQDKOa5 z3Wlw9;b-U_4_?&l1;d(k&RU9j4h$3Yt}k5Ct)f;cbup9lo`*4YmYkvYy{V^AHRk}F zq7OWvuTDVaBz@>X17*TwS*DLX@QhN-F6dbs`sEaT>;X+hoz-l(Qz}s^l}3IM*1F^r z4X2P(NlqtG+&)NKwBcaMn6p&PnOE|2yzWydun1l?3I*u#(dpFWq>LTEhoER%Mn2$A zBJf{E@ul+xEnt`7(^o`6R&K5|#hDRXtTbQ3id!Y!C_2bNgJg6+iC4g1;?XhrG>wrY zc=`QQY?{dL!%}}8+!0yN=f;usGWNrz> Date: Fri, 11 Oct 2019 14:49:20 +1000 Subject: [PATCH 5/8] general: Added initial CMake support - Currently only compiles under windows due to dependencies on Winsock and the Windows Multimedia API. --- CMakeLists.txt | 68 +++++++++++++++++++++++++++++++ src/apps/vectorwar/CMakeLists.txt | 24 +++++++++++ 2 files changed, 92 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 src/apps/vectorwar/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b23725e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.2) + +# TODO: SDK Versioning. +project(ggpo VERSION 1.0.0) + +# What do we want to build? +option(BUILD_GGPO "Enable the build of the GGPO SDK" ON) +option(BUILD_VECTORWAR "Enable the build of the Vector War example app" ON) +option(BUILD_SHARED_LIBS "Enable the build of shared libraries (.dll/.so) instead of static ones (.lib/.a)" ON) + +set(GGPO_SDK + src/include/ggponet.h + src/lib/ggpo/main.cpp + src/lib/ggpo/bitvector.h + src/lib/ggpo/bitvector.cpp + src/lib/ggpo/game_input.h + src/lib/ggpo/game_input.cpp + src/lib/ggpo/input_queue.h + src/lib/ggpo/input_queue.cpp + src/lib/ggpo/log.h + src/lib/ggpo/log.cpp + src/lib/ggpo/poll.h + src/lib/ggpo/poll.cpp + src/lib/ggpo/ring_buffer.h + src/lib/ggpo/static_buffer.h + src/lib/ggpo/sync.h + src/lib/ggpo/sync.cpp + src/lib/ggpo/timesync.h + src/lib/ggpo/timesync.cpp + src/lib/ggpo/types.h + src/lib/ggpo/zconf.h + src/lib/ggpo/zlib.h + src/lib/ggpo/backends/backend.h + src/lib/ggpo/backends/p2p.h + src/lib/ggpo/backends/p2p.cpp + src/lib/ggpo/backends/spectator.h + src/lib/ggpo/backends/spectator.cpp + src/lib/ggpo/backends/synctest.h + src/lib/ggpo/backends/synctest.cpp + src/lib/ggpo/network/udp.h + src/lib/ggpo/network/udp.cpp + src/lib/ggpo/network/udp_msg.h + src/lib/ggpo/network/udp_proto.h + src/lib/ggpo/network/udp_proto.cpp +) + +if(BUILD_GGPO) + add_library(ggpo ${GGPO_SDK}) + + target_include_directories(ggpo PUBLIC src/include) + target_include_directories(ggpo PUBLIC src/lib/ggpo) + + if(WIN32 AND BUILD_SHARED_LIBS) + # Link to Multimedia API and Winsocks during a static build. + target_link_libraries(ggpo LINK_PUBLIC winmm.lib ws2_32.lib) + endif() + + set_target_properties(ggpo PROPERTIES VERSION ${PROJECT_VERSION}) +endif() + +if(BUILD_VECTORWAR) + # Vector War is windows only. + if(WIN32) + add_subdirectory(src/apps/vectorwar) + else() + message(WARNING "The Vector War app only supports windows, skipping...") + endif() +endif() \ No newline at end of file diff --git a/src/apps/vectorwar/CMakeLists.txt b/src/apps/vectorwar/CMakeLists.txt new file mode 100644 index 0000000..f92dd0d --- /dev/null +++ b/src/apps/vectorwar/CMakeLists.txt @@ -0,0 +1,24 @@ +set(VECTORWAR_APP + main.cpp + gamestate.h + gamestate.cpp + gdi_renderer.h + gdi_renderer.cpp + ggpo_perfmon.h + ggpo_perfmon.cpp + nongamestate.h + renderer.h + Resource.h + targetver.h + vectorwar.h + vectorwar.cpp + VectorWar.rc +) + +add_executable(vectorwar WIN32 ${VECTORWAR_APP}) + +# Change the character set to unicode. +add_definitions(-D_UNICODE -DUNICODE) + +# Link against GGPO, winmm (Windows Multimedia API), and ws2_32 (Winsock). +target_link_libraries(vectorwar LINK_PUBLIC ggpo winmm.lib ws2_32.lib) \ No newline at end of file From 44fdf6d7f55caee299276da34d33104b43534543 Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 15:49:15 +1000 Subject: [PATCH 6/8] gitignore: Ignore .vscode files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index d99efa9..a66d5e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Ignore visual studio directies and local files +.vscode + # Prerequisites *.d From a8130054d5e5a943808051006df03ebc2c331eda Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 17:28:37 +1000 Subject: [PATCH 7/8] readme: Added CMake build instructions --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d5e93a7..c8105e5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,16 @@ Traditional techniques account for network transmission time by adding delay to For more information about the history of GGPO, check out http://ggpo.net/ -This repository contains the code, documentation, and sample application for the Windows version of the SDK (requires Visual Studio 2019). +This repository contains the code, documentation, and sample applications for the SDK. + +## Building +Building GGPO is currently only available on Windows, however efforts are being made to port it to other platforms. To get started, clone the repository using either git or svn: +```git clone https://github.com/pond3r/ggpo.git``` +**OR** +```svn checkout https://github.com/pond3r/ggpo``` + +### Windows +On windows, it's recommended to use Visual Studio 2019 and cmake-gui (which can be downloaded [here]([https://cmake.org/download/])). Once everything has been setup, open cmake-gui and select the root of the repository under ```Where is the source code:``` followed by the build folder under ```Where to build the binaries:```. Next, hit ```Configure``` and change any options that appear in the main window before hitting ```Generate``` which will generate the VS2019 solution. Once the solution has been generated, hit ```Open Project``` and build with the appropriate settings (Debug/Release). The built binaries can then be found where they were configured to be built. ## Licensing GGPO is available under The MIT License. This means GGPO is free for commercial and non-commercial use. Attribution is not required, but appreciated. From d485558009254e9f823db3f4d27bc2fa012f277f Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Fri, 11 Oct 2019 23:42:50 +1000 Subject: [PATCH 8/8] readme: Fixed broken link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c8105e5..57245aa 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Building GGPO is currently only available on Windows, however efforts are being ```svn checkout https://github.com/pond3r/ggpo``` ### Windows -On windows, it's recommended to use Visual Studio 2019 and cmake-gui (which can be downloaded [here]([https://cmake.org/download/])). Once everything has been setup, open cmake-gui and select the root of the repository under ```Where is the source code:``` followed by the build folder under ```Where to build the binaries:```. Next, hit ```Configure``` and change any options that appear in the main window before hitting ```Generate``` which will generate the VS2019 solution. Once the solution has been generated, hit ```Open Project``` and build with the appropriate settings (Debug/Release). The built binaries can then be found where they were configured to be built. +On windows, it's recommended to use Visual Studio 2019 and cmake-gui (which can be downloaded [here](https://cmake.org/download/)). Once everything has been setup, open cmake-gui and select the root of the repository under ```Where is the source code:``` followed by the build folder under ```Where to build the binaries:```. Next, hit ```Configure``` and change any options that appear in the main window before hitting ```Generate``` which will generate the VS2019 solution. Once the solution has been generated, hit ```Open Project``` and build with the appropriate settings (Debug/Release). The built binaries can then be found where they were configured to be built. ## Licensing GGPO is available under The MIT License. This means GGPO is free for commercial and non-commercial use. Attribution is not required, but appreciated.