News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_XeNoMoRPH

Bomb Jack remake

Started by XeNoMoRPH, 07:36, 10 January 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GUNHED

#50
Quote from: abalore on 08:27, 20 January 23
Quote from: GUNHED on 13:50, 18 January 23After the stock CPC6128 it would be the same computer with ROM expansion (f.e. the M4 expansion sold over 1000 times!).

FYI , the M4 can run cartridge images.
Sure, and after every Cartridge-Run I do need to reinstall every ROM I use. Well, this is done quick with my ROManger - but still I do need to install FutureOS first. So honestly, the idea of running Carts is great for Gamers only, but not for Coders or who ever is using ROMs.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Anthony Flack

Targhan's code is impressive of course, but the AMSDOS file loader doesn't seem to have a corresponding save routine, and I think high score saving is the main reason I want to keep DOS open. I sure don't fancy doing a deep dive to figure it out myself, and I guess if it had more functions it would soon end up bigger than the firmware ram area anyway. 

So, firmware it is. 

Prodatron

Yes, I really recommend to save the firmware at #A500-#BFFF and don't use any proprietory solutions for accessing the FDC/disc drive. Today we have a lot of mass storage (SD card, USB, IDE) supporting DOS extensions like M4Board, SYMBiFACE III, UniDOS etc. It would be just great, if every new piece of software is compatible with these systems. For this you just save this area and that's it.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

abalore

You also can do things a lot simpler by forgetting about managing files and write data into disc sectors directly. For instance, you can reserve last sector in disc to save high scores.

GUNHED

Quote from: Prodatron on 02:23, 22 January 23Yes, I really recommend to save the firmware at #A500-#BFFF and don't use any proprietory solutions for accessing the FDC/disc drive. Today we have a lot of mass storage (SD card, USB, IDE) supporting DOS extensions like M4Board, SYMBiFACE III, UniDOS etc. It would be just great, if every new piece of software is compatible with these systems. For this you just save this area and that's it.
Exactly!  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Anthony Flack

Looking at the firmware manual for the first time ever (I remember it was famously out of print for the longest time - it would have been nice to have in the 1980s), that part is as simple as can be. Which makes sense I guess if it's essentially BASIC without its trousers on.

If I understand correctly, if you run a binary file directly, it deactivates all the ROMs and everything has to be re-initialised before you can use the drive again. But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.

Is there any reason not to do this? 

Nich

Quote from: Anthony Flack on 23:28, 22 January 23If I understand correctly, if you run a binary file directly, it deactivates all the ROMs and everything has to be re-initialised before you can use the drive again. But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.

Is there any reason not to do this?
Using a BASIC loader means there is one more file stored on the disc. :D

Prodatron

Quote from: Anthony Flack on 23:28, 22 January 23But if you load your code into memory and then call it from a small BASIC program, nothing is disturbed.
You are right.
For later:
There is even the possibility to put a binary directly behind the basic code into the same file, so you only have to load the little basic program and have the binary included as well.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Anthony Flack

All right - as I prod at the CRTC like a klutz, I have another compatibility question for those that know better:

On the bonus screen between stages, I want to bring in the sides of the border on the centre part of the screen. So to have a 32 character wide screen at the top, a 20 character wide screen in the middle, and back to a 32 character wide screen at the bottom.

Without doing any kind of rupture, I was messing around with just changing the values of R1 and R2 while the screen is drawing. Changing R1 is no problem, and pulls in the right hand side border. But changing R2 to centre the image is messing with HSYNC timings and changing it midscreen causes an interesting effect... which I guess anybody who's ever messed with R2 is well aware of. 



Now, this should actually be completely fine for what I want, because there will only be black space on the lines where the screen skews diagonally. My CPC monitor seems to be fine with displaying this as well.

But am I doing a bad thing that will mess up on LCD screens, or make Baby Jesus cry? If so, I will have to rethink my idea.

Axelay

I don't know about LCDs in general, but I did see this one video where the title screen on Sub Hunter (banging R2 for the wave effect) appeared to be messing up an OSSC.


Anthony Flack

Oh, you used the skewing behaviour as an effect? Nice.

I see what you mean with the OSSC there, but if that's the only problem that's surfaced after 11 years of Sub Hunter wiggling peoples' HSYNC, I guess it must be generally OK...

Anthony Flack

CRTC being tortured behind the scenes, before I hide it all under black ink. 


McArti0

You must FIRST change R0 to 63+(32-20)/2=69.

Waiting ONE line 69 NOPs or litle more.

Set R2 to R2-6

Set  R0 to 63

CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

McArti0

org #b941
int equ $+1
jp custom_int

org &a400
.custom_int
di
push bc
push af
ld bc,&bc00
out (c),c
ld bc,&bd00+63+6
out (c),c
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc01
out (c),c
ld bc,&bd00+20
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc02
out (c),c
ld bc,&bd00+36
out (c),c
ld bc,&bc00
out (c),c
ld bc,&bd00+63
out (c),c

push hl
ld hl,custom_int2
ld (int),HL
pop hl

pop af
pop bc
.end_custom_int
di
EX AF,AF'
JP C,#B978
JP #B945

.custom_int2
di
push bc
push af
ld bc,&bc00
out (c),c
ld bc,&bd00+63-6
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

ld bc,&bc01
out (c),c
ld bc,&bd00+32
out (c),c

nop:nop:nop:nop:nop:nop:nop:nop
nop:nop:nop:nop:nop:nop:nop:nop

nop:nop

ld bc,&bc02
out (c),c
ld bc,&bd00+42
out (c),c
ld bc,&bc00
out (c),c
ld bc,&bd00+63
out (c),c

push hl
ld hl,custom_int
ld (int),HL
pop hl

pop af
pop bc
.end_custom_int2
di
EX AF,AF'
JP C,#B978
JP #B945
CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

McArti0

A How this work  :P

CPC 6128, Whole 6128 and Only 6128, with .....
NewPAL v3 for use all 128kB RAM by CRTC as VRAM
TYPICAL :) TV Funai 22FL532/10 with VGA-RGB-in.

Anthony Flack

Quote from: McArti0 on 09:41, 18 March 23You must FIRST change R0 to 63+(32-20)/2=69.

Waiting ONE line 69 NOPs or litle more.

Set R2 to R2-6

Set  R0 to 63


I was wondering if there was a clean way. Those are blank lines anyway but I'll do it properly

Anthony Flack

Oh, I never got back to say, all done now: display is nice and tidy. Thanks for that McArti0

Anthony Flack


Gryzor

I was so good at this when I was a little one, hope I've got some skills left when this comes out... 

HAL6128

This is sooo great! Super good and cool Mode 1 graphics and animations.
Seems that's the movements are very precise. 
Well done! Great to see a progress and looking forward to the sound implementation.
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

TotO

Just yesterday, since a long time, I checked to see if any update. ;D
This version looks really great. Fantastic work in progress. Congratulation!

Now, it is a shame when the levels colour require to use orange instead of red.
May be an idea will be to have alternative background to the Egypt one?
(that anyway do not render well in mode 1)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Anthony Flack

No way would I ever remove the Egypt background. It's Bomb Jack!

TotO

I was sure about the answer. ;D
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Anthony Flack

For sure if you were doing something from scratch you could design the art specifically to look as good as possible on the CPC hardware. This is the opposite case, where the target is already decided and I just have to try to work with what is given. In some instances that has meant going to a fair bit of effort to imitate an effect that, on the original hardware, would have been really simple.

Prodatron

Fantastic! Great to see, that you nearly finished it!
Do you already have any idea how to implement the music and the sound fx?
Maybe using available tools like Arkos Tracker II or build it from scratch?

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Powered by SMFPacks Menu Editor Mod