Skip to content

Commit d35004c

Browse files
committed
update to 1.2.7-Beta
1 parent f8dabcc commit d35004c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+14877
-5462
lines changed

.gitignore

+14-1
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,28 @@ Network Trash Folder
2323
Temporary Items
2424
.apdisk
2525

26+
go
27+
go-*
28+
*valgrind*
2629
.env-*
2730
*.bak
2831
*.exe
32+
*.dll
2933
*.o
3034
*.a
3135
*.dyld
3236
*.dc42
3337
*.tar
34-
*.tar.xz
38+
*.xz
39+
*.cpio
40+
*.bz2
41+
*.gz
42+
*.tgz
43+
*.dart
3544
*.image
3645
bin/lisaem
3746
bin/*.conf
47+
lisaem-output*
3848
experiments
3949
experiments/*
4050
experimental
@@ -47,6 +57,9 @@ cpu68k/cpu68k-?.c
4757
cpu68k/def68k
4858
cpu68k/gen68k
4959
include/built_by.h
60+
obj/get-uintX-types
5061
src/include/machine.h
5162
src/tools/include/machine.h
5263
src/lib/libdc42/include/machine.h
64+
hashes.txt
65+
output.txt

ChangeLog

+83
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,89 @@ Lisa Emulator Change History http://lisaem.sunder.net/
88
------------------------------------------------------------------------------
99
--- 1.2.7 Released on (TBA) (Major release for all platforms)
1010

11+
2020.02.22 - macos x mouse scale fixes
12+
13+
2020.02.21 - windows mouse location and other fixes
14+
15+
2020.02.18 - hqx now works on windows, though there's some flashing, and mouse
16+
location is off, even in 4k mode
17+
- fixed skinless mode centering
18+
19+
2020.02.17 - fixed GTK mouse location for all supported scaling modes
20+
21+
2020.02.16 - fixed skinless mouse coordinates for 50%
22+
- fixed menu shortcuts
23+
24+
2020.02.12 - adding code to support libSDL2 because wxSound on all modern GTK
25+
is broken even when using osspd-pulseaudio/, why the wxDevs don't
26+
care to support pulseaudio natively is a great question! I might
27+
switch to openal eventually as well even though it's deprecated
28+
on future macos X.
29+
30+
2020.02.09 - added kiosk mode + skinless centered origin vs top-left command
31+
line options for raspberry pi Lisa case modes, this is equivalent
32+
to: `-F -s- -p -q --o-`
33+
CLI options are now:
34+
35+
Usage: lisaem [-h] [-p] [-q] [-f <str>] [-d] [-F[-]] [-z <double>]
36+
[-s[-]] [-c <str>] [-k] [-o[-]]
37+
-h, --help show this help message
38+
-p, --power power on as soon as LisaEm is launched
39+
-q, --quit quit after Lisa shuts down
40+
-f, --floppy=<str> boot from which floppy image ROMless only
41+
-d, --drive boot from motherboard ProFile/Widget ROMless only
42+
-F, --fullscreen fullscreen mode (-F- to turn off fullscreen)
43+
-z, --zoom=<double> set zoom level (0.50, 0.75, 1.0, 1.25,... 3.0)
44+
-s, --skin turn on skin
45+
-c, --config=<str> Open which lisaem config file
46+
-k, --kiosk kiosk mode (suitable for RPi Lisa case)
47+
-o, --originctr skinless mode: center video(-o) vs topleft(-o-)
48+
49+
50+
- ipct bug was in var.h INVALIDATE_IPC macro which didn't wipe mt->table
51+
after free_ipct().
52+
53+
2020.02.07 - found a bug where IPCT of the currently executing instruction is
54+
being freed incorrectly.
55+
56+
2020.02.06 - found an off by one in the init_initial_ipcts() which might be
57+
causing memory instability. Found a memory leak in
58+
cpu68k_makeipclist.
59+
60+
2020.01.31 - Tom Stepleton reported a bug where the mouse keeps reporting even
61+
when not moving after the first move. Fixed.
62+
63+
2020.01.26 - looks like I didn't need to build all that hidpi_scale code as
64+
dc.SetUserScale() was available for the same, refactored to do
65+
it the right way. Fixed some minor new and old bugs.
66+
67+
2020.01.25 - found a workaround for the black screen, but it's slower.
68+
rewrote hq3x to actually do 2x3y, the result is beautiful, and
69+
it even converts the 50% gray patterns into actual gray.
70+
71+
2020.01.20 - noticed some memory clobbering in either LisaEm or libdc42, but
72+
have not found the section of code where it happens. Added
73+
valgrind to build script, addressing output of valgrind, looks
74+
like I need to resize the wxBitmap I'm passing to hq3x.cpp
75+
76+
2020.01.14 - redoing hq3x code, various fixes to build scripts, not able to
77+
get proper hq3x display when using larger sizes, wx shows a black
78+
screen On_Paint even though both the source and target DC's pass
79+
IsOk.
80+
81+
2019.12.25 - fixed macosx build/install for bashbuild, progress bar is still
82+
way off
83+
84+
2019.12.24 - various fixes, centralized upx/strip to a bash fn, removed mono-
85+
lithic compiles, moved them QJOB/WAITQALL as per TODOs.
86+
lowercased old 1.3.0 build uppercase function names, more cleanup
87+
88+
2019.12.23 - Windows, fixed install, LisaEm can now find its skins and tries
89+
to start, but dies on power on if HQ3X mode is used. AAG mode
90+
works. There's also some flashes and some display artifacts,
91+
shutdown causes the emulator to quit, or more likely crash.
92+
Sound does not seem to work.
93+
1194
2019.12.16 - Windows compiles are starting to work though skins aren't found
1295
Can't use pre-compiled wxmsw binaries, added a Cygwin compile
1396
script to the scripts directory and changed Windows.sys and some

LisaEm

-1
This file was deleted.

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ me:
1616

1717
a:
1818

19-
sandwitch: me a
19+
sandwich: me a
2020
[ `id -u` -ne 0 ] && echo "What? Make it yourself." || echo Okay
2121

2222
love:

README.md

100755100644
+60-106
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,45 @@
11
![LisaEm Logo](resources/lisaem-banner.png)
22

3-
###Copyright © 2019 by Ray Arachelian, All Rights Reserved.
4-
###Released under the terms of the GNU Public License v3.
3+
### Copyright © 2020 by Ray Arachelian, All Rights Reserved.
4+
### Released under the terms of the GNU Public License v3.
55

66
------------------------------------------------------------------------------
77
Lisa Emulator Source Build README http://lisaem.sunder.net/
88
------------------------------------------------------------------------------
99

10+
## What is this thing?
11+
12+
This is the source code for LisaEm 1.2.7. LisaEm is a emulator that runs on a wide variety of modern and somewhat old systems by means of the wxWidgets framework, implementing an emulation of the (in)famous Apple Lisa Computer. The Apple Lisa computer is the predecesor of the Mac and the "inspiration" of many GUI environments from Windows 1.x to GEOS. Many of the original ideas of the modern GUI were first envisioned in the Apple Lisa, so it's a historically very important machine.
13+
14+
This document contains a few brief updates that are also found in the ChangeLog file, as well as some information on how to compile wxWidgets and LisaEm.
15+
(The updates will go away once the bugs are removed as ChangeLog is better suited for them.)
16+
17+
## 2020.02.22
18+
19+
I've made many fixes, but there are still about a dozen bugs left. Most
20+
notably when the scale is changed the window size is wrong. On macos x
21+
it sometimes disappears entirely because it goes to size zero. A temporary
22+
work around is to install the Spectacle App from https://www.spectacleapp.com/
23+
and use the Command+Option+F to maximize the window. Normal macos x without
24+
this leaves you only with the Window >> Maximize menu.
25+
26+
There's still some refresh issues with macos X as well.
27+
28+
Zoom larger than 2.0 on macos x causes LisaEm to lock up, so I've disabled it
29+
for this platform only.
30+
31+
2Y and 2X,3Y modes still have mouse location issues
32+
33+
34+
## 2019.12.25
35+
36+
Cleaned up a bunch of stuff and fixed builds on both Windows and macos X.
37+
Both now install properly. There are still some bugs. Windows crashes on the
38+
hq3x renderer, and quits (I think on sound), but can now find its resources.
39+
Also cleaned up the old upper case function names in bashbuild that were a
40+
holdover from the 1.3.0 days.
41+
Added initial FreeBSD.sys support.
42+
1043
## 2019.12.12
1144
I rewrote a lot of the 1.3.0 build scripts and separated the fn's out to their
1245
own include files, standardized the build scripts to the new "buildbash"
@@ -25,7 +58,7 @@ Widgets, I'd welcome any insights you may have.
2558

2659
There's a lot of stuff to clean up and debug, especially these README files.
2760

28-
##2019.10.13 Finally got it working on macos X 10.11+ but had to recompile
61+
## 2019.10.13 Finally got it working on macos X 10.11+ but had to recompile
2962
both wxWidgets and LisaEm with -stdlib=libc++, and LisaEm with -lstdc++.6,
3063
there are still lots of bugs, there are stubs for HQX but this feature is
3164
incomplete so not yet included in the code. I've added a scripts directory
@@ -34,7 +67,7 @@ is needed on macos X, and certainly I need to rewrite all the Windows building
3467
code.
3568

3669

37-
##2019.09.29 This is a developer grade preview, you can expect tons of bugs and
70+
## 2019.09.29 This is a developer grade preview, you can expect tons of bugs and
3871
incomplete features, likely it will turn into a release in a month or two
3972
depending on free time, etc.
4073

@@ -82,126 +115,47 @@ through a few beta and release-candidate versions on win10 and macosx, the
82115
final 1.2.7 will be released in binary form as well.
83116

84117
------------------------------------------------------------------------------
118+
## Special steps for Windows:
85119

86-
##Compiling for Linux:
87-
88-
You will need netpbm as well as wxWdigets 3.0.4-3.1.2 installed. Do not use
89-
system provided wxWidgets, but rather build your own using the scripts in the
90-
scripts directory.
91-
92-
You will want to install/compile wxWidgets without the
93-
shared library option.
94-
95-
After installing/compiling wxWidgets, ensure that wx-config
96-
is in your path, cd to the source code directly and run
97-
98-
./build.sh clean build
99-
./build.sh install
100-
101-
102-
This will install the lisaem and lisafsh-tool binaries to
103-
/usr/local/bin, and will install sound files to
104-
/usr/local/share/LisaEm/
105-
106-
If your system has the upx command available, it will
107-
also compress the resulting binary with upx in order to save
108-
space.
109-
110-
```------------------------------------------------------------------------------
111-
On windows and macos x we'll also want a static build so we don't have to ship
112-
a copy of wxWidgets.
113-
114-
It appears that the IDE I depended on, wxDSGN.sourceforge.net hasn't been
115-
updated since 2011, so I'll need to do something else with cygwin and ming64,
116-
so that may complicate things. I could depend on the Ubuntu subsystem, but then
117-
that's likely limited to just the pro versions of windows and not the home ones
118-
so likely I'll continue to depend on cygwin, will have to see.
119-
120-
------------------------------------------------------------------------------```
121-
122-
## Compiling for Raspbian:
123-
124-
**NOTE:** the wx2.8 packages do not work with LisaEm, and custom ones are needed.
125-
Build your own from the scripts dir.
126-
127-
(If your raspbian matches Raspbian GNU/Linux 7
128-
Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux )
129-
130-
or:
131-
132-
Build wxWidgets and LisaEm yourself like so (assuming your user is pi):
133-
(Likely you should use wx3.1.2 and not 2.9.5 - this text is old)
134-
135-
```
136-
sudo -s
137-
apt-get install libgtk-3-dev netpbm upx #upx is optional but will shrink the binary by ~30%
138-
cd ~
139-
VER=2.9.5
140-
TYPE=gtk
141-
cd wxWidgets-${VER}
142-
mkdir build-${TYPE}
143-
cd build-${TYPE}
144-
../configure --enable-unicode --enable-debug --disable-shared --without-expat --without-regexp --disable-richtext \
145-
--with-libtiff=builtin --with-libpng=builtin --with-libjpeg=builtin --with-libxpm=builtin --with-zlib=builtin \
146-
--prefix=/usr/local/wx${VER}-${TYPE} && make && make install
147-
cd ~pi
148-
export PATH=/usr/local/wx2.9.5-gtk/bin:$PATH
149-
export LD_LIBRARY_PATH=/usr/local/wx2.9.5-gtk/lib:/lib:/usr/lib:/usr/local/lib
150-
cd lisaem-1.2.6.2
151-
./build.sh clean --without-static --without-rawbitmap build install
152-
cd ~
153-
chown -R pi ~pi
154-
ln -s /usr/local/share/LisaEm /usr/local/share/lisaem
155-
```
156-
157-
There's a bug where it warns on startup about wxScroll, you can ignore it.
158-
159-
Once LisaEm is built with --with-static, wxWidgets should no longer be needed.
160-
161-
TODO: convert wxWidgets and LisaEm to proper Rpi .debs
162-
------------------------------------------------------------------------------
163-
164-
## Compiling for Mac OS X 10.3 and higher:
120+
If you wish to build for Windows, Cygwin, along with regular gcc and mingw is required.
165121

166-
*NOTE* these are outdated instructions ::TODO:: fix these.
122+
Please examine the two cygwin installation batch files which will setup the appropriate packages. As you'll need to right click on the appropriate one (32 bit vs 64 bit) and run as Administrator, it's highly recommended that you carefully examine what they do.
167123

168-
You will need to download the source code for wxWidgets 2.8.x
169-
from www.wxwidgets.org. After extracting it, you'll need
170-
to modify it as follows:
124+
(The Cygwin installer requires that it be run as Administrator when scripted, otherwise it goes interactive and does not properly select the packages passed to it on the command line.)
171125

126+
These scripts expect to be run from the E:\ drive, and that you've downloaded the Setup.exe for Cygwin and have named it properly as the script expects. Once cygwin is properly installed, copy the LisaEm source tarball (or do a git clone) to your home directory inside of Cygwin.
172127

173-
IMPORTANT!
128+
Next, use the scripts in the scripts directory that build wxWidgets.
174129

175-
In your wxMac-2.8.0 dir, edit the file
130+
## Compiling wxWidgets for your system
176131

177-
include/wx/mac/carbon/chkconf.h
132+
The scripts directory contains several scripts that you could use to build wxWidgets for your system. We will generally link LisaEm statically, especially for macos x and
178133

179134
```
180-
change the line with '#define wxMAC_USE_CORE_GRAPHICS 1'
181-
to '#define wxMAC_USE_CORE_GRAPHICS 0'
135+
build-wx3.1.2-modern-macosx.sh
136+
build-wxwidgets-cygwin-windows.sh
137+
build-wxwidgets-gtk.sh
182138
```
139+
After wxWidgets is installed to `/usr/local/wxsomething`, add `/usr/local/wxsomething/bin` to your path before running the LisaEm build script.
183140

184-
(Many thanks to Brian Foley for finding this!)
141+
## Compiling LisaEm for all platforms:
185142

186-
If you do not do this, the display will look very ugly.
143+
You will need netpbm as well as wxWdigets 3.0.4-3.1.2 installed. Do not use system provided wxWidgets, but rather build your own using the scripts in the scripts directory as mentioned above.
187144

145+
You will want to install/compile wxWidgets **without** the shared library option, except perhaps on GTK systems, but if you do this, it will not be portable except to systems of the same kind and version.
188146

189-
You will want to install/compile wxWidgets without the
190-
shared library option.
191-
147+
After installing/compiling wxWidgets, ensure that wx-config is in your path, cd to the source code directly and run
192148

193149
./build.sh clean build
150+
sudo ./build.sh install
194151

195-
The application will be inside of the source code
196-
directory under ./lisa as LisaEm.app
197-
152+
(Don't use sudo on Cygwin, instead you'll be prompted whether you wish to launch the command in an Administration MinTTY session.)
198153

154+
This will install the lisaem and lisafsh-tool binaries to /usr/local/bin, and will install skins and sound files to /usr/local/share/LisaEm/; on Windows it will be installed to C:\Program Files\Sunder.Net\LisaEm and /Applications for macos.
199155

200-
------------------------------------------------------------------------------
156+
If your system has the upx command available, it will also compress the resulting binary with upx in order to save space, it's a good idea to install this command. (The upx step is disabled for debug-enabled builds as it interferes with gdb.)
201157

202-
## Compiling for win32:
158+
On Windows and macos x we'll also want a static build so we don't have to ship
159+
a copy of wxWidgets along with the app. Of course building for your own system doesn't require that, however the included scripts are setupt to produce static libraries, except for Linux/GTK.
203160

204-
Use the cygwin installer batch files and then extract or clone lisaem in
205-
cygwin and use the download script in the scripts directory before building.
206-
207-
------------------------------------------------------------------------------
161+
OS provided copies of wxWidgets are likely not going to work with LisaEm. Please use the appropriate script in the scripts directory for your system to compile wxWidgets (although as I write this, the wxWidgets 3.0 provided with Ubuntu 18.04 seems to function correctly.)

0 commit comments

Comments
 (0)