Commit graph

111 commits

Author SHA1 Message Date
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
JetSetIlly 04e6b6ca98 added profile_cpu_debug Makefile target 2021-10-19 08:38:44 +01:00
JetSetIlly 394a23bb35 makefile builds windows binaries with -H=windowsgui flag 2021-10-15 19:07:18 +01:00
JetSetIlly 61b4125d74 replaced SignalAttributes struct with a single uint64 value
more efficient memory usage and marginally faster performance. maybe
possible to compress to a single uint32 value?
2021-09-02 14:20:44 +01:00
JetSetIlly 537fa62663 Supercharger Fastload handled with cartridgeloader.VCSHook mechanism
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
2021-08-21 10:59:16 +01:00
JetSetIlly e5105feb9e supercharger soundload improvements 2021-08-19 12:33:02 +01:00
JetSetIlly 2f6327d721 makefile test target checks go version and uses -shuffle if available 2021-08-18 06:48:14 +01:00
JetSetIlly 53e83ecaca test target in Makefile now specifies -shuffle on 2021-08-18 06:28:05 +01:00
JetSetIlly c303c847f3 SetPixels() in sdlimgui PixelRenderer sped up
modest performance improvement
2021-08-15 11:12:20 +01:00
JetSetIlly 156ecd8d3e optimisations in arm7tdmi package, particularly for immediate mode 2021-08-13 21:26:29 +01:00
JetSetIlly 4bdba33551 television package keeps better track of current frame information
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"
2021-08-12 11:28:59 +01:00
JetSetIlly 617dec7837 Makefile profile_mem changed to profile debugger 2021-06-16 23:54:32 +01:00
JetSetIlly febf85e5ab main loop will sleep if no GUI is active
clarified user instructions issued by Makefile
2021-06-14 11:13:09 +01:00
JetSetIlly f875c79289 rearranaged performance.Check() function parameters
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
2021-06-13 16:38:50 +01:00
JetSetIlly 686f52597f makefile: added profile_cpu_again target 2021-06-09 20:01:39 +01:00
JetSetIlly 3628d8ea6b makefile: easier to change go binary 2021-06-08 20:43:11 +01:00
JetSetIlly 90eb17e7ec ARM7: mam control now subject to preference settings
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
2021-06-02 18:41:56 +01:00
JetSetIlly b719b9e97b playscr window scaling/sizing clarified
replicates changes to dbgscr seen in the previous commit
2021-05-15 15:36:37 +01:00
JetSetIlly c5b1ee01e5 makefile tidy 2021-05-12 19:27:43 +01:00
JetSetIlly a3e398b6bd updated go-gl, imgui-go and go-sdl2
go-gl update fixes https://github.com/JetSetIlly/Gopher2600/issues/7
2021-05-09 07:29:00 +01:00
JetSetIlly be5c27231e camera shader now saves five files representing five combinations of adjacent frames 2021-05-08 21:34:54 +01:00
JetSetIlly 16ab693277 corrected supercharger WAV loading of unsigned data
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
2021-02-15 19:08:38 +00:00
JetSetIlly 90f3d60174 coprocessor last execution window shows TV information
extended disassembly package accordingly
2021-01-19 17:34:43 +00:00
JetSetIlly ce7d724a02 fixed lint errors 2021-01-19 10:03:27 +00:00