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 > More Exomizer Corruption - Sprites
2018-05-27 01:36
alwyz

Registered: Dec 2011
Posts: 32
More Exomizer Corruption - Sprites

Has anyone else noticed Exomizer corrupting sprites in programs? Mostly wrong placement on screen or other abnormalities of that nature? I've had the problem with several programs over the past week. Tried with 2 different versions of exomizer as well, same issue.

Alwyz
2018-05-27 05:25
Martin Piper

Registered: Nov 2007
Posts: 722
Are you decompressing over $d000 without having IO disabled?
2018-05-27 07:02
alwyz

Registered: Dec 2011
Posts: 32
Well, that depends. Yes and no.

I am looking for a trend here, and it seems be happening to programs I've packed first with sledgehammer. The sledgehammer version runs fine, and compressing with cruel crunch 3.6 after sledgehammer doesn't give me any problems. But compression with exomizer after sledgehammer gives the weird sprite bugs. It's happened with 2 different programs (I've only tested this with 2 programs), but both have exhibited this sprite issue in different ways, and sledgehammer first seems to be the commonality between both.
2018-05-27 09:26
oziphantom

Registered: Oct 2014
Posts: 490
Are the sprites off by 2 bytes, if so then its exomiser either stripping a prg header when it shouldn't or not when it should are you using the right mode for what sledgehammer puts out?
2018-05-27 09:26
Fred

Registered: Feb 2003
Posts: 285
It might be that your programs have unsaved memory and are expecting certain values at some memory locations which are used by the exomizer decruncher. This can cause weird behavior. You cannot blame exomizer for this.

Just check after unpack if the result is the same as before you packed with exomizer. If it is the same then you know it is a memory init problem and not exomizer. Make sure your programs init all memory locations before using it (including sprite data) and make sure all memory areas that are used are saved and then pack with exomizer.
2018-05-27 12:15
tlr

Registered: Sep 2003
Posts: 1790
I assume you know this but: It's not suitable to use sledgehammer before exomizing. It should still work but the result is larger and you get slower decompression.

Could you post a sledged program that fails?
2018-05-27 14:17
iAN CooG

Registered: May 2002
Posts: 3193
Don't blame the tools, blame your lack of inited zp and other lower mem areas you use in your code.
Every packer/cruncher use different memory locations during decrunch, of course, so expect fuckups if you use some locations assuming they are zeroed.
2018-05-27 14:32
chatGPZ

Registered: Dec 2001
Posts: 11386
martin has the right hint - almost :)

to get funny bugs like this you dont actually have to depack _over_ $d000. the depacker needs a couple bytes after the depacked program, so if you pack up to $cfff - the depacker will write into the sprite registers when i/o is enabled.
2018-05-27 14:58
tlr

Registered: Sep 2003
Posts: 1790
Quote: martin has the right hint - almost :)

to get funny bugs like this you dont actually have to depack _over_ $d000. the depacker needs a couple bytes after the depacked program, so if you pack up to $cfff - the depacker will write into the sprite registers when i/o is enabled.


The exomizer sfx depacker depacks in reverse so in that case a couple of bytes _below_ the depacked binary are corrupted instead.

If you don't want to post a binary, PM it. Impossible to debug otherwise.
2018-05-27 15:03
chatGPZ

Registered: Dec 2001
Posts: 11386
oh, ok then. just some uninitialized memory in that case :)
2018-05-27 21:31
alwyz

Registered: Dec 2011
Posts: 32
Thanks for the info everyone. Here's a link to a test .d64 with the following files for The Last V8 [pal/ntsc fix applied as well].

fullc770 - full file with title pic, trainer, and sledgehammer packed game. exe $c770

exomizer version and cruel crunch version.

the car sprite is corrupted on the exomizer version.

https://we.tl/LXBKZBFSj7

Seems strange to me, still, even with all the replies. But if anyone wants to take a look and see if they see anything obvious, im all ears. Still have lots of holes in my coding knowledge.
2018-05-27 22:16
iAN CooG

Registered: May 2002
Posts: 3193
just clear tapebuffer at $334 and you're done. The game wrongly assumes it's zeroed, apparently. Exomizer uses it as scratchpad.

    *=$c700
    lda #0
    ldx #$34
clnloop
    sta $300,x
    inx
    bne clnloop
    jmp $c770

2018-05-27 22:25
chatGPZ

Registered: Dec 2001
Posts: 11386
the (tape) original probably CAN assume this =D
2018-05-27 23:23
alwyz

Registered: Dec 2011
Posts: 32
Ahh fantastic thank you!
2018-05-30 02:59
Martin Piper

Registered: Nov 2007
Posts: 722
I would just compress the whole memory from $200-$fff8 with zero data at $200-$3ff or whatever was needed. :)
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
Holy Moses/Role
Flashback
MP Software/Hokuto F..
Guests online: 97
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 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (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 Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Violator  (9.7)
4 Acidchild  (9.7)
5 Cash  (9.6)

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