News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_DanyPPC

Eliminator (Hewson) on Amstrad CPC 6128+

Started by DanyPPC, 14:45, 15 December 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

dragon

#25

That is the teory explanation copy paste from grimware site:






When no device is driving the bus, it's lines are left like disconnected, floating in the air, therefore no real value is fixed on the bus. Usually, no device should try to read the bus in such a state because there's actually nothing to read on it. Nevertheless, if you try do so, for example from BASIC with a PRINT INP(&FFFF), a value is returned. So where this value comes from?
In order to register a 0 on a line, current has to be actively sunk out. If the bus is read while all devices are tri-stated, nothing sinks the current, thus &FF is read. But the more stuff is connected to the bus, the more stray capacitance gets added to the lines, the slower the lines will be able to change their state. For example, if the bus contains &00 just before being left un-driven, it will take some time before the stray capacitance rise to 1 again. If the bus is read in the meantime, the voltage won't cross the TTL high level and a zero will be read.
On the Amstrad, there's only once case where you have to deal with this floating bus value, which is when you want to use the Z80 vectorized interrupts mode (See the Z80 IM2 documentation), and that's all.
The floating value on the databus of a bare CPC is usually &FF, but may also even changes periodically (especially, for some unknown reason at the moment, on CPCs fitted with CRTCtype 1). On a bare Amstrad Plus, this is usually &78 (no idea why it's not &FF, I bet there's some ASIC mystery involved here).




Any program relying on a floating bus value prediction WILL FAIL. Any programmer doing such crap will be flamed all over the intarweb and fucked in mighty hardware scrollers! I warned you!

Phantomz

Quote from: Shaun M. Neary on 23:23, 17 December 17
Nice work, Dragon!  :)


And to Phantomz as well to make it for the GX4000

I hadn't made it GX4000 friendly, it was now plus friendly with a Trainer and in cpr format for quick easy loading.  ;)

I've looked into making this GX4000 friendly.

I've made the Trainer GX4000 friendly, it is now also in English, I've removed the level code list as unsure how to get these changed at the moment.

However the game is fully playable from start to finish including the highscore table, therefore @remax may wish to add this game.  ;D

The GX4000 version is now joypad only, pause the game with joypad button 2, joypad button 1 or 2 to unpause, you can also press joypad button 2 to turn music on or off.

Whilst paused you can press the console pause button to quit game, this only works in a normal game with no trainer cheat option on.

Hopefully the codes can be sorted at a later time, however like I said the game is fully playable on the GX4000 now.  ;D

dragon

Codes? I think i view it in plain text right before the subrutine

Phantomz

Quote from: dragon on 13:24, 18 December 17
Codes? I think i view it in plain text right before the subrutine

You type them on the main screen to load levels.

02 = BLOSP
03 = ASDEL
04 = XPLRT
05 = GLPWM
06 = EOCKQ
07 = LFPRT
08 = WMCPR
09 = SPQNJ
10 = ZPEML
11 = ELVPQ
12 = CPEMF
13 = APXYQ
14 = PWVAR

In the game it show as " BLOSÐASDEÌXPLRÔGLPWÍEOCKÑLFPRÔWMCPÒSPQNÊZPEMÌELVPÑCPEMÆAPXYÑPWVAÒ ".

The first four letters are readable with the fifth being in code, for example P = D0, R = D2, T= D4, G = C7, F = C6.

I can change the fifth coded letter ok, but if I change the first four the code will not work, we need to change these code to some that we can enter with the game pad/s.  ;)

dragon

#29
I think when you enter a letter in &5688:

He read buffer keyboard code: in form FF FF FF FF FF FF FF FF FF FF
                                                              0  1   2  3   4  5   6  7  8   9  ->keyboard line.

Then, he read compare  these line/key in ram from &569d-&56cf

ram content:

08 DF 06 BF 07 BF 07 DF 07 FB 06 DF 06 EF 05 EF 04 F7 05 DF 04 DF 04 EF 04 BF 05 BF 04 FB 03 F7 08 F7 06 FB 07 EF 06 F7 05 FB 06 7F 07 F7 07 7F 05 F7 08 7F

So you need select and change the  letters to equivalent in joystick.

09 df ->button 2 =41 in pasword zone
09 f7 ->right=42 in pasword zone
09 fb ->left=43 in pasword zone
09 fe->up=44 in pasword zone
09 fd->down=45 in pasword zone

And then put the codes in the pasword zone. (take mind the encripted) number+&80. they should work.

pelrun

Just FYI, that's not encryption, the high bit is set as an end-of-string marker. The firmware uses the exact same scheme for RSX name tables.

Nich

Quote from: Phantomz on 17:58, 17 December 17
Nice work @dragon  8)

I've applied your fix and also the level 12 bug fix to the XOR version, I did this so we have a version with a Trainer and also so that we can have it in cpr format.  ;D

I have patched @cngsoft's crack of Eliminator and uploaded it to NVG. However I don't have a real Plus machine to test it. :(

Thanks very much for fixing this bug, @dragon!

DanyPPC

Hello Nich, i tested successfully this new patched version on my CPC 464+ 6128+ and MiST with FPGA Amstrad CPC 6128 Core !!!


Has this version the gxf bug patched on level 12 ?


Thank you very much.
CPC 464 with USB Floppy Emulator / CPC 464+ with USB Floppy Emulator / CPC 6128+ with C4CPC and Gotek HxC USB Drive Emulator

Nich

Quote from: DanyPPC on 18:31, 23 December 17
Hello Nich, i tested successfully this new patched version on my CPC 464+ 6128+ and MiST with FPGA Amstrad CPC 6128 Core !!!

Great news!

QuoteHas this version the gxf bug patched on level 12 ?

Yes, the graphical glitch on level 12 has been fixed as well. :)

DanyPPC

Very well, tested level 12, gfx OK !


;)
CPC 464 with USB Floppy Emulator / CPC 464+ with USB Floppy Emulator / CPC 6128+ with C4CPC and Gotek HxC USB Drive Emulator

dragon

#35
Quote from: Nich on 17:02, 23 December 17
I have patched @cngsoft's crack of Eliminator and uploaded it to NVG. However I don't have a real Plus machine to test it. :(

Thanks very much for fixing this bug, @dragon!


I don't think is a bug really. Is programed to made a reset if he detect  the bus is not empty in certain cases. I don't know the reason maybe antipiracy, or maybe can be something that during development.They have some device attached in the bus and when he send some signal to the bus they can be force jump to 0000, (but with another rom loaded externally in 0000)  how knows. I don't know if originally the game work with a cpc with crtc 1.

Phantomz

Quote from: Nich on 17:02, 23 December 17
I have patched @cngsoft's crack of Eliminator and uploaded it to NVG. However I don't have a real Plus machine to test it. :(

Thanks very much for fixing this bug, @dragon!

Thanks for this @Nich , is it possible to make the Trainer GX4000 friendly, Mainly the " First Stage " option, maybe make it so can choose with the dpad instead of needing to press a key.

The rest of the options can have 1 for Yes, 2 for No.

I know @dragon does this for level select's on XOR games.  ;)

Powered by SMFPacks Menu Editor Mod