Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
•
•
•
•
•
•
•
•
•
•

• 
•
// Some examples
void vecf4_store4(float* ptr, VECF4_ARG value)
{
vst1q_f32(ptr, value);
}
vecf4 vecf4_load4(const f...
__pld(dest);
__pld(data);
for (int i = 0; i < count; ++i)
{
float32x4_t v = vld1q_f32(data + i*4);
vst1q_f32(dest + i*4, v...
•
•
•
•
•
•
•
•
•
•
•
•
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch
Upcoming SlideShare
Loading in …5
×

Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch

80 views

Published on

This talk is about how we brought the crazy, no holds barred open world experience of Saints Row The Third to the Nintendo Switch. It covers the general aspects of porting a game to the Switch and goes into detail on the major challenges of implementing the rendering and optimizing the game to run smoothly. The talk is rounded off with a number of concrete tips on how to make your game easily portable.

Given at Digital Dragons 2019 in Kraków, Poland, and in shorter former at Nordic Game Conference 2019 in Malmö, Sweden.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Saints Row on the Go - Bringing Saints Row The Third to the Nintendo Switch

  1. 1. • • •
  2. 2. • • • • • • • 
  3. 3. •  • // Some examples void vecf4_store4(float* ptr, VECF4_ARG value) { vst1q_f32(ptr, value); } vecf4 vecf4_load4(const float* values) { return vld1q_f32(values); } vecf4 vecf4_add(VECF4_ARG v0, VECF4_ARG v1) { return vaddq_f32(v0, v1); } bool vecf4_is_near_equal4(VECF4_ARG v0, VECF4_ARG v1, VECF4_ARG tol) { uint32x4_t v = vecf4_near_equal(v0, v1, tol); uint32x2_t qlow = vget_low_u32(v); uint32x2_t qhigh= vget_high_u32(v); uint32x2_t qtemp = vtst_u32(qlow, qhigh); uint32x2_t qtemp2 = vrev64_u32(qtemp); uint32x2_t res = vtst_u32(qtemp, qtemp2); uint32_t ret = 0; vst1_lane_u32(&ret, res, 0); return (bool)ret; } // ...more...
  4. 4. __pld(dest); __pld(data); for (int i = 0; i < count; ++i) { float32x4_t v = vld1q_f32(data + i*4); vst1q_f32(dest + i*4, v); } void* memcpy (void* destination, const void* source, size_t num);
  5. 5.
  6. 6. • • • • • • • • • •
  7. 7.

×