Jump to content
IGNORED

Lyra the Tenrec (CURRENTLY: Open-Beta)


Recommended Posts

Quote

Did you have herox set up as a fixed point variable?  In the older code I was looking at, it wasn't.  In the Slow the Player section, that would probably be interpreted as herox-0 instead of herox-0.8

@Mord Yes, it's a fixed point variable.

I just want level boundaries, I want to know how. Why am I such a dunce?

Link to comment
Share on other sites

Here's the new build. Has one way screenwrap & platform collisions.

 

I'm clearly on the right track with the boundary code, only one side works. I just got to get the other side to work.

 

Here's the code;

Quote
  rem ** bounds code
  if herox<1 then herox=1
  if herox>145 then herox=145

Roms:lyra_rev3_1_pk_2024y_01m_01d_0723t.78b.a78lyra_rev3_1_pk_2024y_01m_01d_0723t.78b.bin

 

Source: Lyra 7800.zip

  • Like 1
Link to comment
Share on other sites

The problem is that herox<1 only does something when herox = 0.  If you go below 0, it wraps around to 255, and suddenly herox>145 triggers which teleports you across the screen.

 

update the first line to be:

 if herox=0 || herox>240 then herox=1

 

This'll catch any instance where you've accidentally wrapped around the 0 by moving too fast.  It won't affect second line of code since if you're 240 or higher, it'll get fixed to 1 before it sees the right-side check.

Edited by Mord
  • Like 3
Link to comment
Share on other sites

If it's just a matter of letting the player get closer to the right side of the screen than it currently allows, just increase the value from 145 to something higher. 152 might work - just take the width of the sprite and subtract it from 160 to find out what value you need. If it's not quite where you want it to be try adjusting it by 1 until you get to the place you want it to be.

  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 1 month later...
  • 2 weeks later...

Is there an easier way of adding both multicontroller & pokey support without getting this error?

 

Quote
     -141 bytes left in the 7800basic reserved area.
 $0
 ***************************
 *** Abort: ROM Overflow ***
 ***************************
 
c:\7800basic-0.32-win-x64\7800basic\samples\ramcharmap\lyra_48k_firedebounce_2024y_05m_03d_1232t.78b.asm (12498): error: ERR pseudo-op encountered.
 
Cartridge data file must be at least
4K!
 
7800header 0.21 Feb  8 2024 20:49:21
*** ERROR: The file size of c:\7800basic-0.32-win-x64\7800basic\samples\ramcharmap\lyra_48k_firedebounce_2024y_05m_03d_1232t.78b.bin is 0 bytes.
 
7800makecc2 v0.1
  *** ERROR: The file size of c:\7800basic-0.32-win-x64\7800basic\samples\ramcharmap\lyra_48k_firedebounce_2024y_05m_03d_1232t.78b.bin is 0 bytes.
 
Exit code: 1
 
Cleaning up files generated during compilation...

Can anyone help me?

 

Link to comment
Share on other sites

  • 2 weeks later...
On 5/12/2024 at 9:08 AM, ZippyOasys said:

Is there an easier way of adding both multicontroller & pokey support without getting this error?

 

Can anyone help me?

 

 

What you are encountering has nothing to do with running out of space, the assembler encountered an illegal opcode (or malformed opcode) and therefore created a 0 byte file, due to it being aborted in the process. 

 

We need to see the ASM, to see what is going on.

Link to comment
Share on other sites

On 5/12/2024 at 12:08 PM, ZippyOasys said:

     -141 bytes left in the 7800basic reserved area.

You didn't show all of the compilation messages, but this is the one that is likely the issue. From the Feature Modules section of the 7800Basic guide:

Quote

7800basic has a lot of options to interface with external hardware, and there isn't enough space in the 7800basic's reserved 4k area to hold all of the feature modules required. If you get a message about this area having negative space during compiling, it means you need to store the modules elsewhere in your game.

 

You can do so with the “inline” keyword at the location where the module can go. At present time you can do this for the atarivox, pokey support, hiscore support, sound tracker, rmt tracker, mega7800 controller, snes2atari controller, plotsprite4, four-bit fade, and LZSA-compression modules.

So, you either need to use less feature modules if you don't need all of the ones you have defined, or you need to use the inline keyword for some of them as described until the 7800Basic reserved area is no longer showing negative space.

  • Like 3
Link to comment
Share on other sites

I was just wondering if it was down to the 4K base memory or if it was something that could be handled through bank switching. But, those driver routines for different hardware have to be loaded into that base 4K or added with the inline assembler correct?

 

Reading through the documentation I see:

Quote

If your game is bankswitched, any inline feature modules need to go in a non-bankswitched bank (a good place for them would be in dmaholes, in the last bank).

The one exception to this rule is the hiscore.asm module—you may inline this module into a bankswitched bank, as long as you only use the hiscore functionality from the same bank.

 

Link to comment
Share on other sites

3 hours ago, saxmeister said:

What cartridge size are you currently using on the 7800 code?

The version I'm struggling with is in 48k.

2 hours ago, CPUWIZ said:

 

What you are encountering has nothing to do with running out of space, the assembler encountered an illegal opcode (or malformed opcode) and therefore created a 0 byte file, due to it being aborted in the process. 

 

We need to see the ASM, to see what is going on.

 

1 hour ago, Karl G said:

You didn't show all of the compilation messages, but this is the one that is likely the issue. From the Feature Modules section of the 7800Basic guide:

So, you either need to use less feature modules if you don't need all of the ones you have defined, or you need to use the inline keyword for some of them as described until the 7800Basic reserved area is no longer showing negative space.

 

Here is the source code folder if you like to take a look a what I did wrong. @Karl G @saxmeister

Lyra780048k.zip

Link to comment
Share on other sites

11 hours ago, ZippyOasys said:

The version I'm struggling with is in 48k.

 

 

Here is the source code folder if you like to take a look a what I did wrong. @Karl G @saxmeister

Lyra780048k.zip 120.49 kB · 1 download

With respect, did you follow the link I gave to the section on feature modules with the advice on inlining some of the modules to free up space in the 7800basic reserved area?

  • Like 3
Link to comment
Share on other sites

I added "inline rmtplayer.asm" to the bottom of the code and it compiled fine (now with 1904 bytes left in the 7800basic reserved area), but I didn't test it.  As Karl mentioned you're out of space in the reserved area, so you need to eliminate one or more 7800basic features or add them inline in the code as described in the documentation.  Some features have some restrictions on how they can be used as inline code.

Link to comment
Share on other sites

1 hour ago, Karl G said:

With respect, did you follow the link I gave to the section on feature modules with the advice on inlining some of the modules to free up space in the 7800basic reserved area?

Actually yes, I did use inline on some modules & it worked! Thanks :)

  • Like 2
Link to comment
Share on other sites

So, in an attempt to provide both TIA & Pokey music. The compiler gave me lip again... Not gonna lie, making this version has been the most frustrating time of my life.

It feels like I'm pulling teeth.

 

Here's the error:

Quote
Verifying compiler files exist...
Starting build of lyra_48k_2024y_05m_21d_1005t.78b...
7800basic v0.33 Feb  8 2024 20:49:16
 
*** (): 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 boss_top
        boss_bottom gem noheart oneheart twoheart threeheart fourheart
        fiveheart sixheart ts_lyra1 ts_lyra2 ts_lyra3
*** (): INFO, GFX block #0 has 160 bytes left (10 x 16 bytes)
 
*** (): INFO, DMA hole #0 starts @ $B000
        no code defined for DMA hole
 
*** (): INFO, GFX Block #1 starts @ $C000
        ts_lyra6 gameover gamea gameb blunk are end1 end2
*** (): 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
        rad bod ex
*** (): INFO, GFX block #2 has 2560 bytes left (160 x 16 bytes)
 
7800basic compilation complete.
 
User-defined 7800.asm found in current directory
 
--- Unresolved Symbol List
trackn_outnote           0090 ????         (R )
trackn_tablenote         0078 ????         (R )
trackn_pause             000c ????         (R )
trackn_volumeslidedepth  0050 ????         (R )
trackn_instrlen          0044 ????         (R )
trackn_command           008c ????         (R )
trackn_effshift          006c ????         (R )
trackn_tableend          0080 ????         (R )
trackn_effvibratoend     0068 ????         (R )
trackn_portafrqa         0024 ????         (R )
trackn_effdelay          005c ????         (R )
v_abeat                  00ac ????         (R )
trackn_audf              0098 ????         (R )
included.lzsa1compression.asm 0000 ????         (R )
v_audctl                 00a4 ????         (R )
RMTRAM                   0000 ????         (R )
trackn_portafrqc         0020 ????         (R )
track_endvariables       00ad ????         (R )
PLAYER_VAR_RAM           0000 ????         (R )
v_audctl2                00a5 ????            
trackn_TblHi             0004 ????         (R )
trackn_tablelop          0084 ????         (R )
VSCROLL                  0000 ????         (R )
smc_silence_instrspeed   00aa ????         (R )
v_instrspeed             00a9 ????         (R )
PLOTSP4                  0000 ????         (R )
v_speed                  00a6 ????         (R )
trackn_instridx          0040 ????         (R )
trackn_idx               0008 ????         (R )
v_aspeed                 00a7 ????         (R )
trackn_distor            0018 ????            
trackn_volumeslidevalue  0054 ????         (R )
lzsa1support             0000 ????         (R )
trackn_note              0010 ????         (R )
trackn_effvibratobeg     0064 ????         (R )
trackn_filter            0094 ????         (R )
v_bspeed                 00a8 ????         (R )
trackn_instrdb           0038 ????         (R )
trackn_shiftfrq          001c ????         (R )
trackn_portaspeed        0028 ????         (R )
plotsprite4.asm          0000 ????         (R )
trackn_volume            0014 ????         (R )
trackn_portaspeeda       002c ????         (R )
trackn_effvibratoa       0060 ????         (R )
trackn_tablea            007c ????         (R )
lzsa1compression.asm     0000 ????         (R )
trackn_tablespeeda       0088 ????         (R )
trackn_instrreachend     004c ????         (R )
trackn_instrx2           0034 ????         (R )
trackn_instrhb           003c ????         (R )
trackn_portadepth        0030 ????         (R )
MEMLOC                   00ad ????         (R )
trackn_tabletypespeed    0070 ????         (R )
trackn_instrlop          0048 ????         (R )
track_variables          0000 ????         (R )
PAUSESILENT              0000 ????         (R )
trackn_volumemin         0058 ????         (R )
included.plotsprite4.asm 0000 ????         (R )
trackn_tablemode         0074 ????         (R )
v_maxtracklen            00ab ????         (R )
trackn_audc              009c ????         (R )
trackn_TblLo             0000 ????         (R )
trackn_audctl            00a0 ????         (R )
 
   stack allowance: 20 nested subroutines.
   the canary is situated at: $1d6
   (rmtplayer module is using  2285  bytes of rom)
   (rmtplayer module is using   bytes of ram)
   (mega7800 module is using  184  bytes of rom)
   (snes2atari module is using  273  bytes of rom)
 Music player size:  $de
 Track size:  $616
   11380 bytes of ROM space left in the main area.
   (pokeysound module is using  60  bytes of rom)
     $1880 to $1fff used as zone memory, allowing 27 display objects per zone.
     2363 bytes left in the 7800basic reserved area.
 
Fatal assembly error: Source is not resolvable.
 
Cartridge size not a multiple
of 4K bytes!
 
7800header 0.21 Feb  8 2024 20:49:21
*** WARNING: The file size of c:\7800basic-0.32-win-x64\7800basic\samples\ramcharmap\lyra_48k_2024y_05m_21d_1005t.78b.bin isn't correct.
 
  opened parameter file a78info.cfg
 
7800makecc2 v0.1
 
  The ROM 'c:\7800basic-0.32-win-x64\7800basic\samples\ramcharmap\lyra_48k_2024y_05m_21d_1005t.78b.bin' is compatible with CC2.
 
Exit code: 1
 
Cleaning up files generated during compilation...

Here's the source: Lyra780048k.zip

Link to comment
Share on other sites

  • 1 month later...

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...