That went well but even with your register set it still won't start. It's the D64 from Github.tokra wrote:It should show which blocks are available (should be 0,1,2,3,5) and then after pressing Space some seconds later just display "READY."
New Release: Doom
Moderator: Moderators
- pixel
- Vic 20 Scientist
- Posts: 1330
- Joined: Fri Feb 28, 2014 3:56 am
- Website: http://hugbox.org/
- Location: Berlin, Germany
- Occupation: Pan–galactic shaman
Re: WIP: Doom
A man without talent or ambition is most easily pleased. Others set his path and he is content.
https://github.com/SvenMichaelKlose
https://github.com/SvenMichaelKlose
Re: WIP: Doom
Very strange. I can only suggest you run crosstalk-check for at least 10 times, sometimes crosstalk will not appear at once, but only after several runs.
It may also be a good idea to test the full memory.
As said others, including myself, have been able to run this on original hardware with UltiMem, so there must be something wrong on your end. If you come to Revision this year Mike and I could have a look at it
It may also be a good idea to test the full memory.
As said others, including myself, have been able to run this on original hardware with UltiMem, so there must be something wrong on your end. If you come to Revision this year Mike and I could have a look at it
- pixel
- Vic 20 Scientist
- Posts: 1330
- Joined: Fri Feb 28, 2014 3:56 am
- Website: http://hugbox.org/
- Location: Berlin, Germany
- Occupation: Pan–galactic shaman
Re: WIP: Doom
Sorted. Crosstalk.prg won't complain. memtest.prg breaks at $400 with all blocks enabled. Although +3K seems to work otherwise. BTW I don't understand the RND() thing really... will keep trying things out… perhaps an assembly version of a complete RAM test is in order.tokra wrote:Very strange. I can only suggest you run crosstalk-check for at least 10 times, sometimes crosstalk will not appear at once, but only after several runs.
It may also be a good idea to test the full memory.
I'm sure that'd be an unforgettable experience. Now I'm feeling rather bad because I can't be there.As said others, including myself, have been able to run this on original hardware with UltiMem, so there must be something wrong on your end. If you come to Revision this year Mike and I could have a look at it
A man without talent or ambition is most easily pleased. Others set his path and he is content.
https://github.com/SvenMichaelKlose
https://github.com/SvenMichaelKlose
Re: WIP: Doom
Hmm, the 3K area is mostly affected by crosstalk, so maybe this still is the issue. Using the memtest, can you delete the lines that check the other memory blocks, so it just checks 3k? Then try adding BLK5 again and re-run, then the other blocks.
Also, try running crosstalk-check in an endless loop for some time (at least 10 minutes).
BTW: RND with a negative value resets the seed, so any value you check with rnd(1) after setting the seed will be the same. This makes sure you fill RAM with random values and check against the same random values.
Also, try running crosstalk-check in an endless loop for some time (at least 10 minutes).
BTW: RND with a negative value resets the seed, so any value you check with rnd(1) after setting the seed will be the same. This makes sure you fill RAM with random values and check against the same random values.
- pixel
- Vic 20 Scientist
- Posts: 1330
- Joined: Fri Feb 28, 2014 3:56 am
- Website: http://hugbox.org/
- Location: Berlin, Germany
- Occupation: Pan–galactic shaman
Re: WIP: Doom
As soon as I take one of the higher blocks out it works.tokra wrote:Hmm, the 3K area is mostly affected by crosstalk, so maybe this still is the issue. Using the memtest, can you delete the lines that check the other memory blocks, so it just checks 3k? Then try adding BLK5 again and re-run, then the other blocks.
Neat!BTW: RND with a negative value resets the seed, so any value you check with rnd(1) after setting the seed will be the same. This makes sure you fill RAM with random values and check against the same random values.
A man without talent or ambition is most easily pleased. Others set his path and he is content.
https://github.com/SvenMichaelKlose
https://github.com/SvenMichaelKlose
- majikeyric
- Vic 20 Afficionado
- Posts: 349
- Joined: Fri Oct 24, 2014 2:08 pm
- Website: http://majikeyric.free.fr
- Location: France
Re: WIP: Doom
The problem comes from the bank registers ($9ff4-$9fff).
At the beginning of the Ultimem menu code, all Ultimem registers are zeroed and only the needed registers are initialized before exiting.
So when exiting all non needed bank registers are equals to zero.
if you activate other blocks of memory afterwards they all will share the bank 0 hence the crosstalk issues.
I think Tokra uses his own RAM manager which doesn't zero the Ultimem registers then that's why he has no problem
Code: Select all
RAM_BANK ($9ff4-5 / 40948-9)
IO_BANK ($9ff6-7 / 40950-1)
BLK1_BANK ($9ff8-9 / 40952-3)
BLK2_BANK ($9ffa-b / 40954-5)
BLK3_BANK ($9ffc-d / 40956-7)
BLK5_BANK ($9ffe-f / 40958-9)
So when exiting all non needed bank registers are equals to zero.
if you activate other blocks of memory afterwards they all will share the bank 0 hence the crosstalk issues.
I think Tokra uses his own RAM manager which doesn't zero the Ultimem registers then that's why he has no problem
Code: Select all
On reset, bank registers are set to the following values (RAM = 1, IO = 2, BLK1 = 3, BLK2= 4, BLK3 = 5, BLK5 = 0). This is done to ensure that BLK5 will point to the first bank of memory, and that if someone turn on all RAM, the banks will not collide.
Last edited by majikeyric on Wed Mar 08, 2017 7:07 am, edited 1 time in total.
Re: WIP: Doom
If used correctly, my BASIC-program further back in this thread sets the registers correctly. However for ease of use I have created a doom.d64-image that has a program that sets the UltiMem correctly as the first file on the disk:
http://www.tokra.de/vic/doom/ultidoom.d64
So, just type
After the machine resets you then need to manually load the original loader:
http://www.tokra.de/vic/doom/ultidoom.d64
So, just type
Code: Select all
load"ultiboot",8
run
Code: Select all
load"boot",8
run
Re: WIP: Doom
Wish I'd seen this post before I go the doom.d64 and ultidooom.d64 and tried ulitboot doom.prg etc.
Worked it out in the end also switching all dip switches to ON on Eslapion's 35k expansion.
Impressive game.
Worked it out in the end also switching all dip switches to ON on Eslapion's 35k expansion.
Impressive game.
-
- Vic 20 Newbie
- Posts: 5
- Joined: Thu Feb 14, 2019 11:06 am
- Location: Saratov, Russia
- Occupation: Interpreter
Re: WIP: Doom
Okay, so there's a Doom port that works on Vic 20? I thought this was still a WIP, I'll go and download it!
- Kweepa
- Vic 20 Scientist
- Posts: 1314
- Joined: Fri Jan 04, 2008 5:11 pm
- Location: Austin, Texas
- Occupation: Game maker
Re: WIP: Doom
Yeah, I never actually created a thread in completed games, now that I think about it.
Oh well.
Oh well.
Re: WIP: Doom
You can just edit the title of this one
Re: New Release: Doom
Just decided to knock up a cassette inlay for this
Then thought, it probably wouldn't work very well from cassette
- Kweepa
- Vic 20 Scientist
- Posts: 1314
- Joined: Fri Jan 04, 2008 5:11 pm
- Location: Austin, Texas
- Occupation: Game maker
Re: New Release: Doom
Hilarious!
I like the screen from the Speccy version
But yeah, a disk inlay would be better
I like the screen from the Speccy version
But yeah, a disk inlay would be better