If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Sonic R (Windows)

From The Cutting Room Floor
Jump to navigation Jump to search
Other languages:

Title Screen

Sonic R

Developer: Traveller's Tales
Publisher: Sega
Platform: Windows
Released in JP: December 11, 1998
Released in US: November 11, 1998
Released in EU: November 15, 1998


CodeIcon.png This game has unused code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
Carts.png This game has revisional differences.


This cactus is UNDER CONSTRUCTION
This article is a work in progress.
...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes.

The PC version of Sonic R was notably improved over the Saturn original, and was later included in Sonic Gems Collection. Regardless, it still made people feel like they were pushing a cinder block across a rubber floor using a pen cap.

Also, Tails Doll.

Subpages

Carts.png
2004 Release Differences
Sonic R is known to be a very crash-prone game on newer systems. Here's its leaner, meaner, and much less crashy-er counterpart.

Leftover Direct3D Test Menu

SonicR-PC-menu.png

For some reason, the executable contains the menu from a very old Direct3D test program.

APPMENU MENU
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
POPUP "&File"
{
	MENUITEM "&About..\tF1",  1
	MENUITEM SEPARATOR
	MENUITEM "&Single Step\tSpc",  27
	MENUITEM "&Go\tEnter",  28
	MENUITEM "&Toggle Stats\tTab",  10
	MENUITEM SEPARATOR
	MENUITEM SEPARATOR
	MENUITEM SEPARATOR
	MENUITEM "E&xit\tESC",  2
}
POPUP "&Render"
{
	MENUITEM "&Flat\tF2",  12
	MENUITEM "&Gouraud\tF3",  13
	MENUITEM "P&hong\tF4",  14
	MENUITEM SEPARATOR
	MENUITEM "&Point\tCtrl+P",  20
	MENUITEM "&Wireframe\tCtrl+W",  21
	MENUITEM "&Solid\tCtrl+S",  22
	MENUITEM SEPARATOR
	MENUITEM "&Dithering\tCtrl+D",  24
	MENUITEM "&Anti-aliasing\tCtrl+A",  26
	MENUITEM SEPARATOR
	MENUITEM "&Z Buffer\tF5",  15
	MENUITEM "&Clears\tF6",  19
}
POPUP "&Lighting"
{
	MENUITEM "&Specular Highlights\tF7",  23
	MENUITEM "&Fog\tCtrl+F",  25
}
POPUP "&Textures"
{
	MENUITEM "&Textures On\tF8",  3
	MENUITEM "&Swap Textures\tF9",  4
	MENUITEM "Perspective &Correct\tF10",  16
	MENUITEM SEPARATOR
	MENUITEM "P&oint Filtering\tCtrl+O",  17
	MENUITEM "Bi-&Linear Filtering\tCtrl+L",  18
	MENUITEM SEPARATOR
}
POPUP "&Modes"
{
	MENUITEM "&Fullscreen\tAlt+Enter",  7
	MENUITEM "&Previous Mode\tAlt+PgUp",  9
	MENUITEM "&Next Mode\tAlt+PgDown",  8
	MENUITEM SEPARATOR
}
}

"About" Box

SonicR-PC-about.png

The "About" dialogue box is still in the executable, and can be accessed with a resource hacker.

Network Mode

Elementary, my dear Cactus.
This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Does this work on LANs? With the patched version of the game? Would Serial/Modem modes work on systems with serial ports or modems?

Sonic R had a post-release patch that added networking support. (You know, because the game was going to be all the rage at LAN parties) As it turns out, an early version of this shipped in the retail game, accessible via memory editor. Obviously it suffers from a few shortcomings compared to the patched version.

Only TCP/IP works; IPX just dings at you. In addition, you cannot enter an IP address or have a name other than "Player".

SonicR-NetworkMenu.png SonicR-NetworkProtocol.png

Despite this, everything still works quite swimmingly. You can select a course and a character and play against a friend, so long as they happen to be on the same computer as you.

SonicR-NetworkChat.png SonicR-NetworkStart.png

Unused Graphics

There's unused menu graphics. They're not all that interesting, but they're there.

SonicR-MP00.png

The "Player X In" labels went unused; the "Joystick/Keyboard X" labels were used instead.

SonicR-NET00.png

The graphics for the network mode went unused as, of course, the entire network mode went unused. Curiously, the final build of the network patch went for a text-based interface.

SonicR-OPTION00.png

These relatively non-descriptive letters for the menu models were replaced with actual icons. Also, there's a bunch of randomly placed palettes for whatever reason.

SonicR-RANK00.png

Some unused animated icons for the different time attack modes of Sonic R. These were replaced with smaller versions of the main menu models, which is a darn shame because these look really cool. Also, there's a couple of scribbles in the margins for good measure.

SonicR-RES00.png

There's a placeholder "SAVE" menu option for the results screen along with its background. Surprisingly it's infinitely more readable than the actual choices, probably due to it not looking like it's behind an inch of solid ice.

SonicR-SMODE00.png

The main menu graphics contain an icon for the unused Network mode, cobbled together from the default Windows 95 graphics. It's certainly more informative than the bunch of question marks, anyways. It did go used in the Network patch.

Oddities

Window Caption

If you force windowed mode using D3DWND or another DirectX windowing program and choose Direct3D, the caption will read SonicR by Traveler's Tales, but if you choose DirectDraw it will read BackBuffer.

This cannot be seen normally because the game always runs at fullscreen.

Out of Bounds Objects

For whatever reason all the levels have balloons placed out-of-bounds.

Hmmm...
To do:
Find the balloon in Regal Ruin. It most likely exists, I just can't find it.

SonicR-EmeraldBalloon.png SonicR-FactoryBalloon.png

This also applies to most other objects as well.

SonicR-RuinObjectsOOB.png

Strangely, the GameCube and PC versions seem to differ in where these balloons are located.

PC GameCube
SonicR-IslandBalloon.png SonicR-Hidden-balloon-on-resort-island.png
SonicR-CityBalloon.png SonicR-RadicalCityBalloon.png

Challenge Race Vs. Tails

SonicR-EmeraldVsTails.png

If you somehow get five Sonic tokens on Radiant Emerald (impossible without cheating due to it lacking said tokens), you get challenged to race against Tails.

EggRobo Texture Goof

SonicR-Eggroboerror.png

For whatever reason the texture on EggRobo's gun (assuming that's his name) got botched in the conversion between the Saturn and the PC. The texture of the part next to the trigger was erroneously replaced with the top of Tails's eye.

This was carried over to the Gems Collection release, which would be surprising if it weren't for the fact that not a single person cared about EggRobo, let alone knew what his name was.

Debugging Strings

There are a lot of debugging strings littered about Sonic R. These strings are loaded in various parts in key subroutines in the code right before a null sub. In some revisions of the Network Patch this null sub is replaced by a printf-like routine that outputs the debug info to a text log.

This is mostly useful during graphics initialization: (this is a small excerpt of a large log.)

--------------------
BEGIN SELECT DRIVERS

INFO DirectDraw - Default driver >>>display,Primary Display Driver<<< selected.
INFO DirectDraw - Device has no hardware acceleration.

INFO Direct3D - No suitable hardware drivers found, scanning software renderers.
INFO DirectDraw - Resetting to default driver >>>display,Primary Display Driver<<<.
INFO Direct3D - Not using any drivers, resetting to native software renderer.
INFO No available Direct3D devices.

INFO Fullscreen mode is TRUE.
INFO Native software render mode is TRUE.
INFO RenderMode set to native software render mode.
INFO Screen mode 320x200x8 selected.

ExamineProc
ExamineProc
ExamineProc
ExamineProc
ExamineProc
ExamineProc
END SELECT DRIVERS
------------------

It also announces every time it calls a major subroutine, which makes making a disassembly slightly easier. It's oddly nice to know that even the programmers just called all the files that make up the title screen "stuff".

LoadTPageRAW(0)
S3D_LoadWallpaper->0...1
InitTitleStuff
LoadTrack3(bin\titles\titles3.bin)
TintTrackGourauds
LoadTPageRAW(0)
LoadTPageRAW(1)
S3D_LoadTextureIntoTPageRAW
LoadTPageRAW(2)
LoadTPageRAW(3)
S3D_LoadWallpaper->0...1
RenderMode=RENDER_SOFT
(SWIDTH=320,SHEIGHT=200,SBPP=16,TWIDTH=320)
(pRender->Sprite3D=4787308)
TitleScreen
FindSonicRCD...yes
PlayCD(2)
InitOptionStuff
LoadTrack3(bin\option\option3.bin)

Attempting to list every single such string would not be easy, as there are a lot.

Unused strings

There are strings that do not appear to be used, or at least are never referred to directly by any active code. A weird amount of these refer to features or files that no longer exist. (This is not all of them, as there are simply too many strings to sort through, but it's a sizable portion nevertheless.)

Active debris @
Active homing rings @
Active bombs @
EM Sonic visible? @
YES@
EM_Sonic.raduis #w%i@
Objects drawn #w%i#g/#w%i@

F6-trackvisnum #w%i@
F7-STARTSPLINEPOINTCOUNT #w%i@
F8-STARTBOXPOINTCOUNT
F9-positionnum #w%i@
F10-PODIUMPOINTCOUNT #w%i@
F11-camposnum #w%i@
F12-WARPSPLINECOUNT #w%i@

000x000x00 (MONO) 0000
000.00 fps 00000000.00 tps 0000.00 mppps

balloon.dat
emerald.dat
Hmmm...
To do:
Some of these lost strings refer to code that is still in the executable but is never directly called by anything. Research that.