Page 1 of 1

[SOLVED][creativision][cc65]CROSS CHASE: a universal 8 bit game/framework

Posted: Mon Feb 05, 2018 10:55 am
by Fabrizio Caruso
Hi everyone! Thanks for accepting me!

I am the developer of CROSS CHASE (https://github.com/Fabrizio-Caruso/CROSS-CHASE)
which is an 8 bit game that uses my 8 bit library/framework to write universal 8 bit games, i.e., games that run
on any 8-bit computer/console/handheld.

The game is written in C and use multiple cross-compilers (CC65, ZSDCC, SCCZ80, CMOC, WINCMOC, etc.) to compile the game for 100 systems/configurations. The SAME game CODE is used for ALL 8-bit systems.

I am developping the game for ANY 8 bit computer/console/handheld including both common (all Commodore, Sinclair, MSX, Atari, etc.)
and very rare systems (like the Galaksija, the CCE MC-1000, the Robotron Z 9001).
The game also runs on the Creativision but I am having a problem with roms bigger than 8k. Ideally I would like to use 16k (or 32k).
For the Creativision I am using CC65.
If I set the linker to use anything different than $A000-$BFFF, I get a rom that does not run.
Remark: I know the memory map. I know $8000-$BFFF should be possible but CC65 will create a rom file that won't even start
if I set $8000-$BFFF.
What do I need to do?

This is the only current working cfg:

Code: Select all

SYMBOLS {
    __STACKSIZE__: type = weak, value = $0080;
}
MEMORY {
    ZP:  file = "", define = yes, start = $0020, size = $00E0;
    RAM: file = "", define = yes, start = $01FA, size = $0206;
	ROM: file = %O, define = yes, start = $A000, size = $2000, fill = yes, fillval = $FF;
}
SEGMENTS {
    ZEROPAGE: load = ZP,             type = zp;
    ZP:       load = ZP,             type = zp,                optional = yes;
    VECTORS:  load = ROM, run = RAM, type = rw,  define = yes;
    DATA:     load = ROM, run = RAM, type = rw,  define = yes,                 start = $0204;
    BSS:      load = RAM,            type = bss, define = yes;
    ONCE:     load = ROM,            type = ro,                optional = yes;
    CODE:     load = ROM,            type = ro;
    INIT:     load = ROM,            type = ro;
    RODATA:   load = ROM,            type = ro;
    AUDIO:    load = ROM,            type = ro,                optional = yes, start = $BF00;
    SETUP:    load = ROM,            type = ro,                                start = $BFE8;
}
FEATURES {
    CONDES: type    = constructor,
            label   = __CONSTRUCTOR_TABLE__,
            count   = __CONSTRUCTOR_COUNT__,
            segment = INIT;
    CONDES: type    = destructor,
            label   = __DESTRUCTOR_TABLE__,
            count   = __DESTRUCTOR_COUNT__,
            segment = RODATA;
    CONDES: type    = interruptor,
            label   = __INTERRUPTOR_TABLE__,
            count   = __INTERRUPTOR_COUNT__,
            segment = RODATA,
            import  = __CALLIRQ__;
}
It may be a problem with the header?

Has anyone any experience with CC65 and Creativision who could help me out with this?

Thanks!

Fabrizio

Re: [help][creativision][cc65]CROSS CHASE: a universal 8 bit game/framework

Posted: Tue Feb 06, 2018 8:37 am
by Scouter3d
Hi Fabrizio,

I am no expert at all, but maybe it has to do with the memory layout of the Creativision ROM1 / ROM2 Banks...
I have attached a memorymap layout for you...
memorymaps.jpg
Greetings, TOM:0)

Re: [help][creativision][cc65]CROSS CHASE: a universal 8 bit game/framework

Posted: Tue Feb 06, 2018 9:10 am
by Fabrizio Caruso
@Scouter3d, thanks but I know the memory map. The problem is that the rom generated by CC65 does not work with any other configuration.
For instance $8000-$BFFF will not produce a working rom, i.e., the game does not even start.
Something else has to be done to make it work.

Re: [help][creativision][cc65]CROSS CHASE: a universal 8 bit game/framework

Posted: Sat Feb 10, 2018 5:12 pm
by Fabrizio Caruso
Problem solved by swapping the two 8k banks.

Re: [SOLVED][creativision][cc65]CROSS CHASE: a universal 8 bit game/framework

Posted: Mon Oct 14, 2019 3:14 pm
by Fabrizio Caruso
How are the 18k roms mapped in ram? How are 18k rom files structure?