Added 0.030 of PicoDrive and moved license files into root
[cyclone68000.git] / PicoDrive / PicoDrive.txt
1 \r
2 ----------------------------------------------------------------------------\r
3 \r
4                                 PicoDrive\r
5 \r
6                     Megadrive emulator for Pocket PC\r
7 \r
8 This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
9 You can choose the license that has the most advantages for you.\r
10 \r
11 ----------------------------------------------------------------------------\r
12 \r
13   What's new?\r
14 \r
15 0.030\r
16   Cyclone v0.076, fixes:\r
17   + Fixed an issue with sbcd - e.g. when 0x00-0x01 was performed, the result was correct (0x99),\r
18   but the carry bit was not set. Also changed abcd code to be more similar to new sbcd.\r
19   Used on RT2.\r
20   + Fixed a subtle issue in btst #n,(An), if the target is less that 32-bit, the value is\r
21   now masked.\r
22   Rolling Thunder 2 did this, but it doesn't seem to have fixed/broken anything.\r
23   + Oops #2! Cmpa was writing back the value to the destination register! Fixes: don't know.\r
24   + Oops #3! The CCR should be writable from any mode, previously it was only allowed from the\r
25     supervisor mode. Fixes Gain Ground.\r
26   + Added cmpm (Flicky, Decap Attack)\r
27   + For movem, added some EA modes (like 0x3a PC relative) which I thought were invalid, but\r
28     Flicky uses movem to PC relative...\r
29   + Oops, incorrect eor opcodes were being emitted instead of cmpm opcodes\r
30   * Trying a different way of doing addx/subx with carry (to fix zero flag?)\r
31 \r
32 0.025\r
33   + Doh, fixed a dumb divide by zero in the (w.i.p.) sound code - Sonic 1, Revenge of Shinobi\r
34     work again!\r
35 \r
36 0.024\r
37   Cyclone v0.072:\r
38   + Fixed a problem with divs - remainder should be negative when result is negative\r
39     Fixed intro of Block Out.\r
40   \r
41   + Fixed a typo in SekInterrupt\r
42 \r
43   + Added a config file PicoConfig.txt with key codes, in the root directory\r
44     of the Pocket PC. If you want you can edit this to remap keys. I'll add\r
45     an easier way to redefine keys later.\r
46   - Revenge of Shinobi strangely seems broken?\r
47 \r
48 0.022\r
49   Cyclone changes:\r
50   + Added movep opcode (Sonic 3 works)\r
51   + Fixed a problem with DBcc not decrementing if the condition is false (Shadow of the Beast)\r
52 \r
53 0.018\r
54   Cyclone changes:\r
55     + Added SBCD and the flags for ABCD/SBCD. Score and time now works in games such as\r
56       Rolling Thunder 2, Ghouls 'N Ghosts\r
57     + Fixed a problem with addx and subx with 8-bit and 16-bit values.\r
58       Ghouls 'N' Ghosts now works!\r
59     + Alien 3 now works\r
60     + Added ABCD opcode (Streets of Rage works now!)\r
61 \r
62 0.017 Added Window (score display)\r
63 \r
64 0.016\r
65   + Added some Z80 faking which makes a few more games run\r
66   + Sped up graphics rendering a bit\r
67   + Fixed Sprite priority\r
68 \r
69 Cyclone Fixes\r
70   + Added dbCC (After Burner)\r
71   + Added asr EA (Sonic 1 Boss/Labyrinth Zone)\r
72   + Added andi/ori/eori ccr (Altered Beast)\r
73   + Added trap (After Burner)\r
74   + Added special case for move.b (a7)+ and -(a7), stepping by 2\r
75     After Burner is playable! Eternal Champions shows more\r
76   + Fixed lsr.b/w zero flag (Ghostbusters)\r
77     Rolling Thunder 2 first level only now works\r
78   + Fixed N flag for .b and .w arithmetic. Golden Axe works!\r
79 \r
80 \r
81 v0.011\r
82 Changes are to the Cyclone core, repeated here:\r
83 ----\r
84 v0.0065\r
85   + Fixed a problem with immediate values - they weren't being shifted up correctly for some\r
86     opcodes. Spiderman works, After Burner shows a bit of graphics.\r
87   + Fixed a problem with EA:"110nnn" extension word. 32-bit offsets were being decoded as 8-bit\r
88     offsets by mistake. Castlevania Bloodlines seems fine now.\r
89   + Added exg opcode\r
90   + Fixed asr opcode (Sonic jumping left is fixed)\r
91   + Fixed a problem with the carry bit in rol.b (Marble Madness)\r
92 \r
93 v0.0064\r
94   + Added rtr\r
95   + Fixed addq/subq.l (all An opcodes are 32-bit) (Road Rash)\r
96   + Fixed various little timings\r
97 \r
98 v0.0063\r
99   + Added link/unlk opcodes\r
100   + Fixed various little timings\r
101   + Fixed a problem with dbCC opcode being emitted at set opcodes\r
102   + Improved long register access, the EA fetch now does ldr r0,[r7,r0,lsl #2] whenever\r
103      possible, saving 1 or 2 cycles on many opcodes, which should give a nice speed up.\r
104   + May have fixed N flag on ext opcode?\r
105   + Added dasm for link opcode.\r
106 \r
107 v0.0062\r
108   * I was a bit too keen with the Arithmetic opcodes! Some of them should have been abcd,\r
109     exg and addx. Removed the incorrect opcodes, pending re-adding them as abcd, exg and addx.\r
110   + Changed unknown opcodes to act as nops.\r
111     Not very technical, but fun - a few more games show more graphics ;)\r
112 \r
113 v0.0060\r
114   + Fixed divu (EA intro)\r
115   + Added sf (set false) opcode - SOR2\r
116   * Todo: pea/link/unlk opcodes\r
117 ----\r
118 v0.010\r
119 \r
120 + Cyclone v0.0059: Added remainder to divide opcodes.\r
121   Background is now fixed on Eswat and Revenge of Shinobi. In fact they are playable!\r
122 \r
123 * Shrunk the screen down because some games aren't playable if you can't see the whole\r
124   320 pixel width.\r
125 \r
126 * Merged the PicoDrive and GenaDrive 'Pico' directories, with ifdefs for EMU_C68K (Cyclone)\r
127   and EMU_A68K.\r
128 \r
129 + While making GenaDrive I noticed a few bugs in the memory handlers and carried them\r
130   over to PicoDrive.\r
131   A lot of games (Revenge of Shinobi, Eswat, Sonic 1 maybe even) were reading\r
132   from memory locations like 0xff000000+Rom address, and I wasn't returning the Rom data.\r
133   Many more games show graphics now (G'n'G, Sonic 1)!\r
134 \r
135 * Cyclone: Changed the way Cyclone reads memory to be a bit less confusing.\r
136   The read/write memory handlers are now like this:\r
137 \r
138   unsigned char  (*read8  )(unsigned int a);  // [r7,#0x68]\r
139   unsigned short (*read16 )(unsigned int a);  // [r7,#0x6c]\r
140   unsigned int   (*read32 )(unsigned int a);  // [r7,#0x70]\r
141   void (*write8 )(unsigned int a,unsigned char  d); // [r7,#0x74]\r
142   void (*write16)(unsigned int a,unsigned short d); // [r7,#0x78]\r
143   void (*write32)(unsigned int a,unsigned int   d); // [r7,#0x7c]\r
144 \r
145   This means the Cyclone itself now sign-extends 16 and 8-bit values when needed, and\r
146   the application doesn't have to.\r
147 \r
148 \r
149 v0.007 - Initial release\r
150 \r
151   Haven't been working on this much recently so I thought I'd release what\r
152   I had onto the Internet.\r
153 \r
154   Basically this is largely a framework for Cyclone, my 68000 core, and the\r
155   simplest system has to be the Megadrive, which is just really a 68000 with\r
156   flat address space wired up to a video display processor.\r
157   The Megadrive does of course have a Z80 for sound as well, but many games\r
158   will still run without it. Basically it's one of the most forgiving systems,\r
159   so it's probably a good starting point.\r
160 \r
161   Not many games run, and none of them are playable yet, but if you really want\r
162   to take a look anyway, here's what to do:\r
163 \r
164 -------------------------------------------------------------------------------\r
165 \r
166 How to run PicoDrive\r
167 \r
168   First connect your Pocket PC and copy PicoDrive.exe to it. Windows\Start Menu is \r
169   probably the best place for easy access.\r
170   It needs to have GAPI installed, which you may have already. If you don't it\r
171   will give you a really unhelpful error message (good old Windows!) like "Unable to execute\r
172   program".\r
173   To install GAPI just drop gx.dll into either the same folder as PicoDrive, or\r
174   your Windows folder.\r
175   Rom images go in the My Documents folder, and they must be in .BIN format, uncompressed.\r
176 \r
177   From memory, some games which do something are: Revenge of Shinobi, Sonic 2,\r
178   Ghouls 'N' Ghosts and CastleVania Bloodlines. Most just show a big blank screen :(\r
179   \r
180   If you find any games that are playable (maybe a PD game?), let me know, I'd be interested ;)\r
181   My e-mail is dev(at)finalburn.com - replace the (at) with an @\r
182   \r
183   I think there must be something wrong somewhere with one of the ASL-type instructions\r
184   or something - there are still a few unimplemented opcodes, and also I don't think I did\r
185   the remainder from DIVS and DIVU yet.\r
186 \r
187   Dave.\r
188   emudave(atsymbol)gmail.com\r
189 \r