Skip to content

Commit

Permalink
Combine build scripts into singular file, add expanded JP ROM assembly
Browse files Browse the repository at this point in the history
  • Loading branch information
lordmir committed Jan 4, 2025
1 parent 4ccc05e commit dbf58e5
Show file tree
Hide file tree
Showing 11 changed files with 442 additions and 54 deletions.
18 changes: 15 additions & 3 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,22 @@ jobs:
- name: Build US Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
shell: bash
run: ./build.sh | tee build_landstalker_us.log
run: ./build.sh -r US -o landstalker_us.bin | tee build_landstalker_us.log

- name: Build Expanded US Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
shell: bash
run: ./build_expanded.sh | tee build_landstalker_us_expanded.log
run: ./build.sh -r US -e -o landstalker_us_expanded.bin | tee build_landstalker_us_expanded.log

- name: Build JP Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
shell: bash
run: ./build_jp.sh | tee build_landstalker_jp.log
run: ./build.sh -r JP -o landstalker_jp.bin | tee build_landstalker_jp.log

- name: Build JP Expanded Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
shell: bash
run: ./build.sh -r JP -e -o landstalker_jp_expanded.bin | tee build_landstalker_jp_expanded.log

- name: Verify US Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
Expand All @@ -78,3 +83,10 @@ jobs:
run: |
grep "Checksum: 35A6" build_landstalker_jp.log
echo d0c2080a7890bd908dcb698173266d2326e7bba8f701afba1104c9e67d6c116a landstalker_jp.bin | sha256sum -c
- name: Verify JP Expanded Landstalker ROM
working-directory: ${{github.workspace}}/landstalker_disasm
shell: bash
run: |
grep "Checksum: 8100" build_landstalker_jp.log
echo 5632fedb26b4f7d2604469e8350f02e17044762c4a0d9c3af79881362e7b08b5 landstalker_jp_expanded.bin | sha256sum -c
102 changes: 99 additions & 3 deletions build.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,100 @@
tools\build\asm68k.exe /p /o ae-,e+,w+,c+,op+,os+,ow+,oz+,l_ /e EXPANDED=0 landstalker_us.asm,landstalker.bin
python tools\build\fix_checksum.py landstalker.bin
pause
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

SET STANDARD_BUILDOPTS="/p /o ae-,e+,w+,c+,op+,os+,ow+,oz+,l_"
SET AS="tools\build\asm68k.exe"
SET REGION=US
SET EXPANDED=0
SET MANUAL_OUTPUT=

:PARSE
IF "%~1"=="-r" (
SET REGION=%2
SHIFT
SHIFT
GOTO PARSE
)
IF "%~1"=="-e" (
SET /A EXPANDED=1
SHIFT
GOTO PARSE
)
IF "%~1"=="-o" (
SET MANUAL_OUTPUT=%~2
SHIFT
SHIFT
GOTO PARSE
)
IF "%~1"=="" (
GOTO ENDPARSE
)
ECHO Usage: %~0% [-r ^(US^|JP^)] [-e] [-o <Output ROM Filename>]
EXIT 1

:ENDPARSE

SET SOURCE="landstalker_us.asm"
SET OUTPUT="landstalker_us.bin"
SET /A REGION_CODE=0
SET /A ENABLE_REGION_CHECK=1
SET /A FIX_COLLISION_GLITCH=1
SET /A FIX_ARMLET_SKIP=1
SET /A FIX_EINSTEIN_WHISTLE_FLAG_CHECK=1
SET /A FIX_SPRITE_HIDE_BUG=1
SET /A ENABLE_GOLD_COUNTUP_ON_TREASURE=1
SET /A FIX_POTENTIAL_CORRUPTION_ON_GOLA=1
SET /A FIX_GOLD_CAP_ON_FILE_LOAD=1

:: Options
IF %REGION%==US (
IF %EXPANDED%==1 (
SET SOURCE="landstalker_us_expanded.asm"
SET OUTPUT="landstalker_us_expanded.bin"
)
SET /A EXPANDED=%EXPANDED%
) ELSE IF %REGION%==JP (
IF %EXPANDED%==1 (
SET SOURCE="landstalker_jp_expanded.asm"
SET OUTPUT="landstalker_jp_expanded.bin"
SET /A EXPANDED=1
) ELSE (
SET SOURCE="landstalker_jp.asm"
SET OUTPUT="landstalker_jp.bin"
SET /A EXPANDED=0
)
SET /A REGION_CODE=1
SET /A ENABLE_REGION_CHECK=0
SET /A FIX_COLLISION_GLITCH=0
SET /A FIX_ARMLET_SKIP=0
SET /A FIX_EINSTEIN_WHISTLE_FLAG_CHECK=0
SET /A FIX_SPRITE_HIDE_BUG=0
SET /A ENABLE_GOLD_COUNTUP_ON_TREASURE=0
SET /A FIX_POTENTIAL_CORRUPTION_ON_GOLA=0
SET /A FIX_GOLD_CAP_ON_FILE_LOAD=0
) ELSE (
ECHO Unsupported Region
EXIT 1
)

SET DEFINES="/e "
SET DEFINES=%DEFINES%"REGION="%REGION_CODE%
SET DEFINES=%DEFINES%";EXPANDED="%EXPANDED%
SET DEFINES=%DEFINES%";ENABLE_REGION_CHECK="%ENABLE_REGION_CHECK%
SET DEFINES=%DEFINES%";FIX_COLLISION_GLITCH="%FIX_COLLISION_GLITCH%
SET DEFINES=%DEFINES%";FIX_ARMLET_SKIP="%FIX_ARMLET_SKIP%
SET DEFINES=%DEFINES%";FIX_EINSTEIN_WHISTLE_FLAG_CHECK="%FIX_EINSTEIN_WHISTLE_FLAG_CHECK%
SET DEFINES=%DEFINES%";FIX_SPRITE_HIDE_BUG="%FIX_SPRITE_HIDE_BUG%
SET DEFINES=%DEFINES%";ENABLE_GOLD_COUNTUP_ON_TREASURE="%ENABLE_GOLD_COUNTUP_ON_TREASURE%
SET DEFINES=%DEFINES%";FIX_POTENTIAL_CORRUPTION_ON_GOLA="%FIX_POTENTIAL_CORRUPTION_ON_GOLA%
SET DEFINES=%DEFINES%";FIX_GOLD_CAP_ON_FILE_LOAD="%FIX_GOLD_CAP_ON_FILE_LOAD%

SET DEFINES=%DEFINES:"=%

IF NOT "%MANUAL_OUTPUT%"=="" SET OUTPUT=%MANUAL_OUTPUT%

@ECHO ON
%AS% %STANDARD_BUILDOPTS% %DEFINES% %SOURCE%,%OUTPUT%
python tools\build\fix_checksum.py %OUTPUT%

@ECHO OFF
ENDLOCAL
75 changes: 73 additions & 2 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,76 @@
#!/bin/bash
STANDARD_BUILDOPTS="/p /o ae-,e+,w+,c+,op+,os+,ow+,oz+,l_"
AS="wine tools/build/asm68k.exe"
REGION="US"
EXPANDED=0

wine tools/build/asm68k.exe /p /o ae-,e+,w+,c+,op+,os+,ow+,oz+,l_ /e EXPANDED=0 landstalker_us.asm,landstalker.bin
python3 tools/build/fix_checksum.py landstalker.bin
while getopts r:o:e flag; do
case "${flag}" in
r) REGION=${OPTARG};;
o) MANUAL_OUTPUT=${OPTARG};;
e) EXPANDED=1;;
*) echo "Usage: ${0} [-r (US|JP)] [-e] [-o <Output ROM Filename>]";;
esac
done

# Options
if [ ${REGION} == "US" ]; then
if [ ${EXPANDED} -eq 1 ]; then
SOURCE="landstalker_us_expanded.asm"
OUTPUT="landstalker_us_expanded.bin"
else
SOURCE="landstalker_us.asm"
OUTPUT="landstalker_us.bin"
fi
REGION_CODE=0
ENABLE_REGION_CHECK=1
FIX_COLLISION_GLITCH=1
FIX_ARMLET_SKIP=1
FIX_EINSTEIN_WHISTLE_FLAG_CHECK=1
FIX_SPRITE_HIDE_BUG=1
ENABLE_GOLD_COUNTUP_ON_TREASURE=1
FIX_POTENTIAL_CORRUPTION_ON_GOLA=1
FIX_GOLD_CAP_ON_FILE_LOAD=1
elif [ ${REGION} == "JP" ]; then
if [ ${EXPANDED} -eq 1 ]; then
SOURCE="landstalker_jp_expanded.asm"
OUTPUT="landstalker_jp_expanded.bin"
else
SOURCE="landstalker_jp.asm"
OUTPUT="landstalker_jp.bin"
fi
REGION_CODE=1
ENABLE_REGION_CHECK=0
FIX_COLLISION_GLITCH=0
FIX_ARMLET_SKIP=0
FIX_EINSTEIN_WHISTLE_FLAG_CHECK=0
FIX_SPRITE_HIDE_BUG=0
ENABLE_GOLD_COUNTUP_ON_TREASURE=0
FIX_POTENTIAL_CORRUPTION_ON_GOLA=0
FIX_GOLD_CAP_ON_FILE_LOAD=0
else
echo Unsupported Region
exit 1
fi

if [ -n "${MANUAL_OUTPUT}" ]; then
OUTPUT=${MANUAL_OUTPUT}
fi

DEFINES="/e "
DEFINES=${DEFINES}"REGION="${REGION_CODE}
DEFINES=${DEFINES}";EXPANDED="${EXPANDED}
DEFINES=${DEFINES}";ENABLE_REGION_CHECK="${ENABLE_REGION_CHECK}
DEFINES=${DEFINES}";FIX_COLLISION_GLITCH="${FIX_COLLISION_GLITCH}
DEFINES=${DEFINES}";FIX_ARMLET_SKIP="${FIX_ARMLET_SKIP}
DEFINES=${DEFINES}";FIX_EINSTEIN_WHISTLE_FLAG_CHECK="${FIX_EINSTEIN_WHISTLE_FLAG_CHECK}
DEFINES=${DEFINES}";FIX_SPRITE_HIDE_BUG="${FIX_SPRITE_HIDE_BUG}
DEFINES=${DEFINES}";ENABLE_GOLD_COUNTUP_ON_TREASURE="${ENABLE_GOLD_COUNTUP_ON_TREASURE}
DEFINES=${DEFINES}";FIX_POTENTIAL_CORRUPTION_ON_GOLA="${FIX_POTENTIAL_CORRUPTION_ON_GOLA}
DEFINES=${DEFINES}";FIX_GOLD_CAP_ON_FILE_LOAD="${FIX_GOLD_CAP_ON_FILE_LOAD}

echo ${AS} ${STANDARD_BUILDOPTS} ${DEFINES} ${SOURCE},${OUTPUT}

${AS} ${STANDARD_BUILDOPTS} ${DEFINES} ${SOURCE},${OUTPUT}
python3 tools/build/fix_checksum.py ${OUTPUT}

3 changes: 0 additions & 3 deletions build_expanded.bat

This file was deleted.

4 changes: 0 additions & 4 deletions build_expanded.sh

This file was deleted.

4 changes: 0 additions & 4 deletions build_jp.bat

This file was deleted.

5 changes: 0 additions & 5 deletions build_jp.sh

This file was deleted.

21 changes: 0 additions & 21 deletions code/include/landstalker_jp.inc
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,3 @@ CHR_ARROW_PROMPT: equ $000000EA ; Down arrow prompt
; enum Constants
NUM_CHAR_NAMES: equ $0000003C
SCRIPT_STRINGS_BEGIN: equ $0000004D


False: equ 0
True: equ 1

US: equ 0
JP: equ 1
UK: equ 2
FR: equ 3
DE: equ 4
US_BETA: equ 5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REGION: equ JP
ENABLE_REGION_CHECK: equ False
FIX_COLLISION_GLITCH: equ False
FIX_ARMLET_SKIP: equ False
FIX_EINSTEIN_WHISTLE_FLAG_CHECK: equ False
FIX_SPRITE_HIDE_BUG: equ False
ENABLE_GOLD_COUNTUP_ON_TREASURE: equ False
FIX_POTENTIAL_CORRUPTION_ON_GOLA: equ False
FIX_GOLD_CAP_ON_FILE_LOAD: equ False
9 changes: 0 additions & 9 deletions code/include/landstalker_us.inc
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,3 @@ FR: equ 3
DE: equ 4
US_BETA: equ 5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REGION: equ US
ENABLE_REGION_CHECK: equ True
FIX_COLLISION_GLITCH: equ True
FIX_ARMLET_SKIP: equ True
FIX_EINSTEIN_WHISTLE_FLAG_CHECK: equ True
FIX_SPRITE_HIDE_BUG: equ True
ENABLE_GOLD_COUNTUP_ON_TREASURE: equ True
FIX_POTENTIAL_CORRUPTION_ON_GOLA: equ True
FIX_GOLD_CAP_ON_FILE_LOAD: equ True
10 changes: 10 additions & 0 deletions code/include/macros.inc
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
False: equ 0
True: equ 1

US: equ 0
JP: equ 1
UK: equ 2
FR: equ 3
DE: equ 4
US_BETA: equ 5

ScriptID macro
if narg<>2
inform 2,"Wrong number of arguments"
Expand Down
Loading

0 comments on commit dbf58e5

Please sign in to comment.