Jump to content
IGNORED

Lyra the Tenrec (CURRENTLY: Open-Beta)


Recommended Posts

I've just held the major release event known as "Lyra-Mania Day" in the batari basic forums. In it I released 2 games that were completed.

 

I also wanted to show off the newest build of Lyra 7800. Includes Roms, GFX & Source Code.

 

lyra7800.zip

 

I'd like to say that it is roughly 70% complete. The game has an ending unlike it's 2600 counterpart, once you beat the game. It takes you straight to the title now sporting a you win message. same thing when you lose the game. The title sports a game over message instead.

 

KNOWN BUGS: When beating the game, it soft-locks you to the title. Screen goes pink if joy0fire1's been pressed a lot. Can anyone fix this?

 

To-do:

Intermission screen saying "Most Radical!" Having trouble trying to implement it without screwing up the loadlevel subroutine

Add Tia-Tracker Music for the title.

 

 

  • Like 6
Link to comment
Share on other sites

  • 6 months later...

Hi all, ZippyRedPlumber here. After what feels a year of working consistently on the game. I'm glad to announce that it's 90% done.

 

Roms are below.

 

What's new in this build? 2 Game Modes; Arcade & 7800. Arcade mode plays as you expected 5 stages of score hunting fun looped endlessly.

7800 mode is different, you get to play 30 stages & has an ending!

 

A third enemy has been added for harder difficulty & adjustments made to the two enemies' speeds .

TiaTracker & RMT added simultaneously for the title screen & main game loops respectfully. I want to show off that the 7800 can pull off wonderful tunes with both audio chips.

 

 

I want to make the player stop moving when ducking how can I do this?

 

I'm also trying to make the game "couch compliant" so I'm experimenting with a menu system. So far it's semi-couch compliant as the difficulty switches picks the game modes.

lyra_rev3_1_pk_2023y_11m_01_0200t.78b.a78 lyra_rev3_1_pk_2023y_11m_01_0200t.78b.bin

Edited by ZippyOasys
  • Like 1
Link to comment
Share on other sites

I got some good news & some bad news, lets start with the good news. I've got a "Couch-Compliant" menu working. The bad news, compiling it gives me tons of errors

 

Can anyone take a look at my code & see what I did wrong?

Lyra the Tenrec Couch Compliant Edition.zip

Edited by ZippyOasys
Link to comment
Share on other sites

23 hours ago, Karl G said:

What errors are you getting? 

@Karl G

Quote
Verifying compiler files exist...
Starting build of lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b...
7800basic v0.32 Nov  5 2023 06:39:07
 
*** (): INFO, GFX Block #0 starts @ $A000
        tileset_ramchars scoredigits_8_wide walk_left_bottom
        walk_left_bottom2 walk_right_bottom walk_right_bottom2
        walk_left_top walk_right_top fire_jump eyeborg gem noheart
        oneheart twoheart threeheart fourheart fiveheart sixheart ts_lyra1
        ts_lyra2 ts_lyra3
*** (): INFO, GFX block #0 has 288 bytes left (18 x 16 bytes)
 
*** (): INFO, DMA hole #0 starts @ $B000
        no code defined for DMA hole
 
*** (): INFO, GFX Block #1 starts @ $C000
        ts_lyra4 ts_lyra5 ts_lyra6 gameover rad rad2 rad3 are
*** (): INFO, GFX block #1 has 0 bytes left (0 x 16 bytes)
 
*** (): INFO, DMA hole #1 starts @ $D000
        no code defined for DMA hole
 
*** (): INFO, GFX Block #2 starts @ $E000
        end1 end2 couch couch1 couch2 couch3 couch4
*** (): INFO, GFX block #2 has 512 bytes left (32 x 16 bytes)
 
7800basic compilation complete.
 
User-defined 7800.asm found in current directory
 
--- Unresolved Symbol List
included.lzsa1compression.asm 0000 ????         (R )
VSCROLL                  0000 ????         (R )
PLOTSP4                  0000 ????         (R )
lzsa1support             0000 ????         (R )
goto                     0000 ????         (R )
plotsprite4.asm          0000 ????         (R )
lzsa1compression.asm     0000 ????         (R )
___skip_speed_increase   0000 ????         (R )
PAUSESILENT              0000 ????         (R )
0.0                      0000 ????         (R )
included.plotsprite4.asm 0000 ????         (R )
then                     0000 ????         (R )
 
   stack allowance: 21 nested subroutines.
   the canary is situated at: $1d3
 Music player size:  $de
 Track size:  $616
   2630 bytes of ROM space left in the main area.
   (rmtplayer module is using  2070  bytes of rom)
   (rmtplayer module is using  172  bytes of ram)
   (pokeysound module is using  60  bytes of rom)
     $1880 to $1fff used as zone memory, allowing 27 display objects per zone.
     384 bytes left in the 7800basic reserved area.
 
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (3992): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (3992): error: Illegal Addressing mode 'lda ='.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (3996): error: Syntax Error '#1.0'.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4131): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4131): error: Illegal Addressing mode 'lda ='.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4135): error: Syntax Error '#1.0'.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4252): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4252): error: Illegal Addressing mode 'lda ='.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4256): error: Syntax Error '#1.0'.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4396): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4396): error: Illegal Addressing mode 'lda ='.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (4400): error: Syntax Error '#1.0'.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (6538): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (6538): error: Illegal Addressing mode 'lda ='.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (6561): error: Syntax Error ''.
c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm (6561): error: Illegal Addressing mode 'lda ='.
 
Fatal assembly error: Source is not resolvable.
 
Cartridge size not a multiple of 4K bytes!
 
7800header 0.21 Nov  5 2023 06:39:16
*** WARNING: The file size of c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.bin isn't correct.
 
  opened parameter file a78info.cfg
 
  The ROM 'c:\7800basic-0.24-win-x64\7800basic\samples\ramcharmap\lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.bin' is compatible with CC2.
 
7800makecc2 v0.1
 
Exit code: 1
 
Cleaning up files generated during compilation...

 

Link to comment
Share on other sites

When the errors are on the assembly side like in this case, it often helps to open the generated .asm file (lyra_rev3_1_pk_couch_2023y_11m_14_0710t.78b.asm in your case) and go to the indicated line(s). Often you can figure out the issue with your 7800basic source looking at the generated assembly. Often the basic source is in comments above the assembly lines, and variable names are the same as yours, so you can see what's going on even without knowing assembly.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

I just tried it out. There appear to be issues with jumping on platforms since it seems the character can "land" in the pixels in between.

And, when jumping, I can't quite get to the third level since the character can't jump quite high enough without being caught in the pixels between the top and the bottom of the platforms.

Plus, the "seeker" enemy that actively tracks the character down seems to be just a bit too fast and accurate.

Looks great, thought.

Can the "coins" be a different color than the platforms so they stand out more?

  • Like 2
Link to comment
Share on other sites

Not seeing an answer about the compiling issue, so going to assume it wasn't debugged yet?

 

The problem is being caused in the complex if/then statements you have in I believe 7 places in the code that are mixing && and || conditions.  As per the 7800 guide, you can have multiple &&'s or a single || in an if/then statement, but you can't mix them together.  I made the below changes to each of the lines and it would at least compile. (Not sure if it's doing the right thing mind you - you may need to add goto after the first if so it'll skip over the second one in cases where both would trigger to effectively simulate an ||.  To find all the places quickly, just do a search/find on "||" so you can check all the places you're using an or statement.

 

  ; if sc1>=75 && sc2>=00 && sc3>=00 || Menu_Option=$04 && Menu_Option=$03 then goto ___skip_speed_increase
  if sc1>=75 && sc2>=00 && sc3>=00 then goto ___skip_speed_increase
  if Menu_Option=$04 && Menu_Option=$03 then goto ___skip_speed_increase

 

  • Like 2
Link to comment
Share on other sites

On 11/25/2023 at 11:45 PM, saxmeister said:

I just tried it out. There appear to be issues with jumping on platforms since it seems the character can "land" in the pixels in between.

And, when jumping, I can't quite get to the third level since the character can't jump quite high enough without being caught in the pixels between the top and the bottom of the platforms.

Plus, the "seeker" enemy that actively tracks the character down seems to be just a bit too fast and accurate.

Looks great, thought.

Can the "coins" be a different color than the platforms so they stand out more?

@saxmeister What's more important right now is the choice of POKEY music. Do you like it?

 

I don't know what can be done with that, it's the best way to make semi-solid platform collisions for now. Is there a better example of platform collision?

 

I'll try to adjust the speed of the "seeker" Eyeborg.

 

Firstly, there not "coins" they're gems lol. Second, I'll see what I can do to distinguish gems & platforms.

Link to comment
Share on other sites

ZeroPage Homebrew is playing Lyra The Tenrec on tomorrow's ZPH stream LIVE on Twitch! Hope you can join us in the chat!

 

Games:

 

 

  • Like 1
Link to comment
Share on other sites

@saxmeister Here's my rough platform collision code. It's a primitive way. But it kinda got the job done.

Feel free to make some improvments to the code.

Quote
  rem ** see what character is underneath the hero...
 
    rem ** convert sprite coordinates to character coordinates...
    mytemp1=(herox+4)/8 ; rem 16 is our zoneheight
    mytemp2=heroy/16    ; rem 8 is 160A character width, but x2 for doublewide
    mytemp2=mytemp2+1   ; rem the block under our feet
 
    rem ** ... then make sure we don't try to read/write
    rem ** off-screen memory...
    if mytemp1>19 || mytemp2>11 then goto falling
 
    rem ** ...then read the character!
    herochar=peekchar(screendata,mytemp1,mytemp2,20,12)
 
    rem ** check if hero is on a block...
    if herochar=2 then pokechar screendata mytemp1 mytemp2 20 12 2
 
    rem ** check if hero is on a gem
    if herochar=6 then pokechar screendata mytemp1 mytemp2 20 12 0:herochar=0:score0=score0+25:ssc1=ssc1-1:playsfx sfx_advpickup
 
jumping
  ;Fire button (jump) section.
  ;Skips this section if fire button is not pressed.
  if !joy0fire1 then _Jump_Gravity_Counter=0:_FireB_Restrainer=0:goto __Skip_Jump
  ;Skips jump if player is falling.
  if _Fall_in_Progress then goto __Skip_Jump
  ;Skips jump if fire button restrainer is on and jump and
  ;all are not happening. Fixes it so the player can't hold
  ;down the fire button to jump repeatedly.
  if _FireB_Restrainer && !_Fall_in_Progress && !_Jump_Gravity_Counter then goto __Skip_Jump
  if !_Jump_Gravity_Counter then playsfx sfx_pitfalljump
  ;Turns on restrainer for fire button.
  _FireB_Restrainer=1
  _Jump_Gravity_Counter=_Jump_Gravity_Counter+1
  if _Jump_Gravity_Counter>12 then _Jump_Gravity_Counter=0:_Fall_in_Progress=1:goto __Skip_Jump
  if heroy<13 then goto __Skip_Jump
  if _Jump_Gravity_Counter<=7 then antigravity=5
  if _Jump_Gravity_Counter>7 && _Jump_Gravity_Counter<=10 then antigravity=3
  if _Jump_Gravity_Counter>10 then antigravity=1
  heroy=heroy-antigravity
__Skip_Jump
 
falling
  ;Fall down section.
  ;Skips section if player is jumping.
  if _Jump_Gravity_Counter then goto __Skip_Fall_01
  ;Skips section if player is on the ground.
  if herochar>0 then goto __Skip_Fall_01 : rem check if character is blank
  _Fall_Gravity_Counter=_Fall_Gravity_Counter+1
  ;Fake gravity fall (speed keeps increasing during a fall).
  gravity=0
  if _Fall_Gravity_Counter> 8 && _Jump_Gravity_Counter<=16 then gravity=1
  if _Fall_Gravity_Counter>16 && _Jump_Gravity_Counter<=24 then gravity=2
  if _Fall_Gravity_Counter>24 && _Jump_Gravity_Counter<=32 then gravity=3
  if _Fall_Gravity_Counter>32 then gravity=4
  ;Moves player1 down the screen.
  heroy=heroy+gravity
  ;Lets the program know a fall is in progress.
  _Fall_in_Progress=1
  goto __Skip_Fall_02
__Skip_Fall_01
  ;Not falling. Clears related variables.
  _Fall_in_Progress=0:_Fall_Gravity_Counter=0
__Skip_Fall_02

 

  • Like 1
Link to comment
Share on other sites

So, I just saw @ZeroPage Homebrew's stream of my game. To say I was a little hurt from criticism would be an understatement.

 

I'm currently working on a new version that fixed the following

  • The background color is now separate from the gem colors (Now less pink!)
  • Adjusts Player Speed
  • Balance the difficulty (Eyeborgs get faster over the course the game)
  • Tweaked the level designs just a bit 

I'm in the process of trying to fix the ending bug.

Link to comment
Share on other sites

2 hours ago, ZippyOasys said:

So, I just saw @ZeroPage Homebrew's stream of my game. To say I was a little hurt from criticism would be an understatement.

 

Sorry to hear that! Our aim on ZPH is to give constructive feedback that devs can take into consideration. We're not a drama channel and we don't seek to put down the work of others, we want to celebrate homebrew games and help make them the most fun they can be based on the creator's concept. Making games is a challenging endeavour and we always strive to come up with ideas and suggestions that can help them towards their goal. Games are art, and art is subjective.

 

If you disagree with the direction of our feedback I can completely understand as we might not be aligned with what you set out to do with your game. I always find that giving & receiving critical feedback can be helpful and if it came off as dismissive of your game, it's not what we intended. I love platformers and every new platform game put out for a system I love is a gift.

 

Based on your above updates it sounds like you took some of our suggestions onboard, but don't feel pressure to change the direction of your vision as we're only one voice amongst many that will play your game. We're not the authority of what makes a good game, we're just some people who like Atari games. 🙂

 

Keep up the great work!

 

- James

  • Like 8
Link to comment
Share on other sites

2 hours ago, ZippyOasys said:

So, I just saw @ZeroPage Homebrew's stream of my game. To say I was a little hurt from criticism would be an understatement.

What exactly did hurt you? I think it would help to discuss the points, so that we understand each other.

 

IMO constructive criticism is something good. Sometimes it might hurt a bit, but it can only make one better.

  • Like 6
Link to comment
Share on other sites

3 hours ago, Thomas Jentzsch said:

What exactly did hurt you? I think it would help to discuss the points, so that we understand each other.

 

IMO constructive criticism is something good. Sometimes it might hurt a bit, but it can only make one better.

One chat member said something along the lines of "you mean 10% is 99% finished?" or something like that. It wasn't constructive at all.

But I did take their ideas to heart & am working a better version of the Lyra game. I just now fixed the ending bug by making the title screen double as an ending with the ending texts. Now to deal with the elephant in the room, which is the jank platform collisions.

 

In short to paraphrase Johnny Depp, “Really, worst film you ever saw? Well, my next one will be better!”

Edited by ZippyOasys
Added the Ed Wood quote. Removed colorful language.
Link to comment
Share on other sites

24 minutes ago, ZippyOasys said:

One chat member said something along the lines of "you mean 10% is 99% finished?" or something like that. It wasn't constructive at all. The dude was being an asshole.

I looked it up: rc7e said: "The last 10% is 99% of the work". Even if it is a little exaggerated, this is not a criticism, but a generally accepted, true statement. Besides that I found nothing from him regarding your game. 

 

Maybe you just misunderstood him here?

  • Like 1
Link to comment
Share on other sites

As Thomas indicated, the chat commenter may have been referring to the 90 / 10 rule:  90% of the work needed to finish your project will take a mere 10% of the time.  But that final 10% push to reach the end?  It will eat up 90% of your timeline.

 

https://www.volersystems.com/blog/project-management/228-why-the-last-10-takes-90-of-the-time#:~:text=So%2C what is the 90,up 90% of your timeline!

 

I honestly wouldn't read too much into that chat comment.  ZPH did play the game for over half an hour when they weren't talking about programming in Logo :).  If they didn't like the game the playtime would have been much shorter (as evidenced by their recent Atari Jaguar commercial release playthrough -- not all games got played to their allotted time). 

 

Lyra the Tenrec looked pretty neat.  The mechanics reminded me a lot of the original Mario Brothers, which is a game I loved.   As the developer, you can take people's suggestions if they sound good to you, and reject them if you don't like them - you are under no obligation to fulfill everyone's wish lists, which at some times can be contradictory.

  • Like 5
Link to comment
Share on other sites

3 hours ago, ZippyOasys said:

One chat member said something along the lines of "you mean 10% is 99% finished?" or something like that. It wasn't constructive at all.

 

Glad to hear it wasn't one of the ZPH crew that said something to upset you! We try to be on our best behaviour. 😉

 

3 hours ago, ZippyOasys said:

One chat member said something along the lines of "you mean 10% is 99% finished?" or something like that. It wasn't constructive at all.

3 hours ago, Thomas Jentzsch said:

I looked it up: rc7e said: "The last 10% is 99% of the work".

 

Like the others said above, it's an extremely common phrase associated with artistic endeavours including filmmaking, music and especially videogame creation. Another common saying along those lines is "Art is never finished, only abandoned" implying that artists are never happy with their final product as they're always striving for perfection that will never be reached. 🙂

 

Keep on going with Lyra The Tenrec and I'm looking forward to your updates to the game in the future!

 

- James

  • Like 8
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...