| |
Cybernator
Registered: Jun 2002 Posts: 154 |
Misbehaving Breakpoints
Don't know if anyone encountered this problem before..
Anyway, I tried setting a breakpoint on write access to
a zeropage location in CCS, but it doesn't seem to work.
Breakpoints on execution are ok, though.
So I thought trying with VICE. I set a watchpoint (which is
just a breakpoint on R/W access) to the zeropage location,
but it still doesn't work.
Now you'd say that maybe the access never happens, but I
see the location changing the value, and this has always
been happening. The strangest thing is that both emus fail.
Anyone's got a clue? This is senseless. |
|
| |
iAN CooG
Registered: May 2002 Posts: 3197 |
In CCS breakpoints/watchpoints on zeropage access is known to not work.
In Vice I've tried
w 0002
w store 0002
w load 0002
and seems to work here, it breaks on poke2,0 or ?peek(2).
It doesn't seems to work if I try to watch for $01 changes, though. |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
It still doesn't work. :-|
At $0070 there's LDX #$nn
I tried: w store 0071, but the monitor never pops up.
Then: w load 0071, and the monitor pops at $0072.
Apparently it breaks on cpu-level access (if that's the
correct term). I mean it should break if there's an
opcode whose operand (effectively) points to the specified address.
That should never happen with immediate addressing.
But I still don't get why it doesn't break on write access.
Btw, I'm assuming that the voxel engine in Nine/Reflex is
realtime. Is there any other voxel as cool as this one?
(AFAIK, the voxel in Love/Agony is a complete precalculation). |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
Oh, and how about the latest version of CCS? Does it work
with zeropage breakpoints? It won't run on my machine. :( |
| |
raven Account closed
Registered: Jan 2002 Posts: 137 |
Hmm is this C64 coding? ;) |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
Quote: Hmm is this C64 coding? ;)
Nope, it's emulamer reverse-engineering. :P |
| |
Hoogo
Registered: Jun 2002 Posts: 105 |
What write-access? |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
pha,php,sta,lsr,asl,ror,rol,inc,dec |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
cybernator: for similar voxels check: unsound minds/byterapers, deep blue/arise, breitbrandkatze/reflex
the love /agony version is better to be called: animation :) |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
That voxel in Nine/Reflex _might_ be yet another precalculation (not as complete frames, though). There's a speedcode which looks like a line drawer.
Actually, something like Feeling Retro. :) |
| |
hollowman
Registered: Dec 2001 Posts: 474 |
whats so odd with having speedcode for drawing lines in
a voxelscape routine? or is unrolled code also cheating? =) |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
No, as far as I can see (can't guarantee it though, the code is pretty hard to follow) all the transforms are precalculated. You just keep info of the y1 and y2 points of every vertical line, and pass these coords to the vertical line drawer.
In other words, you can't define an exact position of the camera in realtime, unlike in your version.
But then, this kind of voxel is too computationally expensive to be done in realtime, and still have a fluent flow.
|
| |
Nightlord Account closed
Registered: Jan 2003 Posts: 131 |
i have a question
what do you mean by define an exact position of the camera in realtime. do you count orientation(rotation) as well. or you only mean position. i have a landscape routine in mist/civitas where you can place the camera anywhere you like but it has to look same direction (say north). so it can be placed anywhere every frame but it cannot look anywhere but the single direction (3 degrees of freedom as robotics people would call it). i also have a fast code for vertical line draving...
now does all this sound real time to you? can i claim that i have a realtime voxel engine?
if not would i have one if i added orientation?
sorry for a possibly stupid question :)
thanx for the answers... |
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
> what do you mean by define an exact position
> of the camera in realtime. do you count
> orientation(rotation) as well. or you only mean
> position.
The DOF doesn't tell if your effect works in realtime, or if it's precalculated.
You always have to precalculate something (like eg. a mul table). That also doesn't mean that the effect is precalculated. The only way to tell if it's realtime or not, imho, is whether you can place the camera whereever you like, no matter if it's 1 or 6 DOF.
BUT, if you just have a serie of frames, you could never place the camera at an arbitrary position in realtime!
> i also have a fast code for
> vertical line draving...
Also, the linedrawer speedcode doesn't say that your effect is precalculated. When I said this about Nine, I just wanted to point out that this is not just an AVI-like animation, eg. you don't have a serie of pictures and just copy them to video memory.
In the case of Nine, you might think of the linedrawer as a high-ratio compression algorithm. :)
> can i claim that
> i have a realtime voxel engine?
Sure, feel free. =-)
|
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
There must be something more apart for the linedrawer. It still takes a lot of memory.
Let's see Arise's version. :)
-
Edit: Uhm, this one's realtime and still looks amazing. :D |
| |
Rubi Account closed
Registered: Apr 2002 Posts: 48 |
Quote: Don't know if anyone encountered this problem before..
Anyway, I tried setting a breakpoint on write access to
a zeropage location in CCS, but it doesn't seem to work.
Breakpoints on execution are ok, though.
So I thought trying with VICE. I set a watchpoint (which is
just a breakpoint on R/W access) to the zeropage location,
but it still doesn't work.
Now you'd say that maybe the access never happens, but I
see the location changing the value, and this has always
been happening. The strangest thing is that both emus fail.
Anyone's got a clue? This is senseless.
This is what Andreas Boose responds to a similar question in our mailing list:
> Writes to a zero-page location sometimes goes unnoticed by your
> monitor 'watchpoint' function.
This is because zero page (and page one) accesses mostly bypass the function pointer array which is also used for watchpoints. This is due to historical reasons because the emulation had to be as fast as possible as there were many weak host machines back then.
If you like you can replace the STORE_ZERO() and LOAD_ZERO() macros in maincpu.c by:
#ifndef STORE_ZERO
#define STORE_ZERO(addr, value) \
(*_mem_write_tab_ptr[0])((WORD)(addr), (BYTE)(value)) #endif
#ifndef LOAD_ZERO
#define LOAD_ZERO(addr) \
(*_mem_read_tab_ptr[0])((WORD)(addr))
#endif
Probably we wíll change to a fully working watchpoint implementation in one of the next releases (which will make emulation a bit slower even if no watchpoints are used).
MfG Andreas
|
| |
yago
Registered: May 2002 Posts: 333 |
VICE does not only have Problems with watchpoints if they are in Zeropage.
I did not yet find a scheme, but also other areas (IO[1], RAM beneath ROM) do sometimes not work.
To tell you the truth, I do not use breakpoints with VICE anymore.
Its just to frustrating, to set a watchpoint, wait, wait, nothing happens, double-checking that the code accesses the breakpoint and then giving up. If VICE would be real, i would have thrown him out of the window...
Dont get me wrong, VICE is great and blabla, but it seems , that even the talented vice-team cant debug some errors..
Z
[1] What VICE also completely misunderstands is the mirroring of the IO-Chips. Just use dec $d120, and nobody will ever "watch" your $d020-accessing code.
|
| |
Cybernator
Registered: Jun 2002 Posts: 154 |
First the offtopic stuff: The voxel in Nine seems to be realtime afterall. The only precalculated thing is the camera movement. But since a lot of relevant vars and buffers are on zeropage, I'd really need a good debuger to make my life (or at least the debuging :)) easier. I'd really like to know how Zorc handles some stuff.
Aparently no one works on the monitor. It needs a lot of improvements. Guess I'll have to recompile Vice with the bugfix (thanks for the info Rubi!). Unfortunately, Cygwin and those Unix features are all greek to me. Think I'm starting to like Microsoft. C'mon, DirectX is not that bad. :P |