Sonic Free Riders is the third and final entry in the Sonic Riders spin-off series, released as a launch title for the Xbox 360's Kinect peripheral. The game received largely negative reception due to unresponsive motion controls.
The game is also notable for being the first Sonic game to feature a Los Angeles-based voice cast (predating Sonic Colors by twelve days), replacing the New York-based cast from the games prior (excluding Mike Pollock, who kept his role as Dr. Eggman). And until Sonic Racing: CrossWorlds, this was the last Sonic racing game to be developed in-house by Sonic Team.
Sub-Pages#
Unused Graphics#
Debug Cutscene Screenshots#




































Inside of gxs90_ST.pac, there's a whopping thirty-seven screenshots of cutscenes with debugging text, all with the filename of DummyScreen.
Development-Related Text#
Uncompiled Source Code#
Present at 0x174358 in default.xex is some uncompiled source code for the game.
vs.1.1 // ƒVƒF[ƒ_ ƒo[ƒWƒ‡ƒ“ 1.1
mul r1,v2.zyxw,c0.wwww // Geforce3 ‚Å UBYTE4 ‚ª‚È‚¢‚Ì‚ð•₤
mov a0.x,r1.x // 1 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r4,v0,c[a0.x + 9]
m3x3 r5,v3,c[a0.x + 9]
mov r4.w,c0.x // À•W•ÏŠ·
m4x4 oPos,r4,c2
dp3 r5.w, r5, r5 // –@ü‚Ì‹KŠi‰»
rsq r5.w, r5.w
mul r5, r5, r5.w
dp3 r1.x, r5, c1 // ƒ‰ƒCƒeƒBƒ“ƒO
lit r1, r1 //
mul r0, r1.y, c8 // •½sŒõŒ¹
add r0, r0, c7 // +ŠÂ‹«Œõ
min oD0, r0, c0.x // 1ˆÈ‰º‚ɃNƒ‰ƒ“ƒv
mov oD1, c0.zzzz // ‚·‚Ø‚«‚ã‚ç[‚ÌÝ’è
mov oT0, v4 // ƒeƒNƒXƒ`ƒƒ[À•W‚̃Rƒs[
vs.1.1 // ƒVƒF[ƒ_ ƒo[ƒWƒ‡ƒ“ 1.1
mul r1,v2.zyxw,c0.wwww // Geforce3 ‚Å UBYTE4 ‚ª‚È‚¢‚Ì‚ð•₤
dp3 r0.w,v1.xyz,c0.xzz // ÅŒã‚ÌŒW”‚̓EƒFƒCƒg‚̇Œv‚ª1‚©‚çŽZo
add r0.w,-r0.w,c0.x
mov a0.x,r1.x // 1 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r4,v0,c[a0.x + 9]
m3x3 r5,v3,c[a0.x + 9]
mul r4,r4,v1.xxxx // ŒW”‚ð‚©‚¯‚欂·‚é
mul r5,r5,v1.xxxx
mov a0.x,r1.y // 2 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,r0.wwww,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,r0.wwww,r5
mov r4.w,c0.x // À•W•ÏŠ·
m4x4 oPos,r4,c2
dp3 r5.w, r5, r5 // –@ü‚Ì‹KŠi‰»
rsq r5.w, r5.w
mul r5, r5, r5.w
dp3 r1.x, r5, c1 // ƒ‰ƒCƒeƒBƒ“ƒO
lit r1, r1 //
mul r0, r1.y, c8 // •½sŒõŒ¹
add r0, r0, c7 // +ŠÂ‹«Œõ
min oD0, r0, c0.x // 1ˆÈ‰º‚ɃNƒ‰ƒ“ƒv
mov oD1, c0.zzzz // ‚·‚Ø‚«‚ã‚ç[‚ÌÝ’è
mov oT0, v4 // ƒeƒNƒXƒ`ƒƒ[À•W‚̃Rƒs[
vs.1.1 // ƒVƒF[ƒ_ ƒo[ƒWƒ‡ƒ“ 1.1
mul r1,v2.zyxw,c0.wwww // Geforce3 ‚Å UBYTE4 ‚ª‚È‚¢‚Ì‚ð•₤
dp3 r0.w,v1.xyz,c0.xxz // ÅŒã‚ÌŒW”‚̓EƒFƒCƒg‚̇Œv‚ª1‚©‚çŽZo
add r0.w,-r0.w,c0.x
mov a0.x,r1.x // 1 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r4,v0,c[a0.x + 9]
m3x3 r5,v3,c[a0.x + 9]
mul r4,r4,v1.xxxx // ŒW”‚ð‚©‚¯‚欂·‚é
mul r5,r5,v1.xxxx
mov a0.x,r1.y // 2 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,v1.yyyy,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,v1.yyyy,r5
mov a0.x,r1.z // 3 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,r0.wwww,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,r0.wwww,r5
mov r4.w,c0.x // À•W•ÏŠ·
m4x4 oPos,r4,c2
dp3 r5.w, r5, r5 // –@ü‚Ì‹KŠi‰»
rsq r5.w, r5.w
mul r5, r5, r5.w
dp3 r1.x, r5, c1 // ƒ‰ƒCƒeƒBƒ“ƒO
lit r1, r1 //
mul r0, r1.y, c8 // •½sŒõŒ¹
add r0, r0, c7 // +ŠÂ‹«Œõ
min oD0, r0, c0.x // 1ˆÈ‰º‚ɃNƒ‰ƒ“ƒv
mov oD1, c0.zzzz // ‚·‚Ø‚«‚ã‚ç[‚ÌÝ’è
mov oT0, v4 // ƒeƒNƒXƒ`ƒƒ[À•W‚̃Rƒs[
dvs.1.1 // ƒVƒF[ƒ_ ƒo[ƒWƒ‡ƒ“ 1.1
mul r1,v2.zyxw,c0.wwww // Geforce3 ‚Å UBYTE4 ‚ª‚È‚¢‚Ì‚ð•₤
dp3 r0.w,v1.xyz,c0.xxx // ÅŒã‚ÌŒW”‚̓EƒFƒCƒg‚̇Œv‚ª1‚©‚çŽZo
add r0.w,-r0.w,c0.x
mov a0.x,r1.x // 1 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r4,v0,c[a0.x + 9]
m3x3 r5,v3,c[a0.x + 9]
mul r4,r4,v1.xxxx // ŒW”‚ð‚©‚¯‚欂·‚é
mul r5,r5,v1.xxxx
mov a0.x,r1.y // 2 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,v1.yyyy,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,v1.yyyy,r5
mov a0.x,r1.z // 3 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,v1.zzzz,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,v1.zzzz,r5
mov a0.x,r1.w // 4 ‚‚߂Ìs—ñ‚ðÝ’è
m4x3 r2,v0,c[a0.x + 9]
m3x3 r3,v3,c[a0.x + 9]
mad r4,r2,r0.wwww,r4 // ŒW”‚ð‚©‚¯‚欂·‚é
mad r5,r3,r0.wwww,r5
mov r4.w,c0.x // À•W•ÏŠ·
m4x4 oPos,r4,c2
dp3 r5.w, r5, r5 // –@ü‚Ì‹KŠi‰»
rsq r5.w, r5.w
mul r5, r5, r5.w
dp3 r1.x, r5, c1 // ƒ‰ƒCƒeƒBƒ“ƒO
lit r1, r1 //
mul r0, r1.y, c8 // •½sŒõŒ¹
add r0, r0, c7 // +ŠÂ‹«Œõ
min oD0, r0, c0.x // 1ˆÈ‰º‚ɃNƒ‰ƒ“ƒv
mov oD1, c0.zzzz // ‚·‚Ø‚«‚ã‚ç[‚ÌÝ’è
mov oT0, v4 // ƒeƒNƒXƒ`ƒƒ[À•W‚̃Rƒs[
Internal Project Name#
The game is internally known as SRN, which can be found many times throughout the executable. "SRN" is likely an abbreviation for "Sonic Riders Natal", especially considering that "Natal" was the codename for the Kinect.
(Source: Original TCRF research)