From f5a52fcab56a84ee780b18c98f40c0d210f473c4 Mon Sep 17 00:00:00 2001 From: Mark Moxon Date: Tue, 6 Sep 2022 10:25:23 +0100 Subject: [PATCH] Added patched version for Commodore Plus/4 --- README.md | 23 +- build.sh | 18 +- flicker-free-disks/elite_+4_flicker_free.prg | Bin 0 -> 36296 bytes original-disks/ELITEPIG.PRG | Bin 0 -> 48400 bytes original-disks/elite_+4_unpacked.prg | Bin 0 -> 57099 bytes .../plus4/elite_+4_modified.prg | Bin 0 -> 57099 bytes reference-binaries/plus4/extra-plus4.bin | Bin 0 -> 91 bytes reference-binaries/plus4/ll155-plus4.bin | Bin 0 -> 39 bytes reference-binaries/plus4/ll78-plus4.bin | 1 + reference-binaries/plus4/shppt-plus4.bin | 1 + src/elite-flicker-free-plus4.asm | 428 ++++++++++++++++++ src/elite-flicker-free.asm | 1 - src/elite-modify-plus4.py | 321 +++++++++++++ 13 files changed, 789 insertions(+), 4 deletions(-) create mode 100644 flicker-free-disks/elite_+4_flicker_free.prg create mode 100644 original-disks/ELITEPIG.PRG create mode 100644 original-disks/elite_+4_unpacked.prg create mode 100644 reference-binaries/plus4/elite_+4_modified.prg create mode 100644 reference-binaries/plus4/extra-plus4.bin create mode 100644 reference-binaries/plus4/ll155-plus4.bin create mode 100644 reference-binaries/plus4/ll78-plus4.bin create mode 100644 reference-binaries/plus4/shppt-plus4.bin create mode 100644 src/elite-flicker-free-plus4.asm create mode 100644 src/elite-modify-plus4.py diff --git a/README.md b/README.md index 00172f3..5c11691 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ https://user-images.githubusercontent.com/2428251/187879166-74e973e3-aa49-40e3-b * [A better algorithm](#a-better-algorithm) * [The patching process](#the-patching-process) + * [Patching the Commodore Plus/4 version][#patching-the-commodore-plus-4-version] * [Building the patch](#building-the-patch) @@ -40,12 +41,14 @@ BBC Master Elite was written by Ian Bell and David Braben and is copyright © Ac The code in the flicker-free patch was reconstructed from a disassembly of the BBC Master version released on [Ian Bell's personal website](http://www.elitehomepage.org/). -The game disks in this repository are very similar to those released on [Ian Bell's personal website](http://www.elitehomepage.org/), but to ensure accuracy to the released versions, I've used disk images from the [Commodore 64 Preservation Project](https://archive.org/details/C64_Preservation_Project_10th_Anniversary_Collection) (it turns out that the disk images on Ian Bell's site differ slightly from the official versions). +The Commodore 64 game disks in this repository are very similar to those released on [Ian Bell's personal website](http://www.elitehomepage.org/), but to ensure accuracy to the released versions, I've used disk images from the [Commodore 64 Preservation Project](https://archive.org/details/C64_Preservation_Project_10th_Anniversary_Collection) (it turns out that the disk images on Ian Bell's site differ slightly from the official versions). The Commodore Plus/4 version is based on the disk image from Ian Bell's site. The commentary is copyright © Mark Moxon. Any misunderstandings or mistakes in the documentation are entirely my fault. Huge thanks are due to the original authors for not only creating such an important piece of my childhood, but also for releasing the source code for us to play with. Also, a big thumbs up to Kroc Camen for his epic [Elite Harmless](https://github.com/Kroc/elite-harmless) project, which is a really useful reference for anyone exploring the C64 binaries. Finally, thanks to the gurus in this [Lemon64 forum thread](https://www.lemon64.com/forum/viewtopic.php?t=67762&start=90) for their sage advice. +For the Commodore Plus/4 version, I am indebted to @Kekule1025 on Twitter, who extracted the original game from Pigmy's binaries, and wrapped it back up once I had finished adding the patch. Thank you Kekule. + You can find more information about my own Elite project in the [fully documented source code for Elite on the BBC Micro](https://www.bbcelite.com). ### A note on licences, copyright etc. @@ -70,7 +73,11 @@ To play the flicker-free version of Commodore 64 Elite, you need to download a d [See here](http://unusedino.de/ec64/technical/misc/vic656x/pal-ntsc.html) for a brief technical summary on the differences between PAL and NTSC on the Commodore 64. -These images have been tested in the [VICE emulator](https://vice-emu.sourceforge.io) and in a number of online emulators, such as [C64 online](https://c64online.com/c64-online-emulator/) and [Virtual Consoles](https://virtualconsoles.com/online-emulators/c64/). They should also work on real machines. If you don't know which one to use, try the PAL version first, as that seems to be the default setting for most emulators. Both disk images are based on the GMA86 release of Elite from 1986. +There is also a version for the Commodore Plus/4, which is based on Pigmy's unofficial version: + +* [Download flicker-free Commodore Plus/4 Elite as a .prg file](https://github.com/markmoxon/c64-elite-flicker-free/raw/master/flicker-free-disks/elite_+4_flicker_free.prg) + +All these images have been tested in the [VICE emulator](https://vice-emu.sourceforge.io) and in a number of online emulators, such as [C64 online](https://c64online.com/c64-online-emulator/) and [Virtual Consoles](https://virtualconsoles.com/online-emulators/c64/). They should also work on real machines. If you don't know which one to use, try the PAL version first, as that seems to be the default setting for most emulators. Both disk images are based on the GMA86 release of Elite from 1986. Saved commander files should work in exactly the same way as in the original GMA86 version; the only changes in the patch are graphical, and they don't affect gameplay in any way. @@ -119,6 +126,18 @@ To find out more about the above steps, take a look at the following files, whic The commentary in these files is best read alongside the code changes, which are described in detail in the article on [backporting the flicker-free algorithm](https://www.bbcelite.com/deep_dives/backporting_the_flicker-free_algorithm.html). +### Patching the Commodore Plus/4 version + +The Commodore Plus/4 version of Elite is an unofficial release of the game that was converted from the Commodore 64 version by Pigmy. You can find lots of information about the game on [Commodore Plus/4 World](http://plus4world.powweb.com/software/Elite_Plus4). + +The patching process follows a similar set of steps to the Commodore 64 version, but it operates on a game binary that's already been extracted from Pigmy's original version (thank you to @Kekule1025 for doing this, and for packing the final game up after I'd done my patching). The game runs at a different address to the Commodore 64 version, so the [`elite-flicker-free-plus4.asm`](src/elite-flicker-free-plus4.asm) and `elite-modify-plus4.py`](src/elite-modify-plus4.py) files modify the code in different places to the Commodore 64 version. Most (though not all) routines run at addresses that are $0900 higher in memory than their Commodore 64 counterparts, so that's why you can see `+ $0900` throughout these files. + +Also, because the Pigmy version comes with a demo loading screen that takes up a fair amount of extra memory, we can't just tack the flicker-free routines onto the end of the game binary, as we do in the Commodore 64 version. Instead we can put them in the spite area, and specifically over the top of the two Trumble sprites, which are not used in the Plus/4 version (the Plus/4 does contain Trumbles, but because the machine does not support hardware sprites, they do not appear on-screen, and the sprite definitions are unused). + +The build process for the Plus/4 creates a file called `elite_+4_modified.prg` in the `work` folder that contains the modified game (you can load this into an emulator, and run it with a `SYS 20736`' command, as the game code starts at $5100). The downloadable version is wrapped in Pigmy's original demo and packing code, which is a process that is out of the scope of this site (I don't know how @Kekule1025 did it!). + +Apart from these differences, the patching process is the same as for the Commodore 64 version. + ## Building the patch ### Requirements diff --git a/build.sh b/build.sh index 46f99b3..2bae963 100755 --- a/build.sh +++ b/build.sh @@ -39,7 +39,7 @@ $c1541 \ cd .. $python src/crc32.py reference-binaries/ntsc work -# And now, we build the PAL version +# Next, we build the PAL version cd work # Extract the files from the original disk image @@ -69,3 +69,19 @@ $c1541 \ # Report checksums cd .. $python src/crc32.py reference-binaries/pal work + +# And finally we modify the Plus/4 version +cd work + +# Copy the decrypted PRG to the work folder +cp ../original-disks/elite_+4_unpacked.prg . + +# Assemble the additional code required for flicker-free ships +$beebasm -i ../src/elite-flicker-free-plus4.asm -v > compile.txt + +# Modify the main game code +$python ../src/elite-modify-plus4.py + +# Report checksums +cd .. +$python src/crc32.py reference-binaries/plus4 work diff --git a/flicker-free-disks/elite_+4_flicker_free.prg b/flicker-free-disks/elite_+4_flicker_free.prg new file mode 100644 index 0000000000000000000000000000000000000000..907068e7a6e79e181fa17eea16a902708ddf9bce GIT binary patch literal 36296 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 ASpWb4 literal 0 HcmV?d00001 diff --git a/original-disks/ELITEPIG.PRG b/original-disks/ELITEPIG.PRG new file mode 100644 index 0000000000000000000000000000000000000000..779bec28dfc4bfd70a99ff48e8f611ab189441d2 GIT binary patch literal 48400 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 z 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

+bpTwq;-o|Qd^5**y2lK$7aM+37rdLZLG-` zmgSQ-5(vZ5;TX-y_K3{@{`JacaXhn?0L>?%kb?<_Pl!2<#P5}ovC4%IB;jN|T)2o4 zw5S|hEEfF=Paw z+33!OxE0 zFW>UWuTS33^MC!DMB%fV0~rHf;J=6VbyB1iNOSEB>I46!Px7PNH A=l}o! literal 0 HcmV?d00001 diff --git a/original-disks/elite_+4_unpacked.prg b/original-disks/elite_+4_unpacked.prg new file mode 100644 index 0000000000000000000000000000000000000000..2b6d202d7046625610867248872d907c5b5bb04f GIT binary patch literal 57099 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 PO{IH}%SI2L825hw)-A)V literal 0 HcmV?d00001 diff --git a/reference-binaries/plus4/elite_+4_modified.prg b/reference-binaries/plus4/elite_+4_modified.prg new file mode 100644 index 0000000000000000000000000000000000000000..393fa92364de3204dc1d175395b6ace39c499789 GIT binary patch literal 57099 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 literal 0 HcmV?d00001 diff --git a/reference-binaries/plus4/extra-plus4.bin b/reference-binaries/plus4/extra-plus4.bin new file mode 100644 index 0000000000000000000000000000000000000000..f0a1322d4521876ab728b50ed4af9ae6309506e3 GIT binary patch literal 91 zcmZ4T`^X=TMa)~XrxuGAob( literal 0 HcmV?d00001 diff --git a/reference-binaries/plus4/ll155-plus4.bin b/reference-binaries/plus4/ll155-plus4.bin new file mode 100644 index 0000000000000000000000000000000000000000..8147560fc4d1d79e78ba79d423049e18778c7e41 GIT binary patch literal 39 pcmZ4T`^cXSQX92evrhnt91xKUBJvdGZaLvowQA|_1q>6l5&*Wh6u1BY literal 0 HcmV?d00001 diff --git a/reference-binaries/plus4/ll78-plus4.bin b/reference-binaries/plus4/ll78-plus4.bin new file mode 100644 index 0000000..66d05cc --- /dev/null +++ b/reference-binaries/plus4/ll78-plus4.bin @@ -0,0 +1 @@ +0[i[\柤ĮL \ No newline at end of file diff --git a/reference-binaries/plus4/shppt-plus4.bin b/reference-binaries/plus4/shppt-plus4.bin new file mode 100644 index 0000000..01ba15a --- /dev/null +++ b/reference-binaries/plus4/shppt-plus4.bin @@ -0,0 +1 @@ + 6CɎ \Ci \((Lx%((Lxln5kimL@r \ No newline at end of file diff --git a/src/elite-flicker-free-plus4.asm b/src/elite-flicker-free-plus4.asm new file mode 100644 index 0000000..1a31ad8 --- /dev/null +++ b/src/elite-flicker-free-plus4.asm @@ -0,0 +1,428 @@ +\ ****************************************************************************** +\ +\ BBC MASTER ELITE GAME SOURCE (FLICKER-FREE ROUTINES) +\ +\ BBC Master Elite was written by Ian Bell and David Braben and is copyright +\ Acornsoft 1986 +\ +\ The code on this site has been reconstructed from a disassembly of the version +\ released on Ian Bell's personal website at http://www.elitehomepage.org/ +\ +\ The commentary is copyright Mark Moxon, and any misunderstandings or mistakes +\ in the documentation are entirely my fault +\ +\ The terminology and notations used in this commentary are explained at +\ https://www.bbcelite.com/about_site/terminology_used_in_this_commentary.html +\ +\ The deep dive articles referred to in this commentary can be found at +\ https://www.bbcelite.com/deep_dives +\ +\ ****************************************************************************** + +GUARD &CE00 \ Guard against assembling over memory used by game + +\ ****************************************************************************** +\ +\ Configuration variables +\ +\ The addresses in the following are from when the game binary is loaded into +\ memory. They were calculated by analysing a memory dump of the running game, +\ searching for patterns in the bytes to match them with the corrsponding code +\ from the BBC Micro version (which is very similar, if you ignore any different +\ addresses). +\ +\ XX14 is an unused variable in BBC Micro Elite, and the corresponding address +\ in Commodore 64 Elite is used by something else. Luckily locations $FB to $FE +\ are unused by Elite and the OS, so we can sneak XX14 in there instead. +\ +\ Also, the Y variable contains the height of the space view in pixels, divided +\ by 2. This is 96 on the BBC Micro, but the space view is 144 pixels on the +\ Commodore 64, so Y needs to be set to 72 instead. +\ +\ ****************************************************************************** + +XX1 = $0009 +INWK = $0009 +XX19 = $002A +CNT = $0030 +K3 = $0035 +K4 = $0043 +XX0 = $0057 +V = $005B +XX15 = $006B +X1 = $006B +Y1 = $006C +X2 = $006D +Y2 = $006E +XX12 = $0071 +XX17 = $009F +XX4 = $00AD +XX20 = $00AE +XX14 = $00FB +PROJ = $860F \ Note, this is not equal to $7D1F + $0900 +LL75 = $9FB8 + $0900 +LL30 = $B49D \ Note, this is not equal to $AB91 + $0900 +Y = 72 + +\ ****************************************************************************** +\ +\ Name: SHPPT +\ Type: Subroutine +\ Category: Drawing ships +\ Summary: Draw a distant ship as a point rather than a full wireframe +\ +\ ****************************************************************************** + +ORG $9932 + $0900 + +.SHPPT + + JSR PROJ \ Project the ship onto the screen, returning: + \ + \ * K3(1 0) = the screen x-coordinate + \ * K4(1 0) = the screen y-coordinate + \ * A = K4+1 + + ORA K3+1 \ If either of the high bytes of the screen coordinates + BNE nono \ are non-zero, jump to nono as the ship is off-screen + + LDA K4 \ Set A = the y-coordinate of the dot + + CMP #Y*2-2 \ If the y-coordinate is bigger than the y-coordinate of + BCS nono \ the bottom of the screen, jump to nono as the ship's + \ dot is off the bottom of the space view + + JSR Shpt \ Call Shpt to draw a horizontal 4-pixel dash for the + \ first row of the dot (i.e. a four-pixel dash) + + LDA K4 \ Set A = y-coordinate of dot + 1 (so this is the second + CLC \ row of the two-pixel-high dot) + ADC #1 + + JSR Shpt \ Call Shpt to draw a horizontal 4-pixel dash for the + \ first row of the dot (i.e. a four-pixel dash) + + LDA #%00001000 \ Set bit 3 of the ship's byte #31 to record that we + ORA XX1+31 \ have now drawn something on-screen for this ship + STA XX1+31 + + JMP LL155 \ Jump to LL155 to draw any remaining lines that are + \ still in the ship line heap and return from the + \ subroutine using a tail call + +.nono + + LDA #%11110111 \ Clear bit 3 of the ship's byte #31 to record that + AND XX1+31 \ nothing is being drawn on-screen for this ship + STA XX1+31 + + JMP LL155 \ Jump to LL155 to draw any remaining lines that are + \ still in the ship line heap and return from the + \ subroutine using a tail call + +.Shpt + + \ This routine draws a horizontal 4-pixel dash, for + \ either the top or the bottom of the ship's dot + + STA Y1 \ Store A in both y-coordinates, as this is a horizontal + STA Y2 \ dash at y-coordinate A + + LDA K3 \ Set A = screen x-coordinate of the ship dot + + STA X1 \ Store the x-coordinate of the ship dot in X1, as this + \ is where the dash starts + + CLC \ Set A = screen x-coordinate of the ship dot + 3 + ADC #3 + + BCC P%+4 \ If the addition overflowed, set A = 255, the + LDA #255 \ x-coordinate of the right edge of the screen + + STA X2 \ Store the x-coordinate of the ship dot in X1, as this + \ is where the dash starts + + JMP LLX30 \ Draw this edge using flicker-free animation, by first + \ drawing the ship's new line and then erasing the + \ corresponding old line from the screen, and return + \ from the subroutine using a tail call + +SAVE "shppt-plus4.bin", SHPPT, P% + +\ ****************************************************************************** +\ +\ Name: LL9 (Part 11 of 12) +\ Type: Subroutine +\ Category: Drawing ships +\ Summary: Draw ship: Loop back for the next edge +\ Deep dive: Drawing ships +\ +\ ****************************************************************************** + +ORG $A15B + $0900 + +.LL78 + + LDA XX14 \ If XX14 >= CNT, skip to LL81 so we don't loop back for + CMP CNT \ the next edge (CNT was set to the maximum heap size + BCS LL81 \ for this ship in part 10, so this checks whether we + \ have just run out of space in the ship line heap, and + \ stops drawing edges if we have) + + LDA V \ Increment V by 4 so V(1 0) points to the data for the + CLC \ next edge + ADC #4 + STA V + + BCC ll81 \ If the above addition didn't overflow, jump to ll81 + + INC V+1 \ Otherwise increment the high byte of V(1 0), as we + \ just moved the V(1 0) pointer past a page boundary + +.ll81 + + INC XX17 \ Increment the edge counter to point to the next edge + + LDY XX17 \ If Y >= XX20, which contains the number of edges in + CPY XX20 \ the blueprint, skip the following + BCS P%+5 + + JMP LL75-2 \ Loop back to LL75-2 to process the next edge (we jump + \ to LL75-2 as we have modified the code around LL75, + \ which moves the jump point back by two bytes) + +.LL81 + + NOP + +SAVE "ll78-plus4.bin", LL78, P% + +\ ****************************************************************************** +\ +\ Name: LL9 (Part 12 of 12) +\ Type: Subroutine +\ Category: Drawing ships +\ Summary: Draw ship: Draw all the visible edges from the ship line heap +\ Deep dive: Drawing ships +\ +\ ****************************************************************************** + +ORG $A178 + $0900 + +.LL155 + + LDY XX14 \ Set Y to the offset in the line heap XX14 + +.LL27 + + CPY XX14+1 \ If Y >= XX14+1, jump to LLEX to return from the ship + BCS LLEX \ drawing routine, because the index in Y is greater + \ than the size of the existing ship line heap, which + \ means we have alrady erased all the old ships lines + \ when drawing the new ship + + \ If we get here then Y < XX14+1, which means Y is + \ pointing to an on-screen line from the old ship that + \ we need to erase + + LDA (XX19),Y \ Fetch the X1 line coordinate from the heap and store + STA XX15 \ it in XX15 + + INY \ Increment the heap pointer + + LDA (XX19),Y \ Fetch the Y1 line coordinate from the heap and store + STA XX15+1 \ it in XX15+1 + + INY \ Increment the heap pointer + + LDA (XX19),Y \ Fetch the X2 line coordinate from the heap and store + STA XX15+2 \ it in XX15+2 + + INY \ Increment the heap pointer + + LDA (XX19),Y \ Fetch the Y2 line coordinate from the heap and store + STA XX15+3 \ it in XX15+3 + + JSR LL30 \ Draw a line from (X1, Y1) to (X2, Y2) to erase it from + \ the screen + + INY \ Increment the heap pointer + + JMP LL27 \ Loop back to LL27 to draw (i.e. erase) the next line + \ from the heap + +.LLEX + + LDA XX14 \ Store XX14 in the first byte of the ship line heap + LDY #0 + STA (XX19),Y + +.LL82 + + RTS \ Return from the subroutine + +SAVE "ll155-plus4.bin", LL155, P% + +ORG $7240 + +\ ****************************************************************************** +\ +\ Name: LLX30 +\ Type: Subroutine +\ Category: Drawing lines +\ Summary: Draw a ship line using flicker-free animation +\ +\ ****************************************************************************** + +.LLX30 + + LDY XX14 \ Set Y = XX14, to get the offset within the ship line + \ heap where we want to insert our new line + + CPY XX14+1 \ Compare XX14 and XX14+1 and store the flags on the + PHP \ stack so we can retrieve them later + + LDX #3 \ We now want to copy the line coordinates (X1, Y1) and + \ (X2, Y2) to XX12...XX12+3, so set a counter to copy + \ 4 bytes + +.LLXL + + LDA X1,X \ Copy the X-th byte of X1/Y1/X2/Y2 to the X-th byte of + STA XX12,X \ XX12 + + DEX \ Decrement the loop counter + + BPL LLXL \ Loop back until we have copied all four bytes + + JSR LL30 \ Draw a line from (X1, Y1) to (X2, Y2) + + LDA (XX19),Y \ Set X1 to the Y-th coordinate on the ship line heap, + STA X1 \ i.e. one we are replacing in the heap + + LDA XX12 \ Replace it with the X1 coordinate in XX12 + STA (XX19),Y + + INY \ Increment the index to point to the Y1 coordinate + + LDA (XX19),Y \ Set Y1 to the Y-th coordinate on the ship line heap, + STA Y1 \ i.e. one we are replacing in the heap + + LDA XX12+1 \ Replace it with the Y1 coordinate in XX12+1 + STA (XX19),Y + + INY \ Increment the index to point to the X2 coordinate + + LDA (XX19),Y \ Set X1 to the Y-th coordinate on the ship line heap, + STA X2 + + LDA XX12+2 \ Replace it with the X2 coordinate in XX12+2 + STA (XX19),Y + + INY \ Increment the index to point to the Y2 coordinate + + LDA (XX19),Y \ Set Y2 to the Y-th coordinate on the ship line heap, + STA Y2 + + LDA XX12+3 \ Replace it with the Y2 coordinate in XX12+3 + STA (XX19),Y + + INY \ Increment the index to point to the next coordinate + STY XX14 \ and store the updated index in XX14 + + PLP \ Restore the result of the comparison above, so if the + BCS LL82a \ original value of XX14 >= XX14+1, then we have already + \ redrawn all the lines from the old ship's line heap, + \ so return from the subroutine (as LL82 contains an + \ RTS) + + JMP LL30 \ Otherwise there are still more lines to erase from the + \ old ship on-screen, so the coordinates in (X1, Y1) and + \ (X2, Y2) that we just pulled from the ship line heap + \ point to a line that is still on-screen, so call LL30 + \ to draw this line and erase it from the screen, + \ returning from the subroutine using a tail call + +.LL82a + + RTS \ Return from the subroutine + +\ ****************************************************************************** +\ +\ Name: LL9 (Part 1 of 12) +\ Type: Subroutine +\ Category: Drawing ships +\ Summary: Draw ship: Check if ship is exploding, check if ship is in front +\ Deep dive: Drawing ships +\ +\ ****************************************************************************** + +.PATCH1 + + \ We replace the following two instructions in part 1 of + \ LL9 with JSR PATCH1, so we start with those two + \ instructions to ensure that they still get done + + LDA #31 \ Set XX4 = 31 to store the ship's distance for later + STA XX4 \ comparison with the visibility distance. We will + \ update this value below with the actual ship's + \ distance if it turns out to be visible on-screen + + \ We now set things up for flicker-free ship plotting, + \ by setting the following: + \ + \ XX14 = offset to the first coordinate in the ship's + \ line heap + \ + \ XX14+1 = the number of bytes in the heap for the + \ ship that's currently on-screen (or 0 if + \ there is no ship currently on-screen) + + LDY #1 \ Set XX14 = 1, the offset of the first set of line + STY XX14 \ coordinates in the ship line heap + + DEY \ Decrement Y to 0 + + LDA #%00001000 \ If bit 3 of the ship's byte #31 is set, then the ship + BIT INWK+31 \ is currently being drawn on-screen, so skip the + BNE P%+5 \ following two instructions + + LDA #0 \ The ship is not being drawn on screen, so set A = 0 + \ so that XX14+1 gets set to 0 below (as there are no + \ existing coordinates on the ship line heap for this + \ ship) + + EQUB $2C \ Skip the next instruction by turning it into + \ $2C $B1 $BD, or BIT $BDB1 which does nothing apart + \ from affect the flags + + LDA (XX19),Y \ Set XX14+1 to the first byte of the ship's line heap, + STA XX14+1 \ which contains the number of bytes in the heap + + RTS + +\ ****************************************************************************** +\ +\ Name: LL9 (Part 10 of 12) +\ Type: Subroutine +\ Category: Drawing ships +\ Summary: Draw ship: Check if ship is exploding, check if ship is in front +\ Deep dive: Drawing ships +\ +\ ****************************************************************************** + +.PATCH2 + + \ We replace the JMP LL78 instruction at the end of part + \ 10 of LL9 with JSR PATCH2, so this effectively inserts + \ the call to LLX30 at the end of part 10, as required + + JSR LLX30 \ Draw the laser line using flicker-free animation, by + \ first drawing the new laser line and then erasing the + \ corresponding old line from the screen + + JMP LL78 \ Jump down to part 11 + + +SAVE "extra-plus4.bin", LLX30, P% + diff --git a/src/elite-flicker-free.asm b/src/elite-flicker-free.asm index b9c2510..c9fa1c1 100644 --- a/src/elite-flicker-free.asm +++ b/src/elite-flicker-free.asm @@ -61,7 +61,6 @@ XX20 = $00AE XX14 = $00FB PROJ = $7D1F LL75 = $9FB8 -LL80 = $A13F LL30 = $AB91 Y = 72 diff --git a/src/elite-modify-plus4.py b/src/elite-modify-plus4.py new file mode 100644 index 0000000..b242a05 --- /dev/null +++ b/src/elite-modify-plus4.py @@ -0,0 +1,321 @@ +#!/usr/bin/env python +# +# ****************************************************************************** +# +# COMMODORE PLUS/4 ELITE FLICKER-FREE MODIFICATION SCRIPT +# +# Written by Mark Moxon +# +# This script applies flicker-free ship-drawing to Commodore Plus/4} Elite, as +# described here: +# +# https://www.bbcelite.com/deep_dives/flicker-free_ship_drawing.html +# +# It does the following: +# +# * Modify the PRG file to draw flicker-free ships +# +# Run this script by changing directory to the folder containing the disk files +# and running the script with "python elite-modify.py" +# +# This modification script works with the following disk image, which is the +# Pigmy Plus/4 version from Ian Bell's site, with the demo and packing removed: +# +# * elite_+4_unpacked.prg +# +# ****************************************************************************** + +from __future__ import print_function +import os + + +# Convert a C64 address into the corresponding offset within the gma6 file + +def get_offset(addr): + return addr - load_address + + +# Insert a binary file into the game code, overwriting what's there + +def insert_binary_file(data_block, addr, filename): + file = open(filename, "rb") + file_size = os.path.getsize(filename) + insert_from = get_offset(addr) + insert_to = insert_from + file_size + data_block[insert_from:insert_to] = file.read() + file.close() + print("[ Modify ] insert file {} at 0x{:02X}".format(filename, addr)) + + +# Insert an array of bytes into the game code, overwriting what's there + +def insert_bytes(data_block, addr, insert): + insert_from = get_offset(addr) + insert_to = insert_from + len(insert) + data_block[insert_from:insert_to] = insert + print("[ Modify ] insert {} bytes at 0x{:02X}".format(len(insert), addr)) + + +# Insert a block of NOPs into the game code, overwriting what's there + +def insert_nops(data_block, addr, count): + insert = [0xEA] * count + insert_bytes(data_block, addr, insert) + print("[ Modify ] insert {} NOPs at 0x{:02X}".format(count, addr)) + + +# Print a progess message + +print() +print("Modifying Commodore Plus/4 Elite") + +# Configuration variables + +load_address = 0x1100 - 2 + +# Set up an array to hold the game binary, so we can modify it + +data_block = bytearray() + +# Load the main code file into data_block + +elite_file = open("elite_+4_unpacked.prg", "rb") +data_block.extend(elite_file.read()) +elite_file.close() + +print() +print("[ Read ] elite_+4_unpacked.prg") + +# Set the addresses for the extra routines (LLX30, PATCH1, PATCH2) that we will +# load into unused portiong of the main game code + +llx30 = 0x7240 +patch1 = 0x727E +patch2 = 0x7295 + +# We now modify the code to implement flicker-free ship drawing. The code +# changes are described here, which can be read alongside the following: +# +# https://www.bbcelite.com/deep_dives/backporting_the_flicker-free_algorithm.html +# +# The addresses in the following are from when the game binary is loaded into +# memory. They were calculated by analysing a memory dump of the running game, +# searching for patterns in the bytes to match them with the corrsponding code +# from the BBC Micro version (which is very similar, if you ignore any different +# addresses). + +# SHPPT +# +# We start with the new version of SHPPT, which we have already assembled in +# BeebAsm and saved as the binary file shppt.bin, so we simply drop this over +# the top of the existing routine (which is slightly longer, so there is room). + +insert_binary_file(data_block, 0x9932 + 0x900, "shppt-plus4.bin") + +# LL9 (Part 1) +# +# This is the modification just after LL9. We insert the extra code with a call +# to the new PATCH1 routine, which implements the original instructions before +# moving on to the new code. +# +# From: LDA #31 +# STA XX4 +# +# To: JSR PATCH1 +# NOP + +insert_bytes(data_block, 0x9A8A + 0x900, [ + 0x20, patch1 % 256, patch1 // 256 # JSR PATCH1 +]) +insert_nops(data_block, 0x9A8D + 0x900, 1) + +# LL9 (Part 9) +# +# This is the modification at EE31. +# +# From: LDA #%00001000 +# BIT XX1+31 +# BEQ LL74 +# JSR LL155 +# +# To: LDY #9 +# LDA (XX0),Y +# STA XX20 +# NOP +# NOP +# NOP + +insert_bytes(data_block, 0x9F2A + 0x900, [ + 0xA0, 0x09, # LDY #9 + 0xB1, 0x57, # LDA (XX0),Y + 0x85, 0xAE # STA XX20 +]) +insert_nops(data_block, 0x9F30 + 0x900, 3) + +# LL9 (Part 9) +# +# This is the modification just after LL74. +# +# From: LDY #9 +# LDA (XX0),Y +# STA XX20 +# LDY #0 +# STY U +# STY XX17 +# INC U +# +# To: LDY #0 +# STY XX17 +# NOP x10 + +insert_bytes(data_block, 0x9F39 + 0x900, [ + 0xA0, 0x00, # LDY #0 + 0x84, 0x9F # STY XX17 +]) +insert_nops(data_block, 0x9F3D + 0x900, 10) + +# LL9 (Part 9) +# +# This is the modification at the end of the routine. +# +# From: LDA XX15 +# STA (XX19),Y +# INY +# LDA XX15+1 +# STA (XX19),Y +# INY : +# LDA XX15+2 +# STA (XX19),Y +# INY +# LDA XX15+3 +# STA (XX19),Y +# INY +# STY U +# +# To: JSR LLX30 +# NOP x21 + +insert_bytes(data_block, 0x9F87 + 0x900, [ + 0x20, llx30 % 256, llx30 // 256 # JSR LLX30 +]) +insert_nops(data_block, 0x9F8A + 0x900, 21) + +# LL9 (Part 10) +# +# This is the modification around LL75. +# +# From: STA T1 +# LDY XX17 +# +# To: STA CNT +# LDY #0 + +insert_bytes(data_block, 0x9FB4 + 0x900, [ + 0x85, 0x30, # STA CNT + 0xA0, 0x00 # LDY #0 +]) + +# LL9 (Part 10) +# +# This is the second INY after LL75. +# +# From: INY +# +# To: NOP + +insert_nops(data_block, 0x9FC1 + 0x900, 1) + +# LL9 (Part 10) +# +# This are the two modifications at LL79. +# +# From: LDA (V),Y +# TAX +# INY +# LDA (V),Y +# STA Q +# ... four lots of unchanged LDA/STA, 5 bytes each ... +# LDX Q +# +# To: INY +# LDA (V),Y +# TAX +# ... shuffle the LDA/STA block down by 4 bytes ... +# INY +# LDA (V),Y +# TAX +# NOP +# NOP + +insert_bytes(data_block, 0x9FD9 + 0x900, [ + 0xC8, # INY + 0xB1, 0x5B, # LDA (V),Y + 0xAA # TAX +]) + +lda_sta_block = get_offset(0x9FDD + 0x900) +for n in range(lda_sta_block, lda_sta_block + 4 * 5): + data_block[n] = data_block[n + 4] + +insert_bytes(data_block, 0x9FF1 + 0x900, [ + 0xC8, # INY + 0xB1, 0x5B, # LDA (V),Y + 0xAA # TAX +]) +insert_nops(data_block, 0x9FF5 + 0x900, 2) + +# LL9 (Part 10) +# +# This is the modification at the end of the routine. The C64 version has an +# extra JMP LL80 instruction at this point that we can modify to jump to a +# new routine PATCH2, which lets us insert the extra JSR LLX30 without taking +# up any more bytes. +# +# From: JMP LL80 +# +# To: JMP PATCH2 + +insert_bytes(data_block, 0xA010 + 0x900, [ + 0x4C, patch2 % 256, patch2 // 256 # JMP PATCH2 +]) + +# LL9 (Part 11) +# +# This is the modification at LL80. +# +# We blank out the .LL80 section with 28 NOPs + +insert_nops(data_block, 0xA13F + 0x900, 28) + +# LL9 (Part 11) +# +# We have already assembled the modified part 11 in BeebAsm and saved it as +# the binary file ll78.bin, so now we drop this over the top of the existing +# routine (which is exactly the same size). + +insert_binary_file(data_block, 0xA15B + 0x900, "ll78-plus4.bin") + +# LL9 (Part 12) +# +# We have already assembled the modified part 11 in BeebAsm and saved it as +# the binary file ll115.bin, so now we drop this over the top of the existing +# routine (which is slightly longer, so there is room). + +insert_binary_file(data_block, 0xA178 + 0x900, "ll155-plus4.bin") + +# We now load the three extra routines required by the modifications into the +# memory used by the Trumble sprites, which are not used in the Plus/4 version: +# +# LLX30 +# PATCH1 +# PATCH2 + +insert_binary_file(data_block, 0x7240, "extra-plus4.bin") + +# All the modifications are done, so write the output file for the modified PRG + +output_file = open("elite_+4_modified.prg", "wb") +output_file.write(data_block) +output_file.close() + +print("[ Save ] elite_+4_modified.prg")