Commit graph

233 commits

Author SHA1 Message Date
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
eef022e532 highscore server idea
REST server not finished or published yet so this won't do anything
but it serves as a sketch for future development
2020-05-09 09:27:56 +01:00
JetSetIlly
48dd2f02fd changed "pixelperfect" flag to "crt" 2020-04-21 20:29:27 +01:00
JetSetIlly
aa87e6601f added -pixelperfect option to performance mode 2020-04-11 08:10:13 +01:00
JetSetIlly
e6674ed717 first attempt at using sdlimgui for playmode
different enough to require a fresh package sdlimgui_play
2020-04-10 18:16:42 +01:00
JetSetIlly
d99aa40719 DISASM mode will now optionally print "raw" disassembly
fixed typing issue when breaking on cartridge banks, caused by
changes in commit c809f2d424
2020-03-24 11:30:04 +00:00
JetSetIlly
4d2030b2c0 DISASM mode can now output contents of a specific bank only 2020-03-23 12:59:19 +00:00
Robin Eklind
24cb28843f gopher2600: use fully qualified import path as module path
Fixes #4.
2020-03-21 23:39:56 +01:00
JetSetIlly
3b452c1a89 Dear Imgui interface is now the default for debug mode 2020-03-21 08:01:36 +00:00
JetSetIlly
b28afea89a moved call to sleep to sdlimgui service loop
having it in the main service loop kills performance for play mode
2020-03-18 16:49:25 +00:00
JetSetIlly
1cb8057881 more flexible frame limiter for debugging mode
works at scanline and colorclock level as well as frame level, depending
on the requested frame rate
2020-03-16 16:33:42 +00:00
JetSetIlly
4347798ab4 removed race condition from performance submode 2020-03-15 08:44:19 +00:00
JetSetIlly
3c3b78ccd3 implemented lazyread/write system
removes race errors between gui and emulation threads

audio window now presents audio waveform more accurately
2020-03-10 22:41:56 +00:00
JetSetIlly
aa4d9840c1 moved FPS limiter from PixelRenderer to TV
allows sdlimgui to work at it's own frame rate (60fps) independent of
what is happening with the emulation

the reason the FPS limiter was in PixelRenderer at all was because of
the emulator's early development. originally, the television and pixel
renderer were the same thing; then it was decided that the television
should be independent of the renderer and the renderer (wasn't called
that originally) 'embedded' the television implementation; eventually we
got the system we have now. that's my memory of it anyway, the git logs
might tell a different story.
2020-02-22 09:29:15 +00:00
JetSetIlly
12cb30e21a reworked and simplified disassembly package
flow anlaysis is now something completely different to decoding

address masking for cartridge.SetBank()

mnetwork cartridges now return correct bank for upper segments

added iterate type and functions to help the traversing of disassembly
2020-02-14 16:15:09 +00:00
JetSetIlly
9a6494d544 reworked debugger output styles 2020-02-11 15:41:59 +00:00
JetSetIlly
87f4aed83d more imgui terminal improvements
debugger terminal interface changed appropriately
2020-02-11 09:48:24 +00:00
steve
6b01edbf43 improved imgui integration 2020-02-09 20:35:59 +00:00
steve
a94d76cec6 gui implementations now handle mouse capture event
rather than the playmode events handler sending ReqMouseCapture events,
the gui handles the capturing directly

imgui interface requires more flexibility than what the request system
allows
2020-02-08 12:20:48 +00:00
steve
e7ad0e1316 sdlwindows package renamed to sdlimgui
better reflects what it is

split sdlaudio from sdlplay package

reused in other sdl based packages (ie. sdlimgui)
2020-02-08 07:55:14 +00:00
steve
65033f1562 first working version of a play window running through imgui 2020-02-08 07:55:14 +00:00
steve
729d150eaa Split GuiCreator from gui.GUI interface 2020-02-08 07:55:14 +00:00
steve
d613ae5bef imgui sketch 2020-02-08 07:55:14 +00:00
steve
ca283a8bda spurious error message for "regress add" -help 2020-02-01 09:28:13 +00:00
steve
f20bcb0287 added gui.Destroy to main loop 2020-01-14 11:55:29 +00:00
steve
1add64b3bd rewrite sdlplay and sdldebug
better and safer thread interaction
2020-01-13 19:04:59 +00:00
steve
97ccf7f7db better ctrl-c handling
main thread now installs a default ctrl-c handler. can be reset if the
run mode provides a better/context specific handler instead.

for example, debugger and playmode already provide handlers. we don't
want the default handler to conflict with it in any way.
2020-01-13 16:12:17 +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
c8070fe38a gui created in main thread
last commit still did not work in MacOS. this is a second attempt.

it will still probably fail but in a different way. it should let us
know if we're on the right track though.
2020-01-13 16:12:17 +00:00
steve
86480caa23 gui events now serviced in main thread
sdl gui events are now serviced in the main thread. previously, the sdl
event had its own goroutine loop.  this worked on Linux systems but
didn't seem to work on MacOS

A new interface called gui.EventsLoop has been created. When a gui that
implements this interface has been created (such as sdlplay and
sdldebug), the interface is passed back to the main thread. the
ServiceEvents() function then becomes part of the main loop.
2020-01-13 16:12:17 +00:00
steve
1beb4b83bb better PAL specification detection
simplified PAL detection. removed remainder of cruft from earlier TV/GUI
implementation. the method was too complex.

Tapper now auto-detects PAL correctly. Chiphead demo likewise

removed gui.ReqSetOverscan. it was ugly and not needed
2020-01-08 21:35:20 +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
9f17a89259 audio fixes / overscan option
removed fixes previously added to account for Pitfall silences. caused
problems with other ROMs, particularly chiphead demo

added option to PLAY mode that presets window to use overscan area.
prevents excessive window resizing when overscan use is detected.

commentary fixes
2020-01-06 19:24:14 +00:00
steve
16b15fad95 o added licence headers to all files 2020-01-05 18:58:43 +00:00
steve
85bf8d672f o disassembly
- debugger command can now specify which bank to display
2020-01-05 18:58:43 +00:00
steve
206cca0bef o setup
- added television entry type
2020-01-05 18:58:43 +00:00
steve
6616bc2b88 o cpu
- result sub-package renamed to execution
    - renamed Instruction type therein to Instruction

o disassembly
    - reworked structure of pacakge
    - better grep. scope of grep can now be specified
    - display sub-package added
    - disassemblies now store instance of display.DisasmInstruction instead of a formatted string

o debugger
    - ammende GREP to support new disassembly features
2020-01-05 18:58:42 +00:00
steve
0f5a258482 o patch
- implemented patching

o setup
    - added patch entry type

o gopher2600
    - added patch flag to RUN mode
2020-01-05 18:58:42 +00:00
steve
6c210ee6c1 o debugger
- reorganised packages within the debugger package
    - commentary and documentation

o terminal
    - renaming of console to terminal in all instances
2020-01-05 18:58:41 +00:00
steve
73dcd24070 o disassembly
- FromMemory() now creates disassembly instance rather than being a
	function attached to the type
    - comments and documentation

o debugger
    - fixed usage of disassembly.FromMemory()
    - the reason we went with the old method for FromMemory() was to aid
     in how symbol tables were created and pointed to from debug-memory.
     however it was dumb and confusing. problem is now solved correctly
2020-01-05 18:58:41 +00:00
steve
aba69ec69a o added overview documentation for every package
o recorder
    - fixed recorder after recent changes made to digest/video
    - fdf3f2765c59de4097a01b7fdf736ae38e4398b4
2020-01-05 18:58:41 +00:00
steve
59056fb6a8 o regression
- fully implemented audio digest regression

o modalflag
    - can now print additional help text
2020-01-05 18:58:41 +00:00
steve
5698309e68 o database
- improved error messaging
    - sketched in support for audio and 'video & audio' digests in
	digest regression
2020-01-05 18:58:41 +00:00
steve
9f50f3c77e o audio
- implemented audio
    - using Ron Fries' method as the basis
    - removed sample playback - performance of Fries' method is good
	enough that we'll never need it again
    - sdl audio routines using QueueAudio() - maybe better if we use
	callbacks?
    - sketched wavwriter AudioMixer - not usable yet
2020-01-05 18:58:40 +00:00
steve
261a379ae0 o gopher2600
- corrected error message output - superfluous asterisks
2020-01-05 18:58:40 +00:00
steve
8f7b1e08bf o gopher2600
- corrected heap allocation of modalflag instance
2020-01-05 18:58:40 +00:00
steve
e8e58abb07 o limiter
- removed overhead for fps capping

o gopher2600
    - renamed "time" flag to "duration" for PERFORMANCE mode
2020-01-05 18:58:40 +00:00
steve
02c46c8ae9 o renamed magicflags to modalflag
- simplified code significantly

o gopher2600
    - restructured to reflect changes to modalflag
2020-01-05 18:58:40 +00:00
steve
cbf81c6ce9 o sdlplay
- fps capping can now be turned on/off on command line for PLAY and
	PERFORMANCE modes
2020-01-05 18:58:40 +00:00
steve
3aa859a686 o replaced all instance of new(obj) with &new{} 2020-01-05 18:58:40 +00:00