Commit graph

59 commits

Author SHA1 Message Date
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
JetSetIlly
18c3aa1c26 more plusrom. better networking
correctly sends PlusStore-ID header with gopher2600 as a fixed nick

fingerprinting of PlusROM

removed -plusrom commandline argument
2020-09-17 21:09:29 +01:00
JetSetIlly
96e765525c sketched in PlusROM support
very rough currently. race conditions in network access, requires
restructuring.

no logging from network access. again, requires some engineering in the
log package to avoid race errors
2020-09-16 18:28:49 +01:00
JetSetIlly
4091b6076c DF (128k) bank switching 2020-08-24 18:51:05 +01:00
JetSetIlly
5e06068bf4 sketched in cartridge mapper type EF 2020-08-24 18:21:45 +01:00
JetSetIlly
5ad55fa433 handle end of tape read event for soundfiles
hook function will be called when $fa1a is read to tidy up emulation
before continuing with the newly loaded ROM (eg. TV reset, dissassembly
of loaded data)
2020-08-24 13:21:30 +01:00
JetSetIlly
f30542dc2b supercharger tape loading from MP3 2020-08-24 13:19:57 +01:00
JetSetIlly
44bee68d16 supercharger loading from WAV file
cartridgeloader package allows WAV file extensions

supercharger tape window added to debugger

not completed: known problems include cartridge not being
re-disassembled after tape loading.
2020-08-23 22:45:16 +01:00
JetSetIlly
a140711321 windows cross-compilation support
static build runs under minimal wine installation and passes regression tests
2020-08-04 10:53:15 +01:00
JetSetIlly
babd416bbd cartridge loader was not setting the Hash value of the loaded cart properly
this broke the setup database system
2020-07-28 19:40:44 +01:00
JetSetIlly
298a5d343f updated copyright notice in all files
the note about historical versions also being covered wasn't strictly
needed and was ugly. the LICENCE being in the root file from the very
first commit is sufficient.
2020-07-26 20:18:56 +01:00
JetSetIlly
4cfd4e3428 reworked cartridgeloader package
clarified error messages from cartridge mapper implementations,
particularly in regard to wrong file sizes
2020-07-22 18:50:37 +01:00