Commit graph

669 commits

Author SHA1 Message Date
JetSetIlly
57b8d638df updated MovieCart to new support new kernel 2021-04-24 10:42:38 +01:00
JetSetIlly
1d53447317 removed lint errors 2021-04-16 07:57:44 +01:00
JetSetIlly
6621cfcd19 fixed TIA plumbing on rewind
this didn't effect the rewinding in practice but none-the-less it was
wrong and had side-effects when using the rewind mechanism for
deep-poking.
2021-04-14 20:25:27 +01:00
JetSetIlly
9b0852155b improved commentary in video.Pixel() function regarding priority 2021-04-05 10:13:14 +01:00
JetSetIlly
b1673204cd fixed ball priority in scoremode 2021-04-05 09:42:11 +01:00
JetSetIlly
488248b3ed moviecart: better stepping under pause
moviecart: OSD preview display on up/down
2021-04-02 20:41:45 +01:00
JetSetIlly
bee366c7f1 moviecart: version string check 2021-04-02 20:41:45 +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
ed175087f8 regenerated inststructions table 2021-04-02 20:41:45 +01:00
JetSetIlly
e1e24a57d5 fixed win_disasm setting scroll position correctly on STEP FRAME and STEP SCANLINE
fixed race condition in win_disasm
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
f406736e80 implemented Movie Cart
added SLO (0x1b) opcode
2021-04-01 01:12:28 +01:00
JetSetIlly
aee8cb1f4b more work on deep poking. not complete. 2021-04-01 01:06:59 +01:00
JetSetIlly
ba4a61981d fixed Superbank bank switching 2021-03-28 20:26:01 +01:00
JetSetIlly
76da071533 clarified naming of CTRLPF masks 2021-03-25 12:57:13 +00:00
JetSetIlly
9c18dd3010 supercharger checks size of BIOS file 2021-03-23 16:11:47 +00:00
JetSetIlly
36e7c3bd61 first pass at deep-poking
implemented deep-poking of playfield values. there may be pathological
instances where this does not work. not all addressing modes have been
added to the deep-poke function.

to be clear, non-playfield graphic elements (player, missile, ball) have
not had this feature added yet.

will probably also require some way of feeding back information, making
it clear what has actually happened or actually changed. changing of an
immediate value should probably trigger a redisassembly.
2021-03-23 11:27:28 +00:00
JetSetIlly
75af0a931e fixed menubar info for mnetwork cartridges
result of cartridge Mapping() function can result in strings of varying
length in a very short period, which caused the draw routine to flicker

more flexible Mapping() function required
2021-03-16 22:58:46 +00:00
JetSetIlly
2062ff6edb port monitor 2021-03-14 18:03:49 +00:00
JetSetIlly
db7fc34889 removed hotspot symbol information for superbank
the solution was too complex. it requires a more elegant solution.
2021-03-12 11:24:11 +00:00
JetSetIlly
115a4b6746 superbank hotspots
hotspots can now be "strict". meaning that the symbols package will not
try to normalise the address to a mapped address
2021-03-12 07:10:08 +00:00
JetSetIlly
148bc91e02 disassembly inserts dummy labels for JMP/branch/etc. targets
ejected cartridges now report having one bank, rather than zero. this
is really to sypport the symbols_test but it shouldn't do any harm
elsewhere.

symbols package now safe to use in threaded code

symbols search returns normalised symbol name (ie. as it appears in the
symbols table). the effect of can be seen with the PEEK and POKE
commands for example.
2021-03-12 07:10:08 +00:00
JetSetIlly
1bed9e9e5a supercharger fastload (.bin files) multiload working 2021-03-11 18:21:53 +00:00
JetSetIlly
611a7212f5 added Superbank cartridge mapping scheme (128k and 256k) 2021-03-10 15:06:40 +00:00
JetSetIlly
bd7b88979f corrected mnetwork fingerprinting
incorrect mask causes a false positive for Solaris (after previous
changes to the fingerprinting when the threshold was reduced from 4 to
2)
2021-03-09 23:32:33 +00:00
JetSetIlly
156534a3fd added userinput package
debugger and playmode refer to userinput package rather than the common
code being in the playmode package

GUI events are now userinput events

more versatile handling of EventData in controller package. parsing of
EventData is handled by the controller types as required. added
EventDataPlayback type to ports package to help distinguish source of
data.

EventDataStick used to specify stick data value. used to help
distinguish between setting a stick direction and toggle a stick
direction. the latter case is useful for (physical) gamepad input and
the former for input from a keyboard.

Gamepad analogue stick can be used for paddle input. PaddleFire removed
and Fire used instead.

version number of playback file increased to 1.1. version detection of
recorder.IsPlaybackFile() improved.
2021-03-09 22:37:08 +00:00
JetSetIlly
d4f72c3b40 Logf() function in logger package
replaced all instances of logger.Log() that used fmt.Sprintf() to build
the details argument
2021-03-06 08:01:48 +00:00
JetSetIlly
705da4252e STEP command now supports stepping backwards
limitation for the time being on stepping back by color clock

removed ability to step by the more obscure trap targets (registers
etc.)
2021-03-05 13:09:37 +00:00
JetSetIlly
7493c96c14 improved supercharger fastload (.bin files) fingerprinting
fastload files seem to be multiples of 8448 bytes
2021-03-05 13:09:37 +00:00
JetSetIlly
2a5dbffb67 tweaked front/back porch correction in TV implementation
this "fixes" the smooth playfield scroll demo

tweaked how VSYNC signal is counted
2021-03-03 12:00:59 +00:00
JetSetIlly
b6dd737163 RSYNC reflection layer 2021-03-03 10:28:45 +00:00
JetSetIlly
e1ed563ea9 overlay selection is now in a popup
added colour key. potential for much more information.
2021-02-26 14:22:19 +00:00
JetSetIlly
d6463e0dae lint errors 2021-02-24 06:59:30 +00:00
JetSetIlly
8789a6772c streamlined reflection system
simply interfaces between television and reflection packages
2021-02-24 06:59:30 +00:00
JetSetIlly
a7cecfe0fe improved disasm window
lazy system now pulses the update time. is used by the disasm window to
synchronise updating

clearer method of switching between play and debugmodes (not fully
implemented yet)

extended mapper.BankInfo fields to include Name (useful for identifying
BIOS in the supercharger, probably not much else)

cart summary info moved from disam window to menubar
2021-02-21 06:34:27 +00:00
JetSetIlly
a18421b0af added TIA revision package
common TIA variations added to tia package

revisions preferences window in sdlimgui

key names in prefs package can now contain digits in addition to letters
2021-02-15 19:08:38 +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
e74decdc42 Refinement of player reset under HMOVE/HBLANK
These conditions only seem to apply to some machine types. Prompting
a reason to introduce options to allow the user to select the precise
2600 model.

Hmove has been packaged up for easier working. We could probably improve
HMOVE instrumention because of this.
2021-02-08 19:22:21 +00:00
JetSetIlly
2b7b8d1eca reworked linter package
added IterateBlessed() function for Disassembly type. more convenient
method of outputting disassembly to a string.

instruction defintion notes whether opcode is undocumented

linter flags use of undocumented opcodes

renamed DISASSEMBLY command to DISASM

added single address disassembly to DISASM command
2021-02-08 19:16:51 +00:00
JetSetIlly
9277b88936 coprocessor layer is named based on coprocessor ID
removed optimistion reflection overlay

it didn't show all optimisations that are now done in the TIA emulation
and it was difficult to present the information meaningfully. plus, it's
information about the emulation itself and not about the emulated machine.

cleaned up lint errors
2021-01-31 14:52:55 +00:00
JetSetIlly
d72f50ff2d fixed ARM7 when PC changes program memory block
for optimisation purposes we cache the first level decoding of an
opcode. we also store the pointer to the memory mapping of the PC and
only change it if the PC falls outside the range of cache. we call this
program memory.

however, the decoding cache was not being refreshed when program memory
changed causeing visible failures in Draconian, and probably other ROMs
too.
2021-01-30 23:02:25 +00:00
JetSetIlly
02d3796961 tidy of arm7tdmi package
added "Estimation of ARM Execution Time" section
2021-01-30 21:31:26 +00:00
JetSetIlly
95b384167b cycle usage calculated during ARM emulation. works with DPC+ and CDF* formats
disassembly package and win_disasm now pause when coprocessor is
running. terminal prompt now reflects coprocessor activity

ARM "program memory" will change when required. error introduced during
ARM optimisations 82fe52852c

implemented remaining ARM7 disasm
2021-01-28 17:34:07 +00:00
JetSetIlly
45e43cf0c6 improved MNetwork fingerprinting
a new demo ROM from Splendidnut (Congo Bongo) was not being detected
correctly.

during testing I noticed that the 8k version of Bump n Jump was not
supported so the MNetwork mapper now supports 8k ROMs in addition to the
documented 16k.

error message corrections.
2021-01-24 09:29:32 +00:00
JetSetIlly
fc70fd5505 television frame resizer will now ignore false positives
this means that frames must be consistent for N frames before the resize
is committed to the PixelRenderers.

sdlimgui screen is now correct height to show limits of screen.
2021-01-22 19:27:10 +00:00
JetSetIlly
1059859b27 TIA optimisations
pending TIA events only checked when required

only applies to the main TIA events. no value in the same optimisation
for future events in the video subsystem

removed visible flag from video Tick() functions. sprites have access to
the TIA hblank flag which amounts to the same thing.
2021-01-21 18:21:32 +00:00
JetSetIlly
4b17a4b803 arm disasm works correctly after performance improvements 82fe52852c 2021-01-21 17:08:40 +00:00
JetSetIlly
46dd44c218 vcs.Run() continue check not only returns error and not (bool, error)
this is marginally quicker but I feel it's neater. to solve the problem
of distunguishing between returns values (true, nil) and (false, nil)
the latter can implemented with a sentinal error.
2021-01-20 23:51:08 +00:00
JetSetIlly
b8ecaefebb TIA optimisations
TIA sub-components no longer pass values around in return values. it
turns out to be far cheaper computationally to store calculated values
in the TIA sub-types and retrieving them as required.

on my machine this turns out to be around 2fps saving
2021-01-20 23:50:46 +00:00