*ALL PHYSICAL COPIES ARE SOLD OUT*: REALMS OF QUEST V (Digital version is available)

Discussion, Reviews & High-scores

Moderator: Moderators

User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: Work in progress: REALMS OF QUEST V

Post by eslapion »

TNT wrote:
eslapion wrote:Also, the cartridge removes the need for additional hardware. No drive or expansion is required.
Does B-B have flash for saving the game progress?
As it is, the Behr-Bonz doesn't need flash but it doesn't use the IO2 memory space or any of the 3k RAM expansion regions so adding a 2kBytes of NVRAM in some of the regions is not a problem.

If modified as suggested above, it would be possible to add 8k of NVRAM in the BLK1 or BLK5 space. ... or flash is there is such small sizes of flash memory available.

I believe the Megacart has a similar feature.
Be normal.
TNT
Vic 20 Hobbyist
Posts: 121
Joined: Wed Apr 29, 2009 5:46 am

Re: Work in progress: REALMS OF QUEST V

Post by TNT »

As the saving routine would be custom one in this case, you could also add serial nvram/flash interface. Slower than memory mapped one, but still much faster than disk.
User avatar
tokra
Vic 20 Scientist
Posts: 1120
Joined: Tue Apr 27, 2010 5:32 pm
Location: Scheessel, Germany

Re: Work in progress: REALMS OF QUEST V

Post by tokra »

Why not use the existing UltiMem-cartridge for such a project? It is an existing and working platform that provides everything a game like this would need. 8 MB of Flash-ROM and 1 MB of RAM. Hacking together yet-another-cart just seems overkill to me.

Anyways, first the game should be completed. Runnnig this from an SD2IEC or a 1581 will probably be just as good.
User avatar
Ghislain
Realms of Quest
Posts: 1279
Joined: Sun Aug 08, 2004 12:54 am

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

eslapion wrote:
Ghislain wrote:How difficult would it be to port the game to cartridge format?
Do you mean altering the software so it complies with the requirements of the hardware or taking the adapted software and putting it on the cart?

If the software is already adapted then it really takes a few minutes to make the cart.
I've been designing this game from the start to work with SD2IEC directory (or D81) in mind and adding disk D64 support at the end. So to convert it to Behr Bonz format it would not be a simple thing to do.
The Behr-Bonz presents itself in the form of 128 "windows" of 16KBytes each. At power up, window no. 0 is active and IO3 awaits a poke. Once a specific windows is selected by poking a number to IO3, the window is locked (IO3 becomes 'deaf' to any subsequent pokes) and the VIC-20 is reset to start the selected game. The window stays locked until a 'reset to menu' button is pressed is the VIC is powered off.

Windows are presented to the VIC-20 by having the lower half (first 8k) visible in BLK2 and mirrored in BLK5. The upper half of the window is visible in BLK3 and mirrored in BLK1.

If a Behr-Bonz was to be altered to carry a large game then I assume the cart would still present windows 0 at power-up but the 'locking' system would be removed so the software can freely choose whatever window it wants access to at any time. Also, the mirroring of visible halves of the window would become unnecessary. Each window would therefore become visible in BLK2 and BLK3, just like Scott Adams games are presently organised.

Added edit: The resetting of the VIC-20 at each change of the window would obviously also be removed.

The question is, do you also need extra RAM or does having instant access to any part of the game code relieves the need for the 32K of RAM ? I suppose it is still possible to have 8k of RAM in BLK1 or even in the 3K expansion area.

Is it even feasible to organise the game in a number of 16k sized windows ?
The game will have around 250 files -- a majority of which will be 1KB image files that you've seen me post here. And because the number of image files exceeds the 128 windows that BB has, this wouldn't work with that either. On top of that, Realms 5 has a 20KB "core" engine (loaded at memory location 12288) that handles commonly used routines like displaying text to the screen, math functions, inventory management, spellcasting, displaying graphics, loading files. Basically, this game is a 650KB block of virtual memory where items are loaded into the non-core portions of RAM on an on-needed basis. 650KB is what I chose because that encompasses about 4 floppy disk sides -- the same as Ultima IV.

To redesign the game into 128 16K sized windows would require a huge effort to reprogram the core engine (make it smaller to make it fit outside the 16K window) and what to do with the 1KB images? For example, when the game generates an encounter, 3 monster images are chosen at random. So the data that is to be used on an on-needed basis has to be dynamically accessed.

The game was designed with 32KB RAM expansion from the start. Much too late to restart at this point with the 20KB core engine practically almost finished now.
orion70 wrote:BTW, it would come handy if the digital copy will be organized in a single D81 or a SD(2IEC) directory, avoiding disk swapping, autoswap.lst, etcetera.
As for cart vs disk, I feel the former would be effectively used to play the game, whereas disks in a jewel case are more for collectible objects only (e.g., I play Theatre of War via SD2IEC and read a A4 print of the manual, but keep the disk in my showcase :)). Also, I guess a cartridge would be far more expensive.
I figure that there will be about 250 files for the entire game which will fit onto a single D81 image which can contain up to 288 files.

As cool as it would be to have a cartridge version of the game, I've been playtesting this game a lot on a VIC-20 with uIEC and I've found that the game loads fairly quickly with SoftJiffy enabled. While the game supports a single 1541 disk drive, the recommended set-up in order of playability and performance will be:

1. uIEC or SD2IEC
2. 1581 disk drive
3. Two 1541 disk drives (there will be some disk swapping with this)
4. Single 1541 disk drive (more frequent disk swapping)
tokra wrote:Why not use the existing UltiMem-cartridge for such a project? It is an existing and working platform that provides everything a game like this would need. 8 MB of Flash-ROM and 1 MB of RAM. Hacking together yet-another-cart just seems overkill to me.

Anyways, first the game should be completed. Runnnig this from an SD2IEC or a 1581 will probably be just as good.
The game officially requires 32KB memory expansion. I thought about making the requirement 35KB (to use memory starting at 1024) but decided against it. Now I could make the game detect extra memory expansion at 1024 as well as Ultimem so that the game could "remember" what it loaded from disk so that it doesn't have to re-load an item it had already read from disk (or SD card) previously. But I'll get to that later (if I ever decide to provide support for even more additional RAM).

Pic of the day:
realms5.jpg
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: Work in progress: REALMS OF QUEST V

Post by eslapion »

Ghislain wrote:The game will have around 250 files -- a majority of which will be 1KB image files that you've seen me post here. And because the number of image files exceeds the 128 windows that BB has, this wouldn't work with that either. On top of that, Realms 5 has a 20KB "core" engine (loaded at memory location 12288) that handles commonly used routines like displaying text to the screen, math functions, inventory management, spellcasting, displaying graphics, loading files. Basically, this game is a 650KB block of virtual memory where items are loaded into the non-core portions of RAM on an on-needed basis. 650KB is what I chose because that encompasses about 4 floppy disk sides -- the same as Ultima IV.

To redesign the game into 128 16K sized windows would require a huge effort to reprogram the core engine (make it smaller to make it fit outside the 16K window) and what to do with the 1KB images? For example, when the game generates an encounter, 3 monster images are chosen at random. So the data that is to be used on an on-needed basis has to be dynamically accessed.

The game was designed with 32KB RAM expansion from the start. Much too late to restart at this point with the 20KB core engine practically almost finished now.
It is perfectly possible to have the Behr-Bonz hardware present 256 windows of 8k each visible at the BLK5 area and leave 24k of RAM expansion (for the game engine) at BLK 1, 2 and 3.

The added benefit is if you disable the game, the cartridge becomes a standard 24k RAM expansion.
Last edited by eslapion on Fri Jun 09, 2017 10:02 am, edited 1 time in total.
Be normal.
User avatar
Ghislain
Realms of Quest
Posts: 1279
Joined: Sun Aug 08, 2004 12:54 am

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

R'zo wrote:If you decide you need an artist I can recommend someone who is great at this sort of thing but i am sure would love to do it as well.
I spend about 60-90 minutes a day to produce about 4 monster images. I have .bat files that facilitates this process which opens 3 instances of xvic, GIMP and 2 folders along with NotePad++ from where I'll do my work. I almost have it down to doing this in an assembly line fashion. I source an image from Google images (example I search for "Kobold D&D"), find an image that I like, play around with the brightness-contrast levels, resize it down to 44*88 grayscale, export it to PGM format. Then use PGM IMPORT to convert it to MG format, then try various colors until I get something that I like or is at least presentable. I then output the memory contents of the image to a .txt file by "printing" the values from VICE, remove excess spacing and the like, copy-paste it into a source code file, modify the compile script, compile all the source code to integrate the new image(s) into the game files and then view the finished results into the game running on an emulator.

I've done about 140 total images now (which is getting pretty close to about half of the graphical content of the game). I'm certain that there are people out there who could produce far better graphics than I could. The main reason why I'm taking this part of the game production myself is because I want a huge number of graphic images. And I'd hate to tell somebody: "Hey, I need all of the 139 monster image portraits completed so I can start working on the combat engine as soon as possible". It would have definitely been easier to delegate this part of the game to somebody else for sure (and the results would have been better) while just being happy with using placeholders while I chomped away working on the combat engine (I haven't touched any real programming on the game for a few weeks now, I've probably already forgotten how much of my game engine works now).

Thank you very much for offering to find a graphic artist -- I think I'll just keep doing the graphics work. It comes down to quality vs quantity -- I've chosen the emphasize the latter while sacrificing a little bit of the former.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
Ghislain
Realms of Quest
Posts: 1279
Joined: Sun Aug 08, 2004 12:54 am

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

For those who are curious about such things, this is the compile.bat file that I use to compile all of the files from source to binary that are used in the game:

Code: Select all

REM #### Male Player Portraits ####
ca65.exe --cpu 6502 --listing rq5race0a6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0a.6200 rq5race0a6200.o 
ca65.exe --cpu 6502 --listing rq5race0b6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0b.6200 rq5race0b6200.o 
ca65.exe --cpu 6502 --listing rq5race0c6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0c.6200 rq5race0c6200.o 
ca65.exe --cpu 6502 --listing rq5race0d6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0d.6200 rq5race0d6200.o 
ca65.exe --cpu 6502 --listing rq5race0e6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0e.6200 rq5race0e6200.o 
ca65.exe --cpu 6502 --listing rq5race0f6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0f.6200 rq5race0f6200.o 
ca65.exe --cpu 6502 --listing rq5race0g6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0g.6200 rq5race0g6200.o 
ca65.exe --cpu 6502 --listing rq5race0h6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0h.6200 rq5race0h6200.o 
ca65.exe --cpu 6502 --listing rq5race0i6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0i.6200 rq5race0i6200.o 
ca65.exe --cpu 6502 --listing rq5race0j6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0j.6200 rq5race0j6200.o 
ca65.exe --cpu 6502 --listing rq5race0k6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0k.6200 rq5race0k6200.o 
ca65.exe --cpu 6502 --listing rq5race0l6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0l.6200 rq5race0l6200.o 
ca65.exe --cpu 6502 --listing rq5race0m6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0m.6200 rq5race0m6200.o 
ca65.exe --cpu 6502 --listing rq5race0n6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0n.6200 rq5race0n6200.o
ca65.exe --cpu 6502 --listing rq5race0o6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0o.6200 rq5race0o6200.o
ca65.exe --cpu 6502 --listing rq5race0p6200.s
ld65.exe -C vic20.cfg -o work\rq5.race0p.6200 rq5race0p6200.o

REM #### Female Player Portraits ####
ca65.exe --cpu 6502 --listing rq5race1a6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1a.6200 rq5race1a6200.o 
ca65.exe --cpu 6502 --listing rq5race1b6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1b.6200 rq5race1b6200.o 
ca65.exe --cpu 6502 --listing rq5race1c6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1c.6200 rq5race1c6200.o
ca65.exe --cpu 6502 --listing rq5race1d6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1d.6200 rq5race1d6200.o
ca65.exe --cpu 6502 --listing rq5race1e6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1e.6200 rq5race1e6200.o
ca65.exe --cpu 6502 --listing rq5race1f6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1f.6200 rq5race1f6200.o 
ca65.exe --cpu 6502 --listing rq5race1g6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1g.6200 rq5race1g6200.o 
ca65.exe --cpu 6502 --listing rq5race1h6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1h.6200 rq5race1h6200.o 
ca65.exe --cpu 6502 --listing rq5race1i6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1i.6200 rq5race1i6200.o 
ca65.exe --cpu 6502 --listing rq5race1j6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1j.6200 rq5race1j6200.o 
ca65.exe --cpu 6502 --listing rq5race1k6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1k.6200 rq5race1k6200.o 
ca65.exe --cpu 6502 --listing rq5race1l6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1l.6200 rq5race1l6200.o 
ca65.exe --cpu 6502 --listing rq5race1m6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1m.6200 rq5race1m6200.o 
ca65.exe --cpu 6502 --listing rq5race1n6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1n.6200 rq5race1n6200.o 
ca65.exe --cpu 6502 --listing rq5race1o6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1o.6200 rq5race1o6200.o 
ca65.exe --cpu 6502 --listing rq5race1p6200.s
ld65.exe -C vic20.cfg -o work\rq5.race1p.6200 rq5race1p6200.o 

REM #### Tiles ####
ca65.exe --cpu 6502 --listing rq5tiles6200.s
ld65.exe -C vic20.cfg -o work\rq5.tiles.6200 rq5tiles6200.o 
ca65.exe --cpu 6502 --listing rq5world40960.s
ld65.exe -C vic20.cfg -o work\rq5.world.40960 rq5world40960.o 
ca65.exe --cpu 6502 --listing rq5ctiles12000.s
ld65.exe -C vic20.cfg -o work\rq5.ctiles.12000 rq5ctiles12000.o 

REM #### Fonts ####
ca65.exe --cpu 6502 --listing rq5font05120.s
ld65.exe -C vic20.cfg -o work\rq5.font0.5120 rq5font05120.o
ca65.exe --cpu 6502 --listing rq5font15120.s
ld65.exe -C vic20.cfg -o work\rq5.font1.5120 rq5font15120.o 
ca65.exe --cpu 6502 --listing rq5font25120.s
ld65.exe -C vic20.cfg -o work\rq5.font2.5120 rq5font25120.o 
ca65.exe --cpu 6502 --listing rq5font35120.s
ld65.exe -C vic20.cfg -o work\rq5.font3.5120 rq5font35120.o 

REM #### Data Files ####
ca65.exe --cpu 6502 --listing rq5class38512.s
ld65.exe -C vic20.cfg -o work\rq5.class.38512 rq5class38512.o 
ca65.exe --cpu 6502 --listing rq5spells830.s
ld65.exe -C vic20.cfg -o work\rq5.spells.830 rq5spells830.o 

REM #### CASTLE FILES ####
ca65.exe --cpu 6502 --listing rq5casgra41932.s
ld65.exe -C vic20.cfg -o work\rq5.casgra.41932 rq5casgra41932.o 
ca65.exe --cpu 6502 --listing rq5casgr040960.s
ld65.exe -C vic20.cfg -o work\rq5.casgr0.40960 rq5casgr040960.o 
ca65.exe --cpu 6502 --listing rq5casgr140960.s
ld65.exe -C vic20.cfg -o work\rq5.casgr1.40960 rq5casgr140960.o 
ca65.exe --cpu 6502 --listing rq5casgr240960.s
ld65.exe -C vic20.cfg -o work\rq5.casgr2.40960 rq5casgr240960.o 

REM #### Other Game Program Files ####
ca65.exe --cpu 6502 --listing rq5load4720.s
ld65.exe -C vic20.cfg -o work\rq5.load.4720 rq5load4720.o 

ca65.exe --cpu 6502 --listing rq5rapal32512.s
ld65.exe -C vic20.cfg -o work\rq5.rapal.32512 rq5rapal32512.o 

ca65.exe --cpu 6502 --listing rq5rantsc32512.s
ld65.exe -C vic20.cfg -o work\rq5.rantsc.32512 rq5rantsc32512.o 

ca65.exe --cpu 6502 --listing rq5menu7172.s
ld65.exe -C vic20.cfg -o work\rq5.menu.7172 rq5menu7172.o 

ca65.exe --cpu 6502 --listing rq5cast7172.s
ld65.exe -C vic20.cfg -o work\rq5.cast.7172 rq5cast7172.o 

ca65.exe --cpu 6502 --listing rq5land7172.s
ld65.exe -C vic20.cfg -o work\rq5.land.7172 rq5land7172.o 

ca65.exe --cpu 6502 --listing rq5core12288.s
ld65.exe -C vic20.cfg -o work\rq5.core.12288 rq5core12288.o 

REM #### Combat & Combat Graphics Files ####
ca65.exe --cpu 6502 --listing rq5combat40960.s
ld65.exe -C vic20.cfg -o work\rq5.combat.40960 rq5combat40960.o
ca65.exe --cpu 6502 --listing rq5monsaa48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsaa.48154 rq5monsaa48154.o 
ca65.exe --cpu 6502 --listing rq5monsab48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsab.48154 rq5monsab48154.o 
ca65.exe --cpu 6502 --listing rq5monsac48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsac.48154 rq5monsac48154.o 
ca65.exe --cpu 6502 --listing rq5monsad48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsad.48154 rq5monsad48154.o 
ca65.exe --cpu 6502 --listing rq5monsae48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsae.48154 rq5monsae48154.o 
ca65.exe --cpu 6502 --listing rq5monsaf48154.s
ld65.exe -C vic20.cfg -o work\rq5.monsaf.48154 rq5monsaf48154.o 
ca65.exe --cpu 6502 --listing rq5monsag48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsag.48154 rq5monsag48154.o
ca65.exe --cpu 6502 --listing rq5monsah48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsah.48154 rq5monsah48154.o
ca65.exe --cpu 6502 --listing rq5monsai48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsai.48154 rq5monsai48154.o
ca65.exe --cpu 6502 --listing rq5monsaj48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsaj.48154 rq5monsaj48154.o
ca65.exe --cpu 6502 --listing rq5monsak48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsak.48154 rq5monsak48154.o
ca65.exe --cpu 6502 --listing rq5monsal48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsal.48154 rq5monsal48154.o
ca65.exe --cpu 6502 --listing rq5monsam48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsam.48154 rq5monsam48154.o
ca65.exe --cpu 6502 --listing rq5monsan48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsan.48154 rq5monsan48154.o
ca65.exe --cpu 6502 --listing rq5monsao48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsao.48154 rq5monsao48154.o
ca65.exe --cpu 6502 --listing rq5monsap48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsap.48154 rq5monsap48154.o
ca65.exe --cpu 6502 --listing rq5monsba48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsba.48154 rq5monsba48154.o
ca65.exe --cpu 6502 --listing rq5monsbb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbb.48154 rq5monsbb48154.o
ca65.exe --cpu 6502 --listing rq5monsbc48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbc.48154 rq5monsbc48154.o
ca65.exe --cpu 6502 --listing rq5monsbd48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbd.48154 rq5monsbd48154.o
ca65.exe --cpu 6502 --listing rq5monsbe48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbe.48154 rq5monsbe48154.o
ca65.exe --cpu 6502 --listing rq5monsbf48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbf.48154 rq5monsbf48154.o
ca65.exe --cpu 6502 --listing rq5monsbg48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbg.48154 rq5monsbg48154.o
ca65.exe --cpu 6502 --listing rq5monsbh48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbh.48154 rq5monsbh48154.o
ca65.exe --cpu 6502 --listing rq5monsbi48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbi.48154 rq5monsbi48154.o
ca65.exe --cpu 6502 --listing rq5monsbj48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbj.48154 rq5monsbj48154.o
ca65.exe --cpu 6502 --listing rq5monsbk48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbk.48154 rq5monsbk48154.o
ca65.exe --cpu 6502 --listing rq5monsbl48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbl.48154 rq5monsbl48154.o
ca65.exe --cpu 6502 --listing rq5monsbm48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbm.48154 rq5monsbm48154.o
ca65.exe --cpu 6502 --listing rq5monsbn48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbn.48154 rq5monsbn48154.o
ca65.exe --cpu 6502 --listing rq5monsbo48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbo.48154 rq5monsbo48154.o
ca65.exe --cpu 6502 --listing rq5monsbp48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsbp.48154 rq5monsbp48154.o
ca65.exe --cpu 6502 --listing rq5monsca48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsca.48154 rq5monsca48154.o
ca65.exe --cpu 6502 --listing rq5monscb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscb.48154 rq5monscb48154.o
ca65.exe --cpu 6502 --listing rq5monscc48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscc.48154 rq5monscc48154.o
ca65.exe --cpu 6502 --listing rq5monscd48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscd.48154 rq5monscd48154.o
ca65.exe --cpu 6502 --listing rq5monsce48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsce.48154 rq5monsce48154.o
ca65.exe --cpu 6502 --listing rq5monscf48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscf.48154 rq5monscf48154.o
ca65.exe --cpu 6502 --listing rq5monscg48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscg.48154 rq5monscg48154.o
ca65.exe --cpu 6502 --listing rq5monsch48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsch.48154 rq5monsch48154.o
ca65.exe --cpu 6502 --listing rq5monsci48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsci.48154 rq5monsci48154.o
ca65.exe --cpu 6502 --listing rq5monscj48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscj.48154 rq5monscj48154.o
ca65.exe --cpu 6502 --listing rq5monsck48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsck.48154 rq5monsck48154.o
ca65.exe --cpu 6502 --listing rq5monscl48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscl.48154 rq5monscl48154.o
ca65.exe --cpu 6502 --listing rq5monscm48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscm.48154 rq5monscm48154.o
ca65.exe --cpu 6502 --listing rq5monscn48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscn.48154 rq5monscn48154.o
ca65.exe --cpu 6502 --listing rq5monsco48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsco.48154 rq5monsco48154.o
ca65.exe --cpu 6502 --listing rq5monscp48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monscp.48154 rq5monscp48154.o
ca65.exe --cpu 6502 --listing rq5monsda48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsda.48154 rq5monsda48154.o
ca65.exe --cpu 6502 --listing rq5monsdb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdb.48154 rq5monsdb48154.o
ca65.exe --cpu 6502 --listing rq5monsdc48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdc.48154 rq5monsdc48154.o
ca65.exe --cpu 6502 --listing rq5monsdd48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdd.48154 rq5monsdd48154.o
ca65.exe --cpu 6502 --listing rq5monsde48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsde.48154 rq5monsde48154.o
ca65.exe --cpu 6502 --listing rq5monsdf48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdf.48154 rq5monsdf48154.o
ca65.exe --cpu 6502 --listing rq5monsdg48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdg.48154 rq5monsdg48154.o
ca65.exe --cpu 6502 --listing rq5monsdh48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdh.48154 rq5monsdh48154.o
ca65.exe --cpu 6502 --listing rq5monsdi48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdi.48154 rq5monsdi48154.o
ca65.exe --cpu 6502 --listing rq5monsdj48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdj.48154 rq5monsdj48154.o
ca65.exe --cpu 6502 --listing rq5monsdk48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdk.48154 rq5monsdk48154.o
ca65.exe --cpu 6502 --listing rq5monsdl48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdl.48154 rq5monsdl48154.o
ca65.exe --cpu 6502 --listing rq5monsdm48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdm.48154 rq5monsdm48154.o
ca65.exe --cpu 6502 --listing rq5monsdn48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdn.48154 rq5monsdn48154.o
ca65.exe --cpu 6502 --listing rq5monsdo48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdo.48154 rq5monsdo48154.o
ca65.exe --cpu 6502 --listing rq5monsdp48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsdp.48154 rq5monsdp48154.o
ca65.exe --cpu 6502 --listing rq5monsea48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsea.48154 rq5monsea48154.o
ca65.exe --cpu 6502 --listing rq5monseb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monseb.48154 rq5monseb48154.o
ca65.exe --cpu 6502 --listing rq5monsec48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsec.48154 rq5monsec48154.o
ca65.exe --cpu 6502 --listing rq5monsed48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsed.48154 rq5monsed48154.o
ca65.exe --cpu 6502 --listing rq5monsee48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsee.48154 rq5monsee48154.o
ca65.exe --cpu 6502 --listing rq5monsef48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsef.48154 rq5monsef48154.o
ca65.exe --cpu 6502 --listing rq5monseg48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monseg.48154 rq5monseg48154.o
ca65.exe --cpu 6502 --listing rq5monseh48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monseh.48154 rq5monseh48154.o
ca65.exe --cpu 6502 --listing rq5monsei48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsei.48154 rq5monsei48154.o
ca65.exe --cpu 6502 --listing rq5monsej48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsej.48154 rq5monsej48154.o
ca65.exe --cpu 6502 --listing rq5monsek48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsek.48154 rq5monsek48154.o
ca65.exe --cpu 6502 --listing rq5monsel48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsel.48154 rq5monsel48154.o
ca65.exe --cpu 6502 --listing rq5monsem48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsem.48154 rq5monsem48154.o
ca65.exe --cpu 6502 --listing rq5monsen48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsen.48154 rq5monsen48154.o
ca65.exe --cpu 6502 --listing rq5monseo48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monseo.48154 rq5monseo48154.o
ca65.exe --cpu 6502 --listing rq5monsep48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsep.48154 rq5monsep48154.o
ca65.exe --cpu 6502 --listing rq5monsfa48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfa.48154 rq5monsfa48154.o
ca65.exe --cpu 6502 --listing rq5monsfb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfb.48154 rq5monsfb48154.o
ca65.exe --cpu 6502 --listing rq5monsfc48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfc.48154 rq5monsfc48154.o
ca65.exe --cpu 6502 --listing rq5monsfd48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfd.48154 rq5monsfd48154.o
ca65.exe --cpu 6502 --listing rq5monsfe48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfe.48154 rq5monsfe48154.o
ca65.exe --cpu 6502 --listing rq5monsff48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsff.48154 rq5monsff48154.o
ca65.exe --cpu 6502 --listing rq5monsfg48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfg.48154 rq5monsfg48154.o
ca65.exe --cpu 6502 --listing rq5monsfh48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfh.48154 rq5monsfh48154.o
ca65.exe --cpu 6502 --listing rq5monsfi48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfi.48154 rq5monsfi48154.o
ca65.exe --cpu 6502 --listing rq5monsfj48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfj.48154 rq5monsfj48154.o
ca65.exe --cpu 6502 --listing rq5monsfk48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfk.48154 rq5monsfk48154.o
ca65.exe --cpu 6502 --listing rq5monsfl48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfl.48154 rq5monsfl48154.o
ca65.exe --cpu 6502 --listing rq5monsfm48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfm.48154 rq5monsfm48154.o
ca65.exe --cpu 6502 --listing rq5monsfn48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfn.48154 rq5monsfn48154.o
ca65.exe --cpu 6502 --listing rq5monsfo48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfo.48154 rq5monsfo48154.o
ca65.exe --cpu 6502 --listing rq5monsfp48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsfp.48154 rq5monsfp48154.o
ca65.exe --cpu 6502 --listing rq5monsga48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsga.48154 rq5monsga48154.o
ca65.exe --cpu 6502 --listing rq5monsgb48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsgb.48154 rq5monsgb48154.o
ca65.exe --cpu 6502 --listing rq5monsgc48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsgc.48154 rq5monsgc48154.o
ca65.exe --cpu 6502 --listing rq5monsgd48154.s	
ld65.exe -C vic20.cfg -o work\rq5.monsgd.48154 rq5monsgd48154.o

pause
del *.o
del *.lst
I like to put the memory location numbers at the end of the filename so that it is easy to know where each file is going to be located in RAM when it is loaded from disk.
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: Work in progress: REALMS OF QUEST V

Post by R'zo »

Ghislain wrote:
R'zo wrote:If you decide you need an artist I can recommend someone who is great at this sort of thing but i am sure would love to do it as well.
I spend about 60-90 minutes a day to produce about 4 monster images. I have .bat files that facilitates this process which opens 3 instances of xvic, GIMP and 2 folders along with NotePad++ from where I'll do my work. I almost have it down to doing this in an assembly line fashion. I source an image from Google images (example I search for "Kobold D&D"), find an image that I like, play around with the brightness-contrast levels, resize it down to 44*88 grayscale, export it to PGM format. Then use PGM IMPORT to convert it to MG format, then try various colors until I get something that I like or is at least presentable. I then output the memory contents of the image to a .txt file by "printing" the values from VICE, remove excess spacing and the like, copy-paste it into a source code file, modify the compile script, compile all the source code to integrate the new image(s) into the game files and then view the finished results into the game running on an emulator.

I've done about 140 total images now (which is getting pretty close to about half of the graphical content of the game). I'm certain that there are people out there who could produce far better graphics than I could. The main reason why I'm taking this part of the game production myself is because I want a huge number of graphic images. And I'd hate to tell somebody: "Hey, I need all of the 139 monster image portraits completed so I can start working on the combat engine as soon as possible". It would have definitely been easier to delegate this part of the game to somebody else for sure (and the results would have been better) while just being happy with using placeholders while I chomped away working on the combat engine (I haven't touched any real programming on the game for a few weeks now, I've probably already forgotten how much of my game engine works now).

Thank you very much for offering to find a graphic artist -- I think I'll just keep doing the graphics work. It comes down to quality vs quantity -- I've chosen the emphasize the latter while sacrificing a little bit of the former.
I was recommending an artist for the game booklet. You obviously have the graphics down :)
R'zo
I do not believe in obsolete...
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: Work in progress: REALMS OF QUEST V

Post by R'zo »

As far as everything else goes keep on the direction you have with the game. Everything is looking wonderful. The format you have established suits Roqv well.
R'zo
I do not believe in obsolete...
User avatar
Ghislain
Realms of Quest
Posts: 1279
Joined: Sun Aug 08, 2004 12:54 am

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

eslapion wrote:It is perfectly possible to have the Behr-Bonz hardware present 256 windows of 8k each visible at the BLK5 area and leave 24k of RAM expansion (for the game engine) at BLK 1, 2 and 3.

The added benefit is if you disable the game, the cartridge becomes a standard 24k RAM expansion.
Let's say we have BLK 5 to be the Window that can have data loaded from the BB cartridge.

Now, I am using BLK 5 to store miscellaneous game data like the current map the player is exploring. It's easy enough to have the BB switch to an 8K window that stores the world map, a city map, the floor of a dungeon, etc. As all of these will occupy 8KB of memory.

But when combat occurs, BLK 5 needs to be populated with:

1. 5KB combat module
2. 1KB monster image #1 (actually 1003 bytes to be technical about it) -- could be one of any 139 images
3. 1KB monster image #2 (1003 bytes) -- ibid
4. 1KB monster image #3 (1003 bytes) -- ibid

Is it possible to use BLK 5 as RAM to load the combat module and 3 randomly chosen monster images there from the BB cartridge?

EDIT: I think one could probably work around this though if BLK 5 needs to remain "ROM"-- I could just pop the 3 monster images into BLK 1 and once combat is finished, just reload the code that the monster images overwrote. It might be possible then to make this game for a modified BB cart in the end. I can't make promises about making Realms 5 for such a piece of hardware -- my highest priority is to make a disk-based and SD card version and have it published in that physical format because it is easier to do it that way. Maybe somebody could look at my source once all is said and done to see if it is feasible to do so as well.

Pic of the day:
realms5.jpg
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: Work in progress: REALMS OF QUEST V

Post by eslapion »

Ghislain wrote:But when combat occurs, BLK 5 needs to be populated with:

1. 5KB combat module
2. 1KB monster image #1 (actually 1003 bytes to be technical about it) -- could be one of any 139 images
3. 1KB monster image #2 (1003 bytes) -- ibid
4. 1KB monster image #3 (1003 bytes) -- ibid

Is it possible to use BLK 5 as RAM to load the combat module and 3 randomly chosen monster images there from the BB cartridge?

EDIT: I think one could probably work around this though if BLK 5 needs to remain "ROM"-- I could just pop the 3 monster images into BLK 1 and once combat is finished, just reload the code that the monster images overwrote. It might be possible then to make this game for a modified BB cart in the end.
It is possible to have RAM in the 3k expansion area too, you know. You could put you monster images there.
Be normal.
User avatar
Ghislain
Realms of Quest
Posts: 1279
Joined: Sun Aug 08, 2004 12:54 am

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

eslapion wrote:It is possible to have RAM in the 3k expansion area too, you know. You could put you monster images there.
That would certainly work too.

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

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

I've done 112 monster portraits so far. It's getting to be a lot of fun to be creating those images for the much more powerful ones.

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

Re: Work in progress: REALMS OF QUEST V

Post by Ghislain »

Pic of the day:
realms5.jpg
"A slave is one who waits for someone to come and free him." -- Ezra Pound
User avatar
R'zo
Vic 20 Nerd
Posts: 514
Joined: Fri Jan 16, 2015 11:48 pm

Re: Work in progress: REALMS OF QUEST V

Post by R'zo »

The shading came out very nice on that one.
How many pics do you have left?
R'zo
I do not believe in obsolete...
Post Reply