Skip to content

Commit 8981e54

Browse files
committed
Initial public release
1 parent f978a17 commit 8981e54

14 files changed

Lines changed: 2726 additions & 0 deletions

.gitignore

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Unwanted sub-folders
2+
*/
3+
!sgb/
4+
5+
# Project temp files
6+
sgb/sgb_msu1.bin
7+
8+
# ROM files
9+
*.gb
10+
*.gbc
11+
*.sfc
12+
13+
# Emulator generated files
14+
*.bp
15+
*.bs
16+
*.bst
17+
*.bsz
18+
*.cht
19+
*.sav
20+
*.srm
21+
*.sym
22+
*-trace.log
23+
*-usage.bin
24+
25+
# Patch files
26+
*.ips
27+
*.bps
28+
29+
# MSU-1 related files
30+
*.pcm
31+
*.msu
32+
*.msu1
33+
34+
# Audio files
35+
*.aac
36+
*.flac
37+
*.m4a
38+
*.mp3
39+
*.ogg
40+
41+
# Backup files
42+
*.bak
43+
44+
# Archive files
45+
*.7z
46+
*.bzip2
47+
*.gz
48+
*.tar
49+
*.zip
50+
51+
# Windows executables
52+
*.bat
53+
*.exe
54+
55+
# VS Code project files
56+
.vscode/
57+
*.code-workspace
58+
59+
# Image Files
60+
*.bmp
61+
*.jpg
62+
*.png
63+
64+
# Misc
65+
*.txt

Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
INPUT:= ladx
2+
TARGET:= $(INPUT)-msu1.gbc
3+
NMIADDRESS:= 0x1800
4+
CFLAGS:= -d input=$(INPUT).gbc -d MSU1BASE=$(NMIADDRESS)
5+
ifdef REV
6+
CFLAGS+= -d ROM_VERSION_$(REV)
7+
endif
8+
9+
all: patch
10+
11+
sgb/sgb_msu1.bin: sgb/sgb_msu1.sfc
12+
sgb/bin2cmd.py $< $@ ${NMIADDRESS}
13+
14+
%.gbc: ladx-msu1.asm sgb/sgb_msu1.bin sgb/*.asm
15+
bass ${CFLAGS} -o $@ $<
16+
17+
%.sfc: %.asm
18+
bass -d BASEADDRESS=${NMIADDRESS} -o $@ $<
19+
20+
checksum: ${TARGET}
21+
@printf "\0\0" \
22+
| dd of=${TARGET} bs=1 seek=334 count=2 conv=notrunc 2>/dev/null
23+
24+
@printf "obase=16;(%s)%% 65536\n" "$$(od -An -t u1 -w1 -v ${TARGET})" \
25+
| paste -sd+ | bc | xxd -p -r \
26+
| dd of=${TARGET} bs=1 seek=334 count=2 conv=notrunc 2>/dev/null
27+
28+
29+
patch: checksum
30+
flips-linux --create -b ${INPUT}.gbc ${TARGET}

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Link's Awakening MSU-1
2+
3+
This ROM hack adds MSU-1 audio support to Link's Awakening DX. MSU-1 support for Game Boy games requires the use of the Super Game Boy, so a fully compatible Super Game Boy emulator or flash cart must be used.
4+
5+
## Running The Game
6+
7+
### PC Emulators
8+
Currently, only bsnes and some of its forks (such as bsnes+) support MSU-1 on SGB. SGB game loading differs between versions, but generally you will install the SGB boot ROM into the emulator's system folder, then load the SGB BIOS file using the System>Load Game or Sytem>Load Special>Load Super Game Boy Cartridge dialog, and then it will prompt you to load the GB ROM file. Due to inconsistencies in the MSU-1 file matching between different versions of different forks of the emulator, the best option for file naming is to ensure that the file names match for the SGB BIOS file, the GB ROM file, the MSU data ROM file, and all PCM files.
9+
10+
## SD2SNES/FXPAK Pro/MiSTer
11+
SGB + MSU-1 support is currently implemented in the SD2SNES/FXPAK Pro flash cart, as well as in the MiSTer FPGA SGB core. Setup for these devices involves copying the SGB BIOS and boot ROM files into the correct system folder, and then renaming all MSU-1 related files (MSU-1 data ROM and PCM audio files) to match the GB ROM file name, then simply load the GB ROM file normally.
12+
13+
## Building From Source
14+
Building on Linux requires the use of ARM9's fork of the bass assembler, which can be downloaded [here](https://github.com/ARM9/bass/releases/latest).
15+
16+
Also required is Floating IPS (Flips) v1.31, wich can be downloaded [here](https://www.smwcentral.net/?a=details&id=11474&p=section)
17+
18+
### Base Game
19+
To build a specific version of the game, the original ROM must be copied to the root directory of this repository and renamed to ladx_(region code)(revision).gbc.
20+
21+
Valid region codes are:
22+
23+
J (JPN)<br />
24+
U (USA)<br />
25+
F (FRA)<br />
26+
G (GER)<br />
27+
28+
Valid revisions are 1.0-1.2, depending on the region.
29+
30+
e.g.
31+
32+
ladx_j1.0.gbc<br />
33+
ladx_u1.2.gbc<br />
34+
ladx_f1.1.gbc<br />
35+
etc.
36+
37+
Once the base ROM has been provided, you can build by running
38+
39+
> make version
40+
41+
where "version" is the region code and revision, without a '.' in the version number.
42+
43+
e.g.
44+
45+
> make j10<br />
46+
> make u12<br />
47+
> make f11<br />
48+
49+
etc.
50+
51+
The makefile does not currently support building on Windows, but you can manually invoke the assembler, or you can use WSL on Windows 10+.
52+
53+
## PCM Audio Tracks
54+
The full track list can be found [here](ladx-msu1.asm)

0 commit comments

Comments
 (0)