Commit graph

70 commits

Author SHA1 Message Date
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
JetSetIlly
0d88a7035f added PAL60 TV specification
cartridge filename will set TV Spec if mathing string is present

added HASH option to CARTRIDGE command
2021-05-02 10:42:50 +01:00
JetSetIlly
1d53447317 removed lint errors 2021-04-16 07:57:44 +01:00
JetSetIlly
35b4b8f862 moviecart: frame-by-frame stepping when playback is paused
moviecart: fixed audio stream clicking problem

moviecart: end of stream detected correctly
2021-04-02 20:41:45 +01:00
JetSetIlly
aa86b2e42d cartridgeloader streaming 2021-04-02 20:41:45 +01:00
JetSetIlly
d42120f12d added OSD and controls to Movie Cart 2021-04-02 13:00:07 +01:00
JetSetIlly
914167b288 url protocol check failed with windows drive letters 2021-04-01 23:56:54 +01:00
JetSetIlly
f406736e80 implemented Movie Cart
added SLO (0x1b) opcode
2021-04-01 01:12:28 +01:00
JetSetIlly
611a7212f5 added Superbank cartridge mapping scheme (128k and 256k) 2021-03-10 15:06:40 +00:00
JetSetIlly
24fe0484d9 unique filename generation placed in paths module
generated filenames for playback recording, regression script writing
and terminal outuput saving, remain the same as before
2021-03-06 07:17:52 +00:00
JetSetIlly
16ab693277 corrected supercharger WAV loading of unsigned data
soundfile (WAV or MP3) will stop when cartridge stops looking for tape
data and will rewind when it reaches the end of the file.

tape position slider in debugger
2021-02-15 19:08:38 +00:00
JetSetIlly
2c5cf7f79a CDF format. support for all versions except CDFJ+
DPC+ updated to support changes to ARM package

PlusROM host/path detection size limited
2020-12-30 20:45:07 +00:00
JetSetIlly
3b86234d0f cartridgeloader no longer fails if files on local system do not parse with url.Parse()
boundary checks for fingerprinting of very small files

normalised error generation in cartridge mapper implementations
2020-10-25 13:28:29 +00:00
JetSetIlly
9e159b97d8 added more linters to golangci-lint config
godot --fix has been run to make sure all comments end in a full-stop

specified nolint directive to apply to specific linter
2020-10-16 16:31:07 +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
7fc48dcd65 renamed errors package to 'curated'
to differentiate with the now existing errors package in the standard
library.
2020-09-28 22:16:59 +01:00
JetSetIlly
2d5cae17f5 reworking of errors package
removed all messages from errors package. the strings are now hard coded
in place. the original reason for extracting the error strings like that
was (a) for redundancy and (b) for localisation possibilities. However,
in reality there is not much redundancy and since the project started
the scope of localisation is much larger (particularly due to the
addition of a GUI)

this is the first step. the next step is to remove the errors package
altogether. recent additions to Go mean that the functionality of the
errors package is no longer required. moreover, the original idea for
the errors package functions turns out not to have been as useful as
first appeared (the Error() functionality which makes sure no repeating
sub-strings occur is probably better achieved with static tooling).

one idea that comes from this which is quite interesting is the idea of
a curated error. that is, any error that has been "wrapped" as some
'generic' type. the IsAny() function in the errors package effectively
serves this purpose. we use that in one place in the input loop of the
debugger. not strictly necessary but nice to have so it would ideal
if we could remove the errors package but keep that idea.
2020-09-28 22:16:59 +01:00
JetSetIlly
cc57b5d9dd load ROMs over HTTPS as well as HTTP (& more reliable reading over network)
fixed panic when opening Chip Registers window (orphaned imgui.PopItemWidth())

close response body after reading plusrom network data
2020-09-21 18:11:20 +01:00
JetSetIlly
7b1325e4ce added 3e cartridge mapper
altered 3e+ fingerprinting method
2020-09-21 12:20:03 +01:00
JetSetIlly
5b55b6b485 extended the list of file extensions recognised by the ROM selector 2020-09-20 18:34:18 +01:00
JetSetIlly
a5ce27962e Show change nick prompt on first use of a PlusROM cartridge
only works for sdlimgui interfaces. does not apply to the plain/color
terminal interfaces
2020-09-19 11:19:20 +01:00