| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
Cross rle or equal char packer
I'm looking for a Windows commandline rle or equal char packer with at least these specs:
Memory range from $0200 to $ffff
Should create a runnable executeable with sysline
Anyone know one? I searched the net, but didn't find anything except pack64.exe included with Tass, but it didn't work here.
|
|
| |
enthusi
Registered: May 2004 Posts: 677 |
I guess RLE packer are so basic, everyone who ever needed one, coded one. I doubt you will find ready-to-use generic RLE packer. Sounds like a job for a human code machine if you ask me ;-) |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: I'm looking for a Windows commandline rle or equal char packer with at least these specs:
Memory range from $0200 to $ffff
Should create a runnable executeable with sysline
Anyone know one? I searched the net, but didn't find anything except pack64.exe included with Tass, but it didn't work here.
Is it of really that much importance it's RLE? Wouldn't LZ be ok aswell because then you have pucrunch and exomizer to choose from. And perhaps with cmdline options you might be able to turn of the backreferences in pu or exo to get only the RLE part? Perhaps... |
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
@enthusi That's what I hoped for: someone willing to share his small crosscruncher ;) I'm lazy, you know...
@JackAsser Not it's not so important it's RLE, but it should decrunch as fast as possible and the starting adress should be $0200 or lower if possible.
I need this for the generated output of my Modconverter. I know that I can move some stuff around internally and crunch with Exomizer or Pucrunch afterwards, but the decrunchtime while testing the module in WinVice isn't optimal for the workflow. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: @enthusi That's what I hoped for: someone willing to share his small crosscruncher ;) I'm lazy, you know...
@JackAsser Not it's not so important it's RLE, but it should decrunch as fast as possible and the starting adress should be $0200 or lower if possible.
I need this for the generated output of my Modconverter. I know that I can move some stuff around internally and crunch with Exomizer or Pucrunch afterwards, but the decrunchtime while testing the module in WinVice isn't optimal for the workflow.
Oh ok, but if it's just a workflow issue I suggest you simply save the whole shit as a big uncompressed .prg file and use the new DMA-load in VICE to push the data into memory. |
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
Quote: Oh ok, but if it's just a workflow issue I suggest you simply save the whole shit as a big uncompressed .prg file and use the new DMA-load in VICE to push the data into memory.
I didn't find anything regarding a DMA-load feature using a commandline switch. Is it possible to load the whole memory and give a startadress? |
| |
Devia
Registered: Oct 2004 Posts: 401 |
Quoting The Human Code MachineI need this for the generated output of my Modconverter.
Wouldn't you need to delta encode before RLE to gain any significant reduction in final data size?
|
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: I didn't find anything regarding a DMA-load feature using a commandline switch. Is it possible to load the whole memory and give a startadress?
@Groepaz&MagerValp: Wasn't this some new feature in VICE 2.2? Have I been dreaming? :) |
| |
Mr. SID
Registered: Jan 2003 Posts: 424 |
Couldn't you just use -moncommand to issue a series of commands to change $01, load and jump to start address?
Or be quick with enabling/disabling warp mode... :) |
| |
enthusi
Registered: May 2004 Posts: 677 |
ec64 (the c64 emulator) can do both.
Launch PRG via RAM-injection and enable/disable frame-limiter for a certain amount of frames via script.
There is a good chance though that it wont run your MOD-player =) |
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
@Devia I don't think that delta encoding makes such a big difference with a rle packer. Even Pucrunch is only a few percent better with delta enconding enabled.
@Mr. Sid I think your idea is too complicated. Would be cool, if Vice had an autorecognition for packed files and would enable warp during decompression. Could use the same technique as Ian Coog's unpacker.
@JackAsser I thought you knew how this DMA-load thing works?
@enthusi WinVice is quite good at emulating $D418, DigiMax and waveform digis using resid-fp. I don't think ec64 handles this very well. |
| |
iAN CooG
Registered: May 2002 Posts: 3194 |
Injecting a prg in vice would work only if the prg has a sysline, if it's starting from $0200 you can forget about it.
Give a try to Cadaver's packprg, full source included so you can build on any platform I think.
http://cadaver.homeftp.net/tools/c64tools.zip
Requires dasm to compile on the fly the depack.s, just set the depack address to $0100 and it depacks $0200-fffe (yes, it seems to have a bug with last byte setting it always to 0, just make sure you have 1 byte more than needed in the unpacked file)
I never used it because not only for the last-byte-bug, it does more than RLE (some sort of sequence packing) and the result when recrunched is worse than using an RLEpacker (or exomizer 2 alone) but it can be handy anyway if you only need to make a fast 0200-ffff program into a $0801-cfff 202 blocks runnable prg.
I have made my own semiautomatic(!) charpacker wrapper, that calls vice after injecting a charpacker and the unpacked prg in a d64, packs it and after exiting vice (alt-x/alt-f4) it extracts the packed version. Of course is not what you want but still it's better than having to do everyting manually ;)
http://iancoog.altervista.org/C/multipack_2.13_%285_packers%29... |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
I am currently coding a cross version of this one: G-Packer V1.0. Fastes RLE depacking since it uses a packing scheme similar to CmpByteRun1 but introduces an end marker. This way you don't need to compare for packbyte and you don't need to compare for end address for every data byte.
|
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
Thx for all the suggestions. I think I'll wait until Graham comes around with hie RLE-Packer ;) |
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
If you just want to test some cross-compiled code, can't you generate a Vice snapshot (vfs or whatever they are called)?
That way you can inject the complete memory without problems.
That's what I did when developing for C64DTV to avoid having to generate a D64 and emulate the complete loading process when I wanted to test something. |
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
@Shadow Also a nice idea. I'll take a look at the snapshot format. |
| |
Bacchus
Registered: Jan 2002 Posts: 156 |
Can I wake this thread up again.
I would want to have a full toolchain on the PC for cracking old C64 games and the normal way to do it is to RLE/Charpack the game, add the intro and then crunch the result. The RLC step is typically needed as the game is too big to add the intro without packing the game first. |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
You can try the rle option of cld here: cbmtools 0.6.
It does full 64K if required. |
| |
Burglar
Registered: Dec 2004 Posts: 1101 |
Quoting Bacchus...the normal way to do it is to RLE/Charpack the game, add the intro and then crunch the result.
For large singlefile games yes, but for multifile, Id say the best way is to keep the intro+bootfile as short as possible. and that fits easily in memory so u can just exo that.
but, for large singlefile things, I believe someone put a KickAssembler-based RLE packer on codebase or maybe in a thread here. Maybe it was Pantaloon or cruzer?
what I would do is just code an own RLE commandline tool. it's not hard ;) |
| |
Fungus
Registered: Sep 2002 Posts: 686 |
Exo skips non compressable data so crunching it works fine and rle is not needed. |
| |
Stainless Steel
Registered: Mar 2003 Posts: 966 |
is this Rle.exe or this RLEpack v0.1 any help? |
| |
HCL
Registered: Feb 2003 Posts: 728 |
ByteBoozer 2.0 generates executables with the decruncher remaining on zero-page, so i guess it would qualify.. if ever the topic is still interesting :). |