Jump to content

Photo

The Legend of Tilda


138 replies to this topic

#126 fabrice montupet OFFLINE  

fabrice montupet

    Moonsweeper

  • 472 posts
  • Location:Burgundy - France

Posted Wed Jan 23, 2019 5:32 AM

By developing a specific TI-99 version of Zelda, you tackled to a myth in the videogames. And you succeed with brio! Thank you for your amazing work.



#127 Airshack OFFLINE  

Airshack

    Dragonstomper

  • 905 posts
  • Location:Phoenix, AZ

Posted Wed Jan 23, 2019 5:04 PM

Super slick and impressive! I want to play just so I can look at it all. I’ve never played the NES, or Zelda anywhere, so Tilda with be entirely new for me. Can’t wait!


Sent from my iPhone using Tapatalk Pro

#128 acadiel OFFLINE  

acadiel

    Stargunner

  • 1,484 posts
  • www.hexbus.com
  • Location:USA

Posted Wed Jan 23, 2019 5:35 PM

This is totally awesome!  Great attention to detail, and well done with the palette limitations.



#129 PeteE OFFLINE  

PeteE

    Chopper Commander

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

Posted Wed Jan 23, 2019 5:57 PM

Thanks for the kind words.  I've got a feeling 2019 is gonna be a great year for game releases.



#130 Iwantgames:) OFFLINE  

Iwantgames:)

    River Patroller

  • 2,432 posts

Posted Thu Jan 24, 2019 8:06 PM

Looking forward to this one :) great work!

#131 cbmeeks OFFLINE  

cbmeeks

    Moonsweeper

  • 413 posts
  • Location:Hixson, TN

Posted Fri Jan 25, 2019 7:34 AM

I may have found a bug.

 

I was playing (I believe) the newest version.  It has the title screen and moving enemies.

 

When I played it in Classic99, everything seemed normal.  But playing on my real hardware I noticed that going into a cave (or underworld) didn't work.  In fact, the screen was mostly empty and black and the enemies from the previous screen were inside.

 

I can post screenshots if you like.



#132 PeteE OFFLINE  

PeteE

    Chopper Commander

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

Posted Fri Jan 25, 2019 12:38 PM

I may have found a bug.

 

I was playing (I believe) the newest version.  It has the title screen and moving enemies.

 

When I played it in Classic99, everything seemed normal.  But playing on my real hardware I noticed that going into a cave (or underworld) didn't work.  In fact, the screen was mostly empty and black and the enemies from the previous screen were inside.

 

I can post screenshots if you like.

No need for screenshots.  It sounds like you might have two different work-in-progress versions between classic99 and your real hardware.  Please expect to find bugs or unfinished parts, until I release an alpha test for community bug hunting.

 

To answer your earlier question in the thread, I've decided not to personally produce a cartridge or manual.  I won't place any restrictions on the binary, so others could produce cartridges.



#133 digdugnate OFFLINE  

digdugnate

    River Patroller

  • 2,181 posts

Posted Sun Jan 27, 2019 12:03 PM

waiting for the folks that can make gold-colored TI carts :D



#134 cbmeeks OFFLINE  

cbmeeks

    Moonsweeper

  • 413 posts
  • Location:Hixson, TN

Posted Mon Jan 28, 2019 9:01 AM

Gold TI cart with this game would be the greatest thing since sliced bread.

 

Oh, don't forget the secret name in Zelda.

 

In Zelda, if you type your name as "LINK", you play the game in a much harder setting.  You should do something similar like "TI" or "994A".



#135 PeteE OFFLINE  

PeteE

    Chopper Commander

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

Posted Mon Jan 28, 2019 11:57 AM

Gold TI cart with this game would be the greatest thing since sliced bread.

 

Oh, don't forget the secret name in Zelda.

 

In Zelda, if you type your name as "LINK", you play the game in a much harder setting.  You should do something similar like "TI" or "994A".

I don't have any provisions for the second quest, just want to finish the first quest for now.  But I've seen "randomizer" romhacks that put the items in random locations based on a seed - it might be interesting to try something like that, perhaps randomized dungeon layouts too.


Edited by PeteE, Mon Jan 28, 2019 12:00 PM.


#136 Iwantgames:) OFFLINE  

Iwantgames:)

    River Patroller

  • 2,432 posts

Posted Sat Feb 16, 2019 2:06 PM

Just got the FinalGROM99 today and tried this out. OMG! It's even more awesome than I imagined it would be! Great job!

#137 PeteE OFFLINE  

PeteE

    Chopper Commander

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

Posted Yesterday, 4:12 PM

So I'm working on a minimal-memory-usage sound and music player for this game.  The player will use 16 bytes of scratchpad RAM: a 3-bit duration and 13-bit data pointer for music and sound effects, on each of the 4 sound channels.  The 13-bit data pointer requires that all sound pattern data reside in the same 8K bank as the player code.  Looping and subpatterns will be supported, which requires 8 bytes for a return address for each channel (but can be stored in VDP memory.)  (Looping is a subpattern jump without a return.)

 

I'm designing my own compressed format for this, here's the current bitstream layout:

* pattern format
* 0ddd vvvv           duration and volume
* 1ddd vvvv nnnnnnnn  duration, volume and note table index

* note table
*  0000 zzzz 00xx yyyy  frequency divider xyz 0-1023 or noise 0-7
*  aaaa aaaa aaaa aaaa  subpattern address (return address stored in VDP)
*  1111 1111 1111 1111  subpattern return (address loaded from VDP)
*    subpattern return could also be fixed table entry 255
*    sound effects must terminate with subpattern return
* number of note table entries cannot exceed 256

Is it correct to say that "sound lists" are the lowest common denominator, if I wanted to make a converter to my format?  (I have downloaded Rasmus' SoundListRipper and some sound lists from OLD CS1 to use for testing.) 

 

Edit: How is looping represented in a sound list?


Edited by PeteE, Yesterday, 4:44 PM.


#138 FarmerPotato OFFLINE  

FarmerPotato

    Moonsweeper

  • 272 posts
  • Location:Austin, TX

Posted Yesterday, 5:18 PM


Edit: How is looping represented in a sound list?

 

in a TI sound list, termination is indicated by a 0 duration, but looping is indicated by a 0 length byte, followed by 2 bytes of address.

 

 

Parsec sound list sample:

 

SNDVDP EQU  >3800        START ADDRESS OF VDP SOUND LIST
LOOPHB EQU  >38          SOUND LOOP HIGH BYTE ADDRESS
LOOPLB EQU  >00          SOUND LOOP LOW  BYTE ADDRESS
********************************************
*      SOUND LISTS - PARSEC                *
********************************************
SHPSND BYTE 4,>DF,>FF,>93,>B3,1               FREQ TRICK SOUND
       BYTE 4,>80,>3F,>AE,>3E,60
       BYTE 0,LOOPHB,LOOPLB
OFFSND BYTE 4,>9F,>BF,>DF,>FF,0               ALL GENERATORS OFF
SLWSND BYTE 5,>9F,>BF,>DF,>FC,>E7,1           SLOW SHIP FIRE
       BYTE 2,>C2,>05,30
       BYTE 0,LOOPHB,LOOPLB
FSTSND BYTE 5,>9F,>BF,>DF,>F6,>E7,1           FAST SHIP FIRE
       BYTE 2,>C2,>05,30
       BYTE 0,LOOPHB,LOOPLB
EXPSND BYTE 7,>9F,>BF,>DF,>E7,>F0,>C0,>07,5   EXPLOSION
       BYTE 1,>F1,6
       BYTE 1,>F2,7
       BYTE 1,>F3,8
       BYTE 1,>F4,9
       BYTE 1,>F5,10
       BYTE 1,>F6,11
       BYTE 1,>F7,12
       BYTE 1,>F8,13
       BYTE 1,>F9,14
       BYTE 1,>FA,15
       BYTE 1,>FB,16
       BYTE 1,>FC,17
       BYTE 1,>FD,18
       BYTE 1,>FE,30
       BYTE 1,>FF,0
FIRSND BYTE 4,>9A,>BF,>DF,>FF,1     LASER SHOT
       BYTE 3,>80,>0A,>98,1
       BYTE 3,>80,>0C,>96,1
       BYTE 3,>80,>10,>94,1
       BYTE 3,>80,>14,>92,1
       BYTE 3,>80,>18,>90,1
       BYTE 3,>80,>1C,>92,1
HB20   EQU  $+2
       BYTE 3,>80,>20,>94,1
       BYTE 3,>80,>28,>96,1
       BYTE 3,>80,>30,>98,1
       BYTE 3,>80,>38,>9A,1
       BYTE 3,>80,>3E,>9C,1
       BYTE 1,>9F,0


#139 Asmusr OFFLINE  

Asmusr

    River Patroller

  • 3,037 posts
  • Location:Denmark

Posted Today, 9:36 AM

So I'm working on a minimal-memory-usage sound and music player for this game.  The player will use 16 bytes of scratchpad RAM: a 3-bit duration and 13-bit data pointer for music and sound effects, on each of the 4 sound channels.  The 13-bit data pointer requires that all sound pattern data reside in the same 8K bank as the player code.  Looping and subpatterns will be supported, which requires 8 bytes for a return address for each channel (but can be stored in VDP memory.)  (Looping is a subpattern jump without a return.)

 

I'm designing my own compressed format for this, here's the current bitstream layout:

* pattern format
* 0ddd vvvv           duration and volume
* 1ddd vvvv nnnnnnnn  duration, volume and note table index

* note table
*  0000 zzzz 00xx yyyy  frequency divider xyz 0-1023 or noise 0-7
*  aaaa aaaa aaaa aaaa  subpattern address (return address stored in VDP)
*  1111 1111 1111 1111  subpattern return (address loaded from VDP)
*    subpattern return could also be fixed table entry 255
*    sound effects must terminate with subpattern return
* number of note table entries cannot exceed 256

Is it correct to say that "sound lists" are the lowest common denominator, if I wanted to make a converter to my format?  (I have downloaded Rasmus' SoundListRipper and some sound lists from OLD CS1 to use for testing.) 

 

Edit: How is looping represented in a sound list?

 

I'm also working on a minimal-memory-usage sound and music player.  :)

 

My approach is to start with a sound player that has a number of channels where it can play notes. A note is here defined as an instrument played at a given frequency, and an instrument describes how the volume and frequency changes over time (4-6 bytes). So the sound player in itself can play pings, boings and crashes, and can be used for sound effects with very little input data.

 

On top of that I have my music player that can play a module consisting of a number of simultaneous tracks. Each track consists of a list of sequences, and can also contain loops. A sequence consists of a list of notes that the sound player can play. Everything is stored as references, so sequences and notes can be reused.

 

The scratch pad footprint is somewhat higher than with your approach: 6 bytes for each channel of the sound player and 8 bytes for each track of the music player, and I probably need 4 channels and 2-3 music tracks.

 

What I will try to do next is to convert a tune edited in the MOD2PSG2 tracker into my module format, it should be possible with some limitations.


Edited by Asmusr, Today, 9:38 AM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users