I am now at the point where the game starts pulling the current stage id, modifies it by adding 20 to it, to obtain the bank id for the current stage construction data, it always loads the data from A000-BFFF, so right now I'm playing through the entire nes game, I wrote a routine to log every creat...
A closer counterpart to NES PPUSTATUS ($2002) is SNES RDNMI ($4210) . For both registers: Bit 7 goes high on vblank and low at end of vblank or after a read. If this register hasn't been read, disabling and reenabling NMI during vblank causes a second NMI. There are about three reasons for an NES p...
I just had the hi byte for the vram wrong. I setup an infinite loop at the end of my dma for on-the-fly manual testing, and altered the ram values. 00=$0000 vram 01=$0200 vram 02=$0400 vram Etc, etc I have the gfx pointer now loading correctly, and storing correctly in vram! I converted all gfx (bg/...
Thank you, dougeff & creaothceann! I need to redo my code yet again, I need to change how $2100 is written to. I need to redo my massive tables of how the game sets up the NES $2000 bits. When the value is 8# in nes for $2000, it's for NMI, but I have that check of that bit going to $2100 in the...
A DMA to the VRAM could fail if the screen is active. You need either forced blank of v-blank. Interesting side note, DMA uses 100% of the CPU and can't be interrupted. Any pending interrupts will wait until it is done before firing. So we know that NMI or IRQ are not to blame. (HDMA can interrupt ...
Ok, so I'm making progress, but can't figure out why my DMA doesn't finish its transfer, and then doesnt transfer anything else when the routine is called upon 3 more times. I'll get my code up, rather big. Here's the code primary graphics load routine lda $f5 ;current $8000-$9FFF pha lda $f6 ;curre...
Ok so here's an update to where I am with this port. 8 bit colors point to their 16-bit equivalent, and are loaded into cgram. I fixed my issues with the misunderstandings of the TSB/TRB usage, bits are now set properly in the registers I have set aside, for the various snes addresses. I've set this...
Definitely more than 2 vertical screen scrolls, in the game I'm working on. Glad this is being discussed now, I'm nowhere near ready for screen construction, so this is good timing here.
NES nametables are 30 tiles high, so it's not exactly the same as 32 tile high SNES maps. Horizontal Mirroring (up or down scrolling) is similar to 32x64 SNES, but might require code changes, since NES screens are only 30 tiles tall. Code changes? I fear now my vertical portions of the game will lo...
Thanks for that info dougeff, but is the snes able to select which part of the 32x64/64x32 screen to have displayed? The nes $2000 #2,#1,#0 bits select which $20/$24/$28/$2C Nametable to display, does the snes have the same thing? You select the Name Table (or Map) by the $2107-$210a registers for ...
Thanks for that info dougeff, but is the snes able to select which part of the 32x64/64x32 screen to have displayed? The nes $2000 #2,#1,#0 bits select which $20/$24/$28/$2C Nametable to display, does the snes have the same thing? If not I'll bypass this part of the code in my port and simply rely o...
Ok I'm just about done fixing my TRB/TSB issues, (i work full time so my times limited) and I want to ask about mirroring. This game uses the mmc3 $A000 address to set either horizontal or vertical mirroring. The gameplay is always displayed on the NES nametable address $2000. My question is, is thi...