/*************************************************************************** Phoenix arcade machine emulator V0.1 31/01/96 Z80 engine by Marat Fayzulin and Marcel de Kogel Emulator by Richard Davies (R.Davies@dcs.hull.ac.uk) based on the structure of the emulators by Nicola Salmoria (MC6489@mclink.it). Phoenix hardware data provided by Ralph Kummlingen (ub2f@rz.uni-karlsruhe.de) 224x288 video mode created using Tweak 1.6b by Robert Schmidt, who also wrote TwkUser.c. 256x256 video mode (Mode Q) definition by Gary Shepherdson (od67@dial.pipex.com) If you find out something useful, don't hesitate to submit it to : The arcade emultion programming repository. So it will be available to everyone at : http://valhalla.ph.tn.tudelft.nl/emul8 Send it by email to : avdbas@wi.leidenuniv.nl Known issues: - I can't get the scrolling right! There are four different versions of vidhrdw.c included: * vidhrdw.c1, Screen updated using dirty rectangles, no scrolling or video ram bank switching, but characters displayed correctly. * vidhrdw.c2, As above but scrolling is implemented, and most of the characters disappear! * vidhrdw.c3, As above but video ram bank switching is implemented, and ALL of the characters disappear! * vidhrdw.c4, As vidhrdw.c2, but all characters are drawn every video refresh. All characters are displayed, but the upper charset is glitchy. This is the version used in the compile. - The colors are spot on, and palette switching works, so if the scrolling bug is fixed with the display updated using dirty rectangles, this would be a nice, fast, little emulator. PLEASE have a look at the code and get in touch if you find out whats wrong! - There are occasional glitches in the mid-left part of the screen (might be allegro, or even my video card). - There is no Pleiades support (very easy to do!). - There is no sound. ***************************************************************************/ #include #include #include "machine.h" #include "osdepend.h" int main(int argc,char **argv) { if (init_machine(argc > 1 ? argv[1] : "phoenix") == 0) { printf("\nPhoenix Arcade Machine Emulator v0.1 31/01/97 \n\n" "PLEASE DO NOT DISTRIBUTE THE SOURCE FILES OR THE EXECUTABLE WITH ROM IMAGES.\n" "DOING SO WILL HARM FURTHER EMULATOR DEVELOPMENT AND WILL CONSIDERABLY ANNOY\n" "THE RIGHTFUL COPYRIGHT HOLDERS OF THOSE ROM IMAGES AND CAN RESULT IN LEGAL\n" "ACTION UNDERTAKEN BY EARLIER MENTIONED COPYRIGHT HOLDERS.\n" "\n\n" "Quick keys : 3 Insert coin\n" " 1 Start 1 player game\n" " 2 Start 2 player game\n" " Arrows Move Around\n" " F1 Skip frame\n" " P Pause\n" " F12 Save a screen snapshot\n" " ESC Exit emulator\n" "\n\n" "Press to continue.\n"); getchar(); if (osd_init() == 0) { if (run_machine() != 0) printf("Unable to start emulation\n"); osd_exit(); } else printf("Unable to initialize system\n"); } else printf("Unable to initialize machine emulation\n"); exit(0); }