I need help from assembly programmers on certain aspects of my Zelda project. Any members working on subroutines will receive full credit for their input. Here is what I need help on...

1. Full AI for Zelda enemies. Zelda enemy classes have two attacks. (1): Moving toward and colliding with you for damage. and (2): Randomly attacking with their ranged elemental attack (only some enemy classes will do this). There are also two enemy classes that are invisible unless you have a certain item, but should function in AI as normal. To anyone who wants to help with this, I can send more info. I do not know how to code this.

2. Ranged attacks controlled by player. Three items require this...hook/longshot and the bow. I do not know how to code this.

3. This is a request for conceptual help, and perhaps coding assistance. The issue with my maps is size. I was going to have an extraction system where I create an appvar with all the map data, then archive the appvar, then extract only the needed map to RAM. The issue is this...during extraction, I will not have enough RAM to copy all the map data to the appvar. The map data is too big. Do I have any other options? I was thinking about creating a group or making several appvars.
The first two require much more information, probably to the point of including your entire source code.
The third one, however, is somewhat easier. You can archive the appvar and copy it to RAM.
SirCmpwn wrote:
The first two require much more information, probably to the point of including your entire source code.

Understood. I am willing to release the source, when done, as well as any info needed, to any AI programmers on board.

SirCmpwn wrote:
The third one, however, is somewhat easier. You can archive the appvar and copy it to RAM.

This is not the issue. Allow me to explain my issue in perhaps greater detail. I have all the map data for the game in the Flash APP that will be Zelda. During the installation of the game, the app needs to extract that map data somewhere. I know, undubiously, that the data being copied must wind up also in archive. But here is the problem...

create appvar ;appvar is created in RAM
map data --> appvar ;data is copied to appvar in RAM **ERROR**
archive appvar ;appvar moved to archive

MAP DATA HERE

ERROR: TOO MUCH DATA TO HOLD IN RAM.

Either I break the data up into smaller appvars, or I go Archive --> Archive, but I'd have to modify flash in that case.
Umm, you wouldn't really have to modify flash, you could copy some code into RAM that loads parts of the appvar into RAM, then swaps your app's flash page back in and jumps to wherever you need to go.
souvik1997 wrote:
Umm, you wouldn't really have to modify flash, you could copy some code into RAM that loads parts of the appvar into RAM, then swaps your app's flash page back in and jumps to wherever you need to go.


I'm lost. That sounds complicated.
Compression.
Not really. You would ChkFindSym the location of your appvar, then copy some code that's already in your app into RAM using ldir. Then, you could store the flash page your app is currently on into a register, and the part of the map that you want to load in another register. Your program in RAM (which wouldn't really be a program, it would just be a chunk of code somewhere in SafeRAM) would copy data from the archived appvar into SafeRAM, load your app's Flash page number back into port 6, and jump into your app. Correct me if I'm wrong, though.
Well, we will see. I think I have a solution.

Still leaves the AI help. I have one person on board already. Can anyone else help?
Um, I have a routine utilizing 'call DisplayImage' in my app. Can I use this, or will I need to have the data in my app?
Is it a CALL or BCALL? If it's a BCALL, you'll have to copy the image data to RAM. Also, you should be using LDIR to copy the image data into the screen buffer instead, it's much faster.
Unless you wrote the routine yourself, it shouldn't be a call, it should be a BCALL. What does it do? If it just copies an image to the graph buffer, you should simply use an ldir.
I'm a bit...murky...on how to do that. The routine basically takes a sprite and puts it on the screen. The sprite format is... x, y, [width], [height], data. x and y are the coordinates of the upper left corner.

Here is the routine that I have...



Code:
SpriteDisplay:
    push bc
    push de
    ld a,(hl)        ;set row
    ld e,a
    inc hl
    ld a,(hl)        ;set column
    ld d,a
    inc hl
    set plotLoc, (IY + plotFlags)
    res bufferOnly, (IY + plotFlags)
    call DisplayImage
    set bufferOnly, (IY + plotFlags)
    pop de
    pop bc
    ret
Could you post the DisplayImage routine here?
It's at http://education.ti.com/guidebooks/sdk/83p/83psysroutines.pdf. It's under DisplayImage. I don't know about the routine itself.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement