#nuvie@irc.freenode.net logs for 18 Nov 2005 (GMT)

Archive Today Yesterday Tomorrow
Nuvie homepage


[01:02:36] <-- ChanServ has left IRC (adams.freenode.net irc.freenode.net)
[01:02:36] <-- Kirben has left IRC (adams.freenode.net irc.freenode.net)
[01:02:36] <-- laxdragon has left IRC (adams.freenode.net irc.freenode.net)
[01:02:36] <-- servus has left IRC (adams.freenode.net irc.freenode.net)
[01:03:36] --> ChanServ has joined #nuvie
[01:03:36] --> Kirben has joined #nuvie
[01:03:36] --> laxdragon has joined #nuvie
[01:03:36] --> servus has joined #nuvie
[07:50:25] --> Yuv422 has joined #nuvie
[08:54:55] <-- Yuv422 has left IRC ()
[09:41:06] <-- Kirben has left IRC ("System Meltdown")
[09:58:26] --> SB-X has joined #nuvie
[10:22:08] --> Yuv422 has joined #nuvie
[10:22:15] <Yuv422> hello
[10:22:43] <Yuv422> http://wateraxe.demon.nl/alternatereality/Ultima6_Page2.jpg
[10:23:05] <SB-X> hey there!
[10:23:15] * SB-X looks.
[10:24:20] <SB-X> WOW!
[10:24:25] <SB-X> how did you find that?
[10:24:35] <Yuv422> someone emailed it to me
[10:24:43] <Yuv422> the link that is. :)
[10:24:48] <Yuv422> pretty neat, huh?
[10:24:54] <SB-X> thanks for passing it on *saves it*
[10:24:57] <SB-X> absolutely
[10:25:10] <SB-X> it's great seeing that kind of stuff, it looks slightly like the u7 editor
[10:25:45] <SB-X> after reading this i'm going to see how closely it matches the description/readme document on our forum
[10:25:46] <Yuv422> http://wateraxe.demon.nl/alternatereality/Ultima6_Page1.jpg
[10:26:37] <SB-X> hehe, never seen those developers together
[10:26:44] <SB-X> actually only know two of the names
[10:27:16] <Yuv422> I found out how to run the end game exe too
[10:27:36] <SB-X> oh?
[10:27:47] <Yuv422> end.exe unkown_arg years months days
[10:28:09] <SB-X> hmm
[10:28:12] <SB-X> was the 3 number of args?
[10:28:39] <Yuv422> args must equal 5
[10:28:39] <SB-X> although thats 4 right there (or 5 counting end.exe)
[10:28:42] <SB-X> i see
[10:28:50] <SB-X> so 3 was the unknown arg?
[10:29:08] <Yuv422> not too sure what the 3 ment
[10:29:10] <SB-X> what did that exec line mean anyway
[10:29:13] <SB-X> ah k
[10:29:24] * SB-X tries it.
[10:30:22] <SB-X> great
[10:30:29] <Yuv422> :)
[10:30:42] <SB-X> how did you get that?
[10:31:31] <Yuv422> push bp
[10:31:31] <Yuv422> mov bp, sp
[10:31:31] <Yuv422> sub sp, 14h
[10:31:31] <Yuv422> push si
[10:31:31] <Yuv422> push di
[10:31:33] <Yuv422> cmp [bp+argc], 5
[10:31:36] <Yuv422> jz loc_16A3
[10:31:38] <Yuv422> mov ax, 0CA5h
[10:31:41] <Yuv422> push ax ; format
[10:31:43] <Yuv422> call _printf
[10:31:46] <Yuv422> inc sp
[10:31:48] <Yuv422> inc sp
[10:31:51] <Yuv422> xor ax, ax
[10:31:53] <Yuv422> push ax ; status
[10:31:56] <Yuv422> call far ptr _exit
[10:32:13] <Yuv422> I disassembled the exe
[10:32:18] <Yuv422> with IDA Pro
[10:32:33] <Yuv422> then looked at the start routine
[10:32:41] <SB-X> end.exe?
[10:32:46] <SB-X> that's what it must be
[10:32:49] <Yuv422> yes
[10:33:07] <Yuv422> cmp [bp+argc], 5
[10:33:18] <Yuv422> mov ax, 0CA5h
[10:33:33] <SB-X> whats at ca5?
[10:33:45] <Yuv422> 0xca5 is the virtues message
[10:33:58] <SB-X> hehe cool
[10:34:29] <Yuv422> notice the printf call
[10:34:33] <SB-X> yeah
[10:34:45] <SB-X> IDA gets that for you?
[10:34:46] <Yuv422> the exe still had symbols in
[10:34:50] <SB-X> oh
[10:35:06] <Yuv422> but IDA can also look for common lib routine signatures
[10:35:18] <SB-X> i thought it was translating an interrupt perhaps
[10:35:21] * SB-X shrugs.
[10:35:41] <Yuv422> it does translate common int21 calls
[10:35:46] <SB-X> interrupt call to print or something
[10:35:49] <Yuv422> it's quite powerfull
[10:35:50] <SB-X> oh
[10:35:54] <SB-X> moreso than dosbox debugger?
[10:36:01] <SB-X> well that probably goes without saying :p
[10:36:13] <Yuv422> well it isn't a debugger
[10:36:15] <Yuv422> but yes
[10:36:19] <SB-X> disassember
[10:36:22] <Yuv422> yes
[10:36:23] <SB-X> good point
[10:36:46] <SB-X> it would be a lot of working trying to interpret game.exe that way though
[10:36:50] <Yuv422> you can get a freeware version
[10:36:53] <SB-X> unless you can find some interesting functions
[10:36:54] <Yuv422> 4.3
[10:37:02] <SB-X> i'll look into it
[10:37:23] <SB-X> didn't you get a license with Ultima6 forbidding dissassembly?
[10:37:41] <Yuv422> did I?
[10:37:53] <SB-X> you know, I don't remember it either
[10:37:54] <Yuv422> hmm I can't remember reading the licence
[10:38:19] <SB-X> it probably mentioned reverse-engineering too
[10:38:24] <Yuv422> Ouch
[10:38:25] <SB-X> but maybe not :)
[10:38:38] <Yuv422> and I've just posted some of their code on the internet.
[10:38:40] <Yuv422> ;)
[10:39:07] <SB-X> haha... well, you can't be expected to remember a minor document like that from so many years ago.
[10:39:09] <Yuv422> peer review. :)
[10:40:02] <Yuv422> at least we can run the end sequence easily now
[10:40:14] <Yuv422> for when we get around to putting it into nuvie
[10:40:38] <SB-X> yeah, I think the sequences like that shouldnt be too hard to do
[10:40:44] <Yuv422> nah
[10:40:50] <SB-X> we just have other things to work on first
[10:41:26] <Yuv422> like temp actor treasure chance
[10:41:40] <Yuv422> or temp actor inventory for that matter
[10:42:40] <SB-X> where is treasure chance listed? the documents about monster stats and inventories both have a KEY mentioning that, but don't actually have it in the charts
[10:42:42] --> Kirben has joined #nuvie
[10:42:59] <Yuv422> hi Kirben
[10:43:07] <Yuv422> let me see
[10:43:08] <Kirben> Hi
[10:43:51] <Yuv422> ULTIMA 6 MONSTER LIST
[10:44:11] <Yuv422> I guess it doesn't really spell out the treasure
[10:44:28] <Yuv422> but it does have weapons/armour.
[10:44:44] <SB-X> hmm ok, I'll take a look at it again later
[10:44:50] <SB-X> what is the ARM in stats?
[10:44:57] <SB-X> number of weapon slots?
[10:45:07] <Yuv422> ac?
[10:45:10] <SB-X> armor class
[10:45:13] <SB-X> that's probably it
[10:45:24] <SB-X> pretty obvious actually
[10:45:47] <SB-X> it could help to figure out the flags fields there
[10:45:55] <Yuv422> I was thinking of storing the actor inventory lists in a file in the data dir
[10:46:10] <SB-X> that's a really good idea
[10:46:20] <Yuv422> then we can play around with them to get them right
[10:47:33] <Yuv422> do you think we still need a variable stat difference for the temp actor stats
[10:47:34] <Yuv422> ?
[10:48:20] <SB-X> in the table you can print out from game.exe with that tool I sent you, the last one or two fields are probably not in the table, but included in case they are
[10:48:47] <SB-X> if they are related, perhaps they are the stat variations
[10:49:16] <SB-X> havn't looked at it in detail
[10:49:29] <SB-X> why wouldn't we need variable stat difference?
[10:50:29] <Yuv422> I just thought the stat variation would show up in the table
[10:50:31] <SB-X> yes, I thought that's what you were adding
[10:50:35] <SB-X> ah
[10:50:41] <Yuv422> it it was used in the origianal
[10:50:46] <SB-X> no idea
[10:50:50] <SB-X> might be a nearby table for it
[10:50:59] <Yuv422> yeah
[10:51:09] <Yuv422> no harm in adding it to nuvie
[10:51:14] <SB-X> if not, then you may be able to derive a formula or randomness that were applied evenly to all actors
[10:52:09] <Yuv422> +-4 for all stats?
[10:52:10] <Yuv422> :)
[10:52:40] <SB-X> I don't know how much it varied in U6.
[10:52:42] <Yuv422> it would be interesting to see what variance there is in the original
[10:52:52] <SB-X> isn't that what you began documenting with guards?
[10:52:59] <Yuv422> yes
[10:53:04] <Yuv422> I forgot about that
[10:53:06] <Yuv422> :)
[10:53:56] <SB-X> if HP is based on STR, +/- could be based on another stat
[10:54:47] <SB-X> oh yeah, HP is stored independantly
[10:54:49] <Yuv422> guard
[10:54:57] <Yuv422> str 30 in the table
[10:55:09] <Yuv422> max/min (42/18)
[10:55:19] <Yuv422> from temp actors seen in the game
[10:56:01] <Yuv422> dex (42/19)
[10:56:10] <Yuv422> 30 in the table
[10:56:29] <SB-X> heh
[10:56:33] <Yuv422> int (10/5)
[10:56:42] <Yuv422> 9 int the table
[10:56:47] <Yuv422> int/in
[10:59:00] <SB-X> any other stats?
[10:59:03] <SB-X> or monsters
[10:59:26] <Yuv422> that's all I checked at the time
[11:01:07] <SB-X> how many samples of int?
[11:01:44] <Yuv422> 15 each
[11:02:02] <Yuv422> I posted it in the monster stats thread on the forum
[11:02:03] <SB-X> oh, that's pretty solid then
[11:02:12] <SB-X> I was too lazy to check.
[11:03:13] <SB-X> why would int only raise 1 but drop 4?
[11:03:29] <SB-X> the other two are 12 even
[11:03:52] <SB-X> well except the dex but it's pretty close
[11:04:15] <Yuv422> not too sure
[11:04:35] <SB-X> you might play with their stats in the exe and see if the variation changes
[11:04:58] <SB-X> for example putting dex to 9 and int to 30 :)
[11:05:30] <Yuv422> that's a good idea
[11:07:41] <SB-X> and when you get time to do that be sure to look at some other monsters
[11:07:59] <SB-X> to see if it's even for different actors
[11:08:09] <Yuv422> yeah
[11:14:03] <SB-X> this magazine article about U6 makes me think it has a great easy-to-use interface :)
[11:14:32] <Yuv422> the map editor?
[11:14:48] <SB-X> no the game
[11:14:56] <Yuv422> hehe really?
[11:14:57] <SB-X> i didnt get to reading the 2nd page yet
[11:16:22] <SB-X> "In UVI everything is mouse-driven, but without in any way limiting the options open to the player."
[11:17:00] <Yuv422> hmm a bit of creative license there.
[11:17:37] * Yuv422 hack at GAME.EXE in a hex editor
[11:17:40] <Yuv422> +s
[11:19:17] <SB-X> editors?
[11:19:22] <SB-X> it should only take one
[11:19:34] <Yuv422> hehe hacks
[11:19:36] <SB-X> heh :p
[11:19:43] <SB-X> sorry
[11:19:46] <SB-X> you replacing stats?
[11:19:53] <SB-X> it's easy to see how their stored
[11:19:56] <SB-X> they're*
[11:19:56] <Yuv422> yep
[11:20:01] <SB-X> cool
[11:20:35] <SB-X> "o You get your own room in Lord British's castle!"
[11:22:07] <Yuv422> are you sure it starts at 0x030342
[11:22:52] <SB-X> no, that's just where the first recognizable value starts
[11:23:14] <Yuv422> 05 14 10
[11:23:18] <Yuv422> ?
[11:23:57] <SB-X> in hex yeah
[11:24:11] <SB-X> had to look at the list to make sure :)
[11:24:14] <Yuv422> but acid slug is 05 05
[11:24:22] <SB-X> it stores all of one field first
[11:24:27] <SB-X> for all monsters, then it goes to dex
[11:24:27] <Yuv422> ah
[11:24:32] <Yuv422> righto
[11:25:12] <SB-X> following that scheme there are 6 unknown entries
[11:26:24] <SB-X> subtract the number of actors from 0x30342 to see if another field is recorded before STR
[11:26:58] <SB-X> probably shouldve done that in the list tool
[11:29:15] <SB-X> wow they're monster egg was huge
[11:29:22] <SB-X> their*
[11:29:34] <Yuv422> I was thinking that too
[11:30:24] <SB-X> 4e8
[11:31:46] <Yuv422> ?
[11:33:25] <SB-X> in the tile view to the right of the world view it has the egg in the yellow box with 4E8 next to it
[11:33:43] <SB-X> to the right of that is a wingless gargoyle with 5A8 next to it
[11:36:16] * SB-X wants to see page 3.
[11:38:17] <Yuv422> do you think it has a page 3?
[11:38:19] <Yuv422> :)
[11:38:47] <SB-X> i wish
[11:40:45] <SB-X> page2 is really before page1, somebody just ripped out that page and scanned both sides
[11:41:24] <SB-X> probably not anything else about it in the magazine
[11:41:30] <Yuv422> strength: 8 dex: 37 int: 11
[11:41:31] <Yuv422> strength: 8 dex: 21 int: 8
[11:41:31] <Yuv422> strength: 5 dex: 28 int: 10
[11:41:31] <Yuv422> strength: 10 dex: 27 int: 9
[11:41:31] <Yuv422> strength: 10 dex: 25 int: 12
[11:41:33] <Yuv422> strength: 9 dex: 36 int: 12
[11:41:38] <Yuv422> with str set at 9
[11:41:43] <Yuv422> in GAME.EXE
[11:41:46] <Yuv422> for guard
[11:42:17] <SB-X> i see int is a little higher now
[11:42:35] <Yuv422> I haven't changed int
[11:42:46] <SB-X> yeah, and dex has less variation now
[11:43:10] <SB-X> it would be nice if there was a way to do this easier
[11:43:28] <Yuv422> IDA Pro
[11:43:31] <Yuv422> and a debugger
[11:43:33] <Yuv422> :)
[11:44:25] <SB-X> oh, is it much easier now? I imagined you were still running the game, saving, reading the savegame in nuvie, reloading and goign to guard again, saving, reading the savegame in nuvie
[11:44:27] <SB-X> and so on
[11:44:30] <SB-X> .
[11:44:46] <SB-X> still looks like 40%
[11:44:54] <SB-X> i wonder what another actor returns
[11:51:53] <SB-X> Hmm. Perhaps you can find a part of the code that manipulates or copies from that table, watch any related locations in memory to see when they change, and look at the code that changes them to find out why.
[11:52:09] <Yuv422> yes
[12:26:02] <-- exultbot has left IRC (ping timeout: 15 minutes)
[12:52:59] --> exultbot has joined #nuvie
[12:52:59] --- Topic for #nuvie is: Nuvie - New Ultima VI Engine (http://nuvie.sf.net)
[12:52:59] --- Topic for #nuvie set by ChanServ at Wed Aug 31 04:00:22 2005
[12:55:59] --> Yuv422 has joined #nuvie
[12:56:32] <Yuv422> my computer went to sleep
[12:57:59] <SB-X> wb
[12:58:04] <SB-X> exultbot came back too
[12:58:24] <Yuv422> cool
[12:58:28] <SB-X> hopefully you weren't working at your computer when it decided to doze off
[12:58:41] <Yuv422> I'm just fixing attack with mouse
[12:58:49] <Yuv422> heh nah I wandered off
[12:59:01] <Yuv422> and it decided to go to sleep
[13:07:52] <SB-X> attack with sherry?
[13:07:52] <Yuv422> attack target select with mouse. :)
[13:09:34] <SB-X> do you think a flag in monster list tells whether the monster has a corpse or not?
[13:09:46] <SB-X> because you recently changed it so mice have one, I believe
[13:10:27] <Yuv422> I keep the corpse object number
[13:10:32] <Yuv422> in my table
[13:10:51] <SB-X> and you just check that?
[13:11:12] <SB-X> or set it to 0 for those without one
[13:11:34] <SB-X> the monster_stats.txt gives NC=no corpse, but I didnt find a flag for it so maybe its the way you do it
[13:20:54] <Yuv422> ok I'm range checking weapons when selecting with the mouse
[13:21:21] <SB-X> good
[13:21:48] <SB-X> i only played with combat a little but i noticed that wasnt in yet
[13:21:57] <SB-X> I still don't use the mouse to play though.
[13:22:13] <Yuv422> neither do I
[13:22:20] <Yuv422> that's why I missed it
[13:23:39] <SB-X> I'm still pretending we don't have mouse support yet.
[13:40:14] <Yuv422> ok that is in cvs now
[13:43:56] <SB-X> great
[13:44:04] <SB-X> did you find out any more about stat variations?
[13:47:05] <Yuv422> not yet
[14:10:19] <Yuv422> hmm time for bed I think
[14:10:23] <SB-X> alright
[14:10:25] <SB-X> see you later
[14:10:27] <Yuv422> cya
[14:10:33] <-- Yuv422 has left IRC ()
[14:43:32] <-- Kirben has left IRC ("System Meltdown")
[15:54:51] <-- laxdragon has left IRC (Read error: 104 (Connection reset by peer))
[15:57:21] --> laxdragon has joined #nuvie
[17:27:12] <-- laxdragon has left IRC (Read error: 113 (No route to host))
[18:29:57] --> wjp has joined #nuvie
[20:22:44] <-- SB-X has left IRC ("...")
[21:34:52] --> Kirben has joined #nuvie
[23:31:45] --> Yuv422 has joined #nuvie
[23:45:30] <-- Yuv422 has left IRC ()
[23:49:08] --> Yuv422 has joined #nuvie