Emulate pointer error exception on load/store and range error exception
on store signed byte/half-word.
Further optimised code generation for MOV and MOVI. These are very hot,
so this alone gains a further 2% performance or so in the dgPIX games.
Also some other miscellaneous cleanup.
* nintendo/gba.cpp: Implement master volume for PSG and directsound, use required_device_array for DACs
* nintendo/gba.cpp: Use table for master volume
* gba.cpp: Fix FIFO sound emulations, Use struct for FIFO sound
* nintendo/gba.cpp: Fix logging
Cleaned up meta data focusing on Scholastic, Queue, Electronic Arts, Sunburst Communications, and Epyx
Credits: [4am, san inc, A-Noid]
New working software list items (apple2_flop_orig.xml)
-------------------------------
A.I.
Adventures in Space
Adverbial Clauses (version 1988)
Agreement of Subject and Verb (version 1988)
Algebra Word Problems (version 1983)
Algebra Word Problems (version 1988)
American Government (Intellectual Software)
American History Adventure
An Adventure Double Feature Volume II
Analytical Reasoning
Animals with an Attitude
Averages (version 1988)
Banner Books: All Along The Alphabet
Banner Books: Your School Day
Big Book Maker: Favorite Fairy Tales & Nursery Rhymes
Big Book Maker: Tall Tales & American Folk Heroes
Boulder Dash (Micro Fun)
Boulder Dash (Ozisoft)
Boulder Dash (Super Boulder Dash Collection) (Electronic Arts)
Boulder Dash Construction Kit
Boulder Dash II (Super Boulder Dash Collection) (Electronic Arts)
Bulletin Board Maker (version 1.0)
Bulletin Board Maker: City & Country
Bulletin Board Maker: Your Neighborhood
Buzz Bang Harvey
Clauses and Whole Sentences
Clue: Master Detective (version 1.5)
Commas (version 1990)
Complex Sentences / Adjective Clauses (version 1988)
Comprehensive Grammar Review II (version 1988)
Creature Cube
Deathlord
Easy as ABC (Spinnaker Software)
Equations I (version 1983)
Equations I (version 1988)
Equations II (version 1988)
ESL Writer (version 1.0)
Fortress (revision 2)
Fraction Word Problems
Gemstone Warrior (version 1.1)
Germany 1985 (version 1.0)
Gerunds (version 1988)
Harvey by Primes
How To Do Research
Infinitives (version 1988)
Kids at Work
La Geste du Barde : The Bard's Tale (French)
Latin Tutor
Logic Builders
M-ss-ng L-nks: Al Pie De La Letra Spanish Editor
M-ss-ng L-nks: Classics Old and New
M-ss-ng L-nks: English Editor
M-ss-ng L-nks: Young People's Literature (version 1983)
M-ss-ng L-nks: Young People's Literature (version 1987 revised)
Magic Slate: 20/40-Column Apple ][+ Version (version 1.02)
Magic Slate: 20/40-Column Apple ][+ Version (version 1.1.2)
Math Man
Math Shop Spotlight: Weights & Measures
Mathematics Word Problems Grade 2
Mathematics Word Problems Grade 3
Mathematics Word Problems Grade 8
Mech Brigade (version 1.2)
Mind Castle I
Mind Castle II
Mind Mirror
Momentum and Work
Monstrous Monsters (version 1.0)
More Teasers from Tobbs: Decimals and Fractions
Murder on the Zinderneuf
Music Construction Set (revision 1)
Music Construction Set (revision 2)
Music Construction Set (revision 3)
Music Construction Set (revision 4)
Mystery Sentences (revision 1)
Mystery Sentences (revision 2)
NAM (version 1.0)
Noun Clauses (version 1988)
Odd One Out (version 26-AUG-1990)
Operation Apocalypse
Panzer Grenadier (version 1.0)
Panzer Grenadier (version 1.2)
Participles (version 1988)
Poster
Practical Composition II: Clear, Logical Sentences
Prepositional Phrases (version 1988)
Problems in the Use of Infinitives (version 1988)
Pronouns: Substitutes for Nouns
Punctuation Review (version 1988)
Quations: The Crossmath Game
Queen of Hearts
Reading Explorers Volume 1
Reading Explorers Volume 2
Reading Explorers Volume 3
Real Number System (version 1983)
Real Number System (version 1988)
Roadwar 2000 (version 1.0)
Roadwar 2000 (version 1.2)
Roadwar Europa (version 1.0)
Rounding and Estimation
Science Explorers Volume 1 Grades 1-3: Plants
Science Explorers Volume 1 Grades 1-3: Skeletons
Science Explorers Volume 2 Grades 4-6: Animal Adaptations
Story Tree (version 1.4)
Super Science Graph and Charts: Health and Human Body
Symbols and Sets (version 1988)
Tales from History
Tales of Discovery
Tales of Fantasy
Tales of Mystery
Teasers by Tobbs: Whole Numbers
Teddy and Iggy (version 30-JUN-1989)
The Compound Sentence (version 1988)
The Standing Stones
The Tenses of Verbs (version 1988)
Theorems and Proofs of Theorems
Torpedo Fire
Verbs: Voice and Mood (version 1988)
War in Russia
Warship (version 1.0)
New non-working software list items (apple2_flop_orig.xml)
-------------------------------
Decimal and Percent Word Problems
Knights of the Desert (version 1.1)
Mathematics Word Problems Grade 7
North Atlantic 86
The Newsroom (version 1985-02-08)
The Newsroom (version 1985-02-11)
The Newsroom (version 1985-05-15)
The Newsroom (Scholastic Edition) (version 1985-05-20)
The Newsroom (version 1985-05-20)
The Newsroom (version 1985-10-16)
The Newsroom (version 1985-12-20)
The Newsroom (version 1986-01-28)
The Newsroom (version 1987-05-08)
Redumped software list items (apple2_flop_orig.xml)
-------------------------------
Fantavision [4am, qkumba, anoid]
New working software list items (apple2_flop_clcracked.xml)
-------------------------------
ADD Reading Skills A (4am crack)
ADD Reading Skills B (4am crack)
Momentum and Work (4am crack)
Reading and Thinking III (4am crack)
Science Explorers Volume 1 Grades 1-3: Plants (800K 3.5") (4am crack)
Science Explorers Volume 1 Grades 1-3: Shadows (800K 3.5") (4am crack)
Science Explorers Volume 1 Grades 1-3: Skeletons (800K 3.5") (4am crack)
Science Explorers Volume 1 Grades 1-3: Weather (800K 3.5") (4am crack)
Science Explorers Volume 2 Grades 4-6: Animal Adaptations (800K 3.5") (4am crack)
Science Explorers Volume 2 Grades 4-6: Day, Night, and The Seasons (800K 3.5") (4am crack)
Science Explorers Volume 2 Grades 4-6: Nutrition (800K 3.5") (4am crack)
Science Explorers Volume 2 Grades 4-6: Simple Machines (800K 3.5") (4am crack)
Story Tree (version 1.3) (4am and san inc crack)
SuperPrint! (version 1.2) (4am crack)
The Royal Rules (revision 2) (4am crack)
Transportation Transformation (version 1.1) (4am crack)
Redumped software list items (apple2_flop_clcracked.xml)
-------------------------------
Quations: The Crossmath Game (4am crack)
Spare Change (4am and san inc crack)
Removed (apple2_flop_clcracked.xml)
-------------------------------
Boulder Dash Construction Kit (imperfect clean crack)
Microzine 7 (imperfect clean crack)
Microzine 9 (imperfect clean crack)
Microzine 14 (imperfect clean crack)
Mystery Sentences (imperfect clean crack)
Operation Frog (imperfect clean crack)
Secret Filer (imperfect clean crack)
Story Tree (version 1.4) (imperfect clean crack)
Success with Typing (version 1.2) (imperfect clean crack)
Tales of Mystery (imperfect clean crack)
The Eidolon (imperfect clean crack)
The World's Greatest Baseball Game (Enhanced Version) (imperfect clean crack)
Changed "Exception Points" to "Exceptionpoints" in the debugger
documentation and help. This better matches "Watchpoints" and
"Registerpoints". Also, it's very confusing that you see the help topic
listing showing "Exception Points" but typing "help Exception Points"
doesn't actually work.
cpu/e132xs: Fixed a flags issue in the recompiler.
misc/dgpix.cpp: Demoted The X-Files to not working with unemulated
protection.
skeleton/turnierdart.cpp: The srcclean on this file was missed.
* Implemented pointer error exceptions on attempting to use a zero
address register (other than SR) in the recompiler.
* Also optimised load/store instructions a bit and reduced copy/paste.
* Fixed a couple of disassembler issues.
-misc/dgpix.cpp: Demoted The X-Files to not working with unemulated
protection.
- Added inputs & DIP switches for pma.
- Switched CPU to i8080 for pma.
- Added buttons-lamps clickable layout for pma.
- Promoted pma set to working.
- Added ASCII PCB layout for Dellfern sets.
- Improved Prologic, Kimble Z80, and Noraut JP
ASCII PCB layouts.
Systems promoted to working
---------------------------
PMA Poker [Roberto Fresca, Grull Osgo]
* Aligned the operand field in disassembly.
* Calculate results of immediate values against the PC to make
position-independent code easier to read without constantly using a
calculator (e.g. this shows destinations for call Rd, PC, imm).
* Added more symbols to the UML helper to make logged generated code
more readable.
* Made single-instruction-per-sequence mode configurable rather than a
compile-time option.
* Got rid of a criminal amount of copy/paste in the disassembler, and
got rid of all the deprecated strcpy calls.
* Got rid of some duplicated constants, changed some constants from
macros to enumerated values or constexpr globals.
* Reduced the amound of stuff in headers that doesn't need to be there.
-cpu/drcbex64.cpp: Don't construct std::function objects during code
generation - they require allocation.
-eolith/eolith.cpp: Turned single-instruction-per-sequence mode on for
now until someone works out why turning it off causes Raccoon World to
generate so much code it's unplayably slow.
- Unified some machine configs.
- Added inputs & DIP switches for newhilop and pkii_dm.
- Switched CPU to i8080 for newhilop and pkii_dm.
- Added buttons-lamps clickable layout for newhilop and pkii_dm.
- Promoted newhilop and pkii_dm sets to working.
Systems promoted to working
---------------------------
New Hi-Low Poker [Roberto Fresca, Grull Osgo]
unknown poker game PKII/DM [Roberto Fresca, Grull Osgo]
* Optimised double word shifts.
* Optimised the most common PC-relative operations to treat PC as
constant when possible, including:
- addi PC,imm (long relative branch)
- add PC,Rs (computed goto)
- sum Rd,PC,imm (calculate PC-relative address)
- add Rd,PC (calculate PC-relative address)
- ldw.d PC,Rs,imm (PC-relative load)
- stw.d PC,Rs,imm (PC-relative store)
* Changed template parameters to LlamaCase to make them more visible
different to constants/macros.
- Added 3 new sets: df_djpkra, norautn1a, and norautpt.
- Proper machine config and memory map for gtipokra.
- Figured out the DIP switch for gtipoker minimal hand.
- Fixed some ROM loads.
- Added technical notes.
New working clones
------------------
Double Joker Poker / Jacks Plus (45%-75% payout, alt) [Roberto Fresca, Grull Osgo, Hammy]
Noraut Joker Poker (N1A) [Roberto Fresca, Grull Osgo, Hammy]
Noraut Joker Poker (text hack) [Roberto Fresca, Grull Osgo, ArcadePT]
* Disabled single-instruction-per-block mode.
* Don't bother with delay slot checks where it's unnecessary.
* Try to generate a speicalised copy of the delay slot instruction
followed by a direct branch of possible.
* Use the pre-decoded instruction length for updating the PC.
* Specialised versions of the CHK instruction that always or never
raise exceptions.
* sound/s_dsp.cpp: Fix pitch modulation emulation, Fix save state support
reference: https://snes.nesdev.org/wiki/SNESdev_Wiki
* sound/s_dsp.cpp: Fix indent
* s_dsp.cpp: Reduce unnecessary lines, Fix typenames
* sound/s_dsp.cpp: More std::clamp uses, Use BIT for single bit flags
* sound/s_dsp.cpp: Fix input clock, Fix indent, Use lowercase hexadecimal values, Use reference for voice state
reference: https://snes.nesdev.org/wiki/S-SMP
* sound/s_dsp.cpp: Use logmacro.h for logging, Use BIT for single bit flags
- added controls to maxheart (game is playable, but shuts down into power saving after 15 minutes as if no buttons had been pressed) [David Haywood]
- started researching the banking scheme used by atgame40, while several games are now bootable the others appear to use video modes specific to this Genesis clone SoC so fail to display proper gameplay [David Haywood]
new WORKING machines
------------
Millennium Arcade 3D 15-in-1 [TeamEurope, David Haywood]
new NOT WORKING machines
------------
TV Games Baseball (SH6578 hardware) [Ankos, Kryzsiobal]
Chāo Jí Zhī Shi Dà Fù Wēng (vol. 1) [Ankos, Kryzsiobal]
Chāo Jí Zhī Shi Dà Fù Wēng (vol. 2) [Ankos, Kryzsiobal]
My Arcade Tetris (Slurpee) [Sean Riddle]
My Arcade Tetris (DGUNL-7030, Gamer V, with 220 bonus games) [Sean Riddle]
My Arcade Tetris (DGUNL-7027, Pico Player, with 100+ bonus games) [Sean Riddle]
My Arcade All Star Stadium - Pocket Player (307-in-1) [TeamEurope]
Hippo: et la formidable aventure des lettres (France) [TeamEurope, David Haywood]
new NOT WORKING software list entries
--------------
tvgogo.xml:
Snowboarding (Europe) [TeamEurope, David Haywood]
Paintball (Europe) [TeamEurope, David Haywood]
The DYUV decoder requires an interpolation between steps. The previous implementation was based on the manual. This interpolation is based on visual comparison to the hardware.
* Fixed failing to call the debugger instruction hook for the first
instruction following an interrupt, exception or trap.
* Use UML branches to emulate non-delayed intra-block branches, avoiding
the expensive "hash jump".
* Re-worked the instruction description code:
- Calculate static branch targets for more instructions.
- Flag instructions that may cause mode changes.
- Don't be so eager to end an instruction sequence.
- Removed the local register input/output flags - FP may no be the
same when executing the code as when describing instructions.
* Fixed interpreter incorrectly setting ILC when an interrupt
immediately follows a RET instruction.
* Fixed recompiler flag calculation regressions, and optimised a little.
* Fixes interrupts not being serviced while tracing.
* Further improves recompiler performance.
* Fixes recompiler interrupt check function calling itself recursively.
* Also added debugger exception hook calls to interpreter and recompiler.
* Fixed XM (index move) instructions failing to update the destination
register on range error for interpreter and recompiler.
* Fixed double-word stores when the source indicates SR (both stored
words are zero) for interpreter and recompiler.
* Fixed recompiler failing to set ILC and P on range error and frame
error exceptions.
* Optimised recompiled code for word size shifts.
* Pushed more recompiler logic from run-time to code generation time and
simplified delay slot PC check and trace check logic.
* Use MOV rather than LOAD where possible in recompiler to improve code
generation performance and symbolic memory locatin names in
disassembled UML.
* Updated TODO list in header comment, reduced copy/paste some more.
-cpu/drcbex64.cpp: Avoid some more unnecessary register copies for
ROLAND.
------------------------------
Balance Try (Japan, ver 1.00) [Guru, Hammy]
Love Power [Siftware]
Pai Pai Le 3 [dyq, little0, Guru]
unknown bubble soccer game [Kevin Eshbach]
New clones marked not working
-----------------------------
Chao Ji Da Heng 2 (V311CN, alternate GFX ROMs) [little0]
- Added support for dynamic size chars lines.
That fixes the paytable shown in different games
such as dphl, dphljp, dphlunkb, sureshoto, smshilo,
etc, allowing to remove the imperfect graphics flags.
- norautua: fixed the overflow when drawing cards
in the possible straight case.
- Rewrote the screen update to save a big number of lines.
- Removed the driver init for ssjkrpkr.
- Added Inputs & DIP switches for gtipoker.
- Change gtipoker game description to: Aces or Better Draw Poker.
- Rearrange the gtipoker graphics ROM.
- Promoted gtipoker set to working.
- Added technical notes.
Systems promoted to working
---------------------------
Aces or Better Draw Poker (GTI) [Roberto Fresca, Grull Osgo]