Disassemblies of BBC Micro Games

bbc micro/electron/atom/risc os coding queries and routines
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Disassemblies of BBC Micro Games

Post by TobyLobster »

Diminished suggested there should be a list of published Beeb game disassemblies. Here's a list of all the ones I know about (including my own). Some can be reassembled too. Any more?

Reassemblies:
* Attack on Alpha Centauri https://github.com/fizgog/Attack-On-Alp ... isassembly
* Aviator https://aviator.bbcelite.com (and https://github.com/markmoxon/aviator-beebasm)
* Bird Strike https://github.com/iainfm/BirdStrike (See also original sources / reworking: https://github.com/qurm/BirdStrike)
* Castle Raider https://github.com/dboddie/Castle-Raider
* Chroma http://level7.org.uk/chroma/chroma.asm
* Chuckie Egg https://github.com/mungre/chuckie (See also viewtopic.php?f=1&t=16021)
* Citadel viewtopic.php?t=15819
* Citadel viewtopic.php?p=344318 (original source code)
* Crazee Rider (BBC) https://github.com/KevEdwards/CrazeeRiderBBC
* Crazee Rider (Electron) https://github.com/KevEdwards/CrazeeRiderElectron
* Crypt Capers viewtopic.php?p=344318
* Defender - see Planetoid
* DROD https://github.com/hexwab/beebdrod
* Eagle Empire viewtopic.php?p=65477#p65477
* Elite * Elite, see also: * Exile https://github.com/tom-seddon/exile_disassembly
* Galactic Hitchhiker https://github.com/ahope1/Galactic-Hitchhiker (See also viewtopic.php?f=65&t=24536)
* Galaforce (BBC) https://github.com/KevEdwards/Galaforce1BBC (See also viewtopic.php?f=1&t=11368, https://github.com/crumbgit/Galaforce)
* Galaforce (Electron) https://github.com/KevEdwards/Galaforce1Electron
* Galafore II https://github.com/KevEdwards/Galaforce2BBC
* Gridrunner https://github.com/fizgog/Gridrunner
* Hard Hat Harry http://www.retrosoftware.co.uk/wiki/ind ... _Hat_Harry
* Hard Hat Harry 2 http://www.retrosoftware.co.uk/wiki/ind ... at_Harry_2
* Helicopter Score Attack https://hackaday.io/project/19168-bbc-m ... ore-attack
* HyperViper http://www.retrosoftware.co.uk/wiki/ind ... HyperViper
* Island of Xaan https://github.com/tautology0/textadven ... obico/xaan (a work in progress, see also notes about it https://tautology.org.uk/blog/2017/11/)
* Jeltron https://web.archive.org/web/20200612141 ... le=Jeltron (Unfinished game)
* Jet Boat https://github.com/ajgbarnes/bbc-micro-jet-boat
* Jet Set Miner http://www.retrosoftware.co.uk/wiki/ind ... ownloads_2
* Jet Set Willy https://github.com/TobyLobster/jsw
* Jet Set Willy 2021 https://github.com/TobyLobster/jsw2021
* Jungle Journey https://github.com/dboddie/Jungle-Journey
* Lady Bug https://github.com/LoveBug2084/LadyBug
* Lode Runner https://github.com/0xC0DE6502/lode-runner-disassembled
* Lords of Time viewtopic.php?f=40&t=24268
* Manic Miner https://github.com/TobyLobster/ManicMiner
* Manic Miner 2021 https://github.com/TobyLobster/ManicMiner2021
* Meteors https://gitlab.riscosopen.org/RiscOS/So ... r/Srce6502
* Mountain Panic https://github.com/dave-f/panic
* Night World https://github.com/ZornsLemma/night-world (BASIC with sprite routines in 6502, See also viewtopic.php?f=1&t=24857)
* Onslaught https://github.com/mattgodbolt/onslaught (Unfinished game)
* Plan B https://github.com/TobyLobster/planb (partly annotated)
* Planet Nubium https://github.com/andrewwaite1?tab=repositories
* Planet Nubium 2 https://github.com/andrewwaite1?tab=repositories
* Planetoid https://github.com/mikroman/planet/tree/Relocatable and https://github.com/r41n60w/planetoid-disasm
* Polymer Picker https://github.com/sassquad/polymer-picker-6502
* Prince of Persia https://github.com/kieranhj/pop-beeb
* Repton https://github.com/ajgbarnes/bbc-micro-repton
* Repton 2 https://github.com/gfoot/repton2disassembly
* Repton 3 viewtopic.php?p=331329#p331329
* Revs * Space Invaders (Acornsoft) viewtopic.php?p=148582#p148582
* Sparse Invaders http://www.retrosoftware.co.uk/wiki/ind ... #Downloads
* Starquake https://github.com/reubenscratton/starquake (See also viewtopic.php?f=54&t=21250 and http://www.level7.org.uk/miscellany/sta ... sembly.txt)
* Starship Command 2022 https://github.com/TobyLobster/StarshipCommand2022 (see also viewtopic.php?f=54&t=24509)
* Stunt Car Racer https://github.com/kieranhj/scr-beeb
* Thrust https://github.com/kieranhj/thrust-disassembly (See also viewtopic.php?f=1&t=10429)
* Vertigo https://github.com/dr-grim/vertigo (See also viewtopic.php?f=1&t=24271)
* Zany Kong https://github.com/fizgog/Zany-Kong-Disassembly

Disassemblies:
* Atic Atac http://level7.org.uk/miscellany/
* Beverly Hills Cop https://tcrf.net/Beverly_Hills_Cop_(BBC_Micro) (not a disassembly, but a list of the source code still present within the binary)
* Boffin http://www.level7.org.uk/miscellany/
* Castle Quest viewtopic.php?p=339391#p339391
* Citadel http://www.level7.org.uk/miscellany/ (see also Reassemblies section above)
* Contraption http://www.level7.org.uk/miscellany/
* Exile http://www.level7.org.uk/miscellany/ (see also Reassemblies section above)
* FireTrack http://www.level7.org.uk/miscellany/
* Galaforce viewtopic.php?f=1&t=11338&p=141090&hili ... df#p141090 (see also Reassemblies section above)
* Grabit http://www.8bs.com/submit/subgamedis.htm
* Jet Set Willy http://www.level7.org.uk/miscellany/ (see also Reassemblies section above)
* Killer Gorilla http://www.level7.org.uk/miscellany/
* Knight Lore http://www.level7.org.uk/miscellany/
* Monsters http://www.level7.org.uk/miscellany/
* Nightshade http://www.level7.org.uk/miscellany/
* Orlond's Meanies viewtopic.php?f=41&t=16109 (not a full disassembly - just a part)
* Palace of Magic http://www.level7.org.uk/miscellany/
* Podd viewtopic.php?f=1&t=17001
* Ravenskull http://www.level7.org.uk/miscellany/
* Rocket Raid http://8bittinker.blogspot.com/2014/11/ ... -raid.html (no full disassembly, but information in a blog series)
* Sabre Wulf http://www.level7.org.uk/miscellany/
* The Sentinel http://www.level7.org.uk/miscellany/
* Siege http://www.8bs.com/submit/subgamedis.htm
* Spellbinder http://www.level7.org.uk/miscellany/
* Starquake http://www.level7.org.uk/miscellany/ (see also Reassemblies section above)
* Starship Command http://www.level7.org.uk/miscellany/ (see also Reassemblies section above)
* Stranded https://github.com/tautology0/textadven ... r/Stranded
* Swoop http://www.8bs.com/submit/subgamedisswoop.htm
* Twin Kingdom Valley https://github.com/mcnalu/twinkingdomvalley-dasm
* Wizadore http://www.level7.org.uk/miscellany/
* XOR http://www.level7.org.uk/chroma/xor-disassembly.txt

Unpublished Works In Progress:
* Inertia - gfoot viewtopic.php?p=354417#p354417
* Mr. Ee - 0xC0DE viewtopic.php?p=330512#p330512
* Wizzy's Mansion - gfoot viewtopic.php?p=354417#p354417
* Colossal Adventure (Level 9) - cardboardguru viewtopic.php?f=40&t=24776

Disassemblers:
* 6502Bench (SourceGen) https://github.com/fadden/6502bench/ (Windows only)
* bbc-disgo https://github.com/dave-f/bbc-disgo (Go based)
* BBC Disasm https://github.com/chriskillpack/bbcdisasm (Go based)
* BeebDis https://github.com/prime6809/BeebDis (Pascal based)
* DIS6502 viewtopic.php?f=2&t=20488 (Windows only)
* Ghidra https://ghidra-sre.org/ (Java based)
* Masswerk 6502 Disassembler https://www.masswerk.at/6502/disassembler.html (Web based)
* py8dis viewtopic.php?f=55&t=23335 (Python based)
* WFDis https://www.white-flame.com/wfdis/ (Web based)
* Other 6502 disassemblers: http://6502.org/tools/asm/

Similar Tools
* cc652beebasm viewtopic.php?f=12&t=24397 (convert from cc65 asm to beebasm)
* converttoacme https://github.com/jefflomax/converttoacme (convert from 2500AD Cross Assembler, Commodore Macro Assembler, or Programmers Development System (PDS))
Last edited by TobyLobster on Wed Jun 15, 2022 10:44 pm, edited 108 times in total.
User avatar
Diminished
Posts: 835
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by Diminished »

Great job on the compilation (and the disassemblies!)

In addition to the above, perhaps people could also mention disassemblies they're currently working on but haven't finished, to try to avoid two people independently working on the same title at the same time?

It would be great to get some more of these in the future.
Last edited by Diminished on Sun Aug 08, 2021 9:19 pm, edited 1 time in total.
iainfm
Posts: 490
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Disassemblies of BBC Micro Games

Post by iainfm »

Bird Strike (my re-assemble-able disassembly): https://github.com/iainfm/BirdStrike

Author's original sources and reworking project: https://github.com/qurm/BirdStrike
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

Thanks Iainfm, how did I miss adding that? I'll update the list as more are mentioned.
User avatar
kieranhj
Posts: 1014
Joined: Sat Sep 19, 2015 11:11 pm
Location: Farnham, Surrey, UK
Contact:

Re: Disassemblies of BBC Micro Games

Post by kieranhj »

What a great idea! Thanks for putting the list together and keeping it updated. Not original published games but don't forget:

Prince of Perisa: https://github.com/kieranhj/pop-beeb
Stunt Car Racer: https://github.com/kieranhj/scr-beeb
Bitshifters Collective | Retro Code & Demos for BBC Micro & Acorn computers | https://bitshifters.github.io/
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

kieranhj wrote:
Sun Aug 08, 2021 10:08 pm
What a great idea! Thanks for putting the list together and keeping it updated. Not original published games but don't forget:
Thanks - added.
User avatar
MarkMoxon
Posts: 281
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by MarkMoxon »

Lots of Elite disassemblies and reassemblies here (the first one started out as a fork of Kieran’s excellent repository, which you already have on the list):

BBC Micro cassette Elite
https://github.com/markmoxon/cassette-elite-beebasm

BBC Micro disc Elite
https://github.com/markmoxon/disc-elite-beebasm

6502 Second Processor Elite
https://github.com/markmoxon/6502sp-elite-beebasm

BBC Master Elite
https://github.com/markmoxon/master-elite-beebasm

Acorn Electron Elite
https://github.com/markmoxon/electron-elite-beebasm

Elite-A
https://github.com/markmoxon/elite-a-beebasm

Plus there’s a web version of all the code, with plenty of explanations and deep dives into the disassemblies:
https://www.bbcelite.com/

It’s a great idea to maintain a list! I love a good disassembly. :D

Mark
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

MarkMoxon wrote:
Sun Aug 08, 2021 11:02 pm
Lots of Elite disassemblies and reassemblies
Thanks - added.
User avatar
0xC0DE
Posts: 1171
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: Disassemblies of BBC Micro Games

Post by 0xC0DE »

Thanks for the list. In case you are adding a WIP section: I'm working on a Mr. Ee reassembly.
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Disassemblies of BBC Micro Games

Post by TobyLobster »

0xC0DE wrote:
Mon Aug 09, 2021 6:34 am
Thanks for the list. In case you are adding a WIP section: I'm working on a Mr. Ee reassembly.
Thanks - added.
User avatar
fizgog
Posts: 210
Joined: Thu Jun 17, 2021 3:18 pm
Location: Nottinghamshire
Contact:

Re: Disassemblies of BBC Micro Games

Post by fizgog »

I'm curious, as I've always fancied having a go at this myself.

What software does everyone use to dissemble a game?
Gridrunner, Matrix: Gridrunner 2, AcornViewer, AcornPad
User avatar
jms2
Posts: 3314
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: Disassemblies of BBC Micro Games

Post by jms2 »

Beebdis - it creates files which can then be fed into BeebAsm to allow you to rebuild the game (allowing you to customise it or otherwise modify it as you see fit).
User avatar
0xC0DE
Posts: 1171
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: Disassemblies of BBC Micro Games

Post by 0xC0DE »

0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
User avatar
Diminished
Posts: 835
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by Diminished »

In the past I've used WFDIS, which runs in a browser, although it has some limitations (slow, limited commenting ability, RAM hog, difficulty exporting results, C64-centric).
User avatar
jms2
Posts: 3314
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: Disassemblies of BBC Micro Games

Post by jms2 »

0xC0DE wrote:
Mon Aug 16, 2021 1:32 pm
SourceGen https://github.com/fadden/6502bench/
Wow, that looks good! I assume that the apparent absence of a BBC micro "mode" isn't a problem? Or does it have one now?

Definitely looks worth further investigation anyway.
User avatar
0xC0DE
Posts: 1171
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: Disassemblies of BBC Micro Games

Post by 0xC0DE »

I am throwing a little Python at the output generated by SourceGen to make BeebAsm compatible source :mrgreen:
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
User avatar
fizgog
Posts: 210
Joined: Thu Jun 17, 2021 3:18 pm
Location: Nottinghamshire
Contact:

Re: Disassemblies of BBC Micro Games

Post by fizgog »

Thanks
0xC0DE wrote:
Mon Aug 16, 2021 1:32 pm
SourceGen https://github.com/fadden/6502bench/
Just had a quick play on this and it looks good, pity there is no BBC mode for it though.
Diminished wrote:
Mon Aug 16, 2021 2:31 pm
In the past I've used WFDIS, which runs in a browser, although it has some limitations (slow, limited commenting ability, RAM hog, difficulty exporting results, C64-centric).
I like this, especially the ability to run a section of code, for things such as relocation, although it does start to get a bit complicated and messy.

I still need to try out BeebDis
Gridrunner, Matrix: Gridrunner 2, AcornViewer, AcornPad
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

It's a shame SourceGen / 6502Bench is Windows only, otherwise it looks good.
WFDIS works, but has a weird interface, and uses PETSCII not ASCII.

I've added links to these tools at the end of the initial post, for reference.
User avatar
Diminished
Posts: 835
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by Diminished »

I've wanted several times to start work on a cross-platform, Beeb-centric GUI-based disassembly tool which has the features of WFDIS but lacks its shortcomings. You could have some nice stuff like being able to graphically display a sprite memory region for a given screen mode, or something similar for memory containing Teletext.

You could probably also have it automatically recognise common sequences to do trivial operations like system calls and so on.

I've never really got further than thinking about what toolkit to base it on (JavaFX or Swing? GTK? HTML+Javascript?), and unfortunately I have enough half-finished projects on the go already.
User avatar
oss003
Posts: 3673
Joined: Tue Jul 14, 2009 12:57 pm
Location: Netherlands
Contact:

Re: Disassemblies of BBC Micro Games

Post by oss003 »

Robc upgraded DIS6502 to disassemble 6502 code and export Beebasm source code . You can also view parts of the disassembly as Beeb graphics.

viewtopic.php?f=2&t=20488

Greetings
Kees
iainfm
Posts: 490
Joined: Thu Jan 02, 2020 8:31 pm
Location: Dumbarton
Contact:

Re: Disassemblies of BBC Micro Games

Post by iainfm »

fizgog wrote:
Mon Aug 16, 2021 1:11 pm
I'm curious, as I've always fancied having a go at this myself.

What software does everyone use to dissemble a game?
I started with WFdis to do the initial poking around, then used what I'd gleaned from that to create a beebdis control file.

As the beebdis documentation points out, disassembling is an iterative process, so there was a bit of going back and forth while I was trying to figure out the more peculiar aspects of the game (self modifying code and areas that were a 'hangover' from the source files and things). 🙂
User avatar
fizgog
Posts: 210
Joined: Thu Jun 17, 2021 3:18 pm
Location: Nottinghamshire
Contact:

Re: Disassemblies of BBC Micro Games

Post by fizgog »

I've been using WFdis to locate the code and data with Shift A and then running the relocation code with Shift R, then switching to BeebDis for the initial disassembly.

I've made a start on Zany Kong by Solar Soft

https://github.com/fizgog/Zany-Kong-Disassembly
Gridrunner, Matrix: Gridrunner 2, AcornViewer, AcornPad
User avatar
tricky
Posts: 6393
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by tricky »

I've never tried it, but there is also https://6502bench.com/ spotted by Tom Seddon.
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

fizgog wrote:
Sat Aug 21, 2021 10:31 am
I've made a start on Zany Kong by Solar Soft
Thanks - added.
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

Another web based disassembler is Masswerk 6502 Disassembler which looks easy enough to use and has a BBC Micro mode. It doesn't seem to follow the flow of execution to disassemble though, just disassembles between two addresses.
gfoot
Posts: 413
Joined: Tue Apr 14, 2020 9:05 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by gfoot »

I've been disassembling Repton 2 over the past few days.

Are there any copyright issues with publishing this sort of thing? It's such old software, I'd hope not!
User avatar
MarkMoxon
Posts: 281
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by MarkMoxon »

Here's another one for the list:

https://github.com/markmoxon/aviator-beebasm

It's a commented reassembly of Aviator, which is long overdue a proper code analysis. The commentary is a work in progress and is far from finished, but I've added detailed comments to about half the codebase and identified quite a few of the core elements, so I figured it was worth letting it out of the bag. I've also knocked out some deep dives, though they're extremely basic at this point:

https://aviator.bbcelite.com/deep_dives/

My plan is to keep adding commentary over the coming weeks, and then to release a web version with plenty of deep dives, cross-references and so on (much like my Elite project). There's a really long way to go yet, but progress is steady and I'm adding something to it most days, so hopefully it'll be worth the wait.

Apologies in advance for the many howlers that lurk within. Consider this an early access project... :-)

Mark
User avatar
TobyLobster
Posts: 326
Joined: Sat Aug 31, 2019 7:58 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by TobyLobster »

MarkMoxon wrote:
Tue Oct 26, 2021 2:10 pm
Here's another one for the list:
Added, thanks. Oooh, this looks very nice :-)
User avatar
Diminished
Posts: 835
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Disassemblies of BBC Micro Games

Post by Diminished »

I spent about an hour looking at Castle Quest instead of making dinner. I didn't get very far, but I'll attach the WFDIS file.

If I manage to do any more work on it, I'll just edit this post with updates.
Attachments
cquest-real-1.wfdis.zip
(91.82 KiB) Downloaded 41 times
garfield
Posts: 470
Joined: Mon Jan 03, 2005 1:38 am
Contact:

Re: Disassemblies of BBC Micro Games

Post by garfield »

https://github.com/historicalsource

Lots of arcade (and BBC Micro) assembly source code repos here.
Post Reply

Return to “programming”