This commit is contained in:
Miodrag Milanovic 2015-04-10 12:38:00 +02:00
commit ab9c8c2678
77 changed files with 457 additions and 463 deletions

View File

@ -13,7 +13,7 @@ Debugging options
-[no]oslog
Outputs the error.log data to the stderr TTY channel (usually the
Outputs the error.log data to the stderr TTY channel (usually the
command line window MAME was started in). This can be used at
the same time as -log to output the log data to both targets as well.
Default is OFF (-nooslog).
@ -34,20 +34,19 @@ Performance options
-[no]multithreading / -[no]mt
Enables multithreading for the final drawing operation. This can help
Enables multithreading for the final drawing operation. This can help
performance on multicore/hyperthreaded systems with slow video cards,
but may cause undesired behavior in some games.
Note that some drivers in MAME and MESS will use multiple threads even
when this is set to OFF, assuming -numprocessors allows it.
The default is OFF (-nomultithreading).
-numprocessors <auto|value> / -np <auto|value>
Specify the number of processors to use for work queues. Specifying
"auto" will use the value reported by the system or environment
"auto" will use the value reported by the system or environment
variable OSDPROCESSORS. To avoid abuse, this value is internally limited
to 4 times the number of processors reported by the system.
to 4 times the number of processors reported by the system.
The default is "auto".
-sdlvideofps
@ -68,8 +67,8 @@ Video options
-video <soft|opengl|none>
Specifies which video subsystem to use for drawing. The default for
Mac OS X is 'opengl' because OS X is guaranteed to have a compliant
Specifies which video subsystem to use for drawing. The default for
Mac OS X is 'opengl' because OS X is guaranteed to have a compliant
OpenGL stack. The default on all other systems is 'soft'.
-numscreens <count>
@ -188,7 +187,7 @@ Video OpenGL-specific options
-[no]gl_pbo Enable OpenGL PBO, if available (default on)
These 4 options are for compatibility in -video opengl. If you report
rendering artifacts you may be asked to try messing with them by the
rendering artifacts you may be asked to try messing with them by the
devs, but normally they should be left at their defaults which results
in the best possible video performance.
@ -363,7 +362,7 @@ SDL Joystick Mapping
-joy_idx6 Name of joystick mapped to joystick #6, default is auto.
-joy_idx7 Name of joystick mapped to joystick #7, default is auto.
-joy_idx8 Name of joystick mapped to joystick #8, default is auto.
-sixaxis Use special handling for PS3 Sixaxis controllers.
-sixaxis Use special handling for PS3 Sixaxis controllers.
Default is OFF (-nosixaxis)

View File

@ -294,21 +294,21 @@ of your command:
Displays a list of all devices known to be hooked up to a game. The ":"
is considered the game itself with the devices list being attached to give
the user a better understanding of what the emulation is using.
-listslots [<gamename|wildcard>]
Show available slots and options for each slot (if available). Primarily
used for MESS to allow control over internal plug-in cards, much like PC's
needing video, sound and other cards.
-listmedia / -lm [<gamename|wildcard>]
List available media that the chosen game or system allows to be used. This
includes media types (cartridge, cassette, diskette and more) as well as
common file extentions which are supported.
-listsoftware [<gamename|wildcard>]
Posts to screen all software lists which can be used by the entered gamename
or system. Notice, this is simply a copy/paste of the .XML file which reside
in the HASH folder which are allowed to be used.
@ -331,12 +331,12 @@ of your command:
softwarelistname. By default, all drivers that have valid ZIP files or directories
in the rompath are verified; however, you can limit this list by specifying a
specific softwarelistname (without .XML) after the -verifysoftlist command.
-listmidi
Create a list of list available MIDI I/O devices for use with emulation.
Configuration options
---------------------
@ -570,14 +570,14 @@ Core state/playback options
find the next empty value for %i and use that for a filename. The
default is %g/%i, which creates a separate folder for each game,
and names the snapshots under it starting with 0000 and increasing
from there. In addition to the above, for drivers using different
media, like carts or floppy disks, you can also use the %d_[media]
from there. In addition to the above, for drivers using different
media, like carts or floppy disks, you can also use the %d_[media]
indicator. Replace [media] with the media switch you want to use.
A few examples: if you use 'mame robby -snapname foo/%g%i' snapshots
A few examples: if you use 'mame robby -snapname foo/%g%i' snapshots
will be saved as 'snaps\foo\robby0000.png' , 'snaps\foo\robby0001.png'
and so on ; if you use 'mess nes -cart robby -snapname %g/%d_cart'
snapshots will be saved as 'snaps\nes\robby.png' ; if you use
'mess c64 -flop1 robby -snapname %g/%d_flop1/%i' snapshots will be
and so on ; if you use 'mess nes -cart robby -snapname %g/%d_cart'
snapshots will be saved as 'snaps\nes\robby.png' ; if you use
'mess c64 -flop1 robby -snapname %g/%d_flop1/%i' snapshots will be
saved as 'snaps\c64\robby\0000.png'.
-snapsize <width>x<height>
@ -607,30 +607,30 @@ Core state/playback options
-statename <name>
Describes how MAME should store save state files, relative to the
state_directory path. <name> is a string that provides a template that
is used to generate a relative path. Two simple substitutions are
provided: the / character represents the path separator on any target
platform (even Windows); the string %g represents the driver name of
the current game. The default is %g, which creates a separate folder for
each game. In addition to the above, for drivers using different
media, like carts or floppy disks, you can also use the %d_[media]
state_directory path. <name> is a string that provides a template that
is used to generate a relative path. Two simple substitutions are
provided: the / character represents the path separator on any target
platform (even Windows); the string %g represents the driver name of
the current game. The default is %g, which creates a separate folder for
each game. In addition to the above, for drivers using different
media, like carts or floppy disks, you can also use the %d_[media]
indicator. Replace [media] with the media switch you want to use.
A few examples: if you use 'mame robby -statename foo/%g' save states
will be stored inside 'sta\foo\robby\' ; if you use 'mess nes -cart
robby -statename %g/%d_cart' save states will be stored inside
'sta\nes\robby\' ; if you use 'mess c64 -flop1 robby -statename
A few examples: if you use 'mame robby -statename foo/%g' save states
will be stored inside 'sta\foo\robby\' ; if you use 'mess nes -cart
robby -statename %g/%d_cart' save states will be stored inside
'sta\nes\robby\' ; if you use 'mess c64 -flop1 robby -statename
%g/%d_flop1' save states will be stored inside 'sta\c64\robby\'.
-[no]burnin
Tracks brightness of the screen during play and at the end of
Tracks brightness of the screen during play and at the end of
emulation generates a PNG that can be used to simulate burn-in
effects on other games. The resulting PNG is created such that the
least used-areas of the screen are fully white (since burned-in areas
least used-areas of the screen are fully white (since burned-in areas
are darker, all other areas of the screen must be lightened a touch).
The intention is that this PNG can be loaded via an artwork file with
a low alpha (e.g, 0.1-0.2 seems to work well) and blended over the
entire screen. The PNG files are saved in the snap directory under
entire screen. The PNG files are saved in the snap directory under
the gamename/burnin-<screen.name>.png. The default is OFF (-noburnin).
@ -1122,7 +1122,7 @@ Debugging options
A special 'internal' debugger for debugging. Activated when used along
with -debug. The default if OFF (-nodebug_internal).
Core misc options
@ -1149,7 +1149,7 @@ Core misc options
Specifies the name of a font file to use for the UI font. If this font
cannot be found or cannot be loaded, the system will fall back to its
built-in UI font. On some platforms 'fontname' can be a system font
name (TTF) instead of a (BDF) font file. The default is 'default' (use
name (TTF) instead of a (BDF) font file. The default is 'default' (use
the OSD-determined default font).
-ramsize [n]

View File

@ -83,11 +83,11 @@ is usually behind the term "density".
A sensor detects when the head is on track 0 and the controller is not
supposed to try to go past it. In addition physical blocks prevent
the head from going out of the correct track range. Some systems
(apple 2, some c64) do not take the track 0 sensor into account and
(Apple II, some C64) do not take the track 0 sensor into account and
just wham the head against the track 0 physical block, giving a
well-known crash noise and eventually damaging the head alignment.
Also, some systems (apple 2 and c64 again) have direct access to the
Also, some systems (Apple II and C64 again) have direct access to the
phases of the head positioning motor, allowing to trick the head into
going between tracks, in middle or even quarter positions. That was
not usable to write more tracks, since the head width did not change,
@ -95,15 +95,15 @@ but since reliable reading was only possible with the correct position
it was used for some copy protection systems.
The disk rotates at a fixed speed for a given track. The most usual
speed is 300rpm for every track, with 360rpm found for HD 5.25"
floppies and most 8" ones, and a number of different values like 90rpm
for the earlier floppies or 150rpm for an HD floppy in an amiga.
speed is 300 rpm for every track, with 360 rpm found for HD 5.25"
floppies and most 8" ones, and a number of different values like 90 rpm
for the earlier floppies or 150 rpm for an HD floppy in an Amiga.
Having a fixed rotational speed for the whole disk is called Constant
Angular Velocity (CAV, almost everybody) or Zoned Constant Angular
Velocity (ZCAV, C64) depending on whether the read/write bitrate is
constant or track-dependant. Some systems (apple 2, mac) varies the
rotational speed depending on the track (something like 394rpm up to
590rpm) to end up with a Constant Linear Velocity (CLV). The idea
constant or track-dependant. Some systems (Apple II, Mac) vary the
rotational speed depending on the track (something like 394 rpm up to
590 rpm) to end up with a Constant Linear Velocity (CLV). The idea
behind ZCAV/CLV is to get more bits out of the media by keeping the
minimal spacing between magnetic orientation transitions close to the
best the support can do. It seems that the complexity was not deemed
@ -158,10 +158,10 @@ is never known.
2.3 Floppy controller
The task of the floppy controller is to turn the signals to/from the
floppy drive into something the main cpu can digest. The level of
floppy drive into something the main CPU can digest. The level of
support actually done by the controller is extremely variable from one
device to the other, from pretty much nothing (apple2, c64) through
minimal (amiga) to complete (western digital chips, upd765 family).
device to the other, from pretty much nothing (Apple II, C64) through
minimal (Amiga) to complete (Western Digital chips, uPD765 family).
Usual functions include drive selection, motor control, track seeking
and of course reading and writing data. Of these only the last two
need to be described, the rest is obvious.
@ -170,21 +170,21 @@ The data is structured at two levels: how individual bits (or nibbles,
or bytes) are encoded on the surface, and how these are grouped in
individually-addressable sectors. Two standards exist for these,
called FM and MFM, and in addition a number of systems use their
home-grown variants. Moreover, some systems such as the amiga use a
standard bit-level encoding (MFM) but an homegrown sector-level
home-grown variants. Moreover, some systems such as the Amiga use a
standard bit-level encoding (MFM) but a homegrown sector-level
organisation.
2.3.1 Bit-level encodings
2.3.1.1 Cell organization
All floppy controllers, even the wonkiest like the apple 2 one, start
All floppy controllers, even the wonkiest like the Apple II one, start
by dividing the track in equally-sized cells. They're angular
sections in the middle of which a magnetic orientation inversion may
be present. From an hardware point of view the cells are seen as
be present. From a hardware point of view the cells are seen as
durations, which combined with the floppy rotation give the section.
For instance the standard MFM cell size for a 3" double-density floppy
is 2us, which combined with the also standard 300rpm rotational speed
is 2us, which combined with the also standard 300 rpm rotational speed
gives an angular size of 1/100000th of a turn. Another way of saying
it is that there are 100K cells in a 3" DD track.
@ -234,7 +234,7 @@ Modulation encoding, which can cram exactly twice as much data on the
same surface, hence its other name of "double density". The cell size
is set at slightly over half the physical limit, e.g. 2us usually.
The constraint means that two '1' cells must be separated by at least
one '0' cell. Each bit is once again encoded on two cells:
one '0' cell. Each bit is once again encoded on two cells:
- the first cell, called the clock bit, is '1' if both the previous
and current data bits are 0, '0' otherwise
@ -252,7 +252,7 @@ maximum of three zeroes.
Group Coded Recording, or GCR, encodings are a class of encodings
where strings of bits at least nibble-size are encoded into a given
cell stream given by a table. It has been used in particular by the
apple 2, the mac and the c64, and each system has its own table, or
Apple II, the Mac and the C64, and each system has its own table, or
tables.
2.3.1.5 Other encodings
@ -342,7 +342,7 @@ usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for
The crc is a cyclic redundancy check of the data bits starting with
the mark just after the pulse train using polynom 0x11021.
The western digital-based controllers usually get rid of everything
The Western Digital-based controllers usually get rid of everything
but some 0xff before the first sector and allow a better use of space
as a result.
@ -365,19 +365,19 @@ Then for each sector:
- MFM-encoded 0xfb, sector data followed by two bytes of crc
- A number of MFM-encoded 0x4e (usually 84, very variable)
The the track is finished with a stream of MFM-encoded 0x4e.
The track is finished with a stream of MFM-encoded 0x4e.
The 250KHz pulse trains are used to lock the PLL to the signal
correctly. The cell pattern 4489 does not appear in normal
MFM-encoded data and is used for clock/data separation.
MFM-encoded data and is used for clock/data separation.
As for FM, the western digital-based controllers usually get rid of
As for FM, the Western Digital-based controllers usually get rid of
everything but some 0x4e before the first sector and allow a better
use of space as a result.
2.3.2.3 Formatting and write splices
To be usable a floppy must have the sector headers and default sector
To be usable, a floppy must have the sector headers and default sector
data written on every track before using it. The controller starts
writing at a given place, often the index pulse but on some systems
whenever the command is sent, and writes until a complete turn is
@ -392,7 +392,7 @@ Similarly two write splices are created when a sector is written at
the start and end of the data block part. They're not supposed to
happen on a mastered disk though, even if there are some rare
exceptions.
3 The new implementation
3.1 Floppy disk representation
@ -417,7 +417,7 @@ position of the start of the cell (not the size), and bits
- 3, MG_D -> Damaged zone, reads as neutral but cannot be changed by writing
The position is in angular units of 1/200,000,000th of a turn. It
corresponds to one nanosecond when the drive rotates at 300rpm.
corresponds to one nanosecond when the drive rotates at 300 rpm.
The last cell implicit end position is of course 200,000,000.
@ -523,7 +523,7 @@ extract_sectors_from_bitstream_fm_pc(const UINT8 *cell stream,
int sectdata_size)
Extract standard mfm or fm sectors from a regenerated
cell stream. Sectors must point to an array of 256 desc_xs.
cell stream. Sectors must point to an array of 256 desc_xs.
An existing sector is recognizable by having ->data non-null.
Sector data is written in sectdata up to sectdata_size bytes.
@ -563,8 +563,8 @@ the current time is the same for all devices.
3.3.1 Control signals
Due to the way they're usually connected to cpus (e.g. directly on an
i/o port) the controls signals work with physical instead of logical
Due to the way they're usually connected to CPUs (e.g. directly on an
I/O port), the control signals work with physical instead of logical
values. Which means than in general 0 means active, 1 means inactive.
Some signals also have a callback associated called when they change.

View File

@ -42,7 +42,7 @@ converge_y [r,g,b] Convergence in screen-relative Y directi
radial_converge_x [r,g,b] Radial convergence in screen-relative X direction.
radial_converge_y [r,g,b] Radial convergence in screen-relative Y direction.
Allowed values for convergence: -150 to 150 for each color.
red_ratio [r,g,b] These parameters define a 3x3 matrix which is multiplied
red_ratio [r,g,b] These parameters define a 3x3 matrix which is multiplied
grn_ratio [r,g,b] by the incoming RGB signal. This can be used for any
blu_ratio [r,g,b] standard matrix convolution, including H/S/V or simply
affecting the TV-style tint.
@ -109,4 +109,4 @@ bloom_lvl6_weight 0.13 Bloom level 6 (.) weight. (0.00-1.00)
bloom_lvl7_weight 0.12 Bloom level 7 (.) weight. (0.00-1.00)
bloom_lvl8_weight 0.11 Bloom level 8 (.) weight. (0.00-1.00)
bloom_lvl9_weight 0.10 Bloom level 9 (.) weight. (0.00-1.00)
bloom_lvl10_weight 0.09 Bloom level 10 (1x1 target) weight. (0.00-1.00)
bloom_lvl10_weight 0.09 Bloom level 10 (1x1 target) weight. (0.00-1.00)

View File

@ -81,7 +81,7 @@ only for early revisions of lynx archivs
only extraction supported
not heavily tested
Lynx archivs could and should be handled in a c64 emulation
Lynx archivs could and should be handled in a c64 emulation
with the native lynx tool
@ -128,7 +128,7 @@ special disk controller necessary for enhanced density
type 7: 3 1/2 inch, enhanced density, DS, 2.88mb: sectors 36, heads 2, tracks 80
unix with bash: use
dd if=/dev/zero of=<name.dsk> bs=512 count=$((9*2*40))
dd if=/dev/zero of=<name.dsk> bs=512 count=$((9*2*40))
to generate standard blank 360kb image
@ -145,14 +145,14 @@ standard parameter for common disk formats:
type 0: 20mb standard pc/xt harddisk: 17 sectors, 4 heads, 615 cylinders
unix with bash: use
dd if=/dev/zero of=<name.dsk> bs=512 count=$((17*4*615))
dd if=/dev/zero of=<name.dsk> bs=512 count=$((17*4*615))
to generate standard blank 20mb pc xt harddisk image
Virtual MSX tape archive
------------------------
Converts .tap files from Virtual MSX 1.x to .cas files. It is not
fault-tolerant.
fault-tolerant.
Virtual MSX Game Master 2 SRAM file
@ -161,7 +161,7 @@ Very simple, not overly useful but some might want it. Virtual MSX stored the
SRAM of Konami's Game Master 2 in "gmaster2.ram". To convert this to something
useful with MESS and other MSX emulators, go:
imgtool getall vmsx_gm2 gmaster2.ram
imgtool getall vmsx_gm2 gmaster2.ram
You'll get a file called gmaster2.mem, which must place in the correct directory
of mess to use (MESS\MEMCARD\GameMaster2 if your Game Master 2 .rom file is
@ -174,7 +174,7 @@ Converts .cas files to .wav files. The MSX driver can use .cas files directly
so you don't have to convert them. You can use it to export files to a real
MSX. Connect the MSX to the line out of your computer. Give the apropriate
command on the MSX (BLOAD "CAS:",R for example) and then play the .wav file
on your computer.
on your computer.
imgtool dir fmsx_cas file.cas
imgtool getall fmsx_cas file.cas
@ -185,7 +185,7 @@ XelaSoft Archive (.xsa)
-----------------------
The XelaSoft Archive is a compressed file. It can only contain one
file. Although it can contain any file, it's always used for MSX disk
file. Although it can contain any file, it's always used for MSX disk
images. The were programs written by XelaSoft which made a dump
of a disk, and compressing them at the same time. Very useful to store
a disk dump on another disk. zip/gzip offer much better compression and
@ -205,7 +205,7 @@ emulators, is .dsk (a plain dump without any header information). This
filetype converts them all to .dsk format.
msx_img are disk images with an extra byte at the beginning. It' 1 (0x01)
for single-sided images and 2 (0x02) for double-side images. These
for single-sided images and 2 (0x02) for double-side images. These
files are at: ftp://ftp.funet.fi/pub/msx/. The extension is .img
msx_ddi are DiskDupe 5.12 disk images. There is a 0x1800 bytes header
@ -215,9 +215,9 @@ often contain garbage so it's simply stripped. The extension is .ddi
msx_msx are disk images with a weird sector order. You can find them
at: ftp://jazz.snu.ac.kr/pub/msx/. The extension is .msx
msx_mul are "multi disk" images, used by fmsx-dos 1.6. It is simply
msx_mul are "multi disk" images, used by fmsx-dos 1.6. It is simply
more than one .dsk image appended to one another. The extension is
still .dsk, but the file is larger than 720kB (actually always a
still .dsk, but the file is larger than 720kB (actually always a
multiple of 720kB.
@ -235,7 +235,7 @@ The card filesystem is similar to FAT, but not identical.
The maximum card size is 1mb, and maximum file size is 64k.
(Files will be cut at 64k if they are larger - e.g. when putting a large file)
As far as I know there is no directory system, however there is always a
As far as I know there is no directory system, however there is always a
system "NC100" directory which points to the root directory. (Like the DOS "."
directory).

View File

@ -34,11 +34,11 @@ tree. The final class hierarchy is this:
|
+------+--------+--+--+-------+-------+
| | | | | |
6510 deco16 6504 6509 n2a03 65c02
6510 deco16 6504 6509 n2a03 65c02
| |
+-----+-----+ r65c02
| | | |
6510t 7501 8502 +---+---+
6510t 7501 8502 +---+---+
| |
65ce02 65sc02
|

View File

@ -30,12 +30,12 @@ Windows debugging options
Specifies the name of the font to use for debugger windows. By default,
the font is Lucida Console.
-debugger_font_size <points> / -dfontsize <points>
Specifies the size of the font to use for debugger windows, in points.
By default, this is set to 9pt.
Windows performance options
@ -54,13 +54,13 @@ Windows performance options
window and all DirectDraw/Direct3D code to execute on a second thread,
which can improve performance on hyperthreaded and multicore systems.
The default is OFF (-nomultithreading).
-numprocessors <auto|value> / -np <auto|value>
Specify the number of processors to use for work queues. Specifying
"auto" will use the value reported by the system or environment
"auto" will use the value reported by the system or environment
variable OSDPROCESSORS. To avoid abuse, this value is internally limited
to 4 times the number of processors reported by the system.
to 4 times the number of processors reported by the system.
The default is "auto".
-profile [n]

View File

@ -64,7 +64,7 @@ CIRCUIT_LAYOUT( breakout )
CHIP("S2", DIPSWITCH, &dipswitch2_desc)
CHIP("S3", DIPSWITCH, &dipswitch3_desc)
CHIP("S4", DIPSWITCH, &dipswitch4_desc)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-7) // works and is sufficient
//CHIP("CLOCK", CLOCK_14_318_MHZ)
@ -80,7 +80,7 @@ CIRCUIT_LAYOUT( breakout )
CHIP("C36", CAPACITOR, &c36_desc)
CHIP("C37", CAPACITOR, &c37_desc)
CHIP("PAD_EN_BUF", BUFFER, &pad_en_buf_desc)
CHIP("A3", 7474)
CHIP("A4", 7408)
CHIP("A5", 7400)
@ -105,7 +105,7 @@ CIRCUIT_LAYOUT( breakout )
CHIP("C7", 9316)
CHIP("C8", 9316)
CHIP("C9", 555_Mono, &c9_555_desc)
CHIP("D2", 7432)
CHIP("D3", 7474)
CHIP("D4", 9316)
@ -208,11 +208,11 @@ CIRCUIT_LAYOUT( breakout )
CHIP("COIN1", COIN_INPUT)
//CHIP("COIN2", COIN_INPUT)
CHIP("START", START_INPUT)
CHIP("SERVE", BUTTONS1_INPUT)
//TODO: coin2 and start 2
VIDEO(breakout)
@ -256,7 +256,7 @@ CIRCUIT_LAYOUT( breakout )
#define H64 "K2", 3
#define H128 "K2", 6
//#define V1
//#define V1
#define V2 "M3", 3
#define V4 "M3", 6
#define V8 "M3", 11
@ -274,10 +274,10 @@ CIRCUIT_LAYOUT( breakout )
#define BSYNC "J1", 15
#define BSYNC_n "J1", 14
#define BALL "D7", 6
#define BALL "D7", 6
#define BALL_DISPLAY "A4", 6
#define PLAYFIELD "H4", 3
#define SCORE "D3", 5
#define PLAYFIELD "H4", 3
#define SCORE "D3", 5
#define VERT_TRIG_n "H1", 8
#define CLOCK "H1", 11
@ -292,7 +292,7 @@ CIRCUIT_LAYOUT( breakout )
#define COIN "L9", 6
#define COIN1_n "F8", 5
#define COIN2_n "H9", 5
#define COIN2_n "H9", 5
#define CREDIT_1_OR_2 "L9", 3
#define CREDIT_1_OR_2_n "F9", 8
#define CREDIT2 "F9", 6
@ -306,7 +306,7 @@ CIRCUIT_LAYOUT( breakout )
#define P2_CONDITIONAL "H1", 3
#define P2_CONDITIONAL_dash "H7", 8
#define PLAYER_2 "B4", 14
#define PLAYER_2 "B4", 14
#define PLAYER_2_n "M9", 8
#define START_GAME "D8", 6
@ -317,24 +317,24 @@ CIRCUIT_LAYOUT( breakout )
#define BG1 "K8", 8
#define BG2_n "K8", 5
#define BG2 "K8", 6
#define FREE_GAME_TONE "N7", 3
#define BONUS_COIN "L9", 11
//#define Q "E9", 6
#define LAT_Q "E9", 6
#define Q_n "LATCH", 3
#define SBD_n "D2", 11
#define PLAY_CP "D2", 8
#define PLGM2_n "F7", 7
#define PLGM2_n "F7", 7
#define VB_HIT_n "A5", 6
#define SERVE_n "SERVE", 1
#define SERVE_WAIT "A3", 9
#define SERVE_WAIT_n "A3", 8
#define SERVE_WAIT_n "A3", 8
#define BRICK_DISPLAY "E3", 1
#define BRICK_DISPLAY "E3", 1
#define BRICK_HIT "E6", 5
#define BRICK_HIT_n "E6", 6
@ -401,14 +401,14 @@ CIRCUIT_LAYOUT( breakout )
#define FPD1_n "F3", 9
#define FPD2 "F3", 6
#define FPD2_n "F3", 7
#define COUNT "N7", 11
#define COUNT_1 "N7", 8
#define COUNT_2 "N7", 6
#define ATTRACT "E6", 8
#define ATTRACT_n "E6", 9
#define BRICK_SOUND "B8", 14
#define P_HIT_SOUND "B7", 12
#define VB_HIT_SOUND "B7", 11
@ -416,7 +416,7 @@ CIRCUIT_LAYOUT( breakout )
#define LH_SIDE "J3", 13
#define RH_SIDE "H2", 3
#define TOP_BOUND "K4", 6
// CONNECTION(CREDIT_1_OR_2, "CREDIT_LIGHT1", 1)
// CONNECTION(CREDIT2, "CREDIT_LIGHT2", 1)
// CONNECTION(SERVE_WAIT_n, "SERVE_LIGHT", 1)
@ -540,7 +540,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P2_CONDITIONAL, "M2", 7)
CONNECTION(GND, "M2", 4)
CONNECTION(GND, "M2", 16)
CONNECTION("M2", 14, "N2", 13)
CONNECTION(V16_d, "N2", 10)
CONNECTION(V32_d, "N2", 8)
@ -608,7 +608,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P, "K1", 10)
CONNECTION(CLOCK, "K1", 2)
CONNECTION("L1", 15, "K1", 7)
CONNECTION(P, "L1", 1)
CONNECTION(P, "L1", 3)
CONNECTION(GND, "L1", 4)
@ -631,7 +631,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("M1", 15, "H2", 5)
CONNECTION("L1", 15, "H2", 4)
CONNECTION(V128_d, "N4", 5)
CONNECTION(V64_d, "N4", 3)
CONNECTION(V32_d, "N4", 4)
@ -648,7 +648,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("L1", 15, "M1", 7)
CONNECTION("K1", 15, "M1", 10)
//9312 circuit
CONNECTION(PLAYER_2, "M9", 9)
CONNECTION(BALL_A, "C5", 5)
@ -758,7 +758,7 @@ CIRCUIT_LAYOUT( breakout )
//PADDLES
CONNECTION(ATTRACT_n, "B2", 4)
CONNECTION("B2", 3, "E9", 13)
CONNECTION(PLAYER_2_n, "M3", 9)
CONNECTION(V128, "M3", 10)
@ -810,7 +810,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P, "D4", 10)
CONNECTION("C3", 11, "D4", 7)
CONNECTION(VSYNC_n, "D4", 1)
CONNECTION("D4", 15, "E4", 10)
CONNECTION("H7", 6, "E4", 9)
CONNECTION("C9", 3, "H7", 5)
@ -839,14 +839,14 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(V32_d, "J2", 9)
CONNECTION("J2", 8, "C2", 10)
CONNECTION("C2", 6, "C2", 9)
//SCORE
CONNECTION(SCI_n, "D3", 4)
CONNECTION(GND, "D3", 2)
CONNECTION(GND, "D3", 3)
CONNECTION(GND, "D3", 1)
//PLAYER2_CONDITIONAL
CONNECTION(PLAYER_2, "H7", 10)
CONNECTION(GND, "S2", 1)
@ -874,7 +874,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(PLAYER_2, "M6", 7)
CONNECTION(COUNT_2, "M6", 2)
CONNECTION(START_GAME_n, "M6", 1)
CONNECTION("M6", 15, "L6", 10)
CONNECTION(PLAYER_2, "L6", 7)
CONNECTION(COUNT_2, "L6", 2)
@ -884,7 +884,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(RAM_PLAYER1, "H6", 7)
CONNECTION(COUNT_1, "H6", 2)
CONNECTION(START_GAME_n, "H6", 1)
CONNECTION("H6", 15, "J6", 10)
CONNECTION(RAM_PLAYER1, "J6", 7)
CONNECTION(COUNT_1, "J6", 2)
@ -917,7 +917,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("N8", 9, "N9", 11)
CONNECTION(P, "N9", 15)
CONNECTION(P, "N9", 5)
CONNECTION(COUNT, "N9", 4)
CONNECTION(START_GAME, "N9", 14)
CONNECTION(H8_n, "N9", 1)
@ -991,7 +991,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(CKBH, "H1", 12)
CONNECTION("F1", 14, "H1", 13)
CONNECTION("F1", 15, "E1", 5)
CONNECTION(P, "F1", 1)
CONNECTION(P, "F1", 7)
CONNECTION(P, "F1", 10)
@ -1029,7 +1029,7 @@ CIRCUIT_LAYOUT( breakout )
// Coin Circuit
CONNECTION("COIN1", 1, "F9", 13)
CONNECTION(CSW1, "F9", 11)
//CONNECTION("F9", 10, "F9", 13) //TODO: causes lots of bouncing, commented out since this trace is not implemented in gotcha
@ -1044,7 +1044,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(V64I, "F8", 3)
CONNECTION("F8", 9, "F8", 2)
CONNECTION(CSW1, "F8", 4)
CONNECTION("F8", 6, "H8", 12)
CONNECTION(P, "H8", 10)
CONNECTION(V16_d, "H8", 11)
@ -1063,7 +1063,7 @@ CIRCUIT_LAYOUT( breakout )
//COIN2 circuit
//CONNECTION("COIN2", 1, "F9", 1)
CONNECTION(GND, "F9", 1) //TODO: coin2 not implemented
CONNECTION(CSW2, "F9", 3)
CONNECTION(CSW2, "H9", 10)
CONNECTION("F9", 4, "H9", 12)
@ -1073,7 +1073,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("H9", 9, "H9", 2)
CONNECTION(CSW2, "H9", 4)
CONNECTION(P, "H9", 1)
CONNECTION(P, "H8", 4)
CONNECTION("H9", 6, "H8", 2)
CONNECTION(V16_d, "H8", 3)
@ -1179,7 +1179,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P, "D3", 12)
CONNECTION(START_GAME, "D3", 11)
CONNECTION(SERVE_n, "D3", 13)
//Playfield
CONNECTION(LH_SIDE, "H3", 1)
CONNECTION(TOP_BOUND, "H3", 13)
@ -1187,7 +1187,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("H3", 12, "H4", 2)
CONNECTION("E1", 2, "C36", 1)
CONNECTION("C36", 2, "H4", 1)
CONNECTION(BALL_DISPLAY, "A5", 10)
CONNECTION(PSYNC, "A5", 9)
CONNECTION(BSYNC, "C3", 2)
@ -1200,7 +1200,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("C5", 12, "A5", 2)
CONNECTION(BSYNC, "A5", 5)
CONNECTION(VSYNC, "A5", 4)
CONNECTION("C5", 12, "A5", 13)
CONNECTION("A5", 3, "A5", 12)
@ -1213,7 +1213,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("C4", 6, "A6", 12)
CONNECTION(BP_HIT_n, "A6", 11)
CONNECTION(P, "A6", 13)
CONNECTION("A5", 3, "A6", 4)
CONNECTION(V16_d, "A6", 2)
CONNECTION(VB_HIT_n, "A6", 3)
@ -1241,7 +1241,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("B5", 6, "C5", 11)
CONNECTION("B5", 7, "C5", 9)
CONNECTION(SU_n, "B5", 11)
CONNECTION(P, "B5", 15)
CONNECTION(P, "B5", 1)
@ -1326,7 +1326,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P, "F4", 2)
CONNECTION("E4", 3, "F4", 3)
CONNECTION(START_GAME1_n, "F4", 1)
CONNECTION(P, "F4", 10)
CONNECTION(P, "F4", 12)
CONNECTION("E4", 6, "F4", 11)
@ -1339,8 +1339,8 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(P, "F3", 3)
CONNECTION(P, "F3", 13)
//CREDIT_COUNTER
CONNECTION(BONUS_COIN, "E7", 8)
CONNECTION(COIN, "E7", 9)
@ -1364,7 +1364,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("L8", 6, "M8", 10)
CONNECTION("L8", 2, "M8", 11)
CONNECTION("L8", 3, "M9", 13)
CONNECTION(CREDIT2_n, "F9", 5)
CONNECTION(CREDIT2_n, "L9", 2)
CONNECTION("M9", 12, "L9", 1)
@ -1402,11 +1402,11 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION(BALL_C, "S4", 2)
CONNECTION("S4", 3, "A4", 1)
CONNECTION("A4", 3, "C37", 1)
CONNECTION(SERVE_WAIT_n, "A4", 5)
CONNECTION(BALL, "A4", 4)
// Ball Circuit
// Ball Circuit
// Video Summing
@ -1428,7 +1428,7 @@ CIRCUIT_LAYOUT( breakout )
CONNECTION("VIDEO", Video::HBLANK_PIN, HSYNC)
CONNECTION("VIDEO", Video::VBLANK_PIN, "E3", 10)
// Audio Summing
CONNECTION("AUDIO", 1, "B9", 11)

View File

@ -155,21 +155,21 @@ ROM_START( dmac_hdc )
ROMX_LOAD("390721-01.u13", 0x4000, 0x2000, CRC(00dbf615) SHA1(503940d04fb3b49eaa61100fd3a487018b35e25a), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD("390722-01.u12", 0x4001, 0x2000, CRC(c460cfdb) SHA1(0de457daec3b84f75e8fb344defe24ce56cda3e0), ROM_SKIP(1) | ROM_BIOS(2))
// changelog v6.6: fixes dual scsi problems with the wd33c93a controller
// changelog v6.6: fixes dual SCSI problems with the wd33c93a controller
ROM_SYSTEM_BIOS(2, "v66", "Version 6.6")
ROMX_LOAD("390721-02.u13", 0x0000, 0x2000, CRC(c0871d25) SHA1(e155f18abb90cf820589c15e70559d3b6b391af8), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390722-02.u12", 0x0001, 0x2000, CRC(e536bbb2) SHA1(fd7f8a6da18c1b02d07eb990c2467a24183ede12), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390721-02.u13", 0x4000, 0x2000, CRC(c0871d25) SHA1(e155f18abb90cf820589c15e70559d3b6b391af8), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390722-02.u12", 0x4001, 0x2000, CRC(e536bbb2) SHA1(fd7f8a6da18c1b02d07eb990c2467a24183ede12), ROM_SKIP(1) | ROM_BIOS(3))
// final commodore released version
// final Commodore released version
ROM_SYSTEM_BIOS(3, "v70", "Version 7.0")
ROMX_LOAD("390721-03.u13", 0x0000, 0x2000, CRC(2942747a) SHA1(dbd7648e79c753337ff3e4f491de224bf05e6bb6), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390722-03.u12", 0x0001, 0x2000, CRC(a9ccffed) SHA1(149f5bd52e2d29904e3de483b9ad772448e9278e), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390721-03.u13", 0x4000, 0x2000, CRC(2942747a) SHA1(dbd7648e79c753337ff3e4f491de224bf05e6bb6), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390722-03.u12", 0x4001, 0x2000, CRC(a9ccffed) SHA1(149f5bd52e2d29904e3de483b9ad772448e9278e), ROM_SKIP(1) | ROM_BIOS(4))
// third-party upgrade rom, requires a small rom adapter pcb
// third-party upgrade ROM, requires a small ROM adapter pcb
ROM_SYSTEM_BIOS(4, "g614", "Guru-ROM 6.14")
ROMX_LOAD("gururom_v614.bin", 0x0000, 0x8000, CRC(04e52f93) SHA1(6da21b6f5e8f8837d64507cd8a4d5cdcac4f426b), ROM_GROUPWORD | ROM_BIOS(5))
@ -234,7 +234,7 @@ void a590_device::device_start()
{
set_zorro_device();
// setup dmac
// setup DMAC
m_dmac->set_address_space(m_slot->m_space);
m_dmac->set_rom(memregion("bootrom")->base());
}
@ -243,7 +243,7 @@ void a2091_device::device_start()
{
set_zorro_device();
// setup dmac
// setup DMAC
m_dmac->set_address_space(m_slot->m_space);
m_dmac->set_rom(memregion("bootrom")->base());
}
@ -258,7 +258,7 @@ void dmac_hdc_device::device_reset()
void dmac_hdc_device::resize_ram(int config)
{
// allocate space for ram
// allocate space for RAM
switch (config & 0x0f)
{
case 0x01:
@ -301,7 +301,7 @@ WRITE_LINE_MEMBER( a590_device::cfgin_w )
m_int6 = m_jp4->read() & 0x01;
resize_ram(m_dips->read() & 0x0f);
// then tell the dmac to start configuring
// then tell the DMAC to start configuring
m_dmac->configin_w(state);
}
@ -311,7 +311,7 @@ WRITE_LINE_MEMBER( a2091_device::cfgin_w )
m_int6 = m_jp3->read() & 0x01;
resize_ram(m_jp1->read() & 0x0f);
// then tell the dmac to start configuring
// then tell the DMAC to start configuring
m_dmac->configin_w(state);
}
@ -345,6 +345,6 @@ WRITE_LINE_MEMBER( dmac_hdc_device::dmac_int_w )
WRITE_LINE_MEMBER( dmac_hdc_device::scsi_irq_w )
{
// should be or'ed with xt-ide irq
// should be or'ed with xt-ide IRQ
m_dmac->intx_w(state);
}

View File

@ -1,7 +1,7 @@
intel 8086 and compatibles
--------------------------
this info is here,
this info is here,
to list and give some remarks on all 8086 compatible processors
excellent info in Hamarsoft's 86BUGS list
@ -12,13 +12,13 @@ excellent info in Hamarsoft's 86BUGS list
20 bit address bus, 16 bit data bus and registers
many 8080 assembler sources should be compilable/reusable
8086
8086
----
6 bytes prefetch queue
8088
----
8086 with 8 bit data bus,
8086 with 8 bit data bus,
prefetch queue only 4 byte, and refilled when 1 byte empty
early 8086/8088 revisions bug
@ -93,7 +93,7 @@ v30? emulation mode (without 8080 emulation mode)
80286
-----
80186 with additional instructions
24 bit address bus,
24 bit address bus,
protected mode
80386 and later
@ -106,6 +106,6 @@ mathematical coprocessors
weitek, iit variants
in 80486 coprocessor integrated
in 80486 coprocessor integrated
(except 80486sx and several clones)
80487: 80486 with other pinout

View File

@ -48,7 +48,7 @@ const device_type FLOPPY_8_DSSD = &device_creator<floppy_8_dssd>;
const device_type FLOPPY_8_SSDD = &device_creator<floppy_8_ssdd>;
const device_type FLOPPY_8_DSDD = &device_creator<floppy_8_dsdd>;
// epson 3.5" drives
// Epson 3.5" drives
#if 0
const device_type EPSON_SMD_110 = &device_creator<epson_smd_110>;
const device_type EPSON_SMD_120 = &device_creator<epson_smd_120>;
@ -70,7 +70,7 @@ const device_type EPSON_SMD_480LM = &device_creator<epson_smd_480lm>;
const device_type EPSON_SMD_489M = &device_creator<epson_smd_489m>;
#endif
// epson 5.25" drives
// Epson 5.25" drives
#if 0
const device_type EPSON_SD_311 = &device_creator<epson_sd_311>;
#endif
@ -88,12 +88,12 @@ const device_type EPSON_SD_621L = &device_creator<epson_sd_621l>;
const device_type EPSON_SD_680L = &device_creator<epson_sd_680l>;
#endif
// sony 3.5" drives
// Sony 3.5" drives
const device_type SONY_OA_D31V = &device_creator<sony_oa_d31v>;
const device_type SONY_OA_D32W = &device_creator<sony_oa_d32w>;
const device_type SONY_OA_D32V = &device_creator<sony_oa_d32v>;
// teac 5.25" drives
// TEAC 5.25" drives
#if 0
const device_type TEAC_FD_55A = &device_creator<teac_fd_55a>;
const device_type TEAC_FD_55B = &device_creator<teac_fd_55b>;
@ -1672,7 +1672,7 @@ void epson_sd_321::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d31v
// Sony OA-D31V
//
// track to track: 15 ms
// average: 365 ms
@ -1706,7 +1706,7 @@ void sony_oa_d31v::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d32w
// Sony OA-D32W
//
// track to track: 12 ms
// average: 350 ms
@ -1742,7 +1742,7 @@ void sony_oa_d32w::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d32v
// Sony OA-D32V
//
// track to track: 12 ms
// average: 350 ms
@ -1777,7 +1777,7 @@ void sony_oa_d32v::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// teac fd-55f
// TEAC FD-55F
//
// track to track: 3 ms
// average: 94 ms
@ -1815,7 +1815,7 @@ void teac_fd_55f::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// teac fd-55g
// TEAC FD-55G
//
// track to track: 3 ms
// average: 91 ms

View File

@ -263,7 +263,7 @@ void vrc4373_device::dma_transfer(int which)
m_cpu_regs[NREG_DMA_CPAR] += 0x4;
m_cpu_regs[NREG_DMA_REM]--;
}
}
}
// CPU I/F
READ32_MEMBER (vrc4373_device::cpu_if_r)
{
@ -347,13 +347,13 @@ WRITE32_MEMBER(vrc4373_device::cpu_if_w)
case NREG_DMACR1:
case NREG_DMACR2:
// Start when DMA_GO bit is set
if (!(oldData & DMA_GO) && (data & DMA_GO)) {
if (!(oldData & DMA_GO) && (data & DMA_GO)) {
int which = (offset-NREG_DMACR1)>>3;
// Check to see DMA is not already started
if (!(data&DMA_BUSY)) {
// Set counts and address
m_cpu_regs[NREG_DMA_CPAR] = m_cpu_regs[NREG_DMAPCI1+which*0xC];
m_cpu_regs[NREG_DMA_CMAR] = m_cpu_regs[NREG_DMAMAR1+which*0xC];
m_cpu_regs[NREG_DMA_CMAR] = m_cpu_regs[NREG_DMAMAR1+which*0xC];
m_cpu_regs[NREG_DMA_REM] = (data & DMA_BLK_SIZE)>>2;
m_cpu_regs[NREG_DMACR1+which*0xc] |= DMA_BUSY;
// Start the transfer

View File

@ -120,7 +120,6 @@ private:
UINT32 m_pci1_laddr, m_pci2_laddr, m_pci_io_laddr;
UINT32 m_target1_laddr, m_target2_laddr;
};

View File

@ -94,9 +94,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(es1373_device::es_timer_callback)
// The initalized is to signal that inital buffer has been written
if (m_dac2.buf_count<=m_dac2.buf_size && m_dac2.initialized) {
// Send data to sound???
// sound = m_sound_cache[chan.buf_rptr]
if (0 && LOG_ES)
logerror("%X: DAC2 buf_count: %i buf_size: %X buf_rptr: %X buf_wptr: %X\n", machine().device("maincpu")->safe_pc(),
// sound = m_sound_cache[chan.buf_rptr]
if (0 && LOG_ES)
logerror("%X: DAC2 buf_count: %i buf_size: %X buf_rptr: %X buf_wptr: %X\n", machine().device("maincpu")->safe_pc(),
m_dac2.buf_count, m_dac2.buf_size, m_dac2.buf_rptr, m_dac2.buf_wptr);
if (m_dac2.buf_count==m_dac2.buf_size) {
if (m_dac2.int_en) {
@ -122,8 +122,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(es1373_device::es_timer_callback)
}
if (m_adc.enable) {
if (m_adc.buf_count<=m_adc.buf_size) {
if (LOG_ES)
logerror("%s: ADC buf_count: %i buf_size: %i buf_rptr: %i buf_wptr: %i\n", machine().describe_context(),
if (LOG_ES)
logerror("%s: ADC buf_count: %i buf_size: %i buf_rptr: %i buf_wptr: %i\n", machine().describe_context(),
m_adc.buf_count, m_adc.buf_size, m_adc.buf_rptr, m_adc.buf_wptr);
if (m_adc.int_en && m_adc.buf_count==m_adc.buf_size) {
m_es_regs[ES_INT_CS_STATUS] |= ICSTATUS_ADC_INT_MASK;

View File

@ -114,7 +114,6 @@ private:
chan_info m_dac2;
chan_info m_adc;
void transfer_pci_audio(chan_info& chan, int type);
};
extern const device_type ES1373;

View File

@ -4,12 +4,12 @@
31 Jan 97
The PokeySound Chip Emulator is designed to emulate the functionality of the
Atari POKEY Chip Hardware through 'C' Sourcecode. The emulator is able to
produce sounds which are essentially identical to the original POKEY chip,
including the exact distortions and pitches.
Atari POKEY Chip Hardware through 'C' Sourcecode. The emulator is able to
produce sounds which are essentially identical to the original POKEY chip,
including the exact distortions and pitches.
The emulator is designed to run in a 32-bit environment. Though it can be
compiled and run in a 16-bit environment, it is slow.
compiled and run in a 16-bit environment, it is slow.
I would like to give special thanks to Neil Bradley. He provided excellent
testing support and was also the driving force behind the multiple POKEY
@ -26,9 +26,9 @@ Version 2.0 of the 'PokeySound' adds the following features:
2) An adjustable gain. The previous releases had a built-in gain of 64.
3) A clipping option. Depending on the number of chips emulated and the
configured gain, it is possible for the output to exceed 8-bits.
configured gain, it is possible for the output to exceed 8-bits.
Clipping can be enabled to prevent this, though it does increase the
processing time.
processing time.
Standard Features:
@ -36,12 +36,12 @@ Standard Features:
The 'PokeySound' emulator supports the following functions:
1) All polynomial sound generators:
1) All polynomial sound generators:
a) 4-bit poly - actual bit pattern determined from sampled sound
b) 5-bit poly - actual bit pattern determined from sampled sound
c) 17-bit poly - simulated random bit pattern
d) 9-bit poly - derived from simulated 17-bit poly
2) Full support of all 'Divide by N' counter clocks:
a) 1.79 MHz (high limited to playback sample rate)
b) 64 KHz (high limited to playback sample rate)
@ -51,7 +51,7 @@ The 'PokeySound' emulator supports the following functions:
a) 8-bit - single channel
b) 16-bit - double channel
4) Full support of all distortions
4) Full support of all distortions
a) 5-bit poly, then 17-bit poly
b) 5-bit poly only
c) 5-bit poly, then 4-bit poly
@ -59,7 +59,7 @@ The 'PokeySound' emulator supports the following functions:
e) no poly counters (pure tone)
f) 5-bit poly only
5) Full support of volume control
5) Full support of volume control
6) Full support of all pitches - distortions will vary exactly as the
original Atari based on different pitches
@ -84,39 +84,39 @@ In the 2.0 release, I've removed the non-optimized vrersion. It was only
left in for reference. If you would still like to see the non-optimized
version, it's available in the 1.2 release.
One of the unique features of the emulator is that the processing time varies
based on the frequency. Since the routine only calculates new output values
when a change is sensed, the lower frequencies (which change less frequently)
One of the unique features of the emulator is that the processing time varies
based on the frequency. Since the routine only calculates new output values
when a change is sensed, the lower frequencies (which change less frequently)
will require less processing time.
Differences Between the Emulator and the Actual POKEY Chip:
-----------------------------------------------------------
-----------------------------------------------------------
The biggest difference between the emulator and the original hardware is
that the emulator emulates an 'ideal' POKEY chip. All output from the
The biggest difference between the emulator and the original hardware is
that the emulator emulates an 'ideal' POKEY chip. All output from the
emulator is a based on a precise square wave, whereas the output from the
original chip has decay. Though the output is slightly different, I
don't believe this difference is easily discernible.
Another slight difference is the 17-bit/9-bit poly. Since the polynomial
is large (2^17 bits), I choose to create the sample using a random number
generator rather than a table. I don't believe this difference is
generator rather than a table. I don't believe this difference is
significant.
There are also a few differences which are introduced by aliasing. This is
a direct result of using an output sampling rate which is not identical to
the original sound rate. It is most evident with high frequencies.
the original sound rate. It is most evident with high frequencies.
A final difference is the lack of support for the High-Pass Filter
A final difference is the lack of support for the High-Pass Filter
functionality. I plan to add this in a future release if necessary.
Sample/Test Application:
------------------------
The test program I've distributed is a 16-bit DOS application created with
the Borland 'C' compiler. The only reason I used 16-bit was because I
The test program I've distributed is a 16-bit DOS application created with
the Borland 'C' compiler. The only reason I used 16-bit was because I
already had a set of working SB drivers in 16-bit. Since the test system
is dedicated to generating sounds, the performance in 16-bit is more than
adequate.
@ -125,20 +125,20 @@ adequate.
POKEY.C
=======
The POKEY.C file is the heart of the PokeySound Emulation program.
The POKEY.C file is the heart of the PokeySound Emulation program.
Although the routines in the file must work together, no other files are
modules are required for operation. A header file, 'POKEY.H', has
been included for use in other modules, and provides the necessary
modules are required for operation. A header file, 'POKEY.H', has
been included for use in other modules, and provides the necessary
function prototypes. I've attempted to make the routines as portable as
possible, so the file should compile on almost any compiler with little
or no modification.
or no modification.
I have made some attempts at optimizing the routines, though I am sure
more optimization can be done. They are currently only available in 'C'.
I'll be happy to convert them to assembly language if desired. Please feel
I'll be happy to convert them to assembly language if desired. Please feel
free to send me e-mail at rfries@tcmail.frco.com.
The routines are easy to use. Detailed descriptions on the function calls
The routines are easy to use. Detailed descriptions on the function calls
are listed below.
The POKEY.C module can be compiled in a 32-bit or 16-bit environment.
@ -150,17 +150,17 @@ the variable COMP16.
GENERAL OVERVIEW
----------------
On start-up of the system, a single call should be made to Pokey_sound_init.
On start-up of the system, a single call should be made to Pokey_sound_init.
This routine will prepare the structures for sound output. This routine
can be called again if necessary during warm-start or other reset.
Once in the main loop, there are two other functions that will be used.
Once in the main loop, there are two other functions that will be used.
Whenever the system needs to write to either the AUDC or AUDF values,
a call should be made to the Update_pokey_sound routine. This routine will
a call should be made to the Update_pokey_sound routine. This routine will
take care of updating the internal registers. It will pre-calculate several
values to help with optimization.
The only other routine that is called is the Pokey_process function. This
The only other routine that is called is the Pokey_process function. This
function will fill a audio buffer with a specified number of bytes. This
function should be called whenever a new audio buffer is required.
@ -176,44 +176,44 @@ Pokey_sound_init(uint32 freq17, uint16 playback_freq, uint8 num_pokeys)
-----------------------------------------------------------------------
This function initializes the structures used by the PokeySound routines.
This function takes three parameters: the main clock frequency, the
This function takes three parameters: the main clock frequency, the
playback frequency and the number of POKEY chips to emulate.
The maximum number of POKEY chips emulated is configured at compile time.
Though the maximum number of chips can be configured as one, the PokeySound
1.2 routines are recommended if only a single chip is to be emulated since
they have will provide better performance.
Though the maximum number of chips can be configured as one, the PokeySound
1.2 routines are recommended if only a single chip is to be emulated since
they have will provide better performance.
The main clock frequency is the frequency of the 1.79MHz source clock.
To provide exact results, freq17 should be set equal to 1789790 Hz. As an
alternative, freq17 can be set to an approximate frequency of 1787520 Hz.
Using this approximate frequency will reduce aliasing and thus produce a
The main clock frequency is the frequency of the 1.79MHz source clock.
To provide exact results, freq17 should be set equal to 1789790 Hz. As an
alternative, freq17 can be set to an approximate frequency of 1787520 Hz.
Using this approximate frequency will reduce aliasing and thus produce a
clearer output signal.
A constant has been defined for both of these values for your convenience.
The names are FREQ_17_EXACT and FREQ_17_APPROX.
The playback frequency is the frequency of the sound playback (the frequency
used by the sound card). For best results, the playback frequency should
The playback frequency is the frequency of the sound playback (the frequency
used by the sound card). For best results, the playback frequency should
be an even division of the main clock frequency. Since most of the sounds
will be generated using the 64kHz clock, I also recommend making the
will be generated using the 64kHz clock, I also recommend making the
playback frequency an even division of the 64kHz clock.
The 64kHz clock is exactly equal to the main clock divided by 28. For
the playback frequency, I recommend one of the following values:
1) FREQ_17_APPROX / (28*1), which is equal to 63840. Of course, most sound
1) FREQ_17_APPROX / (28*1), which is equal to 63840. Of course, most sound
cards can't reproduce this frequency.
2) FREQ_17_APPROX / (28*2), which is equal to 31920. All of the newer cards
will support this frequency.
will support this frequency.
3) FREQ_17_APPROX / (28*3), which is equal to 21280. All of the SB
3) FREQ_17_APPROX / (28*3), which is equal to 21280. All of the SB
compatibles should support this frequency.
4) FREQ_17_APPROX / (28*4), which is equal to 15960. This may be the
best choice, as it offers good sound reproduction with good performance.
Of course, these options also assume you are using the approximate
frequency for the main clock as well. Any of these choices will offer the
best results when the main 64kHz clock is used, reasonable results when the
@ -231,7 +231,7 @@ Update_pokey_sound (uint16 addr, uint8 val, uint8 chip, uint8 gain)
This function should be called each time an AUDC, AUDF or AUDCTL value
changes. This function takes four parameters: the address to change,
the new value, the chip to be updated, and the gain to be used.
the new value, the chip to be updated, and the gain to be used.
The lower four bits of the address should be one of the following values:
Addr Description
@ -250,26 +250,26 @@ In order to support multiple POKEY chips, only the lower four bits of
the address are used. Note that this routine can no longer be called with
any address as it will affect the operation of the specified chip.
The routine pre-calculates several values that are needed by the
The routine pre-calculates several values that are needed by the
processing function. This is done to optimize performance.
The output will be amplified (multiplied) by gain/16 (previous releases had
a built in multiplier of 4, which calculates to a gain value of 64). If the
output exceeds the maximum value after then gain and clipping is enabled,
The output will be amplified (multiplied) by gain/16 (previous releases had
a built in multiplier of 4, which calculates to a gain value of 64). If the
output exceeds the maximum value after then gain and clipping is enabled,
the output will be limited to reduce distortion.
The best value for the gain depends on the number of POKEYs emulated and
the maximum volume used. The maximum possible output for each channel is 15,
making the maximum possible output for a single chip to be 60. Assuming all
four channels on the chip are used at full volume, a gain of 64 can be used
without distortion. If 4 POKEY chips are emulated and all 16 channels are
used at full volume, the gain must be no more than 16 to prevent distortion.
Of course, if only a few of the 16 channels are used or not all channels are
the maximum volume used. The maximum possible output for each channel is 15,
making the maximum possible output for a single chip to be 60. Assuming all
four channels on the chip are used at full volume, a gain of 64 can be used
without distortion. If 4 POKEY chips are emulated and all 16 channels are
used at full volume, the gain must be no more than 16 to prevent distortion.
Of course, if only a few of the 16 channels are used or not all channels are
used at full volume, a larger gain can be used.
To enable clipping, define the logical CLIP before compiling. This is the
default mode of operation as it has already been included in the POKEY.H file.
Note that this is only recommended if clipping is necessary since it will
Note that this is only recommended if clipping is necessary since it will
impact the performance.
This function has no return value (void).
@ -280,7 +280,7 @@ Pokey_process (uint8 *buffer, uint16 n)
This function calculates and fills a buffer with unsigned 8-bit mono audio.
This function takes two parameters: a pointer to the buffer to fill and
the size of the buffer (limited to 65535). This function fills the
the size of the buffer (limited to 65535). This function fills the
buffer based on the requested size and returns. It automatically
updates the pointers for the next call, so subsequent calls to this function
will provide a continuous stream of data.
@ -292,7 +292,7 @@ system and emulator performance.
Selecting the correct buffer size is a careful balance. Selecting a buffer
size that is too small will produce noticeable clicks in the output, though
selecting a size that is too large will cause a poor response time and
selecting a size that is too large will cause a poor response time and
possible delays in the system when the new buffer is filled.
This function has no return value (void).
@ -303,17 +303,17 @@ License Information and Copyright Notice
PokeySound is Copyright(c) 1996-1997 by Ron Fries
This library is free software; you can redistribute it and/or modify it under
the terms of version 2 of the GNU Library General Public License as published
This library is free software; you can redistribute it and/or modify it under
the terms of version 2 of the GNU Library General Public License as published
by the Free Software Foundation.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
details.
To obtain a copy of the GNU Library General Public License, write to the Free
To obtain a copy of the GNU Library General Public License, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Any permitted reproduction of these routines, in whole or in part, must bear
this legend.
Any permitted reproduction of these routines, in whole or in part, must bear
this legend.

View File

@ -123,10 +123,10 @@ static const int tune2[96*6] = {
/*
* The theme from Phoenix, a sad little tune.
* Gerald Coy:
* The starting song from Phoenix is coming from a old french movie and
* The starting song from Phoenix comes from an old French movie and
* it's called : "Jeux interdits" which means "unallowed games" ;-)
* Mirko Buffoni:
* It's called "Sogni proibiti" in italian, by Anonymous.
* It's called "Sogni proibiti" in Italian, by Anonymous.
* Magic*:
* This song is a classical piece called "ESTUDIO" from M.A.Robira.
*/

View File

@ -406,7 +406,7 @@ void tms5220_device::register_for_save_states()
save_item(NAME(m_digital_select));
save_item(NAME(m_io_ready));
save_item(NAME(m_true_timing));
save_item(NAME(m_rs_ws));

View File

@ -110,7 +110,7 @@ Stephh's additional notes (based on the games M68000 code and some tests) :
- There is no Dip Switch to determine if you are allowed to continue a game
or not, so you ALWAYS have the possibility to continue a game.
Stephh's log (2002.06.19) :
- Create macros for players inputs and "Coinage" Dip Switch

View File

@ -21,7 +21,7 @@ U3 Max691cpe
U300 Nec D7759GC (10Mhz xtal near it)
TODO:
- No idea about how to surpass the "No Funzione" (sic) screen. According to the bad settings almost
- No idea about how to surpass the "No Funzione" (sic) screen. According to the bad settings almost
surely it wants EEPROM hooked up (i/o at 0x680/0x682?)
*/
@ -41,7 +41,7 @@ public:
m_maincpu(*this, "maincpu") { }
required_device<cpu_device> m_maincpu;
DECLARE_READ16_MEMBER(unk_r);
};
@ -109,7 +109,7 @@ static INPUT_PORTS_START( gambl186 )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_START1 )
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
@ -251,7 +251,7 @@ static INPUT_PORTS_START( gambl186 )
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_START("DSW1")
PORT_DIPNAME( 0x01, 0x01, "1-1" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )

View File

@ -20,7 +20,7 @@
* Jack Potten's Poker (set 6), 198?, Bootleg.
* Jack Potten's Poker (set 7, Royale GFX), 198?, Bootleg.
* Good Luck, 198?, Unknown.
* Super Double (french), 198?, Karateco.
* Super Double (French), 198?, Karateco.
* Jack Potten's Poker (NGold, set 1), 198?, Unknown.
* Jack Potten's Poker (NGold, set 2), 198?, Unknown.
* Jack Potten's Poker (NGold, set 3), 198?, Unknown.
@ -104,7 +104,7 @@
* Falcons Wild - World Wide Poker (VK set 1), 1990, Video Klein.
* Falcons Wild - World Wide Poker (VK set 2), 1990, Video Klein.
* Falcons Wild - Wild Card 1991, 1991, TVG.
* PlayMan Poker (german), 1981, PM / Beck Elektronik.
* PlayMan Poker (German), 1981, PM / Beck Elektronik.
* Super Loco 93 (Spanish, set 1), 1993, Unknown.
* Super Loco 93 (Spanish, set 2), 1993, Unknown.
* Royale (set 1), 198?, Unknown.
@ -119,7 +119,7 @@
* Genie, 198?, Video Fun Games Ltd.
* Silver Game, 1983, Unknown.
* Casino Poker (Ver PM86LO-35-5, German), 1987, PM / Beck Elektronik.
* "Unknown french poker game", 198?, Unknown.
* "Unknown French poker game", 198?, Unknown.
* "Unknown encrypted poker game", 198?, Unknown.
* Bonne Chance! (Golden Poker prequel hardware), 198?, Unknown.
* Mundial/Mondial (Italian/French), 1987, Unknown.
@ -215,7 +215,7 @@
Maybe some settings can enable the use of them...
* Witch Card (spanish sets)
* Witch Card (Spanish sets)
This game is derivated from Golden Poker.
@ -336,7 +336,7 @@
The game has 2 service switches/buttons:
One for settings, and other just for bookkeeping.
Here the original Service Card (in german), and the english translation:
Here the original Service Card (in German), and the English translation:
_____________________________________ _____________________________________
| | | |
| SERVICE ANLEITUNG | | SERVICE MANUAL |
@ -772,10 +772,10 @@
- Fixed the visible area based on M6845 registers.
- Improved the lamps layouts to be more realistic.
- Added Good Luck (potten's poker hybrid running in goldnpkr hardware).
- Added Buena Suerte (spanish) x 2 sets.
- Added Buena Suerte (Spanish) x 2 sets.
- Added set Royale.
- Added Witch Card and spanish variants.
- Added Super Loco 93 (spanish) x 2 sets.
- Added Witch Card and Spanish variants.
- Added Super Loco 93 (Spanish) x 2 sets.
- Renamed set goldnpkc to pottnpkr (parent Jack Potten's Poker set).
- Renamed set jokerpkr to potnpkra, since is another Jack Potten's Poker set.
- Added other 2 clones of Jack Potten's Poker.
@ -817,11 +817,11 @@
[2009-09-05]
- Added 2 new Witch Card sets.
- Reworked inputs for Witch Card (german set 1).
- Created new inputs for Witch Card (english, witch game, lamps).
- Reworked inputs for Witch Card (German set 1).
- Created new inputs for Witch Card (English, witch game, lamps).
- Added and connected lamps for both sets.
- Added minimal bet and 50/60 Hz. switches to both sets.
- Added DIP switches info for Witch Card (german, set 2).
- Added DIP switches info for Witch Card (German, set 2).
- Added Genius, running in a modified Golden Poker board.
@ -844,7 +844,7 @@
[2010-11-18]
- Added Karateco Super Double (french)
- Added Karateco Super Double (French)
- Extended ROM space for goldnpkr game to include the 0x2000..0x3fff range
@ -4362,7 +4362,7 @@ ROM_END
ROM_LOAD( "epoxy_82s129.bin", 0x0100, 0x0100, CRC(f0c012b1) SHA1(5502977404172e8c5b9fbf305581a406668ad1d9) ) /* original epoxy block PROM */
ROM_END
/* Witch Card (spanish, set 1)
/* Witch Card (Spanish, set 1)
Unknown argentine manufacturer.
*/
ROM_START( witchcda )
@ -4382,7 +4382,7 @@ ROM_START( witchcda )
ROM_LOAD( "82s129.9c", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
ROM_END
/* Witch Card (spanish, set 2)
/* Witch Card (Spanish, set 2)
Unknown argentine manufacturer.
*/
ROM_START( witchcdb )
@ -4402,7 +4402,7 @@ ROM_START( witchcdb )
ROM_LOAD( "82s129.9c", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
ROM_END
/* Witch Card (english, no witch game)
/* Witch Card (English, no witch game)
Hack?
*/
ROM_START( witchcdc )
@ -4424,7 +4424,7 @@ ROM_END
/***************************************
Witch Card (german, WC3050, set 1 )
Witch Card (German, WC3050, set 1 )
TV GAME ELEKTRONIK 1994
PROMA
@ -4477,7 +4477,7 @@ ROM_END
ROM_LOAD( "24s10_epoxy.bin", 0x0100, 0x0100, CRC(ddfd7034) SHA1(78dee69ab4ba759485ee7f00446c2d86f08cc50f) ) /* original epoxy block PROM */
ROM_END
/* Witch Card (english, witch game, lights)
/* Witch Card (English, witch game, lights)
PCB by PM. Hybrid hardware.
Copyright 1983/84/85
@ -4539,7 +4539,7 @@ ROM_END
/***************************************
Witch Card (german, WC3050, set 2 )
Witch Card (German, WC3050, set 2 )
TV GAME ELEKTRONIK 1994
PROMA
@ -4882,7 +4882,7 @@ ROM_START( bsuertek )
ROM_END
ROM_START( bsuertel )
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), english settings */
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), English settings */
ROM_LOAD( "bslacer.128", 0x4000, 0x4000, CRC(edc254f4) SHA1(20e5543e59bfd67a0afec7cbeeb7000f6bba6c69) )
ROM_REGION( 0x3000, "gfx1", 0 )
@ -4899,7 +4899,7 @@ ROM_START( bsuertel )
ROM_END
ROM_START( bsuertem )
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), english settings, set 2*/
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), English settings, set 2*/
ROM_LOAD( "bslacer.256", 0x0000, 0x8000, CRC(9f8a899a) SHA1(a1f3d0635b309d4734289b7ff48eceda69dfd3d0) )
ROM_REGION( 0x3000, "gfx1", 0 )
@ -5464,7 +5464,7 @@ ROM_END
mc6845 video chip
10mhz (?) xtal
There are french strings related to the game, so maybe is
There are French strings related to the game, so maybe is
a leftover, or maybe there is a unknown way to switch the
language.
@ -5544,7 +5544,7 @@ ROM_END
Unknown poker game, set 1.
198?.
There are french strings related to the game into
There are French strings related to the game into
the program ROM.
The dump lacks of 1 program ROM located at 17a.
@ -5606,7 +5606,7 @@ ROM_END
/************************************
Jolli Witch (german)
Jolli Witch (German)
Epoxy CPU box.
Using the whole addressing

View File

@ -337,7 +337,7 @@ DRIVER_INIT_MEMBER(m72_state,m72_8751)
program.install_read_bank(0xb0000, 0xbffff, "bank1");
program.install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::main_mcu_w),this));
membank("bank1")->configure_entry(0, m_protection_ram);
save_pointer(NAME(m_protection_ram), 0x10000/2);
save_item(NAME(m_mcu_sample_latch));
save_item(NAME(m_mcu_sample_addr));
@ -685,7 +685,7 @@ void m72_state::install_protection_handler(const UINT8 *code,const UINT8 *crc)
m_maincpu->space(AS_PROGRAM).install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(FUNC(m72_state::protection_r),this));
m_maincpu->space(AS_PROGRAM).install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),this));
membank("bank1")->configure_entry(0, m_protection_ram);
save_pointer(NAME(m_protection_ram), 0x1000/2);
}

View File

@ -148,7 +148,7 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_tilemap(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 draw_flag);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
};
@ -247,7 +247,7 @@ UINT32 mirax_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, c
void mirax_state::machine_start()
{
m_nAyCtrl = 0x00;
save_item(NAME(m_nAyCtrl));
save_item(NAME(m_nmi_mask));
save_item(NAME(m_flipscreen_x));

View File

@ -779,7 +779,7 @@ static MACHINE_CONFIG_DERIVED( musobana, niyanpai )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(musobana_map)
MCFG_MACHINE_START_OVERRIDE(niyanpai_state, musobana)
MACHINE_CONFIG_END

View File

@ -157,18 +157,18 @@ public:
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
DECLARE_WRITE8_MEMBER(fgram_w);
DECLARE_WRITE8_MEMBER(bgram_w);
DECLARE_WRITE8_MEMBER(port4_w);
DECLARE_WRITE8_MEMBER(sound_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_start();
virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};

View File

@ -71,7 +71,7 @@ public:
DECLARE_MACHINE_RESET(themj);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
};
@ -102,7 +102,7 @@ void rmhaihai_state::video_start()
{
m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(rmhaihai_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,
8, 8, 64, 32);
save_item(NAME(m_keyboard_cmd));
save_item(NAME(m_gfxbank));
}

View File

@ -86,7 +86,7 @@ WRITE8_MEMBER(seicross_state::portB_w)
m_irq_mask = data & 1;
/* bit 1 flips screen */
/* bit 2 resets the microcontroller */
if (((m_portb & 4) == 0) && (data & 4))
{

View File

@ -10481,13 +10481,13 @@ ROM_START( daiohc ) /* Found on a 93111A PCB - same PCB as War of Areo & J. J. S
ROM_LOAD( "6.u6", 0x080000, 0x080000, CRC(9ad8b4b4) SHA1(b6e4cff160ae0efe6f3fd0df9a8a618957c3ce61) )
ROM_LOAD( "7.u7", 0x100000, 0x080000, CRC(babf194a) SHA1(ef838aab2d651c10553fb87552c67f289a8ac83d) )
ROM_LOAD( "8.u8", 0x180000, 0x080000, CRC(2db65290) SHA1(4f4d65e984fad7bb1d886de67bc50645798282bb) )
ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
ROM_LOAD( "1.u1", 0x000000, 0x080000, CRC(30f81f99) SHA1(9c164c798c7e869e92505d9d85f06f4a1c9a9528) ) /* connects to U68 through a riser card */
ROM_LOAD( "2.u2", 0x080000, 0x080000, CRC(3b3e0f4e) SHA1(740afe4eefea480f941dd80a03392592d8d4b084) )
ROM_LOAD( "3.u3", 0x100000, 0x080000, CRC(c5eef1c1) SHA1(d4b3188b39bad5c7a2c7b7dbc91a79c7ee80a3a1) )
ROM_LOAD( "4.u4", 0x180000, 0x080000, CRC(851115b6) SHA1(b8e1e22231d131085c90afcf30ff35a2866edff5) )
ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
ROM_LOAD( "data.u69", 0x000000, 0x080000, CRC(21e4f093) SHA1(f0420d158dc5d182e41b6fb2ea3af6baf88bacb8) )
ROM_LOAD( "data.u70", 0x080000, 0x080000, CRC(593c3c58) SHA1(475fb530a6d23269cb0aea6e294291c7463b57a2) )

View File

@ -117,9 +117,9 @@ public:
required_shared_ptr<UINT8> m_main;
required_shared_ptr<UINT8> m_vram;
required_shared_ptr<UINT8> m_cram;
tilemap_t *m_sc0_tilemap;
DECLARE_WRITE8_MEMBER(vram_w);
DECLARE_WRITE8_MEMBER(cram_w);
DECLARE_READ8_MEMBER(spool99_io_r);
@ -127,10 +127,10 @@ public:
DECLARE_WRITE8_MEMBER(eeprom_resetline_w);
DECLARE_WRITE8_MEMBER(eeprom_clockline_w);
DECLARE_WRITE8_MEMBER(eeprom_dataline_w);
DECLARE_DRIVER_INIT(spool99);
virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TILE_GET_INFO_MEMBER(get_tile_info);
};

View File

@ -282,7 +282,7 @@ void stactics_state::machine_start()
m_vert_pos = 0;
m_horiz_pos = 0;
*m_motor_on = 0;
save_item(NAME(m_vert_pos));
save_item(NAME(m_horiz_pos));
}

View File

@ -40,7 +40,7 @@
Minimal Winner Hand (Jacks or Better, Two Pair).
Deal Speed (Slow, Fast).
Aces Type (Normal Aces, Number 1).
Cards Deck Type (english cards, french cards).
Cards Deck Type (English cards, French cards).
Max Bet (5, 10, 15, 20).
- Added NVRAM support.
- Reorganized and cleaned-up the driver.

View File

@ -1250,7 +1250,7 @@ DRIVER_INIT_MEMBER(thepit_state,rtriv)
{
// Set-up the weirdest questions read ever done
m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(thepit_state::rtriv_question_r),this));
save_item(NAME(m_question_address));
save_item(NAME(m_question_rom));
save_item(NAME(m_remap_address));

View File

@ -437,8 +437,8 @@ WRITE16_MEMBER(ttchamp_state::ttchamp_mem_w)
{
if (m_port10 & 0x30) // this is set when moving objects are cleared, although not screen clears?
{
/* guess: assume that bit 4 is for layer 0 and bit 5 for layer 1
(according to 0x21 setted at the "Clubs League" color fade-out)
/* guess: assume that bit 4 is for layer 0 and bit 5 for layer 1
(according to 0x21 setted at the "Clubs League" color fade-out)
*/
if(m_port10 & 0x10)
m_videoram0[offset] = 0x0000;
@ -450,7 +450,7 @@ WRITE16_MEMBER(ttchamp_state::ttchamp_mem_w)
else
{
UINT8 data;
data = (src[(m_spritesaddr * 2) + 1]);
//data |= vram[offset] >> 8;
@ -636,7 +636,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x400)
MCFG_NVRAM_ADD_0FILL("backram")
MCFG_SPEAKER_STANDARD_MONO("mono")

View File

@ -46,7 +46,7 @@ public:
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(output_w);
DECLARE_WRITE_LINE_MEMBER(timer_out);
virtual void machine_start();
DECLARE_PALETTE_INIT(horse);

View File

@ -152,7 +152,7 @@ void warpspeed_state::video_start()
m_text_tilemap->set_transparent_pen(0);
m_starfield_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_starfield_tilemap->mark_all_dirty();
save_item(NAME(m_regs));
}

View File

@ -1,5 +1,5 @@
The template family tree is an attempt to ease the pain to write CPUs/drivers/devices
from scratch (especially for smaller projects).
The template family tree is an attempt to ease the pain to write CPUs/drivers/devices
from scratch (especially for smaller projects).
===
Usage:

View File

@ -31,14 +31,14 @@ public:
DECLARE_WRITE16_MEMBER(videoram_w);
DECLARE_WRITE16_MEMBER(videoram2_w);
DECLARE_WRITE16_MEMBER(videoram3_w);
TILEMAP_MAPPER_MEMBER(bg_scan);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile2_info);
TILE_GET_INFO_MEMBER(get_tile3_info);
virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
};

View File

@ -58,7 +58,7 @@ public:
DECLARE_WRITE16_MEMBER(spritebuffer_w);
TILE_GET_INFO_MEMBER(get_pf_tile_info);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_interrupt);
DECLARE_DRIVER_INIT(firebarr);

View File

@ -67,12 +67,12 @@ public:
// majtitle specific
int m_majtitle_rowscroll;
// m72_i8751 specific
UINT8 m_mcu_snd_cmd_latch;
UINT8 m_mcu_sample_latch;
UINT32 m_mcu_sample_addr;
// common
DECLARE_READ16_MEMBER(palette1_r);
DECLARE_READ16_MEMBER(palette2_r);
@ -82,7 +82,7 @@ public:
DECLARE_WRITE16_MEMBER(videoram2_w);
DECLARE_READ16_MEMBER(soundram_r);
DECLARE_WRITE16_MEMBER(soundram_w);
// m72_i8751 specific
DECLARE_WRITE16_MEMBER(main_mcu_sound_w);
DECLARE_WRITE16_MEMBER(main_mcu_w);
@ -118,14 +118,14 @@ public:
DECLARE_READ16_MEMBER(poundfor_trackball_r);
DECLARE_WRITE16_MEMBER(rtype2_port02_w);
DECLARE_WRITE16_MEMBER(majtitle_gfx_ctrl_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(hharry_get_bg_tile_info);
TILE_GET_INFO_MEMBER(rtype2_get_bg_tile_info);
TILE_GET_INFO_MEMBER(rtype2_get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(majtitle_scan_rows);
void machine_start();
void machine_reset();
DECLARE_VIDEO_START(m72);
@ -147,15 +147,15 @@ public:
DECLARE_DRIVER_INIT(nspirit);
DECLARE_DRIVER_INIT(loht);
DECLARE_DRIVER_INIT(imgfight);
INTERRUPT_GEN_MEMBER(mcu_int);
INTERRUPT_GEN_MEMBER(fake_nmi);
TIMER_CALLBACK_MEMBER(synch_callback);
TIMER_CALLBACK_MEMBER(scanline_interrupt);
TIMER_CALLBACK_MEMBER(kengo_scanline_interrupt);
TIMER_CALLBACK_MEMBER(delayed_ram16_w);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
inline void get_tile_info(tile_data &tileinfo,int tile_index,const UINT16 *vram,int gfxnum);

View File

@ -24,23 +24,23 @@ public:
tilemap_t *m_bg_tilemap;
int m_sound_cpu_busy;
UINT32 m_bg_tile_offset;
DECLARE_WRITE8_MEMBER(sound_command_w);
DECLARE_READ8_MEMBER(sound_ack_r);
DECLARE_WRITE8_MEMBER(c600_w);
DECLARE_WRITE8_MEMBER(fgram_w);
DECLARE_WRITE8_MEMBER(bgram_w);
DECLARE_CUSTOM_INPUT_MEMBER(sound_r);
TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start();
virtual void video_start();
DECLARE_PALETTE_INIT(mainsnk);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int scrollx, int scrolly );
};

View File

@ -346,7 +346,7 @@ const unsigned int ddZoneSecSize[16] = {232,216,208,192,176,160,144,128,
216,208,192,176,160,144,128,112};
const unsigned int ddZoneTrackSize[16] = {158,158,149,149,149,149,149,114,
158,158,149,149,149,149,149,114};
const unsigned int ddStartOffset[16] =
const unsigned int ddStartOffset[16] =
{0x0,0x5F15E0,0xB79D00,0x10801A0,0x1523720,0x1963D80,0x1D414C0,0x20BBCE0,
0x23196E0,0x28A1E00,0x2DF5DC0,0x3299340,0x36D99A0,0x3AB70E0,0x3E31900,0x4149200};

View File

@ -51,12 +51,12 @@ public:
UINT8 *m_clut[VRAM_MAX];
int m_flipscreen_old[VRAM_MAX];
emu_timer *m_blitter_timer;
// musobana and derived machine configs
int m_musobana_inputport;
int m_musobana_outcoin_flag;
UINT8 m_motor_on;
// common
DECLARE_WRITE8_MEMBER(soundbank_w);
DECLARE_WRITE8_MEMBER(soundlatch_clear_w);
@ -76,7 +76,7 @@ public:
DECLARE_WRITE8_MEMBER(clutsel_1_w);
DECLARE_WRITE8_MEMBER(clutsel_2_w);
DECLARE_WRITE16_MEMBER(tmp68301_parallel_port_w);
// musobana and derived machine configs
DECLARE_READ16_MEMBER(musobana_inputport_0_r);
DECLARE_WRITE16_MEMBER(musobana_inputport_w);

View File

@ -41,9 +41,9 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_0);
TILE_GET_INFO_MEMBER(get_tile_info_1);
TILEMAP_MAPPER_MEMBER(get_memory_offset_0);
virtual void video_start();
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
};

View File

@ -32,11 +32,11 @@ public:
required_shared_ptr<UINT8> m_videoram_d;
required_shared_ptr<UINT8> m_videoram_e;
required_shared_ptr<UINT8> m_videoram_f;
/* machine state */
int m_vert_pos;
int m_horiz_pos;
/* video state */
UINT8 m_y_scroll_d;
UINT8 m_y_scroll_e;

View File

@ -39,10 +39,10 @@ public:
DECLARE_WRITE8_MEMBER(flip_screen_x_w);
DECLARE_WRITE8_MEMBER(flip_screen_y_w);
DECLARE_READ8_MEMBER(input_port_0_r);
DECLARE_READ8_MEMBER(intrepid_colorram_mirror_r);
DECLARE_WRITE8_MEMBER(intrepid_graphics_bank_w);
DECLARE_READ8_MEMBER(rtriv_question_r);
TILE_GET_INFO_MEMBER(solid_get_tile_info);
@ -57,6 +57,6 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_desertdan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority_to_draw);
INTERRUPT_GEN_MEMBER(vblank_irq);
};

View File

@ -25,7 +25,7 @@ public:
UINT8 m_control;
tilemap_t *m_fg_tilemap;
bitmap_ind16 m_tmpbitmap;
DECLARE_WRITE8_MEMBER(control_w);
DECLARE_READ8_MEMBER(button_r);
DECLARE_WRITE8_MEMBER(videoram_w);
@ -34,7 +34,7 @@ public:
DECLARE_READ8_MEMBER(dsw2_2r);
DECLARE_READ8_MEMBER(dsw2_3r);
DECLARE_READ8_MEMBER(dsw2_4r);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();

View File

@ -899,7 +899,7 @@ static const struct game_keys keys_table[] =
{ "sfz2alj", { 0x99450c88,0xa00a2c4d }, 0x100000 }, // 0C80 8E73 9110 cmpi.l #$8E739110,D0
{ "sfz2alh", { 0x95f15b7c,0x200c08c6 }, 0x100000 }, // 0C80 8E73 9110 cmpi.l #$8E739110,D0
{ "sfz2alb", { 0x73cd4a28,0xff83af1c }, 0x100000 }, // 0C80 8E73 9110 cmpi.l #$8E739110,D0
{ "spf2t", { 0xdde26f09,0x55821ee7 }, 0x040000 }, // 0C80 3039 9819 cmpi.l #$30399819,D0
{ "spf2t", { 0xdde26f09,0x55821ee7 }, 0x040000 }, // 0C80 3039 9819 cmpi.l #$30399819,D0
{ "spf2tu", { 0x706a8750,0x7d0fc185 }, 0x040000 }, // 0C80 3039 9819 cmpi.l #$30399819,D0
{ "spf2xj", { 0xb12c835a,0xe90976ff }, 0x040000 }, // 0C80 3039 9819 cmpi.l #$30399819,D0
{ "spf2ta", { 0x9c48e1ab,0xd60f34fb }, 0x040000 }, // 0C80 3039 9819 cmpi.l #$30399819,D0

View File

@ -141,12 +141,12 @@ void m107_state::video_start()
}
m_buffered_spriteram = auto_alloc_array_clear(machine(), UINT16, 0x1000/2);
save_item(NAME(m_sprite_display));
save_item(NAME(m_raster_irq_position));
save_item(NAME(m_control));
save_pointer(NAME(m_buffered_spriteram), 0x1000/2);
for (int i = 0; i < 4; i++)
{
save_item(NAME(m_pf_layer[i].vram_base), i);

View File

@ -178,7 +178,7 @@ VIDEO_START_MEMBER(m72_state,poundfor)
m_bg_tilemap->set_scrolldx(6,0);
m_fg_tilemap->set_scrolldy(-128,-128);
m_bg_tilemap->set_scrolldy(-128,-128);
save_item(NAME(m_prev));
save_item(NAME(m_diff));
}

View File

@ -76,7 +76,7 @@ void mainsnk_state::video_start()
m_bg_tilemap->set_scrolldx(16, 16);
m_bg_tilemap->set_scrolldy(8, 8);
save_item(NAME(m_bg_tile_offset));
}

View File

@ -371,7 +371,7 @@ void niyanpai_state::video_start()
m_clut[2] = auto_alloc_array(machine(), UINT8, 0x1000);
m_nb19010_busyflag = 1;
m_blitter_timer = timer_alloc(TIMER_BLITTER);
save_item(NAME(m_scrollx));
save_item(NAME(m_scrolly));
save_item(NAME(m_blitter_destx));

View File

@ -68,7 +68,7 @@ void portrait_state::video_start()
m_foreground = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(portrait_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 );
m_foreground->set_transparent_pen(7);
save_item(NAME(m_scroll));
}

View File

@ -168,7 +168,7 @@ void powerins_state::video_start()
m_tilemap_1->set_scroll_rows(1);
m_tilemap_1->set_scroll_cols(1);
m_tilemap_1->set_transparent_pen(15);
save_item(NAME(m_tile_bank));
}

View File

@ -363,7 +363,7 @@ void stactics_state::video_start()
m_shot_arrive = 0;
m_beam_state = 0;
m_old_beam_state = 0;
save_item(NAME(m_y_scroll_d));
save_item(NAME(m_y_scroll_e));
save_item(NAME(m_y_scroll_f));

View File

@ -136,7 +136,7 @@ void thepit_state::video_start()
m_dummy_tile = auto_alloc_array_clear(machine(), UINT8, 8*8);
m_graphics_bank = 0; /* only used in intrepid */
save_item(NAME(m_graphics_bank));
save_item(NAME(m_flip_x));
save_item(NAME(m_flip_y));

View File

@ -78,7 +78,7 @@ void tunhunt_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
m_fg_tilemap->set_scrollx(0, 64);
save_item(NAME(m_control));
}

View File

@ -1,6 +1,6 @@
/***************************************************************************
commodore c65 home computer
Commodore C65 home computer
PeT mess@utanet.at
documention
@ -256,7 +256,7 @@ static INPUT_PORTS_START( c65 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Mouse 1350 Button 2") PORT_CONDITION("CTRLSEL", 0x0f, EQUALS, 0x03)
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
/* Still to verify how many mices you were able to plug into a c64 */
/* Still to verify how many mice you were able to plug into a C64 */
/* Only one, for now */
PORT_START("JOY2_2B")
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )

View File

@ -69,7 +69,7 @@ void elecbowl_state::prepare_display()
m_display_state[5] = (m_display_state[5] & ~mask) | d;
if (~m_r & 4)
m_display_state[6] = (m_display_state[6] & ~mask) | d;
// digit 4 is from mux2 Q7
m_display_segmask[4] = 6;
m_display_state[4] = (m_display_state[6] & 0x80) ? 6 : 0;
@ -173,7 +173,7 @@ static const UINT16 elecbowl_output_pla[0x20] =
lA+lB+lC, // 7
lA+lB+lC+lD+lE+lF+lG, // 8
lA+lB+lG+lF+lC+lD, // 9
0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0,1,2,3,4,5,6,7, // lamp muxes select
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f

View File

@ -74,9 +74,9 @@ PB.6 - enable language switches (W, see below)
PB.7 - TSI DONE line (R)
(button rows pulled up to 5V through 2.2K resistors)
PC.0 - button row 0, german language jumper (R)
PC.1 - button row 1, french language jumper (R)
PC.2 - button row 2, spanish language jumper (R)
PC.0 - button row 0, German language jumper (R)
PC.1 - button row 1, French language jumper (R)
PC.2 - button row 2, Spanish language jumper (R)
PC.3 - button row 3, special language jumper (R)
PC.4 - button column A (W)
PC.5 - button column B (W)
@ -90,20 +90,20 @@ language switches:
When PB.6 is pulled low, the language switches can be read. There are four.
They connect to the button rows. When enabled, the row(s) will read low if
the jumper is present. English only VCC's do not have the 367 or any pads stuffed.
The jumpers are labelled: french, german, spanish, and special.
The jumpers are labelled: French, German, Spanish, and special.
language latch:
---------------
There's an unstuffed 7474 on the board that connects to PA.6 and PA.7. It allows
one to latch the state of A12 to the speech ROM. The english version has the chip
one to latch the state of A12 to the speech ROM. The English version has the chip
missing, and a jumper pulling "A12" to ground. This line is really a negative
enable.
To make the VCC multi-language, one would install the 74367 (note: it must be a 74367
or possibly a 74LS367. A 74HC367 would not work since they rely on the input current
to keep the inputs pulled up), solder a piggybacked ROM to the existing english
to keep the inputs pulled up), solder a piggybacked ROM to the existing English
speech ROM, and finally install a 7474 dual flipflop.
This way, the game can then detect which secondary language is present, and then it can
@ -569,7 +569,7 @@ selection jumpers:
These act like another row of buttons. It is composed of two diode locations,
so there's up to 4 possible configurations. My board does not have either diode
stuffed, so this most likely is "english". I suspect it selects which language to use
stuffed, so this most likely is "English". I suspect it selects which language to use
for the speech synth. Of course you need the other speech ROMs for this to function
properly.

View File

@ -187,7 +187,7 @@ void hh_hmcs40_state::display_update()
int state = active_state[y] >> x & 1;
char buf1[0x10]; // lampyx
char buf2[0x10]; // y.x
if (x == m_display_maxx)
{
// always-on if selected
@ -262,7 +262,7 @@ void hh_hmcs40_state::set_interrupt(int line, int state)
{
line = line ? 1 : 0;
state = state ? 1 : 0;
if (state != m_int[line])
{
if (machine().phase() >= MACHINE_PHASE_RESET)
@ -531,7 +531,7 @@ WRITE8_MEMBER(zackman_state::plate_w)
// R0x-R6x,D0,D1: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
UINT32 plate = BITSWAP32(m_plate,31,30,27,0,1,2,3,4,5,6,7,8,9,10,11,24,25,26,29,28,23,22,21,20,19,18,17,16,15,14,13,12);
@ -550,10 +550,10 @@ WRITE16_MEMBER(zackman_state::grid_w)
m_inp_mux = inp_mux;
update_int0();
}
// D8-D15: vfd matrix grid
m_grid = data >> 8 & 0xff;
// D0,D1: plate 12,13 (update display there)
plate_w(space, 7, data & 3);
}
@ -784,7 +784,7 @@ WRITE8_MEMBER(cdkong_state::plate_w)
// R13: speaker on
if (offset == HMCS40_PORT_R1X && data & 8)
m_speaker_volume = CDKONG_SPEAKER_MAX;
// R0x-R6x: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
@ -843,7 +843,7 @@ static MACHINE_CONFIG_START( cdkong, cdkong_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("speaker_decay", cdkong_state, speaker_decay_sim, attotime::from_msec(CDKONG_SPEAKER_DECAY))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
/* no video! */
/* sound hardware */
@ -899,7 +899,7 @@ WRITE8_MEMBER(cgalaxn_state::grid_w)
{
// D0: speaker out
m_speaker->level_w(data & 1);
// D1: speaker on?
// D2-D15: vfd matrix plate
@ -912,7 +912,7 @@ WRITE16_MEMBER(cgalaxn_state::plate_w)
// R10,R11: input mux
if (offset == HMCS40_PORT_R1X)
m_inp_mux = data & 3;
// R1x-R3x: vfd matrix grid
int shift = (offset - HMCS40_PORT_R1X) * 4;
m_grid = (m_grid & ~(0xf << shift)) | (data << shift);
@ -979,7 +979,7 @@ MACHINE_CONFIG_END
* board label Coleco 75690
* Hitachi HD38820A28/29 MCU
* cyan/red VFD display Futaba DM-34Z 2A, with color overlay
known releases:
- Japan: Super Pack Monster, by Gakken
- USA: Pac-Man, published by Coleco (name-license from Midway)
@ -1105,7 +1105,7 @@ MACHINE_CONFIG_END
- P1 Left: Ms. Pac-Man (default game)
- P1 Down: Head-to-Head Ms. Pac-Man (2-player mode)
- P1 Up: Demo
BTANB note: in demo-mode, she hardly ever walks to the upper two rows
NOTE!: MESS external artwork is recommended
@ -1439,7 +1439,7 @@ WRITE8_MEMBER(pbqbert_state::plate_w)
// R0x-R6x,D8: vfd matrix plate
int shift = offset * 4;
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23);
display_matrix(30, 8, plate, m_grid);
@ -1553,10 +1553,10 @@ WRITE16_MEMBER(kingman_state::grid_w)
m_inp_mux = inp_mux;
update_int0();
}
// D7-D15: vfd matrix grid
m_grid = data >> 7 & 0x1ff;
// D0-D4: more plates
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x1f0000);
prepare_display();
@ -1674,10 +1674,10 @@ WRITE16_MEMBER(tmtron_state::grid_w)
m_inp_mux = inp_mux;
update_int1();
}
// D6-D15: vfd matrix grid
m_grid = data >> 6 & 0x3ff;
// D0-D3,D5: more plates
m_plate = (m_plate & 0x00ffff) | (data << 16 & 0x2f0000);
prepare_display();

View File

@ -147,7 +147,7 @@ void hh_pic16_state::display_update()
int state = active_state[y] >> x & 1;
char buf1[0x10]; // lampyx
char buf2[0x10]; // y.x
if (x == m_display_maxx)
{
// always-on if selected

View File

@ -181,7 +181,7 @@ void hh_tms1k_state::display_update()
int state = active_state[y] >> x & 1;
char buf1[0x10]; // lampyx
char buf2[0x10]; // y.x
if (x == m_display_maxx)
{
// always-on if selected
@ -1346,7 +1346,7 @@ MACHINE_CONFIG_END
Ideal Electronic Detective
* TMS0980NLL MP6100A (die labeled 0980B-00)
* 10-digit 7seg LED display, 1bit sound
hardware (and concept) is very similar to Parker Bros Stop Thief
This is an electronic board game. It requires game cards with suspect info,
@ -1638,7 +1638,7 @@ WRITE16_MEMBER(astro_state::write_r)
{
// R0-R7: input mux
m_inp_mux = data & 0xff;
// R0-R9: led select
m_r = data;
prepare_display();
@ -1965,13 +1965,13 @@ WRITE16_MEMBER(ssimon_state::write_r)
{
// R0-R3,R9,R10: input mux
m_inp_mux = (data & 0xf) | (data >> 5 & 0x30);
// R4: yellow lamps
// R5: green lamps
// R6: blue lamps
// R7: red lamps
display_matrix(4, 1, data >> 4, 1);
// R8: speaker out
m_speaker->level_w(data >> 8 & 1);
}

View File

@ -162,7 +162,7 @@ void hh_ucom4_state::display_update()
int state = active_state[y] >> x & 1;
char buf1[0x10]; // lampyx
char buf2[0x10]; // y.x
if (x == m_display_maxx)
{
// always-on if selected

View File

@ -8148,10 +8148,10 @@ COMP(1986, ax170, 0, 0, ax170, msx, driver_device, 0, "Al
COMP(1983, canonv8, 0, 0, canonv8, msx, driver_device, 0, "Canon", "V-8 (MSX1)", 0)
COMP(1983, canonv10, canonv20, 0, canonv10, msx, driver_device, 0, "Canon", "V-10 (MSX1)", 0)
COMP(1983, canonv20, 0, 0, canonv20, msx, driver_device, 0, "Canon", "V-20 (MSX1)", 0)
COMP(1983, canonv20e, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20E (MSX1)", 0) // Different euro keyboard layout?
COMP(1983, canonv20f, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20F (MSX1)", 0) // Different french keyboard layout?
COMP(1983, canonv20g, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20G (MSX1)", 0) // Different german keyboard layout?
COMP(1983, canonv20s, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20S (MSX1)", 0) // Different spanish keyboard layout?
COMP(1983, canonv20e, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20E (MSX1)", 0) // Different Euro keyboard layout?
COMP(1983, canonv20f, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20F (MSX1)", 0) // Different French keyboard layout?
COMP(1983, canonv20g, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20G (MSX1)", 0) // Different German keyboard layout?
COMP(1983, canonv20s, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20S (MSX1)", 0) // Different Spanish keyboard layout?
COMP(1984, mx10, 0, 0, mx10, msx, driver_device, 0, "Casio", "MX-10 (MSX1)", 0)
COMP(1984, mx101, mx10, 0, mx101, msx, driver_device, 0, "Casio", "MX-101 (MSX1)", 0)
COMP(1984, mx15, mx10, 0, mx15, msx, driver_device, 0, "Casio", "MX-15 (MSX1)", 0)

View File

@ -1833,7 +1833,6 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state )
MCFG_AM9517A_IN_MEMR_CB(READ8(pc88va_state, dma_memr_cb))
MCFG_AM9517A_OUT_MEMW_CB(WRITE8(pc88va_state, dma_memw_cb))
MCFG_UPD765A_ADD("upd765", false, true)
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_irq))
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_drq))

0
src/mess/drivers/ti85.c Executable file → Normal file
View File

View File

@ -85,7 +85,7 @@ void tisr16_state::prepare_display()
// exponent sign is from R10 O1, and R10 itself only uses segment G
m_display_state[11] = m_display_state[10] << 5 & 0x40;
m_display_state[10] &= 0x40;
set_display_size(8, 12);
display_update();
}
@ -651,7 +651,7 @@ MACHINE_CONFIG_END
TI Little Professor (1978 version)
* TMS1990 MCU labeled TMC1993NL. die labeled 1990C-c3C
* 9-digit 7seg LED display(one custom digit)
1978 re-release, with on/off and level select on buttons instead of
switches. The casing was slightly revised in 1980 again, but same rom.

View File

@ -338,7 +338,7 @@ void tispeak_state::machine_start()
{
hh_tms1k_state::machine_start();
memset(m_display_segmask, ~0, sizeof(m_display_segmask)); // !
init_cartridge();
}
@ -606,11 +606,11 @@ INPUT_PORTS_END
static INPUT_PORTS_START( snread )
PORT_INCLUDE( snspell )
PORT_MODIFY("IN.7")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_NAME("Word Zapper")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_NAME("Word Maker")
PORT_MODIFY("IN.8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_NAME("Read It")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_NAME("Picture Read")

View File

@ -482,8 +482,8 @@ MACHINE_CONFIG_END
WP keyboard, has 23-094E2 alt charset rom, 23-093E2 AVO rom.
* VT100-WY/WZ - has AVO board preinstalled, WP romset?, English
WP keyboard, has 23-094E2 alt charset rom, 23-093E2 AVO rom.
The WP romset supports english, french, dutch and german languages but
will only display text properly in the non-english languages if the
The WP romset supports English, French, Dutch and German languages but
will only display text properly in the non-English languages if the
23-094E2 alt charset rom AND the foreign language 23-093E2
AVO rom are populated.
* VT100-NA/NB - ? romset with DECFORM keycaps
@ -557,7 +557,7 @@ MACHINE_CONFIG_END
23-095e2,096e2,139e2,140e2 set and probably others as well)
* The vt100/101/102/103/etc 23-018e2-00 character set rom at location e4 is a 24 pin 2316 mask rom with enables as such: pin 18: CS2; pin 20: /CS1; pin 21: /CS3
* The optional 23-094e2-00 alternate character set rom at location e9 is a 24 pin 2316 mask rom with enables as such: pin 18: /CS2; pin 20: /CS1; pin 21: /CS3
Supposedly the 23-094e2 rom is meant for vt100-WC or -WF systems, (which are french canadian and french respectively), implying that it has european language specific accented characters on it. It is probably used in all the -W* systems.
Supposedly the 23-094e2 rom is meant for vt100-WC or -WF systems, (which are French Canadian and French respectively), implying that it has European language specific accented characters on it. It is probably used in all the -W* systems.
Pin 21 can be jumpered to +5v for this socket at location e9 by removing jumper w4 and inserting jumper w5, allowing a normal 2716 eprom to be used.
* The optional AVO character set roms (see below) have: pin 18: /CS2*; pin 20: /CS1; pin 21: CS3 hence they match a normal 2716
*(this is marked on the image as if it was CS2 but the input is tied to gnd meaning it must be /CS2)

0
src/mess/includes/ti85.h Executable file → Normal file
View File

View File

@ -1,4 +1,4 @@
/* CD controller code from megacd.c, used by Sega Cd / Mega CD */
/* CD controller code from megacd.c, used by Sega CD / Mega CD */
/* todo: cleanup(!!), make more generic, unifiy implementation with NeoCD, turn into a device and move to the proper lc89510.c file
currently this is a bit of a mix of system specific bits, incomplete implementations etc. as well as a rather kludgy combination
@ -217,7 +217,7 @@ void lc89510_temp_device::CDD_GetPos(void)
CLEAR_CDD_RESULT
UINT32 msf;
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
msf = lba_to_msf_alt(SCD_CURLBA+150);
@ -233,7 +233,7 @@ void lc89510_temp_device::CDD_GetTrackPos(void)
UINT32 msf;
CDD_STATUS &= 0xFF;
// UINT32 end_msf = ;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
elapsedlba = SCD_CURLBA - segacd.toc->tracks[ cdrom_get_track(segacd.cd, SCD_CURLBA) ].logframeofs;
@ -248,7 +248,7 @@ void lc89510_temp_device::CDD_GetTrack(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
@ -259,7 +259,7 @@ void lc89510_temp_device::CDD_Length(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -276,7 +276,7 @@ void lc89510_temp_device::CDD_FirstLast(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
CDD_MIN = 1; // first
@ -291,7 +291,7 @@ void lc89510_temp_device::CDD_GetTrackAdr(void)
int last_track = cdrom_get_last_track(segacd.cd);
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -323,7 +323,7 @@ void lc89510_temp_device::CDD_GetTrackType(void)
int last_track = cdrom_get_last_track(segacd.cd);
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -359,7 +359,7 @@ void lc89510_temp_device::CDD_Play(running_machine &machine)
CLEAR_CDD_RESULT
UINT32 msf = getmsf_from_regs();
SCD_CURLBA = msf_to_lba(msf)-150;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
UINT32 end_msf = segacd.toc->tracks[ cdrom_get_track(segacd.cd, SCD_CURLBA) + 1 ].logframeofs;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
@ -384,7 +384,7 @@ void lc89510_temp_device::CDD_Seek(void)
CLEAR_CDD_RESULT
UINT32 msf = getmsf_from_regs();
SCD_CURLBA = msf_to_lba(msf)-150;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
LC8951UpdateHeader();
@ -417,7 +417,7 @@ void lc89510_temp_device::CDD_Resume(running_machine &machine)
{
CLEAR_CDD_RESULT
STOP_CDC_READ
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
SCD_STATUS = CDD_PLAYINGCDDA;

0
src/mess/machine/ti85.c Executable file → Normal file
View File

View File

@ -12,24 +12,24 @@
I don't know how close to this standard the character sets used by the
911 VDT are.
The japanese terminal uses 8-bit character codes. The 128 first characters
The Japanese terminal uses 8-bit character codes. The 128 first characters
are identical to the US character set (except that '\' is replaced by the
Yen symbol), and the next 128 characters include the katakana syllabus.
Kanji ideograms are not supported in this scheme.
The arabic terminal uses 8-bit character codes, too. It requires
The Arabic terminal uses 8-bit character codes, too. It requires
additional code in the TI990 OS for correct operation, as the keyboard
returns codes for isolated characters (i.e. without ligatures), which need
to be substituted with codes with correct context-dependent ligatures.
And both OS and application programs need to support the fact that the
writing direction can be either right-to-left or left-to-right, according
to whether the characters are latin or arabic.
to whether the characters are Latin or Arabic.
As the original ROMs have not been dumped yet, I recreated the matrices
from various matrix printouts in TI documentation.
*/
/*
The arabic character set is not implemented, because documentation is ambiguous
The Arabic character set is not implemented, because documentation is ambiguous
(it says there are 115 characters, but I can hardly see 80 characters in the
attached table), and the character matrices are not documented.
*/
@ -47,26 +47,26 @@ enum
/* extra symbols for national character sets */
char_defs_pound = char_defs_katakana_base+128, /* pound sign (UK 0x23, French WP 0x23) */
char_defs_yen, /* yen sign (Japan 0x5C) */
char_defs_auml, /* latin small letter a with diaeresis (Swedish/Finish 0x7B, German 0x7B) */
char_defs_Auml, /* latin capital letter A with diaeresis (Swedish/Finish 0x5B, German 0x5B) */
char_defs_Aring, /* latin capital letter A with ring above (Swedish/Finish 0x5D, Norwegian/Danish 0x5D) */
char_defs_uuml, /* latin small letter u with diaeresis (Swedish/Finish 0x7E, German 0x7D) */
char_defs_aring, /* latin small letter a with ring above (Swedish/Finish 0x7D, Norwegian/Danish 0x7D) */
char_defs_Uuml, /* latin capital letter U with diaeresis (German 0x5D) */
char_defs_ouml, /* latin small letter o with diaeresis (German 0x7C) */
char_defs_Ouml, /* latin capital letter O with diaeresis (German 0x5C) */
char_defs_szlig, /* latin small letter sharp s (German 0x7E) */
char_defs_aelig, /* latin small letter ae (Norwegian/Danish 0x7B) */
char_defs_AElig, /* latin capital letter AE (Norwegian/Danish 0x5B) */
char_defs_oslash, /* latin small letter o with stroke (Norwegian/Danish 0x7C) */
char_defs_Oslash, /* latin capital letter O with stroke (Norwegian/Danish 0x5C) */
char_defs_agrave, /* latin small letter a with grave (French WP 0x40) */
char_defs_auml, /* Latin small letter a with diaeresis (Swedish/Finish 0x7B, German 0x7B) */
char_defs_Auml, /* Latin capital letter A with diaeresis (Swedish/Finish 0x5B, German 0x5B) */
char_defs_Aring, /* Latin capital letter A with ring above (Swedish/Finish 0x5D, Norwegian/Danish 0x5D) */
char_defs_uuml, /* Latin small letter u with diaeresis (Swedish/Finish 0x7E, German 0x7D) */
char_defs_aring, /* Latin small letter a with ring above (Swedish/Finish 0x7D, Norwegian/Danish 0x7D) */
char_defs_Uuml, /* Latin capital letter U with diaeresis (German 0x5D) */
char_defs_ouml, /* Latin small letter o with diaeresis (German 0x7C) */
char_defs_Ouml, /* Latin capital letter O with diaeresis (German 0x5C) */
char_defs_szlig, /* Latin small letter sharp s (German 0x7E) */
char_defs_aelig, /* Latin small letter ae (Norwegian/Danish 0x7B) */
char_defs_AElig, /* Latin capital letter AE (Norwegian/Danish 0x5B) */
char_defs_oslash, /* Latin small letter o with stroke (Norwegian/Danish 0x7C) */
char_defs_Oslash, /* Latin capital letter O with stroke (Norwegian/Danish 0x5C) */
char_defs_agrave, /* Latin small letter a with grave (French WP 0x40) */
char_defs_deg, /* degree sign (French WP 0x5B) */
char_defs_ccedil, /* latin small letter c with cedilla (French WP 0x5C) */
char_defs_ccedil, /* Latin small letter c with cedilla (French WP 0x5C) */
char_defs_sect, /* section sign (French WP 0x5D) */
char_defs_egrave, /* latin small letter e with grave (French WP 0x7B) */
char_defs_ugrave, /* latin small letter u with grave (French WP 0x7C) */
char_defs_eacute, /* latin small letter e with acute (French WP 0x7D) */
char_defs_egrave, /* Latin small letter e with grave (French WP 0x7B) */
char_defs_ugrave, /* Latin small letter u with grave (French WP 0x7C) */
char_defs_eacute, /* Latin small letter e with acute (French WP 0x7D) */
char_defs_uml, /* diaeresis (French WP 0x7E) */
char_defs_count /* total character count */
@ -87,13 +87,13 @@ static const char_override_t UK_overrides[1] =
{ 0x23, char_defs_pound }
};
/* One japan-specific character (see below for the 128 additionnal characters) */
/* One Japan-specific character (see below for the 128 additionnal characters) */
static const char_override_t japanese_overrides[1] =
{
{ 0x5C, char_defs_yen }
};
/* 5 sweden/finland-specific characters */
/* 5 Sweden/Finland-specific characters */
static const char_override_t swedish_overrides[/*5*/7] =
{
{ 0x7B, char_defs_auml },
@ -106,7 +106,7 @@ static const char_override_t swedish_overrides[/*5*/7] =
{ 0x7C, char_defs_ouml }
};
/* 7 german-specific characters */
/* 7 German-specific characters */
static const char_override_t german_overrides[7] =
{
{ 0x5D, char_defs_Uuml },
@ -118,7 +118,7 @@ static const char_override_t german_overrides[7] =
{ 0x5B, char_defs_Auml } /* 945423-9701 rev. B p. 1-10 says 0x5D, but it must be a mistake */
};
/* 6 norway/denmark-specific characters */
/* 6 Norway/Denmark-specific characters */
static const char_override_t norwegian_overrides[6] =
{
{ 0x5D, char_defs_Aring },
@ -129,7 +129,7 @@ static const char_override_t norwegian_overrides[6] =
{ 0x5C, char_defs_Oslash}
};
/* 9 french-specific characters (word-processing model only: the data-processing model uses
/* 9 French-specific characters (word-processing model only: the data-processing model uses
the US character set, although the keyboard mapping is different from the US model) */
/* WARNING: I have created the character matrices from scratch, as I have no printout of
the original matrices. */
@ -1690,7 +1690,7 @@ static const UINT8 char_defs[char_defs_count][10] =
},
/* 128 additional characters for japanese terminals */
/* 128 additional characters for Japanese terminals */
{ /* 0x80 */
0x00,
0x00,

View File

@ -87,7 +87,7 @@ static const unsigned short vdt911_palette[] =
/*
Macros for model features
*/
/* TRUE for japanese and arabic terminals, which use 8-bit charcodes and keyboard shift modes */
/* TRUE for Japanese and Arabic terminals, which use 8-bit charcodes and keyboard shift modes */
#define USES_8BIT_CHARCODES() ((m_model == vdt911_model_Japanese) /*|| (m_model == vdt911_model_Arabic)*/)
/* TRUE for keyboards which have this extra key (on the left of TAB/SKIP)
(Most localized keyboards have it) */
@ -541,9 +541,9 @@ void vdt911_device::check_keyboard()
{
enum modifier_state_t
{
/* states for western keyboards and katakana/arabic keyboards in romaji/latin mode */
/* states for Western keyboards and katakana/Arabic keyboards in romaji/Latin mode */
lower_case = 0, upper_case, shift, control,
/* states for katakana/arabic keyboards in katakana/arabic mode */
/* states for katakana/Arabic keyboards in katakana/Arabic mode */
foreign, foreign_shift,
/* special value to stop repeat if the modifier state changes */
special_debounce = -1
@ -568,7 +568,7 @@ void vdt911_device::check_keyboard()
/* parse modifier keys */
if ((USES_8BIT_CHARCODES())
&& ((key_buf[5] & 0x0400) || ((!(key_buf[5] & 0x0100)) && m_foreign_mode)))
{ /* we are in katakana/arabic mode */
{ /* we are in katakana/Arabic mode */
m_foreign_mode = true;
if ((key_buf[4] & 0x0400) || (key_buf[5] & 0x0020))
@ -577,8 +577,8 @@ void vdt911_device::check_keyboard()
modifier_state = foreign;
}
else
{ /* we are using a western keyboard, or a katakana/arabic keyboard in
romaji/latin mode */
{ /* we are using a Western keyboard, or a katakana/Arabic keyboard in
romaji/Latin mode */
m_foreign_mode = false;
if (key_buf[3] & 0x0040)

View File

@ -17,15 +17,15 @@ Known bugs:
* SDL2.0: sdlvideofps does not take -numscreens>1 into account.
* SDL1.3/WIN32: crashes with -rd d3d
* SDL1.3/WIN32: resizing does not work
Build SDL 2.0 from HG
======================
Pull 2.0 from hg. Than
Pull 2.0 from hg. Then
sh autogen.sh
./configure --prefix=/usr/local/sdl13/ --disable-video-svga --enable-video-directfb --enable-fusionsound
make
make
[sudo] make install
You may leave away the last two enables, if you do not want to play around with directfb - although it is lightning fast now :-)
@ -66,15 +66,15 @@ The following modes are working:
SDL13
=====
This is driver using SDL texture and line drawing support. It supports
-prescale, -filter and -waitvsync. The driver determines which pixel
formats perform best and converts textures to these pixel formats and at
the same time performs any necessary rotation.
This is driver using SDL texture and line drawing support. It supports
-prescale, -filter and -waitvsync. The driver determines which pixel
formats perform best and converts textures to these pixel formats and at
the same time performs any necessary rotation.
Basic usage examples:
X11/opengl: ./mamed -video sdl13 -rd opengl mario
DFB/DFB: ./mamed -video sdl13 -vd directfb -rd directfb mario
X11/opengl: ./mamed -video sdl13 -rd opengl mario
DFB/DFB: ./mamed -video sdl13 -vd directfb -rd directfb mario
The performance of the directfb driver depends on the combined
support of the kernel framebuffer driver and the directfb driver.
@ -93,7 +93,7 @@ Soft:
OpenGL:
=======
Plain opengl does work. Anything more advanced like pbo, fbo or glsl will
Plain opengl does work. Anything more advanced like pbo, fbo or glsl will
most probably not work with more than one screen.
./mamed -mt -video opengl mario -nogl_pbo -nogl_vbo -nogl_glsl -numscreens 2
@ -106,8 +106,8 @@ YUV - modes:
Using DirectFB, the following should get you going
./mamed -mt -video soft -sm yuy2 -vd directfb -rd directfb mario
for accelerated blitting on the framebuffer - provided directfb supports it.
for accelerated blitting on the framebuffer - provided directfb supports it.
At least my Radeon R480 is supported.
-video soft and -scale_mode (-sm)
@ -121,12 +121,10 @@ hwblit: Rendering in software/scaling with hardware (if supported)
hwbest: Rendering in software/antialiased scaling with hardware (if supported)
yv12, yv12x2, yuy2, yuy2x2:
yv12, yv12x2, yuy2, yuy2x2:
Rendering in software / scaling with hardware (if supported)
Whether these are actually hardware accelerated depends on the SDL driver
and the hardware. The SDL directfb driver supports all above if the hardware
supports it. However, only one YUV-texture per display is supported.
and the hardware. The SDL directfb driver supports all above if the hardware
supports it. However, only one YUV-texture per display is supported.
The second window consequently will get "software" YUV blitting.

View File

@ -1,6 +1,6 @@
# Keymap file for a swiss keyboard (Linux)
#
#
#
ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
ITEM_ID_EQUALS SDLK_CARET 0x15 0x0 ^
ITEM_ID_Y SDLK_z 0x1d 0x7a z

View File

@ -1,23 +1,23 @@
# Keymap for French AZERTY keyboard (Linux)
ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
ITEM_ID_1 SDLK_AMPERSAND 0xa 0x26 &
ITEM_ID_2 SDLK_WORLD_73 0xb 0xe9 é
ITEM_ID_3 SDLK_QUOTEDBL 0xc 0x22 "
ITEM_ID_4 SDLK_QUOTE 0xd 0x27 '
ITEM_ID_5 SDLK_LEFTPAREN 0xe 0x28 (
ITEM_ID_6 SDLK_MINUS 0xf 0x2d -
ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
ITEM_ID_8 SDLK_UNDERSCORE 0x11 0x5f _
ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
ITEM_ID_EQUALS SDLK_EQUALS 0x15 0x3d =
ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
ITEM_ID_1 SDLK_AMPERSAND 0xa 0x26 &
ITEM_ID_2 SDLK_WORLD_73 0xb 0xe9 é
ITEM_ID_3 SDLK_QUOTEDBL 0xc 0x22 "
ITEM_ID_4 SDLK_QUOTE 0xd 0x27 '
ITEM_ID_5 SDLK_LEFTPAREN 0xe 0x28 (
ITEM_ID_6 SDLK_MINUS 0xf 0x2d -
ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
ITEM_ID_8 SDLK_UNDERSCORE 0x11 0x5f _
ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
ITEM_ID_EQUALS SDLK_EQUALS 0x15 0x3d =
ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x0
ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x0
ITEM_ID_COMMA SDLK_COMMA 0x3a 0x2c ,
ITEM_ID_STOP SDLK_SEMICOLON 0x3b 0x3b ;
ITEM_ID_SLASH SDLK_COLON 0x3c 0x3a :
ITEM_ID_COLON SDLK_WORLD_89 0x30 0xf9 ù
ITEM_ID_QUOTE SDLK_ASTERISK 0x33 0x2a *
ITEM_ID_BACKSLASH SDLK_EXCLAIM 0x3d 0x21 !
ITEM_ID_COMMA SDLK_COMMA 0x3a 0x2c ,
ITEM_ID_STOP SDLK_SEMICOLON 0x3b 0x3b ;
ITEM_ID_SLASH SDLK_COLON 0x3c 0x3a :
ITEM_ID_COLON SDLK_WORLD_89 0x30 0xf9 ù
ITEM_ID_QUOTE SDLK_ASTERISK 0x33 0x2a *
ITEM_ID_BACKSLASH SDLK_EXCLAIM 0x3d 0x21 !
ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <