Hello,
I've struggle to extract the trainer (by Supplex) for the game Warlock the Avenger.
I understand the bootblock read 0x1000 from 0x400, but ...
ah, well, if anyone can make an exe out of it
I've put the first 0x1400 bytes in the following file :
http://asle.free.fr/exotica/diskheader.raw
Thanks
Sylvain
Warlock the Avenger trainer
Re: Warlock the Avenger trainer
I just had 30 seconds to waste and created an executable version of that very trainer. You can find it here: http://stingray.untergrund.net/supplex.exe
In case you're interested, this is all that I needed to do:
As you can see it's not exactly rocket science.
In case you're interested, this is all that I needed to do:
Code: Select all
lea d+$400(pc),a0
pea $30000
move.l (a7),a1
move.w #$1000/4-1,d7
loop move.l (a0)+,(a1)+
dbf d7,loop
rts
d incbin windoze:diskheader.raw
Re: Warlock the Avenger trainer
ok, well, indeed, it's not "rocket science". Still it's not something I can do . So THANKS!. This prod was now added on Kestra :
http://kestra.exotica.org.uk/demo.php?id=24849
By looking at the binary, I see you simply don't care about what's in the bootblock. You just add something in front of it. Basically, this :
Ok, I repeat, I can't do that, simply because I don't read/write 68k.
Still, I've had some luck in the past with various other bootblocks by taking data from a "look alike" sequence :
Then, by simply adding a standard EXE header, it would work. Ah well, anyway. Thanks again for this. I'll try to repeat this if some other case appear.
With regards,
Sylvain
http://kestra.exotica.org.uk/demo.php?id=24849
By looking at the binary, I see you simply don't care about what's in the bootblock. You just add something in front of it. Basically, this :
Code: Select all
41 FA 04 16 48 79 00 03 00 00 22 57 3E 3C 03 FF
22 D8 51 CF FF FC 4E 75
Still, I've had some luck in the past with various other bootblocks by taking data from a "look alike" sequence :
Code: Select all
48 E7 FF FE
With regards,
Sylvain
Sylvain "Asle" Chipaux
Re: Warlock the Avenger trainer
Of course you can, it's not hard. Here's what I did:asle wrote: Ok, I repeat, I can't do that, simply because I don't read/write 68k.
I disassembled the bootblock of your file, to do that I just created a small source which looked like:
Code: Select all
d incbin windoze:diskheader.raw
the code looked like this:
Code: Select all
movem.l d0-a6,-(a7) ; save regs
move.l #$1000,$24(a1) ; length in bytes
move.l #$400,$2c(a1) ; start offset
move.l #$30000,$28(a1) ; destination address
move.l $4,a6
jsr -456(a6) ; call Exec's DoIO() routine, i.e. load the file
move.w #$8100,$dff096 ; enable bitplane DMA
jsr $30000
movem.l (a7)+,d0-a6
1. the start offset [-> $2c(a1)]
2. the length [-> $24(a1)]
3. the destination address [-> $28(a1)]
Once you have that info you can just adapt my "copyloop" above with the right parameters and it should work. Hope that helps, if something is unclear feel free to ask. =)