-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathusing-a-macbook-pro-as-a-gaming-console.html
288 lines (248 loc) · 16.4 KB
/
using-a-macbook-pro-as-a-gaming-console.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://use.fontawesome.com/afd448ce82.js"></script>
<!-- Meta Tag -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- SEO -->
<meta name="author" content="Bruno Rocha">
<meta name="keywords" content="Software, Engineering, Blog, Posts, iOS, Xcode, Swift, Articles, Tutorials, OBJ-C, Objective-C, Apple">
<meta name="description" content="I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. Can I transform a Macbook Pro into a sofa-gaming machine?">
<meta name="title" content="Using a Macbook Pro as a gaming console">
<meta name="url" content="https://swiftrocks.com/using-a-macbook-pro-as-a-gaming-console">
<meta name="image" content="https://swiftrocks.com/images/thumbs/thumb.jpg?4">
<meta name="copyright" content="Bruno Rocha">
<meta name="robots" content="index,follow">
<meta property="og:title" content="Using a Macbook Pro as a gaming console"/>
<meta property="og:image" content="https://swiftrocks.com/images/thumbs/thumb.jpg?4"/>
<meta property="og:description" content="I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. Can I transform a Macbook Pro into a sofa-gaming machine?"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://swiftrocks.com/using-a-macbook-pro-as-a-gaming-console"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="https://swiftrocks.com/images/thumbs/thumb.jpg?4"/>
<meta name="twitter:image:alt" content="Page Thumbnail"/>
<meta name="twitter:title" content="Using a Macbook Pro as a gaming console"/>
<meta name="twitter:description" content="I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. Can I transform a Macbook Pro into a sofa-gaming machine?"/>
<meta name="twitter:site" content="@rockbruno_"/>
<!-- Favicon -->
<link rel="icon" type="image/png" href="images/favicon/iconsmall2.png" sizes="32x32" />
<link rel="apple-touch-icon" href="images/favicon/iconsmall2.png">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap" rel="stylesheet">
<!-- Bootstrap CSS Plugins -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<!-- Prism CSS Stylesheet -->
<link rel="stylesheet" type="text/css" href="css/prism4.css">
<!-- Main CSS Stylesheet -->
<link rel="stylesheet" type="text/css" href="css/style48.css">
<link rel="stylesheet" type="text/css" href="css/sponsor4.css">
<!-- HTML5 shiv and Respond.js support IE8 or Older for HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://swiftrocks.com/using-a-macbook-pro-as-a-gaming-console"
},
"image": [
"https://swiftrocks.com/images/thumbs/thumb.jpg"
],
"datePublished": "2022-07-08T14:00:00+02:00",
"dateModified": "2022-07-08T14:00:00+02:00",
"author": {
"@type": "Person",
"name": "Bruno Rocha"
},
"publisher": {
"@type": "Organization",
"name": "SwiftRocks",
"logo": {
"@type": "ImageObject",
"url": "https://swiftrocks.com/images/thumbs/thumb.jpg"
}
},
"headline": "Using a Macbook Pro as a gaming console",
"abstract": "I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. Can I transform a Macbook Pro into a sofa-gaming machine?"
}
</script>
</head>
<body>
<div id="main">
<!-- Blog Header -->
<!-- Blog Post (Right Sidebar) Start -->
<div class="container">
<div class="col-xs-12">
<div class="page-body">
<div class="row">
<div><a href="https://swiftrocks.com">
<img id="logo" class="logo" alt="SwiftRocks" src="images/bg/logo2light.png">
</a>
<div class="menu-large">
<div class="menu-arrow-right"></div>
<div class="menu-header menu-header-large">
<div class="menu-item">
<a href="blog">blog</a>
</div>
<div class="menu-item">
<a href="about">about</a>
</div>
<div class="menu-item">
<a href="talks">talks</a>
</div>
<div class="menu-item">
<a href="projects">projects</a>
</div>
<div class="menu-item">
<a href="software-engineering-book-recommendations">book recs</a>
</div>
<div class="menu-item">
<a href="games">game recs</a>
</div>
<div class="menu-arrow-right-2"></div>
</div>
</div>
<div class="menu-small">
<div class="menu-arrow-right"></div>
<div class="menu-header menu-header-small-1">
<div class="menu-item">
<a href="blog">blog</a>
</div>
<div class="menu-item">
<a href="about">about</a>
</div>
<div class="menu-item">
<a href="talks">talks</a>
</div>
<div class="menu-item">
<a href="projects">projects</a>
</div>
<div class="menu-arrow-right-2"></div>
</div>
<div class="menu-arrow-right"></div>
<div class="menu-header menu-header-small-2">
<div class="menu-item">
<a href="software-engineering-book-recommendations">book recs</a>
</div>
<div class="menu-item">
<a href="games">game recs</a>
</div>
<div class="menu-arrow-right-2"></div>
</div>
</div>
</div>
<div class="content-page" id="WRITEIT_DYNAMIC_CONTENT">
<!--WRITEIT_POST_NAME=Using a Macbook Pro as a gaming console-->
<!--WRITEIT_POST_HTML_NAME=using-a-macbook-pro-as-a-gaming-console-->
<!--Add here the additional properties that you want each page to possess.-->
<!--These properties can be used to change content in the template page or in the page itself as shown here.-->
<!--Properties must start with 'WRITEIT_POST'.-->
<!--Writeit provides and injects WRITEIT_POST_NAME and WRITEIT_POST_HTML_NAME by default.-->
<!--WRITEIT_POST_SHORT_DESCRIPTION=I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. Can I transform a Macbook Pro into a sofa-gaming machine?-->
<!--DateFormat example: 2022-04-06T14:00:00+02:00-->
<!--WRITEIT_POST_SITEMAP_DATE_LAST_MOD=2022-07-08T14:00:00+02:00-->
<!--WRITEIT_POST_SITEMAP_DATE=2022-07-08T14:00:00+02:00-->
<title>Using a Macbook Pro as a gaming console</title>
<div class="blog-post">
<div class="post-title-index">
<h1>Using a Macbook Pro as a gaming console</h1>
</div>
<div class="post-info">
<div class="post-info-text">Published on 08 Jul 2022</div>
</div>
<p>I had to leave my gaming computer behind when I moved to another country and have ever since felt an empty spot in my life. I watched many interesting games get released as the years went by, but I didn't feel it was enough justification to buy a gigantic gaming desktop again as I don't have enough space (or will) to have a dedicated space for one.</p>
<div class="sponsor-article-ad-auto hidden"></div>
<p>The release of the Steam Deck got me really excited as it effectively solved the space problem, but it will still take several months until I can get my hands on mine. I then wondered: While my deck doesn't arrive, <b>could I somehow use my work Macbook to emulate the console gaming experience?</b></p>
<p>It's not hard to install Windows on a Macbook as this is a built-in feature of macOS, but this is not entirely what I was looking for. I wanted to play PC games on the comfort of my sofa, <b>without removing the Macbook from my office.</b> TL;DR: It worked, and really well!</p>
<h2>Step 1: Install Windows</h2>
<p>As mentioned before, there's nothing special about installing a Windows partition on a Macbook. The Bootcamp Assistant software is built-in in macOS, and all you need to do is provide a Windows iso file (which you can download for free from Microsoft). You can then boot into Windows by holding the Option key during startup:</p>
<div class="post-image">
<img src="https://i.imgur.com/Ka2xWlV.jpg" alt="Alt">
</div>
<p>While Steam does work for macOS, the huge majority of games don't, so it's easier to just install Windows and run things as originally intended. This already lets me play whatever I want, but we're not done yet.</p>
<h2>Step 2: Streaming to the TV with Steam Link</h2>
<p>The Steam Link is one of these weird pieces of technology that are incredibly useful, yet for some reason pretty unknown. The link was released originally as a hardware in 2015 that allowed you to <b>stream</b> whatever you're using Steam for, but it was repurposed as a mobile/smart TV app around 2018.</p>
<p>Luckily for me, my Samsung TV has the Steam Link app on its store. It's pretty straight-forward: once you turn on Steam on your computer and open the app on your TV, the computer will be detected by the app and you'll be able to stream right away!</p>
<div class="post-image">
<img src="https://i.imgur.com/lq9Rl8j.png" alt="Alt">
</div>
<h2>Step 3: Enjoy! ...sort of</h2>
<p>Streaming through WiFi definitely works, but well, it sucks. Even though I have pretty good internet the input lag is <b>massive</b>, and the image is full of artifacts (not visible in this picture, but think of how YouTube videos appear to "glitch" when your connection is unstable)</p>
<div class="post-image">
<img src="https://i.imgur.com/LrWto0N.png" alt="Alt">
</div>
<p>I was already meaning to "upgrade" my Macbook to use a wired connection, so I thought this could be an interesting motivator to go forward with it!</p>
<h2>Step 4: Start passing wires through the apartment</h2>
<p>I'm lucky that half of the work was already done for me. My apartment had a ~10m RJ45 cable coming from the door into the living room, but I needed to re-route it so I could get it closer to the TV and the room in which the Macbook stays. The first thing I did was move the router to behind the TV, and then move a bunch of cable tunnels around to move the cable towards it:</p>
<div class="post-image">
<img src="https://i.imgur.com/iGSkYpq.png" alt="Alt">
</div>
<p>With the cable reaching the router, I could then use the router's outputs to wire the Macbook and the TV itself. Wiring the TV was straight-forward since the router is placed behind the TV, so all I needed to do now was pass a cable to the Macbook's room, which lied directly behind the TV's wall.</p>
<p>As mentioned before, I got pretty lucky with this project. It seems that the previous owner tried to do something similar in the past, because the wall already had a perfectly-sized hole drilled into it! I then used a super long RJ45 cable I had laying around to connect the router through the hole and into a USB-C hub in my desk that is connected to the Macbook itself.</p>
<div class="post-image">
<img src="https://i.imgur.com/NfljPAX.png" alt="Alt">
</div>
<h2>Step 5: Enjoy! (for real!)</h2>
<p>The result was beyond my expectations. Both the input-lag and the artifacts were <b>completely</b> gone!</p>
<p>I was also pleasantly surprised with how easy it was to use a controller with this setup. I'm not sure if the praise should go to Valve or Samsung, but plugging a Xbox 360 controller to the TV was all I needed to do for Steam to completely recognize it and let me play with it!</p>
<div class="post-image">
<img src="https://i.imgur.com/jEgTLZj.png" alt="Alt">
</div>
<p>In terms of performance, I can say that this 2019 Macbook Pro is well equipped for the task. These are the games I played and I had no issues with any of them: Elden Ring, Team Fortress 2, Devil May Cry 5, Hades and Dota 2.</p>
<p>The only downside I experienced is that the image is not as crisp as it would be if you were playing directly on your computer. It's definitely noticeable if you compare them, but to be honest, after a couple of minutes playing it I sort of "filtered" it inside my brain and stopped noticing it, so it wasn't bad at all. It's hard to tell the exact difference in these pictures because of the room's lighting, but I think you should be able to tell that the colors on the TV are a bit more "washed out" than the PC one:</p>
<div class="post-image">
<img src="https://i.imgur.com/4q6GItk.png" alt="Alt">
</div>
<div class="post-image">
<img src="https://i.imgur.com/EmDmcLS.png" alt="Alt">
</div>
<p>In general, <b>the only true problems I experienced were with Windows itself.</b> God, I can't stress enough how awful this OS is. To be honest, I'm not entirely sure if Bootcamp played a role in the issues I experienced, but it didn't feel like it. The issues I experienced is that if <i>anything</i> is out of place in this mess of an OS, the entire system will freak out. The biggest issue I had is that after playing flawlessly for a couple of days, I got a random BSOD in Elden Ring that <b>completely</b> destroyed the video card drivers in a way that no amount of reinstalling or nuking files managed to fix. I was rendered unable to do anything that involved the GPU without getting massive stuttering and FPS drops, and the only fix that worked was to format Windows.</p>
<div class="sponsor-article-ad-auto hidden"></div>
<p>I did get other BSODs after this, but luckily none that completely destroyed the system again, and I was then able to finish Elden Ring and feel satisfied with how this project turned out. Unfortunately I can't enjoy it anymore as my laptop was recently upgraded to one with the new M1 chips (which doesn't support Bootcamp anymore), but I was able to finish many games with it and can definitely recommend this setup for those who have a Intel MacBook for work and don't feel like getting a separate gaming rig.</p>
</div>
</div>
<div class="blog-post footer-main">
<div class="footer-logos">
<a href="https://swiftrocks.com/rss.xml"><i class="fa fa-rss"></i></a>
<a href="https://twitter.com/rockbruno_"><i class="fa fa-twitter"></i></a>
<a href="https://github.com/rockbruno"><i class="fa fa-github"></i></a>
</div>
<div class="footer-text">
© 2025 Bruno Rocha
</div>
<div class="footer-text">
<p><a href="https://swiftrocks.com">Home</a> / <a href="blog">See all posts</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Blog Post (Right Sidebar) End -->
</div>
</div>
</div>
<!-- All Javascript Plugins -->
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/prism4.js"></script>
<!-- Main Javascript File -->
<script type="text/javascript" src="js/scripts30.js"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-H8KZTWSQ1R"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-H8KZTWSQ1R');
</script>
</body>
</html>