Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Modding TES Arena (and Battlespire?)

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
It breaks the character creation screen though
Ah, I forgot to mention that pure black is used for transparency. It's an end-user fix.

d83uj0l.png
 
Self-Ejected

Jack

█▓▒░
Patron
Joined
May 5, 2010
Messages
4,900
Location
Yondo
Insert Title Here
Ah, I forgot to mention that pure black is used for transparency.
That's annoying, wish it was pink or something. I did fix it though.

cwU5mIi.png


gdkAywe.png


Is it just as easy to replace the character portrait on the bottom of the screen to match the new character screen?
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Is it just as easy to replace the character portrait on the bottom of the screen to match the new character screen?
Just as easy? No. The face sprites used on the bottom corner are contained within a CIF file. CIFs are basically containers for IMGs. There's one for each race and sex, each containing 10 faces. These use a different palette than the character sheet. It is possible to change them. Open up the IMG files in a hex editor and combine them sequentially, being sure to include exactly 10. Rename this to CIF, and you're ready to go. The file names are similar to the other face sprites, only 0-7 instead of 10-17. That's how I was able to do the Garfield mod. If you really want to fiddle with it, here's the palette you'll need.
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Today we're going to take a short break from Arena to uncover secrets of the Battlespire. In the 23 years this game has been out, the assets I'm about to share with you have never been ripped. Never. Not once. But I will tell you how to do it. We'll start with the dialog audio, and follow with the dialog animations.

So we'll need a program to get into Bethesda's lovely BSA archives, which despite sharing a file type name, aren't packed the same way for every game. I used a program called Game Extractor written by a guy named watto. This'll get you in, but it won't let you repack an archive, and the files aren't necessarily what they appear to be. I actually had to find a copy of the real deal ISO to extract clean audio. For whatever reason, the GOG version has issues. Anyway, in the batspire folder you'll find waves.bsa. The files inside appear to be wavs, but you won't find a program that will play them. They're pcm files, which are basically wavs without a header. You can import them into Audacity as raw audio. The only issue is that you need to know all the things that would otherwise be in the header. Luckily I can tell you. They're 8-bit unsigned little-endian mono 11025hz files. With that, the import works fine. You can then export to whatever modern format you like.



Now onto the animation files. Oh boy. In batspire/gamedata you'll find flc.bsa. You may already be familiar with the format, because Bethesda used it for videos in Arena, and daedra animations in Daggerfall. Only problem with these is that again, programs won't open them. Turns out it's another header issue. I used a hex editor to compare the files to ones I knew were working, and noticed that the Battlespire files had two additional characters appended at the very beginning. Simply delete them, and the animations will happily load in Aseprite. I have no idea whether this was a really basic security through obscurity measure to protect their assets, or if they used the characters for organizational purposes. Right, so get this... classic Bethesda, every frame of every animation for every character contains the backdrop you see here, on a 640x480 canvas. How's that for optimization? Jesus Christ.

jrsO2tq.gif
 

Bester

⚰️☠️⚱️
Patron
Vatnik
Joined
Sep 28, 2014
Messages
11,107
Location
USSR
Right, so get this... classic Bethesda, every frame of every animation for every character contains the backdrop you see here, on a 640x480 canvas. How's that for optimization? Jesus Christ.
Some things never change.

2469b1cd3b21a2dd9c9158ea93c83da7.png
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Arena and Battlespire are cool and everything, but what if someone hacked the unreleased Oblivion game for PSP? What are the odds someone would do that. They'd have to be really weird, right?

...so I modded the game in a few small ways, and I have a present for everyone. Here's a proof of concept, where I've altered the formula so as to double health and magicka.

Jf4ylHD.png

V7dB9hH.png

Maybe you want to go digging too deep like a mad dwarf. I won't stop you. Here's the formula that affects magicka regeneration. You can even set it so high that you never run out.
ModTimePeriodic(Player.Magicka,Player.Magicka+(0.05*Player.Willpower)

As for the present, it's the OST. You don't even want to know how it was encoded. I'm not explaining this one.
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
I found a solution for mouselook using a programmable input emulator. I'll have the script ready soon. Yeah, that's right, mouselook in Arena! Suck it, Daggerfall. I'm also working on bundling Arena with a preconfigured fork of DOSBox that supports pixel shaders and soundfonts, for a superior off-the-shelf experience. Unless you have Roland hardware hooked up to a genuine DOS machine, this'll be the next best thing.
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Got sidetracked and worked on gamepad support instead. If you have an Xbox controller, you can play 95ish percent of the game without ever touching a keyboard. Turned out nicer than I thought it would. Worth it for auto-run alone.
 

Diana TES GotH

Barely Literate
Joined
Jul 8, 2020
Messages
1
I'm itching to replay Arena now, especially with the latest mods and with the Xbox One controller. Thank you for all the effort you put into modding Arena. There are still a few of us out there who sincerely appreciate you for it.
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Once again I've encountered... the entity. It is invisible, has no name, and cannot be targeted. Only AOE spells affect it. You can only guess at its location if and when it casts a spell. The entity can break your armor in an instant, and even crash the game with a spell. Clearly this thing doesn't want to be unearthed. But my friends, I'm not afraid to unveil to you what lies beyond. Surely this aspect of Sithis protects a great secret. Yes, I've discovered the faction encounter tables! Stolen them from the depths of the void. You will find them at offset 3b314.

SPZMP45.gif
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Update on the Rampage situation: I've gotten the maps to load fully textured. This will save an enormous amount of time. Originally this project had an ETA of never, but now you can expect the mod by the end of the month. You'll be able to take the Eternal Champion through the entire 32-level Cyberdyne facility, as originally presented. And as an unintended bonus, Arena runs at a higher framerate than Rampage.

hJlCkhb.png
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
I didn't want to post till I was done, but now I'm done, so I'm gonna post. It's here! TES Rampage is finally, finally finished. And with that, I'm gonna take a very fucking long break from modding. One year ago I released my first Arena mod, and now I've more than doubled the game's content. It's like a proper 90s style expansion. Hardcore too. You're gonna die. I don't even know what to say really. You can read all the details on the Nexus page.

z7eIO4C.gif
 

RanaDinn

Literate
Joined
Aug 25, 2020
Messages
10
I didn't want to post till I was done, but now I'm done, so I'm gonna post. It's here! TES Rampage is finally, finally finished. And with that, I'm gonna take a very fucking long break from modding. One year ago I released my first Arena mod, and now I've more than doubled the game's content. It's like a proper 90s style expansion. Hardcore too. You're gonna die. I don't even know what to say really. You can read all the details on the Nexus page.

z7eIO4C.gif

I joined a few days back to tell you I discovered your mods after deciding to do a re-visit of TEST from the start (Arena) and I love what you've done. Thanks for the newest one (which was both unexpected and a pleasure as it means more content for me to delve through, although I'm still digging through all the mods!)

Thanks for all your hard work in providing more content to people.
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Much love to everyone who joined the forum just to show your appreciation. This is very niche work, and so every comment I get is encouraging. I don't have anything new planned, but hopefully by documenting the process, modders in the future won't have to start from scratch. And if anyone should need, feel free to get in touch with me.
 

prengle

Savant
Joined
Oct 31, 2016
Messages
356
this is really really interesting as someone who hasn't played arena for more than two seconds. i should note that zenimax's unspoken policy on using bethesda assets in other games is that it is not allowed and they'll eat your ass for breakfast (unless you're russian, in which case, lol who cares), but that generally applies to morrowind onwards and arena is probably so fucking ancient by now that i genuinely doubt most of the people working at bgs these days are even aware it exists, so good on you please document some of this stuff
 

RanaDinn

Literate
Joined
Aug 25, 2020
Messages
10
Much love to everyone who joined the forum just to show your appreciation. This is very niche work, and so every comment I get is encouraging. I don't have anything new planned, but hopefully by documenting the process, modders in the future won't have to start from scratch. And if anyone should need, feel free to get in touch with me.

Honestly I think you deserve it. I'm more of a casual or occasional modder but I know it can take some time to do this stuff, and providing content for free for other people can sometimes be difficult (even unrewarding) work. I always feel people who do something for the games I enjoy deserve to be known that their work is appreciated. And as you yourself said above, you've spent an entire year learning this game to double its content despite the evident fact it wasn't easy sometimes.

BTW would you be willing to answer questions about this thread still?
 

Mastermind

Cognito Elite Material
Patron
Bethestard
Joined
Apr 15, 2010
Messages
21,144
Steve gets a Kidney but I don't even get a tag.
Once again I've encountered... the entity. It is invisible, has no name, and cannot be targeted. Only AOE spells affect it. You can only guess at its location if and when it casts a spell. The entity can break your armor in an instant, and even crash the game with a spell. Clearly this thing doesn't want to be unearthed. But my friends, I'm not afraid to unveil to you what lies beyond. Surely this aspect of Sithis protects a great secret. Yes, I've discovered the faction encounter tables! Stolen them from the depths of the void. You will find them at offset 3b314.

SPZMP45.gif
That's pretty awesome. Bethesda games always had the best bugs. Obshitian's just ruined my saves.
 

RanaDinn

Literate
Joined
Aug 25, 2020
Messages
10
t4ngr4m,

I'm wondering if you could go more into the class modification like you did for your new classes mod. You've spoken a bit about it before (an uncompressed copy of the executable) and I think I found the 8 combinations of the 18 classes you spoke of, but how would you start making the changes? I've experimented with what little I figured out myself (not much) but with no results that I could see. If you wanted to edit hit dice or proficiencies (or say, create a ranger with magic like you mentioned) how might you start?
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
A full explanation of how to edit classes yourself will take a while for me to write up, since my notes look something out of the asylum cell of a supernatural thriller. But I will be thorough, and I will tell you everything very soon.
 

RanaDinn

Literate
Joined
Aug 25, 2020
Messages
10
A full explanation of how to edit classes yourself will take a while for me to write up, since my notes look something out of the asylum cell of a supernatural thriller. But I will be thorough, and I will tell you everything very soon.

Thank you for that! And no rush if it's time consuming, I'm already trying out the Shrouded Past and other mods and I'll probably give the new class mod a spin too before I start digging into anything, but I can't wait to read it.

Also you may be aware of it already but I thought I'd just bring up that the Shrouded Past on Google Drive is different (older?) from the one on Nexus Mods (the Google Drive one seems to have a modified executable on it, and given that you've had to provide cusomized exes for your other mods that could cause confusion to someone if they tried merging the one off Drive with others.)
 

Moonrise

The Magnificent
Patron
Joined
Jul 7, 2017
Messages
386
Make the Codex Great Again!
Alright, time for the master class... on class editing.

You'll need a hex editor:
https://mh-nexus.de/en/hxd/
An alt-code table:
https://www.codetable.net/
And something that can decompress DOS executables:
http://unp.bencastricum.nl/

With these tools, we can begin to modify Arena. We're going to focus on the CD version, since that's the version I've chosen to base all my mods on.

It'll be helpful to know the default class order, because this is the same order in which everything else is sorted.

Mage
Spellsword
Battlemage
Sorceror
Healer
Nightblade
Bard
Burglar
Rogue
Acrobat
Thief
Assassin
Monk
Archer
Ranger
Barbarian
Warrior
Knight

Next up is the location of the data for the various class properties. These are the offsets. In HxD, click SEARCH, then GO-TO, and input the offset for the data you're looking for. I'll go into detail about how to interpret and edit these properties as we move along.

39F84 favored attributes
3A2D5 weapon proficiency
3A2F9 weapon lists
3A321 shield proficiency
3A354 armor proficiency
3AE5E XP
4238E lockpicking
423A0 class IDs, sorted
423B2 class names
4243E class IDs, alphabetized
42525 hit die

FAVORED ATTRIBUTES
This is just fluff. It has no effect on the game whatsoever, except to communicate to the player, based on their class, which two attributes should be focused on. The text is separated by a null character. If you do change anything, make sure you don't exceed the allotted space.

WEAPON PROFICIENCY
The way this works, there are two characters per class. Two null characters means a class can use any weapon. One character followed by a < symbol indicates that a class is restricted to a specified weapon list. So let's have a look at the data to get an idea of what's going on.

I<......L<Q<W<_<..d<j<..............

We know that the Spellsword comes second, and given that the Spellsword is able to use any weapon, we should expect the third and fourth characters to be null, and they are. But what about the Mage? The Mage comes first, and we see an I, followed by a <. That's a weapon list alright. Here's where things get complicated.

WEAPON LISTS
That letter I, what does it mean? Well, it's the start of an address space. An address space that begins with I and ends with p. Maybe that sounds weird, but in the wonderful world of hex it means 49 to 70. I've laid out both the address space and the data so you can see exactly how it works. Each of the weapon lists are separated by the value FF. Before the first FF, we find two characters. If the Mage's weapon list begins at I and ends at J, that means they can use only two weapons. If you're familiar with the game, you'll know that Mages can use only daggers and staffs. We're on the right track. We just need to know what characters represent what weapons. Fortunately this has all been figured out.

IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop address space
☺. ☺.♂♀ ☺.►☻♦ ☺☻♥♦♂♫► ☺☻•► ☺☻♥•► ☺☻♥♦♫►  weapon lists

. staff
☺ dagger
☻ shortsword
♥ broadsword
♦ saber
♣ longsword
♠ claymore
• tanto
◘ wakizashi
○ katana
◙ dai-katana
♂ mace
♀ flail
♪ war hammer
♫ war axe
☼ battle axe
► short bow
◄ long bow


SHIELD PROFICIENCY
The way shield proficiency works, a class can use the largest shield they're proficient with, as well as any smaller shields. The Mage can use a buckler, and only a buckler. The Spellsword can use a kite shield, a round shield, and a buckler. As you can see, the < symbol is used again.

û<¢<ÿ<ò<ÿ<û<¢<ò<¢<ò<û<ò<ò<ò<¢<ƒ<ƒ<ƒ<

ƒ tower
¢ kite
ÿ round
û buckler
ò none


ARMOR PROFICIENCY
Armor proficiency works the same as shield proficiency. Classes proficient with chain can also wear leather.

♥☺☻☺☺☻☺☻☺☻☻☻♥☺.☺..

. plate
☺ chain
☻ leather
♥ none


XP
These values represent XP needed to reach level 2, after which some algorithms take over. There are two characters for each class. The second is multipled by 256, and the first is added. Mage is up first, and the calculation (3*256)+232 gives us 1000. Is that right? Well the game manual tells us that Mages require 1000 XP to reach level 2.

LOCKPICKING
For lockpicking, take 200 and divide by n, and that's the percentage assigned to a given class. The formula here isn't the whole story when it comes to lockpicking success, but from the data we can see that non-thieving classes get 25%, while the Burglar, who is best at lockpicking, gets 100%. I've provided examples that don't normally occur. You can use these to make classes who cannot steal, and classes who are even more exceptional at stealing.

◘◘◘◘◘♦♦☻♦♦♥♣◘◘◘◘◘◘

☺ 200%
☻ 100%
♥ 66%
♦ 50%
♣ 40%
♠ 33%
◘ 25%
╚ 1%


CLASS IDS, SORTED
Class IDs are the most convoluted part, so bear with me. They draw from several ranges of values, which I've discovered and will provide to you. As far as I know, the advantages and disadvantages are only associated with the default IDs. If you want a class who has the poison immunity of the Barbarian, you can only use the default Barbarian ID. That means no magery, and no critical chance. It's no good to use multiple IDs from the same position either, because the game will draw from the same properties, regarding things like class name, proficiencies, and so on. Magery and critical values appear to be static, unless altered by the default IDs. If you want a class with x2 magery, you'll have to use the default ID for either the Mage or the Healer--that's not to say you can't change everything else, because you can.

mixed
 !"#$σµ╟╚╔╩╦LM♫☼►◄ default data

no spells, no crit
.☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄ Ranger, Barbarian, Warrior, Knight

magery x1.75
 !"#$%&'()*+,-./01 Mage, Spellsword, Battlemage, Sorceror, Healer

crit
@ABCDEFGHIJKLMNOPQ Monk, Archer

magery x1.75, crit
`abcdefghijklmnopq unused

no spells, no crit
ÇüéâäàåçêëèïîìÄÅÉæ unused

magery x1.75
áíóúñѪº¿⌐¬½¼¡«»░▒ unused

crit
└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤ Burglar, Rogue, Acrobat, Thief, Assassin

magery x1.75, crit
αßΓπΣσµτΦΘΩδ∞φε∩≡± Nightblade, Bard


CLASS NAMES
Just like with the favored attributes, these are separated by a null character. And if you make changes, be sure you don't exceed the allotted space.

CLASS IDS, ALPHABETIZED
This is the alphabetized class list which is used when the player starts a new game. It can actually be ordered any way you like. And interestingly, the player's class ID is drawn from here, not from the other list. What I mean is, the humanoid enemy class list can be completely different from the player class list. That's good, because you may end up creating classes that, as enemies, cause the game to crash. You're still stuck with the 18 slots, with all their associated properties, but it's possible, for example, to make any number of humanoid enemies the same class, or even use a weaker ID. You'll have to play around with it.

HIT DIE
Hit die is D&D parlance referring to the die a player rolls to generate hit points upon leveling. The Acrobat is 10th in the class list, and here we see a ♀ symbol, which is a decimal value of 12. So the Acrobat has a d12 hit die. Easy peasy.

♠♀◙♠◘◘◙◙◘♀♫◘♫►↕▲¶↕

KXOlfYQ.gif

And that'll do it. If you have any questions, feel free to ask.
 
Last edited:

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom