Commit graph

100 commits

Author SHA1 Message Date
JetSetIlly
e693b29051 replaced all value receivers with reference receivers where appropriate
improves performance slightly
2020-11-22 12:26:54 +00:00
JetSetIlly
b6a890a9d1 renamed statsserver package to statsview
optional build with +statsview constraint
2020-11-22 12:04:28 +00:00
JetSetIlly
93dde40be4 removed some dangling lint errors (godot)
removed lint dependencies from Makefile targets
    - unreasonable to expect other people to have it installed
2020-11-19 15:11:30 +00:00
JetSetIlly
8212dc5ddb added compile flags to windows targets
same compile flags as for other build/release targets
2020-11-19 10:50:19 +00:00
JetSetIlly
4da2403732 Added rewind section to readme
added readme_spell target to Makefile
2020-11-19 08:21:29 +00:00
JetSetIlly
99443d16ce removed lint, vet and test dependencies from build target (makefile) 2020-11-07 21:08:09 +00:00
JetSetIlly
282d5e0d1c added DisableSaving flag to prefs package
debugger_test sets prefs.DisableSaving to true

removed testing tag from test Makefile target
2020-11-05 15:24:44 +00:00
JetSetIlly
7e74bcac25 reflection works with rewind system
rather than taking a snapshot of the reflection system, rewind replays
the emulation from the previous frame. this is a considerable saving
in memory. it also allows us to remove the signal history from the
television state information saved by the rewind system. this is also a
significant memory saving.

more efficient memory use possible I think by saving every other frame
or every third frame and allowing the emulation to run to fill in the
interim frames. this would require folding the input recording system
into the rewind system.

TIMELINE <n> function doesn't work as required just yet

screen refresh could be better on rewind plumbing

occasional deadlock when moving rewind slider
2020-11-01 21:21:32 +00:00
JetSetIlly
bce3ccf488 reflection system synchronised with the rewind system
(this version is exceedingly memory heavy. including tv signal and
reflection history in the rewind system is a mistake. work will now
concentrate on the rewind system storing VCS state only and recreating
the tv/reflection signal when a state is restored.)
2020-10-31 22:01:12 +00:00
JetSetIlly
7d54336d7f rewind system works with video stepping
added MEMUSAGE command
2020-10-29 09:13:05 +00:00
JetSetIlly
a66c3c5087 more cartridge state Snapshot()/Plumb() implementations
- 3e
- 3e+
- cbs
- df
- dpc
- dpc+
- mnetwork
- parker bros.
- supercharger
- tigervision

reworked atari cartridge implementations

plusrom passed through all Snapshot() and Plumb() calls to the child
mapper as normal. it adds nothing additional to the saved state.
2020-10-25 11:13:35 +00:00
JetSetIlly
6cc939dd38 added proper checks for golangci-lint and upx to Makefile
shader generator creates correctly formatted go code
2020-10-18 10:59:19 +01:00
JetSetIlly
7b624b5506 removed some staticcheck errors (golangci-lint -E staticcheck)
supercharger tap window will now set tape counter (revealed by
staticcheck)
2020-10-16 14:50:23 +01:00
JetSetIlly
f4b069e544 Makefile vet target removed and govet activated in golangci-lint
disabled "composite" check for govet
2020-10-16 12:52:30 +01:00
JetSetIlly
f30708d0d2 corrected style flaws (golangci-lint -E gocritic)
patch boundaries fixed in dpc mapper (as a result of lint)

added .golangci.yml configuration file

updated Makefile
2020-10-16 12:20:16 +01:00
JetSetIlly
fd4ebfa990 corrected disassembly packages use of cartridge memory (golangci-lint -E scopelint)
update Makefile lint target
2020-10-16 11:10:28 +01:00
JetSetIlly
22cd3251e9 removed unused function parameters/return values (golangci-lint -E unparam)
update Makefile lint target
2020-10-16 11:04:05 +01:00
JetSetIlly
b41c6d0301 removed unnecessary whitespace (golangci-lint -E whitespace --fix)
update Makefile lint target
2020-10-16 10:29:09 +01:00
JetSetIlly
e6e3a63be8 spelling errors in comments (golangci-lint -E misspell --fix)
update Makefile lint target
2020-10-15 22:02:51 +01:00
JetSetIlly
eace858835 removed unnecessary type conversions (golangci-lint -E unconvert)
update Makefile lint target
2020-10-15 22:02:32 +01:00
JetSetIlly
6f71e2cf83 added lint target to Makefile 2020-10-15 21:40:17 +01:00
JetSetIlly
a5944d1a6b added vet and tidy targets to Makefile
the various build targets now require a successful test and vet
2020-10-15 16:39:38 +01:00
JetSetIlly
9b5ba10ade reworking of lazyvalues package
clarified some concepts. removed superfluous code/comments
2020-10-13 14:25:37 +01:00
JetSetIlly
8b705dcff3 reworked how disassembly entries handle symbols
added CartHotspots debugging bus. used by symbols package to get
cartridge symbols information. should be useful for disassembly too

renamed hotspot() functions (in cartridge mapper implementations) to
bankswitch() for clarity

sdlimgui disassembly window shows address labels. disassembly iteration
updated to better support that.

SYMBOL command prints all mirrors for cartridge addresses
2020-10-07 06:58:40 +01:00
JetSetIlly
6d556cd3c8 clarified some concepts in disassembly package
experimented with making the disassembly a service driven goroutine but
this proved too slow to iterate over
2020-10-02 10:47:49 +01:00
JetSetIlly
19f22648e0 PlusROM nick and id now fixed per installation
both values saved to disk and editable editable via terminal interface

nick editable in PlusROM preferences window

String type in prefs package can not be set to a maximum length
2020-09-19 00:00:31 +01:00
JetSetIlly
18c3aa1c26 more plusrom. better networking
correctly sends PlusStore-ID header with gopher2600 as a fixed nick

fingerprinting of PlusROM

removed -plusrom commandline argument
2020-09-17 21:09:29 +01:00
JetSetIlly
96e765525c sketched in PlusROM support
very rough currently. race conditions in network access, requires
restructuring.

no logging from network access. again, requires some engineering in the
log package to avoid race errors
2020-09-16 18:28:49 +01:00
JetSetIlly
fcd297e4b6 simple log window 2020-09-13 13:49:46 +01:00
JetSetIlly
9ae49bdcf3 corrected how the reflection bit affects the playfield
previously, the current color clock was unaffected but the reflection
bit did affect subsequent color clocks in the region

now, the reflection bit has not effect until (a) the screen changes or
(b) the playfield bits are updated

updated playfield debuggin window to better visualise playfield bit
sequence
2020-08-25 16:01:37 +01:00
JetSetIlly
68df3a0c8b gui events and pushed raw events no longer block
previously the gui could block because of a full channel queue under
rare circumstances. those circumstances could be forced by, for example
loading a wav file with the race detector.

also seen when running the debugger with a plain terminal and the
with the display open

all channel pushes are now selected with the default case logging the
error
2020-08-16 11:05:37 +01:00
JetSetIlly
a140711321 windows cross-compilation support
static build runs under minimal wine installation and passes regression tests
2020-08-04 10:53:15 +01:00
JetSetIlly
c22b590ee7 windows compilation support 2020-08-03 23:24:39 +01:00
JetSetIlly
1eb0100194 corrected DPC+ data-fetcher address decrement
unified/normalised static area structure and presentation

better tab bars for static area window

corrected cropped cursor drawing for pixel position on the VBLANK
boundary

TV specification changeable at command line and via GUI's debug screen
window

abstracted resizing mechanism opening the possiblity
for more sophisticated analysis

digest/video handles TV specification changes

bumped imgui-go version to 2.4.1
2020-07-21 21:36:40 +01:00
JetSetIlly
744050c1ef debugger now accesses cartridge RAM through the CartRAMbus interface
GetStatic() and GetRAM() implementations now always provide a copy of
the underlying data.
2020-06-11 09:17:18 +01:00
JetSetIlly
8d9a7321d1 added CartDebugBus to bus package. provides the framework for allowing
debuggers to access cartridge features not accessible through the VCS
itself.

implemented registers window for DPC and DPC+

added CARTRIDGE REGISTERS command to terminal

reworked static window for DPC and added for DPC+

reworked CARTRIDGE STATIC command

implemented ReqNewCartridge request. to be sent to the gui whenever the
cartridge is changed
2020-06-09 19:34:35 +01:00
JetSetIlly
520c4f3013 added StaticArea interface to cartridges
static data window in debugger

reworked menu system to allow cartridge specific window menus

cleaned up how cartridge RAM information is specified and retrieved

renamed cartridge.Format() to ID() and reference to "cartridge format"
to "cartridge mapping". format is an overloaded word already and it was
confusing.
2020-05-09 09:27:56 +01:00
JetSetIlly
5dfea7d4c1 Moved web2600 to Gopher2600-Utils repository 2020-04-12 20:03:33 +01:00
JetSetIlly
e8602cfb72 version go1.14 required
added race target to Makefile
2020-03-29 14:12:35 +01:00
JetSetIlly
a0d61fa770 updated README
added updated Imgui screenshot

updated Makefile

made increment/decrement scaling available to the TV screen in the Imgui
interface
2020-03-21 13:33:47 +00:00
JetSetIlly
ecfcb9ca28 CLEAN makefile target removes .orig files 2020-03-03 08:33:32 +00:00
steve
b9b93024d7 added thread assertions to test package
build with -tags="assertions"
2020-02-08 07:55:14 +00:00
steve
24538bc98b Added release_upx make target 2020-01-18 21:10:54 +00:00
steve
f0c6231aa8 improved gui threading
the last commit didn't fail as expected (!) so the code has been
polished a little. error return channel from main thread to sub-thread

commentary improvement

makefile: for some reason I had added the -+ flag to the "go build"
-gcflags. I must have misunderstood what it was for
2020-01-13 16:12:17 +00:00
steve
4534da0db6 reworked paths package
the location of the configuration directory now depends on how the
binary is built. release versions of the binary will look for the
gopher2600 directory in the user's os configuration directory.
non-release versions will look for the .gopher2600 directory in the CWD.

paths.ResourcePath() will create the paths that don't exist

paths.ResourcePath() now clearly differentiates paths and files

added build target to the Makefile; disabled release target for now
2020-01-07 19:14:51 +00:00
steve
5ab3b1a169 o debugger
- reworked debugger's input loop
    - better comments explaining the process
2020-01-05 18:58:40 +00:00
steve
604a2c5543 o web2600
- sketched in web interface

o cartridge
    - cartridge will now load from http:// target as well as local file
	system

o Makefile
    - added web and webserve targets
2020-01-05 18:58:39 +00:00
steve
f1429028ca o Makefile
- added profile and profile_display targets
2020-01-05 18:58:39 +00:00
steve
e0da62e370 o cpu
- added summary output to instruction_gen

o Makefile
    - added "generate" target
2020-01-05 18:58:38 +00:00
steve
37af346ee5 o added Makefile
o CPU
    - tidied up register code a little bit
2020-01-05 18:58:38 +00:00