News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: The Curse of Holy Diver  (Read 3936 times)

monaco

  • Jr. Member
  • **
  • Posts: 29
  • FOR THE CHILDREN!
    • View Profile
    • Monaco's Family Computing
The Curse of Holy Diver
« on: May 14, 2020, 02:55:48 pm »
Hello,

it has come to my attention that my translation for Holy Diver apparently introduces heavy glitches upon the start of the first level. This indeed appears to be the case. RHDN is currently the most known host for the patch, although I'm attempting to retrieve the file from my personal backups.

However, this longplay from 2015 (https://www.youtube.com/watch?v=HpBKmu7Yxy0) shows the patch working fine and dandy. Can someone help me guess what happened? Was it the work of Satan's forces?

laserlambert

  • Jr. Member
  • **
  • Posts: 41
    • View Profile
Re: The Curse of Holy Diver
« Reply #1 on: May 14, 2020, 03:21:22 pm »
I've personally noticed that it depends on which emulator is playing the game. Mesen glitches for instance, but FCEU does not.

nesssnightmare

  • Jr. Member
  • **
  • Posts: 5
    • View Profile
Re: The Curse of Holy Diver
« Reply #2 on: May 14, 2020, 03:54:42 pm »
This game can't be translated.

It's been down too long in the midnight sea.

monaco

  • Jr. Member
  • **
  • Posts: 29
  • FOR THE CHILDREN!
    • View Profile
    • Monaco's Family Computing
Re: The Curse of Holy Diver
« Reply #3 on: May 14, 2020, 05:04:24 pm »
That seems to be the case. Hmmm.

Disch

  • Hero Member
  • *****
  • Posts: 2814
  • NES Junkie
    • View Profile
Re: The Curse of Holy Diver
« Reply #4 on: May 14, 2020, 08:02:10 pm »
Most likely cause of differing behavior across emulators is a timing issue -- as most other aspects of emulation are relatively trivial and should be pretty uniform.

Did your hack do any asm changes or anything that would cause a routine to run longer than necessary?  It might be as simple as just having longer strings and thereby increasing the time spent in the routine that prints them.

A first-step diagnostic might be to just shrink the text that is printed in the part of the game exhibiting glitches to see if the problem goes away.

monaco

  • Jr. Member
  • **
  • Posts: 29
  • FOR THE CHILDREN!
    • View Profile
    • Monaco's Family Computing
Re: The Curse of Holy Diver
« Reply #5 on: May 15, 2020, 02:46:45 am »
No ASM involved, just manual byte substitution and a font replacement.

PZT

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: The Curse of Holy Diver
« Reply #6 on: May 15, 2020, 02:51:39 am »
Most likely cause of differing behavior across emulators is a timing issue -- as most other aspects of emulation are relatively trivial and should be pretty uniform.

Did your hack do any asm changes or anything that would cause a routine to run longer than necessary?  It might be as simple as just having longer strings and thereby increasing the time spent in the routine that prints them.

A first-step diagnostic might be to just shrink the text that is printed in the part of the game exhibiting glitches to see if the problem goes away.
Just spitballing here but maybe it's an emulator-specific error due to poor support for the Japan-only Irem mapper that Holy Diver runs on?
https://sourceforge.net/p/fceultra/bugs/809/
It appears that the Irem mapper 78 also has submappers that may not be properly differentiated in some emulators, leading to incorrect behavior. NES 2.0 was invented to add this level of differentiation in the metadata that iNES 1.0 lacks, as we all know
OP, have you tried applying the MMC1 patch ( to your translation and trying that on the emulators giving you problems? That would be a good way of ruling out it being anything other than the mapper, I feel like
Sorry if stating the obvious, you're both a hell of a lot more qualified than me so it probably crossed your minds

monaco

  • Jr. Member
  • **
  • Posts: 29
  • FOR THE CHILDREN!
    • View Profile
    • Monaco's Family Computing
Re: The Curse of Holy Diver
« Reply #7 on: May 15, 2020, 07:07:49 am »
I'll try that too.
Meanwhile, the patch works fine on a PAL NES (NES minis too, apparently). Could a kind soul test it on an NTSC one?

EDIT: the mmc-1 hack works fine with the patch. Thanks, folks.
« Last Edit: May 15, 2020, 09:25:05 am by monaco »

Ice Man

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
Re: The Curse of Holy Diver
« Reply #8 on: May 16, 2020, 04:04:23 am »
Both, the mapper 78 and MMC1 translation work fine on real hardware in PAL and NTSC.
Tested them long time ago and never had glitches yet.

What emulator were you using anyway?

P.S. Mesen does only glitch because the game is missing the proper iNES2.0 submapper.
To fix this simply open Holy Diver (and/or its Mapper 78 translation in a hex editor of your choice and replace bytes 00-0F with:
Code: [Select]
4E 45 53 1A 08 10 E8 48 30 00 00 00 00 00 00 00
FCEUX works fine as well.