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 > Dreamload question
2006-05-21 11:54
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Dreamload question

Hi!

Does anyone know how to 'convert' ide64 fixed games to dreamload?
I saw that there exists an ide64 version of 'Rick Dangerous 2'. How do I add the new loader?
It should run with the MMC64...
2006-05-21 12:06
Krill

Registered: Apr 2002
Posts: 2980
Simply replace the load routines in the game with Dreamload.
2006-05-21 12:14
chatGPZ

Registered: Dec 2001
Posts: 11386
"simply" ..... o_O
2006-05-21 12:25
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Hmmm, ... and how?
2006-05-21 12:43
Krill

Registered: Apr 2002
Posts: 2980
Using your favourite machine code monitor.
Of course this is not a trivial task, especially if you don't have any cracking experience.
But as long as there is no general loader interface that everyone sticks to, there is no simple way to update or exchange loaders or add new devices.
2006-05-21 14:44
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Unfortunately i have no cracking-experience :_(
2006-05-21 15:04
Scout

Registered: Dec 2002
Posts: 1570
Quote: Unfortunately i have no cracking-experience :_(

Start learning then...
Better do it yourself instead of waiting for others to do it for you :)

---
Commodore 64 Scenemusic Podcast
http://8bitmayhem.blogspot.com/
2006-05-21 16:45
Krill

Registered: Apr 2002
Posts: 2980
But this is a good point to start thinking about some generic loader interface for easy loader swapping. Something most similar to the kernal open/chrin/close API and the vectors in low memory, and stdclib's filestream API (we need a seek() command).
Most problems, however, will occur concerning free memory and relocation.
I'll put the whole issue to my loader to-do list.
2006-05-21 17:28
Monte Carlos

Registered: Jun 2004
Posts: 359
@Krill:

Ullrich v. Bassewitz would be very pleased for a seek command
for his cc65 compiler.
;)
2006-05-22 10:11
Ninja

Registered: Jan 2002
Posts: 411
Baccy has thought about doing an easy OPEN/CHRIN/CLOSE interface for the MMC. It might work then for games which got fixed for IDE64. Still, it would be a hack and won't work for all games of this kind. Oh, and it might take a century till a release ;)
2006-05-22 11:46
Krill

Registered: Apr 2002
Posts: 2980
I'll wrap my head around it, but we should work out a solution together.
2006-05-22 11:52
enthusi

Registered: May 2004
Posts: 677
forgive my ignorance but isnt IDE-fix == use kernal-loader again?
(if not, why not? That would have been clever :)
2006-05-23 19:31
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Hmm, :-l
2006-05-23 19:41
cadaver

Registered: Feb 2002
Posts: 1160
Quote: forgive my ignorance but isnt IDE-fix == use kernal-loader again?
(if not, why not? That would have been clever :)


Yes, and especially not using serial bus related calls (ACPTR/TALK/LISTEN and such)
2006-05-23 19:48
Bamu®
Account closed

Registered: May 2005
Posts: 1332
... And who has enough knowledge for this feature?
2006-05-23 21:03
cadaver

Registered: Feb 2002
Posts: 1160
Just my personal opinion, as long as MMC64 doesn't support the standard kernal calls it's not worth it hacking support into games especially for it. Don't get me wrong, Dreamload is a cool loader and MMC64 loading on it seems like a cool (if a bit hackish and obscure) feature, but its memory footprint isn't especially the smallest..
2006-05-23 22:49
Krill

Registered: Apr 2002
Posts: 2980
Still a generic loader interface not relying on the KERNAL API would be quite feasible. You exchange a loader file on the disk/image and it would make stuff more compatible/faster/whatever.
2006-05-24 06:29
TNT
Account closed

Registered: Oct 2004
Posts: 189
Quote: ... And who has enough knowledge for this feature?

Many people have that. None of them has time.
2006-05-24 08:20
Ninja

Registered: Jan 2002
Posts: 411
Krill: In deed, this would be extremly cool. I'm afraid this should have been there 20 years earlier ;)

cadaver: obscure? :D Because of DFI-files, or why?
2006-05-24 08:47
cadaver

Registered: Feb 2002
Posts: 1160
Yeah, for DFI.
2006-05-24 08:51
WVL

Registered: Mar 2002
Posts: 902
Quote: Just my personal opinion, as long as MMC64 doesn't support the standard kernal calls it's not worth it hacking support into games especially for it. Don't get me wrong, Dreamload is a cool loader and MMC64 loading on it seems like a cool (if a bit hackish and obscure) feature, but its memory footprint isn't especially the smallest..

erh.. how much memory DO you need for the MMC compatible dreamload?
2006-05-24 10:35
Ninja

Registered: Jan 2002
Posts: 411
Dreamload needs 2 pages for loadercode and 1 page as a buffer. This has always been the case and was not extended because of MMC (but MMC is closest to the limit). When installing approx. $1000 byte are needed.
2006-05-24 11:24
chatGPZ

Registered: Dec 2001
Posts: 11386
what exactly is the problem with relying on the kernel api? inventing something new here just makes things worse imho.
2006-05-24 11:41
Oswald

Registered: Apr 2002
Posts: 5094
what groepaz said
2006-05-24 12:12
soci

Registered: Sep 2003
Posts: 480
I've just fixed dreamload to load from DFI files on IDE64. Just because that was the only thing it couldn't load from, which was a shame ;) Now it passes all tests, except on SCPU, but that can't be fixed to be possible with memory configuration 5.

Actually I do not like the dreamload design. It's just too much based on the on disk layout. If one wants to load from files I think it's much simpler to call the KERNAL load routine, which is also much faster than loading from DFI.

The really fine toolchain prevented me for a long time to add IDE64 support, I've always got fed up with it and throw away the idea. That's probably because my style is too much different. But finally it couldn't stop me ;)

Dreamload should throw away the track/sector interface and only keep the filename based one. Then I'll fix it to use LOAD on IDE64 ;)

2006-05-24 12:27
Krill

Registered: Apr 2002
Posts: 2980
Quote: what exactly is the problem with relying on the kernel api? inventing something new here just makes things worse imho.

As i said, we (or at least i) want a seek command. And then there still is and always will be hardware that does not come with a kernal patch. Also, imagine having several devices with concurring kernal patches etc.
2006-05-24 12:31
soci

Registered: Sep 2003
Posts: 480
Seeking should be no problem with IDEDOS 0.90. Actually DFI support is implemented with seeks...
2006-05-24 14:06
Krill

Registered: Apr 2002
Posts: 2980
Yes, whateverDOS. Cool. And if i don't have/want it? :D
2006-05-24 14:36
Ninja

Registered: Jan 2002
Posts: 411
Aaaargh, once I forget to copy my typed text to an editor and whooosh, it got thrown away :((((( Fuck!

Okay, to sum it up:

- Dreamload started as a 1541-loader for our demos
- we added everything else to see if it is possible
- it is still a loader for (our) demos
- so, we won't throw away the track/sector thing
- it is not really suited for games, KERNAL is better there.
- sorry to all, which hoped for lots of MMC-games now
- we wanted to add IDE64-DFI later, soci was faster
- (toolchain? just dreamass is really needed...)

And finally: it's all about the fun doing it...
2006-05-24 15:44
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Then, we have to wait for real mmc-kernal support and forget dreamload? ;)
2006-05-24 15:47
Krill

Registered: Apr 2002
Posts: 2980
Or just define a generic loader interface that goes without Kernal patches and then swap loaders if needed.
2006-05-24 16:39
chatGPZ

Registered: Dec 2001
Posts: 11386
much easier to create a kernel patch for a new device than adding support for a new device to <insert insanely large number> games.

demos, yes, those are a completely different story.
2006-05-24 17:25
cadaver

Registered: Feb 2002
Posts: 1160
How much RAM the kernal patch would approximately need? I guess it would need to be relocatible to be useful..
2006-05-24 17:47
Ninja

Registered: Jan 2002
Posts: 411
Well, at least you won't need a buffer there. But some mem to store MMC-configs? Dunno, maybe Baccy stores everything in RR-Ram or something :D But as I said, KERNAL-thingie is just an idea at the moment and Baccy is busy as hell...
2006-05-24 22:04
Bamu®
Account closed

Registered: May 2005
Posts: 1332
Hmmmm, RR-RAM?
Dont have a retro replay :-l
2006-05-25 07:49
WVL

Registered: Mar 2002
Posts: 902
Quote: Hmmmm, RR-RAM?
Dont have a retro replay :-l


dreamload on mmc also works without the RR, i think it only uses RR as a possible buffer.
2006-05-25 10:17
Ninja

Registered: Jan 2002
Posts: 411
I meant "will store". This was for a possible KERNAL-thigie. Dreamload can use RR, but does not need it, as WVL said.
2006-05-28 15:40
Bamu®
Account closed

Registered: May 2005
Posts: 1332
How many new & old demos will be fixed with dreamload?

I doubt people will use it as their standard loader.
However, it would be quite cool if every new demo would run from mmc64. 8-)

edit: kernal support would solve alot problems, but if a RR is required... :-l
2006-05-28 21:56
Steppe

Registered: Jan 2002
Posts: 1510
I'd appreciate the jewel crackers taking Dreamload into account much more than demos. Retrofixing games like Ultima or all those multidisk RPG games to work from MMC64 would be a blast! :-)
2006-05-28 21:58
cadaver

Registered: Feb 2002
Posts: 1160
Well you still can't save on MMC64 (and for saving in general, you need to detach the loader and be prepared to run the $1000 byte init routine again)

Furthermore, I guess pride of using in-house loader can never be underestimated :)
2006-05-28 23:34
Krill

Registered: Apr 2002
Posts: 2980
Indeed. Also nothing speaks against making other loaders more compatible. And Dreamload still has the big disadvantage of only allowing one device on the bus. (So does my loader, but that will change)

As for me, the initial idea was to make the _fastest_ irq loader for demos, and that's still the primary goal. That means best performance on Commodore 64 + 1541, other configurations are of less interest. Many demo producers have the same primary goals, and that's why some of them prefer my loader.

Recently, i added a kernal fallback that works with exotic hardware as long as they work with the plain iec protocol or if there is a kernal patch supporting them.

I will add more compatibility (1581/FD/HD without kernal fallback) later, but primary aim still is to max out the speed on a 1541.
2006-05-29 07:30
TNT
Account closed

Registered: Oct 2004
Posts: 189
Quoting cadaver
Well you still can't save on MMC64

Says who? ;) There are at least three people who have managed to write FAT16 files onto MMC64, but AFAIK only Oliver has released it in public (D64 reader).

Bad news is that because of lack of RAM in MMC64 kernal patch compatibility will always suffer badly unless you have RR or some other extra memory. Read-only support from file container like DFI can't be done in much less than 512 bytes (without any buffering, bleuch!), real FAT16 file system support takes about twice that much and we are still taking about read-only files. Even if routines are put into MMC64 BIOS each open file needs several bytes for housekeeping, and couple more bytes are needed to redirect kernal calls.
2006-05-29 08:55
cadaver

Registered: Feb 2002
Posts: 1160
Ah sorry, I meant saving with Dreamload-MMC64 onto its special images (which the heavy RPGs suggested would require)
2006-05-29 09:21
Ninja

Registered: Jan 2002
Posts: 411
Well, Doc Bacardi is usually in contact with crackers. NosDos contains code derived from DreamLoad, for example. But I don't think discussions about MMC have been made yet. It is still a completely different issue.

Krill: We also had an idea to have more than 1 drive on the bus. But as we wanted to support 2Mhz-drives sending data a lot faster than the 1541, it got spoiled :(
2006-05-29 14:19
MagerValp

Registered: Dec 2001
Posts: 1078
Saving to a fixed size save file should be easy with the MMC64. You just find out which sector(s) the file is using when the program starts, then write data straight to the sector when saving.
2006-05-29 14:58
TNT
Account closed

Registered: Oct 2004
Posts: 189
Yes, that it easy, but when you need to do everything associated with creating new file you get plenty of additional code. PETSCII->ASCII conversion, checking for exisiting file/dir with same name, deleting (or overwriting + adjusting size of) old file if found, creating new directory entry with long file names... In the end finding free clusters and allocating them is the easiest part.

Things get a bit easier if you use file container with fixed size, especially with D64 - lots of code from 1541 ROM available :)
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
danikAdmiral
Sulevi/Virtual Dreams
Guests online: 106
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 The Demo Coder  (9.6)
6 Edge of Disgrace  (9.6)
7 What Is The Matrix 2  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 X-Mas Demo 2024  (9.5)
7 Dawnfall V1.1  (9.5)
8 Rainbow Connection  (9.5)
9 Onscreen 5k  (9.5)
10 Morph  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Musicians
1 Rob Hubbard  (9.7)
2 Mutetus  (9.7)
3 Jeroen Tel  (9.7)
4 Linus  (9.6)
5 Stinsen  (9.6)

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