After a long time, Sugarbox is now avaiable in version 0.26.
This update is mainly focused on IPF and Disk support, but it includes also a debugger (rather simple at the moment, should be improved in the next releases). Z80 emulation is a bit better (all Z80 tests are now correct).
Also, I tried to correct the feedback I get from the previous version.
Here is the compete log :
- [CT-RAW/IPF] : Native support of these two format. CAPSLib dll from SPS is no longer used. This will fix some non-working dump( due to bug in the lib).
- [IPF] : Add a SAVE IPF option. You can save your current disk in IPF format, to generate a 3″ disk. You can even write dump with weak sectors.
- [HFE] : Now it’s possible to save HFE file !
- [edsk] : Added some tuning to handle sector of header size lower than real size.
- [edsk] : Fixed some nasty memory overrun.
- [edsk] : Fixed the way of handling overlapped disk : « Corsarios (UK) (1988) (CPM) [Original].dsk » disk now run correctly. In fact, all dsk should now retrieve their original size of 6k/track
- [edsk] : Fixed support for ALLGAP dumps
- [FDC] : New paradigm : Weak bits are now handled by bit. Multi-revolution dump are converted to single revolution with weak bits data.
- [FDC] : Fix a bug with the SZ byte = 0 in read track command (this fixed « War In Middle Earth (UK) (1987) (CPM) [Original].dsk » dump)
- [Tape] : Add a delay when motor is on/off. This fixed « Last Mission »
- [Z80] : Interrupt mode 0 is partially fixed : It does nothing, but no longer corrupt the Z80 registers
- [Z80] : Fix some wrong behaviour of undocumented opcodes
- [Z80] : Add the undocumented ‘Q’ register used for Flags, and fix the SCF/CCF instructions regarding this register
- [Z80] : All Z80 tests from Patrik Rak, adapted to the CPC by Kevin Thacker, are now correct.
- [Display] : Fixed wrong behaviour for 100%speed with 100hz screen without black frame insertion : Speed was twice what was intendeed
- [General] : Add Autorun disk on insertion which try to guess the best file to run.
- [General] : Optimization : Everything is now running 60-80% faster than before
- [General] : Add a support for auto-executing BIN file (with AMSDOS header), through drag’n'drop.
- [General] : Fixed the Spanish configuration for 464, and added support for Danish keyboard.
- [General] : Added -fullscreen command line to enable fullscreen by default
- [General] : Fixed the « -command » option : In order to run a disc, just launch your command as Sugarbox -command run\ »disc\ » for example
- [General] : Added sound for disk drive
- [General] : Fix copy/paste for english/spanish/danish
- [GUI] : Added a feedback when loading tape/disk/SNA/SNR
- [GUI] : Added a preliminary debugger, with Register edition, breakpoints, flags
- [Joystick support] : Fixed diagonals not supported with some joypads (now, games should be far more playable !)
- [Memory] : Fixed the configuration : 64k computer no longer have improper PAL
- [Settings] : Fixed some nasty bugs preventing the keyboard settings to work
It’s bit a quite long time since last update…. So here is the new version, with some part completely rewritten.
The most important parts are the online libraries, to load disk, tape and even snpshot from the great http://amstrad.eu/ and http://www.cpc-power.com websites.
Also, display has been rewritten using SDL, offering the possibility to select fullscreen resolution. It’s now possible to use the « black frame insertion » for 100hz capable monitor users, to show buttery smooth scrooling (http://www.blurbusters.com/ may be worth a visit for people interrested with blur reduction)
Here’s the complete log :
- [General] : Optimisations (Emulation is about 15% faster)
- [General] : Generic Joystick are supported through Direct Input. 2 Joysticks can be used, in the order they appear in the os. Work with Xbox controler, as well as standard usb joystick.
- [SNR] : Add feature to watch SNR file (playbacks) – Preliminary
- [Z80] : Fixed timing issue in interrupt following some opcodes
- [Z80] : Fixed incorrect R increment for DD CB and FD CB instructions
- [FDC] : Fixed « Format » command. Now, a Format command from discology (for example) produce a disk that is correct.
- [FDC] : Fixed the MSR, that was not handled correctly. This fix Bobby bearing and Camelot warriors original dsk.
- [FDC] : Fixed the Step Rate Time computation, which was twice longe than expected
- [FDC] : Fixed behaviour with SK bit and deleted sectors (making Nigel Mansell works)
- [FDC] : Fixed how read track over the index hole works. The current sector is finished,then the command is ended (fix Skyx)
- [eDSK] : Fixed an incorrect behaviour with non formatted tracks on some dump. This prevents Bobby Bearing (UK) (1986) (CPM) [Original].dsk to crash when trying to load
- [eDSK] : Fixed some rare problematic case with offset-info datas
- [CT-Raw] : Fixed write bug when multiple revolutions exists (which somewhere shifted what’s written, leading to CRC error). Fix « Le maitre absolu » in ct-raw format
- [Memory] : Fixed a bug in the PAL, preventing SymbOs to use full memory.
- [GUI] : Fixed missing space and enter for Autotype
- [GUI] : Added a PAUSE feature, accessible via menu or the « Pause » key on the keyboard
- [Z80] : Fixed a rare bug that can lead to potential unwanted deadlock with HALT command
- [TAPE] : FAST loading enabled : If a tape is read, refresh are cut, so speed can be 2 to 3 time faster.
- [Display] : SDL2 lib is now used. Fullscreen option is now better, as it can be fully configured. Also, black screen insertion for 100hz display can be used for buttery smooth scrollers
- [Display] : Screen size and position is now more correct
- [Display] : Screenshots are now better (and without any toolbar)
- [Printer] : A really basic printer is now plugged ! You can see print result in the PRINT directory. (no graphical printing is done, only text)
- [Online libraries] : Preliminary integration of CPC-Power and Amstrad.eu online libraries.
Here are the files :
I would like also to use this post to thanks the following persons who help me a lot:
- Maxit for all his testing and feedback (since maybe the first day of this emulator !). He signal most of the dumps that where problematics…
- Kukulcan for his greats ideas, the cpc-power support and his so usefull feedbacks
- Megachur and Fredouille for all the interresting exchange about various emulation subjects
- CPC-Power for providing infinite source of testing
- The guys at CPC-Rulez and CPC-wiki for providing informations about everything related to the CPC
A new version of Sugarbox is finally ready !
Basically, tape support is better, and full screen is added, with DirectX9 support.
If you own one of this cool 100hz monitor, dont forget to turn refresh rate to 100hz, and enjoy a new way of smoothness !
Here is what’s new :
- [FDC] : Read track handle correctly TC (Hercule, and ESAT software works again)
- [FDC] : Side changing is now correct : Game with only one side no longer crash if they try to access a second side (Dragon of flame)
- [FDC] : Fixed a bug if a sector CHRN is almost ok, when a read sector command is issued (Wild Street is now ok)
- [FDC] : FDC is more robust : Trying to load a random file as RAW will fail without a crash (hopefully)
- [TAPE] : RECORD function added
- [TAPE] : Added length of tape
- [TAPE] : Lot’s of rework on the WAV support : Now load more files, including « Skate Crazy », « Basil », « Footballer of the year II » without the « reverse polarity » trick.
It mainly try to reproduce what’s actually in the CPC : Filters, gains, and so on.
- [TAPE] : User can now set the Tape position at wanted position (by clicking on the counter status bar). Also, a shortcut is added to set tape to wanted block, or last ejection position
- [General] : Added file extension if needed, when saving file (for CDT, CSW, WAV, DSK, SCP, SNA files)
- [General] : Fixed a memory leak (which should have no impact on standard use)
- [Memory] : 464 has now no PAL
- [Display] : Full screen is now available for Direct X 9 display. Also, a smart sync has been added, to sync the display @50hz with 100hz display
- [DirectX9 display] : For people who want smooth display, it’s possible to sync Sugarbox with your monitor. Display is smooth, but whole emulation speed is affected as well (typical 60 hz monitor will run at 120%)
- [DirectX9 display] : For lucky people with 100hz monitor, an option has been added, to insert a black frame between two frame. Whole speed is exactly 50hz, and display is really smooth.
Here it is :
As always, if you encounter any trouble (or have any suggestion), feel free to drop me a line (please, include your whole config and a screenshot if you can, for any display troubles)
After a long time, a new version is available !
So, what’s new ?
- [TAPE] : Tape support : CDT/WAV/VOC/CSW(v1.1 & v2.0, with or without Z-RLE encoding) files are supported
- [TAPE] : Possibility to save Tape as WAV, CDT (with only DRB or CSW blocks), CSW (v1.1 or 2.0 compressed). Preliminary, maybe unexpected results can occurs !
- [FDC] : Head is no longer forced to track 0 when a disk is ejcted. This fix a bug in disk swapping for Targhan.
- [FDC] : Track delay time added. This fixed a weird protection scheme on Daley Thompson Olymic Challenge
- [FDC] : The US1 FDC bit is no longer wired. This fixed « Sphaira » original game.
- [FDC] : When « Read id » is performed on a not formatted track, the track was incorrect in the result. This is now fixed, fixing « Return of the jedi ».
- [FDC] : Fixed a bug that only load up to 42 tracks per side for a disk. Now, 720k disk (with 82 tracks) can be loaded again correctly
- [FDC] : Fixed a bug that prevent « motor » command to be taken in account
- [FDC] : Fixed a bug related to BC bit in register 2, making « Starfox » game to work.
- [GUI] : Added protection button for the disks
- [FDC-eDSK] : Correctly save tracks that are not formatted
- [FDC-DSK] : Close dsk file correctly.
- [SHORTCUTS] : added ctrl+f9 -> Reset
- ctrl+f1 : insert disk drive A:
- ctrl+f2 : insert disk drive B:
- [Gate array] : Fixed a bug that was displaying incorrect colors when using the ghost registers
- [General] : On exit, if a disk has been modified without being saved, user is asked about it.
- [General] : Fixed some rare crash that can occurs
- [General] : A click on speed on status bar now toggle the emulation speed between « 100% » and « No speed limit »
- [General] : Some architecture and code optimization, increasing overall emulation speed (about +25% speed)
Main fix is on the CAPSImg.dll use : I found a way to use it without making it hang. This fix lots of CT Raw files that previously used to crash Sugarbox.
Also, be sure to use the 32 bits version of the DLL !
What’s new :
- [FDC] : Fixed a wrong behaviour on a read sector command : When an overflow occurs, do not stop the command until the end of the sector. (This correct some version of « Famous Five » game)
- [FDC] : Disk rotation is simulated, with a slight variation depending on the time and the current track. Also, more realistic acceleration of the disk is done (« Basun » now run without any trick)
- [FDC - HFE] : Add support for HFE files
- [FDC - Dsk] : Add various fix to make it more reliable
- [FDC - CT RAW] : When reconnecting last revolution to first, support track that does not contains IAM : Length computation is done using first IDAM
- [FDC - CT RAW] : Handle correctly CAPSImg.dll error, so no more memory corruption occurs on incorrect dumps
- [FDC - CAPSImg.dll] : Use a workaround to avoid crash of the lib that can occurs when image with weak sectors are read.
- [CRTC0] : Fixed an incorrect behaviour on VSync duration from R3 (Correct Druid 2 )
- [PSG] : Fixed a bug that can corrupt memory when a register grater than 15 is written
A quick 0.21 version to correct few things about CAPS library : I made a mistake and incorrectly include it without the proper licence files. So, the 0.19 and 0.20 version will be removed.
So, as it is intended to be used, I just change the way it worked now : If a CAPSImg.dll can be loaded when inserting a CT Raw or a IPS file, it will be used (otherwise, the disk will not load).
Visit the Software Preservation Society for more details.
Other than this, here is what’s new :
- [CRTC0] :Add support for CRTC 0 : Few demos may not worked, but lot’s of them do (including the impressive « Shadow of the beast » preview from Overflow)
- [CRTC1] : Fixed a little error in the CRTC, preventing « Chany dream 2″ from running properly.
[CRTC] : Fixed a case where HSync falling edge is not detected ( Chany dreamend part 8 is now displayed correctly)
[Display] : Fixed an incorrect behaviour of Screenshot function, that used to take incomplete screenshots
- [Display] : Adjust a bit position of the screen
[SNA] : Fixed some bugs with snapshots that have VBL bit = 1 in the PPI.
[SNA] : Fixed Vertical Adjust improper in snapshots
[FDC] : Fixed a rare case where, in a Kryoflux RAW file, the index is missing from the stream (which caused a crash to occur)
Here it is : Sugarbox_v0.21
A quick version, to fix two problematic crashes.
Here’s the log
- EDSK support secured : SCOOP #3 no longer result in a crash of the emulator. Also, if index table is in disorder, non longer crash the emulator
- Fixed of a memory bug in the SCP support : They no longer crash when leaving / ejecting the disk
- Fixed drag and drop of SNA files that wasn’t working (and also corrected the « Snpashot » incorrect spelling)
- Improve the way vertical synchronisation is done by the monitor
- Adjust « Standard size » display to 384×280 – Super cauldron or Prehistorik 2 now display correctly in full size
Here’s the release : REMOVE for copyright content. See v0.21 for more details
NOTE : For copyright reasons, this version is no longer available….
What’s new on this release (mainly focused on the FDC) :
- FDC rewritten from scratch. It support now bitstream format, such as Kryoflux RAW or Supercard Pro. Paradigm is also improved to support MFM format (dsk files are re-converted into MFM format). This will offer a true support for complex disk and protection format. For example, overlap protection (« Reussir ») is passed with scp or kryoflux disks.
- EDSK handling also rewritten from scratch. It add a new interpolation, to rebuild the original MFM track. Overlap and iterlaced sector are handled.
- IPF and CT-RAW files supported through the CAPSLib 5.1 (included )
- Current disk can be saved as SuperCard Pro file
- LED colors can be configured through config file
- Insert blank disk DATA / VENDOR added
- Scanlines are enabled if ‘=1′ in the Sugarbox.ini (more logical !)
- B drive support
- Current sector display added
- « About » updated (at last !)
- F3 = toggle 100% / MAX
- Fix a little bug in sound bar, that prevent putting it near 0
- Now working (this is not a complete list !) :
- »The demo » music loader
- Unique Megademo
- »Reussir »… disks (as EDSK with overlapped sector, or SCP, or Kryoflux…)
No release planned, as I am working hard on a complete rewritten disk module. It will support MFM bit flux like Kryoflux or Supercard Pro format, and will convert DSK/EDSK to this MFM flux. With this, every protected games should work correctly (if the dump is correct).
As today, weird protection involving size 6 sector are correct (« Reussir » educational suite), but the whole thing need more testing and cleaning. Also, DSK and EDSK support have to be reintroduced.
Some more news soon…
Sugarbox v0.18 is out now….
Not a really long log this time, as I mainly focus on removing inappropriate behaviours from the CRTC 1, which seems to run almost everything, as far as I tested (even if I think it’s not really perfect).
Here is the log :
- CRTC 1 : Rewrite almost all code. Now run correctly most of the demo (send me a link to incorrect ones !)
- CRTC 1 : HSync overflow fix
- Gate Array : Add a fix the change the way the colors are displayed by gate array. Seems to fix incorrect display in some demos
- General : Snaphshot files (SNA) can be loaded/Saved. Quickload/save have also been added.
- General fix : Screenshot are not taken twice, and are real PNG files (no JPEG)
- General fix : Settings and pathes are no longer bugged
- General fix : Sound driver no longer crash (sometime) when the application ends