Puting my Cards on the Table

Discuss Chaos Strikes Back for Windows and Linux, an unofficial port of Chaos Strikes Back to PC by Paul Stevens, as well as CSBuild, an associated dungeon editor.

Moderator: Zyx

Forum rules
Please read the Forum rules and policies before posting.
Post Reply
User avatar
Paul Stevens
CSBwin Guru
Posts: 4319
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Puting my Cards on the Table

Post by Paul Stevens »

I have been carrying around a large pile of 3x5 cards. I
want to reduce it to manageable proportions. Some of the
problems/features may already have been solved.
I would like your input.

1-Spell 1300 filtered as 1306.
I tried it and it seems to work for me.

2-Method of removing Lord Chaos' invincibility.
Cannot this be done by removing the bit in graphics.dat?

3-Disable "Import/Export Character Graphics" for
"dungeon-formatted" designs.
This makes sense. I can do this.

4-6N137 Optoisolators and 0.021 Carbide bit.
Oooops. That is a shopping list card. Does not belong here.

5-Size 4 monsters-Show attack icon if any attack.
I think this works as well as possible. I am discarding this
card unless someone provides more evidence.

6-Prevent certain monsters from casting spells.
I think this could be done. Who wants this and how should
it work?

7-Request for "broken" / "poisoned" miscellaneous objects.
Is this still wanted? What good would it do? How would a
broken apple be different from a normal apple? etc.

8-Display scan-codes on PocketPC.
THis more-or-less works. Need a way to turn it off.

9-Edit DSA. Browse, switch to integer and back-causes error.
I cannot make this happen. Perhaps I fixed it. Deleting card
but if it still happens for you then resubmit.

10-Teleport death cloud on party caused crash.
Can somone provide a dungeon and recording with the
latest CSBwin? I am deleting the card and awaiting an
example.

11-Door opening sound too slow when game is fast.
I'm not going to worry about this unless someone convinces
me that it is absolutely necessary.

12-Allow designer to plant bones of a real character in
the dungeon.
How should this work? When placed in an altar what should
happen? If this is needed, we need to talk about it.

13-Text on stairs.
I can put floor text on stairs. It is only seen after traversing
the stairs because you never really enter the stairway when you
enter the stairs. What do we need?

14-Allow False Pits anywhere.
What does this mean? False Pits in a stairwell???

15-Find Object toolbar button.
Is this still necessary? "Alt-S O" already gets there pretty fast.

16-Missiles like fireballs show as ???? in ediors text area.
If true, I will fix.

17-Search for decoration.
Deleting card. I think this already works.

18-Comments on DSA code.
No way. Not without a juicy contract. Discarded. You
are going to have to keep documentation on paper.

19-Character editor.
I am willing to provide a capability to export/import binary
data if someone will write editor. In fact, someone already
promised to do this and I provided a file. Never heard from
him again. Discarded.

20-"dm-benni", "dm-denni2", "prisonv13" cause CSBuild to
crash.
Deleted. If you know of crahses, please provide evidence.

21-Monsters flip "left/Right".
Deleted. Let me know if you still have a problem.

22-Provide "Reload" button.
Deleted unless someone can convince me this is really
necessary. There is great chance of bugs that are hard
to find. Interaction with recording/playback makes it
difficult.

23-Change mana costs for spell runes.
We need to talk about this if you still think it is necessary.

24- Reprogram Spell Runes.
We need to talk about this if you still think it is necessary.

25-Message "Text-nnnnn Valid indirect Pointer is nowhere
Reference". Need option to show text. Option to delete.
I need a dungeon that has this problem.

26-Provide "Illegal Text" for damaaged scrolls instead of
deleting the scroll.
I need a dungeon with an example of this error.

27-Lord Grey should not move in DM rules.
We need to talk about this.

28-Import DSA.
This would be a nice capability. If you need it, let me
know so I can push its priority a bit higher.
User avatar
PaulH
Ghastly gastropod
Posts: 3763
Joined: Wed Aug 07, 2002 10:27 pm
Location: Level 6

Post by PaulH »

Just had a quick look at the list: numbers 2 and 6 would be very useful for me and the effects I can cause in my new dungeon. Unsure of how to edit the bit for invincibility through csbedit.

Number 27 can definately be altered in csbedit.

Number 11, door opening sound. Hmmm, I would like to see this changed, as the queue of sounds when moving through the dungeon at warp speed (which I am inclined to do from time to time...) justs sounds plain odd on occasion.
User avatar
Gambit37
Should eat more pies
Posts: 13720
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Post by Gambit37 »

There's nothing in there that I would consider high priority at all; I'm sure Zyx will have more comment than me!

A few specific low priority comments:

11) I do agree about the sounds being a bit weird if there's lots of stuff happening quickly. They play much more how I remember them if you use the DirectX option, although for some reason sound muffled and awful this way. Not too bothered about the door itself though.

12) A very nice-to-have feature! But is this with the intention of only filling an empty slot in the party, or actually be able to 'trade' characters? That could become messy I imagine

18) I'd kill for some docs as the DSA makes absolutely NO sense to my poor artists brain...

21) Deleted because it's fixed? Great! But if not, let me know if you want me to test it again -- I do find this one very annoying...
User avatar
Paul Stevens
CSBwin Guru
Posts: 4319
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

12) A Champion's bones contain only a number 0 through 3. All the
information about the dead Champion in still in the Champion's slot
that shows the skeleton. Placing the bones in an Altar simply makes
an existing Champion alive again. So I never quite understood what
was wanted. I suppose the designer could start the game with a dead
Champion and place his bones somwhere to be found. But the
designer can already do that by playing the game to kill the
character and then use the editor to move the bones and release
the resulting savegame. So I never understood.

18)The documentation I speak of is the designer's comments to
himself as he writes the DSA. That is what I refuse to do. He must
write down his thoughts on a paper. The documentation you speak
of is easy to obtain. You write it yourself!!!!! Look at an interesting
DSA and figure out how it works. When you are stuck, ask me for
explanation (online or offline). When was the last time I refused to
explain something . . . sometimes several times in several ways.
If you like, we can add your stuff to the existing documentation at:
http://www.dianneandpaul.net/CSBwin/doc ... Index.html

21) Deleted because I don't think it is anything that I did. I think DM/CSB
came that way from FTL and I am not sure how to fix it. But I'm willing to listen.
User avatar
Zyx
DSA Master
Posts: 2592
Joined: Mon Jun 05, 2000 1:53 pm
Location: in the mind
Contact:

Post by Zyx »

1, 9, 10 were fixed

2, 23 and 27 can be done through graphics.dat

7-I'd like the flag to exist, at least to nominatively differentiate some objects.
Now, I could suggest some effects for broken and poisoned...
Broken weapon/object: only the first action (if any) from its combo remains available. You could only swing with a broken sword.
Poisoned weapon: additional damage to monsters.
Poisoned food: the character gets poisoned when he eats the object.
Poisoned cloth: the character gets poisoned as long as he's wearing the armor.

13-Text on stairs. They can't receive a set/clear message.

14-Allow False Pits anywhere.
I think this is abut the checks about the floor below a false pit, which are completely irrelevant since there is no real pit.
Last edited by Zyx on Thu Dec 02, 2004 4:16 am, edited 1 time in total.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4319
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

Thanks much. I happily threw a couple cards into the discard
pile and added notes to a few more to make them clearer to me.
lectricpharaoh
Neophyte
Posts: 7
Joined: Tue Mar 15, 2005 7:00 pm

Post by lectricpharaoh »

First, let me say I really appreciate all the time you've put into this. I especially like the fact I can play it on my PC, then shoot the save files over to my PocketPC, and play it on the go; that is exceedingly cool.
Paul Stevens wrote:12-Allow designer to plant bones of a real character in
the dungeon.
How should this work? When placed in an altar what should
happen? If this is needed, we need to talk about it.
I think this could be of immense value if the dungeon was designed with it in mind. For example, a dungeon where you can only choose three champions, but to complete the game, you need a fourth with some critical ability/item/etc, and you get this fourth by resurrecting him/her. I imagine it could use the same function called by the 'Resurrect' option on the mirrors, and floor text could appear, triggered by the special bones used in the altar (or whatever actuator triggers the resurrection). The tricky part, as I see it, would be to stock this character with items, but even this might be possible if they were 'inside the wall' containing the altar, etc, like with regular mirrors.

Hmm, after reading your thoughts on this in your subsequent message, I see that it's possible to (in a way) kludge this into a game. However, I still think it'd be a cool feature, as the character would be chosen at play time, rather than dungeon design time (from the end user's point of view). It would also allow starting off with only one character (chosen from a mirror, or distributed as the dungeon/save file), and picking the rest from a graveyard of bones.

Another benefit to adding this functionality is that it could be triggered in many other ways. For example, upon killing a certain monster (which is trapped in an area with pressure plates on all the tiles, and either drops a triggering item onto one of these plates, or ceases to trigger them through its own presence), a new character could be gained. The rationale could be that the character was polymorphed into said creature, magically imprisoned within its body, etc. It would open up a whole slew of new story ideas, and possibly some new puzzle ideas as well.

In short, not a must-have, high-priority addition, buit certainly worthwhile, in my book.
Paul Stevens wrote:19-Character editor.
I am willing to provide a capability to export/import binary
data if someone will write editor. In fact, someone already
promised to do this and I provided a file. Never heard from
him again. Discarded.
If you can give me specs on the save format CSBWin uses (offsets and sizes of the various fields), I can make an attempt at this. No guarantee as to a delivery date though; finals are coming up next month, along with three term projects.

If you're wanting more suggestions, I've got a couple, relating to the WinCE version, particularly in regards to video performance.

First, is there any method that you know of to set the display resolution through the WinCE API? I'm using a high-res (480x640) PocketPC, and the WinCE GDI will, on applications not specifically flagged as 'high-res compatible', double up the pixels in both dimensions. In other words, it draws four times as many pixels as it would on a low-res device. With the relatively tiny amount of bandwidth compared to laptop/desktop systems (I'd be surprised if the video data bus exceeds 8 bits in width, compared to 64-bit PCI/AGP, not to mention the bus frequency), it can exhibit pretty slow refreshes at times. The only exception to this pixel scaling (besides the 'flagged for high-res' apps mentioned above) is font rendering through GDI; this it draws at the same size as on a low-res model, and uses the extra pixels for enhanced sharpness and even, if ClearType is enabled, antialiasing (which looks pretty nice, by the way).

I have a utility that forces the PDA to operate in true 480x640, so the Today screen, Start menu, etc is absolutely tiny, and when running CSBWinCE that way, it runs much faster. The only problem is then that it's very hard to hit icons, etc, as they're too frigging small- and this is when one isn't in a moving vehicle.

Another possible option for improving the screen update rate might be to look into GAPI. It's a very simple, bare-bones API from Microsoft that allows direct access to the video frame buffer, but as it's incompatible with GDI, you won't be able to (for example) use the stock WinAPI bitblt().

My other suggestion is a minor UI concession for the PocketPC people. As everyone knows, the mouse cursor changes to reflect an item you've picked up, but since there's no such cursor on a stylus-operated system, it's very easy to miss this, especially when the units are often suspended for lengthy periods in the middle of a play session. I know you've got the text appear, showing what's being held (just like in the original), but a centrally-located, graphical representation would be nice, too; it would be harder to miss than the text at the edge of the screen.

Lastly, a question: is it possible to map the hardware keys on the PocketPC to functionality in the same way as one maps keys for the PC? If so, is this limited to the keys on the PDA, or would it work with an external keyboard, such as one connected through Bluetooth, IR, or the USB host port? I'm not sure, but I believe the buttons on the unit send regular WM_KEYUP/WM_KEYDOWN messages, but I have no idea what the VK_xxx codes are, nor do I know if external keyboards behave this way (though I don't see why they shouldn't).
User avatar
Paul Stevens
CSBwin Guru
Posts: 4319
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

The 'Bones' business is already on one of my cards.

There is no 'text' in these games. It is all graphics by the
time my code gets it.

I wrote the GAPI comment on a card. Perhaps someday.

My version of the PocketPC code shos the scan codes received
when the buttons are pressed. If they don't show on yours
I can get you the latest versioin. Then transfer the scan codes to
the config.txt file. The center button on mine only has two codes
assoiated with it....pressing the center sends one and pressing
any edge sends another. I don't know why that is!

The size and pieces of the screen can be redefined pretty easily.
I'll add this to my list also.

None of these things is going to get immediate attention. I am
very busy with features that are needed for custom dungeons.
lectricpharaoh
Neophyte
Posts: 7
Joined: Tue Mar 15, 2005 7:00 pm

Post by lectricpharaoh »

Paul Stevens wrote:My version of the PocketPC code shos the scan codes received when the buttons are pressed. If they don't show on yours I can get you the latest versioin. Then transfer the scan codes to the config.txt file. The center button on mine only has two codes assoiated with it....pressing the center sends one and pressing any edge sends another. I don't know why that is!
This would be much appreciated. It would save me the effort of writing an app to display said codes, even if it would be a rather trivial effort. If you like, I can PM you my email address, or altternately you can post it on your home page with the other files.

On another note, I've noticed two minor UI bugs with the WinCE version that you may or may not know about, and I can reproduce either at any time. I also don't know if these are limited to the official release, or if your version exhibits them too.

First is when the game is paused, either by losing focus, or explicitly by tapping the counter in the lower-left corner. When the game has focus again (if it lost it), the game doesn't unpause by tapping the center of the screen. I need to tap the champion health bars/hands to unpause it, but upon pausing, they have become stretched out, I believe to the original Atari/CSBWin proportions. It's sort of hard to explain; if I had a screen-capture utility for the PPC, I could show you what I mean (I'll go online and try to find one later). When the game is unpaused, the champion's area you clicked on is restored, but tapping on the others is necessary to restore them to the modified CSBWinCE proportions. Also upon unpausing, the leftmost edge of some of the UI controls (spell area, action buttons, and movement buttons) are drawn (in shaded form) immediately to the right of the inventory/dungeon view area of the screen, and remain there for the duration of the play session, or until the party dies and the game is reloaded.

The second 'feature' concerns the mouse cursor- yes, this is still the WinCE version. If a chest is opened, and the stylus is tapped on that character's mouth in order to see food/water levels, the mouse pointer appears. It properly tracks the stylus (that is, jumps to the location of any new tap; it doesn't follow dragging), and persists for the remainder of the game session, even if the game is reloaded after party death. A curious property of this pointer is that when it crosses the edge of one of the screen regions (for example, between the dungeon view region and the champion status bars), it becomes separated, as only the portions within the regions are displayed, and any outside those regions (such as where gaps would exist in the Atari version) are simply not drawn. Again, you'll probably have to witness this to know exactly what I mean.

For the first issue, perhaps explicit redrawing of the entire screen could help. This could be done automatically after unpausing, or perhaps a command in the toolbar below could be provided. In fact, this latter approach might also serve as a workaround for screen-corruption issues that might arise in the future.

For the second issue, it's probably a bit hairier. If you can isolate the Atari code that renders the mouse pointer into the virtual screen, you should be able to remove it entirely, or render it at fixed screen coordinates, rather than having it track the stylus. This might also be a good way to address my suggestion of having an image of the held item (if any), should you choose to implement that. This is an issue that will likely need attention even in the original CSBWin version as well, as when you get around to implementing the code which lets the locations of screen elements be user-defined, the Atari-rendered mouse cursor will be corrupted then, too. The best remedy I see for this is disabling the Atari cursor-rendering code as mentioned above, then writing a function to set the Windows cursor. It looks to me the way you do it now is you disable the Windows cursor in some manner (whether by assigning a fully-transparent cursor, or simply hiding it), then let the Atari-rendered one act take its place, as it follows the position of the mouse in Windows.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4319
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Post by Paul Stevens »

you disable the Windows cursor in some manner (whether by assigning a fully-transparent cursor, or simply hiding it), then let the Atari-rendered one act take its place,
Believe me......this is going to stay that way. I am amazed that I got that
to work and I ain't gonna try to change it.

Because of that, the cursor will be broken up if the pieces of the Atari
screen are rearranged, as they are on the PocketPC. Sorry. If you can
fix it, I will be happy to install your changes in the original code. But again,
I ain't gonna tackle it. I have no idea how it works now.

The other problems (image being stretched, mis-placed pieces, cursor appearing)
sound fixable, although any cursor problems are extremely complicated.
I'll probably look into them in the near future.
Post Reply

Return to “Chaos Strikes Back for Windows & Linux (CSBWin) / CSBuild”