Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post Reply
User avatar
jbnbeeb
Posts: 589
Joined: Sat Apr 03, 2010 9:16 pm
Contact:

Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by jbnbeeb » Sat Oct 19, 2019 6:17 pm

Hi all,
I think RobC used Beeb SCSI or similar interface to access an ADFS hd image he'd set up with his implementation of Doom for PiTubeDirect

hoglet (Dave) kindly transformed Rob's ADFS image file in to a format that can be read with SD card interface and his tweaked ADFS ROM.

I ran this at the September 2019 Acorn World weekend in Cambridge.

I've written up a guide to getting this up and running so you can try this at home :)


Step by step guide for running RobC's Doom demo with PiTubeDirect, SD card interface, ADFS 1.57 and BBC Master.
---------------------------------------------------------------------------------------------------------------

Note: With this method, only a Master can be used. Although RobC's Doom demo works on a BBC B, ADFS 1.57 is Master only.
ADFS 1.57 is a customised version from hoglet. It has been modified to be able to read/write ADFS hard disk images from an SD card.

This guide assumes you don't have ADFS 1.57. Via the steps below, we will load it into sideways RAM via the SD card image I've uploaded.
The image contains the MMB file with ADFS 1.57 as well as the ADFS hard disk image with RobC's implementation of Doom.
There are also steps for setting up PiTubeDirect.

** If you have the means to burn an EPROM then you can access the ROM images for ADFS 1.57 at https://github.com/hoglet67/ADFS/releases **
- SD is the image for SD card interface plugged in to user port
- SD2 is the image for SD card interface plugged in to Master internal "modem socket"
- SD3 is image for (I think) SD card interface plugged in to Econet socke

Base requirements:
* A Pi Zero with GPIO pins fitted. It *may* be possible to use another Pi but there are tight timing requirements and they have not been tested.
* A level shifter board / breadboard (link) https://github.com/hoglet67/PiTubeDirec ... er-options
-- I used a level shifter board specifically for the Pi zero supplied by Retroclinic https://www.ebay.co.uk/str/ ... 9992182017
* A 40 pin ribbon cable to connect the level shifter board to the Tube socket
* A micro sd card for the Pi Zero
* An SD card interface for your Master and accompanying ROM.
-- I'm assuming you have MMFS ROM in this guide.--
* At least 4GB SD card for the ADFS Doom image (sorry that's the size of the image I created from my SD card!)



A. Write the MMB/ADFS image to SD card
--------------------------------------

These steps are for writing the SD card image on a Windows machine. We are going to use Win32 Disk Imager for this.
1. Download and install Win32 Disk Imager from https://sourceforge.net/projects/win32diskimager/
2. Download the MMB/ADFS image from https://www.dropbox.com/s/rog44v8xjllwl ... 7.zip?dl=0
3. Unzip the file (unzips to 4GB)
3. Insert a blank SD card
4. Open Win32 Disk Imager ( found in the Image Writer folder in Start Menu). You will likely be prompted to grant admin rights for it to run.
5. Select the file you unzipped in step 3.
6. Wait a while...
7. Remove the SD card and put it in your Master SD card interface


B. Setting up PiTubeDirect
--------------------------

1. Get micro sd card. Ensure it's FAT32 formatted (if it's brand new, it will be by default)
2. Grab the latest release from https://github.com/hoglet67/PiTubeDirect/releases
(download the PiTubeDirect_<releasename> zip file.. e.g EggEater at time of writing)
3. Unzip the file. Copy the contents to the micro sd card.
4. Put the micro sd card in to the pi zero.


C. Testing PiTubeDirect
-----------------------
1. With Master turned off - Plug the Pi tube zero in to the level shifter board.
2. Connect the level shifter board to the Tube interface on Master
3. Switch on Master
4. Type *CONF. TUBE
5. CTRL-BREAK
6. You should see default of 6502 /64k co pro banner across top of screen. If so, PiTubeDirect is working.
If not, check connections and that all the files from zip are on the micro sd card.
7. We need to turn tube off for the proceeding steps.
8. Type *CONF. NOTUBE
9. CTRL-BREAK


D. Loading hoglet's customised ADFS ROM in to sideways RAM
----------------------------------------------------------

Make sure tube is OFF (*CONF. NOTUBE / CTRL-BREAK) before following these steps.
Make sure you have the SD card with the 4GB image on it as described in steps above.

We are going to load ADFS 1.57 in to swram via an ssd disk image which we can access from MMFS.

We need to make a note of the ROM slot that MMFS is stored in..as after we have ADFS, we will need to *UNPLUG it.
Type *ROMS and note down the slot number for MMFS.

Now follow these steps..

1. *ROMS
2. We want to start with only BASIC, MMFS and standard Acorn 1770 DFS (labelled DFS 79) ROMS enabled..
*UNPLUG all other ROMs, including ADFS (*UNPLUG 13)
3. CTRL-BREAK. You should see the Acorn 1770 DFS banner. We need DFS for the *SRLOAD command.
4. *MMFS
5. *DIN 495
6. This disk has several configurations of hoglet's customised ADFS.
- If your SD card interface is plugged in to user port - type *SRLOAD SD 8000 5
- If your SD card interface is plugged in to Master internal "modem socket" - type *SRLOAD SD2 8000 5

7. Before pressing CTRL-BREAK..
- *UNPLUG <slot your MMFS ROM is in>
- *UNPLUG 9 (..1770 DFS)

8. Now press CTRL-BREAK
9. *INSERT 5 (ADFS 1.57 you've just loaded into swram)
10. You may see cursor flashing at top left rather than the usual Acorn banner text.
Press CTRL-BREAK, then BREAK a couple of times until you see:

Acorn MOS
Acorn ADFS
Invalid drive
*

.. You may see "Bad sum" .. keep pressing BREAK to you see "Invalid drive" and "*" prompt

11. *MOUNT 0
12. You may see "Bad sum" again. Press CTRL-BREAK. You should now see Acorn banner text and be at usual BASIC prompt.
13. Type *.
14. You should now see the root of the ADFS hard disk image.


E. Loading DOOMROM
------------------

Having followed prior sections, you should now be at the BASIC prompt and be able to catalogue
the ADFS hard disk image by typing "*."

1. Type *ROMS. ADFS 57, , BASIC should be the only ROMS inserted.
2. *INSERT 9 (1770 DFS). We need this for the *SRLOAD command.
3. Do CTRL-A-BREAK. This should give you Acorn ADFS banner.
4. *DIR PICOPRO
5. *DIR DOOM
6. *SRLOAD DOOMROM 8000 4
7. *INSERT 4
8. *UNPLUG 9
9. CTRL-BREAK

F. Turn on Tube
---------------
1. *CO.TUBE
2. CTRL-BREAK
3. Go in to Native ARM mode by typing *FX 151,230,15
4. CTRL-BREAK
5. You will now see "Native ARM..." as the banner text and have an "arm>*" prompt.


G. Finally! Loading Doom!!!
---------------------------

You will still be in the Doom directory if you've followed the previous steps. Finally we can load the game.

*DOOM (for the 8-colour, mode 2 version)
*DOOM -NULA (for the 16-colour, mode 2 NULA version)
*DOOM -fourcol (for the 4-colour, dithered, mode 1 version)

..be patient! It takes a few minutes to load.
Eventually you'll get to see the menu. The menu responds slugglishly at first but does work via arrow keys and Return.
Select the first option in the menu.
Next screen is "which episode" with 3 levels to choose from.
Next screen is to select difficulty.
W,A,S,D,<,> for direction keys in game. Space = Fire. E opens doors.
Last edited by jbnbeeb on Sun Oct 20, 2019 8:22 am, edited 1 time in total.
..I'll be at the Virtual Acorn meetup for Cambridge Computer Museum May 16th 2020

User avatar
trixster
Posts: 1030
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by trixster » Sat Oct 19, 2019 10:28 pm

Good guide.

It works fine from a datacentre on both a beeb and master too.

User avatar
BigEd
Posts: 3107
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by BigEd » Sun Oct 20, 2019 9:53 am

Thanks for the guide! Is there a video of booting and running Doom on a Beeb?

User avatar
trixster
Posts: 1030
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by trixster » Sun Oct 20, 2019 9:55 am

This is a recent build of doom running on my videonula bbc b with DataCentre:

https://youtu.be/ihlE6rEGvj8

User avatar
jbnbeeb
Posts: 589
Joined: Sat Apr 03, 2010 9:16 pm
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by jbnbeeb » Sun Oct 20, 2019 10:03 am

I'm thinking it would be a good to have a sticky post or a page (like bitshifters using github,io) with
- instructions to get Doom going on
- SD card
- data centre
- (BeebSCSI??)

And links that always point to the latest ADFS hd image files that RobC creates.. I think they're too big for GitHub and so will need hosting or dropbox.
Probably needs a bit of collaboration between me, RobC and hoglet. I'd be happy to help. But in the meantime hopefully the above guide will help more peeps to be able to run this. I think it is amazing. When the museum put it up on their twitter feed, it got over 2500 views.

Jason
..I'll be at the Virtual Acorn meetup for Cambridge Computer Museum May 16th 2020

User avatar
Lardo Boffin
Posts: 2066
Joined: Thu Aug 06, 2015 7:47 am
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by Lardo Boffin » Sun Oct 20, 2019 10:42 am

Excellent guide. I have a Master with a Datacentre and HD. Is there a guide like this for that set up? [-o<
Atom, issue 5
Elk
BBC model B 32k issue 4, 16k sideways RAM, Watford 12 ROM board, Acorn 6502 coproc
BBC model B 32k issue 7, turboMMC, Opus Challenger 3 512k, Pi 3 coproc
USA Model B
BBC Master, Datacentre + HDD, pi co-proc, econet, NULA

User avatar
trixster
Posts: 1030
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by trixster » Sun Oct 20, 2019 2:52 pm

There is much less faff required if you have a DC. The process is either flash the cf card attached to the DC with an image of Rob’s CF card, or use something like ADFS Explorer to copy the Doom folder (and wad) to your existing CF card.

Then *ADFS to access the cf card, navigate to the Doom folder, SRLoad the DoomRom to a swram slot (if you don’t have the doomrom already in a rom slot). Then get the copro running in native 1Ghz mode, *ADFS, get back into the Doom dir and load the game using the options described above in step G

soviet
Posts: 106
Joined: Tue Dec 04, 2018 10:05 pm
Location: Montevideo, Uruguay
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by soviet » Tue Oct 22, 2019 2:05 am

Great guide, lucky you explained it all or i could never get the thing to run.
Is as complex as getting a PhD in physics :lol:

soviet
Posts: 106
Joined: Tue Dec 04, 2018 10:05 pm
Location: Montevideo, Uruguay
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by soviet » Tue Oct 22, 2019 4:08 pm

burned the eprom image of the custom MMFS rom, its much much easier to run doom now.

Also using this shematic:
Image
Is easy to add a switch on the back to choose from MMC or MMFS and if you left the DPDT in the middle you disable both ideal to load games from floppy that need all the sideway slots like prince of persia.
Done it on my master and makes life easyer for me at least :D.


here is a test of the dithered mode, the normal 8 color mode look almost all black
https://youtu.be/tNiSbKFRVis

User avatar
trixster
Posts: 1030
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by trixster » Tue Oct 22, 2019 11:19 pm

That’s because it’s not finished, this is still work in progress

User avatar
marcusjambler
Posts: 787
Joined: Mon May 22, 2017 12:20 pm
Location: Bradford
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by marcusjambler » Fri Apr 24, 2020 8:56 pm

Is there a link to the ADFS SCSI drive image?

User avatar
dudleysoft71
Posts: 66
Joined: Tue May 26, 2020 6:56 pm
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by dudleysoft71 » Tue Jun 16, 2020 12:50 pm

I managed to get it running on my BBC Model B.

It was a rather convoluted method, since I can't run the modified ADFS on my machine.

First I downloaded a tool to extract the ADFS partition from the disk image (DMDE), unfortunately this image was 1GB in size instead of the 512MB I expected, turns out every byte is stored in a word.

To fix this I wrote a small tool which took this file and converted the words to bytes, this game me a 512MB file as expected.

Next I loaded it into Beeb Image and it opened up fine (first time :D ), so I copied the folder off onto my own HDD image (I didn't want to replace it since I've already put a lot of stuff on it).

Next was getting the ROM installed. I couldn't get the rom to install unless I turned off the Co-Processor (*FX 151,230,14) , then I'd have to turn it back on again, reboot (remembering to A-break since ADFS isn't my default FS).

Since I've been writing stuff that uses the co-processor and host together (I've been working on a game port, but it's sort of stalled for now), it was fairly simple to write a host-side loader for DOOM which would load the ROM file into SWRAM and then boot the game.

I realized I needed to reset the machine to install the ROM properly, and also needed to be holding A to to get it to restart with ADFS selected, so my code waits for A to be pressed, then resets the machine, after inserting the command to run the file into KEY 10, so it starts loading doom.
rundoom.png
Originally I was going to read the ROM file from the disk, but changed it to include the ROM binary directly in the loader, I would like to change it back so if the ROM is updated then the loader wont need updating.

I've attached an SSD with the RUNDOOM program on it, it can be run from the SSD image provided, providing that the ADFS directory is setup pointing to DOOM, or you can copy the program into the DOOM directory and can run it from there, if you specify any command line parameters then they'll be added to the command before calling it.
Attachments
rundoom.ssd
(6.75 KiB) Downloaded 7 times

MogKupo
Posts: 11
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by MogKupo » Fri Jul 03, 2020 5:11 pm

Hi

I've got an MOS 3.2 equipped Master 128 with PiTubeDirect and one of the tiny RetroClinic SD adapters

I have MMFS for TurboMMC boards installed and it's working alright for DFS disks

Just attempted to use ADFS 1.57 in order to access a hard disk partition (I've tried both the Doom image referneced above and the 2GB Image with DOS Plus etc.) but it's not working, I'm using the standard SD ROM for User Port interfaces on the Master but try as I might I can only get a Card? error from it.

Am I missing something? Is my board or MOS not supported?

[edit]

Ahh, never mind, noticed the 128K ROM image for 3.20 masters that specifically mentioned Turbo versions being used so ripped the ADFS ROM out of it which worked nicely. Now to buy a ROM board from retroclinic so I can use those particular 3.20 and 3.50 images.

--
Adam

User avatar
tricky
Posts: 4361
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Guide to running RobC's Doom implementation on Master/PiTubeDirect with SD card interface

Post by tricky » Sat Jul 04, 2020 9:31 am

Has anyone built a version with all the game data on the PI, so that only the beeb end bits are on a beeb disc (DFS for me)?

Post Reply

Return to “miscellaneous new bbc and electron games”