Jump to content

Builder Problems and Virtual Windows 7

Ranger Fox
Followers 1

Recommended Posts

Ever since my main laptop shorted out around Thanksgiving, I've had problems with using the Builder on the new laptop (64-bit Vista). This thread isn't a complaint, rather a possible way to get around the problem and have a working Builder available. It may be overkill, but it does raise an issue regarding 64-bit and 32-bit versions.


First, though, my problem. My new laptop is running in 64-bit mode, which I think, due to the solution I'm using, might be the cause. I can open the Builder and create a cartridge just fine. However, opening a cartridge will yield a BadImageFormatException, claiming "Error Reading Cartridge", even while running the Builder as administrator and even in Win XP SP2 compliance mode. None of the previous versions of the Builder could get around this. So, for a little more than a month after, I couldn't work with the Builder other than on my file server, running Win XP in 32-bit mode, via remote desktop.


A few days ago, I decided I'd give the problem another go. I started by acknowledging it might not be worth my time at the moment to fix the problem on Vista 64-bit. So, instead, I download Virtual PC to do some experimentation (it's free from Microsoft, by the way). Instead of installing Win XP on a virtual computer and dealing with licensing issues and product keys, I had another idea I wanted to try. Windows 7 is now in public beta. Virtual PC didn't quite take nicely to the 64-bit version (I think either I'd have to install extensions, it can only run in 32-bit mode the way it was set up, or it virtualizes the processor into a 32-bit one), so I installed the 32-bit version of Windows 7 beta.


The Wherigo Builder worked perfectly on my virtual Windows 7 computer. All I did was install the current version the moment the OS finished its setup process. Since Windows 7 is based on Vista, I'm guessing the 32-bit OS version made the difference. I do wonder if this is the cause and if Groundspeak has a 64-bit version of the Builder somewhere. I'd really like to get my hands on a 64-bit compiled version of the Builder to test my theory (and, if allowed, distribute it to the community).


So, anyway, if you're like me and have problems running the Builder on Vista, it's possible to set up and run it from a virtual machine. I'm aware this isn't an optimal solution, nor would most of the community here approve of the length I went just to get an environment that worked with the Builder. If you don't have another Windows product key, use the free Windows 7 beta. Just be sure to back your cartridge up to your network in case something happens to the OS, the virtual hard drive file corrupts, or the beta licensing period expires.


For reference, I'm running a 3.0 GHz quad core laptop with 4GB RAM. You'll need good system resources to run a second OS. (Yeah, I know I skimped on the RAM and didn't get 8GB.)




But, now, at least I can finally get back to experimenting with the Builder. I really want to see if I can get an NPC or zone to move along certain zonepoints in a certain amount of time. Doing so will reflect real life in that most people (represented as NPCs in my simulation) do not stand still the entire time the game is in session. Besides, how cool would it be to reenact the boulder scene in Indiana Jones? And, this time, I'll publish a cartridge if I succeed.

Link to comment

Its definitally 64bit thats causing the problem. I've had to use a Virtual Machine (although in my case it was VMWare running XP) to get round the problem. Unfortunately I can't get the sound to work (driver issue), so its far from ideal, but at least its a solution. Personally I think its an issue to do with DotNet libraries that are being used.


The moving zones and npc's sounds interesting, as it happens I was pondering the best way to have snakes (Indiana's best friends) moving around and the player trying to avoid them. I'd be interested to know how you get on with the bolder scene. My main concern is the refresh on the Oregon not showing the new position / information.


Good luck with your project

Link to comment
The moving zones and npc's sounds interesting, as it happens I was pondering the best way to have snakes (Indiana's best friends) moving around and the player trying to avoid them. I'd be interested to know how you get on with the bolder scene. My main concern is the refresh on the Oregon not showing the new position / information.
I'll have to create a thread to discuss this later, but I'll fill you in just a little bit on what I'm trying to do.


First off, I'm building on what I learned with Whack-A-Lackey. It was important to know I can move zones from one location to another. I also learned it is possible to create zones and timers on the fly.


My hope is that I can create and use classes in a Wherigo cartridge. This will result in cleaner code. In addition, it will simplify array and object references.


The goal is to create a "ZoneMover" class where you can pass it a zone and an array of "MoveLocation" classes, each containing a ZonePoint and two integers. The MoveLocation class will instruct the ZoneMover to move the zone to a certain ZonePoint within a defined amount of time, the first integer (in seconds). The second integer is to pause the moved zone at the ZonePoint before the ZoneMover looks at the next MoveLocation and begins moving the zone there. I think I'll also need to add a function callback when all MoveLocations have been processed. The callback function can be used to reset the ZoneMover or tell it to move the zone back using the reverse of the MoveLocation array (simulating pacing).


I've had time to think it out due to the Builder issue. Sure, I will be doing the bulk of the coding in notepad or wordpad. However, while doing something technical like this, I demand constant compiles and testing every step of the way. Testing in the emulator as frequently as possible is another important point.


Now that I know a few people with Garmin Oregons, I can also get verification if this works on that GPSr as well as my Colorado.


For those curious, I'll try to keep versions of the code and, later, make a big write-up to explain how I did it and what it does. My ultimate goal and success factor is if others can take the classes I make, dump them in their cartridges, and use them without modification and knowledge about how they work.

Link to comment

Sounds good. I had a bit of a play around with moving zones earlier today. The Emulator doesn't seem to highlight the correct bit of the map, however the location pointer seemed to work and event triggered at the new location.


I'm assuming (at the moment at least) in the case of the Indies boulder, the boulder will be a zone in its own right that moves, and you can't do anything useful with objects or characters i.e. when the boulder zones arrives at your location you effectivly enter the boulder zones and get flattened [:D]

Link to comment

You should be able to show the zone's new location on the map. Try disabling the zone before you make the change, then enable it after. That forces the Player to process the zone and update its position.


Yes, I can do useful things with objects and characters. Usually, they are placed inside a zone. The code should move everything within the zone. But as long as the property accessors are the same, it should make no difference if you pass the classes zones, objects, or characters. This is assuming lua isn't as type-specific as other languages (scripting languages tend not to be). If typecasting gets in the way, I can try overloading the method. If I can't overload in lua, I could always cast the object as a generic object type and try going from there. There should be plenty of ways to get around problems. I'm more concerned, at that point, with elegance and ease of reading than I am in just getting it to work.


(I really need to create that other thread to separate this subject matter from this thread's main topic...)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Followers 1
  • Create New...