Commit graph

134 commits

Author SHA1 Message Date
JetSetIlly 47c7c95fd7 bumped version to 'v0.32.0 pre-release' in Makefile 2024-05-05 20:19:52 +01:00
JetSetIlly 8313ea19b6 bumped version to v0.31.0 in Makefile 2024-05-05 17:01:53 +01:00
JetSetIlly 4cc32c4294 added statsviz patch
statsviz support is presented in the form of a patch file. this is so
that the requirements of the patch don't become part of the project
unecessarily

the statsviz package is only needed for emulator development and including
the additional packages in the BOM creates a false impression of the
requirements (IMO)

patch can be applied with:

   git apply --verbose 0001-statsviz.patch

Makefile has a "patch_file_integrity" target to test that patch files
can still be applied cleanly. ideal for calling from git pre-commit hook

patch was created with:

    git diff > 0001-statsviz.patch
2024-05-04 13:08:10 +01:00
JetSetIlly c7e4423e9a bumped version to 'v0.31.0 pre-release' in Makefile 2024-04-18 19:21:18 +01:00
JetSetIlly b557e570a5 bumped version to v0.30.0 in Makefile 2024-04-17 16:41:11 +01:00
JetSetIlly ddccc67ce7 bumped version to 'v0.30.0 pre-release' in Makefile 2024-02-25 20:04:36 +00:00
JetSetIlly e433281781 bumped version to v0.29.0 in Makefile
disable freetype font rendering for all targets
2024-02-25 19:04:58 +00:00
JetSetIlly 0525b6d4da bumped version to 'v0.29.0 pre-release' in Makefile 2024-01-10 18:49:44 +00:00
JetSetIlly 04f485b157 bumped version to v0.28.0 in Makefile 2024-01-10 18:39:55 +00:00
JetSetIlly 4937c4d866 bumped version to 'v0.28.0 pre-release' in Makefile 2023-11-27 17:58:42 +00:00
JetSetIlly e2665e7957 bumped version to v0.27.0 in Makefile 2023-11-27 08:58:06 +00:00
JetSetIlly 5a4b01fd13 added rendering support for OpenGL2.1
all references to opengl are now made through the renderer interface.
which renderer is to be used is controlled by buildtags

now requires minimum go version of 1.21

CRT preferences and CRT preview in debugger TV window are disabled for
OpenGL2.1
2023-11-20 16:58:32 +00:00
JetSetIlly 89160e44a6 removed tidy as a dependency to generate in Makefile
goimports is not a part of the standard Go distribution
2023-11-09 07:36:06 +00:00
JetSetIlly b48d487643 added version package
Makefile now sets the version string for the project. the version
package tries to set a meaningful version string if the project is not
built with the Makefile

added VERSION command
2023-11-08 22:05:41 +00:00
JetSetIlly 9b2359890c tidied up Makefile
updated .gitignore file to include .DS_Store folder. the current line to
ignore executable files has also been beefed up

corrected profile_cpu and profile_trace arguments - the elf argument is
not supported (or required) for PERFORMANCE mode
2023-11-08 19:04:03 +00:00
JetSetIlly 7de45d3d25 added -elf=none to all profiling invocation of the emulator in the Makefile 2023-09-13 20:14:28 +01:00
JetSetIlly 27df3bd5f5 improved caching of decoded Thumb2 (32bit and FPU) instructions
previously, the cached instructions still required a significant amount
of decoding. the new method captures the state of the decoding much
closer to the variable element of the instruction (eg. using what's in
the register etc.)

most of the benefit of the caching still comes from not having to reread
program memory every instruction but the new method does add a small
performance increase and arguably, more clarity to the code
2023-08-31 08:54:33 +01:00
JetSetIlly b3c743d8df tiny efficiency improvement in ACE 2023-08-30 07:34:19 +01:00
JetSetIlly 894d491371 added 32bit Thumb instruction TST (register) 2023-06-24 22:16:07 +01:00
JetSetIlly b968c534ab chaged signature of Tick() function for delay.Event type
the function no longer returns (uint8, bool) tuple. it instead expects a
function that can be called from the Tick() function itself, in the case
of "success"

this has significant performance improvements due to the frequency of
calls to delay.Event.Tick()
2023-02-19 21:22:22 +00:00
JetSetIlly 896e32a5a9 corrected -trimpath (although it doesn't seem to work with non .go files) 2023-02-16 07:47:08 +00:00
JetSetIlly 9cd7f15a16 added -trimpath to build flags in Makefile (go1.19 and higher) 2023-02-15 07:56:32 +00:00
JetSetIlly fed7060736 more flexible shader pipeline / new screenshot method
screenshotting now uses exactly the same CRT sequence as the playmode. a
single file for each screenshot rather than a selection of images

results aren't exactly comparable but the new pipeline means it should
be easier to manipulate to get the results we want
2023-02-12 13:31:42 +00:00
JetSetIlly abe3a0837f added a pgo file - performance profile of ARM using ROM
build and release targets in Makefile now use pgo
2023-02-12 13:23:40 +00:00
JetSetIlly 89f691f33e updated README
refined readme_spell target in Makefile
2022-10-30 13:24:13 +00:00
JetSetIlly d3cd6c458b added cross_winconsole_development target to Makefile
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
2022-10-29 16:21:38 +01:00
JetSetIlly 8497d95fb0 extistance of BusStuff and CoProc interfaces decided in cartridge Attach() and Plumb()
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
2022-10-24 15:46:36 +01:00
JetSetIlly 3576f6cf9a corrected Makefile with respect to d548d0c852 2022-09-07 19:23:25 +01:00
JetSetIlly 52004e5f78 makefile correctly detects minimum version of go for test target
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
2022-08-22 21:34:14 +01:00
JetSetIlly 266646f150 ELF is now rewind safe. memory copied and repointed correctly 2022-07-31 08:36:36 +01:00
JetSetIlly d7b1f0df71 simplified conditions underwhich playfield and sprites tick()
also triggerMissileReset() is passed to missile at init time and not on
call to Missile.tick()

small performance improvement
2022-05-28 19:12:16 +01:00
JetSetIlly 7e57bbe46c removed unused/unwanted dependencies
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
2022-05-26 12:14:34 +01:00
JetSetIlly 8fb2d16b00 reording of CDF MapAddress() decisions 2022-05-25 09:23:56 +01:00
JetSetIlly 0c85bbfff2 added cross_windows_development target
this adds the current git hash to the executable filename
2022-04-29 13:50:33 +01:00
JetSetIlly fc431415f1 cross_windows make target deletes icon resource file on completion
cross_windows make target specifies "windowsgui" - changed for testing
purposes and now changed back
2022-04-06 22:30:08 +01:00
JetSetIlly 50d91e22d2 separated release and release_upx 2022-03-25 21:52:22 +00:00
JetSetIlly 3d3efbf3f4 static linking of freetype for cross_windows target
corrected error handling on SDL initialisation failure
2022-03-16 14:52:45 +00:00
JetSetIlly 9ce2258a0a freetype font rendering enabled with imguifreetype build tag
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
2022-02-05 23:02:32 +00:00
JetSetIlly 4a658e2073 auto detect memory model for DPC+ ROMs
corrected logging messages and comments in objdump package
2021-12-13 13:38:15 +00:00
JetSetIlly 56a0d6a4dd silenced "make clean" on non-existant files 2021-12-05 20:17:42 +00:00
Stephen Illingworth a321c67e23 added logo and windows icons
makefile cross_windows now requires rsrc https://github.com/akavel/rsrc
2021-11-22 21:06:51 +00:00
JetSetIlly cc3d26ed0a embed windows icons in windows binary 2021-11-22 10:06:49 +00:00
JetSetIlly 1e8e9dd005 removed -display option from performance mode
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.
2021-11-19 21:43:22 +00:00
JetSetIlly 249e3c4b60 timeline window now runs the rewind.GetState()/thumbnailer in the main emulation goroutine
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
2021-11-18 21:51:44 +00:00
JetSetIlly 3f6bd5fccb preview thumbnails in ROM selector
added thumbnailer package to support thumbnailing
2021-11-15 13:37:50 +00:00
JetSetIlly 32499606a3 WSYNC/Coproc aren't counted in playmode so timeline now shows dotted lines
dotted lines indicate that those counts haven't been made during the
period shown
2021-11-10 14:29:53 +00:00
JetSetIlly e0d577589f rewind in playmode is more responsive - mousewheel and keyboard
added rewind via gamepad bumper

cleanup of rewind functions in debugger package
2021-11-09 08:40:45 +00:00
JetSetIlly 92d96cc4e9 major refactor. amalgamated debugger/playmode emulations
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)
2021-11-04 09:38:35 +00:00
JetSetIlly 668b8750b3 added piano keys window 2021-10-31 13:35:24 +00:00
JetSetIlly 22ead85bdc emulator event notification icons
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
2021-10-26 19:40:12 +01:00