Jump to content

R_Leo_1

Members
  • Content Count

    185
  • Joined

  • Last visited

Posts posted by R_Leo_1


  1. Welp, apologies for the double-post, but it seems a new problem has made itself known. Although the first bank works just fine, bank 2's "dmahole 0 noflow" is not able to get to my code it seems. Same issue as before, in the other banks. Am I able to use the "altgamestart" in other banks as well, or will there need to be another solution?


  2. Okay so I tried it and still no dice, all I get is a black screen. I'm starting to think that there may be an issues related to the "libpng warning: Incorrect bKGD chunk index value" I keep getting, as if I delete the incgraphic commands for the 160B grahpics, I get a black screen AND some ear grating audio from the TIA for some reason, which makes me think this is somehow causing a crash?

    14 hours ago, mksmith said:

    Hi @R_Leo_1 - sorry I haven't had a change to get back to help with this.  Sorry can you post the compile log again for this one?

    Oh no need to apologize. You're under no obligation to help me so I appreciate any help I get whenever I can :)

    Oh and here's the compiler log you asked for:

    7800basic v0.10 Jun 15 2020 23:49:14
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value

    *** (): INFO, bank #1, GFX Block #0 starts @ $8000
            Background1 Background2 LLTitleRow1Chunk1 LLTitleRow2Chunk1
            LLTitleRow3Chunk1 LLTitleRow3Chunk2 LLTitleRow4Chunk1
            LLTitleRow4Chunk2 LLTitleRow5Chunk1 LLTitleRow5Chunk2
            LLTitleRow6Chunk1 LLTitleRow7Chunk1 LetP LetR LetE LetS LetF LetI
            LogoRow1Chunk1 LogoRow1Chunk2 LogoRow1Chunk3 LogoRow2Chunk1
    *** (): INFO, bank #1, GFX block #0 has 16 bytes left (1 x 16 bytes)


    *** (): INFO, bank #1, DMA hole #0 starts @ $9000
            DMA hole code found and imported

    *** (): INFO, bank #1, GFX Block #1 starts @ $A000
            LogoRow2Chunk2 LogoRow2Chunk3 LogoRow2Chunk4 LogoRow3Chunk1
            LogoRow3Chunk2 LogoRow3Chunk3 LogoRow3Chunk4 LogoRow4Chunk1
            LogoRow4Chunk2 LogoRow4Chunk3 LogoRow4Chunk4 LogoRow5Chunk1
            LogoRow5Chunk2 LogoRow5Chunk3 LogoRow5Chunk4
    *** (): INFO, bank #1, GFX block #1 has 2368 bytes left (148 x 16 bytes)


    *** (): INFO, bank #1, DMA hole #1 starts @ $B000
            no code defined for DMA hole

    7800basic compilation complete.
    User-defined 7800.asm found in current directory
    segment: INITIAL CODE SEGMENT 8000          eqm       vs current org: 8003
       -3 bytes of ROM space left in the main area of bank 1.

    C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.asm (495): error: Origin Reverse-indexed.

    Cartridge size not a multiple of 4K bytes!

    7800header 0.10 Jun 15 2020 23:49:19
    *** WARNING: The file size of C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.bin isn't correct.

      opened parameter file a78info.cfg
    7800makecc2 v0.1
      The ROM 'C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.bin' is compatible with CC2.


  3. Okay so I tried changing it to just "dmahole 0" and the compiler tells me "-3 bytes of ROM space left in the main area of bank 1." Which was the issue I was having earlier where the extra bit of asm that is removed with noflow is causing issues. And as for the goto/gosub being used to get to my code, I can't place a goto command before the dmahole 0 noflow command is placed and if I place it after, it will compile but my code is still not running :(


  4. It's inside the dmahole. This is the most recent code: 

     

    ;init
    
    	set tv ntsc
    	set romsize 128k
    	set screenheight 224
    	set basepath Programs\LadyLadyDemo\gfx_LadyLady
    	
    	bank 1
    	
    ;titleScreen
    
    	;Load first gfx block
    	
    	;Background chunks
    	
    	incgraphic Background1.png 160A 0 3 2 1
    	incgraphic Background2.png 160A 0 1 2 3
    	
    	;LadyLady 
    	
    	incgraphic LLTitleRow1Chunk1.png 160B 0 1 3 7 2 6 5 13 11 10 9 14 0
    	incgraphic LLTitleRow2Chunk1.png 160B 0 1 2 6 5 3 7 13 14 0 0 0 0
    	incgraphic LLTitleRow3Chunk1.png 160B 0 1 7 3 5 13 2 11 6 14 10 9 0
    	incgraphic LLTitleRow3Chunk2.png 160B 0 1 14 11 10 9 2 13 0 0 0 0 0
    	incgraphic LLTitleRow4Chunk1.png 160B 0 1 7 6 5 11 10 14 13 9 2 0 0
    	incgraphic LLTitleRow4Chunk2.png 160B 0 14 11 10 9 13 1 3 2 5 0 0 0
    	incgraphic LLTitleRow5Chunk1.png 160B 14 11 10 13 1 5 0 7 6 9 3 2 0
    	incgraphic LLTitleRow5Chunk2.png 160B 1 14 0 0 0 0 0 0 0 0 0 0 0
    	incgraphic LLTitleRow6Chunk1.png 160B 0 14 13 11 10 9 1 2 3 5 0 0 0
    	incgraphic LLTitleRow7Chunk1.png 160B 0 1 14 13 11 10 9 0 0 0 0 0 0
    	
    	;Letters
    	
    	incgraphic LetP.png 160A 0 3 2 1
    	incgraphic LetR.png 160A 0 3 2 1
    	incgraphic LetE.png 160A 0 3 2 1
    	incgraphic LetS.png 160A 0 3 2 1
    	incgraphic LetF.png 160A 0 3 2 1
    	incgraphic LetI.png 160A 0 3 2 1
    
    	dmahole 0 noflow
    	
    	clearscreen
    	
    	asm
    	
    	lda #$0f
    	sta $35
    	
    	lda #$5c
    	sta $36
    	
    	lda #$86
    	sta $37
    	
    end
    
    	BACKGRND=$25
    	
    	plotsprite LetP 5 40 192
    	
    	savescreen
    	
    	drawscreen
    	
    	
    	
    	
    	;LadyLady Logo
    	
    	incgraphic LogoRow1Chunk1.png 160A 0 1 3 2
    	incgraphic LogoRow1Chunk2.png 160A 0 1 3 2
    	incgraphic LogoRow1Chunk3.png 160A 0 1 3 2
    	incgraphic LogoRow2Chunk1.png 160A 0 1 3 2
    	incgraphic LogoRow2Chunk2.png 160A 0 1 3 2
    	incgraphic LogoRow2Chunk3.png 160A 0 1 3 2
    	incgraphic LogoRow2Chunk4.png 160A 0 1 3 2
    	incgraphic LogoRow3Chunk1.png 160A 0 1 3 2
    	incgraphic LogoRow3Chunk2.png 160A 0 1 3 2
    	incgraphic LogoRow3Chunk3.png 160A 0 1 3 2
    	incgraphic LogoRow3Chunk4.png 160A 0 1 3 2
    	incgraphic LogoRow4Chunk1.png 160A 0 1 3 2
    	incgraphic LogoRow4Chunk2.png 160A 0 1 3 2
    	incgraphic LogoRow4Chunk3.png 160A 0 1 3 2
    	incgraphic LogoRow4Chunk4.png 160A 0 1 3 2
    	incgraphic LogoRow5Chunk1.png 160A 0 1 3 2
    	incgraphic LogoRow5Chunk2.png 160A 0 1 3 2
    	incgraphic LogoRow5Chunk3.png 160A 0 1 3 2
    	incgraphic LogoRow5Chunk4.png 160A 0 1 3 2
    	
    	bank 2
    
    	bank 3
    
    	bank 4
    
    	bank 5
    
    	bank 6
    
    	bank 7
    
    	bank 8
    	
    	
    	

     


  5. To answer your questions:

    I use Graphics Gale to export my graphics.

    I have currently stripped back everything to just the first bank and still no dice.

    I removed the reboot and that wasn't the issue apparently.

     

    I went ahead and removed dmahole 1 and moved the incgraphic entries at the very top of the bank and just tried to display the letter 'P' from my stored graphics, and still no luck...

    If the "libpng warning: Incorrect bKGD chunk index value" is causing the issue, I'm not really sure how to correct it at the moment 😕 as I can't get ImageMagick that SmittyB mentioned to run on windows' Linux Kernal no matter what I do. 


  6. Here's what I get:

     

    C:\Users\dusti\Desktop\ATARI7800\7800basic>7800bas.bat Programs\LadyLadyDemo\LL128K.bas
    7800basic v0.10 Jun 15 2020 23:49:14
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value

    *** (): INFO, bank #1, GFX Block #0 starts @ $8000
            Background1 Background2 LLTitleRow1Chunk1 LLTitleRow2Chunk1
            LLTitleRow3Chunk1 LLTitleRow3Chunk2 LLTitleRow4Chunk1
            LLTitleRow4Chunk2 LLTitleRow5Chunk1 LLTitleRow5Chunk2
            LLTitleRow6Chunk1 LLTitleRow7Chunk1 LetP LetR LetE LetS LetF LetI
            LogoRow1Chunk1 LogoRow1Chunk2 LogoRow1Chunk3 LogoRow2Chunk1
    *** (): INFO, bank #1, GFX block #0 has 16 bytes left (1 x 16 bytes)


    *** (): INFO, bank #1, DMA hole #0 starts @ $9000
            DMA hole code found and imported

    *** (): INFO, bank #1, GFX Block #1 starts @ $A000
            LogoRow2Chunk2 LogoRow2Chunk3 LogoRow2Chunk4 LogoRow3Chunk1
            LogoRow3Chunk2 LogoRow3Chunk3 LogoRow3Chunk4 LogoRow4Chunk1
            LogoRow4Chunk2 LogoRow4Chunk3 LogoRow4Chunk4 LogoRow5Chunk1
            LogoRow5Chunk2 LogoRow5Chunk3 LogoRow5Chunk4
    *** (): INFO, bank #1, GFX block #1 has 2368 bytes left (148 x 16 bytes)


    *** (): INFO, bank #1, DMA hole #1 starts @ $B000
            DMA hole code found and imported

    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value
    libpng warning: Incorrect bKGD chunk index value

    *** (): INFO, bank #8, GFX Block #0 starts @ $E000
            TrojanRow1Chunk1 TrojanRow2Chunk1 TrojanRow3Chunk1
            TrojanRow3Chunk2 TrojanRow4Chunk1 TrojanRow4Chunk2 NewMars1
            NewMars2 NewMars3 NewMars4
    *** (): INFO, bank #8, GFX block #0 has 2336 bytes left (146 x 16 bytes)


    7800basic compilation complete.
    User-defined 7800.asm found in current directory
       0 bytes of ROM space left in the main area of bank 1.
                 4041 bytes of ROM space left in DMA hole 0.
                 4083 bytes of ROM space left in DMA hole 1.
       16380 bytes of ROM space left in the main area of bank 2.
       16380 bytes of ROM space left in the main area of bank 3.
       16380 bytes of ROM space left in the main area of bank 4.
       16380 bytes of ROM space left in the main area of bank 5.
       16380 bytes of ROM space left in the main area of bank 6.
       16380 bytes of ROM space left in the main area of bank 7.
       5904 bytes of ROM space left in the main area of bank 8.
         $1880 to $1fff used as zone memory, allowing 27 display objects per zone.
         2429 bytes left in the 7800basic reserved area.

    Complete.
    Read $C000 bytes of cartridge data.
    Cartridge hash area is from $F000 to $FFFF.
    Cartridge signature for 'C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.bin' appears to be empty.
    Encrypting... 00 01 success!

    A valid cartridge signature is:
    04 9e ac 53 d5 c6 21 11  18 bf ba ca 96 60 ee 98
    d2 ff 45 c4 8f a5 48 67  60 1f a6 e2 39 7d cd b1
    75 a5 75 b6 3e 9e 8c 1a  46 62 42 c3 ca 32 55 2c
    09 87 7e 4d 1c d3 e8 dc  52 95 59 98 31 5e 99 d7
    e6 c2 3e bf be df 43 84  e8 1e 47 ac 1d 9f 4f 37
    c8 7f 30 89 13 92 b8 d8  a2 d9 7f 79 07 f5 bc 4f
    d4 06 1b ef 0e 22 84 49  79 e7 f0 43 4a 00 af 30
    e2 44 c4 e3 66 9c ea 97

    Wrote back 120 bytes to 'C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.bin'.

    7800header 0.10 Jun 15 2020 23:49:19
      opened parameter file a78info.cfg
    7800makecc2 v0.1
      The ROM 'C:\Users\dusti\Desktop\ATARI7800\7800basic\Programs\LadyLadyDemo\LL128K.bas.bin' is compatible with CC2.

    • Like 1

  7. Atarius Maximus had mentioned earlier that a bank can have 2 graphics blocks, but every time I try to compile it states that I have ran out of space in the main area. The only way to get it to compile is to use "dmahole X noflow" for all the dma holes, however then the code I wrote wont function at all. So I'm wondering what the proper format is to use the 2 graphic block per bank setup, as I definitely need the extra graphics space since I'm doing a graphics demo lol.


  8. 4 minutes ago, SlidellMan said:

    Leo, I know how that feels. I had to rewrite Heofonfīr, not once, twice, thrice, but four times. However, I keep getting nothing.

    Yeah, it isn't so bad to rewrite early on, fail fast and all that, but once you're super far into something it becomes a MUCH bigger issue. However, just persist man, with enough practice and clever problem solving, something will come together.

    • Thanks 1

  9. I wanted to post a quick update. I know it's been quite some time since I've shown anything but trust me I have been working on this project, there's just been many set-backs due to programming flubs and school. I wanted to discuss exactly what issues I've run into, and what has actually been updated since last time.

     

    Firstly, not long after posting the first update I decided to rewrite the code almost completely from scratch since it was very unorganized, inefficient, and all-around hard to work with. This ended up taking a lot longer than expected, roughly 2 weeks of working each night after school. 

     

    I then decided I would create routines for fading the screen in and out, to save space and have more efficient code. While not perfect, I got it working in about 5 days.

     

    In between coding everything, I was also creating/updating graphics for new and previously made screens. I updated the LadyLady character and logo on the title screen to better utilize the 160B palette, used the topscreen routine to change the display mode on the parallax screen and added a new screen afterwards.

     

    After all of these changes and interruptions due to school and the like, I was finally gonna post a new update ROM, however I ran into a new problem... space. I had hit my 48k limit after 4 full screens of graphics, and unless I was to utilize compression to fit more into less. To top it off, I had encountered some kind of graphical glitch that I was unable to resolve, I had a sneaking suspicion it had to do with my space being so dangerously low, to somehow corrupt graphics in earlier banks.

     

    I then realized I was going to need to learn how to work with bankswitching in 7800Basic, and I would need to rewrite my code again, to work with a 128k bankswitching method. It has been a rough transition, and I have been unable to get even one of my created screens to display, to at least get my foot in the door.

     

    So here we are, I am finally on a week-long break and have the opportunity to code some more on this, however due to having to basically start over again, it may be some time before another update is available. To give people something to chew on until then, I'm gonna post the unfinished 48k version ROM and code, complete with updated screens, a brand new screen, and a minor graphical glitch I was unable to fix. If anyone is able to help explain what is causing the graphical glitch, then please give me a holler, I would love to know what's going on with this. 

     

    Also, special thanks to Mord for assisting me so far through the project, this wouldn't have been possible without his help.

     

    Anyway, I hope everyone is doing okay and if anyone has any feedback I'd love to hear it.

     

    Files:

    LadyLadyNewStruct.bas.a78 LLZIP.zip

    • Like 3

  10. 10 hours ago, SlidellMan said:

    Just downloaded and I have to say that it looks promising.

    Thanks, man! I apologize for not having more to show thus far, I decided to restructure most of the code to be more efficient and less un-organized. That has eaten up most of my development since the last large reveal, and the Coronavirus situation is certainly not helping either.


  11. 10 hours ago, SmittyB said:

    Nothing looks obviously wrong to me. I think what you're seeing is where the values of the brighter colours take more frames to decrement to the lowest value, and because your text has large areas of colour with brightness changes, as it gets darker the colour divisions are a bit more obvious where the brighter areas take on the same colour of the darker areas a frame or so after.

    I had thought this was it at first, but there would be a section of the art that was all one color, say white, it would be split up and you can see this on the headphone-looking device on LadyLady's ear, that device was all using pure white and during the fade it gets split. 

    7 hours ago, RevEng said:

    7800basic code runs during the visible screen, until a display changing command happens (ie. plot* commands) at which point 7800basic then waits for the visible screen to end before proceeding.

     

    Color register updates don't cause this same screen wait to happen, since nobody will ever perceive a single color register update. But regular updates of the color registers happening around the same time may be perceived as tearing.

     

    Try adding the drawwait command just prior to the color register updates. This causes you to waste a bunch of computational time, so I wouldn't choose to use this technique during regular game code (not without positioning the color register updates closer to my plot* commands, anyway) but you're not doing anything other than the fading here so you should be fine.

     

    Side note 1 - you don't need to "clc" or otherwise worry about the carry for "dex". It's not affected by, nor affects, the carry.

    Side note 2 - if you just want to decrease a memory location without actually using the value anytime soon, you don't need to load, decrement, and store. You can just use the "dec" opcode directly on the memory instead. e.g. "dec p0COL3"

    Thank you for the advice, I placed in the drawwait command, and it's working fine now :) 

    Also I appreciate the 6502 advice. I'm only now starting to use asm more often, so tips like this are very much appreciated!

    • Like 3

  12. I've create a screen fade-out function for use in my LadyLady Demo, but I'm having an issue where part of the screen will be a frame ahead of the other. In other words, part of the screen is fading at a faster rate than the rest of the screen, and the section of the screen that is lighter than the other will "catch up" on the next frame. My assumption is that this is a screen tearing issue but I'm not 100% sure, and even if it is I've tried everything I could possibly think of to correct it, to no avail. I have included screenshots of the problem in action and my code as an attachment, just look for the fadeout function, it should be labeled as such. Any help would be appreciated, thank you.

     

     

    Cap1.png

    Cap2.png

    Cap3.png

    LadyLadyDemo.zip

×
×
  • Create New...