8bitworkshop icon indicating copy to clipboard operation
8bitworkshop copied to clipboard

Strange memory error for the NES.

Open BroDudeGuyMan opened this issue 1 year ago • 2 comments

I am coding my first NES game in assembly using the NES 2.0 headers (*.s files) and I was following along Inkbox's beginner tutorial. I was happily frying my brain, and the code ran. It showed the background and 4 sprites that I picked! Everything was going great! I then changed some palette values and then these errors came up:

  1. this.program: Warning: neslib2.cfg:12: Segment 'HEADER' overflows memory area 'HEADER' by 16 bytes

  2. this.program: Warning: neslib2.cfg:28: Segment 'VECTORS' overflows memory area 'VECTORS' by 4 bytes

  3. this.program: Error: Cannot generate most of the files due to memory area overflows

I don't entirely know what happened, but it screamed BUG!

Here are the aforementioned HEADER and VECTORS segments:

.segment "HEADER" .byte "NES" ;Identification string. MUST HAVE!! .byte $1A .byte $02 .byte $01 .byte $00 .byte $00, $00, $00, $00 .byte $00, $00, $00, $00, $00

.segment "VECTORS" .word NMI .word RESET ; Specialized hardware interupts

None of the rest of the code is getting flagged, even when I remove these segments.

BroDudeGuyMan avatar Jun 29 '24 01:06 BroDudeGuyMan

The immediate thing that comes to mind, can it be possible you have two copies of the header and vector segments? Or you are .include-ing them again somewhere else?

sehugg avatar Jun 30 '24 17:06 sehugg

I did not do that. There are only 5 segments in my code: HEADER, ZEROPAGE, STARTUP, VECTORS, and CHAR. When I ran the same code on my local system, it built and ran just fine.

BroDudeGuyMan avatar Jun 30 '24 23:06 BroDudeGuyMan