Added the launcher and files.

This commit is contained in:
2015-10-05 17:58:08 -04:30
parent d8736a5b0f
commit 6ec0fb49ab
16 changed files with 448 additions and 1 deletions

View File

@@ -1,2 +1,24 @@
# ACK-Launcher
A clone of the ACK Launcher application in TCL.
A clone of the [Adventure Creation Kit](http://mozomedia.com/ack/) Launcher application in TCL.
## Dependencies
* Adventure Creation Kit
* Dosbox
* Wish 8.5
## Installation
- Copy the "ack_launcher.tcl" file and the "launcher_icons" folder into
the parent directory of your ACK installation.
- Copy the dosbox.conf file into your ACK folder.
- The directory structure must be like this:
```
Parent directory
|--- ack_launcher.tcl
|--- launcher_icons
|--- ACK
|--- dosbox.conf
```
## Notes
The launcher icons and Adventure Creation Kit are © Chris Hopkins

229
ack_launcher.tcl Executable file
View File

@@ -0,0 +1,229 @@
#! /usr/bin/env wish
# Copyright (c) 2015, Miguel Angel Astor Romero
# All rights reserved.
# See the enclosed LICENSE file for more information.
frame .banner -relief flat
frame .info_f -relief flat
frame .buttons -relief flat -pady 5
frame .bottom -relief flat -pady 5
pack .banner -fill both -expand 1
pack .info_f -fill both -expand 1
pack .buttons -fill both -expand 1
pack .bottom -fill both -expand 1
image create photo bar1 -format GIF -file "launcher_icons/banner1.gif"
image create photo bar2 -format GIF -file "launcher_icons/banner2.gif"
image create photo con -format GIF -file "launcher_icons/configure.gif"
image create photo cre -format GIF -file "launcher_icons/create.gif"
image create photo fon -format GIF -file "launcher_icons/font.gif"
image create photo imp -format GIF -file "launcher_icons/import.gif"
image create photo mac -format GIF -file "launcher_icons/macros.gif"
image create photo map -format GIF -file "launcher_icons/map.gif"
image create photo mes -format GIF -file "launcher_icons/messages.gif"
image create photo obj -format GIF -file "launcher_icons/object.gif"
image create photo pep -format GIF -file "launcher_icons/people.gif"
image create photo run -format GIF -file "launcher_icons/run.gif"
image create photo til -format GIF -file "launcher_icons/tile.gif"
label .banner.bimg1 -image bar1
label .banner.bimg2 -image bar2
label .banner.just -font {-size 9 -weight bold} \
-text " Just launch ACK: "
checkbutton .banner.mouse_c -text "Enable mouse (experimental)" -onvalue 1 \
-offvalue 0 -variable mouse_var
label .banner.sclabel -text "Graphic Scaler: "
ttk::combobox .banner.scaler -width 10
.banner.scaler configure -values [ list none normal2x normal3x advmame2x \
advmame3x hq2x hq3x 2xsai super2xsai supereagle advinterp2x \
advinterp3x tv2x tv3x rgb2x rgb3x scan2x scan3x ]
.banner.scaler configure -state readonly
.banner.scaler set "hq3x"
label .banner.fslabel -text "ALT + ENTER toggles fullscreen while running ACK"
label .sep1 \
-text "------------------------------------------------------------------------"
label .sep2 \
-text "------------------------------------------------------------------------"
label .info1 -font {-size 9 -weight bold} \
-text "... or launch multiple ACK editors"
label .info2 -font {-size 9 -weight bold} \
-text "in separate windows:"
label .info3 -text "- Pick adventure with \"Select Adventure\" dropdown"
label .info4 -text "- Click buttons below to launch editors"
label .info5 -text "- Press TAB to save changes in current editor. Then"
label .info6 -text "switch to another editor window and press TAB to"
label .info7 -text "update it with the changes made in the previous"
label .info8 -text "editor. (You may need to use a selection menu"
label .info9 -text "before changes will appear.)"
label .buttons.butimg1 -image cre
label .buttons.butimg2 -image con
label .buttons.butimg3 -image til
label .buttons.butimg4 -image map
label .buttons.butimg5 -image imp
label .buttons.butimg6 -image fon
label .buttons.butimg7 -image obj
label .buttons.butimg8 -image pep
label .buttons.butimg9 -image mes
label .buttons.butimg10 -image mac
label .buttons.butimg11 -image run
button .banner.b01 -text "Go!" -command "ack_base" -width 10
button .buttons.b02 -text "Create Adventure" -command "ackmod -n" -width 15
button .buttons.b03 -text "Configure Adventure" \
-command "ackmod -c" -width 15
button .buttons.b04 -text "Edit Objects" -command "ackmod -o" -width 15
button .buttons.b05 -text "Tile Editor" -command "ackmod -g" -width 15
button .buttons.b06 -text "Edit People" -command "ackmod -p" -width 15
button .buttons.b07 -text "Map Editor" -command "ackmod -m" -width 15
button .buttons.b08 -text "Edit Messages" -command "ackmod -t" -width 15
button .buttons.b09 -text "Import / Export" -command "ackmod -i" -width 15
button .buttons.b10 -text "Edit Macros" -command "ackmod -x" -width 15
button .buttons.b11 -text "Edit Font" -command "ackmod -f" -width 15
button .buttons.b12 -text "Run Adventure" -command "ackmod -r" -width 15
button .bottom.b13 -text "ACK Manual" -command "game_manual" -width 10
button .bottom.b14 -text "Open Game Folder" -command "game_dir" -width 15
button .bottom.b15 -text "Visit ACK Site" -command "home_page" -width 10
button .buttons.b89 -text "Refresh Adventures" -command "refresh" -width 15
label .buttons.advlbl -text "Select Adventure:"
ttk::combobox .buttons.advents
.buttons.advents configure -values [ concat ".. " [ exec ls -1 "ACK/GAMES/" ] ]
.buttons.advents configure -state readonly
.buttons.advents set ".."
bind .buttons.advents <<ComboboxSelected>> {
if { [.buttons.advents get] == ".." } {
disable_buttons
} else {
enable_buttons
}
}
grid .banner -row 0 -column 0
grid .banner.bimg1 -row 0 -column 0 -rowspan 5
grid .banner.just -row 0 -column 1 -columnspan 2
grid .banner.b01 -row 1 -column 1 -columnspan 2
grid .banner.bimg2 -row 0 -column 3 -rowspan 5
grid .banner.mouse_c -row 3 -column 1 -columnspan 2
grid .banner.sclabel -row 5 -column 1
grid .banner.scaler -row 5 -column 2
grid .banner.fslabel -row 6 -column 0 -columnspan 4
grid .sep1 -row 1 -column 0
grid .info_f -row 2 -column 0
pack .info1 -in .info_f
pack .info2 -in .info_f
pack .info3 -in .info_f -anchor w
pack .info4 -in .info_f -anchor w
pack .info5 -in .info_f -anchor w
pack .info6 -in .info_f -anchor w
pack .info7 -in .info_f -anchor w
pack .info8 -in .info_f -anchor w
pack .info9 -in .info_f -anchor w
grid .buttons -row 3 -column 0
grid .buttons.advlbl -row 0 -column 1 -columnspan 2
grid .buttons.advents -row 1 -column 1 -columnspan 2
grid .buttons.butimg1 -row 2 -column 0
grid .buttons.butimg2 -row 3 -column 0
grid .buttons.butimg3 -row 4 -column 0
grid .buttons.butimg4 -row 5 -column 0
grid .buttons.butimg5 -row 6 -column 0
grid .buttons.butimg6 -row 7 -column 0
grid .buttons.b02 -row 2 -column 1
grid .buttons.b03 -row 3 -column 1
grid .buttons.b05 -row 4 -column 1
grid .buttons.b07 -row 5 -column 1
grid .buttons.b09 -row 6 -column 1
grid .buttons.b11 -row 7 -column 1
grid .buttons.b89 -row 2 -column 2
grid .buttons.b04 -row 3 -column 2
grid .buttons.b06 -row 4 -column 2
grid .buttons.b08 -row 5 -column 2
grid .buttons.b10 -row 6 -column 2
grid .buttons.b12 -row 7 -column 2
grid .buttons.butimg7 -row 3 -column 3
grid .buttons.butimg8 -row 4 -column 3
grid .buttons.butimg9 -row 5 -column 3
grid .buttons.butimg10 -row 6 -column 3
grid .buttons.butimg11 -row 7 -column 3
grid .sep2 -row 4 -column 0
grid .bottom -row 5 -column 0
grid .bottom.b13 -row 0 -column 0
grid .bottom.b14 -row 0 -column 1
grid .bottom.b15 -row 0 -column 2
proc refresh {} {
.buttons.advents configure -values [ concat ".. " [ exec ls -1 "GAMES/" ] ]
}
proc ack_base {} {
set scaler [ .banner.scaler get ]
exec dosbox -scaler $scaler -conf dosbox.conf -noconsole -c "ack.bat -exit" &
}
proc ackmod module {
global mouse_var
if { $module == "-r" } then {
set scaler [ .banner.scaler get ]
} else {
set scaler "hq2x"
}
if { $mouse_var == 1 && $module == "-r" } then {
set use_mouse "-mouse"
} else {
set use_mouse ""
}
set command [ concat "ackmod $module" [ \
concat [ .buttons.advents get ] "$use_mouse" ] ]
exec dosbox -scaler $scaler -conf dosbox.conf -noconsole -c $command &
}
proc game_dir {} {
if { [.buttons.advents get] != ".." } then {
set game [ .buttons.advents get ]
exec nautilus "GAMES/$game" &
}
}
proc game_manual {} { exec evince "MANUAL.PDF" & }
proc home_page {} { exec firefox "http://mozomedia.com/ack/" & }
proc disable_buttons {} {
.buttons.b03 configure -state disabled
.buttons.b04 configure -state disabled
.buttons.b05 configure -state disabled
.buttons.b06 configure -state disabled
.buttons.b07 configure -state disabled
.buttons.b08 configure -state disabled
.buttons.b09 configure -state disabled
.buttons.b10 configure -state disabled
.buttons.b11 configure -state disabled
.buttons.b12 configure -state disabled
.bottom.b14 configure -state disabled
}
proc enable_buttons {} {
.buttons.b03 configure -state normal
.buttons.b04 configure -state normal
.buttons.b05 configure -state normal
.buttons.b06 configure -state normal
.buttons.b07 configure -state normal
.buttons.b08 configure -state normal
.buttons.b09 configure -state normal
.buttons.b10 configure -state normal
.buttons.b11 configure -state normal
.buttons.b12 configure -state normal
.bottom.b14 configure -state normal
}
wm resizable . false false
wm title . "ACK Launcher"
disable_buttons
set mouse_var 0
cd "ACK"

196
dosbox.conf Normal file
View File

@@ -0,0 +1,196 @@
# This is the configurationfile for DOSBox 0.72.
# Lines starting with a # are commentlines.
# They are used to (briefly) document the effect of each option.
[sdl]
# fullscreen -- Start dosbox directly in fullscreen.
# fulldouble -- Use double buffering in fullscreen.
# fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768).
# windowresolution -- Scale the window to this size IF the output device supports hardware scaling.
# output -- What to use for output: surface,overlay,opengl,openglnb,ddraw.
# autolock -- Mouse will automatically lock, if you click on the screen.
# sensitiviy -- Mouse sensitivity.
# waitonerror -- Wait before closing the console if dosbox has an error.
# priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest,pause (when not focussed).
# Second entry behind the comma is for when dosbox is not focused/minimized.
# mapperfile -- File used to load/save the key/event mappings from.
# usescancodes -- Avoid usage of symkeys, might not work on all operating systems.
fullscreen=false
fulldouble=true
fullresolution=original
windowresolution=original
output=surface
autolock=true
sensitivity=100
waitonerror=true
priority=higher,pause
mapperfile=mapper.txt
usescancodes=false
[dosbox]
# language -- Select another language file.
# memsize -- Amount of memory DOSBox has in megabytes.
# machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga.
# captures -- Directory where things like wave,midi,screenshot get captured.
language=
machine=vga
captures=capture
memsize=16
[render]
# frameskip -- How many frames DOSBox skips before drawing one.
# aspect -- Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler -- Scaler used to enlarge/enhance low resolution modes.
# Supported are none,normal2x,normal3x,advmame2x,advmame3x,hq2x,hq3x,
# 2xsai,super2xsai,supereagle,advinterp2x,advinterp3x,
# tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x.
# If forced is appended (like scaler=hq2x forced), the scaler will be used
# even if the result might not be desired.
frameskip=0
aspect=true
scaler=hq3x
[cpu]
# core -- CPU Core used in emulation: normal,simple,dynamic,auto.
# auto switches from normal to dynamic if appropriate.
# cycles -- Amount of instructions DOSBox tries to emulate each millisecond.
# Setting this value too high results in sound dropouts and lags.
# You can also let DOSBox guess the correct value by setting it to max.
# The default setting (auto) switches to max if appropriate.
# cycleup -- Amount of cycles to increase/decrease with keycombo.
# cycledown Setting it lower than 100 will be a percentage.
core=auto
cycles=9000
cycleup=500
cycledown=20
[mixer]
# nosound -- Enable silent mode, sound is still emulated though.
# rate -- Mixer sample rate, setting any devices higher than this will
# probably lower their sound quality.
# blocksize -- Mixer block size, larger blocks might help sound stuttering
# but sound will also be more lagged.
# prebuffer -- How many milliseconds of data to keep on top of the blocksize.
nosound=false
rate=22050
blocksize=1024
prebuffer=1000
[midi]
# mpu401 -- Type of MPU-401 to emulate: none, uart or intelligent.
# device -- Device that will receive the MIDI data from MPU-401.
# This can be default,alsa,oss,win32,coreaudio,none.
# config -- Special configuration options for the device. In Windows put
# the id of the device you want to use. See README for details.
mpu401=intelligent
device=default
config=
[sblaster]
# sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16.
# sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster.
# mixer -- Allow the soundblaster mixer to modify the DOSBox mixer.
# oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3.
# On auto the mode is determined by sblaster type.
# All OPL modes are 'Adlib', except for CMS.
# oplrate -- Sample rate of OPL music emulation.
sbtype=sbpro1
sbbase=220
irq=5
dma=1
[gus]
# gus -- Enable the Gravis Ultrasound emulation.
# gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the
# Gravis Ultrasound. (Same IRQ's and DMA's are OK.)
# gusrate -- Sample rate of Ultrasound emulation.
# ultradir -- Path to Ultrasound directory. In this directory
# there should be a MIDI directory that contains
# the patch files for GUS playback. Patch sets used
# with Timidity should work fine.
gus=true
gusrate=22050
gusbase=240
irq1=5
irq2=5
dma1=3
dma2=3
ultradir=C:\ULTRASND
[speaker]
# pcspeaker -- Enable PC-Speaker emulation.
# pcrate -- Sample rate of the PC-Speaker sound generation.
# tandy -- Enable Tandy Sound System emulation (off,on,auto).
# For auto Tandysound emulation is present only if machine is set to tandy.
# tandyrate -- Sample rate of the Tandy 3-Voice generation.
# disney -- Enable Disney Sound Source emulation. Covox Voice Master and Speech Thing compatible.
pcspeaker=true
pcrate=22050
tandy=auto
tandyrate=22050
disney=true
[joystick]
# joysticktype -- Type of joystick to emulate: auto (default), none,
# 2axis (supports two joysticks,
# 4axis (supports one joystick, first joystick used),
# 4axis_2 (supports one joystick, second joystick used),
# fcs (Thrustmaster), ch (CH Flightstick).
# none disables joystick emulation.
# auto chooses emulation depending on real joystick(s).
# timed -- enable timed intervals for axis. (false is old style behaviour).
# autofire -- continuously fires as long as you keep the button pressed.
# swap34 -- swap the 3rd and the 4th axis. can be useful for certain joysticks.
# buttonwrap -- enable button wrapping at the number of emulated buttons.
joysticktype=auto
timed=true
autofire=false
swap34=false
buttonwrap=true
[serial]
# serial1-4 -- set type of device connected to com port.
# Can be disabled, dummy, modem, nullmodem, directserial.
# Additional parameters must be in the same line in the form of
# parameter:value. Parameter for all types is irq.
# for directserial: realport (required), rxdelay (optional).
# for modem: listenport (optional).
# for nullmodem: server, rxdelay, txdelay, telnet, usedtr,
# transparent, port, inhsocket (all optional).
# Example: serial1=modem listenport:5000
serial1=dummy
serial2=dummy
serial3=disabled
serial4=disabled
[dos]
# xms -- Enable XMS support.
# ems -- Enable EMS support.
# umb -- Enable UMB support.
# keyboardlayout -- Language code of the keyboard layout (or none).
xms=true
ems=true
umb=true
keyboardlayout=none
[ipx]
# ipx -- Enable ipx over UDP/IP emulation.
ipx=false
[autoexec]
# Lines in this section will be run at startup.
mount c ./
c:

BIN
launcher_icons/banner1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
launcher_icons/banner2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
launcher_icons/create.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
launcher_icons/font.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
launcher_icons/import.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
launcher_icons/macros.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
launcher_icons/map.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
launcher_icons/messages.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
launcher_icons/object.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
launcher_icons/people.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
launcher_icons/run.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
launcher_icons/tile.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB