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

Archive Today Yesterday Tomorrow
Nuvie homepage


[00:16:03] <Kirben> Bug #1157720 on tracker should be closed as invalid, I don't have access to do it. The problem is caused by buggy sound card drivers and isn't an SDL or nuvie issue.
[00:18:50] <-- Yuv422 has left IRC ()
[01:33:24] --> Yuv422 has joined #nuvie
[01:33:53] <Yuv422> thanks kirben
[01:33:58] <Yuv422> I'll close it now
[03:50:32] --> SB-X has joined #nuvie
[03:50:38] <SB-X> hi
[03:51:04] <Yuv422> hello
[03:51:52] <SB-X> I think that SB driver bug was masking a real bug about corrupted sound.
[03:51:59] <SB-X> Fortunately, we already fixed the real bug.
[03:52:09] <Yuv422> endian issues?
[03:52:12] <SB-X> yeah that one
[03:52:17] <Yuv422> right
[03:52:27] <SB-X> when people had that I first thought it was just the same thing gruck reported
[03:52:37] <Yuv422> do you know of a good 80286 assembler tutorial?
[03:52:40] <SB-X> reported that*
[03:52:46] <SB-X> hmm
[03:52:52] <SB-X> i've got art of assembly for linux
[03:53:01] <SB-X> 386+
[03:53:08] <Yuv422> hehe that'd be 386+
[03:53:11] <Yuv422> ;)
[03:53:21] <SB-X> oh sorry, not really
[03:53:42] <SB-X> I've got one for the SNES chipset but not 80286. :)
[03:56:57] <Yuv422> http://www.geocities.com/SiliconValley/Park/3230/x86asm/asmles01.html
[04:00:24] * Yuv422 wishes dosbox had a gui debugger
[04:03:53] <SB-X> curses is graphical
[04:04:12] <SB-X> that looks like a good tutorial
[04:07:48] <Yuv422> bbl
[05:14:55] <Yuv422> back
[05:16:57] <SB-X> wb
[05:19:17] <Yuv422> hehe someone has added nuvie into the projects to be ported to the gp2x page on the gp2x wiki
[05:19:26] <Yuv422> http://wiki.gp2x.org/wiki/Suggestion_Box
[05:20:33] <SB-X> neat
[05:21:05] <SB-X> that's nice... could TSSHP run on gp2x?
[05:21:42] <SB-X> I suppose it doesn't use too many resources, just because it's 3D.
[05:22:22] <SB-X> Exult is on the Works In Progress page.
[05:22:46] <SB-X> Status: Removing useless features
[05:23:13] <Yuv422> I'm going to add the doll widget into the portrait view
[05:23:25] <Yuv422> as per the original
[05:24:22] <SB-X> ok
[05:25:34] <SB-X> when the portrait is shown input is blocked so you shouldnt have any problem with it being clicked or activated with the keyboard
[05:25:58] <SB-X> when an actor doesn't have a portrait it still shows their doll if they have equipment
[05:26:08] <SB-X> it's centered in that case
[05:26:15] <-- Yuv422 has left IRC (Remote closed the connection)
[05:26:27] <SB-X> it's to the left if they have a portrait
[05:26:28] <SB-X> oops
[05:26:51] --> Yuv422 has joined #nuvie
[05:27:07] <SB-X> wb
[05:27:10] <SB-X> you alright?
[05:27:12] <SB-X> :)
[05:28:35] <Yuv422> hehe
[05:28:47] <Yuv422> not too sure what happend then
[05:29:01] <SB-X> i said a few things about the portrait view
[05:29:01] <Yuv422> I was downloading a java update for my machine
[05:29:12] * Yuv422 looks at the logs
[05:29:27] <SB-X> maybe it needed to restart to install
[05:30:36] <Yuv422> yeah I don't think it should be too hard to implement
[05:30:57] <Yuv422> I don't think my irc client has any java in it. ;)
[05:31:18] <SB-X> oh just irc? that's odd
[05:32:04] <SB-X> I got IDAPro Freeware and looked at end.exe. My version doesn't have call_printf resolved
[05:32:14] <SB-X> or labeled I mean
[05:32:59] <SB-X> it is instead just sub_40B0
[05:34:16] * Yuv422 checks end binary
[05:35:35] <SB-X> The first thing that strikes me when loading a program is the list of strings on the right, and above that the names window.
[05:36:03] <SB-X> it even labels your strings based on what they are :)
[05:36:27] <SB-X> and lets us see newlines which weren't saved in gamestrings.txt
[05:36:34] <Yuv422> pretty neat, isn't it
[05:37:11] <SB-X> yeah, aGood db 'good',0 :D
[05:37:15] <SB-X> although some things aren't accurate
[05:37:21] <Yuv422> LOL
[05:37:46] <SB-X> aRmageddon db 'rmageddon',0
[05:39:12] <SB-X> 'The corpse is too old!' <- I don't remember seeing that before.
[05:43:10] <-- Yuv422 has left IRC (Remote closed the connection)
[05:43:46] --> Yuv422 has joined #nuvie
[05:43:53] <Yuv422> hmm
[05:44:08] <Yuv422> not having the best luck with my IRC connection today. :(
[05:44:44] <SB-X> no not really
[05:45:23] <Yuv422> was there a time limit on the resurrection spell?
[05:47:53] <SB-X> no idea
[05:47:56] <SB-X> didn't think so
[05:48:41] <SB-X> I'd never wait very long.
[05:48:45] <SB-X> usually I just reloaded the game
[05:50:02] <SB-X> hmm, I need a new view to see data next to code
[05:51:21] <Yuv422> Is it safe to re init() a widget?
[05:51:31] <Yuv422> I need to move the widget around
[05:51:45] <Yuv422> or maybe I should just make a new widget when needed
[05:53:26] <SB-X> in most cases I'd say move it but here it should be a new one
[05:53:32] <SB-X> since it's a child of some other widget
[05:55:23] <SB-X> reInit is save if the widget doesnt have a parent
[05:55:27] <SB-X> safe*
[05:55:58] <Yuv422> yeah I think deletion should work
[05:56:11] <SB-X> do you need to delete the old one?
[05:56:33] <Yuv422> if it is marked as DELETED the the GUI with remove it
[05:56:59] <Yuv422> maybe we need a move relative to parent option?
[05:57:16] <SB-X> i don't know why you have to delete it, can't you just make a new one?
[05:57:51] <SB-X> oh, you're probably talking about deleting the new one
[05:57:53] <SB-X> heh sorry
[05:59:23] <SB-X> PlaceOnScreen should be effective in moving it
[05:59:35] <SB-X> it does a little extra
[05:59:53] <SB-X> but nothing that would cause problems if you from call it multiple times
[06:00:22] <SB-X> and the coordinates are relative
[06:00:34] <Yuv422> the problem is offset_x and _y
[06:00:51] <Yuv422> I need to change these
[06:01:10] <Yuv422> because I'm changing the widget location relative to its parent
[06:01:15] <SB-X> Oh I didn't notice Move() either.
[06:01:53] <SB-X> since we can already move it, a method to reset or change those properties will be enough
[06:01:57] <SB-X> if you can't change them already
[06:03:13] <SB-X> there's already a MoveRelative() too
[06:04:02] <Yuv422> but that is realtive to your current pos
[06:04:19] <Yuv422> I need move relative to parent
[06:05:33] <Yuv422> it should be fairly simple
[06:05:36] <SB-X> Move() is relative to parent
[06:05:48] <Yuv422> but it adds the offsets
[06:06:02] <Yuv422> which are set from init
[06:06:13] <Yuv422> I just need to reset the offsets
[06:06:20] <Yuv422> then call move on the children
[06:06:42] <SB-X> im confused about that, what are the offsets exactly?
[06:06:57] <SB-X> original position?
[06:07:13] <Yuv422> difference in child / parent area coords
[06:07:36] <SB-X> so it's position relative to parent?
[06:07:42] <Yuv422> parent(1,1) child(2,1) offset_x = 1 offset_y = 0
[06:07:47] <Yuv422> yes
[06:07:51] <Yuv422> :)
[06:08:56] <SB-X> so don't you want to keep that?
[06:09:23] <Yuv422> no because the dollwidget is moving relative to the parent portraitview widget
[06:10:45] <SB-X> does it have to move off the parent?
[06:11:10] <Yuv422> outside the parent area?
[06:11:12] <Yuv422> on
[06:11:13] <SB-X> yeah
[06:11:16] <Yuv422> no
[06:11:44] <Yuv422> it will just be moved from center to left
[06:11:56] <SB-X> why can't you just use absolute coords then
[06:12:01] <Yuv422> and hidden then shown
[06:12:10] <SB-X> but relative to parent IE just letting it add offset_x,offset_y
[06:12:32] <Yuv422> but offset_x and _y are the problem
[06:12:42] <SB-X> where it adds offset_x,offset_y that's just for GUI to draw right? you actually need those
[06:12:50] <SB-X> what if portraitview moved
[06:13:15] <Yuv422> if portrait view moved it would recalc the child area with the childs offsets
[06:13:24] <Yuv422> that's why they need to be reset.
[06:13:35] <SB-X> yeah I was about to say then you'd be resetting them anyway :)
[06:14:05] <SB-X> i just wondered if you could do something like Move(0,0); MoveRelative(x,y);
[06:14:05] <Yuv422> well actually they aren't acutally used because the move is relative but it won't hurt to fix the data.
[06:14:15] <SB-X> oh
[06:15:49] <SB-X> is there any reason why the movement functions shouldn't all be changed then? when do you need to keep offset?
[06:16:31] <Yuv422> code snippet coming
[06:16:39] <Yuv422> void GUI_Widget::MoveRelativeToParent(int dx, int dy)
[06:16:39] <Yuv422> {
[06:16:39] <Yuv422> std::list<GUI_Widget *>::iterator child;
[06:16:39] <Yuv422> area.x = (area.x - offset_x) + dx;
[06:16:39] <Yuv422> area.y = (area.y - offset_y) + dy;
[06:16:42] <Yuv422>
[06:16:44] <Yuv422> offset_x = dx;
[06:16:47] <Yuv422> offset_y = dy;
[06:16:49] <Yuv422>
[06:16:52] <Yuv422> for(child = children.begin(); child != children.end(); child++)
[06:16:54] <Yuv422> (*child)->Move(area.x, area.y);
[06:16:57] <Yuv422> }
[06:17:22] <Yuv422> this should move the child to a position relative to the parent and adjust any children.
[06:19:29] <SB-X> ok
[06:21:05] <SB-X> although Move() also moves relative to parent
[06:21:25] <Yuv422> which is what we want
[06:22:06] <Yuv422> but we aren't changing that the the child's children
[06:22:23] <Yuv422> their location relative to the current widget remains unchanged
[06:23:17] <SB-X> I think the names of the functions are what confuse me.
[06:23:32] <Yuv422> yeah they are quite confusing.
[06:23:33] <SB-X> they don't do what I expect tem to do
[06:23:35] <SB-X> them*
[06:23:59] <Yuv422> neither does my explanation. :)
[06:24:42] <Yuv422> sorry about that
[06:25:07] <SB-X> hehe, I probably just need to review GUI_widget again
[06:25:24] <SB-X> np I don't know whats so confusing about it, but I also thought area was absolute
[06:25:37] <Yuv422> area is absolute
[06:25:43] <Yuv422> :)
[06:26:18] <SB-X> so the moved widget is telling all its children to Move to its absolute coordinates
[06:26:28] <Yuv422> yes
[06:26:31] <SB-X> but then adjust themselves based on their original offset
[06:26:37] <Yuv422> yes
[06:27:39] <SB-X> I understand that now.
[06:28:08] <SB-X> maybe it should instead do Move(area.x + child->offset_x, area.y + child->offset_y) and not have Move() add offset, but I don't suggest changing it now
[06:28:08] <Yuv422> :)
[06:28:43] <Yuv422> yeah that probably makes more sense
[06:32:28] <Yuv422> I might make a portraitWidget too
[06:32:49] <SB-X> what are we using now?
[06:33:13] <Yuv422> we just get the raw portrait data from Portrait
[06:33:24] <Yuv422> then display it to the screen in the widget Display() routine
[06:33:44] <SB-X> but somebody is intercepting input and displaying the ankh
[06:34:01] <SB-X> isn't that a widget?
[06:34:29] <SB-X> what would a portraitWidget do different?
[06:34:59] <Yuv422> it would encapsulate the portrait data and draw it by itself
[06:35:11] <Yuv422> then you wouldn't need to call it from your display routine
[06:35:27] <Yuv422> because the GUI manager would display the widget
[06:36:30] <SB-X> I see what you mean
[06:36:38] <SB-X> keep the current widget and make a portraitWidget a child of that
[06:36:45] <Yuv422> yes
[06:37:06] <SB-X> that is a lot cleaner looking and easier to work with
[06:37:37] <Yuv422> :)
[06:39:22] <SB-X> to answer my question, PortraitView is the controlling widget
[06:39:31] <SB-X> but I just noticed that it doesnt completely block input
[06:39:50] <Yuv422> we might need to supress mouse clicks
[06:40:03] <SB-X> we can't just supress mouseclicks we have to block all input to the child
[06:40:13] <SB-X> but I think lock_input() will also send to children
[06:41:53] --> Kirben_ has joined #nuvie
[06:43:37] <SB-X> yeah, it sends to children first
[06:46:19] <SB-X> you can add another property to GUI_widget that causes it to ignore input, add a similiar setting to DollWidget only, or add a property to GUI_widget that causes it to handle input before children do
[06:46:41] <SB-X> the second change will be easiest
[06:48:35] <SB-X> bool DollWidget::keep_your_grubby_hands_away_from_my_armor;
[06:48:49] <Yuv422> hehe
[06:48:53] <SB-X> ^_^
[06:50:02] <Yuv422> cool my irc client shows a little anime face when you do that. :)
[06:50:22] <SB-X> lol
[06:50:37] <SB-X> have a screenshot? :D
[06:50:52] <SB-X> or what irc client is it?
[06:51:09] <Yuv422> colloquy
[06:51:48] <SB-X> ah, for OSX only
[06:52:04] * Yuv422 tires to send SB-X a file via dcc
[06:52:15] <Yuv422> tries
[06:53:23] <Yuv422> ah
[06:53:28] <Yuv422> I'm not a register user
[06:53:53] <SB-X> Yeah, I didn't see anything.
[06:54:58] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[06:57:35] --> Kirben has joined #nuvie
[06:58:08] <Yuv422> see anything now?
[06:58:47] <SB-X> Yes, I had to select save directory. It's not sending though.
[06:58:57] <Yuv422> :-(
[06:59:02] <SB-X> unable to connect
[06:59:14] <SB-X> Ccan you try it again?
[06:59:15] <SB-X> Can*
[07:00:05] * Yuv422 tries again
[07:00:29] <SB-X> that's odd
[07:00:38] <SB-X> you have my ip this time
[07:00:45] <SB-X> and my firewall wasn't running
[07:00:47] <-- Kirben_ has left IRC (Read error: 110 (Connection timed out))
[07:00:49] <Yuv422> it's probably fire wall issues at my end
[07:00:54] <SB-X> probably
[07:00:57] <SB-X> you can send it later
[07:01:21] <SB-X> I found two locations in game.exe that read the monster table.
[07:01:39] <Yuv422> cool
[07:01:50] <Yuv422> does it show textual reference
[07:02:00] <Yuv422> or just a segment offset?
[07:03:03] <SB-X> just the address in seg066
[07:03:27] <SB-X> first one is seg012:144C
[07:03:43] <SB-X> second is at seg014:04E9
[07:04:10] <Yuv422> are they iterating through the data?
[07:04:17] <SB-X> might be more, those are just easiest ones to find in a text search
[07:05:09] <SB-X> the only thing I saw was they set an array/list and then skip 64bytes
[07:05:18] <SB-X> which is the number of actors in the table
[07:06:19] <SB-X> I'm not good enough with asm to understand the rest without reading it very slowly.
[07:06:43] <SB-X> but I'm looking at it now
[07:08:28] <Yuv422> I've got the dollwidget loaded
[07:08:51] <Yuv422> it doesn't look like it accepts input
[07:09:20] <SB-X> heh
[07:18:44] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[07:38:02] <SB-X> IDA shows you the local stack at the start of each subroutine
[07:38:42] <Yuv422> wouldn't that be dependant on the process flow?
[07:38:45] <SB-X> if you hover over a green identifier like var_0 or arg_0
[07:38:49] <SB-X> yeah, most of them say ?
[07:39:33] <SB-X> but it says in the popup you can use commands to create local variables and function arguments
[07:56:56] --> Kirben has joined #nuvie
[08:04:55] <SB-X> what's the purpose of "or si,si"?
[08:05:28] <Yuv422> nop?
[08:05:48] <SB-X> why not use nop?
[08:06:24] <Yuv422> it could be a compiler issue
[08:06:28] <Yuv422> redundant code
[08:06:46] <SB-X> yeah
[08:06:59] <SB-X> it is manipulating si before that
[08:07:04] <SB-X> and then accessing it after that
[08:07:26] <Yuv422> have you made any headway with the code?
[08:08:05] <SB-X> only slightly
[08:08:19] <SB-X> im two subroutines away from the original
[08:09:01] <SB-X> maybe more than slightly, but I still dont know what it's doing :)
[08:17:43] <SB-X> you can save and load variable/arg names in IDA right?
[08:17:47] <SB-X> or comments
[08:18:42] <Yuv422> yes
[08:19:01] <Yuv422> some of the strings need correcting too
[08:19:02] <SB-X> if we figure out different sections of the code we can send eachother our results
[08:19:13] <SB-X> for better readability in IDA
[08:19:13] <Yuv422> it doesn't pick them up properly by itself
[08:19:16] <SB-X> yeah
[08:19:21] <SB-X> do you know why?
[08:19:26] <Yuv422> not too sure
[08:19:34] <SB-X> 'rmageddon'
[08:19:54] <Yuv422> can you export user entered symbols?
[08:20:04] <SB-X> which gives the interesting identifier 'aRmageddon'
[08:20:11] <SB-X> that'd be a nice feature
[08:20:21] <SB-X> basically that's one of the things I'm asking about
[08:21:08] <SB-X> I compared the U6Editor document we have with the magazine scans. It matches exactly.
[08:21:21] <Yuv422> cool
[08:21:24] <SB-X> tells you exactly what everything in the pictures is
[08:21:51] <SB-X> unfortunately it doesnt document the 4 flags in tile editor view that we are still missing
[08:22:02] <SB-X> but they are there in the picture
[08:22:07] <SB-X> in abbreviated form
[08:23:01] <SB-X> the flags at the top near Dupre's tile, plus NESW are TerrainType
[08:23:39] <SB-X> the ones on the right under that plus Double are TileFlags
[08:23:42] <Yuv422> didn't pieter work out the other tile flags?
[08:23:58] <Yuv422> somthing to do with danger and movement points?
[08:24:11] <SB-X> he got some of them, I'll look at the log again
[08:24:16] <SB-X> Danger==Damaging
[08:24:59] <SB-X> oh, and of course Light is one of the TileFlags too
[08:25:37] <SB-X> that leaves Wa,Su,Br,Ge,Ig,Ba, and the article (a,an,the)
[08:26:49] <Yuv422> I'm going out now
[08:27:00] <SB-X> alright
[08:27:03] <SB-X> bye
[08:27:09] <Yuv422> cya
[08:27:18] <-- Yuv422 has left IRC ()
[08:34:21] <SB-X> Things that come to mind that could use those abbreviations are "Breakable", "Gettable", "Ignites", "Ignore", "Base". Two of the flags in that set have already been identified and named "ForcedPassable" and "CanPlaceOnTop".
[13:01:03] <SB-X> I might have discovered the stat variation formula but I need more monster samples to test it.
[14:14:13] <-- Kirben has left IRC (Read error: 110 (Connection timed out))
[14:24:40] --> Yuv422 has joined #nuvie
[14:25:39] <Yuv422> cool
[14:25:56] <Yuv422> is it an easy formula?
[14:28:43] <wjp> hi
[14:29:40] <SB-X> haha, wb
[14:29:54] <SB-X> hi wjp
[14:30:15] <Yuv422> hello
[14:30:23] <SB-X> Yuv422: havn't finished reading the code so it's just a guess, but it is simple, something like an average
[14:30:33] <Yuv422> cool
[14:30:43] * Yuv422 is envious
[14:30:52] <Yuv422> I want to play around with IDA Pro too
[14:31:26] <Yuv422> I've been thinking of getting an old PC to run windows from home
[14:31:37] <Yuv422> so I can play around with win specific apps
[14:31:43] <SB-X> well it's just a guess like I said, based on some obvious code, but I've been looking at another subroutine that handles the stats all this time
[14:31:46] <SB-X> are you at work or home?
[14:31:53] <wjp> dos versions of ida work fine in dosbox, by the way
[14:32:02] <Yuv422> ah k
[14:32:08] <Yuv422> yeah I'm at home
[14:32:17] <Yuv422> It's getting a bit late here.
[14:32:21] <Yuv422> 1:30am
[14:32:24] <Yuv422> :)
[14:32:46] <SB-X> oh, hmm
[14:32:51] <Yuv422> wjp: is the dos version of IDA Pro hard to use?
[14:33:16] <Yuv422> The dosbox debugger is quite hard to manage on OS X. :-(
[14:34:34] <SB-X> statRange = ((str+dex+int+arm+hit+hp)/4)% of statBase
[14:34:53] <SB-X> that's probably wrong
[14:35:11] <SB-X> but it does perform those operations for some reason
[14:35:49] <SB-X> stat = statBase+/-statRange
[14:37:04] <wjp> Yuv422: no, it's quite easy to use
[14:37:15] <wjp> no need to use the dosbox debugger for anything :-)
[14:40:00] <-- Yuv422 has left IRC (Remote closed the connection)
[14:40:37] --> Yuv422 has joined #nuvie
[14:42:20] <SB-X> did your computer fall asleep?
[14:43:15] <Yuv422> nah i just had issues again. :(
[14:47:30] * Yuv422 installs ida 3.7 in dosbox
[14:47:52] <Yuv422> wjp: is there a later freeware version available for dos?
[14:48:06] <wjp> hm, I don't think so
[14:59:28] <Yuv422> wow the analysis phase takes a long time in dosbox. ;)
[15:01:35] <wjp> setting frameskip as high as possible helps a bit, but yes, that'll take some time :-)
[15:21:24] <Yuv422> I've just found a 3.8 freeware version
[15:23:39] <Yuv422> but it is win32 only
[15:23:40] <Yuv422> :(
[16:10:47] <Yuv422> bed time
[16:10:49] <Yuv422> cya
[16:10:57] <-- Yuv422 has left IRC ()
[18:53:36] <-- SB-X has left IRC ()
[22:02:06] --> Kirben has joined #nuvie
[22:51:24] --> Yuv422 has joined #nuvie
[22:53:44] <-- Yuv422 has left IRC (Client Quit)
[23:56:51] --> Yuv422 has joined #nuvie