mirror of
https://github.com/dwsJason/gslaplay.git
synced 2025-02-27 00:31:01 +00:00
adding quick-n-dirty CI
This commit is contained in:
parent
04063424b7
commit
34553ac36e
46
.github/workflows/main.yml
vendored
Normal file
46
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
cicd_pipeline:
|
||||
runs-on: ubuntu-latest
|
||||
name: Run assembly and disk image CICD pipeline
|
||||
steps:
|
||||
# CHECKOUT AND ASSEMBLE ON EVERY PUSH, ANY BRANCH
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Merlin
|
||||
uses: digarok/install-merlin32-action@v0.1.3
|
||||
- name: Assemble Source
|
||||
run: |
|
||||
merlin32 -V macros\ asm\link.s
|
||||
|
||||
- name: Install Cadius
|
||||
uses: digarok/install-cadius-action@v0.1.3
|
||||
|
||||
- name: Make Bootable ProDOS Image
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
run: |
|
||||
cadius createvolume gslaplay.po gslaplay 800KB >/dev/null
|
||||
cadius addfile gslaplay.po /gslaplay/ asm/play.sys16 >/dev/null
|
||||
|
||||
# EVERYTHING BELOW IS ONLY WHEN VERSION TAGS PUSHED (i.e. tag like "v0.1")
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: Release ${{ github.ref }}
|
||||
|
||||
- name: Upload Release Asset - 800KB ProDOS Image
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
uses: actions/upload-release-asset@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./gslaplay.po
|
||||
asset_name: gslaplay.po
|
||||
asset_content_type: application/octet-stream
|
||||
|
@ -10,7 +10,7 @@ New Apple IIgs Animation file format ... GS LZ Byte Compressed Animation
|
||||
- Inspired by Deluxe Animation Run/Skip/Dump, and FLI/FLC with similar properties.
|
||||
- I replace the "Run" with a dictionary/frame buffer copy from the existing buffer to the existing buffer. This is able to runlength not just a single byte, but a repeating pattern of arbitrary length.
|
||||
- Care is taken in the encoder to make sure the 65816 does not have to cross bank boundaries during any copy. This is so we can use the MVN instruction and also reduce the number of bank checks in the code.
|
||||
-- (We have an opcode to indicate "source data bank has changed".)
|
||||
- (We have an opcode to indicate "source data bank has changed".)
|
||||
- Goals include a good balance between file size, and playback performance (since one often makes a trade off with the other).
|
||||
|
||||
-----
|
||||
@ -41,14 +41,13 @@ File Offset | Data | Comment
|
||||
0xC | {Height} `0x00C8` | (16-bit word) Height in bytes, typically 200 == 0x00C8
|
||||
0xE | {FrameLength} `0x8000` | (16-bit word) Frame size in bytes, since a "Frame" may contain more than just the width * height, worth of pixels. For now this is `$8000`, or 32768
|
||||
0x10 | {FrameCount} | (32-bit long) Frame Count (total, including ring frame)
|
||||
| | _HEADER END HERE_ |
|
||||
0x14 | _First data chunk...._ | ....
|
||||
... | _Next data chunk...._ | .... until end of file
|
||||
|
||||
|
||||
After the header comes AIFF style chunks of data starting at file offset `0x14`, basically a 4-byte chunk name, followed by a 4-byte length (inclusive of the chunk header). The idea is that you can skip chunks you don't understand.
|
||||
|
||||
File Offset:
|
||||
0x14 First Chunk (followed by more Chunks, until end of file)
|
||||
|
||||
### Data Chunk Definitions
|
||||
##### INIT
|
||||
|
Loading…
x
Reference in New Issue
Block a user