English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.Demos (https://eab.abime.net/forumdisplay.php?f=7)
-   -   100 C64 Tunes demo in WinUAE (https://eab.abime.net/showthread.php?t=3688)

Ravenger 12 March 2002 23:30

100 C64 Tunes demo in WinUAE
 
Has anyone managed to get the 100 Most Remembered C64 Tunes demo to work in WinUAE?

Whatever settings I use it gurus upon decompressing.

I want to get this demo working as it has the only remaining copy that I know about of an old C64 picture of mine!

Here's a link to the demo:

http://amiga.nvg.org/warlock/adf/b/B...64Tunes.adf.gz

Thanks!

turk182 13 March 2002 18:53

I'm gutted that this dont work either it kinda started all the .SID player stuff.
I think I know who you are BTW :)

Dastardly 13 March 2002 19:52

Yeah Ive seen this EXACT question on another messageboard.

Toni Wilen 13 March 2002 20:10

There is small and very simple protection code that uses self-modifying code and it fails due to bad emulation.

Protection code needs 68000's instruction prefetch ("more compatible"-option) but UAE's CPU emulator isn't 100% correct yet. (This feature isn't even documented by Motorola!)

And I thought prefetch emulation was 100% correct already :(

Ravenger 13 March 2002 22:15

Quote:

Originally posted by Toni Wilen
And I thought prefetch emulation was 100% correct already :(
Well at least you've got a reproducable test case where it doesn't work :)

Yes, I've posted this query on several boards. The picture I'm after is the Monty On the Run c64 pic. I don't have the original any more, but I know for certain it's in the demo.

I was hoping to run the demo under emulation and get a snapshot of it, but it looks like that's not possible :(

Anyone know if I can decompress / hack the demo in some way and maybe get it back that way?

Twistin'Ghost 13 March 2002 23:23

Someone should make a WHD loader for it...

Codetapper 14 March 2002 02:41

Quote:

Originally posted by Toni Wilen
There is small and very simple protection code that uses self-modifying code and it fails due to bad emulation.

Protection code needs 68000's instruction prefetch ("more compatible"-option) but UAE's CPU emulator isn't 100% correct yet. (This feature isn't even documented by Motorola!)

And I thought prefetch emulation was 100% correct already :(

As far as prefetch is concerned, I think the CPU always fetches instructions until it is longword aligned.

Hence if you have:

$030 move.w (a0),d1 ;a0 = $038
$032 eor.w d2,d1
$034 move.w d1,(a0)+
$036 dbra d0,$400 ;4 byte instruction ($036-$03a)

then the code at $36 will be run, decrement d0, branch to $400 and then the instruction at $36 will be modified so that the dbra will go to a different address on the next loop. This is common code used in lots of game protection such as all the Readysoft games and stuff like Plutos, Carcharodon etc.

When I'm decoding encryption on games I always assume it fetches to the nearest longword and that hasn't failed me yet!

Toni: I'm very keen to get my hands on a version of WinUAE with debugging features like the old Dos version of Fellow had (v0.33 or v0.35) where you can tell it to break at a certain address and examine memory etc. I would love to be able to set registers and tell the CPU to start at a certain location like the AR cartridge allows. What do you use when you are debugging "dodgy" Amiga programs under emulation and where can I get it without having to compile myself?

Toni Wilen 14 March 2002 08:20

Quote:

As far as prefetch is concerned, I think the CPU always fetches instructions until it is longword aligned.
I am remembering that Super Offroad's decryption code don't work with this method.

UAE's current prefetch code was "stolen" from Mame's m68k emulation and it seems to work quite well compared to old prefetch code.

Quote:

I would love to be able to set registers and tell the CPU to start at a certain location like the AR cartridge allows. What do you use when you are debugging "dodgy" Amiga programs under emulation and where can I get it without having to compile myself?
You don't want to know :)

For example, if I want to know when program writes to memory location x, I add simple comparison to chipmem_xget()-subroutines and call activate_debugger() when addr == x. (BTW: WinUAE's simple build-in debugger is activated by pressing SHIFT+F12)

Ravenger 20 March 2002 22:26

With some help from someone on Usenet I've found that it's the decrunching that's causing the problem.

It uses the Defjam Cruncher 3.2 Pro, and using xfddecrunch in winuae I've managed to decompress the main demo file.

Unfortunately I can't get it to run :(

If I don't specify an option when I decrunch it, I get the following message:

Saving relocated image(Addr: $00000200, Jmp: $00000200)...

The decrunched file then won't execute - it gives a "file is not executable" message (presumably because it hasn't got an executable file header linked - I'm a complete novice at this, so forgive me I've got it wrong!).

If I specify the LS (Simple linking) option when decompressing the file, I get the following error message when I try to run it:

demo: bad loadfile hunk

If I specify the LP option (Professional linking) and try to run the demo I get an "No memory available" error (even though I've got plenty of memory in the emulator).

Am I doing something wrong here?

There doesn't seem to be much documentation about how to use xfddecrunch, and what all its options do, so I'm working blind here. :confused

Any help most gratefully received!

Twistin'Ghost 21 March 2002 10:28

I'm probably not much help here, but I use xfddecrunch all the time, but I assume any file crunched with an address cruncher cannot be decrunched to run like it can with PowerPacker or Imploder. I think you'd probably have to write a relocator executable header thingamajiggy... :D

Sorry, I am no assembly language person, but I think it goes something like that. Perhaps Galahad or Codetapper or someone can better explain this stuff since they are the house experts with 68000 asm...

What I do with the program is to decrunch address-crunched executables and then load them into Exotic Ripper to try and rip obscure mods (the simple ones that can be ripped, anyway). And I am able to search for or read text strings, which offers useful info a lot of times.

turk182 21 March 2002 11:28

I remember when I used to decrunch stuff from floppy to memory & dump the file out then recrunch it with another simliar cruncher (when I used to mess about with the boot intros) ,maybe you could try another one that might work on the emus?

Toni Wilen 21 March 2002 11:36

Decrunching is working perfectly but immediately after decrunch has finished there is simple protection code at 0x200 that fails due to incorrect m68k instruction prefetch emulation.

It is quite easy to skip protection code with Action Replay, but program crashed when I tried to select song from the list...

Ravenger 21 March 2002 18:11

Thanks for the info. I think I'll attack the problem from a different angle.

Now I have a decrunched version of the demo, I'll search through it to try to find the graphic files. Maybe I can get the picture back that way.

Ravenger 22 March 2002 01:39

After hacking the Amiga 100 Most remembered C64 tunes to bits I've recovered not just my C64 Monty on The run pic, which I'd lost for over 10 years, but also one I'd forgotten about - my Max Headroom pic! :D :D :D

After decompressing the demo, I poked around for a bit. I couldn't find any Amiga bitmaps, then realised that the pictures must be in the original koala painter format.

By luck I managed to extract the very first picture in the demo, then through a bit of detective work and much trial and error I managed to recover all 26, including three of mine!

The background colour value was missing from the pics, but that was easily figured out.

Hurrah! Now I can go to bed.

Thanks for all the help, sorry I couldn't get the demo actually working, but at least I've got my artwork back after all these years. :D

Djay 22 March 2002 02:31

@Codetapper

Quote:

$030 move.w (a0),d1 ;a0 = $038
i think it might of been the "Sprange Sprocket Osolator", rather then your rather complex code instructions...

:D :D :D :D :D :D :D :D

seriously thou, i do respect people who know this kinda stuff!!!

andreas 22 March 2002 03:27

Quote:

After decompressing the demo, I poked around for a bit. I couldn't find any Amiga bitmaps, then realised that the pictures must be in the original koala painter format.
Cool. So the guys must have written a kind of converter which could read and display pictures in koala painter format? Not an easy thing, methinks.

Ravenger 22 March 2002 10:44

Well the demo did lay the foundation for C64 emulation, featuring on-the-fly Koala Painter picture conversion, 6510 emulation, and SID chip emulation.

I'm pleased to be associated with it - three of the 26 pictures in the demo are mine (Though I didn't give them to the authors - I imagine they found them on some C64 demo disks).

And I'm very grateful to the writers, as by creating the demo they preserved two of my pictures which would otherwise be lost.

turk182 22 March 2002 11:02

so are you gonna send your rips for us to see?

Ravenger 22 March 2002 13:25

I'm working on a web gallery now, which will include all the C64 art I've done, including the ones from the C64 demo.

It may later include the Amiga art I did too.

Toni Wilen 07 July 2002 21:27

Small status report: "100 Most Remembered C64 Tunes" is now working on my WinUAE development version.

(don't ask about release dates yet, thanks..)


All times are GMT +2. The time now is 01:44.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04752 seconds with 11 queries