mirror of
https://git.k-space.ee/arti/vt1200.git
synced 2026-10-31 12:05:05 +02:00
65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
# MAME local edits
|
|
|
|
`mame-local-edits.patch` is the complete set of changes this project makes to
|
|
upstream MAME. It is **50 lines across four files**, and it is the whole reason a
|
|
MAME tree is needed at all:
|
|
|
|
| file | change |
|
|
|---|---|
|
|
| `src/devices/cpu/tms34010/tms34010.cpp` | `REG_REFCNT` advances per cycle — required for the level-1 VIDEO MEMORY test |
|
|
| `src/devices/machine/mc68681.cpp` / `.h` | the overrun error is latched on the **start bit** of the overrunning character, per the SCN2681 datasheet |
|
|
| `src/mame/mame.lst` | adds the `vt1200` driver entry |
|
|
|
|
Each change carries an **inline revert note at the site**, and the rationale for
|
|
each is in `harness/mame/DUART_REPORT.md`. One further proposed edit (TxRDY
|
|
assertion timing) was **refuted** by the fitted part's datasheet and is not here.
|
|
|
|
## Applying it
|
|
|
|
```sh
|
|
git clone --depth 1 --branch mame0289 \
|
|
https://github.com/mamedev/mame.git /home/arti/code/k-space/mame0289
|
|
git -C /home/arti/code/k-space/mame0289 am \
|
|
/home/arti/code/k-space/vt1200/patches/mame-local-edits.patch
|
|
harness/mame/build.sh # symlinks the driver in and builds
|
|
```
|
|
|
|
`git am` preserves the commit message and author. If it does not apply cleanly
|
|
because upstream moved, `git apply -3` will fall back to a three-way merge.
|
|
|
|
**Note the clone is at a _tag_, not a branch.** `--branch mame0289` where
|
|
`mame0289` is a tag leaves a **detached HEAD**, so commit before you check
|
|
anything else out — otherwise edits are discarded.
|
|
|
|
## Why a patch as well as a repo
|
|
|
|
The MAME tree **is** now pushed as a full repository — `origin` is
|
|
`git@git.k-space.ee:arti/mame0289.git`, and our commit sits on branch
|
|
**`vt1200-local`** there. Getting there needed `git fetch --unshallow` first
|
|
(99,645 commits, `.git` 1.9 GB, ~3 minutes) because the server rejects shallow
|
|
updates:
|
|
|
|
```
|
|
! [remote rejected] vt1200-local -> vt1200-local (shallow update not allowed)
|
|
```
|
|
|
|
`receive.shallowUpdate` is off on that server, and the clone was `--depth 1`
|
|
pinned at a tag, so no push from it was accepted until it was unshallowed.
|
|
`git config receive.shallowUpdate true` on the server would avoid the unshallow
|
|
for anyone repeating this.
|
|
|
|
This patch is kept anyway, for three reasons:
|
|
|
|
* it is the **complete change in 50 lines** — reviewable in a diff, where a
|
|
1.9 GB repository is not;
|
|
* it **reproduces the tree without a full clone**, which matters on a fresh
|
|
machine or a slow link;
|
|
* it is the **record of what this project changes about upstream MAME**, and
|
|
every claim about those changes lives beside the driver rather than in a
|
|
repository's history.
|
|
|
|
Note the branch name is `vt1200-local`, not `master`. If the forge's default
|
|
branch is still `master` and therefore empty, set `vt1200-local` as the default
|
|
so the repository opens on something.
|
|
|