Commit graph

96 commits

Author SHA1 Message Date
JetSetIlly
70ad97c6db added BF mapper, including SC option
added proper fingerprinting for SB mapper
2024-11-23 14:56:37 +00:00
JetSetIlly
89c353425d implemented FA2 bank switching (Star Castle)
nvram data written to fa2_nvram directory in the resource path. not
emulating read/write time of flash memory

fixed GetRAM() information for CBS, DF and commavid
2024-11-23 14:56:36 +00:00
JetSetIlly
66fde044ee added CARTRIDGE SETBANK command 2024-09-07 17:47:21 +01:00
JetSetIlly
12359c5d43 added .ELF to list of valid ROM extensions 2024-08-22 21:51:38 +01:00
JetSetIlly
0e590ad51d cartridgeloader.NewLoaderFromData() retreives property entry
corrected error messages issued by NewLoaderFromData()
2024-07-01 21:47:28 +01:00
JetSetIlly
3883b0a8c9 added JANE mapper 2024-06-06 07:45:48 +01:00
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