Frodo, C64 emulator.

This commit is contained in:
espie 2000-07-07 14:29:51 +00:00
parent fa7d4124d4
commit 0851e4c3a4
12 changed files with 302 additions and 0 deletions

59
emulators/frodo/Makefile Normal file
View File

@ -0,0 +1,59 @@
# $OpenBSD: Makefile,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
DISTNAME= FrodoV4_1a.Src
PKGNAME= frodo-4.1a
CATEGORIES= emulators games
MAINTAINER= espie@openbsd.org
HOMEPAGE= http://www.uni-mainz.de/~bauec002/FRMain.html
# FreeWare
PERMIT_PACKAGE_FTP= Yes
PERMIT_PACKAGE_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
CONFIGURE_STYLE= gnu
USE_X11= Yes
RUN_DEPENDS= ${WISH}::x11/tk/8.3
WISH=wish8.3
FRODOLIBDIR=${PREFIX}/lib/frodo
CONFIGURE_ENV= CFLAGS='${CFLAGS} -O3 -D__unix -DX_USE_SHM -fno-exceptions'
MAKE_ENV=WISH=${WISH} FRODOLIBDIR=${FRODOLIBDIR}
MASTER_SITES= http://iphcip1.physik.uni-mainz.de/~cbauer/ \
ftp://sunsite.unc.edu/pub/micro/commodore/crossplatform/emulators/unix/
MASTER_SITES0= http://www.tu-harburg.de/~semk2104/dl/
PATCHFILES= FrodoV4.1a-16bpp-patch.gz:0
WRKDIST=${WRKDIR}/Frodo
WRKSRC=${WRKDIST}/Src
do-install:
${INSTALL_PROGRAM} ${WRKDIST}/Frodo ${PREFIX}/bin/frodo
${INSTALL_PROGRAM} ${WRKDIST}/FrodoSC ${PREFIX}/bin/frodoSC
${INSTALL_PROGRAM} ${WRKDIST}/FrodoPC ${PREFIX}/bin/frodoPC
${INSTALL_DATA_DIR} ${FRODOLIBDIR}/64prgs
${INSTALL_DATA} ${WRKDIST}/{1541,Basic,Char,Kernal}\ ROM \
${FRODOLIBDIR}
${INSTALL_DATA} "${WRKDIST}/Frodo Logo" ${FRODOLIBDIR}
${INSTALL_SCRIPT} "${WRKDIST}/TkGui.tcl" ${FRODOLIBDIR}
@cd ${WRKDIST}/64prgs; tar cf - . | \
(cd ${FRODOLIBDIR}/64prgs; tar xf -)
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/frodo
${INSTALL_DATA} ${WRKDIST}/CHANGES ${PREFIX}/share/doc/frodo
cd ${WRKDIST}/Docs; tar cf - . | \
(cd ${PREFIX}/share/doc/frodo; tar xf -)
.include <bsd.port.mk>

View File

@ -0,0 +1,6 @@
MD5 (FrodoV4.1a-16bpp-patch.gz) = a347f10d980dd70e5edc40033d46e6ee
MD5 (FrodoV4_1a.Src.tar.gz) = 9a4b502f66275cb95c4f42631ca340fe
RMD160 (FrodoV4.1a-16bpp-patch.gz) = 328c4b74898604d1e7aa0cf8a605a8bec067d37e
RMD160 (FrodoV4_1a.Src.tar.gz) = 81a3d0b1d23caa0d7291a7acfdd8bc72984f218a
SHA1 (FrodoV4.1a-16bpp-patch.gz) = d84e67fd7c23ab3d1ea88d63a9e9a728b6b13aaa
SHA1 (FrodoV4_1a.Src.tar.gz) = 0b35e17ec2827ef56224b5aa6a06d833f529e372

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-Src_C64_x_i,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/C64_x.i.orig Wed Aug 6 20:56:25 1997
+++ Src/C64_x.i Thu Jul 6 18:52:43 2000
@@ -100,7 +100,16 @@ void C64::c64_ctor1(void)
gui = 0;
#else
// try to start up Tk gui.
- gui = new CmdPipe("wish", "TkGui.tcl");
+ char *wishName = getenv("WISH");
+ if (wishName == NULL)
+ wishName = WISH;
+ char *d = getenv("FRODOLIBDIR");
+ if (d == NULL)
+ d = FRODOLIBDIR;
+ char buffer[1024];
+ snprintf(buffer, sizeof(buffer), "%s/%s", d, "TkGui.tcl");
+
+ gui = new CmdPipe(wishName, buffer);
if (gui) {
if (gui->fail) {
delete gui; gui = 0;

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-Src_Makefile_in,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/Makefile.in.orig Wed Aug 6 20:56:29 1997
+++ Src/Makefile.in Fri Jul 7 16:01:13 2000
@@ -9,7 +9,8 @@ REVISION = 1
CXX = @CXX@
CPP = @CPP@
LIBRARIES = @LIBRARIES@ @LIBS@
-CFLAGS = @CFLAGS@ @X_CFLAGS@ -I./ -DBROKEN_JOYSTICK_H=@BROKEN_JOYSTICK_H@ -DFRODO_HPUX_REV=@HPUX_REV@ -DKBD_LANG=@KBD_LANG@
+CFLAGS = @CFLAGS@ @X_CFLAGS@ -I./ -DBROKEN_JOYSTICK_H=@BROKEN_JOYSTICK_H@ -DFRODO_HPUX_REV=@HPUX_REV@ -DKBD_LANG=@KBD_LANG@ \
+ -DWISH=\"${WISH}\" -DFRODOLIBDIR=\"${FRODOLIBDIR}\"
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-Src_configure,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/configure.orig Wed Jul 5 14:45:45 2000
+++ Src/configure Wed Jul 5 14:46:20 2000
@@ -917,7 +917,7 @@ fi
if [ x"$GXX" = "xyes" ]; then
- CFLAGS="-O3 -g -fomit-frame-pointer -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes"
+ CFLAGS="${CFLAGS} -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes"
fi
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown

View File

@ -0,0 +1,41 @@
$OpenBSD: patch-Src_main_cpp,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/main.cpp.orig Wed Aug 6 20:56:31 1997
+++ Src/main.cpp Thu Jul 6 19:07:47 2000
@@ -36,7 +36,7 @@ char AppDirPath[1024]; // Path of applic
*/
#ifndef __PSXOS__
-bool Frodo::load_rom_files(void)
+bool Frodo::do_load_rom_files(void)
{
FILE *file;
@@ -89,6 +89,28 @@ bool Frodo::load_rom_files(void)
}
return true;
+}
+
+bool Frodo::load_rom_files(void)
+{
+ int fd = open(".", O_RDONLY);
+
+ if (fd == -1) {
+ ShowRequester("Can't lock current directory", "Quit");
+ return false;
+ }
+
+ char *d = getenv("FRODOLIBDIR");
+ if (d == NULL)
+ d = FRODOLIBDIR;
+ if (chdir(d) != 0) {
+ ShowRequester("Can't access Frodo Lib Directory", "Quit");
+ return false;
+ }
+ bool result = do_load_rom_files();
+ fchdir(fd);
+ close(fd);
+ return result;
}
#endif

View File

@ -0,0 +1,11 @@
$OpenBSD: patch-Src_main_h,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/main.h.orig Wed Aug 6 20:56:31 1997
+++ Src/main.h Thu Jul 6 19:09:54 2000
@@ -119,6 +119,7 @@ public:
private:
bool load_rom_files(void);
+ bool do_load_rom_files(void);
static char prefs_path[256]; // Pathname of current preferences file
};

View File

@ -0,0 +1,13 @@
$OpenBSD: patch-Src_sysdeps_h,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- Src/sysdeps.h.orig Wed Jul 5 14:12:02 2000
+++ Src/sysdeps.h Wed Jul 5 14:12:33 2000
@@ -63,7 +63,9 @@ extern "C"
#endif
#ifdef HAVE_SYS_MOUNT_H
+#define export exp
#include <sys/mount.h>
+#undef export
#endif
#ifdef HAVE_SYS_STATFS_H

View File

@ -0,0 +1,51 @@
$OpenBSD: patch-TkGui_tcl,v 1.1.1.1 2000/07/07 14:29:51 espie Exp $
--- TkGui.tcl.orig Wed Aug 6 20:56:34 1997
+++ TkGui.tcl Fri Jul 7 16:11:41 2000
@@ -1,9 +1,9 @@
-#!/usr/local/bin/X11/wish
+#!/usr/local/bin/wish8.3
# Frodo Tk GUI by Lutz Vieweg <lkv@mania.robin.de>
# requires Tk >= 4.1
-package require Tk 4.1
+#package require Tk 4.1
set prefname "$env(HOME)/.frodorc"
@@ -476,7 +476,7 @@ pack .drives.d8.dir -side left -expand f
radiobutton .drives.d8.t64 -text "T64" -variable pref(DriveType8) -value "T64" \
-command {
- set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.(t64|lnx)" $pref(DrivePath8)]
+ set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.{t64,lnx}" $pref(DrivePath8)]
if {$erg != ""} { set pref(DrivePath8) $erg ; Change }
}
pack .drives.d8.t64 -side left -expand false
@@ -509,7 +509,7 @@ pack .drives.d9.dir -side left -expand f
radiobutton .drives.d9.t64 -text "T64" -variable pref(DriveType9) -value "T64" \
-command {
- set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.(t64|lnx)" $pref(DrivePath9)]
+ set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.{t64,lnx}" $pref(DrivePath9)]
if {$erg != ""} { set pref(DrivePath9) $erg ; Change }
}
pack .drives.d9.t64 -side left -expand false
@@ -543,7 +543,7 @@ pack .drives.d10.dir -side left -expand
radiobutton .drives.d10.t64 -text "T64" -variable pref(DriveType10) -value "T64" \
-command {
- set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.(t64|lnx)" $pref(DrivePath10)]
+ set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.{t64,lnx}" $pref(DrivePath10)]
if {$erg != ""} { set pref(DrivePath10) $erg ; Change }
}
pack .drives.d10.t64 -side left -expand false
@@ -577,7 +577,7 @@ pack .drives.d11.dir -side left -expand
radiobutton .drives.d11.t64 -text "T64" -variable pref(DriveType11) -value "T64" \
-command {
- set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.(t64|lnx)" $pref(DrivePath11)]
+ set erg [fs_FileSelect .fs 0 "Choose T64/LYNX archive file" "*.{t64,lnx}" $pref(DrivePath11)]
if {$erg != ""} { set pref(DrivePath11) $erg ; Change }
}
pack .drives.d11.t64 -side left -expand false

View File

@ -0,0 +1 @@
Commodore 64 emulator

28
emulators/frodo/pkg/DESCR Normal file
View File

@ -0,0 +1,28 @@
Frodo is a freeware C64 emulator for BeOS, Unix, MacOS, AmigaOS, Win32
and RiscOS systems and the world's first C64 emulator not bearing a
"64" in its name. :-) (No, it has absolutely nothing to do with
frodo.hiof.no, that's a pure coincidence.)
Frodo was developed to reproduce the graphics of games and demos
better than the existing C64 emulators. Therefore Frodo has relatively
high system requirements: It should only be run on systems with at
least a PowerPC/Pentium/68060. But on the other hand, Frodo can
display raster effects correctly that only result in a flickering mess
with other emulators.
Frodo comes in three flavours: The "normal" Frodo with a line-based
emulation, the improved line-based emulation "Frodo PC", and the
single-cycle emulation Frodo SC that is slower but far more
compatible.
In addition to a precise 6510/VIC emulation, Frodo features a
processor-level 1541 emulation that is even able to handle about 95%
of all fast loaders. There is also a faster 1541 emulation for four
drives in .d64/x64 disk images, .t64/LYNX archives, or directories of
the host system.
The current OpenBSD port does not support sound yet (there is a bug in
Frodo's code), nor a joystick.
See ${HOMEPAGE} for details.

46
emulators/frodo/pkg/PLIST Normal file
View File

@ -0,0 +1,46 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2000/07/07 14:29:52 espie Exp $
bin/frodo
bin/frodoSC
bin/frodoPC
lib/frodo/1541 ROM
lib/frodo/64prgs/3fff
lib/frodo/64prgs/colorbars
lib/frodo/64prgs/d011h3
lib/frodo/64prgs/dadb
lib/frodo/64prgs/de00all
lib/frodo/64prgs/dycp
lib/frodo/64prgs/fld
lib/frodo/64prgs/lrborder
lib/frodo/64prgs/sprsync
lib/frodo/64prgs/stretch
lib/frodo/64prgs/tech-tech
lib/frodo/64prgs/text26
lib/frodo/Basic ROM
lib/frodo/Char ROM
lib/frodo/Frodo Logo
lib/frodo/Kernal ROM
lib/frodo/TkGui.tcl
share/doc/frodo/CHANGES
share/doc/frodo/Main.html
share/doc/frodo/author.html
share/doc/frodo/bugreports.html
share/doc/frodo/demoprograms.html
share/doc/frodo/emulwindow.html
share/doc/frodo/files.html
share/doc/frodo/flavours.html
share/doc/frodo/future.html
share/doc/frodo/history.html
share/doc/frodo/installation.html
share/doc/frodo/kernal.html
share/doc/frodo/keyboard.html
share/doc/frodo/legalmush.html
share/doc/frodo/overview.html
share/doc/frodo/sam.html
share/doc/frodo/settings.html
share/doc/frodo/systemspecific.html
share/doc/frodo/technicalinfo.html
share/doc/frodo/thanks.html
share/doc/frodo/whatsnew.html
@dirrm share/doc/frodo
@dirrm lib/frodo/64prgs
@dirrm lib/frodo