Oblivion Ultimate 2011 – Episode 2: Tweaks and utilities

Hey there !

Seems there is interest for more, so I’ll do it :)

Next step is, quite logically, tweaking and optimization, as well as installing those handy utilities.

Keep in mind that this is merely an extended mod list, so I won’t go into details on how to use everything. This is not complete guide to modded Oblivion, there is a very good one available for that already.

Here is my configuration for reference purpose:

CPU: Intel Core2Duo E6320 (By default 1.8ghz, but overclocked to 2.4ghz.)
RAM: 2Go of DDR2 @ 667Mhz
Graphics Card: Ati Radeon HD4890
OS: Windows 7 Ultimate x64

A very modest configuration, nowadays, but it runs almost everything at full details in 720p or 1080p, so…

Oblivion.ini tweaks

For most of these tweaks, you need to edit the file Oblivion.ini. On Windows 7, the file is in Documents/My Games/Oblivion.

Before doing any of those tweaks, launch the game at least one time. This is to generate some settings in the Oblivion.ini.
You don’t need to actually launch a new game, just going to the main menu is enough. However, it is a good idea to try a new game if you’ve never launched Oblivion on that computer before, and go to an outdoor area, to assess performances. If you want a quick way to get outside, you can try Alternative Start Arrive By Ship by Robert Evrae.

I recommend Notepad++ for .ini of edits, because you can make multiple copies of the file and compare the two to restore old values. It’s also much better than the standard notepad for just about everything.

We’ll begin by some “regular” edits.

SIntroSequence=
>>> Deleting everything makes the game start faster by removing every intro video.
bAllowScreenShot=1
>>> As the name implies, allows you to take screenshots
iShadowMapResolution=1024
>>> Default is 256. Setting this to 512 or 1024 improves the quality of the shadows slightly and prevents a crash. Setting it beyond 1024 makes no difference.
bBorderRegionsEnabled=0
>>> This setting removes the invisible borders around Cyrodill. It’s needed by many mods and does no harm.
bUse Joystick=0
>>> Weirdly enough, this is set to 1 by default. It can make the game crash and the mouse can be strange at times if it’s on.

As Oblivion doesn’t support newer cards officially, it will set the game to Medium Details. You can fix this by checking the following things in Oblivion.ini for a Ultra High setting:

[Display]
iSize W=1024
iSize H=768
iAdapter=0
bFull Screen=1
iMultiSample=0
iPresentInterval=1
fSpecularLOD1=1000.0
fSpecularLOD2=1300.0
iShadowFilter=2
iActorShadowCountExt=3
iActorShadowCountInt=5
bActorSelfShadowing=0
bShadowsOnGrass=0
bDoCanopyShadowPass=1
bDynamicWindowReflections=1
iTexMipMapSkip=0
fGrassStartFadeDistance=6000.0
fGrassEndDistance=7000.0
bDecalsOnSkinnedGeometry=1
fDecalLifetime=10.0
bFullBrightLighting=0
iMaxLandscapeTextures=0
bLODPopActors=0
bLODPopItems=0
bLODPopObjects=0
bUseRefractionShader=1

[LOD]
bDisplayLODLand=1
bDisplayLODBuildings=1
bDisplayLODTrees=1
fLODMultTrees=1.8
fLODMultActors=10.0
fLODMultItems=10.0
fLODMultObjects=10.0

[BlurShader]
bUseBlurShader=0

[BlurShaderHDR]
bDoHighDynamicRange=1

[Water]
bUseWaterReflections=1
bUseWaterDisplacements=1
bUseWaterHiRes=1

[General]
bUseEyeEnvMapping=1

To prevent some CTDs, apply the following modifications. It disables automatic saves, which can lead to bloated saves and crashes. We’ll use mods to take care of autosave:

[General]
bAllowScriptedAutosave=0

[Gameplay]
bSaveOnTravel=0
bSaveOnWait=0
bSaveOnRest=0
bSaveOnInteriorExteriorSwitch=0

If you have a dual core or quad core CPU, you can also grab a few FPSes by setting these:

bUseThreadedBlood=1 (default 0)
bUseThreadedMorpher=1 (default 0)
bUseThreadedTempEffects=1 (default 0)
bUseThreadedParticleSystem=1 (default 0)
bBackgroundPathing=1 (default 0)
bUseBackgroundFileLoader=1 (default 0)
iNumHavokThreads=3 (default 1)
iThreads=10 (default 3)

As far as performances go, this is all we can do to my knowledge in the .ini.
You have a few options like the lights and trees LOD distance and some other things you can change here. I won’t go into details here because it’s fairly straightforward: the higher the number, the farther you can see them.

Utilities

We need a mod manager. You have the choice between 2 totally different programs: Wrye Bash and OBMM. Fortunately, both are compatible with each other and will probably end up using both anyway.

Open OBMM and go to Settings and check Never modify load order. This is because we’ll use another program to take care of that for us. (Which greatly simplifies the installation of things like FCOM.) Then go to Utilities and Archive Invalidation. In the new window, check BSA redirection and click on Update now.

The Wrye Bash installation is a bit more complex. Install Wrye Python first, because you probably haven’t got any of what it contains. If you’re a Python developer, though, you may be okay. Check the requirements.
Then, just install the PYTHON version of Wrye Bash. DON’T install the stand alone version. At the time I write this (07/17/2011) Wrye Bash version 293 suffers from a bug with BOSS, another program we’ll be using. We can fix it easily, however we need the Python version to do so.

Here is the fix, straight from the TESNexus page of Wrye Bash:

On line 14293 of basher.py, replace:

if version > 3: version = 1

with:

if version in (2,3): version = 2
elif version > 3: version = 1

Keep in mind that in Python, spaces matter. Even the difference between a space and a tab is important, so keep the same number of spaces before these lines. Also, this fix will not work for the WBSA, as there are no Python files to edit (sorry).

So, just open basher.py with a text editor (Notepad++ is, again, recommended. You can use IDLE that came with Wrye Python, it’s the official Python editor.) DO NOT do the edit with the notepad. You NEED to check the line you’re on as the file may contain that particular line multiple times. Pay a close attention to the spaces before each lines you add as the script could break if they are not the same as the rest of the file.

Next, launch Wrye Python and answer Yes when it asks to deactivate time lock. You can then close it. (Yes, I know. “Useless”. You can do it later if you want, but I say it here so that I do’nt forget to later on.)

Next on our list is BOSS, or Better Oblivion Sorting Software. This handy little utility will prevent us from messing our load order, which is quite important when you’ve got 100+ mods all running at the same time. (Or FCOM. We’ll get to it, don’t worry.)
It’s pretty easy to install and VERY straightforward to use.  Just press the Run BOSS button and a webpage should open, with you load order and some comments. Many of these comments are VERY important. They tell you which mods you’ll need to clean, sometimes which patch you need to make it work with another mod or some other useful stuff.

The next 2 utilities, you’re not forced to install, but they can come handy for some mods.
TES4Edit will allow you to easily clean mods, helping compatibility. BOSS will tell you which mods to clean and will provide you with a link for instructions on how to do it, so I won’t explain it here.
TES4LODGen is useful if you run something like Really Almost Everything Visible When Distant. It’ll generate the LOD meshes that are not available. Especially useful if you want to see things added by mods.

That’s it for the tweak and utilities part. It’s a bit long and without any pictures, but there is actually not that much to make screenshots of, given half of the stuff we’ve done is text-file editing…

Next time, we’ll add some optimization plug-ins to the game, to enhance performances and prevent even more crashes. (Hey, it’s not because our computers are 2 to 10 times faster than when Oblivion came out that we shouldn’t optimize everything, right ?)
Thanks for reading and see you next time.

Advertisements

Oblivion Ultimate 2011 – Episode 1: OBGE and ENBSeries

Hey there !

I recently wanted to reinstall Oblivion, seeing as Skyrim is soming in a few month but there is just so much out there to make a good Oblivion installation. It has become pretty hard to get the most of the game, because of the size of the modding community.

I mean, you can pretty much turn up Oblivion the way you want with a few mods and .ini tweaks.

And that’s exactly what I’ll be doing. But there is a catch.
This is somewhat of a “What can I get from Oblivion in 2011” mod list. Well, it’s not really a mod list, but more like  a log of what I’m doing, along with my personnal mod list..
It can be really useful to follow it if you want to get the most from Oblivion as I’m doing extensive research for everything and that will spare you some time. I’ll link each and everything I used and explain how I installed what and how I resolve potential conflicts.
As such, it can be considered a “guide to the ultimate Oblivion experience”. (Modesty, what is that ?)

My aim here is to get the most out of the engine as far as realism and immersion goes. That will cover pretty much any category of mods available.

Obviously, you need to have the game, it’s expansions and the latest patch to follow this.

So, I decided to begin by testing some shaders replacement “modules”. I found 2 that gave me what I needed, so I’m going to compare them and choose one.
I know I should begin by installing patches to fix some things, but I’ll do that just after. It’s not going to break the game if it looks a little more pretty before applying the unofficial patches, right ?

Vanilla Oblivion + SI + DLCs - Fraps reports ~40fps, but this is due to ENBSeries. Without it, the game runs at a steady 60 frames per second.

Here we have Oblivion, in all it’s vanilla glory. It’s looking pretty ugly these days. Especially with Skyrim coming soon…

So, we’ll spice it up a bit !

The main thing it’s lacking is plenty of GPU intensive shaders to make it look more realistic. You know, like Ambient Occlusion, Indirect Illumination and stuff like that.

We thus have two options to remedy that:

  • ENBSeries – A DirectX .dll hook that applies all kinds of modern effects on all games.
    Advantages: All in one, no fuss apart from correcting some settings in the .ini file.
    Disadvantages: Looks ugly, IMO. It’s over saturated, the shadows look really bad and it’s VERY hungry on GPU power. Il lost 15 to 20 FPS running it, even when disabled.

    ENBSeries

  • OBGE – Currently in version 3 (Which is likely to be the last major version, as I understand it.) works directly from within the game.
    It uses and requires Oblivion Script Extender and can add shaders on top of those already in the game or replace shaders from the game with it’s own.
    It’s totally modular, and the performance cost depends on what you have running. I noticed a light impact of ~10fps on the Vanilla game with Volumetric SSAO, Volumetric SSII, Light Shafts, Bokeh Circle Depth of Field, Bleach Bypass, Color Grading, Vignette, Physically Correct Sky, Luminance HDR and Parallax Occlusion Mapping with an ATI Radeon HD4890. But keep in mind I’m running vanilla game as far as textures, models and everything. So, you should expect a major loss of FPSes if your installation contains some mods.

    Oblivion with OBGEv3

    The thing I like about OBGE, other than it’s modularity is the fact that you can add your own shaders on top of the game.
    For example, on top is the original water and on the bottom is a mod that adds a totally new shader for the water.

    Only downside of the mod is that it removes all the shaders that are automatically loading through OBGE, thus you’ll have to reactivate everything from the menu. I don’t know why and I don’t know if there is a way to fix it
    Edit 07/16/2011: It’s actually really easy to fix. Just disable the OBGE support plugin and use the shaderlist.txt file. Everything should look normal and work correctly.
    For reference, here is my shaderlist.txt:

Volumetric_SSAO.fx
Volumetric_SSII.fx
LightShafts_PCS.fx
HLSLbleachbypass.fx
HLSLColorGrading03.fx
HLSLvignette.fx
MDLAA.fx

We have thus 2 modules that are very good at what they are doing, however, my choice would go towards OBGE, as it’s modular and can replace any shader of the game. It’s also, it seems, less GPU hungry than ENBSeries.

The two things that I would like to see included in OBGE in the future are a new hair shader and a new skin shader with subsurface scattering. The regular skin shader is just normal render. A fake subsurface scattering would make it look much better, with maybe support for wet surfaces, so that when the character enters in the water, his body gradually becomes wetter where the water touched him. Though this would probably be very hard to do, it would look awesome. For the hair, better shading, better specular pass, light passing through thin hair strands, hair moving with the wind, etc.
The possibilities are endless and Oblivion could pretty much become a game that “always looks good, new and fresh”, as long as people continue to work on it.

Obviously, you shouldn’t use both ENBSeries and OBGE at the same time.

Next time, we’ll install a load of utilities and tweak the game.

Update on the Z80 computer

Hey there !

Quick heads up concerning the Zitrus 80 computer project.

I recieved the CPU, a breadboard and a power supply. I still need a few things to build the minimal test circuit available over at z80.info.

I’ll probably order a few more breadboards along the way to build each part on that before soldering everything to a veroboard.

So, not really any news on the computer itself, but I’m getting what I need to start off slowly and safely. :)

Zitrus 80 – A Z80 computer project

Recently, I had the weird idea of designing my own computer from the ground up.

I always have weird big ideas like that, but this one really ticks me. I’ve always been interested in old computers (Commodore, Atari, Sinclair and others.) and it would be really cool to make my own iteration of those, combining all the cool things from that era into a big mishmash of hardware.

But, of course, as with all of my ideas, there is a small problem.

I don’t know a thing about computer design.

But I consider this a good occasion to learn.
See, this “feat” of myself, as I call it, that makes me have ideas about completely random subjects is actually a pretty good mean of pushing the boundaries of my knowledge. It’s how I learnt most of what I know and I it that way.

Anyway, I began to plot some ideas during my preliminary research. (And there is actually a huge number of mad persons building computers around old chips…)

Keep in mind that I don’t know how to design or implement any of this, nor do I know a bit of Z80 assembler. This is actually my first electronics project. (I have repaired some Nintendo DSLite, resoldered an Atari 2600 and some other things but never actually built something.)

It will be fun :p

So, as of now (27th June 2011, 3 days before my 20th birthday.) the ideas for the final machine are the following:

  • Designed around a Zilog Z80B @ 6Mhz
    I admit, 6Mhz is not much. Some of the projects I saw used 10Mhz chips. The Commodore 64 CPU is actually running at 1.023 MHz, so this should be more than enough as I plan to have both a dedicated sound chip and graphics chip.
  • Fully compatible with CP/M
    This is because CP/M has a lot of software written for it. As such, it gives the computer a good software library from the start and I won’t have to write things that already exist.
  • A “Kickstart”-like rom
    I always liked the Amiga (Probably because it was my first actual computer.) and I think the Kickstart is really cool. I was thinking of something along the lines of a modern BIOS. At boot, the computer would check the amount of RAM, run some tests and bring up a splash screen followed by the CP/M prompt.
  • Dedicated graphics chip
    I would really like to get a good graphics chip for the machine and I think the Master System had some of the best technical capabilities as far as 8-bit goes. There must be a chip on the market capable of putting that of. If no, I’ll try to code that myself on a microcontroller.
  • Dedicated sound chip
    I was thinking about either a SID (Which would give me a big library of MOD files to play with.) or implementing my own thing based on kryo’s design.
  • Expansion ports
    This would give me the possibility of adding hardware without having to rewire everything again or hack onto the machine, which would look like a mess. I would just have some edge connectors with a standard pinout I would design and I could plug in expansion boards. Power could be fed from the edge connector to the board, removing the need to have a separate power supply for each port. (This is actually what every expansion port that i know of does.)
  • PS/2 keyboard input
    The machine would be compatible with the standard PS/2 keyboard protocol, allowing me to connect a cool IBM Type M keyboard to it and giving me an easy input option.
  • VGA, composite and SCART RBG video output
    This will give the machine some versatility as far as output go. It’ll allow me to connect it to almost everything, from PC monitors to old Commodore monitors or even TVs. And it’s just a good learning project as far as video signal goes. 
  • A nixie tubes or VFD display
    I just find those really cool and it would be awesome to have retro-looking information display for like the date or memory I/O. This would obviously be on a separate board, plugged in one of the edge connectors.
  • Serial connection
    This seems almost like a must for any homebrew computer. It would allow me to use a huge amount of peripherals with the machine and thus gives me a lot of things to do with it.
  • A 3 1/2 inch floppy drive
    I actually haven’t seen any homebrew computer with this option. I think it’s madly cool to feed floppies to your own machine, though, so I’ll try to implement this.
  • SD card port
    This is the more modern approach and would give me an easier way of sending software to the machine when i don’t have any floppy on hand.
  • A hard drive
    A small one, of course. But this would be a great thing to have to store software in the long run. The machine would boot of ROM to CP/M and then give me the possibility of launching software from the hard drive. The way I see it, during the boot sequence I described earlier, the system would check if the hard drive is ready and go to CP/M only when the drive is good to go. This is probably very hard to do, though and there are more important things to do first, since I will be able to use the serial port, SD card and maybe floppy drive to get software on the machine.
  • A small display on the machine itself giving some information (Temperature, total RAM available, and such.)

And that should take me some years to make, so we’ll stop there for now :)

The name of the machine will be Zytrus 80. The citrus part is to give a small nod to Apple, because they were pioneers at the time and I really like their old line of computers. The Z80 is obviously shown in the name.

I already ordered the Zilog Z80B but I need some breadboard, jumper wire, crystals and resistors to make a testing circuit and get my hands dirty.

I’ll post updates on this when I make some progress.