How to set "proper !Boot sequence"? I don't have anything configured yet, it just tries to boot from floppy when I turn the machine on. I have just today replaced my old mechanical IDE drive with a DOM (formatted with a !System dir on it).
Technodream on emulation
Re: Technodream on emulation
Re: Technodream on emulation
I'd start with Uniboot and update it as/when required.
Re: Technodream on emulation
I am trying to get Uniboot2 onto my system using the split zips from the page you linked to. What format (filename, filetype) is !Joiner expecting the split files to be? At the moment I have them as "UB/zip01", "UB/zip02", etc. but I get lots of errors when running !Joiner (flag number changes each time error is shown):
Also, the resulting joined zip can't be opened by !Spark (error = "Invalid ZipFile Header").
Code: Select all
flag = 100 :
ADFS::IDEDisc4.$.uniboot.UB/zip01
Re: Technodream on emulation
I decided to try SmallUni.zip linked to on that page, as it fits onto a single floppy (zipped). I put the !Boot onto the root of my HDD. I then put the Wimp module into the folder as you described. I then did *DRIVE 4 then *OPT 4 2. Here is the resulting drive showing the options:
However, I am not sure it's booting as nothing seems to have changed when I powered off / on and TechnoDream still has the same issue. Also note in the screenshot that "*drive IDEDisc4" didn't work. Why is that?
However, I am not sure it's booting as nothing seems to have changed when I powered off / on and TechnoDream still has the same issue. Also note in the screenshot that "*drive IDEDisc4" didn't work. Why is that?
Re: Technodream on emulation
Did you look in the "Extras" folder? (There should be some uniboot files, not tried them in a while, but they should work)
Don't have a !boot and !Scrap/!System/!Fonts in use at the same time. !Scrap/!System/!Fonts are inside the !boot folder.
You also need to do "*configure boot" to get it to run the boot at power-on. You may also need to *configure the drive number, it may be trying to boot from drive 0 (the floppy)
What happens now?
Don't have a !boot and !Scrap/!System/!Fonts in use at the same time. !Scrap/!System/!Fonts are inside the !boot folder.
You also need to do "*configure boot" to get it to run the boot at power-on. You may also need to *configure the drive number, it may be trying to boot from drive 0 (the floppy)
Code: Select all
*adfs
*drive 4
*opt 4,2
*configure drive 4
*configure filesystem adfs
*configure boot
Re: Technodream on emulation
That worked, using the !Boot from the Extras folder. Boot took quite a long time, I am assuming I can significantly trim that? TechnoDream worked up until I completed stage 2, then got this error:
I also noticed that RISC OS windows now had textures. Can I disable that? The border was also black instead of the default grey.
I also noticed that RISC OS windows now had textures. Can I disable that? The border was also black instead of the default grey.
Re: Technodream on emulation
Thanks for posting the links, much appreciated.
I had the same issue with loading Stage 3. When I looked at the files I saw that many of them were being extracted as text files, whereas my original copy had them as generic filetypes. Copying the affected files from my original Technodream to the newer version has resolved all the issues for me.
If you're using HostFS it's probably possible to rename the files there to update the filetypes within the emulated RISC OS. I've attached a complete dump of the file list for general reference, and I'll send you a PM.
I had the same issue with loading Stage 3. When I looked at the files I saw that many of them were being extracted as text files, whereas my original copy had them as generic filetypes. Copying the affected files from my original Technodream to the newer version has resolved all the issues for me.
If you're using HostFS it's probably possible to rename the files there to update the filetypes within the emulated RISC OS. I've attached a complete dump of the file list for general reference, and I'll send you a PM.
- Attachments
-
- tdream.txt
- (45.2 KiB) Downloaded 37 times
Re: Technodream on emulation
I thought this may be happening because I installed the games onto HostFS first before zipping then transferring to my A3020. But no, I just tried installing to a HDD image in Arculator, and many of the files are still showing as text files. Odd.
Re: Technodream on emulation
Looking at that file list, it seems that many of the files that end up with text file types after installing should actually have no file type. How can you set the file type to nothing? I tried just deleting the file type (setting it to nothing) but RISC OS comes up with an error.
Re: Technodream on emulation
That's merely an artifact of how HostFS handles the Text (&FFF) filetype. Any files that don't have a comma followed by something else (for example, !Techdream.Titles.GFX) should be set to the Text filetype. (Of course, this doesn't apply to directories, which can be distinguished by a "d" at the left of the Mode column.)
---
The files which have names like ZONE1,20000-20000, on the other hand, are slightly different. These have load and execution addresses instead. These are a little more difficult to set in RISC OS as filetypes were intended to replace them. The only way I know of to set those is by using the *Load command to load the file into memory into a specific location, then the *Save command to save it back out and specifying the load and execute addresses manually.
Note that there are two very important things to note about these commands. Firstly, all numbers are in hexadecimal even without using the "&" prefix! Second, the *Save command has you enter the execute address first, though thankfully that doesn't seem to make a difference here.
For example, to set the !Techdream.Techno3.Stage2.ZONE1 file addresses (load address &20000, execute address &20000) properly, you would (after making sure you have a backup!):
1. Press F12 to get to a command prompt. (Don't use a task window for this; there's a risk that something else could end up corrupting the memory before you save it.)
2. Type *Load ZONE1 20000. This will load the ZONE1 file to address &20000 in memory. (It's not required that we load it there, but it's generally a good idea to load them into their intended load address point.)
3. Type *Save ZONE1 20000 + 2a78 20000 20000. (See below for explanation.)
4. Press RETURN to get back to the desktop.
An explanation of the numbers in step 3:
20000: This is the address we want to start saving from. We loaded ZONE2 into address &20000 in step 2, so we want to save from that part of memory too.
2a78: This is the length of the file we want to save. The original file was 10872 bytes long, and converted into hexadecimal (remember, all numbers are hex!), that's &2a78. (Note that there's a "+" before this number - that signals to *Save that we're specifying a length, not an end address.)
20000: This is the execution address we want to give the file - the second number in the HostFS filename.
20000: This is the load address we want to give the file - the first number in the HostFS filename.
If there's an easier way to do this, somebody please let me know!
[edit: Sorry for the edit spam, I keep noticing mistakes >_<]
---
The files which have names like ZONE1,20000-20000, on the other hand, are slightly different. These have load and execution addresses instead. These are a little more difficult to set in RISC OS as filetypes were intended to replace them. The only way I know of to set those is by using the *Load command to load the file into memory into a specific location, then the *Save command to save it back out and specifying the load and execute addresses manually.
Note that there are two very important things to note about these commands. Firstly, all numbers are in hexadecimal even without using the "&" prefix! Second, the *Save command has you enter the execute address first, though thankfully that doesn't seem to make a difference here.
For example, to set the !Techdream.Techno3.Stage2.ZONE1 file addresses (load address &20000, execute address &20000) properly, you would (after making sure you have a backup!):
1. Press F12 to get to a command prompt. (Don't use a task window for this; there's a risk that something else could end up corrupting the memory before you save it.)
2. Type *Load ZONE1 20000. This will load the ZONE1 file to address &20000 in memory. (It's not required that we load it there, but it's generally a good idea to load them into their intended load address point.)
3. Type *Save ZONE1 20000 + 2a78 20000 20000. (See below for explanation.)
4. Press RETURN to get back to the desktop.
An explanation of the numbers in step 3:
20000: This is the address we want to start saving from. We loaded ZONE2 into address &20000 in step 2, so we want to save from that part of memory too.
2a78: This is the length of the file we want to save. The original file was 10872 bytes long, and converted into hexadecimal (remember, all numbers are hex!), that's &2a78. (Note that there's a "+" before this number - that signals to *Save that we're specifying a length, not an end address.)
20000: This is the execution address we want to give the file - the second number in the HostFS filename.
20000: This is the load address we want to give the file - the first number in the HostFS filename.
If there's an easier way to do this, somebody please let me know!
[edit: Sorry for the edit spam, I keep noticing mistakes >_<]
Re: Technodream on emulation
Thanks for the info. I haven't tried messing around with the filetypes yet. I wanted to know if the original disc release had the requirement to first set monitor type before loading? Uniboot slows boot time significantly and I would rather not have to use it just for one game.
Re: Technodream on emulation
OK, seems that the original release does not behave the same way as this CD release (confirmed on the JASPP youtube video). The original release just boots straight to the game.
Re: Technodream on emulation
I managed to find a way to bypass the monitor selection dialogue to get it running on standard RISC OS 3.1:
- Rename !Run to !Run_old
- Rename !RunC to !Run
- Edit !Run as per the following:
- Save !Run file
- Place a copy of MemAlloc into the !Techdream dir.
- double click !Techdream to run game
Note that you will still need to set the filetypes as per posts above or the game will still crash after stage 2.
- Rename !Run to !Run_old
- Rename !RunC to !Run
- Edit !Run as per the following:
Code: Select all
WIMPSLOT -min 627K -max 627K
QUIT
Set Tech$Dir <Obey$Dir>
|<Tech$Dir>.!Setup
<Tech$Dir>.MemAlloc
SpriteSize 32K
SLOAD <Tech$Dir>.LOADING
RMLOAD <Tech$Dir>.ExSound
<Tech$Dir>.TITLES.FONT
BASIC <Tech$Dir>.TITLES.BootUp
- Place a copy of MemAlloc into the !Techdream dir.
- double click !Techdream to run game
Note that you will still need to set the filetypes as per posts above or the game will still crash after stage 2.
Re: Technodream on emulation
I'm trying to create a basic program to set all the filetypes, as per Sophira's post. However, I seem to have forgotten how to do paths in BBC BASIC:
Anyone spot what I'm doing wrong?
Anyone spot what I'm doing wrong?
Re: Technodream on emulation
You can't pass basic variables directly to star commands, everything after the * is sent directly to the OS.
You need to build the command into a string and use OSCLI.
http://www.riscos.com/support/users/fir ... chap13.htm this should give you some hints
You need to build the command into a string and use OSCLI.
http://www.riscos.com/support/users/fir ... chap13.htm this should give you some hints
Re: Technodream on emulation
Thanks for the pointer, got it working now. About this bit in sophira's post: "Don't use a task window for this; there's a risk that something else could end up corrupting the memory before you save it" - does that still apply if I have all the *Load and *Save operations in a single BASIC file and run all at once by double clicking the BASIC file in the WIMP env? If there is still a risk, is there anything else I can do to protect each block of memory as I load it?
Re: Technodream on emulation
I would not go by the JASPP videos as gospel, they're demonstrating the game running via virtualization and code translation under ADFFS on a Pi.
The Boot scripts used with ADFFS are heavily rewritten from the game's original !Run. Wimp front-ends that have no options are generally removed and in this case I suspect I removed the monitor selection when the game is run under an OS that supports GraphicsV. There's also a lot of bug fixes and memory management in many cases, not to mention preventing games from messing with the BIOS and Unplugging Modules.
Provided you're using unmodified games, you can use the ADFFS scripts for HD installs as per the details in the link above. In many cases the script details how to HD install the game.
Re: Technodream on emulation
That's interesting, I didn't realise ADFFS had that aspect to it. I'll check it out as it would be nice to use HDD installs, especially for multi disk games.
Re: Technodream on emulation
Here's my BASIC program to fix the data files:
However, it crashes at the following line:
The reported error is: "Syntax error, Bad program". Can anyone spot what the issue might be?
Code: Select all
PROC_Fix(".Techno2.CHARS","20000","18A2")
PROC_Fix(".Techno2.DeathPic","7d000","3B5C")
PROC_Fix(".Techno2.DiscIII","20000","27E8")
PROC_Fix(".Techno2.EndScreen1","20000","940E")
PROC_Fix(".Techno2.EndScreen2","20000","90EA")
PROC_Fix(".Techno2.FadeTable","954C","100")
PROC_Fix(".Techno2.HighScores","A0C24","160")
PROC_Fix(".Techno2.KeyDefs","8fC0","30")
PROC_Fix(".Techno2.LaunchBG","20000","28E2")
PROC_Fix(".Techno2.MainCode","9000","A404")
PROC_Fix(".Techno2.MainGFX","20000","9868")
PROC_Fix(".Techno2.StartCD","9f00","1E0")
PROC_Fix(".Techno2.StartGFX","20000","1A42A")
PROC_Fix(".Techno2.TechnoDeth","20000","1640")
PROC_Fix(".Techno2.Z2","20000","2A78")
PROC_Fix(".Techno2.Zone2","20000","2AAC")
PROC_Fix(".Techno2.Stage1.Aliens1","20000","57D8")
PROC_Fix(".Techno2.Stage1.ALIENS2","20000","5D6A")
PROC_Fix(".Techno2.Stage1.BackG1","20000","18C74")
PROC_Fix(".Techno2.Stage1.BackG2","20000","84CE")
PROC_Fix(".Techno2.Stage1.ZONE1","20000","1FE4")
PROC_Fix(".Techno3.DISCII","15100","27EC")
PROC_Fix(".Techno3.MainCode","9000","A404")
PROC_Fix(".Techno3.Stage2.ALIENS1","20000","6E08")
PROC_Fix(".Techno3.Stage2.Aliens2","20000","583E")
PROC_Fix(".Techno3.Stage2.BackG1","20000","1B8E6")
PROC_Fix(".Techno3.Stage2.Zone2","20000","2A78")
PROC_Fix(".Techno3.Stage3.Aliens1","20000","65FC")
PROC_Fix(".Techno3.Stage3.Aliens2","20000","3D78")
PROC_Fix(".Techno3.Stage3.BackG1","20000","11104")
PROC_Fix(".Techno3.Stage3.BackG2","20000","1F3D4")
PROC_Fix(".Techno3.Stage3.ZONE3","20000","294E")
DEF PROC_Fix(file$,addr$,len$)
path$="ZIDEFS::ZIDEFS4.$.Games2.TechDream.!Techdream"
OSCLI("*Load "+path$+file$+" "+addr$)
PRINT "loaded:"+file$+" "+addr$
OSCLI("*Save "+path$+file$+" "+addr$+" + "+len$+" "+addr$+" "+addr$)
PRINT "saved:"+file$+" "+addr$+" + "+len$+" "+addr$+" "+addr$
ENDPROC
Code: Select all
PROC_Fix(".Techno2.FadeTable","954C","100")
Re: Technodream on emulation
You’re overwriting your BASIC programme when you load FadeTable at 954C.
Load your programme into BASIC and PRINT ~TOP to see where it ends.
Load your programme into BASIC and PRINT ~TOP to see where it ends.
Re: Technodream on emulation
You're loading the file on top of your program.
edit: Steve beat me to it.Re: Technodream on emulation
What's the recommended solution then? Can the BASIC program be loaded into a specific part of the memory, or need to use an offset when loading the files?
Re: Technodream on emulation
Allocate a block of memory?
Add a DIM to the start:
Code: Select all
DIM data% &20000
Code: Select all
OSCLI("*Load "+path$+file$+" "+STR$~data%)
OSCLI("*Save "+path$+file$+" "+STR$~data%+" + "+len$+" "+addr$+" "+addr$)
Re: Technodream on emulation
Over the years I’ve had quite a few issues with HostFS changing filetypes to text, and breaking the software.
Easiest solution I’ve found is to use hard disk images (adfs or scsi seem to work). These seem to be better at maintaining file properties and preserving stuff as it was, admittedly with the restrictions appropriate to the filing system of the era. HostFS seems to be more vulnerable to the vagaries of whatever OS/filing system the emulator is running on.
Easiest solution I’ve found is to use hard disk images (adfs or scsi seem to work). These seem to be better at maintaining file properties and preserving stuff as it was, admittedly with the restrictions appropriate to the filing system of the era. HostFS seems to be more vulnerable to the vagaries of whatever OS/filing system the emulator is running on.
Re: Technodream on emulation
I already tried installing to the emulated hard drive and to RAM disk, but the file types are still not set correctly. I haven't noticed it on any of the other APDL CD ROM games, it's just this one.