|
Atari demoscene BBS
Fix for PackFire (possibly!) |
Posted by: ggn
|
Nov,06.2013-18:24
|
Me and BriteLite tested this in two binaries with positive results. If you suffer from TOS Error #35 problems after creating a PackFire packed problem then read on and please give feedback :)
Firstly, most of the times the "TOS error #35" bug happens when you run the .PRG from floppy.
Anyway, the problem (I think!) is that the pointer to the relocation table is wrong. From here (http://www.yardley.cc/atari/compendium/atari-compendium-chapter-2-GEMDOS.htm - GEMDOS Processes) I saw that the relocation (AKA 'fixup') offset is calculated like this: PRG_tsize + PRG_dsize + PRG_ssize + 0x1C. PRG_dsize and PRG_ssize are zero for PackFire programs, so this is simplified to PRG_tsize + 0x1C. This should point at the last longword of the binary (which is 0.L). Sometimes this offset does not point there, but 2 or 4 bytes after. For a lot of cases this isn't a big problem since the memory is zeroed, but for some cases (for example running from floppy - no idea why this happens!) the memory is dirty so GEMDOS tries to do relocation (and fails).
tl;dr open your problematic .prg in a hex editor and check the longword at offset 2. If this value + 28 doesn't point to the last longword of the file, adjust so it does :).
(this message has been also posted on pouet.net - hopefully hitchhkr notices this and fixes PackFire, but like I said we need more feedback!)
|
[All messages in this thread] [Start new thread]
What's the anti-troll code? That's your personal code to be able to add comments and messages on the dhs.nu site.
Don't have a code or forgot it? Fix it here.
|