This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Recca

Recca
by on (#21650)
Does this game blow anyone else's mind? Fast pased, at times constant background scrolling effects (see second part of stage 1 -- after the first boss... and the snake minibosses on stage 2), a downright insane number of on-screen objects and collision possibilities, etc, with extremely little slowdown (it only slows to maybe 80% speed on parts which get extremely hairy).

If you haven't tried the game -- I recommend at least checking it out, even if you're not a fan of vertical shooters. Just looking at it from a standpoint of "I can't believe they pulled this off on an NES" would be enough.

There was also a hack of it released recently called "Recca - Pure" which enabled a hidden Zanki Mode, and allows you to select between Normal/Hard difficulties. I mention this because Hard mode is even more impressive than Normal mode.

I know Battletoads employs a lot of speed tricks to squeeze as much as it can in VBlank. I'd be interested in knowing what kind of tricks Recca is doing. It really is the most impressive NES game, imo. Makes me wonder what kind of drugs those coders were on.

Has anyone looked at this game?

by on (#21652)
Heh, the ennemy in a such games have much simpler AI than in an average platformer (no collision detection, just some patterns).
I'm still unable to pass stage 1 right now.

by on (#21654)
It's true there's no map for them to collide with, but there's still the player (and the player's bullets/bomb).

But yeah their AI is pretty simple. That's not really all that impressive... what's impressive is the sheer number of them!

by on (#21655)
There are 240 scanlines of draw time, or 27280 cycles. This is over 1,000 cycles to compute each of 24 simultaneous enemies' motion and collisions and draw its sprite to shadow OAM.

If player bullets always travel generally upward, then their y coordinate decreases monotonically with time. Then checking an enemy ship for collision against a set of player bullets is relatively quick because player bullets can be kept sorted by time and thus by their y coordinate. The algorithm becomes a binary search for the closest bullet and then a bounding box check.

The formation pattern engine also doesn't have to run for all enemies in all frames: it can run for one enemy in a formation and then use Euler dead reckoning until its next turn.

What mapper does this game use, so that I can tell exactly how much effort needed to go into the background warping effect? Does it have PRG RAM?
Re: Recca
by on (#21656)
Disch wrote:
Makes me wonder what kind of drugs those coders were on.

Heh, it's funny when you look at the comments of 8-bit coders (more on home computers than consoles, but still,) just how many of them mention alcohol and drugs =)

"I may be a great programmer when I'm sober, but I'm a MASTER when I'm tanked!"

by on (#21658)
tepples wrote:
What mapper does this game use, so that I can tell exactly how much effort needed to go into the background warping effect? Does it have PRG RAM?


Nestopia says it's Mapper 4, which means it uses either a MMC3 or a MMC6. It also says it has 128k of PRG-ROM and 128k of CHR-ROM.

Does anyone have info on Naxatsoft (the publisher)? I've looked around on Google for them, but I've found a whole bunch of stuff that might or might not be related to the Naxatsoft that made Recca.

by on (#21659)
Aren't there 29780.2/3 cc's per frame? (262 * 341) (NTSC)

by on (#21660)
WedNESday wrote:
Aren't there 29780.2/3 cc's per frame? (262 * 341) (NTSC)

Hey, coder point of view here, not emulator author. There is no point in including vblank time in there, as that is already used for something else (uploading stuff to VRAM).

EDIT: Coders do not care about 2/3 of a cycle either.

EDIT 2: Checked the game out. It is indeed very well done, but I don't think it's that impressive. Space shooters are somewhat simple to code. Most only scroll in one direction (and the scroll is not infuenced by the player), there's zero (or close to zero) level map decoding and collision...

The only real thing that has to be done is basic AI and a lot of collison detection, since there are so many objects and bullets, but I don't think that is anywhere close to "thought to be impossible on the NES"... just my opinion! =)

by on (#21661)

by on (#21663)
Nice trick of having most of the patterns be up and down, two abreast, so as to minimize the possibility of more than four 16x16 sprites on one line.

by on (#21664)
I could only imagine if Micronics made this game instead... :shudders:

by on (#21669)
What is impressive in the second part of level one (according to the videos) is that the game does both gameplay and raster effects at once.

by on (#21676)
Bregalad wrote:
What is impressive in the second part of level one (according to the videos) is that the game does both gameplay and raster effects at once.

That's not difficult with MMC3. Even Vice: Project Doom, a non-descript side-scroller, does minor raster effects on its backgrounds.

by on (#21695)
Quote:
That's not difficult with MMC3.

The MMC3 doesn't make anything much easier when it comes to creating raster effects. It can just trigger IRQs here and here, but if you want to write to $2005 during almost the whole screen, all this while doing gameplay stuff, the MMC3 won't help.
Quote:
Hey, coder point of view here, not emulator author. There is no point in including vblank time in there, as that is already used for something else (uploading stuff to VRAM).

Not so much stuff to do in VBlank exept Sprite DMA and scroll uploading in a vertical side-scroller, really. Just Background changes ocasionally, but those are usually done when few ennemies are on screen.

EDIT : Yeah, on level 2 the game actually change scrolling about each 16 scanlines or so with the MMC3's IRQ counter, so effectivly it makes the task much easier. I just trought the thing was doing it intensivly each scanline looking at the videos, but finally it doesn't.

by on (#22128)
p.s. the music's really good too.