Commit graph

268 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
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
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
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
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
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
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
d6463e0dae lint errors 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
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
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
4b17a4b803 arm disasm works correctly after performance improvements 82fe52852c 2021-01-21 17:08:40 +00:00
JetSetIlly
82fe52852c ARM7 performance improvements
it is assumed that the program counter will only ever point to a single
memory area (the custom area in CDF/DPC+ parlance) so reading the PC
address no longer consults the memory map every instruction.

the top/level decoding of instructions happens once and the function
pointer is placed into a cache.
2021-01-20 23:40:29 +00:00
JetSetIlly
450f6ae303 default preferences values for disassembly and debugger
supercharger tries to load BIOS before anything else meaning a quicker
failure if one is necessary

failed cartridge attachment will result in log entry rather than a
terminal error

loading cartridge without a coprocessor (ARM) when the Last Execution
window was open would cause a crash

added video link in readme
2021-01-19 21:09:30 +00:00
JetSetIlly
ce7d724a02 fixed lint errors 2021-01-19 10:03:27 +00:00
JetSetIlly
f3154975f0 improved disassembly performance for ARM7 2021-01-17 22:34:59 +00:00
JetSetIlly
33e1053bdb fix dpc+ running in debug mode
Snapshot() implementation was copying the wrong ROM instead of RAM which
obviously didn't affect run dpc+ in playmode
2021-01-17 18:46:05 +00:00
JetSetIlly
3ea4d74ba5 arm7tdmi disassembly
references to Mnemonic renamed to Operator for 6507
2021-01-17 08:46:16 +00:00
JetSetIlly
f26ed57914 added final CDF registers to CDF window
tidied up registers and windows for DPC, DPC+ and Supercharger mappers
2021-01-06 07:30:16 +00:00
JetSetIlly
63ebcd1f95 crikey. another attempt at the atari start bank issue
so 4k and 2k cartridges start at bank 0. all larger size start at bank 1.

this satisfies all the sensitive ROMs that I've found:
    HackEm HanglyMan
    Stay Frosty
    Congo Bongo
2021-01-05 17:36:09 +00:00
JetSetIlly
76b36a4d80 cartridge rewinding is now more flexible
cart ram/static areas show changes across time

supercharger TV reset after tape load no longer resets frame number.
this affected the rewind system and how it stores historical data.

improved responsiveness of service loop polling
2020-12-31 17:19:33 +00:00
JetSetIlly
418de49ba1 ARM timer ticks forward correctly
VCSReturnChannel so the television can inform the VCS about a change in
television spec. The VCS uses this information to forward clock
information to the cartridge.Step function

DPC and DPC+ music generators now use correct VCS clock value in all
instances
2020-12-30 20:45:07 +00:00
JetSetIlly
2389e683d7 arm7 package tidy 2020-12-30 20:45:07 +00:00
JetSetIlly
d4ab437506 Optimisations
Collision tests run less frequently

Pixels are reused more often

Streamlined Playfied.pixel() and Player.pixel() functions

Tiny improvment to ARM MapAddress() imlplementations (CDF and DPC+)

Small improvement to performance of ARM read 16/32 bit memory functions

Unchanged overlay renamed to "Unoptimised"; now highlights pixels that
were generated without any optimisation at all
2020-12-30 20:45:07 +00:00
JetSetIlly
17eb04b931 added trace profile type to performance package
expanded --profile option for DEBUG and PERFORMANCE so that different
profile options can be selected/combined

added --profile option to PLAY mode.

many lint errors removed (re-added "make lint" to git pre-commit hook)
2020-12-30 20:45:07 +00:00
JetSetIlly
409af79c65 (again) better start-bank detection for Atari ROMs
the reset routine now tests each bank to see if the reset vector is
sensible. probably applicable to some other mapping formats but
keep it to the Atari ROMs for now.
2020-12-30 20:45:07 +00:00
JetSetIlly
968899ce10 CDF and DPC+ now rewindable
removed patching for CDF and DPC+ for now (not really related to
rewinding but I thought I'd remove it until I can get to test it
properly)
2020-12-30 20:45:07 +00:00
JetSetIlly
70e83867ef CDF registers window
(only MusicFetchers and FastFatch/SampleMode flags for now)
2020-12-30 20:45:07 +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
9d74be9b1b atari starting bank fixed at bank 0
I've flip-flopped on what the start bank should be for atari cartridges.
I'm reasonably happy that this is now correct.

fixes Voice Enhanced Bezerk ROM while retaining correct beahviour for
all test ROMs
2020-12-30 20:45:07 +00:00
JetSetIlly
a90833c77c move dpc+ mapper to it's own package
tidied up and clarfied some concepts in the Cartridge interfaces
2020-12-30 20:45:07 +00:00