mirror of
https://github.com/a2-4am/4cade.git
synced 2024-06-01 23:41:39 +00:00
Compare commits
282 Commits
v5.0-beta.
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
a19975dc9f | ||
|
9aecd7ca43 | ||
|
2bb6eb557a | ||
|
b3a1f010d6 | ||
|
4fd63e6154 | ||
|
04e839d4d7 | ||
|
3a5d2d3830 | ||
|
965d7bed5f | ||
|
70f62c2e66 | ||
|
efdbb8218e | ||
|
457ccfbbe8 | ||
|
c9257aa5ed | ||
|
eb07d7798c | ||
|
7922873dbf | ||
|
24398b5d50 | ||
|
c8f924dc6e | ||
|
7ea8a0624d | ||
|
d75c1cc039 | ||
|
90a6f55ddf | ||
|
af538414ff | ||
|
6906bf15bd | ||
|
88e0faf522 | ||
|
c7a2c1a921 | ||
|
99dcc896d1 | ||
|
711de29099 | ||
|
bbe441a983 | ||
|
f151e50247 | ||
|
c7db1050cc | ||
|
1c15f9daa1 | ||
|
0301a7ff48 | ||
|
fd4a0cd7ba | ||
|
5a99dbcc40 | ||
|
57f8a44d61 | ||
|
c5e5162fda | ||
|
ac0a7cf4d5 | ||
|
b729ae17c2 | ||
|
93ee4bee01 | ||
|
5dbcb0507c | ||
|
98ef0d2249 | ||
|
de540fe930 | ||
|
b3d7d2e32c | ||
|
980a956bc1 | ||
|
83c77096ac | ||
|
2b8c4aadaa | ||
|
df7c909090 | ||
|
7d4421ba49 | ||
|
9f339195d7 | ||
|
e3fb3b3f6d | ||
|
0172bfdcad | ||
|
82b69f4619 | ||
|
efff92fee4 | ||
|
da9bc9c2ae | ||
|
1ff0161e2e | ||
|
e2a891ed9a | ||
|
7ec692b881 | ||
|
f5c614b207 | ||
|
4e3adc2aa5 | ||
|
15bf7ae9aa | ||
|
46e094decd | ||
|
466062d3a1 | ||
|
98f4646da6 | ||
|
f4484a3dc4 | ||
|
fcc6c1bd80 | ||
|
8c0c2cfe95 | ||
|
42a7941e61 | ||
|
43c1f99df8 | ||
|
5fbd3a831f | ||
|
e4b4e997aa | ||
|
49fafc4688 | ||
|
b4c2de8e4e | ||
|
ec5a83eb26 | ||
|
8ccd1fe044 | ||
|
665e7ffa67 | ||
|
13b5d876e8 | ||
|
370e544d24 | ||
|
c361472951 | ||
|
ada45c1fc2 | ||
|
c2de0a2ccc | ||
|
edd6192a22 | ||
|
b8e7d480e6 | ||
|
7cc7fd357b | ||
|
a7efbea1f8 | ||
|
6dd38440df | ||
|
674638fb7e | ||
|
9066bb2145 | ||
|
ada2f3b0b1 | ||
|
535f3a8a4c | ||
|
9f3cce4731 | ||
|
e0d2172132 | ||
|
51b5f51666 | ||
|
4a7ebf3a6d | ||
|
1bba465e92 | ||
|
990cf25809 | ||
|
a362597c09 | ||
|
0c0050d6cf | ||
|
b6b193c4ae | ||
|
ead3094694 | ||
|
c7626b11d8 | ||
|
8872250ac7 | ||
|
586c2fc227 | ||
|
a10337ef9b | ||
|
dba357c27a | ||
|
082e277e3d | ||
|
8e657186e1 | ||
|
7a21398f75 | ||
|
005f96d6af | ||
|
65f090b53f | ||
|
9e69cdca94 | ||
|
128385ea62 | ||
|
f681fe1d32 | ||
|
581099b175 | ||
|
8bb101a337 | ||
|
b138d030d5 | ||
|
13f3461621 | ||
|
f26e9f1763 | ||
|
7f0518fd46 | ||
|
f49ea558ab | ||
|
ccee4e55cf | ||
|
055cba6340 | ||
|
0845ea468a | ||
|
90c45e4e5e | ||
|
2c010c0851 | ||
|
a137612d08 | ||
|
7085faebc8 | ||
|
d29e8554df | ||
|
4e186fd530 | ||
|
2fbdd2bb37 | ||
|
dfc882b2fd | ||
|
4a2c619929 | ||
|
535c4c841d | ||
|
7acb717b11 | ||
|
b5dffa65ab | ||
|
bc38e605d9 | ||
|
43ab54a120 | ||
|
6637a5e51e | ||
|
124432f373 | ||
|
65c5d0697f | ||
|
7e5bb82d63 | ||
|
48567554df | ||
|
8ec38d2c95 | ||
|
af2f83fccc | ||
|
270d81d749 | ||
|
409de6a218 | ||
|
74afbb075f | ||
|
b3d629c134 | ||
|
f828998edf | ||
|
9471818933 | ||
|
d437a77945 | ||
|
ca3c518e98 | ||
|
c98af1b4df | ||
|
33534ff61d | ||
|
541a0167dc | ||
|
eb48e6534a | ||
|
1f81a4f130 | ||
|
933432ea3e | ||
|
c77949b549 | ||
|
a99b571b52 | ||
|
30151dd22d | ||
|
e45b2821ad | ||
|
7a6dac886b | ||
|
d51aca547a | ||
|
d1a8455dac | ||
|
5c9145abaa | ||
|
e1f3a74344 | ||
|
60b1f68c9d | ||
|
2f206dfc91 | ||
|
f9633db15b | ||
|
0338ef1032 | ||
|
eca18ea683 | ||
|
26ee6306eb | ||
|
2e456de4ad | ||
|
827524402a | ||
|
cc0c4a9a59 | ||
|
e569591526 | ||
|
dc95de2c27 | ||
|
7f7e5b6023 | ||
|
a8ef8b68d8 | ||
|
809c97a850 | ||
|
e8ca9e75db | ||
|
005145ed97 | ||
|
b86ed7d6d2 | ||
|
464603176d | ||
|
3dfe60ee46 | ||
|
50ea0eb656 | ||
|
dac0df2be9 | ||
|
3ecb7bca37 | ||
|
dbd77dc705 | ||
|
ab916752c9 | ||
|
79b6cd7066 | ||
|
01f5176544 | ||
|
98afd50f6c | ||
|
fc151d34d9 | ||
|
bd9e9dcf1c | ||
|
8ccda4b106 | ||
|
fb9724eb46 | ||
|
1c7b9e0024 | ||
|
9a4c34836d | ||
|
fe2ad3fb12 | ||
|
8186cadd66 | ||
|
9a7cc6ea10 | ||
|
c6948783db | ||
|
1bd096af77 | ||
|
4dbf252d08 | ||
|
3b9caa691b | ||
|
d8f404cfc5 | ||
|
e4064f0990 | ||
|
a90d91bbea | ||
|
c256535d26 | ||
|
0c615655c7 | ||
|
f684c631bc | ||
|
f4c7dd31b9 | ||
|
9cab60b55c | ||
|
4417556c8a | ||
|
93159afbee | ||
|
faabedb99d | ||
|
ba6eecec26 | ||
|
4d9b1ee5ce | ||
|
364a5d388f | ||
|
0677765b83 | ||
|
05ecde1965 | ||
|
ce4002fc9e | ||
|
8499efbfa9 | ||
|
b72f2f4b5f | ||
|
2a1a50f2a3 | ||
|
4df8c029e0 | ||
|
7590c290a3 | ||
|
39b62e540d | ||
|
3127489da9 | ||
|
4c3e2479db | ||
|
0dd83a01f2 | ||
|
e5926dc7b5 | ||
|
5643dd8c97 | ||
|
e92c1b32bf | ||
|
c5c812754e | ||
|
c29dd24ec4 | ||
|
529f89f820 | ||
|
00707b6c0b | ||
|
0f70459cc3 | ||
|
327d37bedd | ||
|
1b49c67062 | ||
|
5c543b8e48 | ||
|
651d825c99 | ||
|
a1a47e8b94 | ||
|
df52b51a51 | ||
|
7f077a77a1 | ||
|
b381dce377 | ||
|
960955c31c | ||
|
a1d95c9111 | ||
|
db5599d222 | ||
|
4841f37ada | ||
|
295e661047 | ||
|
c0a282c00d | ||
|
fa8efa0c92 | ||
|
e043cd01ab | ||
|
2435f80aca | ||
|
5773dbc866 | ||
|
f0a06bca56 | ||
|
11c1bf0a83 | ||
|
77949623cb | ||
|
5e5ab1d3d3 | ||
|
3ce635e479 | ||
|
fd8f0d5eaa | ||
|
0c01180493 | ||
|
36ddde3a30 | ||
|
0774697010 | ||
|
da8918cbce | ||
|
bc4b495632 | ||
|
87cb39221b | ||
|
68a51a76ca | ||
|
4a61b2aa99 | ||
|
0d1a6d1e37 | ||
|
adf3d10db0 | ||
|
7bda61382b | ||
|
663402e030 | ||
|
2e033e3fb7 | ||
|
e2f4de3d2d | ||
|
f6a55dc181 | ||
|
f4165fab50 | ||
|
e16979a50d | ||
|
b66b3f30ca | ||
|
e05eb9c91d | ||
|
d0f2d16ff1 |
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
@ -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
|
||||
|
|
59
Makefile
59
Makefile
|
@ -43,7 +43,6 @@ dsk: index asmproboot asmlauncher extract
|
|||
# create _FileInformation.txt files for subdirectories
|
||||
#
|
||||
bin/buildfileinfo.sh res/ICONS "CA" "0000"
|
||||
bin/buildfileinfo.sh build/FX "06" "6000"
|
||||
cp src/prelaunch/_FileInformation.txt build/PRELAUNCH/
|
||||
#
|
||||
# add everything to the disk
|
||||
|
@ -58,21 +57,33 @@ dsk: index asmproboot asmlauncher extract
|
|||
for f in \
|
||||
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 +99,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
|
||||
|
@ -132,6 +135,12 @@ index: preconditions md asmfx asmprelaunch asmdemo compress extract
|
|||
[ -f build/index ] || (bin/buildindexedfile.sh -p -a build/TOTAL.DATA build/FX.INDEXED < res/FX.CONF > build/FX.IDX)
|
||||
[ -f build/index ] || (bin/buildindexedfile.sh -p -a build/TOTAL.DATA build/FX.INDEXED < res/DFX.CONF > build/DFX.IDX)
|
||||
[ -f build/index ] || (bin/buildindexedfile.sh -p -a build/TOTAL.DATA build/FX.INDEXED < res/SFX.CONF > build/SFX.IDX)
|
||||
[ -f build/index ] || ((for f in build/FXCODE/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -p -a build/TOTAL.DATA build/FXCODE > build/FXCODE.IDX)
|
||||
#
|
||||
# precompute indexed files for coordinates files loaded by graphic effects
|
||||
# note: these can not be padded because some of them are loaded into tight spaces near the unclobberable top of main memory
|
||||
#
|
||||
[ -f build/index ] || ((for f in build/FXDATA/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA build/FXDATA > build/FXDATA.IDX)
|
||||
#
|
||||
# precompute indexed files for HGR & DHGR action screenshots
|
||||
# note: these can not be padded because they are compressed and the decompressor needs the exact size
|
||||
|
@ -194,6 +203,8 @@ index: preconditions md asmfx asmprelaunch asmdemo compress extract
|
|||
[ -f build/index ] || bin/addfile.sh build/FX.IDX build/TOTAL.DATA > src/index/fx.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/DFX.IDX build/TOTAL.DATA > src/index/dfx.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/SFX.IDX build/TOTAL.DATA > src/index/sfx.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/FXCODE.IDX build/TOTAL.DATA > src/index/fxcode.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/FXDATA.IDX build/TOTAL.DATA > src/index/fxdata.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/GAMEHELP.IDX build/TOTAL.DATA > src/index/gamehelp.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/SLIDESHOW.IDX build/TOTAL.DATA > src/index/slideshow.idx.a
|
||||
[ -f build/index ] || bin/addfile.sh build/MINIATTRACT0.IDX build/TOTAL.DATA > src/index/miniattract0.idx.a
|
||||
|
@ -254,12 +265,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' \
|
||||
|
@ -270,7 +281,7 @@ mount: dsk
|
|||
osascript bin/V2Make.scpt "`pwd`" bin/4cade.vii build/"$(DISK)"
|
||||
|
||||
md:
|
||||
mkdir -p build/X build/X.INDEXED build/FX build/FX.INDEXED build/PRELAUNCH build/PRELAUNCH.INDEXED build/ATTRACT build/SS build/GAMEHELP build/DEMO
|
||||
mkdir -p build/X build/X.INDEXED build/FX.INDEXED build/FXDATA build/FXCODE build/PRELAUNCH build/PRELAUNCH.INDEXED build/ATTRACT build/SS build/GAMEHELP build/DEMO
|
||||
touch build/log
|
||||
|
||||
clean:
|
||||
|
|
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
|
||||
|
|
|
@ -41,9 +41,7 @@ for (i = 0; i < entries.length; i++)
|
|||
{
|
||||
groups += "!byte " + (1 + 1 + entries[i].length + 5).toString() + "\n" + "!byte " + entries[i].length.toString() + "\n" + "!text \"" + entries[i] + "\"\n" + "!be24 " + fx_off.toString() + "\n"
|
||||
size = a.getfile(WScript.Arguments(3) + "\\" + entries[i]).size
|
||||
// if offset+size does not cross a block boundary, use the size
|
||||
// otherwise adjust size until it ends at the next block boundary to avoid a partial copy on the last block
|
||||
groups += "!le16 " + ((Math.floor(fx_off / 512) == Math.floor((fx_off + size) / 512)) ? size : (((fx_off + size + 511) & -512) - fx_off)).toString() + "\n"
|
||||
groups += "!le16 " + size + "\n"
|
||||
fx_off += size
|
||||
}
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ fi
|
|||
|
||||
# make temp file with list of lines that contain keys
|
||||
records=$(mktemp)
|
||||
tr -d "\r" | awk '!/^$|^#|^\[/' > "$records"
|
||||
tr -d "\r" | awk '!/^$|^#/' > "$records"
|
||||
|
||||
# make temp assembly source file that represents the binary OKVS data structure
|
||||
source=$(mktemp)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# make temp file with just the key/value pairs (strip blank lines, comments, eof marker)
|
||||
records=$(mktemp)
|
||||
tr -d "\r" | awk '!/^$|^#|^\[/' > "$records"
|
||||
tr -d "\r" | awk '!/^$|^#/' > "$records"
|
||||
|
||||
# make temp assembly source file that represents the binary OKVS data structure
|
||||
source=$(mktemp)
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
# make temp file with just the key/value pairs (strip blank lines, comments, eof marker)
|
||||
records=$(mktemp)
|
||||
tr -d "\r" | awk '!/^$|^#|^\[/' > "$records"
|
||||
tr -d "\r" | awk '!/^$|^#/' > "$records"
|
||||
|
||||
# read logs of offsets & sizes for HGR and DHGR titles
|
||||
# that were generated by an earlier script
|
||||
|
|
|
@ -12,6 +12,8 @@ while (!b.stdout.atendofstream)
|
|||
entries.push(c)
|
||||
}
|
||||
|
||||
entries.sort()
|
||||
|
||||
for (i = 0; i < entries.length; i++)
|
||||
{
|
||||
x.run('cmd /c move /y build\\X\\' + entries[i] + ' ' + WScript.Arguments(0), 0, 1)
|
||||
|
|
|
@ -39,8 +39,8 @@ if (!a.fileexists(WScript.Arguments(1)) || a.getfile(WScript.Arguments(1)).datel
|
|||
bits = q.indexOf("," + name + "=") + 1
|
||||
name = q.substr(bits + name.length + 1)
|
||||
name = name.substr(0, name.indexOf("\n"))
|
||||
needsjoystick = q.substr(bits - 5, 1)
|
||||
needs128k = q.substr(bits - 4, 1)
|
||||
needsjoystick = q.substr(bits - 6, 1)
|
||||
needs128k = q.substr(bits - 5, 1)
|
||||
displayname = ((WScript.Arguments.length == 3) ? name : "")
|
||||
source.writeline("!byte " + (entries[i].length - ((val >= 0) ? 1 : 0) + displayname.length + 5))
|
||||
source.writeline("!byte " + ((val >= 0) ? val : entries[i].length))
|
||||
|
|
|
@ -21,7 +21,7 @@ games=$(cat "$1")
|
|||
|
||||
# make temp file with just the key/value pairs (strip blank lines, comments, eof marker)
|
||||
records=$(mktemp)
|
||||
tr -d "\r" | awk '!/^$|^#|^\[/' > "$records"
|
||||
tr -d "\r" | awk '!/^$|^#/' > "$records"
|
||||
|
||||
# make temp assembly source file that represents the binary OKVS data structure
|
||||
source=$(mktemp)
|
||||
|
|
|
@ -52,7 +52,16 @@ for (i = 0; i < entries.length; i++)
|
|||
size = ((Math.floor(c / 512) == Math.floor((c + size) / 512)) ? size : (((c + size + 511) & -512) - c))
|
||||
}
|
||||
|
||||
groups += "!byte " + (entries[i].length + 7) + "\n" + "!byte " + entries[i].length + "\n" + "!text \"" + entries[i] + "\"\n" + "!be24 " + c + "\n" + "!le16 " + size + "\n"
|
||||
r = entries[i].indexOf("#06")
|
||||
|
||||
if (r == -1)
|
||||
{
|
||||
groups += "!byte " + (entries[i].length + 7) + "\n" + "!byte " + entries[i].length + "\n" + "!text \"" + entries[i] + "\"\n" + "!be24 " + c + "\n" + "!le16 " + size + "\n"
|
||||
}
|
||||
else
|
||||
{
|
||||
groups += "!byte " + (entries[i].substr(0, r).length + 9) + "\n" + "!byte " + entries[i].substr(0, r).length + "\n" + "!text \"" + entries[i].substr(0, r) + "\"\n" + "!be24 " + c + "\n" + "!le16 " + size + "\n" + "!le16 $" + entries[i].substr(r + 3) + "\n"
|
||||
}
|
||||
|
||||
if (typeof(q) == "object")
|
||||
{
|
||||
|
|
|
@ -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 ../..
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
tr "\*\~\<\>\$\%" "\020\021\010\025\016\017" < "$1" | \
|
||||
tr -d "\r" | awk '!/^\[/ { printf "%c%s", length, $0 } END { printf "\xFF" }' > "$2"
|
||||
tr -d "\r" | awk '{ printf "%c%s", length, $0 } END { printf "\xFF" }' > "$2"
|
||||
|
|
13
bin/flatten.js
Normal file
13
bin/flatten.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
a = new ActiveXObject("scripting.filesystemobject")
|
||||
x = new ActiveXObject("wscript.shell")
|
||||
|
||||
for (b = new Enumerator(a.GetFolder("build\\X").subfolders); !b.atEnd(); b.moveNext())
|
||||
{
|
||||
for (c = new Enumerator(b.item().subfolders); !c.atEnd(); c.moveNext())
|
||||
{
|
||||
x.run('cmd /c move build\\X\\' + b.item().name + '\\' + c.item().name + ' build\\X', 0, 1)
|
||||
}
|
||||
|
||||
x.run('cmd /c move build\\X\\' + b.item().name + '\\* build\\X', 0, 1)
|
||||
x.run('cmd /c rd build\\X\\' + b.item().name, 0, 1)
|
||||
}
|
|
@ -75,9 +75,6 @@ cat res/GAMES.CONF |
|
|||
echo "ARTWORK.SHR/POP.END=C" >> /tmp/g
|
||||
fi
|
||||
|
||||
# add eof
|
||||
echo -e "\n[eof]" >> /tmp/g
|
||||
|
||||
cat /tmp/g > res/ATTRACT/"$game"
|
||||
|
||||
# clean up
|
||||
|
|
|
@ -13,13 +13,6 @@ while (!b.atendofstream)
|
|||
d = d.substr(0, e)
|
||||
}
|
||||
|
||||
e = d.indexOf("[eof]")
|
||||
|
||||
if (e > -1)
|
||||
{
|
||||
break
|
||||
}
|
||||
|
||||
e = d.indexOf("=")
|
||||
|
||||
if (e == -1)
|
||||
|
@ -35,5 +28,4 @@ while (!b.atendofstream)
|
|||
}
|
||||
}
|
||||
|
||||
q.write(d + "\n")
|
||||
a.createtextfile("build\\GAMES.SORTED").write(c.sort().toString().replace(/,/g, "\n"))
|
||||
|
|
BIN
res/ACTION.DHGR.UNCOMPRESSED/PUYO.PUYO
Normal file
BIN
res/ACTION.DHGR.UNCOMPRESSED/PUYO.PUYO
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
res/ACTION.DHGR/PUYO.PUYO
Normal file
BIN
res/ACTION.DHGR/PUYO.PUYO
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
res/ACTION.GR/COLORIX
Normal file
BIN
res/ACTION.GR/COLORIX
Normal file
Binary file not shown.
BIN
res/ACTION.GR/LITTLE.BRK.OUT
Normal file
BIN
res/ACTION.GR/LITTLE.BRK.OUT
Normal file
Binary file not shown.
BIN
res/ACTION.GR/SNAKEBYTE.REMIX
Normal file
BIN
res/ACTION.GR/SNAKEBYTE.REMIX
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/AERIAL
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/AERIAL
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/AERIAL2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/AERIAL2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/AERONAUTS
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/AERONAUTS
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/AERONAUTS2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/AERONAUTS2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/APPLZ
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/APPLZ
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/APPLZ2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/APPLZ2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/ASCEND
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ASCEND
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/ASCEND2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ASCEND2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/BATTLOT
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/BATTLOT
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/BATTLOT2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/BATTLOT2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/BOOTSKELL
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/BOOTSKELL
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/BOOTSKELL2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/BOOTSKELL2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/CACORM
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CACORM
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/CACORM2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CACORM2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/CAVIT
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CAVIT
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/CAVIT2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CAVIT2
Normal file
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
BIN
res/ACTION.HGR.UNCOMPRESSED/CRACKY
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CRACKY
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/CRACKY2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/CRACKY2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/FIDO
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/FIDO
Normal file
Binary file not shown.
1
res/ACTION.HGR.UNCOMPRESSED/GB.TETRIS
Normal file
1
res/ACTION.HGR.UNCOMPRESSED/GB.TETRIS
Normal file
File diff suppressed because one or more lines are too long
1
res/ACTION.HGR.UNCOMPRESSED/GB.TETRIS2
Normal file
1
res/ACTION.HGR.UNCOMPRESSED/GB.TETRIS2
Normal file
File diff suppressed because one or more lines are too long
BIN
res/ACTION.HGR.UNCOMPRESSED/GUNTUS
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/GUNTUS
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/GUNTUS2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/GUNTUS2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN2
Normal file
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
Block a user