Ripping Discussion Subforum

Need some help with something you found on the site, or have an improvement ? Post it here. Feedback and ideas are always useful.

Moderators: XtC, BuZz, Coma

Post Reply
JaeMa
Posts: 3
Joined: Tue Apr 22, 2003 6:18 am

Ripping Discussion Subforum

Post by JaeMa »

Hi there!

As XFR was released recently and I guess there are many people out there which are interested in inventing ripping methods for yet unsupported formats why not create a subforum where we can discuss things like detection and size calculation for each known format which has been unsupported yet. A new topic can be created for each format to give that subforum a nice overview.

I've worked about one year ago on a PC-DOS-Ripper for WinFellow memdumps / WinUAE statefiles so that I can provide some information, and I guess this is the best platform to make how-to-rip-methods for exotic module formats public.

How about you? Is this a good idea or isn't it?

User avatar
Muerto
Posts: 359
Joined: Wed Aug 28, 2002 9:17 am
Location: Kerteminde, Denmark
Contact:

Post by Muerto »

Excelent idea!!
-- you cant escape Muerto --

asle
Posts: 208
Joined: Fri Mar 07, 2003 11:28 pm
Location: France
Contact:

Re: Ripping Discussion Subforum

Post by asle »

JaeMa wrote:Hi there!

As XFR was released recently and I guess there are many people out there which are interested in inventing ripping methods for yet unsupported formats why not create a subforum where we can discuss things like detection and size calculation for each known format which has been unsupported yet. A new topic can be created for each format to give that subforum a nice overview.
hum, what "unsupported" format are thinking about ?.
JaeMa wrote: I've worked about one year ago on a PC-DOS-Ripper for WinFellow memdumps / WinUAE statefiles so that I can provide some information, and I guess this is the best platform to make how-to-rip-methods for exotic module formats public.
not sure I got this one right. What do you mean by the best platform ?. If you're talking about WinUAE, I don't agree. If you're talking about this forum for sharing usefull tips/infos for any given format, I agree :wink: .
Now, there _are_ quite a lot of description made public already. Sure, that's not for _all_ formats whatsoever. Still, on Exotica, there are some of them. For my part, I released a long time ago some ptk-clones packers descriptions on Aminet and I made a www page for that. The link is somewhere on Exotica too :).
Last. Did you release your "PC-DOS-Ripper for memdumps" and is the source code available ?. Needless to say if you used some/any part of PW4PC, you should, at least, release this/ese part/s as free source code .. and tell me :!: .

I'm eager to see the result !.
Regards,
Sylvain

JaeMa
Posts: 3
Joined: Tue Apr 22, 2003 6:18 am

Post by JaeMa »

Discussion

I ment this forum when saying "best platform". We may have lots of music file format descriptions, but however I didn't find a guide or a bunch of descriptions concentrating on how to detect them in memory (or statefiles), to rip them (calculating start adress and size) and to make them appear unplayed (deinitialization, sometimes needed to be played properly after saved).

However, I didn't use parts of your program BUT I used some of your descriptions and you and Laurent Clevy are mentioned in my program. I didn't release the latest version of my ripper (called AMoRE, once the aim of this project was to provide plain english ripping descriptions, which will hopefully now be done via this forum).

The project's mainpage can be found on http://jmeister.cjb.net, you'll find a package with the ripper binary+sources and 7 ripping descriptions and a newer version as binary only without descriptions and sourcecode.

Now I put the latest sourcecode (44 file formats) online (just linked here, nowhere else to be found). It's located at http://feltzkrone.freezope.org/ARV44.ZIP (142kb)
(case sensitive)

I will translate the sourcecodes (= ripping methods) to plain english text and then (that's what my "request" was) hopefully we'll be able to discuss and improve all those ripping methods here.

My aim was to find modules even if IDs like "M.K." (ProTracker) for example, were changed or removed.
Pro: possibility to find in such a way "protected" modules
Con: detection slowdown, more false alarms (and those are the reason why I cosider it as useful to discuss and improve the methods here)


About the sourcecodes


Each ripping unit provides two functions:

Mxxx_Detect(Address) returns TRUE if a module of the requested type is
detected
Mxxx_Save(Address,Filename) saves the found module


Functions which are used by each ripping unit:

DMPF_Byte, DMPF_Word, DMPF_LongInt stand for Dumpfile and Integer Type (big endian format => motorola format). The value requested from those adresses will be the result of these functions.

Apart from that I was using a MOD-Saver unit to convert MOD-Packer formats easily. The provided structs/functions are:

MOD_Struct => MOD header including sample headers, pattern order and signature
MOD_Note => one note record with subfields value, sample(number), effect and (effect)parameter
MOD_ClearHeader(MOD_Struct) => clears the mod header
MOD_SaveHeader(MOD_Struct) => saves the header
MOD_SaveNote(Pattern,Row,Channel,MOD_Note) => saves the note

The sampledata must be appended by the ripper unit itself.

Important: The sourcecode is for use with Turbo Pascal 7.0 as it interpretes lines from left to right unlike other compilers (VirtualPascal e.g.). A line like "NextContent+NextContent*256" may have to be changed to "NextContent*256+NextContent" when using a different compiler. Also, the sourcecode is for MS-DOS platform only, as VGA registers are involved. It looks ugly in Win2k/WinXP as color register changes are not done in a console window (unlike Win95/Win98, which do this). Even the default font is changed, so expect character crap when using it in a modern Windows version. Also AMoRE in this form has problems with long filename generation. Saving files does only work in Win95/Win98. When saving a file it will appear as "savefile.xxx" and not with the given name.

So I included a VirtualPascal-compiled win32 binary (amo_text.exe) for you to test its ripping accuracy (amo_000.pas up to amo_040.pas are included). Just the interface is changed. In amo_main.pas you'll find a list of which number stands for which music file format. The binary must be called with the filename of the savestate/memdump you want to scan, e.g. state1.uss (WinUAE, !uncompressed!) or chip.mem (WinFellow).

EDIT: @asle - Maybe we've talked before via e-mail. I think I reported one bug for one of your mod converters in an old PW4PC version and I also told you how to "unpack" the delta4-packed sampledata in the latest ThePlayer file versions. :wink:

Image

Post Reply