News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Fox Cunning

Pages: 1 [2] 3 4 5
Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: October 19, 2020, 04:20:37 am »
Here's a little update!

The "Special Abilities" module is all done:

And the "Professions" module has been expanded to give control over casting abilities of each class:

Amazing to see that after all those years that dream is coming out!  :)

I'll try my best not to disappoint, but can't guarantee ;D

It's already looking quite complex, and that's by design since I want it to be able to edit every possible aspect of the game.
Maybe I will have to do a series of tutorials on how to use the editor once it's ready.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: October 05, 2020, 06:00:47 am »
Sorry about the late update. I suffered a little setback my main drive failed.
Luckily I had an external backup, but still I was set back a few weeks, plus I took that occasion to completely rebuild my main PC (this time with a RAID 1).

I am almost to the point where I was before the incident, minus one feature that I have to re-implement.

In the meanwhile, also as an extra form of external backup, I have put the current (if extremely messy) code on GitHub.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: August 24, 2020, 03:19:15 pm »
Excellent, I enjoyed very much the progress shown in the youtube videos on your channel. What would be the next steps to tackle?

Thanks mate, it's always encouraging to see that there is interest in a project :beer:

I am now working on the sub-modules that allow editing weapons and magic.
After that I'll tackle customisation of the pre-made characters, and then the final step will be editing sound and music.

That last part might prove challenging because I had not touched the sound engine in the game and thus will need to first reverse-engineer it, but we shall see.
If that doesn't take too long, then I will have time to also add a nametable editor; that would allow easily changing the title screen, the intro "cutscene" and a few other things.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: August 23, 2020, 09:51:38 am »
After plenty of debugging, I finally got the Profession Editor sub-module to work without making the game crash :laugh:

Here's a quick video of it in action:

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: August 01, 2020, 08:42:03 am »
Another little preview of a new feature:

This took way longer than expected, as I managed to introduce 3 bugs with the same code - which I have finally managed to fix. Phew!

There are fountains in the dungeon.
Go to Dawn.
Have you ever heard of Dawn?

Apple II:
Fountains fair and fountains foul, all are found in dungeons bowel.
'Dawn' comes each new pair!
West 8, South 35 and await the Dawn!

The NES script can be cleaned up lots.

To be fair, the actual NES script says:
'West 8, South 35 and wait for new moons'.
That line was however inaccessible in the original release because of a mistake in the compressed string.

NPC 1: Do not drink water from fountains in the dungeon.
NPC 2: Drink water from fountains in the dungeon, if you feel tired.

Fantastic summary, @binarck.

If you talk to every single person in every town, you do get enough hints to put together the correct sequence.

I'd have to replay this one sometime but I remember U3 being light on exposition. It could help to add some of the book lore to the script maybe.

On this, I was referring to some extremely vague dialogue such as "The Mystic Armor is somewhere" that I don't think really helps and could be made useful by expanding the text, e.g. "A man in Grey knows about the Mystic Armor".
An NPC in Grey actually does have a valuable hint and tells the player to ask about it in Dawn, where again two NPCs have useful hints.

That was difficult because it requires moving code and rebuilding pointer tables, which if done manually is prone to breaking things, and also a major pain in the bum.

That said, I am a fan of game manuals. When I was a kid, buying a new game was an event, and I'd spend days studying each booklet, manual and map included before actually turning my console/computer on.
With Ultima, reading the cloth map was a game by itself as you had to decode the runic alphabet using the table contained in one of the booklets. ;D

Thanks for the very extensive feedback ;D It's always great to have the opinion of someone who is wasn't already familiar with the game, as I would have never thought about many things you mention.

Now some would require extensive rewrites of the engine, but others are absolutely doable. Obviously at the time games relied on information taken from manuals, booklets and hint guides (the original release of U3 I think included 3 booklets, plus a map) rather than in-game text.
That was because of hardware limitations mostly, but also game design had not evolved much.

I did think about modifying NPC dialogues more to give more hints and better direction. However at the time I was changing bytes by hand with a hex editor, so changing the text length was risky and difficult. Now that I am working on an editor which already includes packed text reallocation, that would be much, much easier.

Note that locations, town names, weapon and armour effectiveness etc. are all explained in the game's manual - as I mentioned above the game just assumes a certain level of "meta-gaming". This can be fixed only partially by changing in-game dialogues, but note that many hints are already present and I believe it would be just a matter of linking them together as organically as possible.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: June 15, 2020, 08:59:07 am »
Hello! Busy times, but I'm still working on this pretty much every day.
Currently implementing the "party editor" portion:


Personal Projects / Re: Resident Evil Famicom Upgrade Project
« on: June 05, 2020, 08:37:40 am »
I hope you manage to complete this project, because it looks really cool!
Stay safe though  ;D

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: May 27, 2020, 02:25:54 pm »
1. Is there any way to edit the ordering of magic spells? I saw where you noted the costs were hardcoded (and you had to change two places in order to drop MP consumption), but would there be any way to alter the order you "learn" them in? Switching "02 05 55 d5" etc seems to switch spells, but the costs are still the same. I.E., Missile can be switched with Light, but still costs 5 MP, even when its place is altered or the second byte is changed to 10 etc.

This could be achieved by completely re-writing the routine that displays the spells list so that it takes the MP cost from the table at $D460 and goes through each spell instead of stopping when the caster's MP is matched.
The current routine simply assumes that each spell costs 5 MP more than the previous one (4 in the hacked version).

That routine is in $D415, and calls a subroutine at $D441 to get the number of spells to display. Note that it only decides how many spells, not which ones: it will simply show spells 0 to that number.

The only easy modification I can think of would be setting a level limit rather than just an MP match.
Then check if the caster has enough MP for the chosen spell before casting.
If that doesn't break the game too much, I may include that "alternative magic system" in the editor, but no promises yet!

2. Initial party placement in battles? So maybe more like Quest of the Avatar? Have you found how the game decides where to place characters at the start of a battle?

Yes, those tables are in bank 4: $B000 to $B0BF.
That's three 64-byte tables containing OAM data: one for land battles and two for naval battles. In each entry, byte 0 is Y and byte 3 is X.
One more table could be added in theory, as there are exactly 64 bytes free after the third one.

You have put so much work into this project Fox, it's awesome! My Ultima buddies are eagerly awaiting this editor. :)

I can't wait to finish and see what people can create with it ;D

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: May 26, 2020, 12:24:29 pm »
Does the map editing currently include the overworld?
And also the ability to turn Ambrosia into a second continent that behaves exactly like Sosaria - including Moongates and the ability to circumnavigate the map seamlessly.

Ideally, the editor should allow making an entirely new game using the same base engine.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: May 26, 2020, 09:26:50 am »

Another little progress video:
Curently the final touches to the NPC editor and the palette editor.

Next I will finish the text editor which is almost complete, and then I'll start working on party / item stats.

Personal Projects / Re: Ultima: Exodus (NES) *Editor*
« on: May 17, 2020, 11:34:39 am »

@8-bit fan, glad to have your interest and attention :beer:

Here's another quick little video with a second test:

Wow! I registered (finally) with this site just to respond to your post.

I've been hex editing UE for years. I can't say for certain the ROM addresses posted on the internet were copied from my old posts on other forums and message boards, but I discovered what has been posted well over 10 years ago.

I would LOVE to know how you found the dialogue. I have searched endlessly. I know the simple text table which begins at 8A, but after a long while decided the dialogue (which I know is drawn from the text table) was compressed or encoded in some way beyond my meager skills. I even found several places where dialogue could be changed for another in the same board (allowing you to switch one NPC message for another). I have always had plans to edit the weapons (for instance), as well as the address which assigns "melee or projectile," etc but since the shop text doesn't simply pull from the text table, I could never change the weapon names in the shops, only in the inventory.

In short, YES I for one would love an editor. Good luck in your work.
If you like, I have saved all my notes are in this Google Drive folder. I'm just not publicising it much because they are still my raw notes, i.e. a bit messy.
"Dialogue Hack.txt" probably has all the info you want. There is also a disassembly of the string unpacking routines in "String Routines.asm".

Text compression is actually achieved via a simple 6-bit packing algorithm, then the unpacked string is turned into nametable entries, plus a few special characters (e.g. $3F = end of string, $3E = newline, $30 = read uncompressed text from $(99), etc).

Note that I don't have any special skills either ;D this is my first NES hack.
To figure out the text compression I watched the nametable entries being written to RAM at $0580 when text was displayed; then I set write breakpoints to find the routine that was generating uncompressed data, and finally followed the traced backwards to see where it was reading it from.

Weapon names are in more than one place, both compressed and uncompressed, so it's a bit of a pain to find and change all of them.
Also, when you change anything you'd have to reallocate memory for your text and rebuild the pointers table (unless you only want to make text either smaller or the same size).
An editor of course can automate that, and mine can already do it in a fraction of a second ;)

Personal Projects / Ultima: Exodus (NES) *Editor*
« on: May 14, 2020, 11:25:34 am »
Hello, folks.

Not sure how many will be interested, but I just wanted to say that I'm still working on this editor as I had promised a while ago.
The goal is still far away (I haven't even started looking into the music/sound code yet), but so far so good - it can modify maps, NPCs, dialogue text, most palettes and a few more things.

Here's a quick progress video for the curious.

Got another bug report (still playing on 1.03, mind you, since I'd already progressed quite far on that version, so if this was fixed in 1.04 you can disregard).

Illusionist's max MP (and I'd guess this affects Alchemists as well) seems to calculate incorrectly with extremely high WIS values.  I'm not sure of the precise breakpoint as I wasn't checking every time I boosted it by 1 point, but right now my Illusionist has 95 WIS and the status screen reports she has a maximum MP of 7.

Thanks again for the feedback! I've just reviewed the code that assigns max MP, and there is in fact a bug that will affect Illusionists and Alchemists with respectively Wisdom and Intelligence higher than 85. Totally on me, since I forgot to keep the carry after the 8-bit addition used to multiply the relevant attribute by 3.
Will be fixed in version 1.05!

And by the way, you won't lose your saved games if you upgrade. In fact the correct values of max MP and HP will simply be applied as soon as you load the game (from the battery-backed RAM of course, not from an emulator's saved state).

OR use these GameGenie codes:

The different amounts of HP on levelup based on class don't seem to be functioning in 1.03 - in my playing, all four classes I used were gaining 75 HP upon leveling up (I have a level 2 paladin with 235, a level 3 lark with 265, a level 2 illusionist with 180 and a level 2 wizard with 175).


Thank you for bringing this to my attention.
The game was working as intended, i.e. 75*level + profession bonus, but I understand the confusion as it's (75*level)+bonus and not (75+bonus)*level.
Also, as you noted, characters tended to have similar total HP the higher their levels.

So, I've changed the formula in v1.04 to be 50 + (bonus * level), with slightly higher bonuses per profession.
Hopefully it will be approved soon :)

Personal Projects / Re: Ultima: Exodus (NES) --- Now released
« on: February 29, 2020, 05:31:30 pm »
Hi there, I've discovered a bit of an exploit that allows the player to recover HP and MP inside of combat. Using v1.00 for the record.
With the first character in the party active, press the A button to bring up the Fight/Magic/Tools menu, then press B to cancel it. You can also choose an action and cancel it. Repeat a few times and you will see your HP and MP regenerate as if combat turns are passing.

Edit: There also seems to be an issue with attribute gains on level-up with certain characters. So far I've only noticed the problem on Fuzzy Wizards who start with 30 INT. The bug occurs when this character reaches level 2: his INT (and Max MP) are reduced from 30 to 25. Also, when he got to level 3, his INT and Max MP were still stuck at 25. I tested a 25 INT Elf Wizard and he received the correct +2 INT at level 2.

Thanks for the feedback, I'll look into both these issues!

Update: fixed! Expect version 1.03 to be published as soon as my submission is approved. Thanks again for the report, well spotted!

This is IMO, bad. It's only going to cause you and others headaches down the line when people start patching the game to "bad dumps" and things break. CRC32 should be a lock in, I think the issue is the patcher looks specifically for the exact file name ie. "Ultima - Exodus (U)[!].nes", so if their ROM is called "Ultima - Exodus.nes" or "Ultima Exodus.nes" but have correct CRC32's, it won't patch. I would change it to look for the correct CRC32 or else fail, but file names shouldn't matter, like "123.nes"

I do agree with you on patching "bad dumps"; the reason why I did that update is that there is another very common dump with a different header but exactly the same ROM data.
Initially it would only patch the expected file, but a lot of people had the other one and were panicking that it would fail.
The best solution would be to have XDelta3 skip the first 16 bytes and only check the CRC32 value of the raw ROM dump, but at the moment that's not an option :(

News Submissions / Re: ROM Hacks: Ultima: Exodus Remastered hack released
« on: February 29, 2020, 05:26:41 pm »
BTW I patched both versions just to compare old vs. new font on my end to 1.01, and for the old, the CRC32 didn't match the readme's, was that correct or a problem on my end?
I know there is a dump of the same ROM where for some reason they added trailing data to the header. Other than that, the actual ROM is exactly the same and the patch will work just fine.

Update: also I had made a mistake with an older CRC32 value in the batch file, oops! Fixed in v1.03 ;D


News Submissions / Re: ROM Hacks: Ultima: Exodus Remastered hack released
« on: February 28, 2020, 06:33:00 am »
This is an awesome hack so far, I wanted to report a potential bug I found (I am not sure if this is an emulation glitch) but whenever I'm in one of the four shrines in Ambrosia, and I try to cast a "Heal" spell, the game resets.  I am playing the game on a Raspberry/Retro Pi.
Thanks for the report, I will investigate this ASAP.


I've found where the bug is. The game resets if you cast Heal, Heal2 or Raise after talking to the priest. If you do that before talking to the priest, the dialogue will be messed up and the priest will become a woman ::)

I hope I'll get this fixed and tested tonight, and then an update published tomorrow :)

Update 2
All done! Version 1.02 is up with bugfixes.

Pages: 1 [2] 3 4 5