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/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.
Sprite multiplexing to surpass the 64 sprite limit
Moderator: Moderators
- Vectrex2809
- Posts: 102
- Joined: Mon Jul 14, 2014 6:05 am
- Location: Tokyo, Japan
Re: Sprite multiplexing to surpass the 64 sprite limit
Re: Sprite multiplexing to surpass the 64 sprite limit
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.
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.
- Attachments
-
- spr_doubler_test.asm
- (6.3 KiB) Downloaded 37 times
-
- spr_doubler_test.nes
- (24.02 KiB) Downloaded 38 times