mirror of https://github.com/a2-4am/4cade.git
Compare commits
190 Commits
v5.0-beta.
...
main
Author | SHA1 | Date |
---|---|---|
Peter Ferrie | 13b5d876e8 | |
Peter Ferrie | 370e544d24 | |
4am | c361472951 | |
4am | ada45c1fc2 | |
Peter Ferrie | c2de0a2ccc | |
Peter Ferrie | edd6192a22 | |
Peter Ferrie | b8e7d480e6 | |
4am | 7cc7fd357b | |
4am | a7efbea1f8 | |
Peter Ferrie | 6dd38440df | |
Peter Ferrie | 674638fb7e | |
Peter Ferrie | 9066bb2145 | |
Peter Ferrie | ada2f3b0b1 | |
4am | 535f3a8a4c | |
Peter Ferrie | 9f3cce4731 | |
4am | e0d2172132 | |
4am | 51b5f51666 | |
Peter Ferrie | 4a7ebf3a6d | |
4am | 1bba465e92 | |
4am | 990cf25809 | |
Peter Ferrie | a362597c09 | |
Peter Ferrie | 0c0050d6cf | |
Peter Ferrie | b6b193c4ae | |
4am | ead3094694 | |
Peter Ferrie | c7626b11d8 | |
4am | 8872250ac7 | |
Peter Ferrie | 586c2fc227 | |
Peter Ferrie | a10337ef9b | |
4am | dba357c27a | |
Peter Ferrie | 082e277e3d | |
Peter Ferrie | 8e657186e1 | |
Peter Ferrie | 7a21398f75 | |
4am | 005f96d6af | |
Peter Ferrie | 65f090b53f | |
Peter Ferrie | 9e69cdca94 | |
Peter Ferrie | 128385ea62 | |
Peter Ferrie | f681fe1d32 | |
Peter Ferrie | 581099b175 | |
Peter Ferrie | 8bb101a337 | |
Peter Ferrie | b138d030d5 | |
Peter Ferrie | 13f3461621 | |
Peter Ferrie | f26e9f1763 | |
Peter Ferrie | 7f0518fd46 | |
4am | f49ea558ab | |
Peter Ferrie | ccee4e55cf | |
4am | 055cba6340 | |
4am | 0845ea468a | |
4am | 90c45e4e5e | |
Peter Ferrie | 2c010c0851 | |
4am | a137612d08 | |
Peter Ferrie | 7085faebc8 | |
Peter Ferrie | d29e8554df | |
Peter Ferrie | 4e186fd530 | |
4am | 2fbdd2bb37 | |
Peter Ferrie | dfc882b2fd | |
Peter Ferrie | 4a2c619929 | |
4am | 535c4c841d | |
4am | 7acb717b11 | |
4am | b5dffa65ab | |
4am | bc38e605d9 | |
4am | 43ab54a120 | |
4am | 6637a5e51e | |
4am | 124432f373 | |
4am | 65c5d0697f | |
Peter Ferrie | 7e5bb82d63 | |
Peter Ferrie | 48567554df | |
Peter Ferrie | 8ec38d2c95 | |
Peter Ferrie | af2f83fccc | |
4am | 270d81d749 | |
4am | 409de6a218 | |
4am | 74afbb075f | |
Peter Ferrie | b3d629c134 | |
Peter Ferrie | f828998edf | |
Peter Ferrie | 9471818933 | |
Peter Ferrie | d437a77945 | |
Peter Ferrie | ca3c518e98 | |
Peter Ferrie | c98af1b4df | |
4am | 33534ff61d | |
Peter Ferrie | 541a0167dc | |
Peter Ferrie | eb48e6534a | |
Peter Ferrie | 1f81a4f130 | |
Peter Ferrie | 933432ea3e | |
Peter Ferrie | c77949b549 | |
Peter Ferrie | a99b571b52 | |
Peter Ferrie | 30151dd22d | |
Peter Ferrie | e45b2821ad | |
Peter Ferrie | 7a6dac886b | |
Peter Ferrie | d51aca547a | |
Peter Ferrie | d1a8455dac | |
Peter Ferrie | 5c9145abaa | |
4am | e1f3a74344 | |
4am | 60b1f68c9d | |
4am | 2f206dfc91 | |
4am | f9633db15b | |
4am | 0338ef1032 | |
4am | eca18ea683 | |
4am | 26ee6306eb | |
Peter Ferrie | 2e456de4ad | |
Peter Ferrie | 827524402a | |
Tom Greene | cc0c4a9a59 | |
4am | e569591526 | |
4am | dc95de2c27 | |
frankmilliron | 7f7e5b6023 | |
Peter Ferrie | a8ef8b68d8 | |
Peter Ferrie | 809c97a850 | |
Peter Ferrie | e8ca9e75db | |
Peter Ferrie | 005145ed97 | |
Peter Ferrie | b86ed7d6d2 | |
Peter Ferrie | 464603176d | |
Peter Ferrie | 3dfe60ee46 | |
Peter Ferrie | 50ea0eb656 | |
Peter Ferrie | dac0df2be9 | |
Peter Ferrie | 3ecb7bca37 | |
Peter Ferrie | dbd77dc705 | |
Peter Ferrie | ab916752c9 | |
Peter Ferrie | 79b6cd7066 | |
Peter Ferrie | 01f5176544 | |
4am | 98afd50f6c | |
4am | fc151d34d9 | |
4am | bd9e9dcf1c | |
4am | 8ccda4b106 | |
4am | fb9724eb46 | |
4am | 1c7b9e0024 | |
4am | 9a4c34836d | |
4am | fe2ad3fb12 | |
4am | 8186cadd66 | |
4am | 9a7cc6ea10 | |
4am | c6948783db | |
4am | 1bd096af77 | |
4am | 4dbf252d08 | |
4am | 3b9caa691b | |
Peter Ferrie | d8f404cfc5 | |
4am | e4064f0990 | |
4am | a90d91bbea | |
4am | c256535d26 | |
Peter Ferrie | 0c615655c7 | |
Peter Ferrie | f684c631bc | |
Peter Ferrie | f4c7dd31b9 | |
Peter Ferrie | 9cab60b55c | |
Peter Ferrie | 4417556c8a | |
Peter Ferrie | 93159afbee | |
Peter Ferrie | faabedb99d | |
Peter Ferrie | ba6eecec26 | |
4am | 4d9b1ee5ce | |
4am | 364a5d388f | |
4am | 0677765b83 | |
4am | 05ecde1965 | |
Peter Ferrie | ce4002fc9e | |
Peter Ferrie | 8499efbfa9 | |
Peter Ferrie | b72f2f4b5f | |
frankmilliron | 2a1a50f2a3 | |
Andrew Roughan | 4df8c029e0 | |
Peter Ferrie | 7590c290a3 | |
Peter Ferrie | 39b62e540d | |
Peter Ferrie | 3127489da9 | |
Peter Ferrie | 4c3e2479db | |
Peter Ferrie | 0dd83a01f2 | |
frankmilliron | e5926dc7b5 | |
Peter Ferrie | 5643dd8c97 | |
Peter Ferrie | e92c1b32bf | |
Peter Ferrie | c5c812754e | |
4am | c29dd24ec4 | |
frankmilliron | 529f89f820 | |
frankmilliron | 00707b6c0b | |
Peter Ferrie | 0f70459cc3 | |
frankmilliron | 327d37bedd | |
frankmilliron | 1b49c67062 | |
Peter Ferrie | 5c543b8e48 | |
frankmilliron | 651d825c99 | |
Peter Ferrie | a1a47e8b94 | |
frankmilliron | df52b51a51 | |
Peter Ferrie | 7f077a77a1 | |
frankmilliron | b381dce377 | |
Peter Ferrie | 960955c31c | |
Peter Ferrie | a1d95c9111 | |
frankmilliron | db5599d222 | |
frankmilliron | 4841f37ada | |
Peter Ferrie | 295e661047 | |
4am | c0a282c00d | |
Andrew Roughan | fa8efa0c92 | |
Andrew Roughan | e043cd01ab | |
Peter Ferrie | 2435f80aca | |
Tom Greene | 5773dbc866 | |
Andrew Roughan | f0a06bca56 | |
Andrew Roughan | 11c1bf0a83 | |
Andrew Roughan | 77949623cb | |
Peter Ferrie | 5e5ab1d3d3 | |
Peter Ferrie | 3ce635e479 | |
Peter Ferrie | fd8f0d5eaa | |
Peter Ferrie | 0c01180493 |
|
@ -0,0 +1,2 @@
|
|||
* text=false
|
||||
winmake.bat text eol=crlf
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2018-2021 4am
|
||||
Copyright (c) 2018-2023 4am
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
47
Makefile
47
Makefile
|
@ -59,20 +59,33 @@ dsk: index asmproboot asmlauncher extract
|
|||
res/TITLE.ANIMATED \
|
||||
res/ICONS \
|
||||
build/FX \
|
||||
build/PRELAUNCH; do \
|
||||
build/PRELAUNCH \
|
||||
build/X; do \
|
||||
rm -f "$$f"/.DS_Store; \
|
||||
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/$$(basename $$f)" "$$f" -C >>build/log; \
|
||||
done
|
||||
$(CADIUS) CREATEFOLDER build/"$(DISK)" "/$(VOLUME)/X/" -C >>build/log
|
||||
for f in build/X/*; do \
|
||||
$(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X/$$(basename $$f)" "$$f" -C >>build/log; \
|
||||
done
|
||||
bin/changebootloader.sh build/"$(DISK)" build/proboothd
|
||||
|
||||
extract: preconditions md
|
||||
gamesconf: preconditions md
|
||||
#
|
||||
# create a version of GAMES.CONF without comments or blank lines or anything after display titles
|
||||
#
|
||||
[ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF | awk -F'/' '{ print $$1 }' > build/GAMES.CONF)
|
||||
#
|
||||
# create a list of all game filenames, without metadata or display names, sorted by game filename
|
||||
#
|
||||
[ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED)
|
||||
|
||||
extract: preconditions md gamesconf
|
||||
$(PARALLEL) '$(CADIUS) EXTRACTVOLUME {} build/X/ >>build/log' ::: res/dsk/*.po
|
||||
rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM*
|
||||
for f in $$(grep '^....1' res/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done
|
||||
rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM* build/X/**/_FileInformation.txt
|
||||
for f in $$(grep '^....1' build/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done
|
||||
for d in build/X/*; do \
|
||||
for f in "$$d"/*; do \
|
||||
mv "$$f" build/X/"$$(basename $$f)"; \
|
||||
done; \
|
||||
rmdir "$$d"; \
|
||||
done
|
||||
(for f in build/X.INDEXED/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA build/X.INDEXED > build/XSINGLE.IDX
|
||||
|
||||
index: preconditions md asmfx asmprelaunch asmdemo compress extract
|
||||
|
@ -88,14 +101,6 @@ index: preconditions md asmfx asmprelaunch asmdemo compress extract
|
|||
[ -f build/index ] || (bin/converthelp.sh res/CREDITS build/CREDITS)
|
||||
[ -f build/index ] || $(PARALLEL) 'bin/converthelp.sh "{}" "build/GAMEHELP/{/}"' ::: res/GAMEHELP/*
|
||||
#
|
||||
# create a version of GAMES.CONF without comments or blank lines
|
||||
#
|
||||
[ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF > build/GAMES.CONF)
|
||||
#
|
||||
# create a list of all game filenames, without metadata or display names, sorted by game filename
|
||||
#
|
||||
[ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED)
|
||||
#
|
||||
# precompute indexed files for prelaunch
|
||||
# note: prelaunch must be first in TOTAL.DATA due to a hack in LoadStandardPrelaunch
|
||||
# note 2: these can not be padded because they are loaded at $0106 and padding would clobber the stack
|
||||
|
@ -254,12 +259,12 @@ attract: compress
|
|||
bin/check-attract-mode.sh
|
||||
bin/generate-mini-attract-mode.sh
|
||||
|
||||
cache: preconditions md
|
||||
cache: preconditions md gamesconf
|
||||
$(PARALLEL) ::: \
|
||||
'awk -F= '"'"'/^00/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache00.a' \
|
||||
'awk -F= '"'"'/^0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache01.a' \
|
||||
'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache10.a' \
|
||||
'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache11.a'
|
||||
'awk -F= '"'"'/^00/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache00.a' \
|
||||
'awk -F= '"'"'/^0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache01.a' \
|
||||
'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache10.a' \
|
||||
'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache11.a'
|
||||
$(PARALLEL) ::: \
|
||||
'$(ACME) -o res/CACHE00.IDX build/cache00.a' \
|
||||
'$(ACME) -o res/CACHE01.IDX build/cache01.a' \
|
||||
|
|
41
README.md
41
README.md
|
@ -26,7 +26,7 @@ $ cd 4cade/
|
|||
$ make
|
||||
```
|
||||
|
||||
If all goes well, the `build/` subdirectory will contain a `4cade.hdv` image which can be mounted in emulators like [OpenEmulator](https://archive.org/details/OpenEmulatorSnapshots) or [Virtual II](http://virtualii.com/).
|
||||
If all goes well, the `build/` subdirectory will contain a `4cade.hdv` image which can be mounted in emulators like [OpenEmulator](https://archive.org/details/OpenEmulatorSnapshots), [Ample](https://github.com/ksherlock/ample), or [Virtual II](http://virtualii.com/).
|
||||
|
||||
If all does not go well, try doing a clean build (`make clean dsk`)
|
||||
|
||||
|
@ -38,7 +38,7 @@ If that fails, please [file a bug](https://github.com/a2-4am/4cade/issues/new).
|
|||
|
||||
You will need
|
||||
- [ACME](https://sourceforge.net/projects/acme-crossass/)
|
||||
- [Cadius for Windows](https://www.brutaldeluxe.fr/products/crossdevtools/cadius/)
|
||||
- [Cadius for Windows](https://github.com/mach-kernel/cadius)
|
||||
|
||||
(Those tools will need to be added to your command-line PATH.)
|
||||
|
||||
|
@ -56,6 +56,43 @@ If that fails, perhaps you have out-of-date versions of one of the required tool
|
|||
|
||||
If that fails, please [file a bug](https://github.com/a2-4am/4cade/issues/new).
|
||||
|
||||
## Linux
|
||||
|
||||
You will need
|
||||
- [Cadius](https://github.com/mach-kernel/cadius)
|
||||
|
||||
Most of the packages are already available pre-compiled and can be installed with the following
|
||||
|
||||
``` shell
|
||||
$ sudo apt-get install git parallel acme
|
||||
```
|
||||
|
||||
To compile Cadius enter the following
|
||||
|
||||
``` shell
|
||||
$ git clone https://github.com/mach-kernel/cadius.git
|
||||
$ cd cadius
|
||||
$ make
|
||||
$ cd bin/release
|
||||
$ sudo cp cadius /usr/bin
|
||||
```
|
||||
|
||||
Then open a terminal window and type
|
||||
|
||||
``` shell
|
||||
$ git clone https://github.com/a2-4am/4cade.git
|
||||
$ cd 4cade/
|
||||
$ make
|
||||
```
|
||||
|
||||
If all goes well, the `build/` subdirectory will contain a `4cade.hdv` image which can be mounted in emulators like [MAME](http://www.mamedev.org).
|
||||
|
||||
If all does not go well, try doing a clean build (`make clean dsk`)
|
||||
|
||||
If that fails, perhaps you have out-of-date versions of one of the required tools? The [Makefile](https://github.com/a2-4am/4cade/blob/main/Makefile) lists, but does not enforce, the minimum version requirements of each third-party tool.
|
||||
|
||||
If that fails, please [file a bug](https://github.com/a2-4am/4cade/issues/new).
|
||||
|
||||
# Navigating the code
|
||||
|
||||
## Initialization
|
||||
|
|
|
@ -50,13 +50,13 @@ cat res/GAMES.CONF |
|
|||
grep '^\!to' src/demo/*.a | cut -d'/' -f5-|cut -d'#' -f1 |
|
||||
grep -v "SPCARTOON" |
|
||||
while read f; do
|
||||
grep "$f=0" res/ATTRACT.CONF >/dev/null || echo "unused demo: $f";
|
||||
grep "^$f=0" res/ATTRACT.CONF >/dev/null || echo "unused demo: $f";
|
||||
done
|
||||
|
||||
# warn about unused slideshows
|
||||
cd res/SS
|
||||
for f in *.CONF; do
|
||||
grep "$f" ../ATTRACT.CONF >/dev/null || echo "unused slideshow: $f";
|
||||
grep "^$f=" ../ATTRACT.CONF >/dev/null || echo "unused slideshow: $f";
|
||||
done
|
||||
cd ../..
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue