this target build a console friendly version of the windows binary.
tagged with development indicator because we don't ever want to release
these as an actual version
removed some old and unused make targets
BusStuff and CoProc functions are called a lot and type assertions are
moderately expensive and noticeable when done frequently. by making the
assertion in when the cartridge is inserted we can reduce the test to a
simple boolean comparison
the font rendering used for build and release target will use the
freetype library unless the go version indicates that it's being built
on MacOS with an M2 CPU (darwin/arm64)
for some reason not yet fully understand, using freetype causes an issue
on darwin/arm64
go-wav, statsview and memviz all indirectly used gopkg.in/yaml.v3 which
I do not want to depend upon
WAV functionality is no longer available for wav writing or reading
(supercharger tapes). will try to reintroduce functionality in the
future
Makefile updated to build with freetype by default.
building without the imguifreetype build tag will cause the application
to use the default proggyclean font
embeds JetBrainMono-Regular.ttf under the OFL-1.1 License
added -fpscap to emulate() function (used by both playmode and the
debugger) making it a good alternative to the -display option
getting performance mode to work with an increasingly complex
gui-emulation communication just isn't worth it. it would make the code
too complex.
this paves the way for removing the Emulation interface and using a
straight-forward Emulation type, which will be current Debugger type
renamd. the Debugger type is currently handling the playmode, performing
well and allowing tighter integration of the debugger and playmode.
the thumbnailer does the actual emulation in a new goroutine so there's
no lag here but it's necessary to PushRawEvent() so that
rewind.GetState() doesn't race
switch between debugger and playmode with F6 or backtick key
pakage debugger remains for now but it will be renamed to emulator or
something like that. playmode package removed.
commandline options for both debugger and playmode are the same
currently, with some playmode features being lost (temporarily)
like peripheral event and cartridge event notifications but placed in
the top-left corner of the screen
fixed race condition by calling playmode Pause() from the GUI thread
The error mecahnism worked but the VCSHook solution is more general and
has the added benefit of keeping all special-cartridge-handling code
together and keeping it out of the input-loop
this simplifies the sdlimgui/screen type in addition to the NewFrame()
and Resize() functions in the PixelRenderer interface
will allow better overview and summarising of television performance
playscreen F7 window shows "total scanlines" rather than "visible
scanlines"
added includeDetail argument. this adds the Go version string and time
parameted to the filname of any profile file (specified by the profile
parameter)
simplified GUI creation process in main goroutine sync
corrected Makefile spellings
added mam preferences to prefs window. reorganised prefs window.
removed hardware prefs from PREFS command and lazy system. the lazy
system doesn't seem to be required and it makes more sense for the PREFS
command to deal solely with debugging topics.
preferences window visible in playmode on (F8). FPS indicator now on F7
soundfile (WAV or MP3) will stop when cartridge stops looking for tape
data and will rewind when it reaches the end of the file.
tape position slider in debugger