selmenu: use LRU cache so icons don't all need to be reloaded on scroll
uismall.bdf: set default character for missing glyphs
rendfont.cpp:
* encapsulate many BDF and BDC handling details
* make file I/O 64-bit clean, check for allocation errors
* more solid BDF parser with error messages and trace logging
* fix heap smash when building bitmaps for BDF fonts
* extend BDC format to support high planes and default character
* render default character if glyph not found for BDF/BDC
- Uses the standard 6840 PTM core for sound generation
- New MM583 Noise Generator device
- New DAC-76 DAC sound
- Use resistor network values for colors
- Use bankdev device for banking
Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8
also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
ataxx: Fixed missing sound channel caused by one dac not being hooked up and one dac being hooked up to two addresses.
bestbest: Fixed high pitch screech caused by incorrect addressing (two dacs weren't hooked up and two were hooked up to two addresses).
cchasm: Fixed static noise generation caused by feeding the same bit to both dacs.
cheekyms: Slightly improved sound by implementing sound triggers as 8 x 1 bit dacs instead of 1 x 8 bit dac.
galeb: Fixed sound by implementing it according to http://www.deltasoft.com.hr/retro/galebemu.htm & implemented enough of LOAD/SAVE to stop it hanging.
hard drivin: (all games in driver) Improved 12 bit controls, although centre still goes out of sync.
mea8000: Converted to a sound device.
megaphx: Fixed noisy samples due to wrong format.
microvsn: Fixed sound pitch caused by incorrect usage of write_signed8().
seicross: Changed to a 4 bit dac as samples are packed nibble.
spaceg: Preliminary sound using space invaders samples.
suna8: Changed to a 4 bit dac as samples are packed nibble.
vcombat: Fixed static during machine gun fire due to incorrect dc offset removal.
vectrex: Fixed noisy samples due to wrong format.
wheelfir: Fixed sound, eeprom & analogue steering wheel and brake pedal.
Turbosub had a ROM_COPY declaration with an expression ('ROM_COPY( "main_code", 0x18000 + 0x2000,...) and this simply did not work with the new model. This required changing ROM_* declarations to more resemble how they used to be and to perform the conversion on load.
This is a redo of the split first submitted in #137, with the following differences:
* The newly refactored rom_entry data structure is used
* I've kept the refactored softlist code in src/emu, in order to defer the mechanical process of moving it
* I've kept includes of softlist[_dev].h out of diimage.h, so that changes to either do not trigger an emu.h recompilation
* Obviously, this goes against the latest master
* Mark lots of things constexpr in attotime and turn macros into functions
* Add base classes for HLE matrix keyboard and buffered RS232 device
* Make generic keyboard/terminal more usable
* Keyboard has configurable typematic delay/rate
* Keyboard has selectable JIS/ANSI layout
* Keyboard handles simultaneous keypresses more intuitively
* Keyboard uses meta to set high bit
* Terminal has configurable auto LF on CR, auto CR on LF and local echo
* Terminal has audible bell
* Untangle Olivetti M20 keyboard from generic_keyboard
* Add notes to Olivetti M20 keyboard emulation
* Make Olivetti M20 keyboard match physical layout
* Untangle RM Nimbus keyboard from generic_keyboard
* Fix natural keyboard mode with RM Nimbus
* Untangle x68k keyboard from generic_keyboard
* Improve x68k key names and mapping
* Improve x68k typematic behaviour
* Untangle QX-10 keyboard from generic_keyboard
* Keep NGEN keyboard barely working
The keyboard should communicate at 1,200 Baud, but due to bugs in the SCC
it's set to 9,600 Baud. The sun4c machines program the Baud rate
generator dividers for the serial ports with 00:0e and the dividers for
the keyboard/mouse ports with 00:7e. Therefore the ratio of Baud rates
should be (0x7e + 2) / (0x0e + 2) = 128 / 16 = 8. However both the RS232
ports and the keyboard/mouse ports run at 9,600 Baud, when the
keyboard/mouse ports should run at 1,200 Baud (which is 1/8 of 9,600 which
matches the ratio of the divider values).
I've artificially limited the rate the keyboard can transmit at to be no
faster than it could at 1,200 Baud using a timer. I can remove this hack
once we get correct SCC divider behaviour.
I attempted to hook up the SCC interrupts to level 12 as specified in the
SPARCstation-1 Programmer's Model in the table on Page 19. No interrupts
seem to be generated, so either I've screwed this up somehow, the Sun
isn't enabling interrupts, or there's another bug in the SCC emulation.
Sorry if I've screwed it up - I won't be offended if someone replaces it
wholesale.
The keyboard receives the reset commands from the Sun and sends back the
self test pass response, but the SCC seems to get a buffer overrun error.
So it appears that the received data isn't being read out. I haven't been
able to work out why.
* .h -> .ipp for things that aren't really headers
* make more stuff in selmenu private
* move the remembered driver/software associated with the snap to the cache object
* start cleaning up constness in datfile manager - it's still a mess of non-const statics
* Split out main menu and dat box drawing from base class
* Make a bunch of class statics proper per-machine persistent objects
* Object lifecycle fixes
- Create a SG-1000 expansion slot.
- Hook up the SG-1000 expansion slot to sg1000.cpp and sms.cpp (sg1000m3).
- Split the sk1100 code from sg1000.cpp and attach it to the new expansion slot.
- Create a new FM Sound Unit device and attach it to the new expansion slot.
- For the sc3000 driver, re-add sk1100 as a fixed SG-1000 expansion device.
- Add sg1000 software list to sg1000m3 and Japanese/Korean SMS drivers.
sms.cpp: implemented some new findings [Enik Land]
- Remove some mirrors for ports $DC/$DD on SMSJ based on Charles' hw tests.
- Add basic C-Sync callback to 315_5124.cpp, based on Charles' hw tests.
- Add built-in Rapid Fire (uses C-Sync) for SMSJ and Korean SMS1 drivers.
- Add new SMS drivers due to XTAL differences:
sms1br - Tec Toy Master System I (Brazil)
sms2br - Tec Toy Master System II (Brazil)
smsbr - Tec Toy Master System III Compact (Brazil)
sms1paln - Tec Toy Master System I (PAL-N)
sms2paln - Tec Toy Master System II (PAL-N)
smspaln - Tec Toy Master System III Compact (PAL-N)
Brazil is PAL-M TV system, but I decided to call it by the
country name, seems to be better recognizable and for
emulation looks more like a NTSC system. PAL-N is used
in Argentina, Paraguay and Uruguay and looks closer to
the European PAL system when compared to PAL-M.
- Replaced shared_ptr by unique_ptr.
- Better seperation of setup_t and netlist_t.
- Fixed bugs in rdtsc code. Refactored timer code.
- Simplify conditional activation/deactivation.
- Introduced HINT(device, hint) to clarify that hints are inheritent
and not specific to devices.
- Added improved profiling support to netlist. Statistics output now
proposes devices for which whole device activation/deactivation be
disabled. No significant improvement for pong, but breakout
experiences a 10% improvement.
- Moved options code from include to cpp file.
- Minor modifications to 7493 and 9316
- Introduced perftime_t and perfcount_t for gathering statistics. These
templates do not create any code if statistics are not kept.
- Make help2man ./nltool produce usuable output.
- More truthtable refactoring. Removed half-finished code for internal
state support. As implemented, this would have had no support for
timing delays.
[Couriersud]
Three patches with code cleanups to the OSD layer [
Giuseppe Gorgoglione]
* Fix debugging code in font_dwrite.cpp
* Introduce dynamic_module
* Remove Direct3D abstraction layer
* git version is set by top-level make, not just when GENie runs
* can set IGNORE_GIT=1 for make to ignore git
* git ignored/unavailable uses "unknown" in version string
* mark modified trees as dirty
* note that version now comes from makefile
- Dead code removal and minor refactoring.
- Simplify. Align naming with stl. Fix somed pedantic warnings.
- More STL compatability.
- Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time.
- Fix long standing workaround which would ignore policy of change-only"
propagation.
- Rewrote for loops to use auto : semantics.
- Truthtable cleanup. (nw)
- Get rid of nl_math. Remove nl_util.h and moved contents to
plib/putil.h.
- Fix standalone build. Refactor ptypes.h.
[Couriersud]
allow in-place creation (for increased locality) of netlist classes.
Main use is in truthtable class.
- Remove PLIB_NAMESPACE macros.
- Remove namespace macros. Use explicit namespace declarations.
- Moved device definitions into cpp files.
- Moved more device definitions into cpp files.
- New prefix "nlid" for include files flags purely internal include
files not to be leaked into userland.
- Fix factory code.
* pet_cass.xml
- Added Supermon (Toronto PET User Group) [Ken White]
- Replaced bad dump of Side B of Squiggle, Big Time / Monitor (the m command in the monitor now works correctly) [Ken White]