CPCWiki forum

General Category => Programming => Topic started by: crabfists on 20:38, 24 March 23

Title: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 20:38, 24 March 23
I'm working on porting Spectrum Analyser (https://colourclash.co.uk/spectrum-analyser/) to the cpc. It's a combination of interactive disassembler, emulator and debugger. It's designed to make the job of reverse engineering games easier and is quite fun to use. I didn't write the original tool. I'm just doing the cpc port.

The cpc version is still in the early days but hopefully I can share something in the future. I didn't have much knowledge of the cpc hardware when I started a few weeks ago so it's been fun to learn how the machine works. I had a cpc as a kid though, so I have an adequate amount of nostalgia that always helps drive a project.

I've mostly figured the screen out, although some demos do things with the crtc that my logic doesn't deal with. For example, anything that sets the raster lines per character (R9) to 1.

One of the features of the tool is, you can click on any character on the screen and it will be able to tell you which code wrote to that memory address. It makes finding the graphics routines very easy.

There is also a graphics view that helps you find graphics. This is not fully working yet.

In the built in disassembler you can rename routines, add comments etc.

There are loads more features. Check out the link above for more details. There is a Youtube video showing the Spectrum Analyser in action, which is great for getting an idea of what it can do.

Would there be any interest from users here?

Here are some screenshots of the progress of the cpc port.

2023-03-24 19_22_52-CPC Analyser.png

2023-03-24 19_27_16-CPC Analyser.png
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: andycadley on 21:36, 24 March 23
Yeah, been thinking something like this could be cool for the CPC but rarely have the time. The things that SkoolKit can do for reverse engineering Speccy games is pretty interesting too.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SyX on 21:38, 24 March 23
Quote from: crabfists on 20:38, 24 March 23Would there be any interest from users here?
Yes! :)

I have been following the thread in spectrum computing and I like what I saw.

Until now I was using a mix of emulators, disassemblers, a patched skoolkit and a few of my own tools. Then I am always,open to a much more integrated solution.

In case that you have any doubt about the CPC hardware, only ask.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: Animalgril987 on 22:21, 24 March 23
I am also interested  :D
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: Richard_Lloyd on 22:35, 24 March 23
A big YES from me!
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: roudoudou on 23:31, 24 March 23

you may use Winape Session replay to make an almost full walkpath in the game, then you are pretty sure the emulator will execute all he has to do
by tagging memory address of executed opcodes, you will have all code zone (data is everything else)
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: robcfg on 12:21, 25 March 23
Definitely!

I like that it can be compiled on Windows, Mac and Linux, thank you very much!

ImGui does bring some serious benefits to the table even at the expense of making all the apps done using it look the same.

I'm trying to compile the C64 analyser on my Mac, but I'm encountering some problems. The ZX Spectrum one went without a hitch!

So yes, I think it would be wonderful to have a CPC one! (On a side note, it would be awesome to have Atari 8-Bit and Dragon computers too, but that is just a wish  ;D )

Keep up the good work!
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: GUNHED on 14:45, 25 March 23
It would be great to have such kind of tool(s) on the real CPC.  :)
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SyX on 16:14, 25 March 23
Quote from: roudoudou on 23:31, 24 March 23you may use Winape Session replay to make an almost full walkpath in the game, then you are pretty sure the emulator will execute all he has to do
by tagging memory address of executed opcodes, you will have all code zone (data is everything else)

In speccy is very common that, because they have defined ONE standard for recording sessions (.rzx). Then a few emulators support the generation of execution logs or memory logs that can identify code from data (and mark self-modify code too) using those RZX files.

They even have a public repository with RZXs for every important zx game, and those RZXs are used for filling ONE youtube channel with zx longplays. And that doesn't invalidate that other people can create their owns longplays in their own channels, but there is central repository and there will be always one repositry for it.

In CPC, it looks impossible that we can agreed in basic things like that. Things that can help to the platform and the community to give one voice when something important is needed.

But well, maybe I am really wrong and all CPC emulators will support the session record format (.snr) for converting it in a real standard in the CPC; then maybe, then, a few CPC emulators will generate those execution logs that they could be used with tools like this or other disassemblers.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 16:49, 25 March 23
Quote from: andycadley on 21:36, 24 March 23Yeah, been thinking something like this could be cool for the CPC but rarely have the time. The things that SkoolKit can do for reverse engineering Speccy games is pretty interesting too.
I don't have time either!  :laugh: Agree, Skoolkit is amazing. Would be nice to have a CPC equivalent. 

Spectrum Analyser exports Skoolkit files, which is handy, because then you can do things like convert into html for browsing disassemblies online, and also easily assemble back into a working tap/sna file.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 16:55, 25 March 23
Quote from: SyX on 21:38, 24 March 23
Quote from: crabfists on 20:38, 24 March 23Would there be any interest from users here?
Yes! :)

I have been following the thread in spectrum computing and I like what I saw.

Until now I was using a mix of emulators, disassemblers, a patched skoolkit and a few of my own tools. Then I am always,open to a much more integrated solution.

In case that you have any doubt about the CPC hardware, only ask.
An all-in-one tool that can replace (or complement) other tools is the idea, yes. As I said in the first post, I am not the creator of the Spectrum Analyser. The credit to that goes to an old friend of mine. He did 99% of the work and came up with the original idea. The code is platform agnostic so I'm just adapting the framework to support the CPC. Sharing the same Z80 CPU is obviously an advantage.

Thanks for the offer of help with CPC hardware questions. I will let you know :)
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 17:01, 25 March 23
Quote from: roudoudou on 23:31, 24 March 23you may use Winape Session replay to make an almost full walkpath in the game, then you are pretty sure the emulator will execute all he has to do
by tagging memory address of executed opcodes, you will have all code zone (data is everything else)

Interesting idea. The CPC Analyser tool does mark memory addresses as code when it executes them, but you would need to play the whole game in the tool to find all of the code. We could import Winape session replay files I to the tool but that would probably only really be worth doing if there existed publically available previously created replay files of full walkthroughs of games?
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 17:07, 25 March 23
Quote from: robcfg on 12:21, 25 March 23Definitely!

I like that it can be compiled on Windows, Mac and Linux, thank you very much!

ImGui does bring some serious benefits to the table even at the expense of making all the apps done using it look the same.

I'm trying to compile the C64 analyser on my Mac, but I'm encountering some problems. The ZX Spectrum one went without a hitch!

So yes, I think it would be wonderful to have a CPC one! (On a side note, it would be awesome to have Atari 8-Bit and Dragon computers too, but that is just a wish  ;D )

Keep up the good work!
I can't take credit for the cross platform code. The main developer did all that.  ;)

ImGui does have its limitations but in general it's amazing. The tool wouldn't be as complete as it is without it.

Send me a PM regarding the c64 version not building, or put a bug on the GitHub page.

Agree, other platforms would be awesome. I'd love to see PC Engine or NES personally. Currently it's using the platforms supported by the CHIPS emulator framework. None of the platforms mentioned above are supported unfortunately, so they would be quite a bit more work.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: WacKEDmaN on 17:38, 25 March 23
this is looking cool... reminds me alot of tiny8bit with UI... just with some extras (oh i see you mention CHIPS framework!)
https://floooh.github.io/tiny8bit/cpc-ui.html
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: andycadley on 17:40, 25 March 23
Quote from: crabfists on 17:01, 25 March 23
Quote from: roudoudou on 23:31, 24 March 23you may use Winape Session replay to make an almost full walkpath in the game, then you are pretty sure the emulator will execute all he has to do
by tagging memory address of executed opcodes, you will have all code zone (data is everything else)

Interesting idea. The CPC Analyser tool does mark memory addresses as code when it executes them, but you would need to play the whole game in the tool to find all of the code. We could import Winape session replay files I to the tool but that would probably only really be worth doing if there existed publically available previously created replay files of full walkthroughs of games?
I guess it depends on how well documented WinAPE's session recordings are (and how portable?) If it was something that could be usable across multiple emulators (as RZX file kind of are) then I don't think crowd sourcing a collection of play throughs would be that hard. Playing games is definitely the easy bit.  :laugh:
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: zhulien on 09:40, 26 March 23
Does this tool show the covery of memory accesses? i.e. reset the covery graph, run some option, and see what bits of memory were covered?  Might not be the most useful thing for eg. a game that really might only have a simple gameloop and some complicated rendering code, but it definitely makes sense for some serious software, e.g. choose a menu option in Discology and see what code was executed and what memory was read.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: robcfg on 12:24, 26 March 23
Quote from: crabfists on 17:07, 25 March 23Agree, other platforms would be awesome. I'd love to see PC Engine or NES personally. Currently it's using the platforms supported by the CHIPS emulator framework. None of the platforms mentioned above are supported unfortunately, so they would be quite a bit more work.
That's some project to contribute too, as your analyser tools are way too useful to not try to add more platforms.

Quote from: crabfists on 17:07, 25 March 23Send me a PM regarding the c64 version not building, or put a bug on the GitHub page.
Coming soon!
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: lmimmfn on 01:25, 27 March 23
This would be great, the main obstacle currently is distinguishing between executable code and data which should easily be got from an emulator and PC memory visits.

I would love this.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: robcfg on 13:29, 27 March 23
Quote from: crabfists on 17:07, 25 March 23Send me a PM regarding the c64 version not building, or put a bug on the GitHub page.
Done! https://github.com/TheGoodDoktor/8BitAnalysers/issues/5
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 10:37, 17 June 23
Sorry for the lack of updates. Progress has been continuing - albeit slowly. I'm hoping to put an alpha build up soon. Functionality will be limited to CPC 464 machine support, because the bank switching of 128k mode was adding complexity I don't want to deal with at the moment.

I merged in the latest code from Spectrum Analyser which means we get the new Event Viewer, which already looks useful. It will record various events such as keyboard reads, crtc register usage, screen writes etc. It can provide extra context like which keys were read or which crtc register was written/selected/read.

2023-06-17 10_25_33-CPC Analyser - manicminer (64K).png
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 10:56, 17 June 23
Thanks so much for giving updates on development of this wonderfull tool, looks very promising! Really looking forward for that alpha build ;D
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: zhulien on 12:10, 17 June 23
Definitely. One thing I would like to see too is a code /data coverage monitor. E.g. if you run a function,  it tracks which memory executed code, but also tracks separately memory that stack operations went to as well as memory read/writes.  This allows for a better guess and also fantastic debugging too as to whst is happening. E.g. clear tracking, enable tracking, disable tracking, load and save tracking data for repeated analysis.  Choose tracking blocks to be disassembled as either code or data.  If you also monitor I/O then you can also track memory bank usage.

We should be able to annotate address ranges with the tracking data, separate clear annotation functions than tracking.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: dragon on 12:32, 17 June 23
Laser squad sound good candidate to test It :).
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 13:26, 17 June 23
Quote from: dragon on 12:32, 17 June 23Laser squad sound good candidate to test It :).
Oooh, yes. That is on my list too. :) 
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: dragon on 17:04, 17 June 23
Quote from: crabfists on 13:26, 17 June 23
Quote from: dragon on 12:32, 17 June 23Laser squad sound good candidate to test It :).
Oooh, yes. That is on my list too. :)
I think i little forward. I have dissasmbly the level parts from years ago. But in a notepad. ;) but i left the Game part anyway  i have created even a pair of levels ported from russian guys.

Title: Re: Any interest in a CPC reverse engineering tool?
Post by: zhulien on 19:02, 18 June 23
Quote from: dragon on 12:32, 17 June 23Laser squad sound good candidate to test It :).
Laser squad is really a cool game - did you know there is GBA version of Rebelstar?
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 11:35, 21 June 23
I added more event types to the Event Viewer. Can now see when palette changes happen. Here you can see the colour cycling happening on the Ghouls 'n' Ghosts text:

I think I have enough event types now. I need to concentrate on stability and testing before the first alpha release. I also need to hook up the "Export ASM" feature as it's currently disabled.

(https://scontent-man2-1.xx.fbcdn.net/v/t1.15752-9/354411673_766970851793229_5474929360334218310_n.png?_nc_cat=109&ccb=1-7&_nc_sid=ae9488&_nc_ohc=hUH3Xa4Z2j0AX82eCKZ&_nc_ht=scontent-man2-1.xx&oh=03_AdTJV6pgHvagTpqsWltq6547DPCM-lxqaLWY-1F6XrdpNA&oe=64BA4D9F) 
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 22:52, 23 July 23
Hi, I uploaded the first version of the CPC Analyser tool. It's still missing some features from the Spectrum version but it's completely usable. I've been reverse engineering Laser Squad with it for the past few weeks.

It currently only supports 64k games. It also only supports .sna files. I will add support for tap/dsk files at some point. For now, you need to load up an emulator such as WinApe and save a 64k snapshot. Or find an existing snapshot.
 
Download is here:
https://colourclash.co.uk/cpc-analyser/

Please let me know if it works or if you have any feedback. Also, if you need help using it let me know. I will try to do a video tutorial if I can. Cheers! 

It's still a WIP so expect some bugs. Bear in mind, the tool doesn't deal with ROM and RAM sharing the same address space so this can lead to some glitchy behaviour.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 23:20, 23 July 23
Thanks so much for adapting the framework, creating and sharing this amazing tool.
Just downloaded and awaiting for testing. 
If I'm not wrong, I guess Spectrum Analyser instructions will be a good starting point, nevertheless an entry video tutorial would be really helpful, if you have some time.
Thanks again for this awesome toy.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 17:20, 24 July 23
Quote from: SpDizzy on 23:20, 23 July 23If I'm not wrong, I guess Spectrum Analyser instructions will be a good starting point, nevertheless an entry video tutorial would be really helpful, if you have some time.

Yes, the Spectrum Analyser instructions are better than nothing. Ignore the Spectrum View, Graphics Viewer and Frame Trace sections though. There is also a video walkthrough of Spectrum Analyser on the Spectrum Analyser homepage but it's probably not worth watching because it mostly demonstrates features that are not present in the CPC version yet.

Any questions feel free to post them here or via dm. :)

I would appreciate confirmation that the build actually works. Thanks :D
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 18:43, 24 July 23


Been testing some snapshots and besides there are some features I don't fully understand well yet, the tool does a god job.
The build actually works ok for me despite some problem with emulation window, maybe because only tested on Windows 7 by the way (I know it requires Win10 at least).
Emulation experiments rendering issues on respect to split screens in conjunction with double buffer, Maybe only with split screens?
Will test as soon as I can on Win 10 and report detailled info. At work now, sorry.

Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 23:27, 24 July 23
Quote from: SpDizzy on 18:43, 24 July 23Been testing some snapshots and besides there are some features I don't fully understand well yet, the tool does a god job.
The build actually works ok for me despite some problem with emulation window, maybe because only tested on Windows 7 by the way (I know it requires Win10 at least).
Emulation experiments rendering issues on respect to split screens in conjunction with double buffer, Maybe only with split screens?
Will test as soon as I can on Win 10 and report detailled info. At work now, sorry.


Edit: Maybe a problem of my Windows 7 system, but split screens don't work fine, hanging the CPC View.
Have tried some split code examples of my own and some of them work , and some others not.
Jarlac Game from RetroBytes Productions (https://www.cpc-power.com/index.php?page=detail&num=15673) also didn't work for me.
It hangs on intro screen. A snapshot taken during gameplay also hangs CPC View, being the screen corrupted and the split misaligned.
Would you mind to try it on your system?

On the other hand, tested a lot of games and all of them working fawbosly, Laser Squad included.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 10:55, 25 July 23
It doesn't surprise me that Jarlac game doesn't work tbh. Some games and demos that really push the hardware do not work. CPC Analyser uses the CHIPS  (https://github.com/floooh/chips)emulator framework. If it doesn't work on that emulator, it won't work on CPC Analyser. Feel free to report a bug on the CHIPS github page (linked above).  ;)

There is an online version of the emulator here if you want to test it.

https://floooh.github.io/tiny8bit/cpc.html?type=cpc464

Are you sure the game isn't a 6128 game? I had 6128 support partially working but the bank switching was adding too much complexity so I decided to tackle it further down the line.

Thanks for testing anyway!  :)
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 11:21, 25 July 23
Thanks for response @crabfists!!
Will try them on CHIPS emulator, but I think that's the problem.

Quote from: crabfists on 10:55, 25 July 23Are you sure the game isn't a 6128 game? I had 6128 support partially working but the bank switching was adding too much complexity so I decided to tackle it further down the line.

On response to that, both Jarlac and my own testing code are for 64k machine, so that's not the reason.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 21:04, 01 August 23
I did a little video of me using CPC Analyser. It's not really a walkthrough as such but might give people an idea of what can be achieved with the tool. I still hope to do a more thorough tutorial/walkthrough but that will take time. This video is just a 10 minute demo of me finding a cheat in Manic Miner and also figuring out where the action points and credits are stored in Laser Squad.

The Find feature hasn't been added to the public build yet. It should be in the next build I upload.

Title: Re: Any interest in a CPC reverse engineering tool?
Post by: genesis8 on 13:05, 02 August 23
Quote from: crabfists on 10:55, 25 July 23It doesn't surprise me that Jarlac game doesn't work tbh. Some games and demos that really push the hardware do not work. CPC Analyser uses the CHIPS  (https://github.com/floooh/chips)emulator framework. If it doesn't work on that emulator, it won't work on CPC Analyser. Feel free to report a bug on the CHIPS github page (linked above).  ;)

There is an online version of the emulator here if you want to test it.

https://floooh.github.io/tiny8bit/cpc.html?type=cpc464

Are you sure the game isn't a 6128 game? I had 6128 support partially working but the bank switching was adding too much complexity so I decided to tackle it further down the line.

Hi,

can the user of a CPC tiny8bit emulator load a .DSK or .SNA, or loaded by the web site automatically ?
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 13:26, 02 August 23
Quote from: genesis8 on 13:05, 02 August 23can the user of a CPC tiny8bit emulator load a .DSK or .SNA, or loaded by the web site automatically ?
I think you can drag a file into the emulator page? I never quite figured out how to use the web interface very well.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SpDizzy on 17:11, 02 August 23
Thanks so much for making and sharing video tutorial, it really helps.
Also, really interesting 'Find' feature, so looking forward for next release.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 11:24, 02 September 23
Progress has been continuing (slowly). I'm starting to implement graphics in the tool. I'm starting with the ability to format memory as a Bitmap. I've currently got support for Mode0 and Mode 1 graphics.

Here are some screenshots of my progress. Btw, anybody know why images on the forum disappear after a certain amount of time?

(https://scontent-lcy1-1.xx.fbcdn.net/v/t1.15752-9/371950620_223317040372409_648084437177206255_n.png?_nc_cat=100&ccb=1-7&_nc_sid=ae9488&_nc_ohc=MOHHJ3PHsYsAX_RIgeX&_nc_ht=scontent-lcy1-1.xx&oh=03_AdQJFBza96By9w5iMkZXhCebMvSg-AvoBTmG-tenGeQjtA&oe=651A54A5)

(https://scontent-lcy1-1.xx.fbcdn.net/v/t1.15752-9/369342730_1371751377078166_1220440421934175227_n.png?_nc_cat=100&ccb=1-7&_nc_sid=ae9488&_nc_ohc=zFTdUiUK72MAX-fD8es&_nc_ht=scontent-lcy1-1.xx&oh=03_AdQhZhFsS7AuRsKBgoSzdblMW86UgXOz72d-kzzVoTC6Ig&oe=651A61E0)
Hopefully, next I'll add the Graphics Viewer so you can view memory as graphical data.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 10:24, 25 October 23
For anyone building their own exe of CPC Analyser, I can let you know the CPC Analyser branch was merged into master. From now on please consider the cpc branch inactive.

We now have continuous integration enabled on CPC Analyser, so it should be possible to see at a glance if the Window, Mac or Linux code builds successfully.

I will try to do another public release soon, once I have finished the graphics view.

If anyone wants a build before then please let me know. 
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SerErris on 15:04, 07 November 23
@crabfists this looks great already. Do you plan to integrate an option to load other ROMs? 

I would need to check ROM code and cannot put in more ROMs (e.g. AMSDOS or MAXAM or something). So an option to load upper ROMs would be great.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SerErris on 16:05, 07 November 23
Ah I see, you have already forseen code for AMSDOS and stuff in the CPCEmu.cpp.

But you only distinguish between to ROMS BASIC and AMSDOS.

                     // enable high rom
                     SetROMBankHi(CpcEmuState.ga.rom_select == 7 ? ROM_AMSDOS : ROM_BASIC);

So this would need some more logic around it but not a lot.

If you would just name the ROMs different (e.g. LOW_00, HIGH_00, HIGH_xx), then you can just switch the ROM based on the rom number. And you can also do the same thing that the real CPC does. If there i no ROM in place and you select it, you will just page in the BASIC ROM.

The real amstrad does exactly this. If a rom does not exist, you will have Basic ROM enabled.  In the beginning you could just define HIGH_00 to HIGH_15 and for each rom where user has not defined anything you will put in BASIC ROM. I think the total amount of memory required for that is not a challenge nowadays :-)

Why not just let the user assign ROMs in the json file with numbers (and prepopulate them with 0 Basic 7 AMSDOS and let the user define other roms via a file?

Also putting the ROM into a structure looks strange to me, why not just load them from files?

I will start playing around with the ROM implementation and see if I can add roms that way. Even if I do not like to put in the ROM in the struct, but better than nothing.

But is pretty much painful for others to collect some rom and put it into the Analyzer.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 12:23, 16 November 23
@SerErris Hi! Thanks for the feedback.

You are right, the ROMs are loaded by putting them in structs. CPC analyser is built using the CHIPS  (https://github.com/floooh/chips)emulator framework. This is because the CHIPS emulator code is designed around the philosophy of "emulator in a header file", so loading the files from disk goes against that.

Having the ability in CPC Analyser to load external ROMs is not something I had thought about. I will have a think to see if it is something that can be easily added but it won't be on the top of the list for a while as there is so much else to do. Feel free to add a feature request on the github  (https://github.com/TheGoodDoktor/8BitAnalysers)page. :)
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 12:26, 16 November 23
I made a quick update video on the latest progress of CPC Analyser. I demonstrate the new graphics features, such as graphics finding, character maps and more!

https://www.youtube.com/watch?v=UBOHE2tCNMw
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SerErris on 13:09, 16 November 23
So it looks like you can do a 6128, which already has Upper 00 and Upper 07. So the technology is there, If I would provide a header file for a rom (which i simple to do), should it not be possible to just "include" it and then run it as let say rom 05?.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 13:28, 16 November 23
Quote from: SerErris on 13:09, 16 November 23So it looks like you can do a 6128, which already has Upper 00 and Upper 07. So the technology is there, If I would provide a header file for a rom (which i simple to do), should it not be possible to just "include" it and then run it as let say rom 05?.
For now, you could modify Source\CPC\cpc-roms.h to provide dumps of your own roms. I can talk to the main developer and see if we can come up with a nicer way to do it. We could probably allow you to specify a rom file in the globalconfig.json file. We could then load that file in and use it instead of the binary data in cpc-roms.h.

If you look at where the roms are initialised in FCPCEmu::Init() you should be able to figure it out hopefully. Search for "// roms" and you'll see where the rom memory pointers are passed to the CHIPS emulator.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: SerErris on 13:53, 16 November 23
I will give this a try.
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 23:37, 17 November 23
I created a Discord server for the 8 Bit Analyser tools (which CPC Analyser is a part of). Pop in and say hi! Feel free to come and ask questions. The main developer is in there too.

https://discord.gg/VQ3m6W4ZRu
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: Typhon on 00:49, 18 November 23
Oh, I must download and try this on Linux (Ubuntu 22). I shall report back any compilation warnings or errors on gitgub.

Props for using Dear ImGUI btw, its a lovely GUI Framework. I personally like it because its much more ModernC++y than many of the alternatives, which are still stuck in C-land*

(*nothing wrong with C-land, its just I prefer C++20).
Title: Re: Any interest in a CPC reverse engineering tool?
Post by: crabfists on 18:09, 01 January 24
I did another build of CPC Analyser. Features added since last time (from memory):

- Graphics view partially working (mode 1 only)
- Savestate support
- Character map support
- Can format memory as mode 0 & 1 bitmap
- Palette support
- External ROM support
- RAM behind ROM support

Quite a lot of new stuff to play with. :)

External roms need to be in a folder called Roms in binary format. Roms need to be <=16k.
There are 15 rom slots. The rom file can be specified in the globalconfig.json file. 

Download as usual from here:
https://colourclash.co.uk/cpc-analyser/

Let me know any feedback. Feel free to come and chat with us on Discord. There are a few of us in there now. Warning: there will be ZX Spectrum users on the same server.  :laugh:

https://discord.gg/VQ3m6W4ZRu
Powered by SMFPacks Menu Editor Mod