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.
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.
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.
if the disasm window list started at for example $f010 and ended at
$1120, then the for loop would not run because the start address is
numerically after the end address.o
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.
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
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.
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
bug was only triggered when loading was attempted when another cartridge
had already been loaded. the error path when the debugger was already
running left the debugger in an unsafe state for the disassembler
debugger will now load the ejected cartridge if an error occurs during
the loading of another cartridge.
it's less clumsy when used as a label and it's accurate with regards to
how the VCS is documented. not sure why I thought HorizPos was a better
label. maybe it helped my thinking in the earlier phases of development.
more pleasing colour and are now drawn on the outside of the boundary
and not the inside of the bounday. as it was, the guide could obscure
pixels drawn on the very edge of the screen.
resizer counts N frames (currently 5) before committing to a resize.
this gives the ROM change to expand the screen slowly without any visual
side-effect. the supercharger BIOS expands noticeably without this
mechanism.
fixed off by one error for Ladybug and Hack'Em Pacman (and probably
others)
missing doc files for crt and crt/shaders packages
added support for coprocessor menu
reworked window manager/menu system to be more flexible
windows that are cartridge specific now use mapper ID in title. this
means that we can store different window size/position for the cartridge
RAM window, for example, that are approprite for the mapper in question.
tidied up collision detection routines
clarified some concepts in the reflection system
rationalised some concepts in the sdlimgui interface
- handling of PackedColors is clearer
- easier handling of color key entries (colored rectangle and label)
this matches other areas of the debugger that need to draw editable byte
grids
extended drawByteGrid() to use imgui list clipper
EEPROM window shows data changed since last EEPROM write
menu entries for windows can have diferent labels to the window title.
(this was already a feature but it is now more clear/onvenient. change
prompted by lint error).
textures (regular pixels and phosphor pixels) were not being rendered if
emulator was too fast for the vsync. this was okay but it caused visible
artefacts in playmode when vsync was enabled and the CRT prefs was
visible, particular on fast machines.
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
removed gui.ReqSavePrefs. prefs should only be saved under explicit
instruction from the user
added gui.StateEnding to be used with gui.ReqState when debugger and
playmode (and maybe other modes) are finishing. sdlimgui uses this to
save window information.