Jump to content
IGNORED

Intellivision James Bond 007


Rev

Recommended Posts

2 hours ago, DZ-Jay said:


The Jargon File and the New Hacker's Dictionary would like to have a word with you. ;)

 

    dZ.

The context here is retro video game ROMs.  Those definitions are for different contexts.  If they "had a word with me", they would agree.  You know this. 

For the topic of this thread, a hack is a modification of original source code.  Full stop.

Link to comment
Share on other sites

14 minutes ago, vroby said:

asm DIS
asm EIS
I also use jzintv in ntsc mode.
we did a lot of tests (ntsc, pal and even secam) and there are some small differences. It's definitely a great emulator. Also keep in mind that I work full with linux


Thanks for the details.  So you open a critical section and apparently miss the next interrupt, which will cause the blank screen.

 

You see, on every frame you need to actively enable the display by writing (anything) to STIC register $0020.  If you fail to do so, the screen will blank for the frame.

 

If you are using IntyBASIC, it will do it for you.  Otherwise you need to do it on the ISR (interrupt handler) before the VBLANK 1 period expires (about 2,900 cycles in NTSC). If you disable interrupts, the ISR will not be called, so if you miss a frame, the screen blanks.


It seems your critical section runs for too long.  That is a design choice, not really a limitation of the hardware.

 

If you shared some code, we could help you perhaps optimize the routine, or find alternative implementations to avoid missing the display handshake.

 

   dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

25 minutes ago, DZ-Jay said:


Thanks for the details.  So you open a critical section and apparently miss the next interrupt, which will cause the blank screen.

 

You see, on every frame you need to actively enable the display by writing (anything) to STIC register $0020.  If you fail to do so, the screen will blank for the frame.

 

If you are using IntyBASIC, it will do it for you.  Otherwise you need to do it on the ISR (interrupt handler) before the VBLANK 1 period expires (about 2,900 cycles in NTSC). If you disable interrupts, the ISR will not be called, so if you miss a frame, the screen blanks.


It seems your critical section runs for too long.  That is a design choice, not really a limitation of the hardware.

 

If you shared some code, we could help you perhaps optimize the routine, or find alternative implementations to avoid missing the display handshake.

 

   dZ.

Thanks for the offer but I think I already optimized the code quite a bit. I simply demanded a lot from the inty.
In the next programs I will try to squeeze the machine a little less since many people use hdmi converters that deinterlace the video output and I hadn't thought of this. Already the next one that will come out soon despite having an 8-way scroll shouldn't have the problem

Edited by vroby
Link to comment
Share on other sites

7 minutes ago, vroby said:

Thanks for the offer but I think I already optimized the code quite a bit. I simply demanded a lot from the inty.
In the next programs I will try to squeeze the machine a little less since many people use hdmi converters that deinterlace the video output and I hadn't thought of this. Already the next one that will come out soon despite having an 8-way scroll shouldn't have the problem


No worries.  The reason I mention it is because other games have managed to do more with the same resources.  Frankly, I am not convinced that it is "a lot from the inty," not based on what I've seen of the games so far; so perhaps there is a different algorithm, technique, or micro-optimization that could be done.


The offer will stand, so feel free to reach out at any time if you'd like. :)


Good luck with your next project.

 

   dZ.

Link to comment
Share on other sites

41 minutes ago, vroby said:

Thanks for the offer but I think I already optimized the code quite a bit. I simply demanded a lot from the inty.
In the next programs I will try to squeeze the machine a little less since many people use hdmi converters that deinterlace the video output and I hadn't thought of this. Already the next one that will come out soon despite having an 8-way scroll shouldn't have the problem

From a technical standpoint, I confess I still don't get what is the benefit of disabling interrupts and then having to worry if the code is running for too long before re-enabling the interrupt. 

Seems like an unusual way to write the game logic.

I also don't get how this game can be demanding so much from the hardware. Just judging by the output.

This is not a jab at you, the original was a relatively simple game wouldn't you agree? Or maybe I'm missing something?

 

To be honest when a game is demanding, I'm more used to seeing the framerate slow down a little.

I'm not used to seeing the whole screen go black. But that is what disabling the interrupt seems to cause when the game "falls behind".

 

I would think this way of structuring the logic actually makes you work harder. I imaging you are spending a lot of time monitoring and managing performance.

Link to comment
Share on other sites

3 hours ago, cmadruga said:

From a technical standpoint, I confess I still don't get what is the benefit of disabling interrupts and then having to worry if the code is running for too long before re-enabling the interrupt. 

Seems like an unusual way to write the game logic.

I also don't get how this game can be demanding so much from the hardware. Just judging by the output.

This is not a jab at you, the original was a relatively simple game wouldn't you agree? Or maybe I'm missing something?

 

To be honest when a game is demanding, I'm more used to seeing the framerate slow down a little.

I'm not used to seeing the whole screen go black. But that is what disabling the interrupt seems to cause when the game "falls behind".

 

I would think this way of structuring the logic actually makes you work harder. I imaging you are spending a lot of time monitoring and managing performance.

 

Disabling interrupts for long-running operations can be useful for non-time-critical stages, such as initialization or level set up, etc.

 

However, I agree with you, there is little to gain from doing it during active game-play.  You are better off breaking down the processing into various stages, either into multiple frames, or (preferably) outside the context of the ISR.

 

    -dZ.

Link to comment
Share on other sites

7 hours ago, ZillaRUSH said:

Was about to spend the bucks to order it...after watching that vid...no thanks.  Nothing is worse than incomplete games.  For that money it should be ready to go and want you to play more.  Looks like someone one day needs to make Super Pro 007.  

I had the same thought when I watched the video: looks more like 003½ than 007.

  • Haha 5
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...