Commit graph

90 commits

Author SHA1 Message Date
JetSetIlly ab35aae516 implemented WF8 mapper 2024-05-27 16:39:15 +01:00
JetSetIlly 17df98c1ec added "creation Spec ID" to television
this is in addition to the requested Spec ID and the current Spec ID
2024-05-21 18:09:50 +01:00
JetSetIlly 7fb177c9bc cartridgeloader uses properties to decide on TV spec
properties made goroutine safe
2024-05-21 18:09:50 +01:00
JetSetIlly 69620c5038 amount of data used for mapper fingerprinting reduced to 1k 2024-05-21 18:09:50 +01:00
JetSetIlly d227fc804a corrected 37ce7bc 2024-04-17 16:29:09 +01:00
JetSetIlly b011090937 corrected archivefs docs 2024-04-17 15:59:17 +01:00
JetSetIlly 16adef8e7b fingerprinting limited to first cartridgeloader.FingerprintLimit bytes
looking beyond this limit is unlikely to reveal any data of value and it
can only cause excess slowdown for very large files, which are unlikely
to be cartridge files in any case
2024-04-17 15:52:11 +01:00
JetSetIlly 37ce7bc244 cartridge names have file extensions clipped only if the extension is in
the list of known/supported file extensions
2024-04-17 13:28:36 +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 1f23e7217f simplified cartridge loader package
loader is opened at creation time which allows us to remove the
needlessly complicated pointer-to-pointer mechanism
2024-04-16 10:18:13 +01:00
JetSetIlly 18aa6db347 reworked cartridge loader package 2024-04-16 10:18:13 +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 4ab23ab63e simplified file extensions in cartridge loader package 2024-04-06 10:12:55 +01: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 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 6bb531104c implemented UA cartridge mapper 2023-11-26 09:32:20 +00:00
JetSetIlly 3ba63f78ac moviecart fingerprinting
previously, we've relied on the file extension to be set to MVC but this
is a poor solution because it means moviecarts with the .bin file
extension are missed
2023-10-21 19:49:34 +01:00
JetSetIlly 63933d4e51 added ACE-UF00 variation of ACE 2023-06-21 08:35:06 +01:00
JetSetIlly a0e764d09c corrected CDFJ+ fingerprinting
CDFJ+ fingerprint now accepts any size file so long as the magic string
is present

all CDF variants can be specfied with the -mapping argument or by file
extension (in case fingerprinting does not work)

CDF0
CDF1
CDFJ
CDFJ+

CDF implies CDFJ
2023-03-31 23:02:34 +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 178f05f17b updated go minimum version to 1.20
applied gofmt to source tree to update the documentation comments
2023-02-12 13:09:07 +00:00
JetSetIlly a447a0ccfc implemented 'wickstead design' bankswitching 2023-02-02 14:07:58 +00:00
JetSetIlly f042b4a3bd generalised changes made in f1a32f2
this allows the handling of any sized cartridge less than 4096 bytes
that is a power of two
2022-12-24 11:38:19 +00:00
JetSetIlly f1a32f2a63 support for 1k atari cartridges
this is a curiosity as much as anything else and added to support this
game https://forums.atariage.com/topic/345290-going-bananas-atari-2600/

reading the description however and it seems likely that this will be
subsumed into a larger cartridge at some point. but still, it was an
easy addition
2022-12-21 21:20:04 +00:00
JetSetIlly 9a137e71d2 implementation of commavid 2022-10-05 11:32:00 +01:00
JetSetIlly 0cde9cc7fb added Notifications package
this replaces Event in govern package and in the mapper package.
NotificationHook moved from cartridgeloader package to new package
2022-08-31 14:37:00 +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 997411743d abstract filepath.Abs() in fs package (for wasm target) 2022-05-22 21:45:51 +01:00
JetSetIlly 5af693a36d take absolute filepath to ROM being loaded 2022-02-16 14:29:54 +00:00
JetSetIlly f888f5b109 updated list of recognised file extensions 2022-01-29 14:52:43 +00:00
JetSetIlly ab92d01f73 fingerprinting of controllers
moved controllers and savekeys package to new peripherals package

removed auto controller

changed lazy.Controllers to lazy.Peripherals and Controllers window to
Peripherals window

changed CONTROLLER command to PERIPHERAL command. removed AUTO option

added savekey as an option to PERIPHERAL command and Peripheral window
2022-01-29 08:58:05 +00:00
JetSetIlly 0fb9a502d3 cartridgeloader Data field is now a pointer to a byte array
this allows cartridgeloader to be passed by value but for the Data field
to be shared
2022-01-28 20:53:51 +00:00
JetSetIlly 65fa01e4c8 added superchip option for EF mapper
file extension and -mapping option to indicate superchip for mappers
that support it, changed SC rather than +. For example, "2KSC" and not
"2k+". This avoid confusion with mappers that use the + symbol for other
purposes (for example, DPC+)

cartridge.Attach() will log cartridge insertion with mapping ID
information

removed description field from all cartridge mappers that still had it.
the field was no longer referred to but we may add something similar in
the future
2022-01-05 18:44:55 +00:00
JetSetIlly 2c7bf893ef added EF cartridge mapper 2022-01-05 11:24:01 +00:00
JetSetIlly 62ff113f13 EmulationLabel moved from cartridgeloader to instance package 2021-12-05 20:17:43 +00:00
JetSetIlly 6b40af1749 moviecart in the ROM select thumbnail will have shorter titlecards
added EmulationLabel to cartridgeloader.Loader as a way of indicating to
cartridges what emulation category they are in
2021-11-17 10:26:52 +00:00
JetSetIlly 5b6869cb4b updated docs. explanation of supercharger tape loading 2021-10-17 11:23:50 +01:00
JetSetIlly 8bf405ee80 added NewLoaderFromEmbed()
suitable for loading data from a go:embed directive
2021-09-05 10:11:02 +01:00
JetSetIlly 6d0bdb26c8 generalised cartridge events
this replaces the supercharger and plusrom activities used with the
VCSHook mechanism

guis can no accept ReqCartridgeEvent feature requests

added tape icon which will show when tape/soundfile is playing
2021-08-23 09:10:50 +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 3a32f82707 added forcing of supercharger multiload byte to playmode
generalised OnInserted function in catridgeloader package, to VCSHook.
receiver of VCSHook differentiates by cartridge mapper and action
string
2021-08-20 21:26:24 +01:00
JetSetIlly e5105feb9e supercharger soundload improvements 2021-08-19 12:33:02 +01:00
JetSetIlly ad596d4b34 corrected how regression database stores cartridge mapping
regressionDB wasn't storing the requested cartridge mapping correctly.
for example, if no mapping was specified by the user but a mapping was
detected by file extension then the detected mapper was stored. this
caused problems with supercharger audio files - the AR mapping was
stored in the DB but no that it was an audio file

DB now stores the user specified mapping in all instances (ie. not the
mapping detected by the file extension).

related to this was that the deserialisation of DB entries was not using
the cartridgeloader package correctly. instead of using NewLoader, the
deserialisation was populating the Loader type manually.
2021-08-19 08:29:55 +01:00
JetSetIlly 8202299961 added e3p and 3e+ as valid file extensions
indicate 3e+ mapping format

fixes #14
2021-06-30 08:41:03 +01:00
JetSetIlly cee40a6fad replace all path function calls with filepath function calls
again, not one that is noticeable on Unix but can upset Windows because
of the different directory separator.
2021-06-05 14:38:14 +01:00
JetSetIlly 4638c7218b README update (Turbo screenshot)
lint fixes
2021-05-30 08:58:46 +01:00
JetSetIlly 0e984b8f9e tidy up of cartridgeloader package
rewrote doc and clarified some concepts
2021-05-25 21:45:03 +01:00