Jump to content
IGNORED

Beyond Evil - now playable


Heaven/TQA

Recommended Posts

Hi Heaven

 

I have some comments about handling weapons, armors etc. in Beyond Evil.

In Diablo there were eight items categories that hero can wear. It was: weapons, armors, shields, helmets, boots, gloves, rings and necklaces. In your game there are 3 I think most important categories: weapons, armors and shields. In Diablo all items that you pick were stored in inventory. So you can carry for example three different armors, change them any time you want or sell in the village.

 

I think it would be good if in Beyond Evil also all items comes to inventory, so there will be weapons as well as armors and shields. Now you can use only one weapon. When in inventory 3 categories of items would be available, you can simply (I think its simple, I may be wrong ;)) make a rule that hero can use one item from each category. So, one weapon, one shield and one armor. You have to change than also the way of dropping an item, maybe hitting space and than a letter of an item you want to drop.

 

If you decide to change a way of working of an inventory menu to one I describe, you can probably easily add new types of items that hero can wear, if it is possible.

Edited by urborg
Link to comment
Share on other sites

urborg... its on my to do list... but it will be more like that:

 

- armor-class (armor, shields,helmets)

- weapon-class (clubs,axe,swords)

- other-class (potions,rings,...)

 

in the inventory screen you will be change the "class" by switching via TAB. its more like on consoles where the items are grouped together (champions of norath, baldurs gate PS2/GBA f.e.). so the dropping procedere will remain the same.

 

each weapon has 2 flags not used right now...one could be used for duration and one could be used for weight.

Link to comment
Share on other sites

ok. here is the latest debug build.

 

please check out if everything works ok for you as there could be max. 10 monsters per room, while 4 are only displayed and moved max per room.

 

there are still glitches in the panel and pm gfx but i have concentrated more on the monster state engine last week.

post-528-1185115104_thumb.png

beyond1.zip

Link to comment
Share on other sites

  • 2 weeks later...

just in case you think that the game can not get hard...check out the debug build "expert"..... i really have difficulties.... ;)

 

and in this build each monster can have different drop rates of rare items... (good for end bosses...) they are all set to 70%+...but can not see any weapon drop? but i have no time to double check... can some of you have a look?

 

cheers, hve

post-528-1185910154_thumb.png

beyond1.zip

Link to comment
Share on other sites

its sad... but is it just me or is the drop item/inventory broken? with my revision system i can go back but not to v1 as it was introduced with version 15... grrr :mad:

 

i can only pickup 2 weapons (dagger + 1 weapon)?

 

i havent touched the code for weeks of these modules so i can not see what the hell is happening... i am considering a major rewrite of the whole code so i can clear up the code and rewrite parts of it... i think that's a good idea to do so.

Link to comment
Share on other sites

ok...as i will do a complete rewrite of the code (well...maybe more like a rearrange of the code) i am investigating to implement smooth soft sprite routines instead of the charmoves at the moment...

 

last night i was thinking about my zone ranger investigations and thought about "Gremlins"-engine. the game http://atari.fandal.cz/detail.php?files_id=1977 is really cool as i can not remember any slowdown and it moves more objects smooth than my engine (but of course has not the complexity behind)...

 

what do you think? should i try the "antic e"-approach?

Link to comment
Share on other sites

ok...as i will do a complete rewrite of the code (well...maybe more like a rearrange of the code) i am investigating to implement smooth soft sprite routines instead of the charmoves at the moment...

 

I was just going to write a post asking you to change the movement "character" routine.

I think the high level of your game, including graphics, deserve a movement like the one found in Gremlins and in other games.

Edited by Philsan
Link to comment
Share on other sites

ok. found the stuff in the gremlins code...first of all i thought that its highly optimised like in zoneranger but nope...thats why it took little time to find the small piece of code which puts all kind of sprites on screen.

 

you can find it $789d ff. (in the 5200 Glenn Version for XL)

 

it uses even a loop!!! so it puts 4 bytes into screen ram and then runs a loop for the next scanline...

 

for such a code the game engine is really fast...

Link to comment
Share on other sites

i have first draft of a potential sprite engine... now i have to think about how i treat ckecking for picking up etc... maybe the antic e is only the "window" to the player but internally i am converting all player movements back to char pos and check the stuff... that sounds good...

Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...
  • 5 weeks later...

i just implemented following code into latest Beyond Evil engine so i get the RAM below the OS for tables and the softsprite routines.

 

the interesting part is that due to the keyboard OS routine and the print routine I am using i have copied the OS into the RAM. everything works fine here. but when I am pressing a key the game crashes. so i thought it's my code.

 

so I wrote a small test routine with only coping the OS into RAM and implementing the new NMI. this small program crashed as well by pressing the keyboard. as far as i remember does hitting the key cause a NMI? so is it possible that the Taquart "Mini-OS" does have a bug?

 

here is the small NMI routine in XASM/MADS format.

 

switch_off_os_rom sei;stop interrups 
mva #0 ^4e;stop all interrupts 
mva #$fe ^31 
mwa #nmi $fffa 
mwa #nmi $fffe 
mva #$c0 ^4e 
rts 
; NMI routine 
; ^4f==#$5f if VBLKI 
; ^4f==#$9f if DLI 
nmi bit ^4f 
bpl sys_vbl 
; DLI routine, e.g. 
; pha 
jmp (dliv) 
; pla 
; rti 

; VBL routine, e.g. 
sys_vbl 
pha 
txa:pha 
tya:pha 
dec 20 
lda $d300;prepare joystick 
and #$0f 
sta stick0 
jsr vbl 
pla:tay 
pla:tax 
pla rti

Link to comment
Share on other sites

Keypresses generate an IRQ (POKEY).

 

Only ANTIC or System Reset (400/800 only) can generate NMIs.

 

You could always just read the keypress manually in a VBI with key IRQs disabled. You'd have to have a debounce algorithm too though.

 

Additional: the XL/XE OS key routine also plays with PORTB. Unsure if you need the F1-F4 keycodes from the 1200XL to be processed to cause that, but might be worth a look.

 

Also, I think you might need the OS key translation table in place, else you might get unpredictable results.

 

Finally, with POKEY IRQs, you have to reset them, else they'll just re-interrupt the 6502, giving an endless loop of IRQs which will lockup the machine.

Edited by Rybags
Link to comment
Share on other sites

I think you set up IRQ interrupt vector to the same point as NMI interrupt vector and you are just testing if it was DLI or not and jump to their routines. So IMHO everytime you press a key you jump to the routine of last NMI occured.... ie. if you press a key and the last NMI was DLI then after pressing the key the DLI routine is executed... or VBI if it was last NMI.

Link to comment
Share on other sites

I should have mentioned that too.

 

Also, you have to store to NMIRES to stop VBI from recurring.

 

The ANTIC doco is a bit dodgy in that regard - DLIs reset themselves automatically, it might be the case that VBIs do as well (I've never bothered to test that theory).

Edited by Rybags
Link to comment
Share on other sites

aha... that sounds logical... and explains the effects i got in my test routine as it was doing colour changes every VBL but when hitting a key it looked like nearly every scanline an interrupt appeared. :D

 

is there anybody here who can fix above code for keyboard handling as i have no internet at home and no atari documentation there... i am traveling back on weekends... so my access to information is limited... ;)

 

thanks!

Link to comment
Share on other sites

If you've just copied the OS to RAM...

 

leave the IRQ vector as it was.

 

Disable all IRQs via $D20E and $10, except for the keyboard (store $40 there, or $C0 to also allow BREAK)

 

In your VBI, put a store to $D40F to reset the NMI status

Edited by Rybags
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...