Now I want to try it on a Kevtris FPGA box...

Moderator: Moderators


Certainly not. I'm saying Hyperkin is lazy for failing to provide for some automatic means to work with the continued release of games such as yours, such as the autodetection that I outlined or the manual mapper input that you outlined. I was pointing out to what extent Hyperkin's engineering priorities would interact with yours.rainwarrior wrote:So... are you saying that I'm incompetent?tepples wrote:As for engineering priorities, your sense of priorities might change once you have to issue refunds. "I bought a copy of Lizard and it won't even play on my Retron 5. What gives?"
Yeah my MMC5 is likely not very good. If you want to help fix it up.Dreamwriter wrote:Right. I improved the situation, I had moved my startup code to the very last PRG-ROM bank (since as I was told that's the default bank MMC5 has loaded), but I missed the ROM I was reading the text to display from - that text was still on the very first bank. Odd that puNES worked with that, but once I fixed it, that made it so both puNES and Nintendulator now run the demo correctly. Now I gotta keep playing around to see if I can get Nesicide and FCEUx to run the demo (especially Nesicide, I'm using that as my dev tool).
Of course, once I get the basic demo working on all these emulators and start playing around with special features like the scanline IRQ, the usable emulators may dwindle again...
I've tried to figure it out, but I got stumped, so I don't think I'll be able to help much. I think I'm learning how to use the MMC5 pretty well (now that I'm setting it all up my "game" now works in FCEUx), and from what I can tell, Nesicide is loading palettes correctly, the extended attribute table data, the nametable data, and which nametable to display. It might be the CHR data or CHR bank that's different, and I might be setting that up wrong, I only have one 8k bank (the one from the Hello World template); I'm setting the iNES header to 1 8k CHR bank and telling MMC5 to use 8k CHR banks and use bank 0. Nesicide displays a white screen when I try to display the text (it's not crashing, it's just not displaying right).cpow wrote:Yeah my MMC5 is likely not very good. If you want to help fix it up.
You're off by a factor of two. Each byte in the attribute table describes the palette used by 16 tiles, not 4: each 2 bits in the attribute table describes the palette used by a 4 tiles in a 2x2 squareDreamwriter wrote:I have a question - am I correct in the statement that the MMC5 extended attribute mode, when it comes to palettes, is really just a convenience thing so you don't have to use math to figure out which bits of which byte to set for the BG tile you want? I originally thought the NES only let you set the BG palette for any 2x2 tile square, but it looks like I was wrong, within the attribute byte for the 2x2 square you can set each individual tile to a palette using every two bits of the byte.
I'll have to spend some time to take a look at my MMC5.Dreamwriter wrote:I've tried to figure it out, but I got stumped...cpow wrote:Yeah my MMC5 is likely not very good. If you want to help fix it up.
If it'll help you I've attached my Nesicide project to this post so you can see what I'm doing - it's all still simple since I've barely started it and am still teaching myself NES/6502 programming, so should be easy to follow (Main.s sets everything up and then passes control to Title.s). I've removed the hblank warping from the title since that was just an experiment to make sure I could do it.cpow wrote:I'll have to spend some time to take a look at my MMC5.
Yes. NESICIDE's MMC5 is unfinished so likely crap. Sorry for the confusion!Dreamwriter wrote:I think I figured out the problem with Nesicide - it doesn't seem to be accessing the correct CHR bank for each tile using MMC5's extended attribute table. My game is currently using 4k bank 1 for all chars on the screen, but Nesicide is showing 4k bank 0 (I put actual art into bank 0, so now I'm seeing that instead of a blank screen). This is where you store %ppbbbbbb in EX_RAM at $5C00, where %pp is the palette for the tile and %bbbbbb is the bank to grab the tile from.