Commodore 64 (C64) Forum Index
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
Converting TAP files to PRG, T64 or D64

 
Post new topic   Reply to topic    Commodore 64 (C64) Forum Index -> Help & Support
View previous topic :: View next topic  
Author Message
Killseeker
Newbie


Joined: 07 Oct 2008
Age: 35
Posts: 14
Location: Adelaide, South Australia

PostPosted: Sat Jan 29, 2011 1:13 am    Post subject: Converting TAP files to PRG, T64 or D64 Reply with quote

Hi all, I have just recently acquired a whole heap of TAP files and would like to convert them to PRG or D64 to use with my 1541-II. I'm currently fiddling around with Mole64 and FinalTap but am not really getting anywhere.

I've used FinalTap to extract PRG files from a couple of TAP images but I'm not sure what to do with them from then on. Do they need to be compiled into a D64 image? At a bit of a loss...

Cheers,

Killseeker
Back to top
View user's profile Send private message
enthusi
Forum Junkie
Forum Junkie


Joined: 19 Mar 2009
Age: 34
Posts: 520
Location: Potsdam, GER

PostPosted: Sat Jan 29, 2011 9:09 am    Post subject: Reply with quote

Only for very simple cases tapclean will delive executable PRG files.
In most cases the loader structure is somewhat more complex (as by now you saw).
Resulting in many extracted files. That's why 'crackers' were needed to provide working disk versions from Tape. If you are into coding this is the perfect opportunity for you to decipher the loader and reassemble the extracted files ;-)
Plan B:
Load the tap files with i.e. ActionReplay attached, freeze after load and save the freeze-state. Might work for quite some one-load-titles. Other than that you are left alone with the TAP files....
However, there are devices that can play back TAP files like Dc2n or 1541u.
You can always write TAP files back to real tape as well.
Best to do: scoop through your TAPs, check if there are ones you dont fine easyly somewhere else on the net. You should find a d64-version of practically every game.
On a side note: Im always interessted in TAP files, so if you are willing to share, please let me know ;-)
_________________
I like tapes. 'nough said =D
http://www.rgcd.co.uk
http://c64pixels.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Hempsa
Newbie


Joined: 14 Apr 2012
Posts: 9
Location: Finland

PostPosted: Thu May 10, 2012 3:03 pm    Post subject: Reply with quote

Can this be converted to .prg or .d64?

http://gamebase64.hardabasht.c...199_01.zip

I don't have the skills, equipment or even basic understanding about .tap files Embarassed
Back to top
View user's profile Send private message MSN Messenger
Oge_user
Grandmaster of C64
Grandmaster of C64


Joined: 14 Jul 2002
Posts: 1790
Location: Italy

PostPosted: Thu May 10, 2012 3:18 pm    Post subject: Reply with quote

It seems a TAP which uses Kerner Loader, so the files can be easily extracted.

The problem is that the program appears to be a multifile one, so it would require programming skills in order to realize a working .d64. For tape images containing a single file, a program like WAV-PRG is able to extract PRG from TAPs if the loader is recognized from one of the available plugins.


Cheers,
Oge
_________________
Back to top
View user's profile Send private message
Hempsa
Newbie


Joined: 14 Apr 2012
Posts: 9
Location: Finland

PostPosted: Thu May 10, 2012 3:34 pm    Post subject: Reply with quote

Anybody with necessary skills and spare time? Very Happy
Back to top
View user's profile Send private message MSN Messenger
e5frog
Immortal Grandmaster of C64
Immortal Grandmaster of C64


Joined: 30 Apr 2009
Age: 38
Posts: 3518
Location: Sweden

PostPosted: Thu May 10, 2012 7:25 pm    Post subject: Reply with quote

The loader of that game isn't recognized. If it's a single session of loading you could freeze it if you must have it on disk but can't find a version that already is.

Starts with this:


Code:
;
; DASM performed 2 optimizations
;
; Cross reference:
;
;  Conditional branches (B) with more than one ref:
;
;  Subroutine calls (S):
;
;  Jumps (J):

*=$033C

; Cassette I/O Buffer - Header
T033C   .byte $03,$ED,$02,$FF,$03,$41,$4D,$45,$52,$53,$4F,$46,$54,$20,$20,$20
T034C   .byte $20,$20,$20,$20,$20


T0351   .byte $FC,$5F,$8F,$7D,$45,$A6,$AE,$F5,$54,$87,$11
T035C   .byte $16,$F4,$47,$D2,$6F,$BC,$02,$C1,$6C,$45,$37,$64,$4E,$D4,$A0,$BB
T036C   .byte $94,$C8,$D3,$0F,$50,$20,$71,$55,$C9,$D0,$CB,$BE,$F8,$A9,$8F,$DB
T037C   .byte $6C,$5D,$1D,$7C,$49,$01,$72,$7A,$40,$38,$56,$6F,$A8,$EA,$89,$03
T038C   .byte $5C,$7B,$EE,$65,$7A,$7B,$3B,$94,$19,$93,$4B

        ROL $1499,X   
        STA $BC46,X   
        SBC $1B9D     

T03A0   .byte $77

        STA ($C1,X)   
        LDY #$35     
        ORA #$E3     
        BVS T03D6     
        ROR $708A,X   
        BVC $033B     

T03AE   .byte $7F,$53,$20,$5E,$92,$D0,$B7,$15,$B7,$33,$78,$E1,$A2,$12

        LDY $1E30,X   
        LDA $B9C8,X   
        STX $385E     

T03C5   .byte $67,$C7,$67

        CPY #$4F     
        ROR $4F       
        ADC ($6F,X)   
        SBC $C86F     

T03D1   .byte $57,$7C,$57,$7B,$F5,$59,$D4,$7D,$64,$9F,$0C
T03DC   .byte $0C,$23,$92,$8D,$F6,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
T03EC   .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00



Code:
;
; DASM performed 2 optimizations
;
; Cross reference:
;
;  Conditional branches (B) with more than one ref:
;
;  Subroutine calls (S):
;
;  Jumps (J):

*=$02ED
        SEI           
        LDX #$FF     
        TXS           
        LDX #$0C     
        JSR $FCBD     
        LDY #$08     
B02F8   LDA T031A,Y   
        STA $8000,Y   
        DEY           
        BPL B02F8     
        LDY #$3C     
B0303   TYA           
        EOR $0300,Y   
        STA $0300,Y   
        INY           
        BNE B0303     
        JMP $03C5     

        JMP $B248     


T0313   .byte $00,$2C,$F9,$BC,$FE,$C1,$FE
T031A   .byte $E2,$FC,$E2
T031D   .byte $FC,$C3,$C2,$CD,$38,$30,$F3,$57,$F1,$CA,$F1,$ED,$02,$3E,$F1


So just figure the loader out and extract the rest of the data... Wink

The two pulse lengths used when turbo starts are $1B and $28.

First part has some BASIC code that can be saved just by entering the monitor in VICE. Unfortunately I don't understand Finnish.


EDIT:
Got the basic part of the beginning saved.
http://www.2shared.com/file/IH...H_1st.html

There's a lot of file names mentioned, will maybe help to extract the rest - something I'm currently not too keen on. Wink
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Hempsa
Newbie


Joined: 14 Apr 2012
Posts: 9
Location: Finland

PostPosted: Fri May 11, 2012 4:07 pm    Post subject: Reply with quote

I'll be more than happy to translate if needed, probably the only thing I can help with Smile
Back to top
View user's profile Send private message MSN Messenger
e5frog
Immortal Grandmaster of C64
Immortal Grandmaster of C64


Joined: 30 Apr 2009
Age: 38
Posts: 3518
Location: Sweden

PostPosted: Fri May 11, 2012 5:58 pm    Post subject: Reply with quote

I'll ask my friend to contact you in case he's willing to do a hack of this.

Looks like they're setting the device number on 1024 and then peek that when loading other parts. This leads me to believe it should have existed as a disk version as well, why else bother?

Looks easy enough, should be no problems for someone with a little experience.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
fab
Groupie in Training
Groupie in Training


Joined: 24 Sep 2004
Posts: 100

PostPosted: Thu May 17, 2012 4:49 pm    Post subject: Reply with quote

It was non-trivial, because the loader is a variant of Turbo Tape, but I made a .t64 which seems to work (even though I did only limited tests, since I don't know Finnish). PM if you are interested
Back to top
View user's profile Send private message
e5frog
Immortal Grandmaster of C64
Immortal Grandmaster of C64


Joined: 30 Apr 2009
Age: 38
Posts: 3518
Location: Sweden

PostPosted: Thu May 17, 2012 8:50 pm    Post subject: Reply with quote

Should be easy to change the device number to 8 instead then and put all files on a d64.

2 POKE1021,1:POKE45,.:POKE46,47:POKE47,.:POKE48,47
to
2 POKE1021,8:POKE45,.:POKE46,47:POKE47,.:POKE48,47

I understand it's trivial... when you know how to Wink
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
e5frog
Immortal Grandmaster of C64
Immortal Grandmaster of C64


Joined: 30 Apr 2009
Age: 38
Posts: 3518
Location: Sweden

PostPosted: Tue May 22, 2012 1:57 pm    Post subject: Reply with quote

With fab's t64 version I patched it to work as d64, send a PM with e-mail address if you want it.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Hempsa
Newbie


Joined: 14 Apr 2012
Posts: 9
Location: Finland

PostPosted: Wed May 23, 2012 2:35 pm    Post subject: Reply with quote

Thanks guys!

Tested the game with fab's t64 and everything worked perfectly with Vice.
PM sent about the d64 version and hopefully I get to test it soon with a real machine Smile
Back to top
View user's profile Send private message MSN Messenger
Hempsa
Newbie


Joined: 14 Apr 2012
Posts: 9
Location: Finland

PostPosted: Sun May 27, 2012 8:21 am    Post subject: Reply with quote

No problems with real hardware either, thanks again!

Should these be sent to gb64.com?
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Commodore 64 (C64) Forum Index -> Help & Support All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Tip: Get C64 Forever for super-comfy C64 emulation with pre-installed games, demos and other goodies!


Powered by phpBB © 2001, 2005 phpBB Group