bass is Near's cross-assembler, which he used for making SNES homebrew and ROM hacks, among other things. While official development is now done in git, that repository only goes back to v14, so exploring the development history before that point requires a separate solution.
This repository contains the surviving release archives and changelogs,
scripts to analyse and clean up those sources, and a script to export them
in the format accepted by the git fast-import
command, to turn them into a
consistently-formatted Git repository.
If you can't use this kit yourself, or if you'd rather not, an example history repository is available at https://github.com/bass-assembler/bass-history/
Note that the pre-built repository may have been built by an older version of the kit, and so may not be as accurate as it could be.
To build a bass-history
repository, you will need:
- a POSIX operating system
- The
7z
archive tool - Python 3.x (tested with 3.8, older versions may work)
- The content of this repository
These extra ingredients may improve your experience:
- redo will let you incrementally rebuild the analysis of the sources, if you want to tinker with the import process yourself, instead of always redoing all the analysis from scratch every time.
How to build your own bass-history
repository:
-
Check out this repository somewhere:
$ git clone https://github.com/bass-assembler/bass-history-kit.git $ cd bass-history-kit
-
Run the preparation script, to analyse and collate the sources:
$ ./do prepare
(if you have redo installed, you may
redo prepare
, or evenredo -j10 prepare
if you have a lot of CPUs and want to save some time) -
Make a new Git repository to receive the bass history:
$ cd .. $ git init bass-history $ cd bass-history
-
Export the bass historical data into git:
$ ../bass-history-kit/history-fast-export | git fast-import
-
Because
git fast-import
stores data uncompressed for speed, and because it only updates the Git object store, not the working directory, do some house-keeping:$ git gc --aggressive $ git reset --hard HEAD
-
Enjoy your new bass history Git repository!
It is possible to graft together the bass-history repository
with the ARM9 current-development repository
to produce a unified history of bass development,
using the git replace
tool.
Follow the regular building steps above to create a bass-history
repository.
Then:
-
Check out the ARM9 bass repo (if you don't already have a copy):
$ cd .. $ git clone https://github.com/ARM9/bass.git $ cd bass
-
Fetch the
v14
tag from the bass-history repo, which automatically fetches all the history leading up to that point:$ git fetch ../bass-history v14
-
Tell git to add the fetched commit as the parent of the oldest commit in ARM9's repository:
$ git replace --graft 6da8424 FETCH_HEAD
Now commands like git log
should show you the complete bass development
history from the oldest surviving changes up until the present day!
See the READMEs in each subdirectory of sources for provenance information.