Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Cross rle or equal char packer
2010-06-10 09:22
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.
2010-06-10 11:15
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 ;-)
2010-06-10 11:42
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...
2010-06-10 12:03
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.
2010-06-10 12:42
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.
2010-06-10 12:54
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?
2010-06-10 13:09
Devia

Registered: Oct 2004
Posts: 401
Quoting The Human Code Machine
I 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?
2010-06-10 14:15
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? :)
2010-06-10 15:07
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... :)
2010-06-10 15:17
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 =)
2010-06-10 16:12
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.
2010-06-10 18:50
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...
2010-06-11 05:38
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.
2010-06-11 07:12
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 ;)
2010-06-11 09:50
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.
2010-06-11 10:06
The Human Code Machine

Registered: Sep 2005
Posts: 112
@Shadow Also a nice idea. I'll take a look at the snapshot format.
2016-02-10 17:57
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.
2016-02-10 18:02
tlr

Registered: Sep 2003
Posts: 1790
You can try the rle option of cld here: cbmtools 0.6.

It does full 64K if required.
2016-02-10 18:13
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 ;)
2016-02-11 00:07
Fungus

Registered: Sep 2002
Posts: 686
Exo skips non compressable data so crunching it works fine and rle is not needed.
2016-02-11 21:57
Stainless Steel

Registered: Mar 2003
Posts: 966
is this Rle.exe or this RLEpack v0.1 any help?
2016-02-12 20:23
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 :).
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Magic/Nah-Kolor
psych
JackAsser/Booze Design
bepp/ΤRIΛD
csabanw
Courage
Guests online: 108
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Webmasters
1 Slaygon  (9.6)
2 Perff  (9.6)
3 Sabbi  (9.5)
4 Morpheus  (9.4)
5 CreaMD  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.063 sec.