Added 0.030 of PicoDrive and moved license files into root
[cyclone68000.git] / PicoDrive / PicoDrive.txt
CommitLineData
15eb0001 1\r
2----------------------------------------------------------------------------\r
3\r
4 PicoDrive\r
5\r
6 Megadrive emulator for Pocket PC\r
7\r
8This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
9You 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
150.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
320.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
360.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
480.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
530.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
620.017 Added Window (score display)\r
63\r
640.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
69Cyclone 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
81v0.011\r
82Changes are to the Cyclone core, repeated here:\r
83----\r
84v0.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
93v0.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
98v0.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
107v0.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
113v0.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
118v0.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
149v0.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
166How 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