May 28, 2011

RomTerraria FAQ

This is a list of frequently asked questions about RomTerraria, along with hopefully some answers.

[Update 11/9 1:25p] Most of this FAQ is out of date due to Terraria being upgraded to v1.2.  Preview releases of RomTerraria 3.0 are located here.
What is RomTerraria?

RomTerraria is a launcher for Terraria, a new indie game being distributed via Steam.

How does RomTerraria work?

RomTerraria takes advantage of a feature of the .NET Framework where every .NET executable is also a class. When RomTerraria is launched, it instantiates a copy of the game class inside Terraria.exe, modifies some internal variables inside the class using either direct access or reflection, and then fires the appropriate methods once you hit the launch button. It also uses the GameComponent architecture inside of XNA games to hook into the Update events, but because of where base.Draw(GameTime) is called inside Terraria, an alternate solution had to be used for where I'm doing rendering.

Why does RomTerraria have to be in the same folder as Terraria.exe?

The way I'm currently binding to Terraria.exe demands it. For awhile, I was working on separating the two, but given recent interactions with the community, I'm binding it tighter to the original game executable and to Steam.

Why did you release the source code?

I wanted to show that you could modify the game without cracking the executable, decompiling it, modifying the disassembled code, then illegally distributing their code. (Note: The source is occasionally one or two minor bug-fix updates behind.)

Why do fewer enemies spawn during gameplay when I'm using widescreen resolutions?

Terraria uses the screen dimensions to determine where to spawn enemies. For stock spawn rates, launch a local multiplayer server, then connect to that server.

When will the new HUD be complete?

No current estimate. The air conditioning in my apartment went out, and even with a 20" box fan blasting my box, it still gets too hot if I use it for long periods of time. Replacement parts have been ordered, but are backordered. My A/C should be fixed by June 4.

What does "Enable Pony" do?

I've been asked this from nineteen separate countries. First, read this thread over at Shacknews. Second, realize that had been a horrible day. Third, epic troll is epic.

I'm using a pirated version of Terraria, and your launcher won't work.

Boo hoo. Buy the game. Even if I was to grant the asinine assertion that piracy for evaluation purposes was acceptable (which I'm not), the moment you start looking for enhancements, evaluation time is over.

The launcher is crashing. What should I do?

First, make sure that you have the latest version of the launcher. Second, make sure all the files are in the same folder as Terraria.exe. Third, make sure Steam is running. If all of those conditions are met, the launcher should pop up a stack trace on the screen. Hit Control-C, reply to this post, and then hit Control-V to paste the stack trace into the comment.

I turned on Infinite Goblin Invasion. After turning it off, they're still coming. What should I do?

The Infinite Goblin Invasion option keeps firing the trigger to bring on new invasions. Each invasion contains at least 100 goblins. Unfortunately, that means you'll have to kill to the end of the current invasion. Good luck.

I'm using your launcher and I'm getting an error about fontCombatText.

Upgrade to the 2.0 launcher series.

19 comments:

csos95 said...

i get this when i try to enter any world

---------------------------
Terraria v1.0.5/RomTerraria 1.20.5.33767 Error
---------------------------
Unhandled exception:
[System.MissingFieldException]
Field not found: 'Terraria.Player.rocketTime'.

at RomTerraria.Trainer.Update(GameTime gameTime)

at Microsoft.Xna.Framework.Game.Update(GameTime gameTime)

at Terraria.Main.Update(GameTime gameTime)

at RomTerraria.MainOverride.Update(GameTime gameTime) in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\MainOverride.cs:line 329

at Microsoft.Xna.Framework.Game.Tick()

at Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)

at Microsoft.Xna.Framework.GameHost.OnIdle()

at Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()

at Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)

at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)

at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

at System.Windows.Forms.Application.Run(Form mainForm)

at Microsoft.Xna.Framework.WindowsGameHost.Run()

at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)

at RomTerraria.Program.Main() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\Program.cs:line 157
---------------------------
OK
---------------------------

Michael Russell said...

csos95,

Looking into it now. Hopefully I'll have a fix up before my flight this morning.

Michael Russell said...

csos95,

I can't replicate the issue. I made sure my copy of Terraria was up-to-date, popped open Reflector, and the field is there. In addition, I can hop into the game without issue.

It's almost like you've got an older version of the game.

Purpeltendire said...

This is what pops up when I try to launch.

---------------------------
Terraria v1.0.6/RomTerraria 1.20.5.33767 Error
---------------------------
Unhandled exception:
[System.MissingFieldException]
Field not found: 'Terraria.Main.fontCombatText'.

at RomTerraria.MainOverride.LoadContent()

at Microsoft.Xna.Framework.Game.Initialize()

at Terraria.Main.Initialize()

at RomTerraria.MainOverride.Initialize() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\MainOverride.cs:line 143

at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)

at RomTerraria.Program.Main() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\Program.cs:line 157
---------------------------
OK
---------------------------

Unknown said...

This pops up when I use the launcher.

---------------------------
Terraria v1.0.6/RomTerraria 1.20.5.33767 Error
---------------------------
Unhandled exception:
[System.MissingFieldException]
Field not found: 'Terraria.Main.fontCombatText'.

at RomTerraria.MainOverride.LoadContent()

at Microsoft.Xna.Framework.Game.Initialize()

at Terraria.Main.Initialize()

at RomTerraria.MainOverride.Initialize() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\MainOverride.cs:line 143

at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)

at RomTerraria.Program.Main() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\Program.cs:line 157
---------------------------
OK
---------------------------

Unknown said...

This pops up when I run the launcher.

---------------------------
Terraria v1.0.6/RomTerraria 1.20.5.33767 Error
---------------------------
Unhandled exception:
[System.MissingFieldException]
Field not found: 'Terraria.Main.fontCombatText'.

at RomTerraria.MainOverride.LoadContent()

at Microsoft.Xna.Framework.Game.Initialize()

at Terraria.Main.Initialize()

at RomTerraria.MainOverride.Initialize() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\MainOverride.cs:line 143

at Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)

at RomTerraria.Program.Main() in C:\Users\Rom\Documents\Visual Studio 2010\Projects\RomTerraria\RomTerraria\Program.cs:line 157
---------------------------
OK
---------------------------

Michael Russell said...

Purpletendire,

Upgrade to 2.0 RC3.

http://romsteady.blogspot.com/2011/08/romterraria-20-rc3-available.html

DehZant said...

Hi. I'm getting a "RomTerraria has stopped working" error in windows.

The error report goes as such (translated from finnish windows)

"Problem event name: CLR20r3
Problem identifier01: romterraria.exe
Problem identifier02: 2.0.4240.38736
Problem identifier03: 4e449e80
Problem identifier04: microsoft.xna.framework.graphics
Problem identifier05: 4.0.0.0
Problem identifier06: 4c72cce5
Problem identifier07: 5d3
Problem identifier08: 2e
Problem identifier09: System.NotSupportedException

Operating system version: 6.1.7600.2.0.0.768.3

Area based settings id: 1035

Additional info1: 0a9e
Additional info2: 0a9e372d3b4ad19135b953a78882e768
Additional info3: 0a9e
Additional info4: 0a9e372d3b4ad19135b953a78882e768

---------------------------

I put the program in the terraria folder, I have steam running, I have the newest terraria. I don't know what is wrong. However, I see that following your link to the RomTerraria 2, and from there to the download page, has something odd. The download page states version 1.0.0.12, related?

---

assuming this even works anymore.

Thanks for help!

Michael Russell said...

DehZant,

The 1.0 version doesn't work with 1.0.6. They made a change that broke old versions.

I just copied up 2.0 RC5 to the link, and that does work with 1.0.6.1.

DehZant said...

Still can't find where you've put 2.0 RC3/5

http://www.romsteady.net/rtinstall/publish.htm

^That is where every download link links me to, and that has version 1.0.0.12

Once again. Thanks for help. :)

Michael Russell said...

DehZant,

Please clear your browser cache.

The installer version number of RC5 is 2.0.0.13.

DehZant said...

RomTerraria v2.0.4249.22846 produces the same result (has stopped working) with the same error details.

If you have any idea what's going on on my side, I'd appreciate it. I'll check back on the comments tomorrow (gotta zzz)

Thanks.

Michael Russell said...

DehZant,

It seems weird.

I know you're running Windows 7.

Are you running with the HiDef switch? If so, uncheck that and try again. Not all video cards support HiDef.

DehZant said...

Yes W7 HP 64bit

I'm not running the hidef switch. I'm only using the "enable support for non-standard resolutions in terraria" option.

Thanks

Michael Russell said...

DehZant,

Two last questions: Are you going full screen? And if so, is the resolution you are going to supported by your video card?

That option is for people who want to use fullscreen resolutions that are natively supported by their video cards that aren't supported by Terraria, or people who want to start up with a specific windowed resolution.

DehZant said...

Not sure if the launcher would start it in fullscreen or not.


Yes, my video card and monitors support my resolutions that I've tried to use, 5760x1200 and 2048x1536. One is an eyefinity setup and the other is my main screen only.

Michael Russell said...

DehZant,

Can you please try the "DirectX Cooperative Mode" setting instead?

DehZant said...

Sure thing.

Produces the same result at 5760x1200. Produces a windowed mode terraria without window mode borders when I've set my desktop settings to 2048x1536, the window being 1920x1200. Apparently I thought I had tested 2048x1536 ones and gotten the error, but that works on this release. I think I tested that on the previous one.
Good news on that one working.

My eyefinity group at 5760x1200 is not working though. That's what I'm mainly looking to get working. Since no program/even windows should be able to tell the difference between an eyefinity group and a single monitor at that resolution, It seems odd that this program would now work on 2048x1536 yet not on 5760x1200.


Running a HD5870 @ 11.8 drivers

Thanks

Unknown said...

What's the largest resolution this can do? My PC is 6024 by 1080 (bezel space adds some distance). I have found that the launcher won't launch with that as a custom resolution :).