Commit graph

829 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 1c95bc94b8 preview emulation uses TV spec from command line option
this fixes a problem where some ROMs when given the command line
directive to use the PAL spec is contradicted by the preview emulation.
this seems to be a particular problem with PAL ROMs that never set a
valid VSYNC signal. Nightstalker is a good example of such a ROM
2024-05-18 17:25:09 +01:00
JetSetIlly f995efa41e better solution for problem in 5549230c
clarified how preset sizing works for the television resizer
2024-05-11 14:46:39 +01:00
JetSetIlly c9ee3fc20f added MEMUSAGE PROFILE command
mem profile saved on ctrl+alt+m

memory profiles can be used with "go tool pprof"
2024-05-06 09:59:23 +01:00
JetSetIlly 96ad0797b4 NewVCS() expects environment.Label on instantiation
this helps force the environment.Label to be set to something meaningful
2024-04-30 18:34:35 +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 d431974c76 playback files no longer created cartridge loader directly
the information used to create the loader is storied in
the playback type rather than a created loader itself

this is more flexible and gives us better control of when
the loader is disposed of

checking of cartridge hash must now be performed explicitely
when the cartridge loader is created from the playback information
2024-04-17 09:54:09 +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 28ae543e36 cartridgeloader commentary and documenation
removed all references to hotloading. will reimplement in the future

made sure then cartridgeloader.Loader instances are closed when no
longer needed. added commentary where required to explain

information pane in the ROM selector window is not disabled when
animation emulation is not running. the load button is still visible
based on the animation emulation
2024-04-16 22:15:39 +01:00
JetSetIlly e3f4a743b6 added archivefs package and support in cartridgeloader and ROM select window
archivefs allows opening of files inside a zip archive. support for
other archive file type will be added in the future when possible
2024-04-16 19:22:38 +01:00
JetSetIlly da83fc311b removed complexity from cartridge fingerprinting process
all cartridge data is read through cartridgeloader io.Reader interface
2024-04-16 10:18:13 +01:00
JetSetIlly 18aa6db347 reworked cartridge loader package 2024-04-16 10:18:13 +01:00
JetSetIlly 8f2eb8753f rewinding by mouse wheel works in debugger
rewinds/FF by 10 frames or by a single frame if shift key is held
2024-04-12 21:01:59 +01:00
JetSetIlly d32262adff simplified how gui implements and handles notifications
debugger no longer sends play, pause notifications to the gui. the gui
polls for that information as required

govern package now has SubState type to complement the State type.
StateIntegrity() function enforces combinations of State and SubState,
called from debugger.setState() function

playmode notifications reworked and contained in a single playmode_overlay.go
file. this includes the FPS and screen detail

preference value sdlimgui.playmode.fpsOverlay replaced with
sdlimgui.playmode.fpsDetail. still toggled with F7 key

coproc icon moved to top-left corner of playmode overlay and only
visible when FPS detail is showing

when FPS detail is showing multiple (small) icons care shown. when it is
not showing, a single (large) icon is shown according to the priority of
the icon. eg. pause indicator has higher priority than the mute
indicator
2024-04-12 18:20:29 +01:00
JetSetIlly 877f282b8b corrected supercharger multiloading for fastload 2024-04-10 20:50:13 +01:00
JetSetIlly 110d476389 ARM differenties between architectures for memory alignment
ARM7TDMI (which is an ARMv4 implementation) does not allow misaligned
addressing at all. ARMv7 meanwhile does allow it

ARM emulation no longer logs misaligned addresses. but it does forward
the information to the developer interface

Faults window now has a Clear button and fixed table header
2024-04-08 22:16:12 +01:00
JetSetIlly 24f3f32342 simplified notifications package
notifications interface instance moved to environment from
cartridgeloader. the cartridgeloader package predates the environment
package and had started to be used inappropriately

simplified how notifications.Notify() is called. in particular the
supercharger fastload starter no longer bundles a function hook. nor is
the cartridge instance sent with the notification
2024-04-06 10:12:55 +01:00
JetSetIlly 954c1485a1 added COPROC MEM DUMP command
context menu in static memory window
2024-03-04 07:40:55 +00:00
JetSetIlly b1e89121d1 COPROC ID works correctly
misplaced fallthrough to the COPROC STEP command
2024-03-03 10:58:30 +00:00
JetSetIlly 30a245d472 improved coproc yield information in terminal prompt 2024-03-01 20:24:23 +00:00
JetSetIlly d1482c139a main environment label is now "main" rather than the empty string
this means that main emulation must be explicitely named but this is
good because it means there is no ambiguity if a support emulation is
not named
2024-02-09 17:25:26 +00:00
JetSetIlly 00fc13aee6 ROM select window shows mapper and TV information
animation thumbnailer drains render queue when creating a new emulation
2024-02-05 11:41:17 +00:00
JetSetIlly 685bf7ccc7 added support for stella.pro files
added properties package

ROM select window display property information
2024-02-05 11:41:17 +00:00
JetSetIlly 58315e5182 added VCS.Snapshot() function. simplifies the rewind package
also allows easy access to the VCS snapshot process when there is no
need to use the rewind package
2024-02-05 11:41:17 +00:00
JetSetIlly df1afc5c21 added preview package
preview can be used to run a ROM for a short period in order to gather
information about the ROM that can only be found through execution. this
is useful for example, for setting the TV dimensions
2024-01-28 20:14:18 +00:00
JetSetIlly 3340e5cc8d cartridge will reload when HUP signal is received 2024-01-28 10:41:08 +00:00
JetSetIlly 420268ad54 better segment management for DPC+ and CDF
apart from better organisation, these changes fix a bug in CDF that
could cause a crash caused by the ARM program accessing a memory address
that is not represented in the emulation
2024-01-22 08:10:30 +00:00
JetSetIlly 8bb94f9654 nil protection on disassembly definition 2024-01-16 10:54:54 +00: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 abc96c90a3 more frequent checking of userinput
checking of communication between gui and emulation goroutines
was too infrequent for effective paddle movement

problem introduced in a7513e3e90
2024-01-10 17:42:11 +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 97b08fa389 recording of rewind state was sometimes missed in playmode
a great way of seeing this bug was with Berzerk Voice Enhanced edition.
the voice after leaving a level caused the rewind.Record() function to
be skipped. this meant that there was a gap in the rewind record
2024-01-09 21:51:02 +00:00
JetSetIlly f26b96c2af fixed catchup loop when stepping back in instruction quantum
the input loop would be called (and the end of the catchup loop delayed)
on the last cycle of the previous instruction that we want to stop on
2024-01-09 10:51:24 +00:00
JetSetIlly 3e9597b8a2 fixed STEP BACK command for non-INSTRUCTION quantums
bug introduced in v0.26.0

the cause were the changes in the STEP terminal command but because the
GUI uses the terminal to send many commands, it affected the GUI also
2024-01-09 10:31:02 +00:00
JetSetIlly d04109fdaa moviecart sends notification when attract screen ends
the TV is reset in the same manner as supercharger on receipt of the
notifcation. This allows the TV to auto-detect the specification from
the movie content and not the attract screen

the disadvantage of this is that the NTSC attract screen will show for a
PAL movie but this is a small complaint. the way around this would be
for the first dozen frames of the movie to be run unseen before the
attract screen starts and for the TV to detect the specification from
that
2023-12-07 16:05:23 +00:00
JetSetIlly 5213c4e7d2 cycle quantum steps forward correctly after a backward step
paws icons shown in window for all selected quantums because we may be
at a intermediary color clock regardless of selected quantum. for color
clock "3" however the paws are only shown for quantum Clock
2023-11-27 07:47:30 +00:00
JetSetIlly 9f6cbdad58 added CYCLE quantum
updated QUANTUM and STEP commands to accoodate new quantum

control window changed to support the three quantum options

improved/corrected the conditions under which the ONSTEP command is run

disassembly.ExecutedEntry() updates existing entry
2023-11-27 07:47:30 +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 f60c88fe55 LAST command updates live bank and disam info when in CLOCK quantum
updating live information is expensive and we only do it after every
instruction normally. however, for the LAST command we need that
information to be current
2023-11-06 15:49:30 +00:00
JetSetIlly 1cc0a66c70 added SECAM support 2023-09-18 19:19:25 +01:00
JetSetIlly 4007e6fc37 simplification of how gui interacts with debugger
removed unused caching fields. renamed function and interface names
related to breakpoints sharing

debugger quantum value is atomic for safe reading outside emulation
goroutine. moved quantum definitions to govern package

simplification of how debugger interfaces with coprocessor debugger/developer
2023-08-26 09:14:54 +01:00
JetSetIlly 12b9f19d1f removed lazy update components. made savekey rewind safe 2023-08-26 09:14:40 +01:00
JetSetIlly b822a49225 sketched in coprocessor registers window 2023-08-20 18:25:25 +01:00
JetSetIlly 74c3457406 coprocessor interface will return extended registers spec
ammended COPROC REGS function to use new spec system. FPU registers
display formatted values

removed RegisterStatus() function for now. the ARM status register is
more complex in reality than how I've modelled it (CSPR vs ASPR and and
an ESPR in some models). the information is there but not in a coherent
way. probably requires adding a status register group
2023-08-20 18:25:25 +01:00
JetSetIlly aacea11fdb simplified coprocessor interfaces 2023-08-09 15:26:05 +01:00
JetSetIlly 2d02764e60 moved coprocessor interface/types from mapper to coprocessor package
there could be more work to do here to make this more readable
2023-08-09 15:26:05 +01:00
JetSetIlly 3805285115 added COPROC REG FPU command 2023-08-06 19:54:37 +01:00
JetSetIlly d87740752f added COPROC STEP command 2023-08-04 20:23:42 +01:00
JetSetIlly 6c09425565 macro package improvements 2023-08-03 08:09:44 +01:00