- Joined: 28 Jan 2017
- Posts: 556
- Location: Málaga, Spain
|
Posted: Thu Mar 14, 2024 7:20 pm
|
The game does not use sram.
|
- Joined: 06 Mar 2022
- Posts: 697
- Location: London, UK
|
Posted: Thu Mar 14, 2024 8:15 pm
|
Thanks both!
sverx wrote Make sure your mapper supports slot 1 and slot 2 mapping and uses at least 5 bits for the page number. Also it should support SRAM, even if I don't think missing this should crash the game...
I'm currently mapping slots 0-2 to 6 bits, although I haven't implemented any RAM mapping at all (slot 2 maps to paged ROM and slot 3 maps to a fixed 16KB of system RAM). As you say though, I don't think that ought to make a difference if the game doesn't rely on that bank being writeable.
But anyway it's a possibility. I'm actually working on RAM banking now, so we'll find out soon!
To be honest I can't think of many other things that would trigger a restart. Any problems with the VDP would only exhibit as changes in control flow if the CPU was reading data, so only really the status port and the vcounter.
|
- Joined: 05 Sep 2013
- Posts: 3941
- Location: Stockholm, Sweden
|
Posted: Fri Mar 15, 2024 9:23 am
|
willbritton wrote I'm currently mapping slots 0-2 to 6 bits, although I haven't implemented any RAM mapping at all (slot 2 maps to paged ROM and slot 3 maps to a fixed 16KB of system RAM). As you say though, I don't think that ought to make a difference if the game doesn't rely on that bank being writeable.
But anyway it's a possibility. I'm actually working on RAM banking now, so we'll find out soon!
6 bits for mapper registers are fine, and eruiz00 said he's not using SRAM so I think it's some other issues. But triggering a restart is indeed quite an interesting behavior, it means the code gets to set the program counter to 0 in some way (getting an RST 0 maybe?). Anyway I really suspect it's something related to the mapper and the paged code...
|
- Joined: 06 Mar 2022
- Posts: 697
- Location: London, UK
|
Posted: Fri Mar 15, 2024 9:56 am
|
Okay so I did a bunch of messing around yesterday and now it's working!
A shame I don't know exactly what was causing the issue but unfortunately I changed too many things at once in order to support RAM mapping - the mapper obvs, but I also changed the address decoding logic on the board slightly, as well as the way that I was "flashing" the game to memory, so it could have been any one of those that was causing the original problem.
Interesting side-note: with the modified RAM mapping, I've actually got the whole system running eruiz's game on a single 512KB RAM chip - no ROM no nothing. This works because the game is smaller than 512KB so it fits in the first 28 or so pages and the working RAM can go in one of the higher pages.
Anyway, got it working now - man it's quite a hard game, I'm struggling to jump over these damn rolling tubes - who left them on the highway!?
EDIT: I also did see an issue on pressing pause, some kind of game corruption, but again might be hardware, although I did see someone else report a pause-related problem. Will investigate more.
|