GP2X Cyclone Question


Firefox

Member
Joined
Dec 7, 2005
Messages
443
Location
Sheffield, England
Website
Visit site
Can anybody confirm that Cyclone only uses the read8/read16/read32 and write8/write16/write32 functions to read and write emulated memory? (Apart from reading 68000 opcodes, obviously.)

I think it does, but there's ~63,000 lines of ARM assembler in Cyclone so I may well have missed something... :D
 
Sorry, can't help - but I do have one question...

Are you who I think you are (Sheepies!), and is this concerning what I think it concerns?

D.
 
Thats correct for reading emulated memory.

If you using Cyclone for a project, don't forget about checkpc!
 
That's good news. Thanks Squidge!

I've got my checkpc function in place, and I'm pretty sure I've understood the idea behind it.

One other thing that's slightly puzzling me: for the read32/write32 functions, am I correct in thinking that each 16-bit half word should be byteswapped?

I know it wouldn't matter if Cyclone was the only thing using memory, but there are several emulated coprocessors using memory as well so I have to get it right for them to work properly...
 
Firefox said:
One other thing that's slightly puzzling me: for the read32/write32 functions, am I correct in thinking that each 16-bit half word should be byteswapped?
read32 should return whatever real 68k would read at that location, so it depends on how you keep your data in memory. If our memory is not byteswapped, then yes, you will need to byteswap those halfwords.
Note that it doesn't use memhandlers to fetch code instructions, so all program memory must be byteswapped, including RAM, if it ever executes from there.

I suggest downloading Cyclone generation program to customize Cyclone for your needs (by editing config.h and rebuilding), not just taking Cyclone.s from some other project. Also read included Cyclone.txt, if you haven't done so yet.
http://notaz.gp2x.de/cyclone.php

Good luck
 
Last edited by a moderator:
notaz said:
read32 should return whatever real 68k would read at that location, so it depends on how you keep your data in memory. If our memory is not byteswapped, then yes, you will need to byteswap those halfwords.
Note that it doesn't use memhandlers to fetch code instructions, so all program memory must be byteswapped, including RAM, if it ever executes from there.

The ROM cartridge area is already byteswapped for Starscream's benefit. Fingers crossed games don't copy code into RAM and execute from there (I've emailed the emulator's author to see if he knows).

notaz said:
I suggest downloading Cyclone generation program to customize Cyclone for your needs (by editing config.h and rebuilding), not just taking Cyclone.s from some other project. Also read included Cyclone.txt, if you haven't done so yet.
http://notaz.gp2x.de/cyclone.php

Good luck


Ah, brilliant! An updated generator program!

I'd previously had a go some time back using fdave's last Cyclone release (I'm using the instructions from that), and a few weekends back just using the generated code you used in uae4all 0.70. I didn't realised you'd released an updated generator, though. (Site bookmarked.)

Many thanks Notaz!
 
Last edited by a moderator:
Back
Top