*ALL PHYSICAL COPIES ARE SOLD OUT*: REALMS OF QUEST V (Digital version is available)
Moderator: Moderators
Re: Work in progress: REALMS OF QUEST V
I also changed the logo so that the Q is a bit more obvious that it's a Q:
Last edited by Ghislain on Fri Feb 10, 2017 10:37 pm, edited 1 time in total.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
Re: Work in progress: REALMS OF QUEST V
I'm grateful that there is a ".include" feature with the CA65 compiler that I'm using. It's certainly very useful in the context of making a multi-program file game like this one.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
- majikeyric
- Vic 20 Afficionado
- Posts: 351
- Joined: Fri Oct 24, 2014 2:08 pm
- Website: http://majikeyric.free.fr
- Location: France
Re: Work in progress: REALMS OF QUEST V
Thanks for sharing your development diary
Re: Work in progress: REALMS OF QUEST V
Thanks. Recently I have been organizing my source code files in such a way that if the memory locations change in one .s file (that contain essential subroutines), the headers are easily updated so that they can be JMPed or JSRed from a separate .s file.majikeyric wrote:Thanks for sharing your development diary
Realms V will be an ML version of the Realms IV game system (expanded for additional races, classes, items and monsters). Since Realms IV was part ML and part BASIC, I'm revisiting the Realms III source code (100% pure ML) for re-use.
The game world will be around the following size:
World map - 72900 tile units
City maps - 65536 tile units
Dungeon maps - 12500 space units
Total World size = 150936 units
It's certainly quite a few steps above it's predecessors. I'd like to fit everything under 4 disk sides as well keeping the total number of files to under 288 so that it can fit on a single 3.5" floppy as well (and the D81 file can also be easily used with an emulator and SD card reader).
"A slave is one who waits for someone to come and free him." -- Ezra Pound
Re: Work in progress: REALMS OF QUEST V
Mike has been great in providing code that uses raster interrupts to change the border and background color on the fly and I was able to integrate it with the source code for my game.
That being said, my plan to take images off the web, convert them to Koala Pad C64 format and then convert them into Vic-20 multicolor custom chars produced not very good results (see below). Mike has been kind enough to offer a tool that he will write where I can import images comprised of solid colors (in a non-dithered context).
Not only the game will show a 44*88 (11*11 char) multicolor image in the upper left corner of the screen, it will also display 4 colors that are completely independent of the rest of the screen's background and border colors. As well, Mike said that his image importing routine would also support displaying unique CHAR colors for the 121 individual custom chars.
That being said, my plan to take images off the web, convert them to Koala Pad C64 format and then convert them into Vic-20 multicolor custom chars produced not very good results (see below). Mike has been kind enough to offer a tool that he will write where I can import images comprised of solid colors (in a non-dithered context).
Not only the game will show a 44*88 (11*11 char) multicolor image in the upper left corner of the screen, it will also display 4 colors that are completely independent of the rest of the screen's background and border colors. As well, Mike said that his image importing routine would also support displaying unique CHAR colors for the 121 individual custom chars.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
Re: Work in progress: REALMS OF QUEST V
I achieved a milestone today -- the program now displays the entire party (10 characters) on the main game screen (so this is no longer a mock display that you see here). The information is plentiful:
-Character # (cyan)
-Character Name (white)
-Level-Up Indicator (not shown, but it appears as a + or ++ below the character # in cyan)
-Hit Points (yellow)
-Health Status (red)
-Spell Points (blue)
-Alignment (green)
-Sex (green)
-Race (green)
-Class(green)
The game program listing is now about 2100 lines of assembly language.
-Character # (cyan)
-Character Name (white)
-Level-Up Indicator (not shown, but it appears as a + or ++ below the character # in cyan)
-Hit Points (yellow)
-Health Status (red)
-Spell Points (blue)
-Alignment (green)
-Sex (green)
-Race (green)
-Class(green)
The game program listing is now about 2100 lines of assembly language.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
Re: Work in progress: REALMS OF QUEST V
looks impressive - especially with the imported graphics
..not sure purple is the best colour choice for the borders - maybe red?
..not sure purple is the best colour choice for the borders - maybe red?
Re: Work in progress: REALMS OF QUEST V
Thanks. I used purple because red had already been used in Realms IV.beamrider wrote:looks impressive - especially with the imported graphics
..not sure purple is the best colour choice for the borders - maybe red?
How about this:
"A slave is one who waits for someone to come and free him." -- Ezra Pound
Re: Work in progress: REALMS OF QUEST V
Yes better IMO
Re: Work in progress: REALMS OF QUEST V
These past couple of days I converted R'Zo's music player to work with the IRQ so that his music creations can play in the background. Mike also contributed a joystick routine.
Today I worked on the player character cursor selection interface. In the screen posted here, player char #3 is selected. I always like to make sure that my games are as intuitive and as user-friendly as possible.
Today I worked on the player character cursor selection interface. In the screen posted here, player char #3 is selected. I always like to make sure that my games are as intuitive and as user-friendly as possible.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
-
- Vic 20 Amateur
- Posts: 61
- Joined: Thu Sep 22, 2016 9:12 pm
- Occupation: VIC porter
Re: Work in progress: REALMS OF QUEST V
The music in Realms III put me off my first stab at the game. Noticed the music toggle option later; I hope it makes a comeback. (No offense to any past or present musician, it's just the VIC off-tune notes that irk me.)Ghislain wrote:These past couple of days I converted R'Zo's music player to work with the IRQ so that his music creations can play in the background.
Thanks for the games and the posts about them!
- Mike
- Herr VC
- Posts: 4849
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Re: Work in progress: REALMS OF QUEST V
They're really only *grossly* off-tune if you stick to the table in the user guide.Vic Porter wrote:it's just the VIC off-tune notes that irk me.
If you recalculate the register values from the tempered scale, you arrive at:
Code: Select all
C 255 191 223
C# 134 195 225
D 141 198 226
D# 147 201 228
E 153 204 230
F 159 207 231
F# 164 210 232
G 170 212 234
G# 174 215 235
A 179 217 236
A# 183 219 237
H 187 221 238
C 191 223 239
Note though the values above 230 in the third octave (E-3) are still unusable - there the resolution of the register values simply drops below a bearable threshold and most intervals sound wrong.
The value 255 for C in the first octave is correct though. 255 actually produces the lowest note for a given voice.
P.S. in an older thread I calculated more accurate register values for PAL and NTSC with the standard A at 440 Hz. The table above is a compromise between PAL and NTSC which actually also aims to minimize the interval errors.
Re: Work in progress: REALMS OF QUEST V
Mike wrote:They're really only *grossly* off-tune if you stick to the table in the user guide.Vic Porter wrote:it's just the VIC off-tune notes that irk me.
If you recalculate the register values from the tempered scale, you arrive at:
Those are only slightly de-tuned regarding the base frequency - on PAL all notes generally are a quarter-tone too high, on NTSC they're a quarter-ton too low. But this would only be relevant if the VIC-20 was supposed to play alongside an orchestra or for someone with absolute hearing.Code: Select all
C 255 191 223 C# 134 195 225 D 141 198 226 D# 147 201 228 E 153 204 230 F 159 207 231 F# 164 210 232 G 170 212 234 G# 174 215 235 A 179 217 236 A# 183 219 237 H 187 221 238 C 191 223 239
Note though the values above 230 in the third octave (E-3) are still unusable - there the resolution of the register values simply drops below a bearable threshold and most intervals sound wrong.
The value 255 for C in the first octave is correct though. 255 actually produces the lowest note for a given voice.
P.S. in an older thread I calculated more accurate register values for PAL and NTSC with the standard A at 440 Hz. The table above is a compromise between PAL and NTSC which actually also aims to minimize the interval errors.
Thank you, I will try this out.
R'zo
I do not believe in obsolete...
I do not believe in obsolete...
Re: Work in progress: REALMS OF QUEST V
I happen to like the way the VIC-I chip produces sound. While I always insist on putting music in my RofQ games (for the sake of providing atmosphere), there is always the option to turn it on or off built in.
For the past few days I've been working on the character sheet display (see below) -- for which I am only partially finished. A lot of the information displayed will be in color -- to match what is shown on the main game screen (purple used for hit points, for example). I want the game to be as intuitive and as user friendly as possible. It will be very easy to know what the ALIGNMENT+SEX+RACE+CLASS symbols (in green) mean because the character sheet will also provide the text for what they mean.
If this was a game programmed in BASIC, producing this would only take me a matter of minutes. This is a very data-driven game and I'm basically converting the Realms 4 game system (that's written in BASIC) and translating it into ML. But I'm creating the subroutines and data management that can be reused to build a strong base for the CORE module program that will be the heart of the game engine.
But the major advantage of using ML in this case is to use Mike's routines that manipulate the display registers in real time and also the bigger 23*26 screen. And of course it goes without saying -- speed. Realms 4 had some ML to speed up some things but the game just does not feel as elegant as it's predecessor (but the game system had far more features and data).
And because I'm using a resized screen, I cannot use the KERNAL print routines. I'm aware that the source code for the INFOCOM interpreter that allows you to display to the screen is available here ( http://www.sleepingelephant.com/ipw-web ... php?t=3661 ) but I need the ability to move the cursor precisely where I want it to be (I don't see it handle cursor ASC codes) as well as being able to print numbers to the screen (for which I do use the KERNAL -- I print to a temporary part of the screen and then "cut+paste" to the new part of the screen. If I am incorrect, feel free to point this out. I need to be able to print out single byte, double byte and floating point numbers which I already did in Realms 3 by calling the BASIC KERNAL.
For the past few days I've been working on the character sheet display (see below) -- for which I am only partially finished. A lot of the information displayed will be in color -- to match what is shown on the main game screen (purple used for hit points, for example). I want the game to be as intuitive and as user friendly as possible. It will be very easy to know what the ALIGNMENT+SEX+RACE+CLASS symbols (in green) mean because the character sheet will also provide the text for what they mean.
If this was a game programmed in BASIC, producing this would only take me a matter of minutes. This is a very data-driven game and I'm basically converting the Realms 4 game system (that's written in BASIC) and translating it into ML. But I'm creating the subroutines and data management that can be reused to build a strong base for the CORE module program that will be the heart of the game engine.
But the major advantage of using ML in this case is to use Mike's routines that manipulate the display registers in real time and also the bigger 23*26 screen. And of course it goes without saying -- speed. Realms 4 had some ML to speed up some things but the game just does not feel as elegant as it's predecessor (but the game system had far more features and data).
And because I'm using a resized screen, I cannot use the KERNAL print routines. I'm aware that the source code for the INFOCOM interpreter that allows you to display to the screen is available here ( http://www.sleepingelephant.com/ipw-web ... php?t=3661 ) but I need the ability to move the cursor precisely where I want it to be (I don't see it handle cursor ASC codes) as well as being able to print numbers to the screen (for which I do use the KERNAL -- I print to a temporary part of the screen and then "cut+paste" to the new part of the screen. If I am incorrect, feel free to point this out. I need to be able to print out single byte, double byte and floating point numbers which I already did in Realms 3 by calling the BASIC KERNAL.
"A slave is one who waits for someone to come and free him." -- Ezra Pound