Commit graph

153 commits

Author SHA1 Message Date
JetSetIlly
cc1cf9a085 upated version string to 0.35.3 2024-12-14 09:12:22 +00:00
JetSetIlly
11848209d0 upated version string to 0.35.2 2024-11-23 14:57:09 +00:00
JetSetIlly
c809a6a3a0 a rom can be specified on the command line for the makefile
for example:

    rom=my_game.bin make profile_cpu

if the rom variable is not set then the default roms/Pitfall.bin
will be used
2024-11-23 14:56:37 +00:00
JetSetIlly
8f9e78cad5 fixed all unkeyed struct field errors
makefile vet target removed and put 'go vet' into lint target. awk
filter for unkeyed struct errors removed
2024-11-23 14:56:36 +00:00
JetSetIlly
f66d020907 added lint target to Makefile
checks that linters exist before proceeding. project URL for each linter
in the Makefile comments

only go-errorlint and unconvert used at the moment

fixed all lint errors for the added linters
2024-11-23 14:56:36 +00:00
JetSetIlly
554064ef77 aggressive inlining for build targets in Makefile 2024-11-23 14:56:36 +00:00
JetSetIlly
929137a71b added profile_mem target to Makefile
this target runs the emulator in performance mode with
memory profiling
2024-11-23 14:56:36 +00:00
JetSetIlly
a1f5f8e9ad updated version string to v0.35.1 2024-10-07 19:26:13 +01:00
JetSetIlly
f2df48eeb3 updated version string to v0.35.0 2024-10-02 11:00:40 +01:00
JetSetIlly
7b65cfd7e9 updated version string to v0.34.0-maintenance 2024-08-22 21:51:18 +01:00
JetSetIlly
b212fa6486 TIA audio sampled every colour clock
sum of samples is averaged and output twice per scanline for an output
sample rate of 31.4KHz

this fixes issues with ROMs that change the volume of the audio multiple
times per scanline

added *.wav to .gitignore
2024-08-07 09:02:17 +01:00
JetSetIlly
769331f5b8 bumped version to v0.34.0
added link to Current Status page on the wiki
2024-07-19 10:42:38 +01:00
JetSetIlly
f6833385eb clarified Makefile message
when make is called with no target a message is printed
instructing the user on how to build the release binary
2024-07-16 16:10:00 +01:00
JetSetIlly
a1c5f8f5bd bumped version to v0.34.0 pre-release 2024-07-06 23:05:59 +01:00
JetSetIlly
1e1c1cbe6f bumped version to v0.33.0 2024-07-06 22:14:10 +01:00
JetSetIlly
dc084bea7b added crunched package and implemented a simple RLE crunching interface
elf SRAM is crunched with this new package on Snapshot()

.gitigore updated with */testdata

added fuzz target to Makefile
2024-07-06 21:52:28 +01:00
JetSetIlly
672a7fd253 fixed the make profile_* targets
these were broken in b48d487 when the release ldflags were used for
profiling. the release flags strip symbol and DWARF data from the binary
meaning that pprof couldn't dig into the source code or disassembly
2024-06-23 20:53:50 +01:00
JetSetIlly
e02f5b9f94 bumped version to v0.33.0 pre-release 2024-06-11 21:17:56 +01:00
JetSetIlly
e2c89701a3 added vet target to Makefile
this runs 'go vet' but filtered through awk so we ignore noisy errors
that we're not interested in

fixed vet error caused by unreturned error type in input package
2024-05-29 11:47:33 +01:00
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