Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user eightbitswide ! (Registered 2024-12-24) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Misbehaving Breakpoints
2004-09-12 20:33
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.
2004-09-13 00:35
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.
2004-09-13 10:35
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).
2004-09-13 10:36
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. :(
2004-09-13 11:28
raven
Account closed

Registered: Jan 2002
Posts: 137
Hmm is this C64 coding? ;)
2004-09-13 12:07
Cybernator

Registered: Jun 2002
Posts: 154
Quote: Hmm is this C64 coding? ;)

Nope, it's emulamer reverse-engineering. :P
2004-09-13 17:33
Hoogo

Registered: Jun 2002
Posts: 105
What write-access?
2004-09-13 19:20
JackAsser

Registered: Jun 2002
Posts: 2014
pha,php,sta,lsr,asl,ror,rol,inc,dec
2004-09-14 09:18
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 :)
2004-09-14 10:58
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. :)
2004-09-14 11:45
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? =)
2004-09-14 13:16
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.

2004-09-14 14:05
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...
2004-09-14 15:14
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. =-)
2004-09-18 19:50
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
2004-09-19 06:37
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
2004-09-19 12:26
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.
2004-09-19 15:18
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
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Guests online: 88
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 X-Mas Demo 2024  (9.5)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Fullscreen Graphicians
1 Joe  (9.7)
2 Sulevi  (9.6)
3 The Sarge  (9.6)
4 Veto  (9.6)
5 Facet  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.043 sec.