Jump to content

Photo

The Legend of Tilda


101 replies to this topic

#76 acadiel OFFLINE  

acadiel

    Dragonstomper

  • 941 posts
  • www.hexbus.com
  • Location:USA

Posted Mon Aug 7, 2017 6:14 PM

I brought it up in JS99er to take a quick look.  Amazing job!

 

(Yeah, I know I've been quite lately... been dealing with health problems.  I'm still here though.)



#77 digdugnate OFFLINE  

digdugnate

    Dragonstomper

  • 561 posts
  • Location:SW Missouri

Posted Mon Aug 7, 2017 7:30 PM

I brought it up in JS99er to take a quick look.  Amazing job!

 

(Yeah, I know I've been quite lately... been dealing with health problems.  I'm still here though.)

i didn't think to use JS99er.  The game is slick!



#78 Asmusr ONLINE  

Asmusr

    River Patroller

  • 2,438 posts
  • Location:Denmark

Posted Tue Aug 8, 2017 8:37 AM

Very nice. Keep up the good work.  :thumbsup:



#79 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,156 posts

Posted Tue Aug 8, 2017 8:51 AM

Yes very nice!

The movement of the monsters is perfect, although I did notice they aren't shooting projectiles. I imagine the sprite use and 4 per line limit is starting to get annoying.

One aspect of utilizing the 32k would be you could do some good optimizations, such as a rotating sprite table in CPU memory.

#80 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Tue Aug 8, 2017 10:52 AM

Yes very nice!

The movement of the monsters is perfect, although I did notice they aren't shooting projectiles. I imagine the sprite use and 4 per line limit is starting to get annoying.

One aspect of utilizing the 32k would be you could do some good optimizations, such as a rotating sprite table in CPU memory.

 

The projectiles are on my todo list, but they didn't make the cut for this release.  Some projectiles will also bounce off the player if they face the shield toward it, and I'll work on that too when I add projectiles.

 

The 4 sprites per line limit doesn't seem too terrible. What I'm doing now is the 2 hero sprites and 4 status bar sprites are always highest priority, since I never want them to flicker.  The rest are written in forward order, or in reverse order, alternating every frame, so that sprites on the same line will appear to flicker.  In reverse order, I write the VDP address once, then copy 6*4 bytes from sprites 0-5,  then copy 4 bytes from 31st sprite to the VDP then the 30th sprite, 29th, etc.  This is the SPRUPD (sprite update) function in tilda_b0.asm.  There is a chance that sprites in the middle of the list will not be displayed if too many sprites are on the same line, but this happens very rarely (and most people probably have the 4-sprites-per-line limitation turned off in an emulator or the F18A.)  I am keeping a copy of the sprite list table in the fast CPU RAM even though it takes 128 bytes out of the total 256.  Manipulating the sprite list is the bulk of the work for each frame, so it seemed like a good idea to use the fast RAM instead of the slower expansion RAM.

 

 

Hmm, when I brought it up in Classic99, it loads the first screen but if I move any direction but down it scrolls up the menu screen and then locks up. Anyone else experiencing that?

 

UPDATE: Nevermind, figured it out. The joystick #2 was also configured to PC keyboard, which meant it was sending double inputs and causing some hijinks.

 

Ah, I never considered that configuration.  All of the joystick 2 inputs are mapped to the 3 action buttons: sword, item, and menu screen.  This is so it will work with various 6-button controller configurations.  This also reminded me of the alpha-lock problem, and other games I've seen ask the user to press the joystick up just to make sure alpha-lock is off, that would also help to ensure joystick 1 is being used. Thanks!

 

 

No need to be sorry, as far as I am concerned; I keep coding in this way because I'm using the classic assembler in E/A and TASM on the Geneve.

I'm not sorry. :)  It feels retro to use all caps, and was intended to set up the joke about caps being used for shouting and the computer being old and hard of hearing: "Eh, speak up, sonny"



#81 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,156 posts

Posted Tue Aug 8, 2017 11:38 AM

 

The projectiles are on my todo list, but they didn't make the cut for this release.  Some projectiles will also bounce off the player if they face the shield toward it, and I'll work on that too when I add projectiles.

 

The 4 sprites per line limit doesn't seem too terrible. What I'm doing now is the 2 hero sprites and 4 status bar sprites are always highest priority, since I never want them to flicker.  The rest are written in forward order, or in reverse order, alternating every frame, so that sprites on the same line will appear to flicker.  In reverse order, I write the VDP address once, then copy 6*4 bytes from sprites 0-5,  then copy 4 bytes from 31st sprite to the VDP then the 30th sprite, 29th, etc.  This is the SPRUPD (sprite update) function in tilda_b0.asm.  There is a chance that sprites in the middle of the list will not be displayed if too many sprites are on the same line, but this happens very rarely (and most people probably have the 4-sprites-per-line limitation turned off in an emulator or the F18A.)  I am keeping a copy of the sprite list table in the fast CPU RAM even though it takes 128 bytes out of the total 256.  Manipulating the sprite list is the bulk of the work for each frame, so it seemed like a good idea to use the fast RAM instead of the slower expansion RAM.

 

 

 

Ah, I never considered that configuration.  All of the joystick 2 inputs are mapped to the 3 action buttons: sword, item, and menu screen.  This is so it will work with various 6-button controller configurations.  This also reminded me of the alpha-lock problem, and other games I've seen ask the user to press the joystick up just to make sure alpha-lock is off, that would also help to ensure joystick 1 is being used. Thanks!

 

I'm not sorry. :)  It feels retro to use all caps, and was intended to set up the joke about caps being used for shouting and the computer being old and hard of hearing: "Eh, speak up, sonny"

 

Ah yes, it makes sense to keep a copy of the table in the scratch-pad!

 

The main thing with the 32k expansion is you could explore a "memory for time" approach. Generally speaking, any algorithm can be written to be faster by just being more memory wasteful. I'd need to look at your code first to see what could be done, but I've explored it with my work on the Gauntlet clone.

 

I understand you have a goal here though, to not require the 32k expansion, so I'll be quiet about it. :) Just don't let it stop you from finishing the game!



#82 Tursi OFFLINE  

Tursi

    River Patroller

  • 4,785 posts
  • HarmlessLion
  • Location:BUR

Posted Tue Aug 8, 2017 12:04 PM

Seriously impressive work here :)

I also never noticed before today that the Triforce on the title page was actually Texas. ;)

#83 schmitzi OFFLINE  

schmitzi

    River Patroller

  • 3,846 posts
  • ToXiC
  • Location:Germany

Posted Tue Aug 8, 2017 2:01 PM

Oh, there is a sword ??? Can I use that on keyboard ?



#84 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Tue Aug 8, 2017 2:19 PM

Seriously impressive work here :)

I also never noticed before today that the Triforce on the title page was actually Texas. ;)

Thanks!  I've been calling it the "TIFORCE", so what other shape would it have? ;-)

 

Oh, there is a sword ??? Can I use that on keyboard ?

The Enter key is sword.  (On classic99 you can also use Tab since I think that is the emulated joystick fire button)



#85 schmitzi OFFLINE  

schmitzi

    River Patroller

  • 3,846 posts
  • ToXiC
  • Location:Germany

Posted Tue Aug 8, 2017 2:38 PM

Thanks. I love that I can run with ASDW keys <3



#86 notwhoyouthink OFFLINE  

notwhoyouthink

    Star Raider

  • 70 posts

Posted Tue Aug 29, 2017 11:02 AM

WOW. I am loving the look and feel of this. Will a finished cart of this require a F18A?


Edited by notwhoyouthink, Tue Aug 29, 2017 11:03 AM.


#87 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Tue Aug 29, 2017 1:29 PM

WOW. I am loving the look and feel of this. Will a finished cart of this require a F18A?

No, this version will not require F18A. I may decide to do a special F18A version to add 4 color graphics later, but no guarantee.

 

Edit: Might as well post a status update since I'm here.  Lately I've been working on the menu screen and item selection, and have animations done for the candle, bombs, boomerang, and magic rod.  Started populating the overworld cave screens.  I'm researching LZ77 compression for pattern tables since I'm getting close to running out of cartridge space in 32K, and haven't even started dungeons yet.  I could go 64K but then I think it won't work on the FlashROM.  I can't believe I thought this project would be easy in the beginning, but it's been great fun learning all the little things that go into making a game.  Maybe it's a good thing I picked a classic game that makes it feel worthwhile to port so I don't get frustrated and give up thinking "why am I porting a 20 year-old game to a 26 year-old computer with worse graphics"  :razz:


Edited by PeteE, Tue Aug 29, 2017 2:31 PM.


#88 schmitzi OFFLINE  

schmitzi

    River Patroller

  • 3,846 posts
  • ToXiC
  • Location:Germany

Posted Tue Aug 29, 2017 2:16 PM

F18A support would be nice :lust:



#89 notwhoyouthink OFFLINE  

notwhoyouthink

    Star Raider

  • 70 posts

Posted Tue Aug 29, 2017 4:46 PM

While i'm thinking about retro-zelda related things, wasn't there a attempt to port zelda to the atari home computer?

"Fanwor" i think it was called?



#90 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Wed Aug 30, 2017 4:47 PM

I found a compression algorithm in the ColecoVision programming forum: DAN2 which has nice properties of good compression ratio and low complexity.  I converted the C decoder to TMS9900 asm, and it worked on the very first try - that never happens!  This version only decodes from RAM/ROM to VDP memory, which is exactly what I need for pattern tables.  The code assembles to about 220 bytes, not including VDPWB and VDPRB.
 
Spoiler


#91 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,156 posts

Posted Wed Aug 30, 2017 8:35 PM

I found a compression algorithm in the ColecoVision programming forum: DAN2 which has nice properties of good compression ratio and low complexity.  I converted the C decoder to TMS9900 asm, and it worked on the very first try - that never happens!  This version only decodes from RAM/ROM to VDP memory, which is exactly what I need for pattern tables.  The code assembles to about 220 bytes, not including VDPWB and VDPRB.
 

Spoiler

 

 

Nice! I'll have to try this with my text and see how it works...



#92 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Wed Aug 30, 2017 10:12 PM

 

Nice! I'll have to try this with my text and see how it works...

Let me know if you need RAM to RAM decompression, and I'll make the changes for you.



#93 Asmusr ONLINE  

Asmusr

    River Patroller

  • 2,438 posts
  • Location:Denmark

Posted Wed Aug 30, 2017 10:51 PM

I found a compression algorithm in the ColecoVision programming forum: DAN2 which has nice properties of good compression ratio and low complexity.  I converted the C decoder to TMS9900 asm, and it worked on the very first try - that never happens!  This version only decodes from RAM/ROM to VDP memory, which is exactly what I need for pattern tables.  The code assembles to about 220 bytes, not including VDPWB and VDPRB.

 

Thank you, that will be handy for my projects. I have not used anything more advanced than RLE before.

 

I also once wrote some assembly code that worked the first time. It has never happened since.  ;)  



#94 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,156 posts

Posted Thu Aug 31, 2017 10:26 AM

Unfortunately for my needs, it won't quite work... I tested a single line of text with the command-line encoder and it only shrunk it like 9%.

 

In my case, I have a lot of separate data records of different fixed sizes, each of which is compressed individually. Most compression techniques rely upon finding matches and similarities over a much larger sample size.

 

For example, if you embedded ALL text dialogue for a given map or location into a large block, you would probably be able to compress it much better. However, this would be a major architecture change to my engine at this point, plus I'm not a fan of it because it means variable sized files, and a great amount of difficulty adding and removing dialogue later.

 

I may play around with some variants with my text encoding after I get the bulk of my data complete, see if I can find something that works a little better. Dropping the use of the 8th bit for "precede with space" and instead using the upper 128 for another set of dictionary replacements is worth trying... I just need to find a way to identify the most common character combinations in my text, an N^2 job to say the least...



#95 PeteE OFFLINE  

PeteE

    Star Raider

  • Topic Starter
  • 85 posts
  • Location:Beaverton, OR

Posted Wed Oct 18, 2017 2:59 PM

Finally got the NPCs, cave text and items appearing now.  As you can see in the screenshots, the NPCs use two sprites and background characters for full detail, and the fire is one sprite and background characters.  Each item is also a sprite (which means if you walk on the same row they will flicker due to the 4 sprites per line limitation on the 9918.)  The text appears one character at a time, like the original.

 

Attached Files



#96 digdugnate OFFLINE  

digdugnate

    Dragonstomper

  • 561 posts
  • Location:SW Missouri

Posted Wed Oct 18, 2017 3:02 PM

that is just amazing the work you have done.   definitely keep it up!



#97 adamantyr ONLINE  

adamantyr

    Stargunner

  • 1,156 posts

Posted Wed Oct 18, 2017 3:03 PM

Looking awesome! :D



#98 Vorticon OFFLINE  

Vorticon

    River Patroller

  • 2,772 posts
  • Location:Eagan, MN, USA

Posted Wed Oct 18, 2017 3:09 PM

Really impressive work!

#99 Ksarul ONLINE  

Ksarul

    River Patroller

  • 4,169 posts

Posted Wed Oct 18, 2017 3:50 PM

Me like!  :)



#100 ramidavis OFFLINE  

ramidavis

    Space Invader

  • 27 posts

Posted Wed Oct 18, 2017 4:05 PM

Finally got the NPCs, cave text and items appearing now.  As you can see in the screenshots, the NPCs use two sprites and background characters for full detail, and the fire is one sprite and background characters.  Each item is also a sprite (which means if you walk on the same row they will flicker due to the 4 sprites per line limitation on the 9918.)  The text appears one character at a time, like the original.

 

:o  A W E S O M E ! :lust: Love the old-school zelda's, not so much the new ones. Zelda 1, and Star tropics 1 & 2 are probably my top favorite NES titles ever.

Speaking of star tropics, does anyone know of a re-implementation / clone of star tropics for pc? (If you know what the program "zelda classic" is, think that only for playing custom star tropics levels)






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users