Vigilante [port SMS]

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Vigilante [port SMS]
by on (#173247)
I remember small, under the building where he lived was a bar that had the arcade machine Vigilante Irem company. I left enough money in this game. Years later, when I finally had a NES I started buying magazines in video games and I could see the analysis that made the Vigilante video game Sega Master System.
I was very angry that did not exist a version of the NES Vigilante, so good ... why not do it yourself?

With what little I've learned in cc65, I could recreate some level 1 of this game, based on the version of SMS.

What do you think?

Image Image Image Image

Rom demo: https://dl.dropboxusercontent.com/u/319 ... emo%29.nes
Re: Vigilante [port SMS]
by on (#173248)
It look gorgeous. Awesome graphics.
Re: Vigilante [port SMS]
by on (#173251)
Looks great. I love that game. Can't wait to see the result!

edit:

Tested it on Nintendulator and it doesn't work. You should check your code since it may be an indication that it will not work on the real thing.
Re: Vigilante [port SMS]
by on (#173255)
Banshaku wrote:
Looks great. I love that game. Can't wait to see the result!

edit:

Tested it on Nintendulator and it doesn't work. You should check your code since it may be an indication that it will not work on the real thing.


In a real NES if it works

Image
Re: Vigilante [port SMS]
by on (#173258)
It freezes also on my EverDrive in my NES Toploader.

Is there perhaps a reason that the ROM is currently PAL exclusive?

The first background displays, but I also get two garbage tiles in the status bar. No buttons do anything.
Re: Vigilante [port SMS]
by on (#173265)
Diskover wrote:
In a real NES if it works

Are you using a PowerPak or an EverDrive? Those cartridges tend to hide initialization issues that games might have, because they initialize the system before transferring control to the game.

As for the game itself, I never really played on the SMS, but your graphics look pretty good. Will give the ROM a try when I can.
Re: Vigilante [port SMS]
by on (#173267)
In Nintendulator DX, there's no missing initialization, but it does spin forever on a sprite 0 hit that doesn't happen.
Re: Vigilante [port SMS]
by on (#173268)
It's doing OAM DMA outside vblank, with rendering enabled. (Based on NDX, starts at scanline 260, ends at scanline 3.) Write that enables rendering ($2001 <= $1E) at $C552, earlier on the same scanline 260.

EDIT: I'm guessing that on real hardware the sprite 0 ends up surviving that, but on Nintendulator the corruption behaves somewhat differently, overwriting sprite 0.
Re: Vigilante [port SMS]
by on (#173276)
darryl.revok wrote:
It freezes also on my EverDrive in my NES Toploader.

Is there perhaps a reason that the ROM is currently PAL exclusive?

The first background displays, but I also get two garbage tiles in the status bar. No buttons do anything.


tokumaru wrote:
Diskover wrote:
In a real NES if it works

Are you using a PowerPak or an EverDrive? Those cartridges tend to hide initialization issues that games might have, because they initialize the system before transferring control to the game.

As for the game itself, I never really played on the SMS, but your graphics look pretty good. Will give the ROM a try when I can.


thefox wrote:
It's doing OAM DMA outside vblank, with rendering enabled. (Based on NDX, starts at scanline 260, ends at scanline 3.) Write that enables rendering ($2001 <= $1E) at $C552, earlier on the same scanline 260.

EDIT: I'm guessing that on real hardware the sprite 0 ends up surviving that, but on Nintendulator the corruption behaves somewhat differently, overwriting sprite 0.


How weird. I am using a Chinese version to try and not give me any errors :?

Image
Re: Vigilante [port SMS]
by on (#173278)
It looks like the Jack DIY NES flashcart is an EverDrive N8 clone... so maybe there's a difference if the console instead?
Re: Vigilante [port SMS]
by on (#173279)
It's a bug in your program. The fact that it happens to work on hardware doesn't mean that your program is well-behaved.
Re: Vigilante [port SMS]
by on (#173281)
thefox wrote:
It's a bug in your program. The fact that it happens to work on hardware doesn't mean that your program is well-behaved.


Okay. I intend to pass it to a UNROM (for I stay out of space) and change various things, to see if it clears.
Re: Vigilante [port SMS]
by on (#173282)
From what I understand of your comments, the sprite DMA is spilling outside of vblank on NTSC, but not on PAL, which has a longer vblank, so maybe the game's working only on PAL machines (or emulators in PAL mode).

But that still conflicts with the fact that OAM DMA should happen during the first 20 scanlines of vblank on PAL consoles, so maybe even on PAL this isn't exactly stable.
Re: Vigilante [port SMS]
by on (#173285)
tokumaru wrote:
From what I understand of your comments, the sprite DMA is spilling outside of vblank on NTSC, but not on PAL, which has a longer vblank, so maybe the game's working only on PAL machines (or emulators in PAL mode).

But that still conflicts with the fact that OAM DMA should happen during the first 20 scanlines of vblank on PAL consoles, so maybe even on PAL this isn't exactly stable.


I have no idea, it can be.

Testing with VirtuaNES or FCEU works without problem, in both NTSC and PAL. :?
Re: Vigilante [port SMS]
by on (#173290)
Do not trust VirtuaNES nor FCEU for accuracy. (I prefer Nintendulator for accuracy).

Maybe put sprite DMA earlier in your list of to-do's during v-blank.
Re: Vigilante [port SMS]
by on (#173303)
Diskover wrote:
VirtuaNES or FCEU

These are very forgiving emulators, not suitable for testing timing and edge cases.
Re: Vigilante [port SMS]
by on (#173304)
I was not aware the rom was PAL. After switching to PAL it does work on nintendulator.
Re: Vigilante [port SMS]
by on (#207756)
Can someone add a new download link? The link on the first page does not work anymore.