BBC MMFS

From richud.com
Jump to navigation Jump to search

Interlace removal

This will stop the BBC output being interlaced (flickering) in all modes except MODE 7 which makes everything more pleasant....basically it does the same as typing in *TV0,1 (which Higgy menu unsets by default).

Note a few games set it on launch anyway e.g. Blitzkreig and most of Trickys made games - and some override to disable it - for some reason.

(Please see bottom section for pre-made downloadable images)

Higgy

Patch to BEEB.MMB to disable interlace

This is specifically to patch BEEB.MMB inside [higgy_mmbeeb-v1.2.zip]

#patch menu disk0 !BOOT to disable interlace, *TV255 becomes *TV255,1
printf "\x2c\x31\x0d\x2a\x4d\x45\x4e\x55\x0d" | dd of=BEEB.MMB bs=1 seek=$((0x2206))  conv=notrunc
#patch add 2 to the length of !BOOT file, 0D becomes 0F
printf "\x0f" | dd of=BEEB.MMB bs=1 seek=$((0x2134))  conv=notrunc

You could do it manually in a hexeditor also..... If you want to check its correctly patched, MD5sum of original BEEB.MMB d39258e5ba25c76a06436105b2edbe65 , patched should be 23bb74089ea6e89f6c68fd7d430b7941.

Tricky

I failed to 'uninterlace' patch his original BEEB.MMB so next best thing is to rebuild it with patched .asm. This approach has the added bonus that is lets you customise the first menu page (Favorites).

At the time of writing (Oct. 2022).....

Tricky's latest BEEB.MMB https://www.dropbox.com/s/yhd8xbunbiqfaa6/BEEB.zip?dl=0

Forum with the links here https://stardot.org.uk/forums/viewtopic.php?t=16070&start=90

Link to download the building code and ssd's to rebuild https://www.dropbox.com/s/we2h5zue0uoil5m/TrickyMenuWithDiscs.zip?dl=0 Download

Updated BuildTrickyMenu.ex to replace one https://www.dropbox.com/s/ae5tf295cb8cm2y/BuildTrickyMenu.zip?dl=0


Patch to disable interlace on Tricky's menu builder

Add "lda #144 : ldx #0 : ldy #1 : jsr OSBYTE ;; interlace off" into TrickyMenu.asm to change osbyte value to disable interlace as default - between a commented out line and .ack_escape

So you should end up with somethign like this

;;	lda #MOVE_CRSR : jsr OSWRCH : lda #0 : jsr OSWRCH : lda #10 : jsr OSWRCH : lda #COL_YELLOW : jsr OSWRCH : lda #NEW_BKGND : jsr OSWRCH : lda #COL_BLUE : jsr OSWRCH
	lda #144 : ldx #0 : ldy #1 : jsr OSBYTE ;; interlace off

.ack_escape

Then just rebuild with run.bat, the produced BEEB.MMB will then have interlace disabled.

Hints

If you would rather an ordered menu list like Higgy without a confusing not-your-favourites menu first - edit favourites.csv and change all Id's from 0 to 3000 (anything unused). Then rename TrickyMenu\GAMEIMG\DISCS\0 to TrickyMenu\GAMEIMG\DISCS\3000 (matching the Id you used) and they will get put in alphabetically along with everything else with run.bat

Creating microSD card image

Some people seem to struggle making working microSD cards when using large capacity cards (32Gb for example). This will generate a working card (image) - links top pre-made ones at bottom.

Run this in same location as BEEB.MMB is, it will output a raw writable image /tmp/bbc.img to raw write to microSD.

	#create 512Mb FAT16 image
	dd if=/dev/zero of="/tmp/bbc.img" bs=512M count=1
	dd if=/dev/zero of="/tmp/tmp.img" bs=511M count=1
	echo -e "o\nn\np\n1\n\n\nt\n6\nw" | fdisk "/tmp/bbc.img" 2> /dev/null
	mkfs.vfat -F 16 "/tmp/tmp.img" -n BBC
	mcopy -i "/tmp/tmp.img" "BEEB.MMB" ::
	dd if="/tmp/tmp.img" of="/tmp/bbc.img" seek=2048


512Mb is plenty for the ~104Mb BEEB.MMB image, you can change it if you wish but the larger you make it the longer it will take to write back to SD card.

Use multiple mcopy lines if you want to include other in the image.

/tmp/bbc.img can be then raw written to microSD via dd or Rawrite32 or Win32 Disk Imager (windows)

Pre-made Downloadable files

BEEB.MMB file only

Higgy interlace off : higgy_mmbeeb-v1.2_interlace_off.zip

https://mega.nz/file/YA5h2J6Q#YmO_Jrkhb4iJaw866Swt3yD-duNMWTcoMhKj6UPqcuA


Tricky rebuilt (3/14/2020 sources), interlace off, favourites flattened : tricky_3_14_2020_rebuild_interlace_off.zip

https://mega.nz/file/AQplwawb#h9fufOT3fXPAjHTPYbjY-FYoy2FvbXniGY0_apEJELo

raw images to raw write direct to microSD card

Higgy interlace off : higgy_mmbeeb-v1.2_interlace_off_raw.zip

https://mega.nz/file/dJQxyRZR#KLbURVWKsk-6oTF8yYGaulDLiiJgM0nyy_PAzcpqDjs


Tricky rebuilt (3/14/2020 sources), interlace off, favourites flattened : tricky_3_14_2020_rebuild_interlace_off_raw.zip

https://mega.nz/file/YYpgTB4R#htIUbM3bYFhKUpW2fk1HzBrZpX43mh481F1DZ54EYY4

Raw write image to microSD card

Raw write microSD images with dd (linux/MAC) or Win32 Disk Imager or rawwrite32(Windows)

Linux (MAC)

'Caution' - replace /dev/sdd with correct drive!! (i.e. not a partition, the image has the partition)

	#write raw image to microSD, assuming microSD on /dev/sdd and raw image from above in /tmp/bbc.img
	sudo dd if=/tmp/bbc.img of=/dev/sdd bs=64k status=progress
r@builder:/tmp$ sudo dd if=/tmp/bbc.img of=/dev/sdd bs=64k status=progress
[sudo] password for r: 
8192+0 records in
8192+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 118.87 s, 4.5 MB/s

Windows

Raw write bbc.img.PNG