Please install any ZX emulator (ZX SPIN, REALSPECTRUM, SPECTACULATOR, X128, EMUZWIN, FUSE...) and test your game in ZX128 mode. You don't need real hardware.
All fast code must be in fast ram or fast pages. Page 7 can be set in high memory area, but routines from page 7 move to any other fast ram.
INFO ABOUT REAL ZX SPECTRUM versus RUSSIAN SOFTWARE:
http://zx.pk.ru/showthread.php?t=8656&highlight=raining
http://zx.pk.ru/showthread.php?t=7427&highlight=raining
http://zx.pk.ru/showthread.php?t=8300&highlight=raining
Последний раз редактировалось VELESOFT; 12.08.2009 в 03:57.
OK. I write easy document about making compatible software.
Your life is REAL. Change it UNREAL!
я говорю про общий случай. не стоит при разработке движка привязываться к конкретному лабиринту. а на случай зацикливания в каждой комнате предусмотреть место респавна.
Your life is REAL. Change it UNREAL!
WRITING COMPATIBLE SOFTWARE FOR RUSSIAN ZX CLONES AND ORIGINAL ZX SPECTRUM
Critical points on ZX Spectrum machines:
1) register I must be set in range #80 - #BF only (screen raining elimination). Reg.I can't be modified if ULA show screen data (memory is slow/contended and if I will set to "slow value" then ZX screen will rain)
- it's screen raining effect on real ZX Spectrum 128:
IM2 table can be also in ZX rom, but I=#38/#39/#3A will not work on +2A/+3. This computers use modified 48rom. Only I=#3B can be used on all ZX models with 48rom.
2) IM2 table length must be full 257 bytes (work on computers with unstable floating bus)
3) if any code in adress #4000-#7FFF or #C000-#FFFF work too slow, can be moved to any fast 128kB page or to area #8000-#BFFF
4) if your software use very often operations with stack, please move SP to fast memory
5) ZX Spectrum(128/+2/+2A/+3) use contended (slow) memory, but aftear interrupt is all memory fast. (INTERRUPT -> circa 14300 CPU tacts is all memory fast, next circa 43800 CPU tacts is videoram memory and all slow pages contended with ULA(slow-down), all next frame time is all memory fast.
6) if your IM2 code (keyboard controll, mouse controll, AY sound ...) will shorter than 14300 CPU tacts, then is possible move this code to any slow memory (is fast after interrupt)
7) original ZX Spectrum not use BETA-DISC interface, please use standard BASIC loaders. This software will easy portable to TAP,TZX,TRD,MBD,D80,MGT and DSK formats.
8) newer use reading from ports #7FFD or #1FFD. This ports on russian ZX clone ZS SCORPION switch ON/OFF turbo 7MHz, but real ZX Spectrum can reset.
ZX SPECTRUM - MODELS
Russian games/demos designed for ZX clones run on original ZX128 models with different speed and can often crash.
More ZX clones use fast access to contended(with ULA/videoram) memory. Original ZX Spectrum models use slow access to contended memory(ULA slow-down CPU).
ZX Spectrum 128K / +2(grey)
- 228 Tacts per scanline
- 311 lines per frame
- 63 lines before TV picture
- 70908 Tacts per frame
- Pages 1,3,5,7 are slow (but only when displaying screen)
- if register I is set to point to slow ram, computer gets snow on screen and may crash.
- port #FF works
- out (#FD),rampage works as on pentagon
adress space on original ZX128/+2(grey model):
#0000-#3FFF = zx rom (fast memory)
#4000-#7FFF = videoram 1 (slow memory contended with ula)
#8000-#BFFF = fast memory
#C000-#FFFF = memory paging area (pages 0,2,4,6 = fast / pages 1,3,5,7 = slow)
ZX Spectrum 128+2A / +3
- 228 Tacts per scanline
- 311 lines per frame
- 63 lines before TV picture
- 70908 Tacts per frame
- Pages 4,5,6,7 are slow (but only when displaying screen)
- No problem with I pointing to slow ram
- port #FF doesn't work
- must use out on #7ffd or out (#FD),rampage with 6th bit set (as on scorpion)
- Has faster slow ram than ZX 128K / +2
adress space on original ZX128+2A/+3:
#0000-#3FFF = zx rom (fast memory)
#4000-#7FFF = videoram 1 (slow memory contended with ula)
#8000-#BFFF = fast memory
#C000-#FFFF = memory paging area (pages 0,1,2,3 = fast / pages 4,5,6,7 = slow)
ZX Spectrum +2A/+3 use different slow memory pages than original ZX128/+2 !!!
More russian games/demos can run on different ZX models if you rewrite only numbers of memory pages on instructions OUT (?),A (OUT #7FFD,xx). This is easy way for best compatibility.
Parallel using controll via KEMPSTON MOUSE and KEMPSTON JOYSTICK is impossible on real hardware. Original kempston mouse use uncomplette port adressation and collide with some kempston joystick interfaces.(joy interface detect often only A5=0...). Please use menu with select controll.
links:
http://zx.pk.ru/showpost.php?p=1659&postcount=10
http://zx.pk.ru/showthread.php?t=8656&highlight=raining
http://zx.pk.ru/showthread.php?t=7427&highlight=raining
IM2 table in ZX 48 rom:
http://www.worldofspectrum.org/forum...5&postcount=19
Последний раз редактировалось VELESOFT; 13.08.2009 в 15:22.
Последний раз редактировалось Lethargeek; 13.08.2009 в 21:01.
Прихожу без разрешения, сею смерть и разрушение...
на счет места респавна - попробуй в оригинале спускаясь с первого экрана нажимать кнопку смены уровня. гарантированно попадешь вниз через экран. спускаешься по несуществущей веревке, разбиваешься, и появляешся не на веревке (последнее положение) а на тведом полу
Your life is REAL. Change it UNREAL!
Я пишу, как НАДО сделать "в общем случае", а не как сделано
Возможно, попадание на другой этаж "не по лестнице" вообще не запоминается
И по умолчанию - воскресение просто в "центре"
Прихожу без разрешения, сею смерть и разрушение...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)