| CPC Rulez https://cpcrulez.fr/forum/ |
|
| Cruncher UPKR https://cpcrulez.fr/forum/viewtopic.php?f=4&t=7285 |
Page 1 sur 1 |
| Auteur : | velus [ 26 Fév 2026, 16:17 ] |
| Sujet du message : | Cruncher UPKR |
J'ai découvert ce compacteur, il a l'air assez performant, il y a bien des routines z80 de decrunching mais je n'arrive a rien en l'insérant dans Winape quelqu'un sait-il m'aider pour la routine de décompactage ? https://github.com/exoticorn/upkr/releases/tag/v0.2.0 |
|
| Auteur : | hERMOL [ 26 Fév 2026, 22:48 ] |
| Sujet du message : | Re: Cruncher UPKR |
Pas mal celui-la! Le binaire de Boulder Dash passe a #262B octets, contre #29B2 pour zx0
|
|
| Auteur : | hERMOL [ 27 Fév 2026, 10:27 ] |
| Sujet du message : | Re: Cruncher UPKR |
a quoi corresponds ces instructions: Code : ; ** reset probs to 0x80, also reset HL (state) to zero, and set BC to probs+context 0 ld hl,probs.c>>1 ld bc,probs.e Code : ; reserve space for probs array without emitting any machine code (using only EQU) IFDEF UPKR_PROBS_ORIGIN ; if specific address is defined by user, move probs array there probs: EQU ((UPKR_PROBS_ORIGIN) + 255) & -$100 ; probs array aligned to 256 ELSE probs: EQU ($ + 255) & -$100 ; probs array aligned to 256 ENDIF .real_c: EQU 1 + 255 + 1 + 2*NUMBER_BITS ; real size of probs array .c: EQU (.real_c + 1) & -2 ; padding to even size (required by init code) .e: EQU probs + .c la compilation sous "sjasmplus-1.21.1", donne: Code : ld hl,#00A0 ;;ld hl,probs.c>>1
ld bc,#0240 ;;ld bc,probs.e |
|
| Auteur : | velus [ 27 Fév 2026, 11:19 ] |
| Sujet du message : | Re: Cruncher UPKR |
As tu réussi à faire le fichier asm ou du moins le compiler ? |
|
| Auteur : | hERMOL [ 27 Fév 2026, 11:50 ] |
| Sujet du message : | Re: Cruncher UPKR |
Non fonctionnel, je compil avec sjasmplus en bin , puis dans un second temps j'unasm pour winape. Je te donne un lien en msg pv... avec SjASMPlus Z80 Cross-Assembler v1.21.1 (https://github.com/z00m128/sjasmplus) ca ce compil en ORG #0000 sjasmplus.exe unpack.asm --msg=err --raw=unpack.bin |
|
| Auteur : | JMB [ 28 Fév 2026, 01:21 ] |
| Sujet du message : | Re: Cruncher UPKR |
Intéressant! J'ai modifié la source pour qu'il tourne sous WinAPE. J'ai des gains importants sur les fichiers Image. Par contre la décompression est vraiment lente Ca marche seulement quand le Firmware est désactivé. Apparement, on peut pas l'utiliser sous BASIC, même en sauvegardant le 2ème set de registres, et en désactivant les interruptions avant de lancer la décompression. Ou plutôt, ca va marcher mais faire un beau reset au moment de retourner au BASIC. Peut-être parce que les interruptions ont été désactivées trop longtemps? Code : org &1100 ;;Charge le fichier compresse en 2000h ld hl,Filename ld b,10 call &bc77 ld hl,&2000 call &bc83 call &bc7A ;;Decompression di ld ix,&2000 ;;Source exx push hl:push de:push bc ld de,&C000 ;;Destination exx call &1000 ;;Decompression exx pop bc:pop de:pop hl exx ei:ret Filename DB "SCREEN.UPK" A suivre! Merci pour l'info |
|
| Auteur : | hERMOL [ 28 Fév 2026, 02:21 ] |
| Sujet du message : | Re: Cruncher UPKR |
Excellent!!! 1000*thk |
|
| Auteur : | JMB [ 28 Fév 2026, 09:40 ] |
| Sujet du message : | Re: Cruncher UPKR |
Ah, bonne nouvelle : ça marche avec le BASIC. Je me suis fait avoir, car j'avais placé mon Loader à l'adresse 1100h, mais ça tombait dans la zone de données utilisée par le décompresseur. Si on déplace le loader en 1800h par exemple, plus de soucis. Il faut se méfier, car il y a un buffer de données crée juste après le décompresseur (appelé Probs), qui fait une taille de 400 octets environ. Mais on peut le déplacer à l'adresse que l'on veut en définissant une variable UPKR_PROBS_ORIGIN |
|
| Auteur : | velus [ 28 Fév 2026, 13:41 ] |
| Sujet du message : | Re: Cruncher UPKR |
Ca ne fonctionne pas chez moi Quels sont les parametres pour comprimer avec upkr UPKR -B nom.bin UPKR - ? |
|
| Auteur : | JMB [ 28 Fév 2026, 14:04 ] |
| Sujet du message : | Re: Cruncher UPKR |
Pour compresser, rien de plus simple! L'auteur a crée un méta-paramètre --z80 qui combine différents paramètres. Il suffit de taper: UPKR --z80 "c:\My path\Filename.bin" Ne pas oublier d'ajouter un header au fichier avant de le déplacer vers un DSK ! |
|
| Auteur : | velus [ 28 Fév 2026, 17:57 ] |
| Sujet du message : | Re: Cruncher UPKR |
Ca ne va pas mieux aaaarghh !!!! voici mes fichiers J'ai bien fait upkr --z80 pen.bin image en &2000 routine &1000 call &1000 quelqu'un sait-il me dire ou est le problème ? Merci j'ai 1 pixel d affiché |
|
| Auteur : | JMB [ 01 Mars 2026, 01:33 ] |
| Sujet du message : | Re: Cruncher UPKR |
Ca marche! Compressé à 4894 octets, contre 5920 avec ZX0 Tu peux accélérer la décompression en décommentant la ligne ;;UPKR_UNPACK_SPEED EQU 1 Ca déroule une boucle de 8 multiplications, mais on sent pas vraiment la différence... |
|
| Auteur : | velus [ 01 Mars 2026, 10:42 ] |
| Sujet du message : | Re: Cruncher UPKR |
Youpie impec merci |
|
| Auteur : | markerror [ 01 Mars 2026, 19:45 ] |
| Sujet du message : | Re: Cruncher UPKR |
Bonsoir, Merci pour avoir défriché le terrain A noter que l'optimisation n'est pas si anodine que cela (sur mon fichier d'exemple, on gagne quand même pas loin de 20%, mais ça reste très très lent. |
|
| Auteur : | marcel [ 01 Mars 2026, 22:38 ] |
| Sujet du message : | Re: Cruncher UPKR |
markerror a écrit : Bonsoir, Merci pour avoir défriché le terrain A noter que l'optimisation n'est pas si anodine que cela (sur mon fichier d'exemple, on gagne quand même pas loin de 20%, mais ça reste très très lent. Ça peut être intéressant sur des petits fichiers (si jamais le ratio demeure), ou pour ceux habitués à la lenteur des K7 |
|
| Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|