Update readme and remove defunct build scripts

This commit is contained in:
Brendan Robert 2024-07-01 12:06:05 -05:00
parent e3b2484ec2
commit b9f3368696
4 changed files with 46 additions and 146 deletions

View File

@ -1,17 +1,57 @@
Java Apple Computer Emulator
====
Download:
Jace is a mature cycle-accurate emulation of an Apple //e computer. The full library of software for that series is 100% compatible with this emulator, as well as many popular hardware add-ons such as:
- Joysticks (emulated by mouse or using real gamepads)
- Mouse
- Extended 80 Column card or Ramworks (Apple memory expansion compatible)
- Ramfactor
- Floppy drives (up to 14 supported)
- Hard drives (up to 12 supported) and 800kb disk images
- Mockingboard/Applied engineering Phasor (up to 6 supported)
- Passport MIDI Interface
- Super Serial Card (over TCP/IP emulation)
- Transwarp / Zip Chip
- Thunderclock / NoSlot Clock
- Apple RGB graphics modes
Other features of Jace include:
- Small IDE for programming Applesoft basic and Assembly (via built-in ACME cross assembler)
- Cheat features for some popular games like Prince of Persia, Montezuma's Revenge, Wolfenstein and more
- Metacheat feature allows searching memory for discovering new game cheats/mods
## Download:
* [See releases page for most recent](https://github.com/badvision/jace/releases)
To Run:
## To Run:
* See [run.sh](run.sh)
* The easiest way to run Jace is by downloading a native build from gitub (see releases link above)
or `java -jar Jace.jar`
Running the standard java version of Jace requires you have installed Java 17 or later.
* If you are building from source you can use any of the following:
- mvn javafx:run
- mvn gluonfx:run (Note: gluonfx plugin currently only supports up to Maven 3.8.8)
Support JACE:
## To Build natively:
In order to build Jace as a native application you need to install the following:
- Gluon's fork of GraalVM: https://github.com/gluonhq/graal/releases
- Compiler (XCode for Mac, GCC for Linux, Visual Studio for Windows)
- Maven 3.8.8 (not a newer version, unfortunately)
The Gluon instructions have more details about where to find and download these components. Once you have them installed you can test the Java version via `mvn gluonfx:run` and if that is working correctly, then you can use `mvn gluonfx:build` to create a native binary in the target/gluonfx folder for your local platform. Gluon is only able to build for the OS you are running it on, so building for multiple platforms requires separate windows, mac and linux machines.
The Gluon documentation provides a compatibility matrix for each OS platform and the prerequisites needed to create native applications on each. See here for more details: https://docs.gluonhq.com/#_platforms
All other native dependencies are automatically downloaded as needed by Maven for the various LWJGL libraries.
### First time build note:
Because Jace provides an annotation processor for compilation, there is a chicken-and-egg problem when building the first time. In the pom.xml, comment out lines 35-42 dealing with annotation processors. Run `mvn install` and once that completes, un-comment those lines and compile a second time. After you compile the first time you don't have to do this step again as long as Maven is able to find a previously build version of Jace to provide this annotation processor.
## Support JACE:
JACE will always be free, but it does take considerable time to refine and add new features. If you would like to show your support and encourage the author to keep maintaining this emulator, why not throw him some change to buy him a drink? (The emulator was named for the Jack and Cokes consumed during its inception.)
@ -19,25 +59,6 @@ JACE will always be free, but it does take considerable time to refine and add n
* <a href="bitcoin:1TmP94jrEtJNqz7wrCpViA6musGsiTXEq?amount=0.000721&label=Jace%20Donations">Donate to support JACE! (BTC address: 1TmP94jrEtJNqz7wrCpViA6musGsiTXEq)</a>
* <a href="https://www.paypal.me/BrendanRobert">Donate to support JACE! (Paypal)</a>
To Build:
* See [build.sh](build.sh)
Jace is a java-based Apple //e emulator with many compelling features:
* NEW: UI Control Overlay makes common actions more conveniently available at the click of a button!
* Built-in IDE for writing basic and assembly programs, using ACME to compile and execute directly without leaving the emulator.
* Disk and Mass-storage (hard drive, 3.5 floppy) images
* Joystick and Mouse are fully supported (Joystick can be emulated with either keyboard or mouse, Java doesn't have native joystick support
* All graphics modes are supported, including Apple RGB "Mixed" and B&W modes.
* Fullscreen and windowed modes supported
* PassPort MIDI support for Ultima V
* MetaCheat allows quick and easy ability to find and alter active memory
* MetaCheat also provides a live heat-map showing all RAM activity, color coded to indicate read, write or CPU execution -- Perfect for reverse engineers
* Optional Debugging rom (][DB) can be enabled for a more powerful monitor
* Super serial emulated as a tcp/ip port
* Mockingboard and Phasor support
* Highly flexible configuration allows any combination of cards and many extra options. You can even alter configuration while the emulation is running!
![Airheart](https://sites.google.com/site/brendanrobert/_/rsrc/1327073239228/projects/jace/airheart.png?height=250&width=400)
![Color swatches](https://sites.google.com/site/brendanrobert/_/rsrc/1327073239228/projects/jace/colors.png?height=223&width=400)
![Desktop II](https://sites.google.com/site/brendanrobert/_/rsrc/1327992588666/projects/jace/AppleIIDesktop.png?height=265&width=400)

117
build.sh
View File

@ -1,117 +0,0 @@
#!/bin/sh
# Building Jace requies:
#
# * Maven
# * Java 1.8 JDK
#
# On OSX the easiest way to install Maven is to use brew
#
# brew install maven
#
#
# Troubleshooting:
# ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project jace: Fatal error compiling: invalid target release: 1.8 -> [Help 1]
# org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project jace: Fatal error compiling
#
# Cause: You probably have the Java 1.8 RUNTIME installed but Maven is (trying to) use the Java 1.7 COMPILER.
# OR : You probably have Java 1.7 installed but Maven is (trying to) use Java 1.8
# Reference: http://stackoverflow.com/questions/24705877/cant-get-maven-to-recognize-java-1-8
#
# 0. Here is some information to clear up the confusion about Java:
#
# The JRE (runtime) is needed to RUN Java programs.
# The JDK (compiler) is needed to COMPILE Java programs.
#
# Solution:
#
# 1. Check which verison of Java that Maven is using
#
# mvn -version
#
# NOTE: If this command returns:
#
# -bash: mvn: command not found
#
# You either didn't install maven or it isn't in your path
# i.e.
# which mvn
# /usr/local/bin/mvn
#
# 2. Check which version of the Java JRE is installed:
#
# java -version
#
# You should see something like this:
#
# java version "1.8.0_66"
# Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
#
# 3. Check which version of the Java JDK is installed:
#
# javac -version
#
# If you see something like this:
#
# javac 1.7.0_75
#
# Then you will need to proceed to the next step, else you can skip it.
#
# 4. Install Java 1.8 JDK (if necessary)
#
# You can download the JDK either via the GUI or the command line:
# http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
#
# To download from the command line:
#
# For OSX
# curl -L -O -H "Cookie: oraclelicense=accept-securebackup-cookie" -k "https://edelivery.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-macosx-x64.dmg"
# open jdk-8u66-macosx-x64.dmg
# Double-click on the .pkg
#
# For Linux
# curl -L -O -H "Cookie: oraclelicense=accept-securebackup-cookie" -k "https://edelivery.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-linux-i586.tar.gz"
#
# Reference:
# Commands / shell script to download JDK / JRE / Java binaries from Oracle website from terminal / shell / command line / command prompt.
# https://gist.github.com/P7h/9741922
#
# 5. Lastly, verify that JAVA_HOME is set:
#
# echo ${JAVA_HOME}
#
# If it is blank (or not set), set it via:
#
# export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
#
# Then you can (finally!) build JACE. Whew!
#
# Note: Changing the maven project file 'pom.xml' to use Java 1.7 *won't* work:
# <plugin>
# <groupId>org.apache.maven.plugins</groupId>
# <artifactId>maven-compiler-plugin</artifactId>
# <version>3.3</version>
# <configuration>
# <source>1.7</source>
# <target>1.7</target>
#
# As the source code is using Java 1.8 langauge features.
if [[ -z "$(which mvn)" ]]; then
echo "ERROR: Maven isn't installed"
echo "Install via:"
echo " brew install maven"
exit
fi
if [[ -z "$JAVA_HOME" ]]; then
echo "WARNING: JAVA_HOME was not set"
echo "... Defaulting to Java 1.8..."
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
echo "... JAVA_HOME=${JAVA_HOME}"
fi
#mvn clean install -X
mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V

4
run.sh
View File

@ -1,4 +0,0 @@
#!/bin/sh
java -jar target/Jace.jar

View File

@ -39,7 +39,7 @@ public abstract class Cheats extends Device {
MontezumasRevenge("Montezuma's Revenge", MontezumasRevengeCheats.class, MontezumasRevengeCheats::new),
PrinceOfPersia("Prince of Persia", PrinceOfPersiaCheats.class, PrinceOfPersiaCheats::new),
ProgramIdentity("Identify program", ProgramIdentity.class, ProgramIdentity::new),
Wolfenstein(name:"Wolfenstein", WolfensteinCheats.class, WolfensteinCheats::new);
Wolfenstein("Wolfenstein", WolfensteinCheats.class, WolfensteinCheats::new);
Supplier<Cheats> factory;
String name;