English Amiga Board Amiga Lore


Go Back   English Amiga Board > Support > support.Games

 
 
Thread Tools
Old 26 February 2017, 07:24   #1
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
FlashBack missing dialog bug

Back when I was working on my release of the English version of this game, I came across a missing dialog bug on all the Amiga versions.

It occurs during the animation in Level 5 where Conrad is looking down at the aliens in the air vent. The frame of dialog before the bug is:


Then the missing dialog occurs:


From memory, there are slightly garbed artifacts onscreen from the missing text.

The respective language text (e.g., engcine.txt) for all 3 languages, contain the missing text, but yet none of the versions will show it.

I believe cine/espions.cmp contains the code for displaying the text. Unfortunately, my schedule became increasingly busy and I no longer had the time to investigate this further. Next thing I knew, seven years had passed since my discovery.

Curious if anyone could figure out how to fix this bug? I also now wonder if bugged espions.cmp can be replaced from another platform?
demoniac is offline  
AdSense AdSense  
Old 28 February 2017, 11:39   #2
pants
Registered User

 
Join Date: Feb 2017
Location: fastmem
Posts: 36
Quote:
Originally Posted by demoniac View Post
Curious if anyone could figure out how to fix this bug?
Seems the cine bytecode is missing an 'update all' opcode during that sequence - it processes the text correctly and at the correct time, just doesn't display it.

I verified against two ipf sets (1163 and 1885) and the error is present in both. The cine bytecode is compressed on disk (and checksummed), so this is not a rip or crack artifact - it's an issue that has always been present as far as I can tell.

Fix:

It's tricky to insert the correct opcode as the bytecode stream is quite tight - but there is room to do a shuffle without lengthening the stream

Code:
Original sequence:   ..., 'update_prims',   'string_id 0x3a', 'clear 0x04', ...
It should have been: ..., 'update_prims',   'string_id 0x3a', 'update_all', 'clear 0x04', ...
Shuffle fix is:      ..., 'string_id 0x3a', 'update_all',     'clear 0x04', ...
So a 4 byte in-place patch however, as mentioned above, the bytecode is compressed on disk (another custom dictionary packer, fml), so I'll have to reverse it and write a compressor... :s

In the meantime, if you want to see the cine as it was intended...

Code:
Freeze at the start of the sequence...

find the following:  00 18 00 3A 04 04
replace with:        18 00 3A 14 04 04

...and continue.
pants is offline  
Old 28 February 2017, 14:35   #3
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 5,539
Quote:
Originally Posted by pants View Post
So a 4 byte in-place patch however, as mentioned above, the bytecode is compressed on disk (another custom dictionary packer, fml), so I'll have to reverse it and write a compressor... :s
I'd simply patch it "on the fly" similar to how trainers work. That way reversing the compression algorithm to write a custom compressor for the byte code data is not necessary at all.
StingRay is offline  
Old 28 February 2017, 19:23   #4
pants
Registered User

 
Join Date: Feb 2017
Location: fastmem
Posts: 36
Quote:
Originally Posted by StingRay View Post
I'd simply patch it "on the fly" similar to how trainers work. That way reversing the compression algorithm to write a custom compressor for the byte code data is not necessary at all.
As would I normally - but then to which (broken) crack, which languages, and for which version do I add it? English was a hand-translated french version, interpols crack was incomplete from what I can tell, the delphine compilation is different to the original etc.

So, although it's much more work, i figure I'll change the source cine file and then everyone has it for whichever version they have chosen to run

I've been away from amiga for close to 25 years and never dealt with amiga HDs before, so I still have to wrap my head around 'whdload' (what it is and now to use it) - but that sounds like it would likely be the most 'complete' version to add this to.
pants is offline  
Old 28 February 2017, 19:57   #5
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 5,539
Quote:
Originally Posted by pants View Post
As would I normally - but then to which (broken) crack, which languages, and for which version do I add it? English was a hand-translated french version, interpols crack was incomplete from what I can tell, the delphine compilation is different to the original etc.
As the cine file in question should be the same for all versions a small "on thy fly" patch which works for all versions shouldn't be much of a problem.

Quote:
Originally Posted by pants
So, although it's much more work, i figure I'll change the source cine file and then everyone has it for whichever version they have chosen to run
It's definitely much more work and an interesting challenge. It is, however, not needed. Then again, what's needed on a machine that has been dead for several decades now?

Btw, which .cmp file is it that needs to be fixed? I've decrunched all of them but couldn't find the sequence you've posted.


Quote:
Originally Posted by pants
I've been away from amiga for close to 25 years and never dealt with amiga HDs before,
Welcome back!

Quote:
Originally Posted by pants
so I still have to wrap my head around 'whdload' (what it is and now to use it) - but that sounds like it would likely be the most 'complete' version to add this to.
WHDLoad is a tool which allows coders to write so called "slaves" which contain code to fix bugs and patches (f.e. to load data from HD instead of using a trackloader). The WHDLoad patches usually contain the cleanest cracks as they were done using the original games.
StingRay is offline  
Old 28 February 2017, 21:08   #6
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
Quote:
Originally Posted by pants View Post
As would I normally - but then to which (broken) crack, which languages, and for which version do I add it? English was a hand-translated french version, interpols crack was incomplete from what I can tell, the delphine compilation is different to the original etc.
Thanks for looking into this.

The bug is in all the official releases, not a residue from a crack. I checked against all SPS images that I had. I can't remember if I had checked against the German version, but I most likely did.

I made a deprotected version of the UK release (not the English translated Interpol patch). I'll dig that out. It should be on the EAB FTP as I put it there years ago.
demoniac is offline  
Old 28 February 2017, 21:58   #7
pants
Registered User

 
Join Date: Feb 2017
Location: fastmem
Posts: 36
Quote:
Originally Posted by demoniac View Post
Thanks for looking into this.
Happy to help, these are fun distractions (I wish they were easier to find).

Quote:
Originally Posted by StingRay View Post
Btw, which .cmp file is it that needs to be fixed? I've decrunched all of them but couldn't find the sequence you've posted.
See demoniacs notes and check disk 3

Quote:
Originally Posted by StingRay View Post
Welcome back!

WHDLoad is a tool which allows coders to write so called "slaves" which contain code to fix bugs and patches (f.e. to load data from HD instead of using a trackloader). The WHDLoad patches usually contain the cleanest cracks as they were done using the original games.
Thanks! Yes, whdload does indeed sound interesting and a good place to gather fixes/patches. I took a quick look but it seems the 'slaves' are proprietory and not open(?) Perhaps I misunderstand, but if true that seems like madness (you have to reverse patches to add patches?!)... But *shrug* - they are more than welcome to take this too

I wrote a cmp decompressor to help with analysis of the bytecode language. So I was/am familiar with the alg used (another lz variant), just have to do the inverse when I get some time. No issues doing so - it's all part of the fun for me - but more than happy for you/others to on-the-fly patch
pants is offline  
Old 28 February 2017, 22:07   #8
Akira
Registered User

Akira's Avatar
 
Join Date: May 2001
Location: New York
Posts: 17,981
Quote:
Originally Posted by pants View Post
I took a quick look but it seems the 'slaves' are proprietory and not open(?) Perhaps I misunderstand, but if true that seems like madness (you have to reverse patches to add patches?!)...
Well, I think a lot of patchers release the code of their slaves, but there's still a few who never did/do and that is a shame because, as you observe, beats the purpose a bit. For example, if I am not wrong, StingRay includes source into a lot of his (open the archives of one of his installs and you will find a "Source" directory).

Flashback was done by JOTD and it doesn't include the sources but he is active here and I am sure he will be happy to share the source with you, as he now shares sources to his work frequently.
Akira is offline  
Old 28 February 2017, 22:18   #9
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 5,539
Quote:
Originally Posted by pants
See demoniacs notes and check disk 3
Hmm, that was the first file I checked but probably I missed that very sequence. Time to look at it again.


Quote:
Originally Posted by pants
Thanks! Yes, whdload does indeed sound interesting and a good place to gather fixes/patches. I took a quick look but it seems the 'slaves' are proprietory and not open(?) Perhaps I misunderstand, but if true that seems like madness (you have to reverse patches to add patches?!)... But *shrug* - they are more than welcome to take this too
I release all of my WHDLoad patches with full sources, lots of other patchers also release sources, not all though. Sometimes it is indeed necessary to reverse patches if the original coder is not around anymore but since the slaves are mostly very small (WHDLoad offers a lot of functions so the external slaves are small) it is not too time consuming. Best would be if all sources for the patches would be available though.



Quote:
Originally Posted by pants
I wrote a cmp decompressor to help with analysis of the bytecode language. So I was/am familiar with the alg used (another lz variant), just have to do the inverse when I get some time. No issues doing so - it's all part of the fun for me - but more than happy for you/others to on-the-fly patch
I'm more than happy for you to code the compressor and patch it "your" way as it is, as said, an interesting challenge indeed.
I may code my on the fly patch too as I have the code completely in my mind already, I "just" need to type and test it.


Quote:
Originally Posted by Akira View Post
Well, I think a lot of patchers release the code of their slaves, but there's still a few who never did/do and that is a shame because, as you observe, beats the purpose a bit.
Agreed!

Quote:
Originally Posted by Akira View Post
For example, if I am not wrong, StingRay includes source into a lot of his (open the archives of one of his installs and you will find a "Source" directory).
I release all of my patches with full sources (in some rare cases it happened that I forgot to add the source but that was not intentional).

Last edited by StingRay; 28 February 2017 at 22:25.
StingRay is offline  
Old 28 February 2017, 22:32   #10
pants
Registered User

 
Join Date: Feb 2017
Location: fastmem
Posts: 36
Thanks for the info and clarifications guys! I certainly wasn't meaning to cause offence - whdload & slaves sound awesome. I've been back for two weeks and am still playing catch up with the last 20 odd years of amiga. Some things are beyond words cool (winuae and, for me, fs-uae), some things are super pleasant (zomg ipf = love), and some things are just crazy to me (dubious trademark/copyright claims on things that should, in a sane world, be public domain by now). Proprietary 'slaves' kind of got bundled up with that in my head - just seemed so at odds with goals as you said. Happy to hear that seems to be changing.

Me: I'm still getting reaquainted with my virtual A500. One day I'll upgrade to an A1200, or even an A4000, and also learn the ways of AGA and whdload. In the meantime it's ipfs and MFM fun for me
pants is offline  
Old 28 February 2017, 22:38   #11
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 5,539
Quote:
Originally Posted by pants View Post
I certainly wasn't meaning to cause offence
None taken at all!

Quote:
Originally Posted by pants View Post
Me: I'm still getting reaquainted with my virtual A500. One day I'll upgrade to an A1200, or even an A4000, and also learn the ways of AGA and whdload. In the meantime it's ipfs and MFM fun for me
Looks like you'll be having a lot of fun. Just like the rest of us.
StingRay is offline  
Old 28 February 2017, 22:51   #12
DamienD
Global Moderator

DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 40
Posts: 9,276
Quote:
Originally Posted by pants View Post
As would I normally - but then to which (broken) crack, which languages, and for which version do I add it? English was a hand-translated french version, interpols crack was incomplete from what I can tell, the delphine compilation is different to the original etc.
Hello there pants,

Well, I can answer that one when it comes to the disk version

I spent quite a lot of time back in 2006 trying to find the best version to use (which wasn't translated and also has no protection); see this thread: Fixing Flashback versions.. Ongoing..

Anyway, please patch this version (which was copied from the .IPFs --> .ADFs and has been 100% tested)
  • Flashback (1993)(Delphine - U.S. Gold)(Disk 1 of 4)[compilation Delphine Collection].adf [CRC 551E664E]
  • Flashback (1993)(Delphine - U.S. Gold)(Disk 2 of 4)[compilation Delphine Collection].adf [CRC 64065A5F]
  • Flashback (1993)(Delphine - U.S. Gold)(Disk 3 of 4)[compilation Delphine Collection].adf [CRC 20A0ACEF]
  • Flashback (1993)(Delphine - U.S. Gold)(Disk 4 of 4)[compilation Delphine Collection].adf [CRC 021E845D]
I've put this in The Zone! for you

To access The Zone! follow these instructions.
DamienD is offline  
Old 28 February 2017, 23:48   #13
StingRay
move.l #$c0ff33,throat

StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 5,539
I have made a quick patch which is completely untested! It should work with the SPS 1163 version of Flashback. Feel free to test it, if it works I'll adapt it to support all other known Flashback versions too.

To use use it just copy it to the flashback directory on your HD (or to disk 1 if you're playing from disk) and change the startup-sequence to run the patch instead of the "Flashback" executable.
Attached Files
File Type: 68k PatchFlashback.68k (204 Bytes, 23 views)
File Type: s PatchFlashback.s (966 Bytes, 28 views)
StingRay is offline  
Old 01 March 2017, 00:18   #14
pants
Registered User

 
Join Date: Feb 2017
Location: fastmem
Posts: 36
Quote:
Originally Posted by StingRay View Post
I have made a quick patch which is completely untested! .
/me doffs cap

bravo!
pants is offline  
Old 01 March 2017, 00:42   #15
DamienD
Global Moderator

DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 40
Posts: 9,276
Quote:
Originally Posted by StingRay View Post
I have made a quick patch which is completely untested! It should work with the SPS 1163 version of Flashback. Feel free to test it, if it works I'll adapt it to support all other known Flashback versions too.

To use use it just copy it to the flashback directory on your HD (or to disk 1 if you're playing from disk) and change the startup-sequence to run the patch instead of the "Flashback" executable.
Thanks Sting

...but the .IPFs --> .ADFs that I'm sure all the English community use is made from "SPS 1885" (as it has no protection i.e. the "Delphine Collection" release).

Anyway, when I get some time I will test applying your fix to this set.
DamienD is offline  
Old 01 March 2017, 01:42   #16
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
Quote:
Originally Posted by StingRay View Post
I have made a quick patch which is completely untested! It should work with the SPS 1163 version of Flashback. Feel free to test it, if it works I'll adapt it to support all other known Flashback versions too.
Terrific! I'll test against my deprotected version as I made it from SPS 1163.
demoniac is offline  
Old 01 March 2017, 11:00   #17
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
Quote:
Originally Posted by demoniac View Post
Terrific! I'll test against my deprotected version as I made it from SPS 1163.
StingRay's patch executable worked for my release. I have uploaded my non-patched version to the Zone.

The reason why I didn't release a patched version as I'm curious if another solution will be presented. I also didn't feel play testing the entire game to see if the patch will cause problem elsewhere. Plus, the intro should be updated.

I won't mentioned the member's name who would be very tempted to add the patch to my version, modify the startup-sequence, and will probably result with an alternative image in TOSEC at some point. However, his initials are DamienD.
demoniac is offline  
Old 01 March 2017, 11:03   #18
DamienD
Global Moderator

DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 40
Posts: 9,276


...I'm done testing Flashback versions. Well, at least for now
DamienD is offline  
Old 01 March 2017, 11:11   #19
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
Quote:
Originally Posted by pants View Post
I verified against two ipf sets (1163 and 1885) and the error is present in both.
FYI, my notes from years ago indicate that the error was in IPF 1163, 1736 (FR), and 1885. I did not have 0064 (DE) back then to test.

I also had checked against all the available cracks. From memory all were from the French version with translated text.

Update: I just looked at IPF 0064 (DE) and the error is in there as well.

Last edited by demoniac; 01 March 2017 at 11:24.
demoniac is offline  
Old 01 March 2017, 18:11   #20
demoniac
Registered User
 
Join Date: Jul 2005
Location: -
Posts: 1,274
Quote:
Originally Posted by DamienD View Post
Hello there pants,

Well, I can answer that one when it comes to the disk version

I spent quite a lot of time back in 2006 trying to find the best version to use (which wasn't translated and also has no protection); see this thread: Fixing Flashback versions.. Ongoing..

Anyway, please patch this version (which was copied from the .IPFs --> .ADFs and has been 100% tested)
One more thing, the budget version doesn't work on NTSC systems. So it is not 100%.
demoniac is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Flashback music bug? Mad-Matt support.Games 5 19 March 2014 22:50
Printer output viewer dialog Leandro Jardim request.UAE Wishlist 6 25 January 2014 09:12
Faster floppy file dialog for large directories? rsn8887 request.UAE Wishlist 7 23 January 2012 06:31
Animated request dialog Zed request.Apps 5 08 February 2010 19:52
Help me with this Settler's dialog zardoz support.Games 9 15 April 2005 09:17

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 11:53.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.28125 seconds with 12 queries