Sprite multiplexing to surpass the 64 sprite limit

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

User avatar
Vectrex2809
Posts: 102
Joined: Mon Jul 14, 2014 6:05 am
Location: Tokyo, Japan

Re: Sprite multiplexing to surpass the 64 sprite limit

Post by Vectrex2809 »

tepples wrote:Uploading a new display list to OAM must take place while rendering is off, which means a blank bar across the screen at least five scanlines in height. I think Bigfoot does this, but not much else.
Now that you mentioned Bigfoot, there is an interview of this game's programmer about what tricks he used here, including the sprite thingy - http://www.retrogamingtimes.com/rgtimes10/
User avatar
N·K
Posts: 15
Joined: Mon May 11, 2020 2:45 am
Location: Japan

Re: Sprite multiplexing to surpass the 64 sprite limit

Post by N·K »

I know this is an old topic, but it fit what I wanted to post...

About a year ago, I came up with a similar idea and created a test ROM to try it out.
Naturally it hardly worked properly, but after many tests using blargg's nmi_sync code, I seem to have miraculously found a timing where it works.
I have no idea why this works or if it works on all NESs, but I will try to post the actual test ROM.

As shown in the attached picture, the OAMDATA is written for each scan line at the left center of the screen, and only the Y coordinate is changed to display a total of 112 sprites.

I tested it with Famicom (PPU:2C02E) and AV Famicom (probably 2C02H) and it seemed to work stably without any problems.
(It did not work well on the emulator.)

P.S.: In this test ROM, before writing to PPUMASK and stopping the PPU, I do the weird thing of writing to OAMADDR first, but if I set OAMADDR after writing to PPUMASK, for some reason, a glitch occurs about 30% of the time each time the power is turned on.
IMG_0927.jpg
Attachments
spr_doubler_test.asm
(6.3 KiB) Downloaded 37 times
spr_doubler_test.nes
(24.02 KiB) Downloaded 38 times
Post Reply