I'm having some difficulties to "extract" the ultra mini intros that are in the bootblocks of various disks. Is there, somewhere, some information describing the bootblock structure.
Oh, and, while I'm ont it, is there, also, somewhere, something to read about how to create back a binary file (read launchable EXE), from an xdf-decrunched Bytekiller 1.3 for example.
I can provide examples for each, if necessary.
Don't forget my knowledge of 68k is _very_ poor .
Thanks in advance.
I'm not sure if you already know of this utility, but for me WRip is a godsend!
As well as other formats, it should extract any Amiga executable from an image file.
Actually, all this is assuming your are using an Amiga...
- It rips only well formed binaries, not the uncrunched relocated ones.
- My own prowiz for PC rips already all these _and_ for the most part, recreate the header when it's missing ... .
I'm not using my Amiga for this. UAE under FreeBSD works all right .
Anyway, thanks for your kind reply. I'll continue searching while hoping for someone to help, here
bootblock structure :
dc.l 'DOS',0 ; DOS (type of disk)
dc.l 0 ; checksum
dc.l 880 ; root (normal sector 880)
after it's the code
about exe, on aminet (not tested)
Anyway, thank you very much for the information provided !. It's very interresting and useful !. I now understand far better what are EXE, and hunks .
I guess the next step, for me, will be ressourcing.
Your boot header description shows that there's no hunk for the code after the "dc.l 880 ; root (normal sector 880)". And understanding what is done is beyond me for now. The major problem is to know how big is a program. Adding head and end hunks is child's play after that.
So thanks again for your kind and fast reply.
.L $3F3 (hunk_header)
.L 0 (no name for the hunk. o=end of hunk list)
.L 1 (number of hunks)
.L 0 (1st hunk to load)
.L 0 (last hunk to load)
.L $fd (len of hunks. here 1 hunk - add $40000000 to the len to force loading in chip ram)
.L $3E9 (hunk_code : start of the program)
.L $fd (len in LWords)
...code start here
.L $3F2 (hunk_end : last lword of the program)
hmm...or you can use BootMaster to rip original boot (.bb) and convert it to exe (on this toolspack)
Anyway, thanks again .
and I also skipped the end of the boot because of "cracked by marco polo" string (you can also skip the loader)
most of the time bootmaster can do a direct usable exe (for simple "dos" bootblock)
But in case of NDOS game cracktro, like boot loader, you have to patch, extract the good code...
the boot code always start at offset 12 (because of header)
I use Megamonitor to disassemble a bootblock and patch it.
Code: Select all
<b 40000 0 2 // load boot at $40000, read 2 sectors from sector 0. d 4000c // disassemble the boot $4000c : bsr $40012 // start "intro" $4000e : bra $40274 // goto loader $40012 : movem.l d0-a6,-(sp) // save registers in stack ... // intro here $40148 : movem.l (sp)+,d0-a6 // restore registers $4014c : rts // end of "intro" ...// here the text "VISION FACTORY..." ... // datas $40274 : ... // start of the loader ... $4028a: ... // allocmem ... $402b6: jsr -$1c8(a6) // execbase DoIO() : read sectors ... $402c2: jmp (a3) // jump to game ... $402c8: string "cracked by marco polo"...
S boot 40012 402c8
and add exe hunks (a boot is always loaded in Chip ram. force with the hunk_len $40000000+len)
Broke up my teeth on the Nemesis bootblock intro for Cisco Heat. Rather tricky, this one, I guess, as it first reads then launches the trainer in the middle of the disk, and launches the bootro afterwards .. . Tried to extract it without any success at all.
Help would be greatly appreciated on this one