 |
retrodev forum - where time stood still -
|
| View previous topic :: View next topic |
| Author |
Message |
rlyeh
 cheater admin
Level 4-1

Joined: 01 Oct 2004 Posts: 219
|
Posted: Sun Jan 09, 2005 10:41 pm Post subject: All about fZX32... |
|
|
Last official & documented build: X-Mas Edition, download it here (source code here)
Last build: f-day preview, download it here
- Name: fZX32, (c) 2004 rlyeh
- Latest version: 25/12/04 x-mas edition (public)
- Emulated platform: ZX Spectrum (8 bits)
- Based on: ASpectrum by Santiago Romero and others, FUSE by Philip Kendall and others, X128 by James McKay and others, Caprice by Ulrich Doewich, AY2SNA by Sergey Bulba.
- What's fZX32?
- Installing fZX32
- Using fZX32
- Credits
- Features
- To do
- History
- Known bugs
- Screenshots
- Source code
- Frequently Asked Questions (FAQ)
- MiniGuide: Meeting the ZX. Models around the world
- MiniGuide: Using the ZX. How-to's
- MiniGuide: Discovering the ZX. Its best games
- Resources: ROMs,tapes,disks,tools,game reviews,scanned magazines,scene websites...
What's fZX32?
fZX32 is a portable Spectrum emulator which uses portions of code from the following emulators/players:
- ASpectrum, a portable Spectrum computer emulator coded by Santiago Romero and others.
- FUSE, a Spectrum computer emulator for UNIX coded by Philip Kendall and others.
- X128, a Spectrum computer emulator for DOS coded by James McKay and others.
- Caprice, a portable CPC computer emulator coded by Ulrich Doewich.
- AY2SNA, a generic music converter coded by Sergey Bulba.
fZX32 uses the following portions of code:
- ASpectrum : Z80 emulation, spectrum palette, beeper, and keyboard emulation
.sna48, .sp and preliminar .tzx fileformat support
- FUSE : AY-3-8912 and beeper emulation.
- Caprice : NEC pd765A floppy disk controller emulation.
- X128 : .tap file loading, .tap trap rom loading & .z80 decompression routine
- AY2SNA : .ay to .sna file conversion.
everything else was coded from scratch by rlyeh. However, fZX32 would not exist
without the talented efforts of Santiago, Philip, James and Ulrich. Thanks you very much!
Installing fZX32
Put your fZX32.FXE into GPMM\
Put your files uncompressed or preferredly zipped into GPMM\ZX
Note: Only first file from ZIP will be used at the moment. It will be fixed soon.
Note: I suggest using *ONLY* zipped files. It improves speed at loading and
minimizes SMC space usage.
Using fZX32
PAD is mapped as kempston+cursor+fuller, sinclair1 or sinclair2 joysticks or OPAQM keys.
A fires the joystick button.
B fires the joystick button and SPACE (secondary fire in many games).
START does nothing yet (auto-start game feature disabled atm).
SELECT launches the virtual keyboard.
Press L+R to choose options while playing.
To enable chatboard support just plug the Ericsson chatboard before running the emulator.
The keys are mapped in a standard way but the following ones:
<- is backspace (simulated shift + 0)
. is enter
<is> is symbol shift (on/off state)
<>< is E mode (one key state)
<>> is E mode (one key state)
Note that due to chatboard internals, you cannot press 2 keys simultaneously.
So:
If you want to type a capitalized letter, you have to press <, then type anything, then <If>, then type anything, then >.
If you want to type an extended command in 48 mode, you have to press <>< or <>>, then type letter.
Credits
I'd like to shake energically my hands to...
Javier Chocano and kotah: for some contended memory help. thx! :)
Mirko: for the chatboard & gp_setframebuffer source code. thx! :)
Reesy: for the 4-split bug fix and some triple buffering ideas.
Also for the DrZ80 source codes which I will use in fMAME32.
And for the good and friendly mails :)
enkonsierto, Pelayo, DSkywalk, ref__, Antiriad, Hexdump, vnomis,
DJ_Syto, K-teto, Vimacs, Mr_spiv : for testing the previous betas.
Nigelibro, for donating me an Ericcson chatboard. thanks man :)
Santiago, Philip, James and Ulrich, for your Spectrum/CPC emulators.
Sergey Bulba, for his nice ay2sna tool converter source code.
Antiriad, for his cool icon and his marvellous splash screen :-)
Jean-loup Gailly and Mark Adler, for the ZLIB library.
TOSEC Team, for the ZX Spectrum database files.
Mr_Spiv, for the B2FXEC tool.
_Anarchy_, [hando], Guywfakes, EvilDragon and all the whole boards staff,
for supporting my emus so much at gp32 sites.
anything else is from rlyeh.
Features
- Amazing speed! All games play frameskip 0 @ 133 mhz with contended memory and sound emulation,
- No compatibility bugs found (tested more than 800 games),
- Emulation of ZX 16, ZX 48, ZX 128, ZX +2, ZX +2A and ZX +3 spectrum models.
- Full working animated savestates and loadstates,
- Full SCR/ROM/BIN/TAP/DSK/SNA v48/SNA v128/SP/Z80 v1.45/Z80 v2.01/Z80 v3.0/ZIP loading, (packed files using ZLib)
- Full Kempston/I2L, Cursor/Protek/AGP, fuller, Sinclair1/InterfaceII, Sinclair 2 joystick emulation.
- Fuller audio box emulation,
- Accurate border emulation,
- AY-3-8912 and beeper sound emulation,
- NEC PD765A floppy disk controller emulation,
- Interface II cartidge emulation,
- Mikro-plus cartridge emulation (Shadow of the Unicorn),
- Gray monitor emulation,
- Instant tape loading,
- Tone pilot generation and real tape noise when real mode tape loading,
- Preliminary TZX tape support (only block #10 tapes),
- Preliminary contended memory emulation (multicolor effects),
- Preliminary floating bus emulation,
- Virtual Keyboard suppoprt,
- Ericcson chatboard support,
- Crystal AY sound rendering output, using CHN's library (thx dude),
- Saving screenshots to PNG format, using my own library,
- 35,476 CRC32s file names detection using database by TOSEC team (thx guys!),
- Improved fileselector (slower scrolling, ability to delete roms, no-roms/only-4-roms bug fixed)
- Fast fileselector (able to scan some hundred zipped roms per minute),
To do
- crystal 48k beeper sound emulation (wait for the next release),
- adding betadisk interface and some russian spectrum models,
- adding gunstick
- adding kempston amx
- adding more missing options
- adding RF multiplayer
- fixing known bugs as usual :-)
History
| Code: |
25/DIC/04
OUT: fZX32 first release (public)
24/DIC/04
NEW: load & save states support
22/DIC/04
NEW: GP32 port: featuring triple buffering (smooth scrolling)
FIX: GP32 port: changed virtual keyboard layout
FIX: GP32 port: cosmetic changes
21/DIC/04
FIX: done some changes to the beeper sound core
FIX: GP32 port: fileselector changed a bit (slower, no interferences, ability to delete roms, etc...)
20/DIC/04
NEW: .DSK file format support
NEW: added +2A and +3 support to .Z80 file format
FIX: improved .Z80 compatibility (odd 128/+2/16 modes at header)
FIX: improved quality on beeper sound (still needing some work tho)
FIX: fixed +2 instant tape loading
FIX: fixed gray scale palette
FIX: fixed some minor cosmetic changes
FIX: reduced half the length of tone pilots emulation
18/DIC/04
NEW: added gray palette emulation
FIX: fixed some incompatibilities after adding +2A/+3 ports decoding support (Fairlight I & II)
17/DIC/04
NEW: ZX Spectrum +2A support
NEW: ZX Spectrum +3 support
30/NOV/04
NEW: tape verifying code added
FIX: changed trap rom loading from 0x56c to 0x5f1 (thanks to Javier Chocano for the tip)
FIX: skipped unused bytes of data when reading (Gregory loses his clock, Bestial Warrior, Lord of the Rings...)
29/NOV/04
FIX: fixed real tape loading with 128 timings
FIX: trap rom loading code cleaned up
FIX: higher priority in PSG/128 ports when decoding (fixes Golden Axe 128 music) (thx enkonsierto! :)
25/NOV/04
NEW: GP32 port: Ericsson chatboard support (thanks Mr_Spiv, NigelBrown & Mirko!)
24/NOV/04
NEW: database of 35,476 files (using TOSEC)
23/NOV/04
FIX: fixed bit 3 when outing to port 254 (Cobra's Arc synthesized speech)
FIX: fixed multiloading TAP games (Pang, Space Harrier 2, Prince of Persia...)
17/NOV/04
NEW: real speed tape loading option by tone emulation (pilot,sync1,sync2,data,pause)
NEW: enabled tape loading noise
NEW: enabled tape saving noise
16/NOV/04
NEW: preliminar TZX support (standard block 10)
15/NOV/04
FIX: improved contended memory emulation (Action Force 2, Agent X-2...)
FIX: fixed border timing again (Hundra had lost it)
14/NOV/04
FIX: fixed port decoding priorities (OutRun 128k, Fairlight I/II 128k music...)
FIX: fixed PSG registers while loading .Z80 files (fixed my Match Day 2 snapshot)
13/NOV/04
NEW: rewritten video display emulation (faster)
NEW: emulation displayed octet per octet
FIX: fixed floating bus emulation for spectrum 48
11/NOV/04
NEW: floating bus emulation
10/NOV/04
NEW: rewritten memory routines to support contended spectrum128 pages
NEW: rewritten display routines to support contended memory
FIX: fixed contended memory timings for spectrum 48
FIX: fixed contended memory timings for spectrum 128
FIX: fixed Uridium logo
09/NOV/04
NEW: preliminary contended memory emulation
NEW: preliminary AY player support
FIX: fixed HyperSports logo
FIX: fixed Boovie music
08/NOV/04
NEW: added 128 USR 0 mode for tape loading
FIX: switched back to line per line emulation
(fixed transparencies in Bc's Quest, G'n'G, Green Beret, Gryzor, Nebulus...)
FIX: fixed silly border issue
07/NOV/04
FIX: fixed trap rom loading when interface II/mikro-plus cartridges were mapped
FIX: added inning AY port to get working some music equalizers at some demos (thanks ref_ :-)
06/NOV/04
FIX: some optizations done, now working 100% @ 132 mhz/fskip 0
FIX: removed vsync until incoming frame limiter
FIX: .tap 128 mode now uses USR 0
(Dynamite Dan 2, Tir Na Nog, Dun Darach... garbage removed)
(Scuba Dive, Rambo, Pyjamarama, Skool Daze, DeathChase, Equinox... fixed)
05/NOV/04
NEW: fuller audio box emulation, no speech-chip though (Invasion of the body snatchers!)
FIX: fixed left/right controls in fuller joystick emulation (Invasion of the body snatchers!)
FIX: fixed silly graphics attribute bug (The Way of the Exploding Fist, Enduro Racer...)
FIX: fixed spectrum 16 bug which featured 32k RAM instead of 16k.
04/NOV/04
NEW: spectrum +2 support
NEW: interface II cartridges support (.rom/.bin)
NEW: mikro-plus support (Shadow of the unicorn)
03/NOV/04
NEW: changed GI AY-3-8912 & beeper sound core
NEW: changed sound routines to use DMA
02/NOV/04
NEW: fast border emulation (Hundra, Midnight Resistance trainer, tape loading/saving...)
FIX: masked 0x1ffd port (Fairlight 1 & 2 fixed)
FIX: changed rom trap loading routines (Barbarian fixed (palace))
FIX: rewritten .tap routines (Solomon's key fixed)
FIX: rewritten .z80 routines (Army moves, Basket Master, Rex 2... fixed)
FIX: tape always on (fixed my Donkey Kong snapshot)
28/NOV/04
NEW: spectrum 16k support
NEW: virtual keyboard support
27/OCT/04
NEW: spectrum 128k support
NEW: preliminar AY 3-8912 sound core
NEW: support for RAM & ROM paginated models (RAM: 16 pages, ROM: 4 pages)
NEW: .tap 128k/48k support
NEW: .z80 128k support
NEW: .sna 128k support
NEW: .scr support
25/OCT/04
NEW: .z80 (v1,v2,v3) support
24/OCT/04
NEW: preliminar beeper sound support
FIX: fixed SNA bug as told in CSS FAQ
FIX: rewritten video emulation
FIX: display interferences removed
23/OCT/04
NEW: kempston/i2l support
NEW: cursor/protek/agp support
NEW: fuller support
NEW: sinclair1/sinclair2/interfaceII support
NEW: .sp 48k support
NEW: .sna 48k support
22/OCT/04
FIX: rewritten file functions
NEW: emulation displayed by frame (fast but no border emulation)
NEW: source code cleaned up
NEW: most functions removed
NEW: debugger removed
21/OCT/04
NEW: started today. ported ASpectrum to GP32 (slow, display interferences ...)
NEW: spectrum 48k support
|
Known bugs
Visit the fZX32 bug tracker
Screenshots
fZX32 intro screenshot
fZX32 ingame screenshots
Source code
You can download the fZX32 source code below.
F.A.Q.
Q. 48k beeper has crackling noises but AY is crystal. Any idea?
A. Yes, i'm working on that beeper. Stay tuned.
Q. When I pop up the virtual keyboard there are some crackling noises. Is it ok?
A. Yes, i'm working on that too. Stay tuned.
Q. Some tapes refuse to work. How do I fix it?
A. Try to load them in 48k mode. That's a common Spectrum issue (not my fault).
Q. How do I enable Ericcson chatboard?
A. Plug it before running fZX32.
MiniGuide: Meeting the ZX. Models around the world
to be written...
MiniGuide: Using the ZX. How-to's
to be written...
MiniGuide: Discovering the ZX. Its best games
to be written...
Resources
Everything about Spectrum at WOS
Any Spectrum game at WOS
PD roms at Kojote's site
more to come...
Last edited by rlyeh on Wed Oct 24, 2007 11:13 am; edited 4 times in total |
|
| Back to top |
|
 |
DaveC
approved betatester
Level 2-1

Joined: 13 Oct 2004 Posts: 25
|
Posted: Fri Jan 28, 2005 4:35 am Post subject: |
|
|
Hi Rlyeh,
I was trumpeting the features of your great Speccy emu and someone pointed out to me that they thought the one on the GBA had some better features:
" fZX on GP32 is very nice but it isn't as polished or user friendly as ZX Advance, However, it does not allow the user to map keys to buttons (your game has to support a joystick) and it does not use all the available GP32 control inputs"
"GBA - ZX Advance has slightly better sound emulation, an excellent key mapping system using all the GBA buttons, and user friendly options coming out of it's ears as well as an extremely swish looking menu system"
I have never used ZX ADV but I was wondering if some of these will make it into the GP32 version? I think the most important one that many talk of is the user definable button mapping, and ability to use all inputs. If these issues were fixed then the GBA guys would have nothing to say against fZX
Anyway thanks for the great emu. |
|
| Back to top |
|
 |
rlyeh
 cheater admin
Level 4-1

Joined: 01 Oct 2004 Posts: 219
|
Posted: Sun Jan 30, 2005 8:01 pm Post subject: |
|
|
| DaveC wrote: | Hi Rlyeh,
* allow the user to map keys to buttons (your game has to support a joystick) and it does not use all the available GP32 control inputs"
* improve better sound emulation and GUI
|
thanks for the suggestions |
|
| Back to top |
|
 |
psj3809
approved betatester
Level 1-1

Joined: 06 Oct 2004 Posts: 24 Location: England
|
Posted: Sun Jan 30, 2005 8:19 pm Post subject: |
|
|
I was a user of the Spectrum in the 80's, regularly use Speccy games on emulators and i've got 250 games on my memory card for the GP32.
The Speccy emulator is brilliant, yes you could perhaps try to map keys for games but i know that 99% of Spectrum games allow you to either play with Kempston Joystick (default for zx32) or you can set it up on the options for sinclair 1 (keys 12345), sinclair 2 (67890) (Or called Interface II or Protek) or QA OP Space where you can simply redefine the keys on a game to these ones.
These options allow 99% of all games to be controlled properly. Some games from the first year or two of the Spectrum wont allow you to re-define the keys etc but these games arent the best.
If you could redefine the keys on the GP32 thats cool but already because of the options available practically every single game on the Speccy lets you either use Interface II, Kempston or to define the keys as QAOP Space. |
|
| Back to top |
|
 |
WhizzBang
Joined: 13 Oct 2004 Posts: 8
|
Posted: Thu Feb 03, 2005 7:45 pm Post subject: |
|
|
I know purists would disagree but I would love to see 256 colour implementation to enhance the graphics.
256 colour is an emulation enhancement available on Spec256 and Emuzwin that adds data files to a spectrum game image to produce 256 colour graphics with no colour clash.
Head Over Heals was recently converted to this format and it looks stunning, see here:
http://www.arjun.150m.com/images/HeadOverHeels256-game.png
I know it is probably a tall order to implement something like this but I thought it was worth mentioning.
Also, if you do decide to implement some kind of key mapping, you should check out the ZX Advance game pack as this contains a .txt file with mappings already created for hundreds of games which are included in the pack all named correctly for the mapping. The GBA has the same number of inputs as the GP32 so it could be useful. |
|
| Back to top |
|
 |
Antiriad
approved betatester
Joined: 03 Oct 2004 Posts: 8
|
Posted: Fri Feb 04, 2005 12:53 pm Post subject: |
|
|
I dont see anything wrong with the GUI, its Rlyeh's strengths that he has a good GUI.
Yes the beeper emulation could be better but he's stated in numerous places that he knows that and will work to improve it.
Key mapping is a nice suggestion (Speccyal has it) but as psj said, most games dont need it due to the fact fzx32 emulates all the major Spectrum joysticks.
DaveC, I cant help but think that whoever told you these things was being something of a GBA advocate... |
|
| Back to top |
|
 |
WhizzBang
Joined: 13 Oct 2004 Posts: 8
|
Posted: Fri Feb 04, 2005 9:29 pm Post subject: |
|
|
Well, it was me that Dave C was quoting, although he left out the points I made for fZXs advantages over ZX Advance (tape file and chatboard support, correct resolution and multiple saves). I was just trying to say that if you are happy with the resolution and limited saves, there is no reason to upgrade to a GP32 if you are just after Spectrum and NES emulation (the thread was started by someone who was talking about upgrading to a better machine for better Spectrum emulation since ZXAdvance isn't being worked on anymore).
One of the nice things about ZX Advance is that because there is a pack available with loads of Z80 images and key mappings set up, it is an easy way to get in to Spectrum emulation for anyone who hasn't ever used a Spectrum before. You just choose your game, press Start, and you are away.
fZX32 is my chosen emulator for Spectrum games these days, but in an ideal world I would like some kind of cross between ZX Advance and fZX32. |
|
| Back to top |
|
 |
rlyeh
 cheater admin
Level 4-1

Joined: 01 Oct 2004 Posts: 219
|
Posted: Sat Feb 05, 2005 9:33 pm Post subject: |
|
|
well fZX32 has its own advantages... apart from what zxadvance does it also does 128k, +2, +2a and +3 emulation, dsk, tap and tzx file formats, ay music, contended memory emulation... and the emulator is really quick to use too (you choose the game, push a bottom and its there! have you typed ever LOAD"" on it maybe? dont think so :)
if i'd have to choose one i'd choose fZX32 but my opinion may be not fully objetive anyways O:-) |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Avatars based on MAME icons by MaMu_ and some others by Rodimus.
GFX/HTML forum design by Antiriad. PHP/tpl modifications by rlyeh.
Powered by phpBB © 2001, 2002 phpBB Group
|