Commit graph

240 commits

Author SHA1 Message Date
JetSetIlly f3f6008912 corrected all user facing instance of PAL-M
PAL-M string rather than PALM
2024-05-20 09:06:06 +01:00
JetSetIlly 6c96b2f065 comment changes/clarifications 2024-05-05 17:00:38 +01:00
JetSetIlly cd2a00d4ba logger.Log() and logger.Logf() now require a logger.Permission instance
the logger.Permission interface indicates whether the environment making
the logging request is allowed to create new log entries. the
environment.Environment type satisifies the Permission interface

logger.Allow is provided as a convienient way of indicating the the log
entry should always be created
2024-04-30 11:23:40 +01:00
JetSetIlly 7ed001c4c1 changed when cartridgeloader is created for log/video regression
creating the cartridgeloader later in the regression process gives a
clearer indication of when and if the cartridgeloader is closed properly
2024-04-16 22:42:28 +01:00
JetSetIlly 18aa6db347 reworked cartridge loader package 2024-04-16 10:18:13 +01:00
JetSetIlly 547bba947c Added PAL-M TV specification
this replaces the PAL60 specification. PAL60 can still be specified on
the command line (and embedded in ROM filenames) but it is now treated
exactly the same as PAL
2024-01-10 17:42:55 +00:00
JetSetIlly 5524be92fe peripheral swapping with the -swap argument
the PERIPHERAL SWAP command also added

no corresponding setup entry yet. the setup package needs rewriting to
be more flexible before we do that
2024-01-10 17:42:11 +00:00
JetSetIlly 08a7695d01 command line arguments are forwarded to default RUN mode 2023-11-22 08:04:19 +00:00
JetSetIlly aec9109e76 add command line --help for submodes 2023-11-19 20:28:55 +00:00
JetSetIlly 85adbca367 improved gopher2600.go structure
removed modalflags package. modalflags was added very early in the
project. it's neater and simpler to implement command-line modes with
the standard flag package directly

improved log message for unsupported terminal type

remove rand.Seed(time) on startup. rand.Seed() is a deprecated function
2023-11-19 20:16:17 +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 1cc0a66c70 added SECAM support 2023-09-18 19:19:25 +01:00
JetSetIlly a8009b513f simplified the setting of FPS cap from the command line
command line now only accepts true/false as options. previously, the
options were aimed at allowing different syncing methods with the
monitor but that's not needed now
2023-05-23 20:26:50 +01:00
JetSetIlly 9cb6cce02e added macro package and command line option
screenshot request to GUI system can specify a filename
2023-04-20 23:01:31 +01:00
JetSetIlly 596f40e82d errors from gui Destroy() are logged rather than printed to stderr 2023-04-07 22:33:51 +01:00
JetSetIlly 3aa5885ebe removed curated pacakge. replaced with wrapped errors
curated package predated the standard errors package introduced in
go1.13

the standard package does a better job of what curated attempted to do

the change of package also gave me a opportunity to clean up the error
messages a little bit
2023-02-13 21:58:39 +00:00
JetSetIlly 5410a9b936 number of cores being used is added to log on startup 2023-01-05 22:20:19 +00:00
JetSetIlly e318ae8fda path to ELF/DWARF file can be specified on command line 2022-09-28 19:31:04 +01:00
JetSetIlly 28ffedbf11 removed emulation package. moved types to debugger/govern package
the emulation package has been unecessary since the amalgamation of the
debugger and play modes. in order to allow switching between the two
modes it was necessary to remove the playmode package and to move all
playmode loops and other considerations into the debugger package. as a
result the abstraction offered by the emulation package is uncessary
2022-08-31 14:37:00 +01:00
JetSetIlly d548d0c852 -fpscap option in PERFOMANCE mode changed to -uncapped
-uncapped defaults to true, which is more useful for this mode than
running with the FPS cap enabled

renamed because the -fpscap option for PLAY and DEBUG mode is now very
different and it was confusing to have an option with the same name but
with different semantics
2022-08-25 21:41:17 +01:00
JetSetIlly 39c62d7ffc additional commentary in gopher2600
reordered arguments in NewDebugger() for clarity
2022-08-20 21:00:20 +01:00
JetSetIlly c5e8316848 fpscap option now takes values of TV, MONITOR or NONE 2022-08-20 21:00:20 +01:00
JetSetIlly 90ced4ffbc added NewCommandLineOptions() for initialisation of CommandLineOptions
prevents accidetnal nil dereferencing of unused options
2022-08-09 14:57:35 +01:00
JetSetIlly 5b4d667cca added NoEject commandline option
useful in some development environments. we want the emulator to exit
(with an error) if a ROM is bad.
2022-08-08 15:07:59 +01:00
JetSetIlly 154c13b7b4 integrity check of ROM binary on recording playback is now optional
this facilitates A/B testing of two binaries. normally you would want to
prevent a playback with a ROM binary different to one used in the
original recording, but in some instances it is useful
2022-08-02 10:12:32 +01:00
JetSetIlly 5c4c11e0da commandline options for main emulation modes moved to debugger package
this is more flexible and allows additional options to be added easily
2022-08-02 10:06:48 +01:00
JetSetIlly 4ce3aecbca readded wavwriter package using go-audio/wav package 2022-05-26 21:10:28 +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 63dcc6d7c3 removed -termtype as an option for playmode command line
may be readded if ASCII rendering of TV screen is ever implemented
2022-05-21 11:19:24 +01:00
JetSetIlly 738273519f removed gui.ReqShowFPS and -showfps command line option
state of fps overlay is saved on exit so there is now need for those
requests/options
2022-05-14 23:00:14 +01:00
JetSetIlly 3972842419 added left and right arguments for debugger and playmode
PERIPHERAL command now accepts AUTO parameter. this will (re)fingerprint
the cartridge and insert the "detected" peripheral

implementation temporary in lieu of an improved setup package
2022-04-09 15:24:16 +01:00
JetSetIlly ee73d04fda removed HISCORE from list of submodes
completes removal started in 8ddc1c4d97
2022-03-03 09:06:56 +00:00
JetSetIlly db5d736f38 added -showfps option. shows FPS overlay by default in playmode 2022-02-16 21:17:54 +00:00
JetSetIlly a41ce2edda removed -savekey commandline option 2022-01-29 08:58:05 +00:00
JetSetIlly eade7ea7be readded patch, multiload and wav options to the commandline
removed experimental hiscore client (never used)
2021-12-11 09:56:39 +00:00
JetSetIlly 26c61dd423 no manual input during a playback recording
swallow power off error message at end of playback recording
2021-12-11 09:28:41 +00:00
JetSetIlly 94e24e8881 colored log. log entries with multiple lines will be colored 2021-12-11 08:45:35 +00:00
JetSetIlly 58848acdf9 input system and ports system separated
playback/recorder and driven input systems moved out of the the ports
package and into a new input package. how the input systems interact has
been clarified and improved - for example, it is now posssible for a
playback file to be used to drive two emulations for comparison purposes

the debugger startup procedure has been clarified with two distinct
startup functions for playmode and debugger - each of which take
different arguments. the clarity has allowed the reintroduction of
recording and playback to the main play mode
2021-12-11 08:19:46 +00:00
JetSetIlly dd706b392b preferences for the comparison emulation can be added on the command line
added commandline stack functions to the prefs package
2021-12-05 20:17:43 +00:00
JetSetIlly 8cbe5bf1c1 comparison emulation quits when entering the rewind state
rewinding the main emulation breaks the strict synchronisation
constraints with the comparison emulation. it should be possible to
maintain two parallel rewind instances *and* to maintain the constraints
but I've chosen not to tackle that just yet.
2021-12-05 20:17:43 +00:00
JetSetIlly 0e3ec6a5d5 add visual comparison tool. command line option and gui
userinput for two emulations synced by RIOT ports. RIOT port
driver/passenger synchronisation ensures user input is seen by the
emulations at the same time (relative to the emulation's television)

does not yet handle RNGs (randomise on startup or the RNG in the DPC or
DPC+ formats yet). we need to add a context type first
2021-12-05 20:17:42 +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 9c59dea5e0 fixed interrupt handling when in playmode/debugger probably broken during 13aa07b
added terminal.UserQuit sentinal error to better handle quit events.
future versions should probably remove 'running' variable and rely on
this error and filter accordingly
2021-11-19 18:13:28 +00:00
JetSetIlly 219ffa58c5 playmode will always show ROM selector if cartridge is ejected
this works even when starting in debugmode and switching to playmode
before choosing a cartridge. before it would exit with a command line
error.
2021-11-18 10:29:33 +00:00
JetSetIlly 042af21eba (re)added -log command line option for debug/play modes
this adds a stdout echo for the central logger. playmode had this before
the refactor in 13aa07b0cc
2021-11-13 11:40:33 +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 321cf62d2d gopher2600 can be launched without filename on command line
this works for both playmode and debugmode. in playmode a ROM selector
will be shown immediately
2021-10-15 08:48:51 +01:00
JetSetIlly e5bd938b41 renamed paths package to resources package
ResourcePath() is now called JoinPath()

UniqueFilename() moved to a new package named unique and renamed to
Filename()
2021-10-03 13:32:08 +01:00
JetSetIlly 0025d2ee3a refined how ResourcePath in paths package works
now works more like the standard filepath.Join() function
2021-10-03 13:32:08 +01:00
JetSetIlly 130bd32c7f added regression CLEANUP mode
removes any orphaned scripts. scripts should be deleted when a entry is
removed from the database but this is for in case anything goes wrong
2021-10-03 13:32:08 +01:00