retrodev forum Forum Index retrodev forum
- where time stood still -
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

All about fZX32...

 
Post new topic   Reply to topic    retrodev forum Forum Index -> fZX32
View previous topic :: View next topic  
Author Message
rlyeh

cheater admin

Level 4-1
cheater admin<br>

Joined: 01 Oct 2004
Posts: 219

PostPosted: Sun Jan 09, 2005 10:41 pm    Post subject: All about fZX32... Reply with quote



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
View user's profile Send private message
DaveC

approved betatester

Level 2-1
approved betatester<br>

Joined: 13 Oct 2004
Posts: 25

PostPosted: Fri Jan 28, 2005 4:35 am    Post subject: Reply with quote

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 Wink

Anyway thanks for the great emu.
Back to top
View user's profile Send private message
rlyeh

cheater admin

Level 4-1
cheater admin<br>

Joined: 01 Oct 2004
Posts: 219

PostPosted: Sun Jan 30, 2005 8:01 pm    Post subject: Reply with quote

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
View user's profile Send private message
psj3809

approved betatester

Level 1-1
approved betatester<br>

Joined: 06 Oct 2004
Posts: 24
Location: England

PostPosted: Sun Jan 30, 2005 8:19 pm    Post subject: Reply with quote

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
View user's profile Send private message MSN Messenger
WhizzBang



Joined: 13 Oct 2004
Posts: 8

PostPosted: Thu Feb 03, 2005 7:45 pm    Post subject: Reply with quote

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
View user's profile Send private message
Antiriad

approved betatester


Joined: 03 Oct 2004
Posts: 8

PostPosted: Fri Feb 04, 2005 12:53 pm    Post subject: Reply with quote

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
View user's profile Send private message
WhizzBang



Joined: 13 Oct 2004
Posts: 8

PostPosted: Fri Feb 04, 2005 9:29 pm    Post subject: Reply with quote

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
View user's profile Send private message
rlyeh

cheater admin

Level 4-1
cheater admin<br>

Joined: 01 Oct 2004
Posts: 219

PostPosted: Sat Feb 05, 2005 9:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    retrodev forum Forum Index -> fZX32 All times are GMT
Page 1 of 1

 
Jump to:  
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