**New Release** REALMS OF QUEST 3 (available for order!)

Discussion, Reviews & High-scores

Moderator: Moderators

User avatar
Schlowski
NoMess!
Posts: 893
Joined: Tue Jun 08, 2004 12:20 pm

Post by Schlowski »

For the 260HP bug - I encountered the same. It was always the 2nd and 3rd character which got such high HP's, the other ones where always ok.
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

If HP is measured as a 16-bit integer, it sounds somewhere you got a bit stuck. On the other hand I don't know if 260-256 = 4 HP would be very low for a starting character.
Anders Carlsson

Image Image Image Image Image
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

Schlowski wrote:For the 260HP bug - I encountered the same. It was always the 2nd and 3rd character which got such high HP's, the other ones where always ok.
For the life of me, I'm not seeing this happen at all -- either with the latest demo I uploaded here nor with my latest build.

Please let me know if it occurs for you with my latest build:

http://www.usaupload.net/d/4gvz5y5m31u

Thanks1
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

carlsson wrote:If HP is measured as a 16-bit integer, it sounds somewhere you got a bit stuck. On the other hand I don't know if 260-256 = 4 HP would be very low for a starting character.
Works fine for me though! But there must be reason why the others are experiencing this behavior.

I never put in a CLD at the start of my program, maybe that has something to do with it?
The Decimal flag controls how the 6502 adds and subtracts. If set, arithmetic is carried out in packed binary coded decimal. This flag is unchanged by interrupts and is unknown on power-up. The implication is that a CLD should be included in boot or interrupt coding.

http://www.6502.org/tutorials/6502opcodes.html#CLD
Are there any other things I should set at boot time, you think?
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
darkatx
Vic 20 Afficionado
Posts: 483
Joined: Wed Feb 04, 2009 2:17 pm
Location: Canada

Post by darkatx »

Yes, the 260 HP bug happened in my second character who was a female priest I believe?

I made another party instead and it wasn't an issue so I think its really intermittant at best.

Thanks for all the insights into the game...going to try out this new demo...what a holiday treat!!! :wink:
Learning all the time... :)
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

Schlowski wrote:For the 260HP bug - I encountered the same. It was always the 2nd and 3rd character which got such high HP's, the other ones where always ok.
I think I know what is going on here. Whenever I rolled my own characters, I always kept re-rolling until I got a high CONSTITUTION (in order to get high hit points), but what you guys are probably seeing is that you're actually keeping those characters with low constitution scores, case in point:

Code: Select all

CONBONUS:
		LDY #7		; constitution bonus
		LDA (PCHARLO),Y
		TAX
		LDA STATADJUST,X          ; ******* this could be 255 if X is from 0-6
		JMP ADDMAXHP

...

;********************************************************************

ADDMAXHP:
		STA MATHTEMP
		LDY #18
		JSR ADDCONT
		DEY
		LDA MATHTEMP
		JMP ADDCONT

;********************************************************************

ADDCONT:
		CLC
		ADC (PCHARLO),Y
		STA (PCHARLO),Y
		DEY
		LDA #0
		ADC (PCHARLO),Y        ; *******   Carry could be set if the previous ADC tried to "add" 255, thus producing a high hitpoint value
		STA (PCHARLO),Y
		RTS

...

STATADJUST:
	.byte 255,255,255,255,255,255,255	; 0-6   ; *******   where the "255" values are
	.byte 0,0,0		; 7-9
	.byte 1,1,1		; 10-12
	.byte 2,2,2		; 13-15
	.byte 3,3		; 16-17
	.byte 4			; 18
	.byte 5			; 19
	.byte 6			; 20
	.byte 7			; 21
	.byte 8			; 22
	.byte 9			; 23
	.byte 10		; 24
	.byte 11		; 25
	.byte 12		; 26
	.byte 13		; 27
	.byte 14		; 28
	.byte 15		; 29
	.byte 16		; 30
(parts with ; ******* represent where I think the bug might be occurring)

Any constitution of 0-6 means -1 hit points per level. While a value of 255 does technically mean -1, it will set the CARRY flag and then add a "1" to the high byte. This worked fine with making adjustments to 8 bit numbers (as with racial adjustments to STR, INT, WIS, etc) but I think this is producing some funny math when working with 16 bit.

Originally, the "255" did work for low CONSTITUTION scores because all the program did was ADC the base HP and CON bonuses into a single byte and I would anticipate 2 byte numbers later on. So after a few code revisions, I eliminated this original code and just JSRed to the routines that advance the character's level.

I'm not near my computer that can run VICE so I can't really make a test (I just logged on to my gmail and downloaded my backed up source code) but I suspect this is what is going on. Until I get back to my computer, you guys can confirm if a CONSTITUTION of 6 or lower produces unusually high hit point values if you want to.

If this is the case as I suspect, then I'll change my code to anticipate the "255" to represent negative values. Or I can do it the easy way and just make zero the harshest 'bonus' that you can get with a lower CONSTITUTION. I think I'll go with the latter--some of you then might ask "what is the difference between a 3 CONSTITUTION and a 7 CONSTITUTION then if they both get no hit point bonuses?" -- the difference is that a 3 CON will get poisoned more often than somebody with a 7 CON because of saving throws (vs CONSTITUTION).

Thanks!
Last edited by Ghislain on Mon May 18, 2009 6:54 am, edited 1 time in total.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

darkatx wrote:Yes, the 260 HP bug happened in my second character who was a female priest I believe?

I made another party instead and it wasn't an issue so I think its really intermittant at best.

Thanks for all the insights into the game...going to try out this new demo...what a holiday treat!!! :wink:
Thanks! I'll be fixing the demo shortly (see my post above)--so you better hold on to it in order to roll your 'cheat' characters for the full release in the future ;)

One thing I wanted to do for this game is to find something useful for every single one of the 6 basic characteristics (STR, INT, WIS, DEX, CON, CHA). Yes, even CHARISMA is essential, especially when using the GREET option as well as determining your saving throw VS charm attacks.

The game generates encounters based on how high a level your party is. Right now, my test party is comprised of characters who are levels 3-4.

One encounter that was particularly frustrating was 5 SPRITEs in the back and 10 FROST DWARFs in the front.

When using melee weapons, you can't attack the back row (missile weapons attack the back row first by default) and so my characters had to fight off the front row (monsters with pretty high hit points) while the SPRITEs in the back kept CHARMing my party members until they were all PARALYZED. SPRITEs only have one hit dice (1-8 hit points) but you're awarded 100 experience points because of this potentially deadly special attack.

That was a fun encounter -- although in fairness, I would have won if I had implemented the DISPEL MAGIC spell at the time (which is basically a "cure paralysis" spell). Or if I had 2 characters each armed with missile weapons that could decimate the back row... (there are some strategic elements to this game, even though the mechanics for monster combat are quite simple).

Just to let you guys know: the game will start generating 2 row monster encounters once the party's combined level total is 20.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
darkatx
Vic 20 Afficionado
Posts: 483
Joined: Wed Feb 04, 2009 2:17 pm
Location: Canada

Post by darkatx »

Just had another enjoyable outing with my newly formed party again and encountered the 261 error - this time a group of 10 gnomes laid waste to my party...lol...still fun and challenging which is what I like.

Oddly enough, my last character that received the 261 hit points died as if they had 6 hit points (as they should) - so its more of a display error due to high bit error...so in the end the math is right but the displayed hp math is wrong.

Still this game is loads of fun... :)
Learning all the time... :)
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

darkatx wrote:Oddly enough, my last character that received the 261 hit points died as if they had 6 hit points (as they should) - so its more of a display error due to high bit error...so in the end the math is right but the displayed hp math is wrong.
I think that's a second 'bug' -- the display is right, the code to deduct hit points from the 16 bit number is wrong.

Thanks for pointing this out... you're now part of the QA department :) It's good to get these errors sorted out, I want a quality product.

The following:

Code: Select all

		LDA (PCHARLO),Y
		SBC MATHTEMP
		STA (PCHARLO),Y
		DEY
		LDA (PCHARLO),Y
		SBC #0
		STA (PCHARLO),Y

		CMP #0
		BEQ @CHECKLO
		BPL @EXIT
@CHECKLO:
		INY
		LDA (PCHARLO),Y
		CMP #0
		BEQ @DEAD
		BMI @DEAD
		JMP @EXIT
@DEAD:
should be re-written as:

Code: Select all

		LDA (PCHARLO),Y
		SBC MATHTEMP
		STA (PCHARLO),Y
		DEY
		LDA (PCHARLO),Y
		SBC #0
		STA (PCHARLO),Y

		CMP #0
		BMI @DEAD                     ; ***** LINE SHOULD BE MOVED HERE
		BEQ @CHECKLO
		BPL @EXIT
@CHECKLO:
		INY
		LDA (PCHARLO),Y
		CMP #0
		BEQ @DEAD
		BNE @EXIT
@DEAD:
This was code that was written quite early in the development phase (written to check for HP deducted while walking through molten lava and/or losing 1 HP per movement round when a character is poisoned). This second bug would have definitely been discovered later on as the party's characters legitimately surpass 255 hits (maybe even 128 hits) and then get hit once only to die.

Of course, I still have to test this later on during the day, just quickly glancing at my source code.

As for being decimated by 10 gnomes -- maybe my game is unbalanced? Of course, I created 3 ogre fighters for the front line, and they really do absorb a lot of damage and dish it out as well--which allowed me to survive those early encounters. The demos should become easier as I implement spellcasting and you can cast spells that will help in those situations (the HASTE spell is pretty cool in itself -- multiple attacks per combat round). Glad you're having fun though!
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

Looks like I was correct in my assumptions, and here is the bug fixes to the latest demo:

http://www.usaupload.net/d/t61umisqx1u

(you can cast a few spells now, though I have quite a few more to program)

I'd like to thank everyone who pointed the bugs in my game. Hopefully, I will have a near bug-free version of Realms 3 when I finally put out the full beta.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

*** ANOTHER DEMO ***

Download it here: http://www.usaupload.net/d/bf1nrlyk06d

As always, you need 32K RAM expansion and you run it with the following:

LOAD"RQ4.PRG",8,1 (return)
NEW (return)
LOAD"RQ3.PRG",8 (return)
RUN (return)

You might want to check out the latest demo, I've programmed most of the spells now (all of them except for DIMENSION DOOR and WORD OF RECALL -- both of which are for teleportation)

Image

All of this hard work has been leading up to this: being able to cast a SLEEP spell and then watch several low hit dice monsters get taken out :)

While you can cast all of the spells at any time (provided you have enough spell points, etc), if you cast combat spells when you're not in combat, it will not do anything at all.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

I just finished programming the last of the spells.

Save for programming 4 magic items and the "quest" part of RofQ3, the game mechanics are more or less done. Sure, I might tweak things around a bit by creating different experience tables for the classes--but I am extremely close to having a complete game.

As well, I have 5141 bytes free to play around with now. So after the aforementioned items, I'll probably have at least 4700 bytes to add music and even more graphics if I'm so inclined (like those for the temple, dockyard, etc). I could even keep it under 3000 bytes free and I should be able to make a 32K cartridge version as well.

Realms of Quest III already has: 70 monsters, 8 races, 8 classes, 11 weapons, 8 types of armor, 13 magic items, 40 spells, 64x64 "world" map, 3D dunjons and it's going to have great music (which I will be doing soon).

That being said, I should not become too complacent about my sense of accomplishment so far, I've still quite a bit of work to do, so I'll continue to work a little bit at a time until I have everything finished.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
darkatx
Vic 20 Afficionado
Posts: 483
Joined: Wed Feb 04, 2009 2:17 pm
Location: Canada

Post by darkatx »

Everything played fine this demo...and the game is extremely challenging. :)

I like that the experience points are more individual based as opposed to group based which add to the character's individuality.

Also, the acquiring of gold is really hard due to such small amounts in the beginning. It seems the game leans towards going in with a party that is mostly unarmoured and lightly armed in order to keep emergency funds.

It'd be nice to be able to store 'extra' characters onto disk in order to swap out different classes or resurrect favourite characters when the party gains enough cash.

I like the idea of using the up and down arrows on the upper right menu to scroll - it'd be nice if you one could hit left or right arrow to toggle to the main character menu in the middle below and use up and down arrows to scroll thru the character menu as an alternate to strictly resorting to the 1 thru 6 keys.

I find Hobbits cannot be equipped with staffs if they are priests - is it something unique to hobbits about arming weapons? If so that is cool...adds to the party building strategy.

Will high level characters/monsters be capable of hitting 2 or 3 times in a single attack?

Really enjoy playing this demo...well done indeed! :D
Learning all the time... :)
User avatar
Ghislain
Realms of Quest
Posts: 1286
Joined: Sun Aug 08, 2004 12:54 am

Post by Ghislain »

darkatx wrote:Everything played fine this demo...and the game is extremely challenging. :)

I like that the experience points are more individual based as opposed to group based which add to the character's individuality.
Thanks!
Also, the acquiring of gold is really hard due to such small amounts in the beginning. It seems the game leans towards going in with a party that is mostly unarmoured and lightly armed in order to keep emergency funds.
As your party progresses in levels, the amount of gold found from defeated monsters will become greater (as well as magic items). I did build a party the other day (from scratch while testing on a real VIC-20) and I eventually equipped all of my fighting characters (the first 4 rows) with two-handed swords -- weapons that mete out the most damage.

I might change the starting gold to 1000, if only to give a chance to new players to provide better equipment to their party.
It'd be nice to be able to store 'extra' characters onto disk in order to swap out different classes or resurrect favourite characters when the party gains enough cash.
What I'll probably most likely do is to offer the option to save game through slots 1-8 when saving to disk -- but I'll implement this later on.
I like the idea of using the up and down arrows on the upper right menu to scroll - it'd be nice if you one could hit left or right arrow to toggle to the main character menu in the middle below and use up and down arrows to scroll thru the character menu as an alternate to strictly resorting to the 1 thru 6 keys.
I actually used to have this in earlier versions of my demos -- pressing left and right would scroll through characters 1-6 at the bottom of the screen. I took this out because it seemed a bit weird. To put this back in was easy enough -- I just referred to an older version of the source code and did a bit of copy and paste... and voila, done (it's back in).
I find Hobbits cannot be equipped with staffs if they are priests - is it something unique to hobbits about arming weapons? If so that is cool...adds to the party building strategy.
Weapons are restricted by class and by race. A staff sold at the stores is mostly human-sized. Even ogres have restrictions -- they are too clumsy to use missile weapons (at least those sold at the shoppe) and most armor (built for humans) won't fit them and they're limited to leather, studded leather and elfin chain mail.

All of this will be made clear when the game is 'officially' released with a word/pdf manual that will provide tables that explain all of the aspects about the game.
Will high level characters/monsters be capable of hitting 2 or 3 times in a single attack?

Really enjoy playing this demo...well done indeed! :D
Everything is pretty much based on single attacks. The really powerful monsters will be able to mete out quite a bit of damage. Some monsters get 'special' attacks (such as energy drain which is a really big heartbreaker).

No demo for today -- the next upload here will be the first BETA version with all of the basic game mechanics + quest completed. During that time when BETA is tested by you guys, I'll be adding sound, music and other finishing touches to the game.
Last edited by Ghislain on Thu May 21, 2009 4:18 am, edited 1 time in total.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
matsondawson
The Most Noble Order of Denial
Posts: 343
Joined: Fri May 01, 2009 4:44 pm

Post by matsondawson »

Stupid question time, how do i get off the character screen with the castle?
Post Reply