ZippyOasys Posted January 1 Share Posted January 1 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? Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted January 1 Share Posted January 1 @Atarius Maximus's original Touchdown game code had some form of bounds code, so I'm gonna be experimenting with that. Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted January 4 Share Posted January 4 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 1 Quote Link to comment Share on other sites More sharing options...
Mord Posted January 4 Share Posted January 4 (edited) 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 January 4 by Mord 3 Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted January 5 Share Posted January 5 @Mord That worked perfectly! How do I improve the second line of code to work like the first? Quote Link to comment Share on other sites More sharing options...
Mord Posted January 5 Share Posted January 5 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. 1 Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted January 14 Share Posted January 14 Currently looking at the multibutton sample code, what joy0fire buttons represent Both B & C on the Genesis as well as B & Y on the SNES? Obviously joy0pause represents the pause button for both controllers. Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted March 12 Share Posted March 12 Hypothetically, If the newest version of my game only has 5 levels that loop + plus ending screen. Would you guys still play it? 1 Quote Link to comment Share on other sites More sharing options...
gambler172 Posted March 12 Share Posted March 12 3 hours ago, ZippyOasys said: Hypothetically, If the newest version of my game only has 5 levels that loop + plus ending screen. Would you guys still play it? Sure, show what you have 😉 2 Quote Link to comment Share on other sites More sharing options...
KrunchyTC Posted March 13 Share Posted March 13 I would 1 Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted May 1 Share Posted May 1 (edited) So work is done on the 16k version of Lyra 2600, so the focus is back to the 7800 version. Edited May 2 by ZippyOasys Fixed the menu issue. Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted May 12 Share Posted May 12 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? Quote Link to comment Share on other sites More sharing options...
+saxmeister Posted May 20 Share Posted May 20 What cartridge size are you currently using on the 7800 code? Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted May 21 Share Posted May 21 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. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 21 Share Posted May 21 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. 3 Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted May 21 Share Posted May 21 Very nice, odd error message, shows you how familiar I am with 7800Basic. LOL Quote Link to comment Share on other sites More sharing options...
+saxmeister Posted May 21 Share Posted May 21 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. Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted May 21 Share Posted May 21 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 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 21 Share Posted May 21 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? 3 Quote Link to comment Share on other sites More sharing options...
+Atarius Maximus Posted May 21 Share Posted May 21 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. Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted May 21 Share Posted May 21 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 2 Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted May 22 Share Posted May 22 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 Quote Link to comment Share on other sites More sharing options...
ZippyOasys Posted June 25 Share Posted June 25 Anyone know how to make the player stop or not move while the joystick is held down? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.