FO/FO2 Map Viewer

Digital_Utopia

First time out of the vault
Modder

First off, hey! I stumbled across this site while searching for Fallout mod tools, and thought I'd drop a preview off, to see if anybody (besides me) would be interested in it. I'm making this mostly for personal use; but if there's interest, I can add a bit of polish to it after it's done :p

Currently it's mostly complete - with just a bug or two in the map object parsing, and needs to be tested with a larger selection of maps (been working with the Vault 15 entrance map, and Vault 13 so far). So maybe a week, two at the absolute max, before it's ready.

As for why I decided to do this? Well, it's a kind of long, and a bit silly of a story. Keep reading, if you care. :)

Well, it all began, once I decided to give the originals a try, after enjoying both FO3 and FONV. It was fun enough, except I kept running into trouble with navigating.

So the first step, was to try to find some maps - and while I found some pretty decent composites taken in game, these all showed the maps with roofs on, and (obviously) with the walls up.

So, then I figured, I'd create my own in-game composites. Well...yeah, that was going to take forever by going in and out of each building to get a layer without roofs.

So, then I decided to see if there was a map editor - and of course, there was - linked on this very site. Unfortunately, as I should've known, running late 90's Windows software on Windows 8 64-bit, has a good chance of failing miserably. And so it was with Mapper 2.

The next attempt was to get a VMWare image of Windows xp, and run Mapper 2 that way. That did work, except Mapper 2 was made with a fixed map window, set at 640x480. So, while a bit quicker, piecing together a full map, with three different view states, was going to take a while. Even after using an Autohotkey script to automatically scroll the map, and a custom app to capture the area and place it - it was still going to be a pain.

And that brings me to this project. Thanks to the Vault-Tec Mods wiki, I was able to read up on the necessary formats, to be able to create this. Of course, with the time that's taken so far, I could've probably achieved the same end goal with any of the previous attempts. But...this was a lot more fun. :p

I suppose, once I'm done, I should actually get back to finishing the game, and go on to FO2... /shrug
 
Hi, welcome to the forums!

If you finish the program, I think definitely the community will appreciate your efforts and make use of it.

Possibly related: if this is helpful to you, I've done work on getting Mapper2 working for FO1 maps, and work from Sorrow & Darek & Endocore: http://www.nma-fallout.com/forum/viewtopic.php?t=58981 (only posting this since it seems you're focusing on Fallout1). Also, Cubik2k made a program that converts Fallout2 format .MAP files into Fallout1 format, if that's needed either. I'm not sure because the post contents seems to indicate you're focusing on Fallout1, but the thread title lists both games.

Is this planned as an editor or a viewer-only?
 
Last edited by a moderator:
Hi, welcome to the forums!

If you finish the program, I think definitely the community will appreciate your efforts and make use of it.

Possibly related: if this is helpful to you, I've done work on getting Mapper2 working for FO1 maps, and work from Sorrow & Darek & Endocore: http://www.nma-fallout.com/forum/viewtopic.php?t=58981 (only posting this since it seems you're focusing on Fallout1). Also, Cubik2k made a program that converts Fallout2 format .MAP files into Fallout1 format, if that's needed either. I'm not sure because the post contents seems to indicate you're focusing on Fallout1, but the thread title lists both games.

Is this planned as an editor or a viewer-only?

Hey, that's pretty cool. I like the UI improvements, and the graphics are a nice touch too.

As far as mine goes, I definitely hope to support FO2 maps as well, and I *think* I've already accounted for any differences I've come across in the documentation; but y'know - taking things step by step. Once I get everything working for FO1, I'll move on to testing FO2 maps.

As far as my plans go, I'd have to see a whole lot of demand to turn it into an editor. Either from myself, or others. It would obviously take a significant amount of work (as you should know) to handle all the extra UI/events/error handling required to make it proper, so it's likely to just remain a viewer.
 
re: view-vs-editor, fair enough. I think it would still be useful as a quick-reference tool for modders (and maybe players too, like if the person wants to see the layout of the next area or whatever). I can imagine using it to have it open with a map off to the side while I run Mapper2 windowed alongside it.

What language are you making it in? There are a few folks here that I know work with C/C++, maybe they could help.
 
re: view-vs-editor, fair enough. I think it would still be useful as a quick-reference tool for modders (and maybe players too, like if the person wants to see the layout of the next area or whatever). I can imagine using it to have it open with a map off to the side while I run Mapper2 windowed alongside it.

What language are you making it in? There are a few folks here that I know work with C/C++, maybe they could help.
Yeah, that's most of the reason for it - I've also had a bit of experience with some web stuff, and was thinking of maybe using the images with some kind of dynamic POI stuff, for an interactive walkthrough or something.

It's written in C# - honestly, as a language - I do prefer C++, but for Windows apps, the UI stuff is a lot simpler in .net - at least in my opinion.

It's not really the code that's the problem anyway, most of the issues are due to incomplete documentation on the format, including some things that seem incorrect. So I'm pretty much filling in the blanks and self correcting as I muddle along.

For instance, the current problem I'm facing is missing wall tiles/scenery items on the 3rd level of the Vault 13 map. The funny thing is, that I don't seem to be entirely alone with this issue. Mapper2 will at least display those items, but clicking on any of them (and only those items) with the object select will throw an Access Violation error. Since the FRM loads fine, and the object is in the collection of parsed items, I'm thinking maybe that it might be something with the prototype file... Oh well, I'll keep digging lol

Edit: Well, I don't know what caused Mapper's issue, but I found out why those items weren't showing for me.

I (incorrectly) assumed that a map object wouldn't have an orientation set for a FRM that only had one orientation (i.e. zero).

Any chance you can release it to the public...hint, hint.

Well, if I only wanted to keep it to myself, that would be kinda a crap move to make this thread, wouldn't it? :p

Yes, I will release it when it loads everything correctly, and put a little polish on it. :D
 
Last edited:
Did a rewrite of the main MAP/PRO/Object classes yesterday, with promising enough results to go through all of the FO maps and attempt to load them. Of the 72 maps:

  • 6 Maps threw exceptions (Mapper2 failed at loading 3 of those)
  • 7 Cases of File Not Found errors when loading FRMs (Turned out it was actually due to having the "edited" version of the game, where the child critter was removed, by simply removing most of its FRMs. Better handling compensated for this.)
  • A presumed generation bug - that really wasn't a bug at all. (MSTRLR34 - for some reason, contains roof tiles over one section of the map, making it appear that the section was missing. )
  • Need to work on understanding how dead (R) Frames are referenced in the Character PID. Currently the problem is that I'm not seeing dead people. :p

Overall, not a bad first run-through.

As I said, once I've got the FO Maps all working perfectly, I'll test it out on FO2 Maps as well.
 
Last edited:
Mapper2 shouldn't fail opening Fallout1 maps if it's set up correctly. Did you check out my "Getting mapper to work on FO1 maps" thread?

Sounds good though. It's funny I was just thinking a couple days ago it'd be nice to have two or more instances of Mapper2 open at once. Looks like if you release your thing, that won't be necessary :)
 
Mapper2 shouldn't fail opening Fallout1 maps if it's set up correctly. Did you check out my "Getting mapper to work on FO1 maps" thread?

Sounds good though. It's funny I was just thinking a couple days ago it'd be nice to have two or more instances of Mapper2 open at once. Looks like if you release your thing, that won't be necessary :)

I think perhaps I'm calling it the wrong name? The one I'm talking about was downloaded in a zip file named Mapper2, but the actual application claims that it's version 0.98c. So maybe it's the original Mapper? Or a different one? At any rate, this is what the application looks like:



All the Fallout Maps are now loading correctly, and I've figured out the death frames (thanks to another thread here), and pretty much discovered that it kinda defaults back to HMJMPS if a critter doesn't have a particular dead frame (i.e. like incinerated). Right now, I'm working on the UI, including zoom (from fill window to 1x)& pan (with middle mouse) and an overview window. This is what I've got so far...currently working on the overview window, and pan & zoom is working:



After that, I'll be adding a level chooser off to the right, above the overview, and probably changing that bottom bar into a proper menu bar with buttons instead of check boxes.

I do have one minor issue that I hope someone with more experience could help solve. It seems that there's a particular index in FRM files, that indicates a custom color. Stuff like force fields, slime tiles, barrels, and monitors will have pixels that appear as white in the map editor above, will appear as completely transparent in some other FRM viewers, and in mine - it appears as black.

Now, obviously that color has to be set somewhere; but I'm not exactly sure where that would be. Ordinarily I would assume that it's something in that tile's prototype file; but considering there's no difference between the tile's FRM ID and ProtoID, I can't see how that could be used to set the color on a per-tile basis.

So I'd appreciate it if someone could at least point me in the right direction. It's obviously not a show-stopper or anything; but it is kinda annoying. :p
 
If any module in C/C++ is useful/useable for the project (I don't know nor I plan to learn C#, and I ignore if it is backwards compatible with any of those languages), I might eventually help.

EDIT: Same if you are interested in a port to Qt/C++ or Win32API+C/C++. I wouldn't use MFC as I can not cross build from Linux, and I feel more comfortable working in that environment.
 

Thanks for the links; but I'm not exactly sure how these relate to the PAL file. I mean, other than the interface, there only appears to be one general palette file. Or is the animated palette in a separate table within it?

This is the reference I've been using for the PAL

And this is what I used to read the FRM files

It's easy enough to tell whether or not a FRM is animated, so deciding which palette to use is pretty straightforward - I'd just prefer to use the native files if I could.

But regardless, thanks again!

If any module in C/C++ is useful/useable for the project (I don't know nor I plan to learn C#, and I ignore if it is backwards compatible with any of those languages), I might eventually help.

EDIT: Same if you are interested in a port to Qt/C++ or Win32API+C/C++. I wouldn't use MFC as I can not cross build from Linux, and I feel more comfortable working in that environment.

I appreciate the offer; but - at least so far - I think I've pretty much gotten it down. Save for that FRM display issue. That being said, I've got nothing against porting my MAP/FRM/PRO classes over to C++ for use in a library or whatever. I just haven't found a C++ UI API that wasn't a pain to do anything more than basic Windows Forms stuff. Without dealing with the end-user nightmare that's Managed C++ lol.
 
Well, the good news is that everything from the threaded resource loading, to the thumbnail level navigation is done - even one last tweak to the zoom, so that works appropriately. On top of that, I started trying out some Fallout 2 maps, and it looks like at least 3/4 of those are working. So that's an encouraging start.

Unfortunately, there is a little bad news - a speed bump if you will. It appears that even WPF doesn't like translating and scaling an 8000x3600 px image, even if it's "rendered" to the canvas. Doing either resulted in a CPU spike that topped off at around 53% - and this was testing on the app itself, with no debugger attached.

Sooooo it looks like I'm going to have to replace that Canvas with a DirectX surface. Always wanted to mess around with that, guess now is as good of time as any. :p
 
Nice, good to hear about the progress.

Be careful with DirectX though, modern games tend to render text in DirectX, meaning people with low-end systems can't read anything because it's blurry as shit. So if there's a way to avoid that, please do so. People with shitty systems like mine will appreciate it :)

[Examples of games that do this: Diablo III, Wasteland 2, Battlefield series]
 
Nice, good to hear about the progress.

Be careful with DirectX though, modern games tend to render text in DirectX, meaning people with low-end systems can't read anything because it's blurry as shit. So if there's a way to avoid that, please do so. People with shitty systems like mine will appreciate it :)

[Examples of games that do this: Diablo III, Wasteland 2, Battlefield series]

Oh not to worry - it's still going to be almost entirely a normal Windows app. It's just going to have a single DirectX control that will display the map itself. As long as you have DirectX 9, .NET 3.5 and around 50-60 MB RAM, you should be good. :)

At some later point, I'll probably support item selection, and process the MSGs for inspection (i.e. names, descriptions, etc.), but even then the text can be displayed in any normal Windows control.
 
Just wanted to make a brief update.

First off - there's not going to be a need for a separate graphics API. Although my Google-fu was failing me when initially trying to cure the performance issues, eventually it came around, and have discovered a few tricks that have drastically improved performance.

At this point, even with the window maximized (1920x1080), a full pan "swipe" (i.e. panning from one corner to the opposite) doesn't exceed 25% CPU, and even rapid panning (i.e. holding the mouse down, and shaking the mouse quickly and excessively) doesn't exceed 45%. Zooming has a negligible impact, and these stats were taken while debugging, so it should be even less.

My build target will be .NET 4.0, so it should be usable by anyone with Windows xp (SP3) on up.

If everything continues to go well, I should have a beta release available for Christmas :p
 
Okay...so, this is what a bit of polish looks like:

iXPMPZb.png


and below is the link to the first beta release; but first - let's get all the technical stuff out of the way.

System Requirements
Windows xp SP3 and newer, with .NET 4.0 installed
Screen resolution of at least 640 x 480

Game Requirements
Fallout. (Fallout 2 support is coming, but right now only about half of the maps load.)
All files extracted from the .DATs - including critters.

things of note
This app is pretty much the epitome of portable; but it will create a config file that it uses to keep your recent files, window settings, fallout data paths stored. If you happen to hate the way it's looking at you or something, and you choose to delete it, it will just make a new (default) one, the next time you run it.

In addition, any external libraries are embedded, so you won't have to put up with random .dll files.

Finally, I've tried to make it a little intelligent. If you have your paths set up sensibly (i.e. Map files in your Fallout/Data/Maps folder, and the various ART folders in your Fallout/Data/Art/* path, it should automatically set the appropriate data folder preference for you, when you open your first map. If, for whatever reason, the MAP file isn't in an appropriate folder - then you'll have to go to Edit->Preferences and set your folder manually. Otherwise it will yell at you, if it gets lost. :p

General Usage Instructions

Panning: Hold down Middle Mouse Button, or press Space + Left Click
Zoom: Mousewheel or Ctrl +/Ctrl -

Overview Window will allow you to jump to the point where you click, as well as click + drag for panning.
Zooming can be done on the Overview as well, although for now, it only accepts the mousewheel.

Levels area, will let you switch between any of the other floors in that map.

Save Map as Image: After a map is loaded, you can save the entire 8000x3600 px map as as a png, jpg, bmp, or tiff image. It will save whatever you currently have shown - so if you want a copy of Halls of the Dead, without a roof, just deselect the roof button, and save away.

Copy Map to Clipboard: Pretty much the same deal as above, only it will copy it to the clipboard, instead of saving it first. Be aware that copying such a large image to the clipboard will deliver a pretty big performance hit.

That's pretty much it - save for the display icons, which should be pretty straight forward.

Final note

I am toying around with the idea of loading up the various MSG files, and making the various critters/objects selectable. Most of the necessary information is already available - I just wanted to make sure that generating the map itself went well, first. Once I get Fallout 2 maps loading correctly, I'm likely to revisit this idea.

And last, but not least

This is a beta - while I have diligently tested out the various features of this application, and have done my best to ensure its reliability, there are bound to be things I've missed. So if it crashes to desktop, starts misbehaving, or exhibits other rude behaviors, please let me know about it, and as much about the situation that seemed to cause it as possible. The quicker I can get to the bottom of it, the quicker I can fix the problem, and the happier we all will be.

Also, if you have any suggestions, features, or other input on what could be done to make this more useful for you, again, let me know.

Alright- that's enough blabbing for one night. The link to the file is below. As for any program, be safe and scan it first. I can promise all day long that I have the best of intentions; but I'm just some random guy from the internet :p


And...here it is
 
Back
Top