This is a public release of Arnold "WIP". It replaces the earlier versions of Arnold.
This release is considered an alpha release. There are some bugs. I felt it was now time to release it for others to try.
Thank you to everyone who helped over Christmas and New Year testing an earlier version.
Since then I concentrated on
1) adding my tests to the source archive
2) improving the accuracy of the Plus emulation.
I am actively updating Arnold and I plan to release new versions regularly (next one will have fixed CRTC emulation).
Key features of this release:
- Builds on Linux, Mac and Windows
- works on windows xp->windows 10
- consistent UI (all versions have the same features and UI)
- comes with a test suite to show how accurate it is
- has a few devices emulated (Bryce's MegaRom, Bryce's LowerRom, Amram 2, Multiplay)
- it is highly configurable.
- it has a a powerful debugger (View->Debugger..)
Known issues:
- the windows installer requires you to be admin or to give it permission to install
- on windows you may need to turn off virus checking when you install (but enable it again after). If you don't do this then on some systems it will seem to hang for a while.
- sound breaks up and distorts (similar to earlier Arnold versions ;) ).
- monitor emulation is simple (effects changing hsync and vsync mid screen will not be emulated correctly)
- snapshot loading/saving is a bit broken.
Arnold is a little different to other emulators in it's configuration.
For example:
- drive A is set to 40 track single sided, with ready signal, just like a CPC6128 (can be configured if you need to)
- drive B is set to 80 track double sided, with ready signal (can be configured)
- to use expansion ROMs you will need to enable a device that supports them (e.g. Bryce's MegaROM) and insert them into one of it's rom slots (just as you would on a real machine) (Settings->Devices->Expansion Devices...)
(Choose Megarom and right click and select "Enable". Now right click and choose "Expansion Roms...". Choose a slot and right click and "Load" or pick any of the builtin roms).
You can change the drive settings (Disk Drive A->Drive Settings..) or you can use the ABBA drive switch to swap the drives.
I try to emulate each device accurately. Devices have buttons, switches, system roms (roms which are on the pcb) and expansion roms (rom slots). Some devices require a system rom to be loaded to work (Brunword mk2 and Brunword mk4).
I have used devices so that it's possible to configure Arnold to your own CPC specification and so that it is possible to upgrade/downgrade as needed for ease of testing your game/program.
I have implemented more devices than are shown but these have been disabled for this release. I will enable more in the next release after I have done more testing.
For linux, download the source and build it. You will need cmake, gcc,g++,libsdl1.2 and wxwidgets 3.0.
For windows:
Unofficial Amstrad WWW Resource (http://www.cpctech.org.uk/setup.zip)
The source (contains tests in test directory):
Unofficial Amstrad WWW Resource (http://www.cpctech.org.uk/arnoldsrc.zip)
Hello,
nice to see that the new version is released.
I tried the windows version.
I have a keyboard routine taken from cpctech samples.
But when I tried to execute it under Arnold I see the screen flickering moving quickly up 8 pixels up and go back to orginal position.
Here's a simple sample to see if you will experienced the same behaviour.
Jesus! About time, I was beginning to cry with the older version. Thanks! ;)
Quote from: 40Crisis on 13:22, 23 January 16
I have a keyboard routine taken from cpctech samples.
But when I tried to execute it under Arnold I see the screen flickering moving quickly up 8 pixels up and go back to orginal position.
Here's a simple sample to see if you will experienced the same behaviour.
Hi 40Crisis,
Thank you for the bug report. I will fix it. :)
Quote from: ukmarkh on 14:22, 23 January 16
Jesus! About time, I was beginning to cry with the older version. Thanks! ;)
I hope with this new version you will cry less.
Next release is planned in two weeks time with more fixes :)
Will this update be only for windoze systems? Or you gonna contact Bannister for the MacOSX port as well?
For your information, Ventzislav Tzvetkov is responsible for the AmigaOS 4 port.
Quote from: J.T.Kirk on 23:04, 23 January 16
Will this update be only for windoze systems? Or you gonna contact Bannister for the MacOSX port as well?
For your information, Ventzislav Tzvetkov is responsible for the AmigaOS 4 port.
The update is for windows, linux and mac.
I distribute the update as a setup exe for windows. Linux users should download the source and build it. I use cmake for the build system.
I have a DMG for Mac. Mac users can also download the source and build from that. The Mac port is not yet working as well as the others - keyboard is not working as well, speed is not synced at 100%, sounds is untested.
I am happy if Ventzislav Tzvetkov would take the new sources and port them to AmigaOS.
As usual I can never compile anything.
I gathered that I have to run makeit.sh
But I just get an access denied in line 4: ./makexrc.sh
Trying with sudo ./makeit.sh and sudo bash makeit.sh but still the same.
C/C++ stuff hates me.
Try:
./make_arnz80_release.sh
when it's done go back up a few folders to find the exe directory.
Quote from: arnoldemu on 07:51, 26 January 16
Try:
./make_arnz80_release.sh
Same thing:
./clean.sh: line 18: ./clean.sh: Access denied
I've tried chmod +x on all sh files and the main src folder too.
I'm sure nothing is wrong with your code or setup. But something is
always preventing me from compiling
anything C/C++.
(Which is why it's taken me this long before even attempting compiling Arnold).
You need to run the following in the source directory:
find . -name '*.sh' -exec chmod +x {} \;
This could be fixed by changing all script executions from, e.g. "./clean.sh" to "bash ./clean.sh", or by using a container that preserves file permissions (like a tarball) instead of using zip.
I also needed:
find . -type f -print0 | xargs -0 sed -i 's/emudevice.h/EmuDevice.h/g'
So I suspect this was built on a filesystem that doesn't support permissions and is case insensitive.
Then there is an error in cpiu/asic.c. Change line 1426 from "for (int i=0; i<3; i++)" to "for (i=0; i<3; i++)".
Then it will build ok.
Quote from: Munchausen on 09:26, 26 January 16
You need to run the following in the source directory:
find . -name '*.sh' -exec chmod +x {} \;
Wouldn't chmod +x *.sh basically do the same?
Quote from: mr_lou on 09:53, 26 January 16
Wouldn't chmod +x *.sh basically do the same?
No. You need to recursively run the command. chmod -R +x *.sh wouldn't work either.
Here is the corrected source: Mega File Upload - arnoldwip_src.tar.bz2 (http://www.megafileupload.com/aanm/arnoldwip_src.tar.bz2)
And here is a build (executables) for linux i386 (not x64) on ubuntu 14.04: Mega File Upload - arnold_i386_ubuntu14.04.tar.bz2 (http://www.megafileupload.com/aank/arnold_i386_ubuntu14.04.tar.bz2)
Linux is definitively so retro! 8)
25 years gone and always the same problems forcing to use command lines to waste your time, like at the first day! ;D
Quote from: Munchausen on 09:59, 26 January 16
No. You need to recursively run the command. chmod -R +x *.sh wouldn't work either.
I zipped it all on windows and lost the executable permissions :(
Sorry.
@Munchausen (http://www.cpcwiki.eu/forum/index.php?action=profile;u=792): Thank you for the fix :)
I have been loaned a macbook.
So I will be able to improve the mac version now :)
Quote from: TotO on 10:24, 26 January 16
Linux is definitively so retro! 8)
25 years gone and always the same problems forcing to use command lines to waste your time, like at the first day! ;D
Personally I find the command line saves me time. The only thing I really need a gui for is web browsing (and even then, I sometimes use elinks if I just need to check something quickly).
Also, the actions I just did there:
(1) change permissions on all files with a .sh extension below current directory
(2) replace all occurrences of "emudevice.h" with "EmuDevice.h" in all files below current directory
(3) change a line of a source file
Are:
(1) in no way related to the fact that we are using the command line.
(2) would in many cases take much longer with a GUI than by running a single command!
(3) could be done using a gui on linux as simply as on other OSs (you don't have to use the CLI!)
:D
Quote from: arnoldemu on 10:33, 26 January 16
I zipped it all on windows and lost the executable permissions :(
Sorry.
@Munchausen (http://www.cpcwiki.eu/forum/index.php?action=profile;u=792): Thank you for the fix :)
No worries! I figured it was something like that. Thanks for arnold ;)
It looks _really_ nice. I like the debugger. I've been playing a bit, but I have some other stuff to do now so will have to have a better look later...
Well, I've been a Windows user all my life, and I'm fed up of the useless UI and the inability to do anything serious with it.
Quite happy now with Mac OS X and Linux, both with powerful command lines :-*
Really excited about a decent osx emu. I cannot believe that no one else here wanted to donate towards a Mac mini to help in the development of Arnold :(
I'd love to, where should I send the money?
How much do you want to donate? I am hoping donate between 50 and 100 EUR to the fund, but to get a late c2duo or early i5 will cost upwards of 250 EUR here in Ireland. I need a commitment now so I can grab one and know I am not gonna be out of pocket. They come up on the Irish auction sites fairly frequently. At much better prices than eBay. I have been looking at anything elcapitain happy.
If you're handing out free computers, I need a new windows laptop.
Quote from: CraigsBar on 16:37, 26 January 16
How much do you want to donate? I am hoping donate between 50 and 100 EUR to the fund, but to get a late c2duo or early i5 will cost upwards of 250 EUR here in Ireland. I need a commitment now so I can grab one and know I am not gonna be out of pocket. They come up on the Irish auction sites fairly frequently. At much better prices than eBay. I have been looking at anything elcapitain happy.
50€. We need a decent emulator on mac.
Quote from: arnoldemu on 10:33, 26 January 16
I zipped it all on windows and lost the executable permissions :(
Sorry.
@Munchausen (http://www.cpcwiki.eu/forum/index.php?action=profile;u=792): Thank you for the fix :)
Is the emulation window meant to be separate to the main window? I'm guessing not? But here it is. Which version of wxwidgets should I be using? I assumed 3.0
Also, it might be just me but full screen is not working, I think as a consequence of the main window being separate.
The symbiface mouse emulation is really nice, something I've missed in other emulators. Enabling the yarek 4MB ram expansion, symbiface, lowerrom and megarom makes a really nice system. Is it possible to hide the native OS mouse cursor when using the mouse though, as this does not track the emulated mouse exactly and gets quite distracting.
@arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) : How can I add expansion ROMs? I enabled the SF2, but it tells me that it has no ROMs. What to do?
Quote from: TFM on 18:15, 26 January 16
@arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) : How can I add expansion ROMs? I enabled the SF2, but it tells me that it has no ROMs. What to do?
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179):
SF2 is not emulated fully in this version. I have emulated the mouse and the IDE but not the ROMs and RAM yet.
Please use the MegaROM device.
Quote from: robcfg on 13:23, 26 January 16
Quite happy now with Mac OS X and Linux, both with powerful command lines :-*
Erm... Not wanting to start a flamewar here, but the production lines that build MacBooks run Windows... And... Have you used PowerShell? It enables using a LOT of things from the command line. Not only tools, but also .NET functionality...(http://core0.staticworld.net/images/article/2014/06/tim-cook-apple-line-100310857-large.jpg)
Quote from: Munchausen on 17:21, 26 January 16
Is the emulation window meant to be separate to the main window? I'm guessing not? But here it is. Which version of wxwidgets should I be using? I assumed 3.0
Yes. You can use the sdl2 "embed" build to put it into the window, but under linux it's a little flaky.
Quote from: Munchausen on 17:51, 26 January 16
Also, it might be just me but full screen is not working, I think as a consequence of the main window being separate.
It is broken at the moment. It is on my list to fix, but fixed CRTC emulation comes first.
Quote from: Munchausen on 17:51, 26 January 16
The symbiface mouse emulation is really nice, something I've missed in other emulators. Enabling the yarek 4MB ram expansion, symbiface, lowerrom and megarom makes a really nice system. Is it possible to hide the native OS mouse cursor when using the mouse though, as this does not track the emulated mouse exactly and gets quite distracting.
I can add this easily yes.
Quote from: arnoldemu on 18:52, 26 January 16
@TFM (http://www.cpcwiki.eu/forum/index.php?action=profile;u=179):
SF2 is not emulated fully in this version. I have emulated the mouse and the IDE but not the ROMs and RAM yet.
Please use the MegaROM device.
Ok, managed to load some ROMs (it's rather time consuming compared to other emulators, and the 6128 mode doesn't need warnings for the 464 mode "use only roms 0-7").
but starting FutureOS makes the screen jumping... that's not the case on a real CPC.
EDIT: Installing ROMs at 10-13 works (regular 6128 mode). When restarting Arnold these ROMs (higher than 7) don't get initialized, but the CPC tells 128 KB v3 (so it's in 6128 mode).
Quote from: TFM on 19:18, 26 January 16
Ok, managed to load some ROMs (it's rather time consuming compared to other emulators, and the 6128 mode doesn't need warnings for the 464 mode "use only roms 0-7").
True, but it is hard to know if other emulators emulate a real rom board or a made up one.
I choose to do a real one.
I will remove the warning for roms 0-7 on 6128. :) I will detect the firmware used and show or hide this message.
Quote from: TFM on 19:18, 26 January 16
but starting FutureOS makes the screen jumping... that's not the case on a real CPC.
I will fix this. Please choose a different crtc.
There is a bug in my emulation with type 0. On this CRTC it is possible to set PPI port B to output and force a vsync. I think I have a bug in the 8255 emulation which I will fix which means this is forced incorrectly.
Quote from: TFM on 19:18, 26 January 16
EDIT: Installing ROMs at 10-13 works (regular 6128 mode). When restarting Arnold these ROMs (higher than 7) don't get initialized, but the CPC tells 128 KB v3 (so it's in 6128 mode).
On real Megarom you need to activate a jumper to have roms 0-15. Please go to switches and check J1 is set to Yes. Now restart CPC. I guess I should display a warning in the UI to describe this.
Quote from: EgoTrip on 16:42, 26 January 16
If you're handing out free computers, I need a new windows laptop.
Na, no benefit to me in that.... Sorry.
Quote from: robcfg on 17:10, 26 January 16
50€. We need a decent emulator on mac.
Thanks. I am keeping a note of the pledges and will let you know what I find. Even if I put in 100, we still need another 150 or so..... So come on Apple users if you want a decent emu, it's time to donate.
Quote from: AugustoRuiz on 18:52, 26 January 16
Erm... Not wanting to start a flamewar here, but the production lines that build MacBooks run Windows... And... Have you used PowerShell? It enables using a LOT of things from the command line. Not only tools, but also .NET functionality...
(http://core0.staticworld.net/images/article/2014/06/tim-cook-apple-line-100310857-large.jpg)
Allow me to disagree, what you see on the screens is not a Windows screen, it looks more like an industrial application.
My wife has worked for several big companies (Endesa, Accenture), and they don't want Windows anything near...
Regarding PowerShell, I agree that is better than the standard command line but, it's absolutely ridiculous that you get to have 3 different command line interpreters: CMD, PowerShell and PowerShell AES, all of them with different functionality. I mean, why not have a powerful one and that's it?
Microsoft keeps trying too hard to do too much for everybody, and that simply doesn't work.
I didn't want to start a Windows vs Mac war, I simply stated that right now I find Mac OS X and Linux to be more comfortable than Windows.
Written from my MacBook Pro ;)
Quote from: arnoldemu on 21:11, 26 January 16
True, but it is hard to know if other emulators emulate a real rom board or a made up one.
I choose to do a real one.
I will remove the warning for roms 0-7 on 6128. :) I will detect the firmware used and show or hide this message.
I will fix this. Please choose a different crtc.
There is a bug in my emulation with type 0. On this CRTC it is possible to set PPI port B to output and force a vsync. I think I have a bug in the 8255 emulation which I will fix which means this is forced incorrectly.
On real Megarom you need to activate a jumper to have roms 0-15. Please go to switches and check J1 is set to Yes. Now restart CPC. I guess I should display a warning in the UI to describe this.
Hi!
Problems happen with all the CRTCs (checked em all). I have to activate the swtich of the MegaROM every time, the option does not get saved. So a default set to 16 ROMs would be great. :)
Also is there a way to have 32 ROMs?
Please keep the good work up. I know it suxx to get all this error reports. But you do a great job! :)
Anyone tried the MacOSX version yet (even the previous one)? In which key (or combination) is the "COPY" key mapped?
What's the deal with mac os? Shouldn't the normal version "just work" by building on mac os? It has wxwidgets and sdl... so it shouldn't be a massive effort. Then just need to package it up. If I had more time I'd build it for you...
Quote from: robcfg on 22:44, 26 January 16
Allow me to disagree, what you see on the screens is not a Windows screen, it looks more like an industrial application.
(https://cms-images.idgesg.net/images/article/2014/06/tim-cook-line-closeup-100310861-medium.png)
Looks like windows to me...
Yeah, sure...
If you're willing to see Windows XP there, the blue color is more saturated on Windows and it has a bright green button on the left which I don't see in that image.
Of course, you're free to believe whatever you want. That won't change my mind . Right now my programs work without changes on OSX and Linux, and I have to do extra stuff just for windows. On top of that, Windows is too bureaucratic, for every little thing you have to click 74 buttons, sign 33 agreements and confirm that you want to do it, every single time.
Face it, Microsoft has no vision right now, and you can feel it on their products.
Take another example. Office. Lengthy installations, gigabytes of shit stuffed into the system, hideous licensing schemes... For something that can be done with Libre Office, and it's only a 400Mb installer.
Visual fuc**ng Studio. It was the industry's powerhorse, and now you can spend an hour installing, you have to sign in into it so it can spam you while you work...
Really, Microsoft has lost it.
So, while there are things for which I still need Windows, and I work with it, I develop at home with OSX and Sublime Text, and I've never been that happy.
A huge majority of industrial sequencing and inline testing equipment DOES run on windows, even some of the oscilloscopes are running windows or windows CE in the background. Windows 3.1 and Windows 2000 were usually used, haven't seen one running XP though.
Bryce.
Quote from: robcfg on 10:01, 27 January 16
Of course, you're free to believe whatever you want. That won't change my mind . Right now my programs work without changes on OSX and Linux, and I have to do extra stuff just for windows. On top of that, Windows is too bureaucratic, for every little thing you have to click 74 buttons, sign 33 agreements and confirm that you want to do it, every single time.
Face it, Microsoft has no vision right now, and you can feel it on their products.
Hey, you don't have to sell me a dislike of windows, where did you get the idea that I love it? I haven't used it at home for over 10 years, and at work for over 5. I don't even have any machines running it! I use linux and, when I can, haiku.
But it wouldn't surprise me in the least if that is windows on that display, and I don't see what is so offensive about that? There is plenty of hardware that only has windows software, I haven't seen many CnC machines with mac or linux control software, why should it be any different for other industrial machines? I worked as a control system engineer for years, and while our robots and their controllers ran vxworks or some other real time OS, the GUI was always windows, and it seemed the same for our competitors too.
Sure, that might not be windows, but by thinking it is I'm not believing in some conforming opinion, like there is some MS conspiracy going on and I need to be converted to the truth of their evil. Is it really important? Who cares what OS other people use? Each to their own. Whether or not it is windows has nothing to do with whether or not windows is a good OS, or worse than any other OS, or whether the macbooks made there are any good. How can I even be sure that really is a macbook construction line? Zoh my glob, what is truly real?! :D
It wasn't my intention to initiate an anti-MS campaign here, but a blurred image cannot provide the information we need, that is, whether the machine is runnign Windows or not.
My humble opinion is that it isn't, because I cannot see the start button, and if it's indeed XP, I don't know how Apple is able to build driver for such new machines when support is long gone,but doesn't matter anyway.
Back to topic!
Quote from: robcfg on 11:32, 27 January 16
It wasn't my intention to initiate an anti-MS campaign here, but a blurred image cannot provide the information we need, that is, whether the machine is runnign Windows or not.
It could be just a virtual machine on OS X.
Quote from: Munchausen on 09:34, 27 January 16
What's the deal with mac os? Shouldn't the normal version "just work" by building on mac os? It has wxwidgets and sdl... so it shouldn't be a massive effort. Then just need to package it up. If I had more time I'd build it for you...
I've been using a virtual machine and I've got a version that builds and packaged up. :)
I have shared a DMG with Shaun, robcfg and Craig already.
It runs. :)
The things that need addressing which I'll be doing from tomorrow:
- building for newer mac osx because it currently fails. On an older one it's fine.
- regulating the speed (100% speed etc). I need to do that on a real machine to make sure it's accurate and I'm using the correct api calls for it.
- I will also have a specific mac hardware which I can make it run on so I can say which machines it will run fine on.
- sound: My virtual machine is not that great. I need to check it on a real machine to make sure it's audible and working as it should
- joystick: I need to check it works - it should, I will find out. I'll be connecting my usb pads and hoping it does.
- keys: Some keys are used by macos for minimizing and maximizing windows and switching apps. So I'll be testing all that and adjusting arnold to work better with it. Also, finding a suitable keyboard configuration for positional keyboard mode.
Basically it's tweaking it.
If you want to build it for yourself please follow the build instructions.
Quote from: TFM on 00:13, 27 January 16
Problems happen with all the CRTCs (checked em all).
Ok. It will be fixed as part of my CRTC fixes.
Quote from: TFM on 00:13, 27 January 16
I have to activate the swtich of the MegaROM every time, the option does not get saved. So a default set to 16 ROMs would be great. :)
Ok I'll fix it so it saves those settings and I'll change the default.
Quote from: TFM on 00:13, 27 January 16
Also is there a way to have 32 ROMs?
I'll emulate the symbiface 2 roms (including it's repeating and incompatibilities with cart software) then you can have 32 ROMs :)
I have looked through the wiki and I've not found other hardware that has 32-roms except symbiface 2 and x-mem.
Quote from: TFM on 00:13, 27 January 16
Please keep the good work up. I know it suxx to get all this error reports. But you do a great job! :)
Thank you. I am happy to receive the error reports so I can make it better and I am sure I have missed some bugs when I was testing it.
Quote from: robcfg on 10:01, 27 January 16
I develop at home with OSX and Sublime Text, and I've never been that happy.
I tried to use sublime text, it is pretty and has some great features but I can't get used to not having decent vim key bindings. I tried a few plugins but none of them worked that well. I think neovim might eventually be what I move to.
Quote from: arnoldemu on 12:41, 27 January 16
I've been using a virtual machine and I've got a version that builds and packaged up. :)
I have shared a DMG with Shaun, robcfg and Craig already.
It runs. :)
The things that need addressing which I'll be doing from tomorrow:
- building for newer mac osx because it currently fails. On an older one it's fine.
- regulating the speed (100% speed etc). I need to do that on a real machine to make sure it's accurate and I'm using the correct api calls for it.
- I will also have a specific mac hardware which I can make it run on so I can say which machines it will run fine on.
- sound: My virtual machine is not that great. I need to check it on a real machine to make sure it's audible and working as it should
- joystick: I need to check it works - it should, I will find out. I'll be connecting my usb pads and hoping it does.
- keys: Some keys are used by macos for minimizing and maximizing windows and switching apps. So I'll be testing all that and adjusting arnold to work better with it. Also, finding a suitable keyboard configuration for positional keyboard mode.
Basically it's tweaking it.
If you want to build it for yourself please follow the build instructions.
Sorry been getting very off topic.
These are all valid reasons for needing a machine to test on, that I didn't think of! Especially the keyboard :)
QuoteWhat's the deal with mac os? Shouldn't the normal version "just work" by building on mac os? It has wxwidgets and sdl... so it shouldn't be a massive effort. Then just need to package it up. If I had more time I'd build it for you...
Specially wxWidgets gives many problems on OSX. I got tired of it and I now use FLTK, which work beautifully on Windows, Mac and Linux.
Quote from: robcfg on 14:00, 27 January 16
Specially wxWidgets gives many problems on OSX. I got tired of it and I now use FLTK, which work beautifully on Windows, Mac and Linux.
Maybe, but the big advantage of wxWidgets is you get a native interface on every OS, so it appears to be a native application. Whereas fltk, gtk, qt and others always look like fltk, gtk, qt or whatever.
Sure, but at least they work...
Quote from: robcfg on 14:40, 27 January 16
Sure, but at least they work...
i have not yet found the perfect windowing system or api.
wxwidgets is good.
sdl is good.
they don't always talk with each other, i am sure the same is true of any other systems.
Quote from: arnoldemu on 15:25, 27 January 16
i have not yet found the perfect windowing system or api.
wxwidgets is good.
sdl is good.
they don't always talk with each other, i am sure the same is true of any other systems.
Also in this case SDL 1.2 is just old and won't play nice in any modern desktop; at least in Linux. Why? Basically because the audio system has moved on and SDL 1.2 won't support he new stuff like pulseaudio :(
My last experience with Qt was very positive, but C++ with Qt "enhancements" is not my cup of tea really. Over the years I've use Motif, XForms, WxWindows; then changed name to WxWidgets, GTK 1 & 2, Qt 3 & 4, and all of them suck more or less -- if you like WxWidgets, stay with it :)
Quote from: arnoldemu on 12:44, 27 January 16
I have looked through the wiki and I've not found other hardware that has 32-roms except symbiface 2 and x-mem.
Thank you. I am happy to receive the error reports so I can make it better and I am sure I have missed some bugs when I was testing it.
Oh, my Inicron ROM-RAM-Box has 32 ROMs too. They sold it as 128KB, 256KB and 512 KB versions. Also I have on 6128 with 2.5 MB internal FlashROM (Yarek made taht), but that's probably not widely spread. Else aside of X-MEM and SF2 there is the MegaFlash from Bryce right?
Thanks for updating and caring. I'm really looking forward to get the next version. Great work! :) :) :)
Quote from: robcfg on 10:01, 27 January 16
Yeah, sure...
If you're willing to see Windows XP there, the blue color is more saturated on Windows and it has a bright green button on the left which I don't see in that image.
It's Windows 7, which is obvious from the Start button, height of the taskbar and style of task buttons.
I don't know why this would surprise anyone, Apple are a massive Windows user. They're one of the biggest Azure customers (it powers iCloud and much of iTunes). Apple basically got out of the server game years ago and, AFAIK, has never had a foot in the industrial control market.
Quote from: TFM on 17:57, 27 January 16
Oh, my Inicron ROM-RAM-Box has 32 ROMs too. They sold it as 128KB, 256KB and 512 KB versions. Also I have on 6128 with 2.5 MB internal FlashROM (Yarek made taht), but that's probably not widely spread. Else aside of X-MEM and SF2 there is the MegaFlash from Bryce right?
Thanks for updating and caring. I'm really looking forward to get the next version. Great work! :) :) :)
And the flash gordon
Quote from: Munchausen on 21:41, 27 January 16
And the flash gordon
Oh yes, and also in the Spanish MF, as well as Kangaroos MF EX. :picard: Just forget it. ;D :)
Quote from: robcfg on 22:44, 26 January 16
Allow me to disagree, what you see on the screens is not a Windows screen, it looks more like an industrial application.
My wife has worked for several big companies (Endesa, Accenture), and they don't want Windows anything near...
Regarding PowerShell, I agree that is better than the standard command line but, it's absolutely ridiculous that you get to have 3 different command line interpreters: CMD, PowerShell and PowerShell AES, all of them with different functionality. I mean, why not have a powerful one and that's it?
Microsoft keeps trying too hard to do too much for everybody, and that simply doesn't work.
I didn't want to start a Windows vs Mac war, I simply stated that right now I find Mac OS X and Linux to be more comfortable than Windows.
Written from my MacBook Pro ;)
Makes me wonder whatever happened to the Xerox GUI system Steve Jobs came across?
Just tried it- thanks so much for the update. Since I'm no developer and can't get into much technical stuff, when can we start giving feedback about the UI and stuff?
Quote from: Gryzor on 15:29, 28 January 16
Just tried it- thanks so much for the update. Since I'm no developer and can't get into much technical stuff, when can we start giving feedback about the UI and stuff?
now.
Hahaha! Ok, I'll start taking notes.
Good news. I have arnold building and running on the mac laptop (macbook, dual core duo, osx lion).
It's a bit slow - so a bit of optimsation work is required. Sound is working like the others.
Keyboard not working - I will fix this tonight.
I need to check usb joysticks/joypads are working and put in the frame locking for those with faster and better machines :)
Quote from: Munchausen on 10:08, 26 January 16
Here is the corrected source: Mega File Upload - arnoldwip_src.tar.bz2 (http://www.megafileupload.com/aanm/arnoldwip_src.tar.bz2)
And here is a build (executables) for linux i386 (not x64) on ubuntu 14.04: Mega File Upload - arnold_i386_ubuntu14.04.tar.bz2 (http://www.megafileupload.com/aank/arnold_i386_ubuntu14.04.tar.bz2)
Files have been removed due to inactivity. :'(
Quote from: CPCBEGIN on 10:55, 07 February 16
Files have been removed due to inactivity. :'(
Sorry
[attachurl=2]
Quote from: CPCBEGIN on 10:55, 07 February 16
Files have been removed due to inactivity. :'(
And
You need to rename these files by deleting the .zip file extension (needed to allow me to upload them here).
Quote from: arnoldemu on 14:15, 29 January 16
Good news. I have arnold building and running on the mac laptop (macbook, dual core duo, osx lion).
It's a bit slow - so a bit of optimsation work is required. Sound is working like the others.
Keyboard not working - I will fix this tonight.
I need to check usb joysticks/joypads are working and put in the frame locking for those with faster and better machines :)
Send me on a compiled version via dropbox and I can test USB stuff when I get back to Dublin tomorrow, I've an xbox 360 controller and an arcade stick, both work fine with emulators... usually. :)
Quote from: Shaun M. Neary on 12:25, 07 February 16
Send me on a compiled version via dropbox and I can test USB stuff when I get back to Dublin tomorrow, I've an xbox 360 controller and an arcade stick, both work fine with emulators... usually. :)
I'll make one later for people to see :)
I've tested my USB pads and they are fine but must be connected before arnold is started.
I don't have a xbox 360 controller and under windows it is treated differently by sdl, I would be interested to know if that works.
I know sound works and I've added the code to regulate the speed. Keyboard is mostly working (but pressing num lock on the macbook laptop causes all the other keys to be blocked while it is active, so I probably need a different toggle key on mac).
gx4000 and cart games are playable because you can play them with keypad.
So it's looking good so far.
Quote from: arnoldemu on 12:32, 07 February 16
I'll make one later for people to see :)
I've tested my USB pads and they are fine but must be connected before arnold is started.
I don't have a xbox 360 controller and under windows it is treated differently by sdl, I would be interested to know if that works.
I know sound works and I've added the code to regulate the speed. Keyboard is mostly working (but pressing num lock on the macbook laptop causes all the other keys to be blocked while it is active, so I probably need a different toggle key on mac).
gx4000 and cart games are playable because you can play them with keypad.
So it's looking good so far.
Cool, well just remember I've a few different OSX Systems here (10.8, 10.10 and 10.11), so anything you need testing, just holler at me.
Quote from: Shaun M. Neary on 12:34, 07 February 16
Cool, well just remember I've a few different OSX Systems here (10.8, 10.10 and 10.11), so anything you need testing, just holler at me.
current state of mac osx version:
http://cpctech.cpc-live.com/arnold_mac.zip (http://cpctech.cpc-live.com/arnold_mac.zip)
Quote from: Munchausen on 12:13, 07 February 16
Sorry
[attachurl=2]
Thanks a lot, I can run successfully your compiled version on my laptop with Lubuntu 14.04 LTS 32 bits, previously I need install the necesary library:
sudo apt-get install libwxgtk3.0-dev
I also run successfully on my desktop with Ubuntu 14.04 64 bits, compiling the supplied code.
But I try to compile the code of your version on a raspberry pi 2 with the commands:
sudo apt-get install libwxgtk2.8-dev
./make_arnz80_sdl2_debug.sh
and I get this error:
...
[ 75%] Building CXX object arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:635:1: warning: deprecated conversion from string constant to 'wxChar* {aka wchar_t*}' [-Wwrite-strings]
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'virtual bool arnguiApp::OnInit()':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:2076:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'bool arnguiApp::SaveLocalFile(const wxString&, unsigned char*, long unsigned int)':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:3964:15: error: 'class wxTempFile' has no member named 'Flush'
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'bool arnguiApp::SaveLocalFile(const wxString&, const wxString&)':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:4033:15: error: 'class wxTempFile' has no member named 'Flush'
arngui/CMakeFiles/arnold.dir/build.make:100: recipe for target 'arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o' failed
make[2]: *** [arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o] Error 1
CMakeFiles/Makefile2:347: recipe for target 'arngui/CMakeFiles/arnold.dir/all' failed
make[1]: *** [arngui/CMakeFiles/arnold.dir/all] Error 2
Makefile:72: recipe for target 'all' failed
make: *** [all] Error 2
Quote from: CPCBEGIN on 22:09, 08 February 16
and I get this error:
...
[ 75%] Building CXX object arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:635:1: warning: deprecated conversion from string constant to 'wxChar* {aka wchar_t*}' [-Wwrite-strings]
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'virtual bool arnguiApp::OnInit()':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:2076:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'bool arnguiApp::SaveLocalFile(const wxString&, unsigned char*, long unsigned int)':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:3964:15: error: 'class wxTempFile' has no member named 'Flush'
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp: In member function 'bool arnguiApp::SaveLocalFile(const wxString&, const wxString&)':
/home/pi/opt/arnoldwip/src/arngui/arnguiApp.cpp:4033:15: error: 'class wxTempFile' has no member named 'Flush'
arngui/CMakeFiles/arnold.dir/build.make:100: recipe for target 'arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o' failed
make[2]: *** [arngui/CMakeFiles/arnold.dir/arnguiApp.cpp.o] Error 1
CMakeFiles/Makefile2:347: recipe for target 'arngui/CMakeFiles/arnold.dir/all' failed
make[1]: *** [arngui/CMakeFiles/arnold.dir/all] Error 2
Makefile:72: recipe for target 'all' failed
make: *** [all] Error 2
Seems maybe the wrong version of wxwidgets? Or incorrect package installed. I dont remember what dependencies I needed I'm afraid...
I seem to recall there is another build target that looked like it was probably for rpi. Was it make_embedded.sh or something like that?
Quote from: Munchausen on 09:38, 09 February 16
Seems maybe the wrong version of wxwidgets? Or incorrect package installed. I dont remember what dependencies I needed I'm afraid...
I seem to recall there is another build target that looked like it was probably for rpi. Was it make_embedded.sh or something like that?
it currently needs wx3.0.
I haven't had time to fix it up for wx2.8.
Quote from: arnoldemu on 10:10, 09 February 16
it currently needs wx3.0.
I haven't had time to fix it up for wx2.8.
Ok, Iĺl try to install wx 3.0 on raspbian or I'll wait for an OS newer version.
Thanks a lot for this emulator and for making avalaible for GNU/Linux with CPC+ support.
Any idea what date we can all expect this new version, and will it come with native joystick support!
Quote from: ukmarkh on 13:52, 18 February 16
Any idea what date we can all expect this new version, and will it come with native joystick support!
I'm planning a release next week end.
Native joystick support: Arnold already supports using keyboard on pc for joysticks, or using a joypad on pc for joysticks. You can even use a joypad on pc and get it to press keys (for games that don't support joystick on cpc). Arnold also supports multiplay joysticks. Are you thinking of something else?
On my MAC, under preferences, it reckons you need to download a joystick enhancer.
Quote from: ukmarkh on 14:52, 18 February 16
On my MAC, under preferences, it reckons you need to download a joystick enhancer.
Ok, which version of arnold are you using? The wip one I posted a few weeks back or Richard Bannister's one?
With WIP on the macbook I'm using it found my usb joypads fine. It's running Lion.
It sounds like your using the Arnold on Mac by Richard Bannister?
Wip for Mac:
http://cpctech.cpc-live.com/arnold_mac.zip (http://cpctech.cpc-live.com/arnold_mac.zip)
Error:
arnold cannot be opened because of a problem.
Check with the developer to make sure arnold works with this version of OS X. You may need to reinstall the application. Be sure to install any available updates for the application and OS X.
Click Report to see more detailed information and send a report to Apple.
My version:
Model: MacBook Air (13-inch, Mid 2013)
CPU: 1.7 GHz Intel Core i7
Memory: 8 GB 1600 MHz DDR3
Graphics: Intel HD Graphics 5000 1536 MB
OS: El Capitan
Just here to cheer Kevin up!
Will compile Arnold this week for sure!
Do you have screenshots already?
Quote from: arnoldemu on 10:10, 09 February 16
it currently needs wx3.0.
I haven't had time to fix it up for wx2.8.
I change to new raspbian based on jessie and I install wx3.0 without problems and arnold compiles without problem but I try to execute and I get this error:
eyboard mode Positional
SDL2 keyboard not set to positional
Keyboard mode: 0
Keyboard language auto-detect: yes
Keyboard language: 1
Refresh joysticks
Handling command line parameters
Starting main loop
size event
Setting Windowed display
Window Width: 768
Window Height: 544
Render Width: 768
Render Height: 544
Creating window
SDL Desktop: w: 1280 h: 720 refresh: 0
WX Desktop: x: 0 y: 0 w: 1280 h: 684
failed to create window
SDL2 error: Could not get EGL display
On Create
Done init
Segment fault
I use tis command to compile
./make_arnz80_sdl2_release.sh
Try adding -fsigned-char to the compilation line.
Sometimes there are "bugs" that happen on ARM-based platforms due to char type being unsigned by default.
Please use sdl.
./make_arnz80_release.sh
sdl2 does cause this problem on linux.
Question: rpi 1, 2, 3 or?
Some news:
- I am making slower progress than I hoped with crtc accuracy but I am making progress. (crtc type 3 and 4 status register fixes)
- symbiface 2 rom and ram is emulated now
- problems saving device settings fixed (reported by TFM)
- some fixes with asic registers at power on. (found after testing andycadleys dma raster demo)
- bad jumping/flicker is fixed. (reported by lots of people)
tests:
- more crtc tests
- added more to the tests (including symbiface 2 ram and rom)
- started to add some ide tests.
platform specific fixes:
linux:
- fixed wx2.8 compile errors
windows:
- none
macosx:
- drag and drop fully working (drop on app icon, drop on arnold window, drop on icon on the dock)
- double click tested (arnold not open and arnold open)
- open with fixed (no longer shows "do you want to open another instance" because this is not the macosx way).
- arnold now crashes the compiler on the macbook and I don't know why :(
- bundle fixes (reported by Bert); resources in correct directory and lots of plist changes which help with file associations, macosx minimum version now set.
Quote from: arnoldemu on 15:28, 05 March 16
Please use sdl.
./make_arnz80_release.sh
sdl2 does cause this problem on linux.
Question: rpi 1, 2, 3 or?
Eureka, using
./make_arnz80_release.sh runs ok! Thanks a lot!
By the way, it's a raspberry pi 2 with latest raspbian (February 26th, 2016)
A version for macosx is here: http://cpctech.cpc-live.com/arnold.dmg (http://cpctech.cpc-live.com/arnold.dmg)
I am aware of a few bugs that have been reported to me, but feel free to try it out and report bugs via private message.
A huge gold star for having "Keyboard - Translated" option :-)
(something happens though that disables a lot of the menu items and you have to force quit the application, although the emulation is still running fine itself)
(the graphics viewer windows starts up really really tiny, but I'm guessing this is a very beta feature at the moment)
hi Arnold
i hope you'll release a windows version.
do you think to continue the "upgraded" Arnold 'Aeliss' Edition" ?
Quote from: greatxerox on 02:38, 18 March 16
hi Arnold
i hope you'll release a windows version.
do you think to continue the "upgraded" Arnold 'Aeliss' Edition" ?
There is a beta for windows linked form the first post in this thread :)
Quote from: greatxerox on 02:38, 18 March 16
do you think to continue the "upgraded" Arnold 'Aeliss' Edition" ?
Aeliss and I work on Arnold wip version.
He often gives me code patches :)
Often he is pushing me to fix the sound ;)
Quote from: Munchausen on 09:00, 18 March 16
There is a beta for windows linked form the first post in this thread :)
is there any updates for any version?
Kevin, do you update the links while you are working on the new arnold?
Quote from: roudoudou on 07:37, 20 April 16
is there any updates for any version?
Not yet.
Quote from: roudoudou on 07:37, 20 April 16
Kevin, do you update the links while you are working on the new arnold?
I will but I will also announce the new release when it's ready.
I have a private source code repository which is updated almost every day.
Please gentleman... let's have only ONE version. :) :) :)
Arnold is very very promising to emulate perfectly cpc AND cpc+ :)
Some news ?
Quote from: greatxerox on 03:47, 10 September 16
Arnold is very very promising to emulate perfectly cpc AND cpc+ :)
Some news ?
I plan another release in november. (windows, linux and hopefully mac).
I have already made some fixes for multiplay, added x-mass and some fixes in symbiface 2. :)
I am working on improving disc emulation. So there will be more to see in the next release :)
Can you correct the Brightness also ? It's always too dark. ;) Thanks
Quote from: GOB on 19:19, 21 September 16
Can you correct the Brightness also ? It's always too dark. ;) Thanks
And I thought I forget to eat my BlueBerries. 8)
Hello,
http://cpctech.cpc-live.com/arnoldsrc.zip is still the good archive ?
I just tried to compile again on another pi, and it fails on crtc.c.O
wxwidget 3.0 and sdl1.2 installed before.
Still november for next version available ?
Quote from: genesis8 on 10:00, 17 October 16
Hello,
http://cpctech.cpc-live.com/arnoldsrc.zip (http://cpctech.cpc-live.com/arnoldsrc.zip) is still the good archive ?
Yes it is the current archive.
Quote from: genesis8 on 10:00, 17 October 16
I just tried to compile again on another pi, and it fails on crtc.c.O
wxwidget 3.0 and sdl1.2 installed before.
I have fixed a compile problem in my working version.
Quote from: genesis8 on 10:00, 17 October 16
Still november for next version available ?
Yes, but it may be middle to end of november.
I think I found a bug !!
[My version is Build Date: Jun 11 2016 Build Time: 08:03:54]
I load a certain snapshot for 6128 plus... Sorry I cant share this at the moment (WIP)
My code is using the C7 bank and C1 constantly for a gfx buffer...
Many times per frame...
The exact snapshot works fine on WinAPE but not on Arnold.
(must add that my previous version which didn't use C1 worked fine)
Quote from: fgbrain on 21:48, 24 November 16
I think I found a bug !!
[My version is Build Date: Jun 11 2016 Build Time: 08:03:54]
I load a certain snapshot for 6128 plus... Sorry I cant share this at the moment (WIP)
My code is using the C7 bank and C1 constantly for a gfx buffer...
Many times per frame...
The exact snapshot works fine on WinAPE but not on Arnold.
(must add that my previous version which didn't use C1 worked fine)
In the current released of arnold wip the snapshots are limited to 64KB because I didn't add support for memory expansion devices.
I will fix that this weekend :)
Quote from: arnoldemu on 10:16, 25 November 16
In the current released of arnold wip the snapshots are limited to 64KB because I didn't add support for memory expansion devices.
I will fix that this weekend :)
I have been working on this and I found quite a few bugs that I am fixing.
(Dk'tronics expansion devices are now supported and I fixed a problem decompressing some snapshots.. more fixes to come as I work on it).
BTW, release of Arnold has been delayed while I fix this AND while I wait for a scart cable. I had to stop my testing until I get the cable (this week).
Thanks for the heads up!
Just wanna say I'm loving the progress on this. I downloaded the latest binary and it ran quite well on OS X 10.10.5
Sound is a little choppy and there's no way to quit it without forcing quit (both of which I'm sure you're aware of), but this time last year, we could barely open the binary without crashing, so it's really come a long way in that time.
Keep up the good work!
Happy Christmas, everyone! =D
Aleste emulation, yeahhh!! :D
Windows version Build Date: Jun 11 2016
*How can I enter to CPC mode?
Hold SHIFT during boot (or reset)
*Go to Aleste/MSX-DOS mode from AMSDOS?
Type |msx
*How can I enter to Bios Configuration?
Hold CLR during boot --> wich key in PC windows keyboard for CLR? "Insert"
(ESC to go to Boot Screen)
but Bios Screen or Boot Screen doesn't be OK. Maybe some screen options needed...
*Boot Screen (now screen with "television interference") try to load direct a msx-dos floppy disk.
Regards and Thanks!!, Kevin, for your work.
Hello Arnold !
some news about dev of Arnoldemu ?
Finally, a new version! :)
EDIT: fully working as of 13/05/2017 14:49. If you downloaded the version earlier please download. There was a bug where Plus configuration could not be activated.
Windows exe:
http://www.cpctech.org.uk/setup.zip (http://www.cpctech.org.uk/setup.zip)
Source (for linux or mac or windows):
http://www.cpctech.org.uk/arnoldsrc.zip (http://www.cpctech.org.uk/arnoldsrc.zip)
Thanks to Aeliss again for his fixes.
I did a *lot* of testing. A lot of FDC tests, and I had to re-write the tests and had to write loads more - with more to come next time!
The execution of FDC commands is more exact. The timing is not exact (I need to re-write the code for that) but the execution of the instructions and their results is much better. The original fdc tests missed quite a lot.
Changes since last release:
Gate-Array:
- changed power-on colours for gate-array to be 0 (grey) following discoveries from gerald
- updated GA IN causing write to work on all GA types (previously only type 4)
- fixed lum calculation. It was going out of range and causing a bad result in the lumfirm test.
Disc/FDC:
- fixed FDC: Format SC=0 results in 256 sectors.
- fixed read data with N=0: read size depends on bit 0 of DTL
- fixed if drive is disabled report the correct information for sense drive status
- fixed a bug in the fdc recalibrate command. (sometimes it got stuck)
- fixed correct command decoding of recalibrate command
- fixed correct command decoding of seek command
- fixed correct command decoding of sense interrupt status
- fixed correct command decoding of sense drive status
- fixed incorrect reporting of drive when it's not ready and doing a seek or recalibrate. it was always reporting drive 0 by mistake.
- fixed when fdd busy state is cleared.
- fixed result when ready changes during recalibrate or seek
- fixed FDC/FDD step rate timing (it was too fast)
- fixed FDC/FDD step rate at power on (it was not set correctly)
- fixed reporting of ST3 "two side" (matches write protect on EME-157)
- fixed: PCN is reset to 0 at FDC power on
- fixed: DMA mode and step rate of 0 is set at FDC power on
- implemented scan equal, scan low or equal and scan high or equal commands
- fixed: if drive A was only enabled, then discs could not be read. Drive A can now be enabled on it's own.
- fixed: removed step time per drive. gerald has shown the step rate is based on a multiple of an internal timer and that all drives are stepped from that.
- fixed: sending seek multiple times *WHILE* it is seeking is ok. Before the fix there would be a hang.
- fixed: drive polling is not done after every cpu instruction it is now done at the correct rate.
- a bad calculation meant some extended disk images were not recognised as correctly formed. Fixed.
- if autostarting a disc and the "auto start drive" is not enabled then enable it.
Snapshot:
- fixed load and save of snapshots with RAM more than 64KB. Previous code only supported 64KB because of support for devices broke the previous method. The code now looks at the built-in RAM of the active machine AND the ram provided by dk'tronics compatible ram expansions to determine what should be saved and how much can be loaded.
- fixed bugs in v3 ram block decompression.
- if v3 compressed block size is >=65536 then winape stores it uncompressed. Check for this size and copy direct.
- We now save blocks as length 65536 if they can't be compressed.
- in the snapshot save dialog you can see where each block comes from (internal, device or not mapped) and the list can be filtered according to what will be saved into the snapshot according to the selected snapshot version. V2 has a limitation where data must be continuous so you can click the checkbox to see which blocks will actually be saved.
- You will be warned on save if the configuration can't be saved into the snapshot accurately. This happens if you have devices activated, or are running in KC Compact or Aleste mode. NOTE: The snapshot file format is limited and doesn't save all information accurately.
- fixed bugs in CPC+ block reading and writing. Now supports the location Winape uses for it's A0 port value. This means more snapshots from Winape will load.
- When loading a snapshot Arnold will determine the configuration requested by the snapshot and the actual configuration and will report if the snapshot may not be loaded correctly. You can use the button on the dialog to configure the system to attempt to match the requirements. At all times you can click OK to try and load the file.
- When loading a snapshot Arnold will tell you if there are some blocks in the snapshot file which are not handled (applies to v3).
Cartridge:
- there was a bug with the way "mirrored" pages were calculated for cartridges. This caused problems for 512KB cartridges. This has been fixed.
Roms:
- os, basic and amsdos override roms with amsdos headers can now be used.
Devices:
- changed the way readport works for devices. Previously if the device didn't assert the bus, a value was always returned and it was 0x0ff (this was not correct), now the device reports if it did assert the bus or not and the data is taken if it has otherwise data remains unchanged if it didn't. This allows the "bus" value to remain unchanged if the device doesn't change it. The emulation is now more correct. This makes symbiface 2 device and uide devices correct when reading from them.
- added emulation of ROMBO rom-board. Thanks to ngroom on cpcwiki for testing his rombo rom board
- added emulation of Jon Bradbury's uIDE 16 for CPC (made with his permission). Needs testing on a real device.
- fixed Brunword Mk2 emulation (when upper rom is overriden or not and write through for 4000-7fff)
- fixed Brunword Mk2 reset and power on state
- fixed Amram2 expansion rom emulation (it wasn't asserting ROMDIS so roms would not be active as they should be)
- fixed Amram2 write to ram; it is allowed regardless of upper rom enabled state. Previously the code did it only if upper rom was enabled.
- fixed Amram2 reset and power on state (previously nothing was done)
- added dk'tronics 256kb ram. Needs testing on a real device.
- added dk'tronics 256kb silicon disk. Needs testing on a real device.
- added x-mass (tested against my own X-Mass)
- added emulation of 8-bit transfer for ATA (tested on X-Mass)
- fixed ATA 16-bit data emulation (previously acted like it was 8-bit). Tested on Symbiface 2.
- added master/slave emulation for symbiface 2.
- added drive jumper settings for ide device, supports: master/single, master with slave, slave
- added mode switches to multiplay (you can now choose between joystick or mouse input) (needs testing on real device. based on specification document)
- multiplay joystick 1 was broken. now fixed (needs testing. based on specification document)
- multiplay input didn't seem to work correctly. now fixed. (needs testing. based on specification document)
- device system roms with amsdos headers can now be used. (e.g. hackit rom from cpcrulez)
- fixed multiface 2 device (checked against my own multiface 2) (emulation is much more accurate and the code has been changed to be more like the other devices)
- the device list can now be filtered through the context menu.
- in the Device Switches dialog, particularly with a device with many switches, the switch state was not being saved correctly after editing. This has been fixed.
- the default configuration for a device was being overwritten when reading configuration and it had not been set. This has been fixed. For example, this mean the default configuration for multiplay (which was set to joysticks) was being reset to using mouse.
Mac:
- if you had text in the auto-type dialog, closed the dialog, re-opened and dragged and dropped a file over it then the text would have been pasted onto the end of the original text. This then resulted in both pieces of text being typed. Now fixed.
- if you chose to define keys for joystick it could crash.
Autotype:
- smart quotes and smart hyphens would not be auto-typed correctly. These characters are automatically translated into the CPC equivalents when the autotype text is typed.
- if autotype finds a character which it can't translate it will now stop instead of continuing.
- auto start/auto type will now do a power on/off rather than a reset. If invalid data is written to the FDC then a reset will not correctly restart it but a power on/off will. So better to use power on/off.
General UI changes:
- added CPC464 with DDI-1 configuration
- positional keyboard configuration didn't show correctly on lubuntu. Fixed.
- if a zip file had an implied directory (i.e. it had a file such as test/disk but no actual test/ entry, then this directory would not be found and displayed in the archive window. This has been fixed.
- In the Media Status dialog if a new disk has been inserted and it hasn't been saved it now shows "Unsaved file".
- In the Drive status dialog it now reports the track 0 signal from the drive.
- the archive browser dialog now has a title based on what you are picking. (e.g. "Drive A")
Keyboard:
- typing using translated keyboard mode is much more responsive now. The key presses are now queued up and played back. It can now keep up with my typing.
Graphics Viewer:
- You can enable display of transparency. A pattern for transparent will be drawn. This is useful to see which pixels of a sprite are not drawn. e.g. pen 0 for Plus hardware sprites is transparent.
- You can now flip the display vertically. This is useful to view sprites which are stored upside down.
Joysticks:
- Update list of physical joysticks/joypads when entering joystick dialog rather than when you pick physical device option.
- Improved joystick dead zone detection and improved response for directions when using an analogue pc pad for cpc digital joysticks. Thank you to Aeliss.
- joystick setup will default to keyboard for digital joysick 0 if no gamepad is connected. NOTE: joystick key override setting is disabled by default so you will need to enable it.
Debugging:
- you can now set a memory breakpoint from the memory dump window. Click on the byte, address or ascii character then right click and choose "memory breakpoint..". You can configure it to be when memory is read or written.
- removed "clear instruction" and "put debug opcode" these were not flexible enough and they were destructive to the ram.
- SSCR vertical value was reported incorrectly.
- PPI Control Read/Write IO breakpoint was incorrect. It was breakpointing when port C was being read/written
- improved "step into" (f11). If you step into and an interrupt occurs you will then step into the interrupt. Previously it skipped the interrupt and it was not obvious it had happened.
step into and step over should work the same as before apart from this change.
- labels from Winape and RASM can now be imported via the Label Manager
- fixed: the debug menu item used for turning the border on or off was not updating incorrectly.
- sometimes breakpoints could not be placed correctly around address 0. This has been fixed.
Building:
- Arnold gave an error about libexpat when compiling on lubuntu. Fixed.
- Fixed inkz80 compile
- Windows version of Arnold is now built with Visual studio 2015 community edition.
- Windows version is now built using SDL 2.0.5
- cmake build has been updated for Visual Studio 2017 RC.
Tests:
- FDC tests have been re-written and made much more comprehensive.
- in the disc tests, when the motor is turned off, wait some time for the motor to be "fully off" and the drive to be "not ready"
Before it was turning it off and the next test could be run with the motor still slowing down and the drive could still be ready
depending on how long it takes to slow down.
- "SUCCEEDED" has been changed to "PASS"
- "FAILED" has been changed to "FAIL"
- I have grouped tests together into directories.
- I have added information to describe what each test is doing before it starts. This tells you if it is automatic (i.e. it
tests and then verifies the result), it is interactive (the user must do something), it is visual (visual confirmation by the user is
required) or audible.
- I have improved the feedback.
- Some tests were reporting data - there was no verification or checking the values - these were for debugging against CPC configurations which I don't have these have been disabled for this release.
These will be re-enabled when I confirm the exact configuration that triggers the results I am seeing.
- Many tests, especially the visual ones now have indication on the screen describing what is expected (e.g. vblank test has a line above and below the vblank and text to indicate what you should see).
- I have added a description of the computer systems I use for testing (see desc.txt). Use a similar computer to confirm the result.
- Some tests require you to answer questions about the computer configuration used, some tests are disabled/skipped if the configuration
doesn't allow that test to function. In addition some tests require specific configurations or their results differ on different
configurations.
- changed PPI port B read to be more reliable: two tests a) vsync on always b) vsync off always
- added placeholder aleste 520 ex tests (These are waiting for testing and feedback on a real machine)
- added kc compact mode 3 and colour changing tests
@arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122): I have tried to compile it under linux using your script make_arz80_release.sh and got this message
[ 2%] Building C object cpc/CMakeFiles/cpc.dir/amdrum.c.o
retro/arnold/src/cpc/amdrum.c:21:23: fatal error: emudevice.h: File does not exist
I have checked for it and the file is not included. Could it possible be missing in your distribution?
Thanks for such a lot of work :D
Quote from: ronaldo on 16:35, 13 May 17
@arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122): I have tried to compile it under linux using your script make_arz80_release.sh and got this message
[ 2%] Building C object cpc/CMakeFiles/cpc.dir/amdrum.c.o
retro/arnold/src/cpc/amdrum.c:21:23: fatal error: emudevice.h: File does not exist
I have checked for it and the file is not included. Could it possible be missing in your distribution?
Thanks for such a lot of work :D
I zipped it on windows and it has it as "EmuDevice.h".
Please rename it in the cpc directory, I will see if I can force windows to rename it and I'll re-zip it on linux.
That was it :). I looked for the file using find and, of course, it wasn't there because of the case.
Now I have renamed it, it compiles :D. I'm going to test it :)
Any chance of a osx binary build?
Oh and also could the Brunword v2 or v4 be modified for a c4cpc cart?
Sent from my ONEPLUS 3t using Tapatalk
Hi Kevin, i noticed some artefacts in the border whereas i have set the 7th bit of SSR to extend border but it do not work most of the time.
Quote from: CraigsBar on 18:31, 13 May 17
Any chance of a osx binary build?
I am having troubles, wxWidgets on Mac has some bugs.
Quote from: CraigsBar on 18:31, 13 May 17
Oh and also could the Brunword v2 or v4 be modified for a c4cpc cart?
Not sure, it depends on if the page at 4000 is active at the same time as the page at c000 and 0000. I will need to run the program and look at it to see which combinations are active.
Quote from: roudoudou on 21:45, 19 May 17
Hi Kevin, i noticed some artefacts in the border whereas i have set the 7th bit of SSR to extend border but it do not work most of the time.
Ok thanks. I will do more testing.
Quote from: roudoudou on 21:45, 19 May 17
Hi Kevin, i noticed some artefacts in the border whereas i have set the 7th bit of SSR to extend border but it do not work most of the time.
I can't see garbage on game that use it.
Its not the 7th bit but the bit 7 ? ( 0-3 horizontal 4-6 vertical 7 for the mask.)
How I can reproduce your bug ?
Quote from: Aeliss on 17:12, 23 May 17
I can't see garbage on game that use it.
Its not the 7th bit but the bit 7 ? ( 0-3 horizontal 4-6 vertical 7 for the mask.)
How I can reproduce your bug ?
hmmmmmm, i think i miss the point
the problem is not the SSR but the screen position
but i cannot reproduce it in basic (register 2 to 51 do not display the first word as expected)
Quote from: roudoudou on 00:00, 24 May 17
hmmmmmm, i think i miss the point
the problem is not the SSR but the screen position
but i cannot reproduce it in basic (register 2 to 51 do not display the first word as expected)
I think the bug in arnold is caused from the timing of the write to the register. I will do more testing and I will find it. :)
It may be a limit case as i change the value with a precise timing to keep a perfect 64 nops HBL timing while changing screen position. I'll send you the assembly :)
Congrats for your emulator !
:)
It works great.
I just noticed a problem with my xbox 360 controller : directions can get blocked.
I tried another controller (cyborg saitek), no problem with arnold.
Bu the same xbox controller works with the previous version of arnold, with winape and pc games...
I wonder if it's only my 360 controller, or all the 360 controllers...
Quote from: Xifos on 09:07, 27 May 17
Congrats for your emulator !
:)
It works great.
I just noticed a problem with my xbox 360 controller : directions can get blocked.
I tried another controller (cyborg saitek), no problem with arnold.
Bu the same xbox controller works with the previous version of arnold, with winape and pc games...
I wonder if it's only my 360 controller, or all the 360 controllers...
I made some changes to the deadzone calculation with the joysticks. I will test again on the xbox 360 controller and fix the problems you report.
Quote from: Xifos on 09:07, 27 May 17
Congrats for your emulator !
:)
It works great.
I just noticed a problem with my xbox 360 controller : directions can get blocked.
I tried another controller (cyborg saitek), no problem with arnold.
Bu the same xbox controller works with the previous version of arnold, with winape and pc games...
I wonder if it's only my 360 controller, or all the 360 controllers...
I tested this and it is working ok with my 360 controller.
Please check the configuration for the joystick and see if X Axis and Y Axis are mapped. (Click the configure button in the joystick dialog to see this).
You can re-configure the directions if this has happened.
This can happen where there are older settings stored.
When i try to remap the joystick (digital joystick(0) > xinput controller > define), it doesn't work.
Neither directions nor fire buttons.
And the controller won't work at all until i restart the emulator...
Hi there!
I'm desperately trying to build the latest version of Arnold on my Mac, following the steps described in build_notes.txt; everything goes perfectly fine until I try to run ./make_mac.sh, which gives me the following error message:
[...]
[ 47%] Building C object cpc/CMakeFiles/cpc.dir/sdlsound.c.o
/Users/mathieu.delaruelle/.Trash/src 12.00.14/cpc/sdlsound.c:35:10: fatal error:
'SDL2/SDL.h' file not found
#include <SDL2/SDL.h>
^
1 error generated.
make[2]: *** [cpc/CMakeFiles/cpc.dir/sdlsound.c.o] Error 1
make[1]: *** [cpc/CMakeFiles/cpc.dir/all] Error 2
make: *** [all] Error 2
... Help? Please? :D
l think you need to install many librairies before compiling Arnold
Well I installed all of them. That is, those that are listed in the instructions provided.
Did you install the dev version ? ;D
Nah. The 'release' one. ;D
Quote from: Hwikaa on 15:45, 02 August 17
Nah. The 'release' one. ;D
The release version does not contain "include" files with prototypes Arnold needs to compile, this is only the library for executables
Well, I get the exact same error with the debug version... :(
Is there any SDL.h file on your HDD ? If not, this is not the DEV version.
Yes, I have it. In /Library/Frameworks/SDL2.framework/Versions/A/Headers/
Quote from: Hwikaa on 16:33, 02 August 17
Yes, I have it. In /Library/Frameworks/SDL2.framework/Versions/A/Headers/
Hi!
I am the author of arnold :)
The development and release download from www.libsdl.org are the same for Mac.
Both contain the runtime and the headers. So it doesn't matter which you downloaded.
When "./make_mac.sh" is run there is some logging from the build system.
Please would you confirm that it has found SDL2?
It will display:
"Will use SDL2
SDL2_LIBRARY /Library/Frameworks/SDL2.framework
-- Found SDL2 /Library/Frameworks/SDL2.framework
SDL2 found"
Also please confirm it has found EXPAT and wxWidgets because these are also needed.
You may see a "command failed: 'install_name_tool'...". I see this and it will not stop it building and allowing you to run it. This message means that it failed to add the frameworks to the app.
If all of these are found then the build should be successful but I am building on an older version of macOS so you may find it fails.
Hi @arnoldemu (http://www.cpcwiki.eu/forum/index.php?action=profile;u=122) ! Thank you so much for your reply. :-)
I'll check all of this tomorrow (I don't have access to this Mac right now), and l'll get back to you.
Quote from: arnoldemu on 19:35, 02 August 17
Please would you confirm that it has found SDL2?
It will display:
"Will use SDL2
SDL2_LIBRARY /Library/Frameworks/SDL2.framework
-- Found SDL2 /Library/Frameworks/SDL2.framework
SDL2 found"
Also please confirm it has found EXPAT and wxWidgets because these are also needed.
OK, so I just checked and, yes, it found everything:
Will use SDL2
SDL2_LIBRARY /Library/Frameworks/SDL2.framework
-- Found SDL2: /Library/Frameworks/SDL2.framework
SDL2 found
-- Found EXPAT: /usr/lib/libexpat.dylib (found version "2.0.1")
-- Found wxWidgets: -L/usr/local/lib;;;-framework IOKit;-framework Carbon;-framework Cocoa;-framework AudioToolbox;-framework System;-framework OpenGL;/usr/local/lib/libwx_osx_cocoau_xrc-3.0.a;/usr/local/lib/libwx_osx_cocoau_webview-3.0.a;/usr/local/lib/libwx_osx_cocoau_qa-3.0.a;/usr/local/lib/libwx_baseu_net-3.0.a;/usr/local/lib/libwx_osx_cocoau_html-3.0.a;/usr/local/lib/libwx_osx_cocoau_adv-3.0.a;/usr/local/lib/libwx_osx_cocoau_core-3.0.a;/usr/local/lib/libwx_baseu_xml-3.0.a;/usr/local/lib/libwx_baseu-3.0.a;-framework WebKit;-lexpat;-lwxregexu-3.0;-lwxtiff-3.0;-lwxjpeg-3.0;-lwxpng-3.0;-lz;-lpthread;-liconv;-llzma (found version "3.0.3")
Using STATIC version of wxWidgets
-- Found wxWidgets: -L/usr/local/lib;;;-framework IOKit;-framework Carbon;-framework Cocoa;-framework AudioToolbox;-framework System;-framework OpenGL;/usr/local/lib/libwx_osx_cocoau_xrc-3.0.a;/usr/local/lib/libwx_baseu_net-3.0.a;/usr/local/lib/libwx_osx_cocoau_html-3.0.a;/usr/local/lib/libwx_osx_cocoau_adv-3.0.a;/usr/local/lib/libwx_osx_cocoau_core-3.0.a;/usr/local/lib/libwx_baseu_xml-3.0.a;/usr/local/lib/libwx_baseu-3.0.a;-framework WebKit;-lexpat;-lwxregexu-3.0;-lwxtiff-3.0;-lwxjpeg-3.0;-lwxpng-3.0;-lz;-lpthread;-liconv;-llzma (found version "3.0.3")
However, I keep getting the same 'fatal error'... :(
Hi everyone,
I'm new here (but not new to the CPC) and I'm trying to build the Arnold WIP archive on macOS 10.12 (latest) as I write this...
I've started reading Kevin's build notes, and I just wanted to let you know that you probably don't really have to install all of the dependencies manually on Mac : there's the great Homebrew (https://brew.sh/ (https://brew.sh/)) package manager (a bit like "apt-get") that should be able to do 90% of the job, installing both runtime AND dev dependencies just with this single command line : "brew install cmake sdl2 wxwidgets"
For this to work I just had to patch "make_arnz80_sdl2_release.sh" to use the standard "cmake" (that Homebrew installs) when it detects "Darwin" (macOS), rather than the custom path in "/Applications/...." that a manual CMake install provides.
... ok, as I finish writing this, there's now a problem with SDL2. It may be because Homebrew installs the header files under /usr/local/include/SDL2/ (like with normal Unix systems), and it looks like the "FindSDL2.cmake" module in the Arnold source tries to autodetect if it's running on macOS based on the SDL directory name ending in ".framework", which is not the case with Homebrew !
I'll try to hack this some more and report progress here...
By the way, if you are reading this Kevin, I don't know if that has been discussed already here, but have you considered hosting the source on Github ? I would be happy to contribute any build tweaks I end up making !
Quote from: reno on 15:56, 11 August 17
Hi everyone,
Welcome and thank you for trying to build it. I have sent you a pm :)
I hope this DMG for mac works:
http://www.cpctech.org.uk/arnold.dmg (http://www.cpctech.org.uk/arnold.dmg)
I built it using CPack and CMake and for me the dependencies look like they work.
Debian Package:
I hope this works. It seems to be good for me.
http://www.cpctech.org.uk/arnold_1.0.0-1_amd64.deb (http://www.cpctech.org.uk/arnold_1.0.0-1_amd64.deb)
Fedora rpm:
http://www.cpctech.org.uk/arnold-1.0.0-1.x86_64.rpm
The DMG works beautifully, thanks!
Things I've noticed:
- I don't know which key acts as the COPY key
- The emulator is unable to work with weirds disks, like Orion Prime.
- The timing seems to go off from time to time. You notice that on the music which starts to sound too fast.
Keep up the good work!
Quote from: arnoldemu on 11:05, 20 August 17
I hope this DMG for mac works:
http://www.cpctech.org.uk/arnold.dmg (http://www.cpctech.org.uk/arnold.dmg)
Works like a charm, tyvm :)
I am also noticing speed issues. i.e. 100% is running too fast.
Quote from: blackdalek on 14:12, 22 August 17
I am also noticing speed issues. i.e. 100% is running too fast.
I found the problem :picard2:
Cool! What was the problem?
Sent from my iPhone using Tapatalk
Quote from: robcfg on 16:05, 26 August 17
Cool! What was the problem?
Sent from my iPhone using Tapatalk
The fps lock is simplistic and works like this:
- record a time (becomes "previous time")
- do some work (emulate z80, etc)
- record a new time
- calculate difference between new time and previous time (= time taken for the work)
The time taken may be more or less than the time we want (the "fps" time slice).
- work out the amount of time remaining in the "fps" time slice. now burn cycles or wait until the fps time slice is up
- record new time (becomes "previous time" in the next loop)
On mac/linux I was not doing the last step. = :picard2:
So it was calculating wrong sleep values and running at the wrong speed.
When I analysed it and added more time recording information I could see why it was going wrong.
I will now take a bit of time to improve handling when it's running slower than requested and report to the user if it's struggling to achieve the requested rate, then I'll post an update for testing.
Hello.
A feedback and one issue with autotype using the latest zip downloaded from http://www.cpctech.org.uk/arnsrc.zip (actually http://cpctech.cpc-live.com/arnsrc.zip )
Question: when using autotype from command line, simpler way to I insert a linefeed ?
Running Linux with bash shell (like pretty much all distributions since 20 years).
I figured out this:
arnold_debug -a cf.dsk -at 'run"cf"'$(echo -ne '\015')
Is there a simpler / more portable solution?
Bug report: clicking on CPC window while autotype runs causes missing keys
How to reproduce:
Launch arnold from command line with some autotype string like this:
make && /org/gourichon/localdata/SG/projects/free_software_involvement/tools/cpc_emulators/arnold/arnold_debug -a cf.dsk -at '01234567890abcdefghijklmnopqrstuvwxyz'
While autotype types, click on CPC window.
Expected behaviour
Clicking does not interfere with autotype.
Observed behaviour.
The char/key being typed at the moment of the click is lost.
For example, I just tested it and the 7 was just not typed.
If also happens with short strings, like run"cf, it's just that clicking has less probability of being at a wrong time.
[attachimg=1]
Version control
As a bonus, it would be very, arnoldemu if you could version control your emulator source code and put it on some sharing platform (e.g. github, which is easy to use). That way we could cleanly discuss each issue separately with the issue tracker. Also it could be more handy, for example when running any version we could tell precisely which one it is rather than "the one I downloaded on day X, or, I think so". This is sometimes important when testing progress in bug squashing, plus other benefits. :)
Quote from: cpcitor on 09:38, 29 October 17
A feedback and one issue with autotype using the latest zip downloaded from http://www.cpctech.org.uk/arnsrc.zip (http://www.cpctech.org.uk/arnsrc.zip) (actually http://cpctech.cpc-live.com/arnsrc.zip (http://cpctech.cpc-live.com/arnsrc.zip) )
Ok I will fix this.
Quote from: cpcitor on 09:38, 29 October 17
As a bonus, it would be very, arnoldemu if you could version control your emulator source code and put it on some sharing platform (e.g. github, which is easy to use). That way we could cleanly discuss each issue separately with the issue tracker. Also it could be more handy, for example when running any version we could tell precisely which one it is rather than "the one I downloaded on day X, or, I think so". This is sometimes important when testing progress in bug squashing, plus other benefits. :)
I do use source control. It is accessible from the internet but it's not public because the bandwidth is limited.
I use 'fossil' (read about it here www.fossil-scm.org).
I will add the fossil 'artifact' to the about page (this is on my todo list) that will tell me the exact revision I took it from and others can reference that directly to report bugs.
Quote from: cpcitor on 09:38, 29 October 17
Question: when using autotype from command line, simpler way to I insert a linefeed ?
Use \n
arnold_debug -a cf.dsk -at 'run"cf"\n'
Quote from: arnoldemu on 12:03, 29 October 17
Use \n
arnold_debug -a cf.dsk -at 'run"cf"\n'
It's just plain impossible that I didn't try that. I positively did.
I think I guessed what happened: the time I checked, the bug I mentioned happened, and eat precisely the newline character. :blank: So I thought it just could not work that way. :)
Hello. Bugs observed with recent version of arnoldemu.
Severity: current arnoldemu cannot be used for audio work here, or even games, as audio is too awful.
Summary
(1) Each time emu starts or stops, a loud "click" is heard. This is typical of an audio system where signal rest level is not zero.
(2) Audio isn't good. Typing "sound 1,284,32767" does not yield a continuous tone but an unpleasant jerky tone. Even CPC system beep is affected.
Reproducible
Always. Observed on Ubuntu 16.04 AMD64 with arnoldemu compiled from source.[attachurl=3]
Analysis of output generated by arnoldemu
Capturing arnoldemu output
I could record arnoldemu direct to audacity and indeed pulses have an irregular width, see attached picture. I also disabled pulseaudio and used alsa driver directly to rule out any bug on pulseaudio side, and this bug still remains.
Looking at arnoldemu output
Indeed, audacity shown that square waves are at the bottom of the possible values, and not near the center. This looks like a signed/unsigned mixup.
Furthermore, the square waves do not have the same width. This looks like buffer size mismatch or misuse of the audio API.
See below.
[attachimg=1]
As a result, current arnoldemu cannot be used for audio work here.
Attaching zipped wav file to let you hear and see what I hear and see [attachurl=3]
Thank you for your attention.
Quote from: arnoldemu on 11:57, 29 October 17
Ok I will fix this.
This is fixed in the fossil repository. See artifact d3a82d3bc4267019. Changes are in sdl and sdl2 code.
Quote from: cpcitor on 21:32, 01 November 17
Severity: current arnoldemu cannot be used for audio work here, or even games, as audio is too awful.
true. I will do more work on this before I do a new release.
Hello.
Surprising behavior observed in Arnoldemu when using debugger. Version of arnoldemu is zip as of 2017-10-27.
How to reproduce :
* open arnold
* open debugger
* request to close CPC display window (either by clicking close button, or pressing ALT-F4 or similar)
Expected: arnold quits
Observed: close request seem just ignored.
Then
* click debugger window
* request to step or continue (e.g. press F11 or F12, or use right click on dissassembly window and choose one of the step or continue option)
Expected: execution continues (either one step or other option, as requested)
Observed: arnold quits
Is seems that the "window close" event was somehow not ignored but put on hold.
Regards.
The disassembly and memory windows are interesting trace tools.
Need for efficient disassembly/tracing.When tracing through rom, or simply debugging calls involving well-known addresses, one often has to lookup addresses found in ROM code (code addresses, data adresses, firmware entry points in RAM, jump blocks in upper RAM). I did it this morning and ended up asking Google things like "Amstrac CPC BDD9" every other ASM line :-).
Also, this happens when stepping through one's code. For example, I had to step into running code generated by SDCC to solve difficult bugs. SDCC provides complete symbol list yet disassembly window does not know about them.
Having the information displayed would be a great time saver and enhance the disassembly window tremendously!
Tracing through ROM or other programs would make much more sense: when landing on any address (especially after a CALL, JP, RET) you know where you are.
Idea: show salient addresses when tracingSeeing that the columns in the disassembly window could be completed (for example, add "execution time" column), I imagined an improvement: offer to "add symbols column", with symbol meaning here "free-form address-to-text association".
Such a symbol column would take as input a text file containing a number of lines associating an address with some text (free-form, not restricted only an actual symbol).
Then, any time an address is shown, it is looked up in the registered "free-form address-to-text association" sources and
shown in an additional column. This makes tracing in code much easier.
Some sources could be:
* lower/upper ROM well-known address lists (when ROM is enabled)
* RAM firmware entry points, jump blocks (some are machine-dependent)
* user-supplied linker output
It could be as simple as a text file like examples below.
Addresses of known assembly code in lower ROM:
Quote0163 KL NEW FRAME FLY
016A KL ADD FRAME FLY
0170 KL DEL FRAME FLY
0176 KL NEW FAST TICKER
0I7D KL ADD FAST TICKER
0183 KL DEL FAST TICKER
Addresses of firmware entry points in RAM:
BD19 MC WAIT FLYBACK
Indirections:
BDD9 TXT OUT ACTION
Exemple of user-supplied linker output: map file produced by SDCC
00001000 cpc_run_address crt0
00001006 _main 00_main
000010A9 _config_gui_init config_gui
000011B9 _cf_rungame controller
000012D6 _key_to_action controller
000012E8 _cf_grid_init model
00001512 _cf_model_init model
00001649 _walkTillObstacle model
The net result is that when looking at disassembly, you don't just see code, but its meaning conveyed by the text.
Implementing a proof-of-concept looks like "just" a lookup of the line address in the table(s) and show the mathing line, if any.
What do you think?
Quote from: cpcitor on 10:06, 07 November 17
The disassembly and memory windows are interesting trace tools.
Need for efficient disassembly/tracing.
When tracing through rom, or simply debugging calls involving well-known addresses, one often has to lookup addresses found in ROM code (code addresses, data adresses, firmware entry points in RAM, jump blocks in upper RAM). I did it this morning and ended up asking Google things like "Amstrac CPC BDD9" every other ASM line :-).
Also, this happens when stepping through one's code. For example, I had to step into running code generated by SDCC to solve difficult bugs. SDCC provides complete symbol list yet disassembly window does not know about them.
Having the information displayed would be a great time saver and enhance the disassembly window tremendously!
Tracing through ROM or other programs would make much more sense: when landing on any address (especially after a CALL, JP, RET) you know where you are.
....
See the Labelmanager (access it via the dissassembly menu). You can also add labels from this menu.
You can import symbols from noi (sdcc), pasmo and other assemblers.
Does this do as you need?
For timings there are instruction timings (see dissassembly menu) that can be enabled.
Function timing is available at head revision but give me a couple more days to clean up after the big merge I did.
Looking forward for the next release. Please keep us updated! :)
Quote from: arnoldemu on 10:47, 07 November 17
See the Labelmanager (access it via the dissassembly menu). You can also add labels from this menu.
You can import symbols from noi (sdcc), pasmo and other assemblers.
Does this do as you need?
For timings there are instruction timings (see dissassembly menu) that can be enabled.
Function timing is available at head revision but give me a couple more days to clean up after the big merge I did.
Excellent!
The basic spirit is there.
Some observations:
* currently labels are treated like an authoritative
label_prefix: like in ASM source code, yet...
* ...disassembly looks like but is not exactly ASM source code...
* ...in particular, disassembled labels are just *guessed*, not *certain*, especially when they are an operand of ASM instruction.
* Some labels with small values (0,1) are often included in compiler/linker output, irrelevant to many operations yet currently obfuscate disassembly: I have to look at the bytes column to see the actual value.
Example
# ASM source
LD DE,0
# disassembly with current code
LD DE, s_IRRELEVANTLABEL
* Close matches are not counted.
# ASM source
LD (LABEL),A
LD (LABEL+4),A
LD (MYVECTOR+1),HL
# disassembly with current code, not clear at all
LD (LABEL),A
LD (&1234),A
LD (&BDD4),HL
IMHO, it would be better to:
(1) consider labels as indicative, not authoritative, and thus show number not labels in disassembly, rather offer labels in an extra column.
# disassembly with current code
LD DE, s_IRRELEVANTLABEL
LD (LABEL),A
# Better result
LD DE, 0 # 0=s_IRRELEVANTLABEL
LD (&1230),A # &1230=LABEL
(2) if there are several exact labels, show all of them
(3) if current address does not exactly matches any label, instead of not showing anything, look below the the closest label and show bytes offset from it.
For example:
# disassembly with current code, not clear at all
LD (LABEL),A
LD (&1234),A
LD (&BDD4),HL
# Better retuls
LD (&1230),A # &1230=LABEL
LD (&1234),A # &1234=4+LABEL
LD (&BDD4),HL # &BDD4=1+TXT_WRITE_CHAR
Another argument in favor of numbers in disassembled mnemonics plus an extra column is :
* to benefit, when existing, from reader familiarity with actual address (e.G. firmware area in RAM)
* to provide reader opportunity to see actual addresses, useful when other occurrences are missed because not exact (always guessed).
Example:
# ASM source
LD (LABEL),A
LD (LABEL-5),A
# disassembly with current code, not clear at all
LD (LABEL),A
LD (&6784),A
# Better result: one sees that the second write is 5 below the first
LD (&6789),A # &6789=LABEL
LD (&6784),A
What do you think?
Hello there , while waiting new update from sources , I tried to fix myself the accelerated timing on linux. This can help others like me encountering the same issue.
I took a look on EmulationWindow::OnIdle(wxIdleEvent & WXUNUSED(event)) (EmuWindow.cpp)
and I saw a static value fixed to 19968, I suppose this is the number of cycle for 20msec of CPC execution.
I try to reduce this value , and I succes to reach true speed with 12500.
Sound now play without crackle and seem to be sync with timer.
Lol, not sure this accuracy fanatic will use it ^^.
I have noticied a prb here too, if we use 19968 sometime the sound buffer is 3528 size (normal size) but sometime 3524 (in fact the buffer is smaller than it need for the frame), and impossible to find why because the logic values for me too is 19968.
But I need to try your modification, 12500 and 19968 are rly different values.
Yes I'm agree with you , my hack not give me total satisfaction because stay in my part , not understood. But sound crackle was not the only issue on my part, for example, burnin rubber run too fast . I would try to put cpu and crtc timing in a dedicated thread to reproduce the exact original quartz clock timing. I feel on arnold arch, the sound and crtc emulation are not sync to cpu frame, that cause crackle and disproportionned cpu advance timing. Now with C++11 , we could put it on wxwidget independant thread (std::thread) . It sure, that represent lot of work to adapt the great job done yet.
The speed problem is clearly visible on burning rubber ? I m comparing with youtube video, I don't see something visible (I don't have real machine to test).
I don't see no more how to implement a multithreading mode because the arnold core is "sequencial", we have data for sound in same time than for data for crtc for exemple. The Kevin Core is logic for me, if the emulation go slow at a moment all should be slow down (in theory).
The problem is not the sound buffer is filled slower than it is read, it s the sound buffer is not filled at same speed than the total core. For the same frame with the same number of cycle I can't undersatand why I have sometime a size buffer of 3528 and an other 3524, and never 3532.
The better way I see is synchronise the emulation on the sound core (It's a mode you can see in lot of emulator). Instead of using cycle = 19968 use Sound_buffer_size = 3528 to check a complete frame.
With this tips, I m sure to make a code without sound problem, but for me it s not accurate at all, and IDK that it can imply on the rest of core taht need perfect synchronisation(eg raster, interrupt, ect ...)
For information I m using it on window, I have too a version with directsound, the sound bug is less visible but still present.
Hi Kevin, is the link http://www.cpctech.org.uk/arnoldsrc.zip containing the last version?
Have you made a quick procedure in order to compile it with Linux?
I saw it uses wxWidget, libSDL, other???
Thanks
I compiled a working version of Arnold
But still dont know if its the last one ;D
cpctech is broken. Only works the front page. I cant redownload it.
A quick question about Arnold and snapshot extended chunks
Is there a breakpoint support (Winape compatible or ACE compatible) BRKS / BRKC
Is there a symbol support (ACE compatible) SYMB
Is there any documented specific chunk dedicated to Arnold? (breakpoints, symbols, ...)
Thanks
Hi I just wondered if it would be possible to add something to the TODO list if it isn't already? This may have been fixed as I run the .deb Arnold package from 19th August 2017...
I use Arnold on my laptop that uses Kubuntu - it works great and I mainly just leave it in "Translated" keyboard mode without any problems, but for some reason it doesn't translate the CTRL key.
I noticed this in HiSoft-C
I write some code, go to the compiler, hit ctrl-z and it doesn't do anything. So I have to swap to positional keyboard mode to do the ctrl-z, then swap back to translated again. This works ok swapping between, but as more code is written and then compiled to check then swap back again to change the code then back again to compile and such it really slows things down. Partly because my laptop touchpad isn't great and it is a small notebook so a bit fiddly...
It would be fantastic if the ctrl key could be translated so that it could just be left in translated mode all the time and then coding C on the Amstrad would absolutely rock out for me in HiSoft!!! :)