Code: Select all
Comparing files Kiki Kaikai - Dotou Hen (1987)(Taito Corp.).fds and KIKI KAIKAI
- DOTOU HEN (1987)(TAITO CORP.) - PATCHED.FDS
00000049: 08 09
00010025: 0C 0D
Moderator: Moderators
Code: Select all
Comparing files Kiki Kaikai - Dotou Hen (1987)(Taito Corp.).fds and KIKI KAIKAI
- DOTOU HEN (1987)(TAITO CORP.) - PATCHED.FDS
00000049: 08 09
00010025: 0C 0D
I thought they were trying to pinpoint the problematic code.BMF54123 wrote:This "throw chunks of mystery code around and see if they stick" mentality to fixing emulation problems is kinda disappointing.
Your enthusiasm is commendable, but...if you don't actually know what the code is doing, perhaps you shouldn't be trying to "fix" the problem, lest you introduce even more somewhere down the road.*Spitfire_NES* wrote:I wonder what that all means....lol :p
Good Job!!!thefox wrote:I tried manually patching the correct amount of files in the file amount block (wrote a small Python tool to calculate the actual number of files), and guess what, now it works:The original question of course still stands... is this just a bad disk or is there something that can be done to improve FDS emulation. Patching the number of files on load time doesn't seem like the Right Thing(TM) to do.Code: Select all
Comparing files Kiki Kaikai - Dotou Hen (1987)(Taito Corp.).fds and KIKI KAIKAI - DOTOU HEN (1987)(TAITO CORP.) - PATCHED.FDS 00000049: 08 09 00010025: 0C 0D
Yes it looks like it has something with copy protection...BMF54123 wrote:Weird. Was that some form of copy protection back in the day (specifying the wrong number of files so disk copying tools would fail to copy everything)? Does an actual FDS even look at that value?
If the file count block stores info about number of common files, how the real FDS is able to know about of hidden files? Is this realize somehow by BIOS? Maybe it counts while scanning disc surface.Apparently, some FDS disks implement a very simple copy protection scheme, which the game relies on in order for the game to refuse to work on the copied disk. Normally, the number of files that exist on an FDS disk is stored in the second block recorded on it. However, some games maintain "invisible" files, which are basically files that exist beyond what the file count number in the file count block indicates. This poses somewhat of a problem for copy software like FDSLOADR, since these tools rely on the file count block, and don't assume that there is any valid data past the last file found on the disk. This means that when these types of disks are copied, the invisible files will be lost, and when the game loads the files that do exist, the game's going to give the user heat about there being a file missing or somthing, gumming up the works. However in practice, when an FDS disk is programmed, the unused end of the disk is usually completely zeroed out, and this makes detecting the end of the disk simple: just wait to find a GAP period of extreme length. Except in rare cases, this model for detecting the true end of an FDS disk should generally provide the best results for copying the complete contents for all types of FDS disks.
The "problem" is emulators require that very same BIOS! If it does any counting, it should count on emulators as well.plasturion wrote:If the file count block stores info about number of common files, how the real FDS is able to know about of hidden files? Is this realize somehow by BIOS? Maybe it counts while scanning disc surface.
Yuushi no Monshou (Deep Dungeon) is Deep Dungeon II and can be found in earlier TOSEC romset pack as Yuushi no Monshou (1987)(Humming Bird Soft).zip, and as another file know as Deep Dungeon II - Yuushi no Monshou (Japan) (v1.1) .fds and both are the same.2001/03/22
code fixed 20
tested 20
# support 'VS Super Skater (Bootleg)'
# support 'Yuushi no Monshou (Deep Dungeon)'.
# change disk save file format (same as fds format / can load old files).
# change disk state save file format (can not load old files).
# calcurate number of files in fds image when load.
Fds: Disk 1 Side A: 44k in 12 files, 17b trailing data..
Fds: file: "KYODAKU-", id: 0, size: 224, index: 0, address: 0x2800, type: NMT
...
Fds: file: "OPEN6/25", id: 0, size: 8736, index: 11, address: 0xA000, type: PRG
-------------------------------------------------------------------
Fds: Disk 1 Side B: 47k in 13 files, 18b trailing data..
Fds: file: "FLOOR12F", id: 1, size: 5960, index: 0, address: 0xC800, type: PRG
...
Fds: file: "MAP0PRO", id: 0, size: 2752, index: 12, address: 0xC800, type: PRG
Fds: Disk 1 Side A: 44k in 13 files..
Fds: file: "KYODAKU-", id: 0, size: 224, index: 0, address: 0x2800, type: NMT
...
Fds: file: "OPEN6/25", id: 0, size: 8736, index: 11, address: 0xA000, type: PRG
Fds: file: "CHARA", id: 96, size: 144, index: 12, address: 0xB300, type: PRG
-------------------------------------------------------------------
Fds: Disk 1 Side B: 47k in 14 files..
Fds: file: "FLOOR12F", id: 1, size: 5960, index: 0, address: 0xC800, type: PRG
...
Fds: file: "MAP0PRO", id: 0, size: 2752, index: 12, address: 0xC800, type: PRG
Fds: file: "DUMMY", id: 170, size: 1, index: 13, address: 0xDFF0, type: PRG
Fds: Disk 1 Side A: 44k in 13 files..
Fds: file: "KYODAKU-", id: 0, size: 224, index: 0, address: 0x2800, type: NMT
...
Fds: file: "OPEN5/12", id: 0, size: 8736, index: 11, address: 0xA000, type: PRG
Fds: file: "CHARACTE", id: 96, size: 144, index: 12, address: 0xB300, type: PRG
-------------------------------------------------------------------
Fds: Disk 1 Side B: 47k in 13 files, 18b trailing data..
Fds: file: "FLOOR12F", id: 1, size: 5960, index: 0, address: 0xC800, type: PRG
...
Fds: file: "MAP0COM", id: 0, size: 1568, index: 11, address: 0xD800, type: PRG
Fds: file: "MAP0PRO", id: 0, size: 2752, index: 12, address: 0xC800, type: PRG
Did you played the same game before you applied this patch? You must to know that nestopia create some overriding patch image to avoid changing real file (write to disk is common, so it's a safety solution).Fds: Disk 1 Side A: 51k in 9 files..
Fds: file: "KYODAKU-", id: 0, size: 224, index: 0, address: 0x2800, type: NMT
...
Fds: file: "end", id: 30, size: 8124, index: 7, address: 0x6000, type: PRG
Fds: file: "WORKSS", id: 80, size: 33, index: 8, address: 0xDC10, type: PRG
-----------------------------------------------------
Fds: Disk 1 Side B: 48k in 13 files..
Fds: file: "mchar", id: 16, size: 6348, index: 0, address: 0x6000, type: PRG
...
Fds: file: "kitune", id: 27, size: 1180, index: 11, address: 0x7364, type: PRG
Fds: file: "jyzsoh", id: 28, size: 1114, index: 12, address: 0x7364, type: PRG