Genesis Wars

Some Quick Screenshots showing the progress I've made on the moveable area system:

movefade.gif
genwars_field_6.jpg
 
Haha, great looking.

But this look only like a darkness filter, I would have faded the BG to the color of the unit (grass/green > dark/red), far more impressive for a sega genesis...

For the speed problem, umm....

-Do you reset the sprite VDP control pointer each time you inject a tile/sprite?

For a game like that, I would have worked in RAM, and then DMA sprite list to VRAM to get more speed.

-When u scroll, do you refresh only the plane borders or the whole plane?

(I can send u the code i use in tavern rpg, only redraw line/line while scrolling on a 64*32 tile plane).

-Do you store all sprites animation in vram or just DMA'te the correct tiles each animation step and for each sprite?

-Do you step your process in priorities?

(joypad each frame, HW scrolling each frame, animation each 4 frame, IA each 4 frames, Soft. scrolling each 4 frames, timings/others crap each 4frames....)

IF you do ALL ur stuff each frame, its sure that a 8mhz cannot support 4-5 units on screen.

:D Good luck, great great!
 
Originally posted by fonzievoltonov@Fri, 2005-12-30 @ 10:35 AM

-Do you step your process in priorities?

(joypad each frame, HW scrolling each frame, animation each 4 frame, IA each 4 frames, Soft. scrolling each 4 frames, timings/others crap each 4frames....)

IF you do ALL ur stuff each frame, its sure that a 8mhz cannot support 4-5 units on screen.


I wouldn't necessarily say that. The real trick is to organize your code to make the best use of the entire frame.

I usually do all of my DMA right at the beginning of the VINT routine (because ideally all DMA should be done by the time VBlank is over). After DMA is done then I read the joypad and then I work on calculating sprite and scroll positions for the NEXT frame. That way the calcuations can continue during screen draw and be ready for me to do DMA right away on the next VBlank.

In my personal experience DMA bandwidth was a bigger limitation than CPU time (though I was working on a fighting game which had lots of big sprite animation frames). If you need to DMA a lot of tiles you might need to break that up across multiple frames. Really depends on the game. If you don't need a lot of DMA, but you have a lot of processor intensive AI or just a lot of objects to keep track of (like in Sonic when he loses a bunch of rings) the CPU will be the bottleneck and what Fonzie said is probably more appropriate.

Also as a general rule you should try to stick to 16-bit numbers or lower wherver possible. 32-bit operations take longer on the 68000 (unless you're working with address registers). If you're programming in assembly, try to keep from hitting memory as much as possible (each word you access from memory adds another 4 cycles to the execution time). The 68K has a healthy set of registers, use them well.
 
Hi MoD :D.

I redid my controller reading system and my animation system today and fixed almost all the annoying problems I was having (thanks for all the advice!). There are more details on my site, but I expect to be moving at a better pace now that I am doing things more correctly. It wasn't really a machine limitation, but rather the method I was using to try to animate things.
 
Lots of stuff done, check my website for a general run down. I'll start putting my changelog.txt up after the next update. Here are some quick screenshots:

genwars_field_7.jpg


Units that move have a little 'Check' icon by them to show they've moved (Didn't have enough palette left to fade them once they've moved).

genwars_field_8.jpg


The Day # animation (and turns) have been implemented. Looks pretty neat, the bar scrolls in, pauses, the day pops in, and then it scrolls off quickly.

genwars_field_9.jpg


The G indicator has been implemented and updates itself. I had it incr. 50 each turn and here you can see a different value.

genwars_field_10.jpg


Another SS showing the days when they get into two digits. The days will go up to 99 before just staying at 99.

Moving along. I'll probably implement player 2 next and then do some simple battle stuff. If anyone knows a nice way to record a movie of sorts with an emu let me know and I'll make something to show everyone. Maybe I'll record something too and convert it into a xvid.
 
The tool-assisted speedrun scene uses Gens Movie Test, which includes an option to dump to AVI. Here is an article I wrote about making NTSC DVDs from emulator output, but the part up until I start talking about the AviSynth script is exactly what you need to get an AVI from any game - although the movie dump only seems to work when replaying a controller input log. You can easily make a short GMV recording and then use that.

Or, if you want video from real hardware, send a copy of your ROM, modified to utilize interlace mode 1 (shouldn't break the rest of your code) to me and I can capture from an RF output. it would take about a week, though, because I don't have my capture equipment hooked up at the moment.
 
Thanks LocalH! That Gens modification was exactly what I was after.

If anyone would like to see a movie of the current build in action, please visit here: genDev - Project Page. The movie is linked above the screenshots. Its a 1.4mb XViD file.
 
great stuff!!!!

the things I saw which must be easy to correct :

- the day number doesn't follow the "Day" scroll

- the effect on Press Start (ugly black box!)

and it's me or you got some problem on selecting correct item on the menu ? (it's always hard to code a correct control handler)
 
Thanks Kaneda! Your and others input are very helpful and welcome.

Yes, I plan to tweak the Day# animation a bit after I get some other things going (I'm a perfectionist with a lot of these things) and the press start. The press start was the first thing I did and basicly just used old code from the first time I worked on this. I've learned a lot of neat tricks since then so I'll be redoing it as well, maybe some type of transparency effect.

The Menu item thing is that I have the control reading interval a bit quick on that menu for the moment, so its an easy fix, just left it as I was testing the end day thing over and over again :D.

I added the second player yesterday and the player two palette. Right now I'm working on a dynamic animation interval that is determined by the number of units (on my base code, adding more units slightly slowed down the animation loop, so by adjusting the uints animation interval I can make it appear like everything is the same).

I'm having a blast. I think I'll have a demo ready sometime soon for everyone to try.

Originally posted by Kaneda@Fri, 2006-01-20 @ 09:55 AM

great stuff!!!!

the things I saw which must be easy to correct :

- the day number doesn't follow the "Day" scroll

- the effect on Press Start (ugly black box!)

and it's me or you got some problem on selecting correct item on the menu ? (it's always hard to code a correct control handler)

[post=143641]Quoted post[/post]​

 
Small update today (see my page for Screenshots and news).

I updated the video, you can see it HERE. I fixed the Day # animation. On the Press Start, I changed the fade to use a transparency effect, I really like how it turned out. Other news on this update is I added Player 2 stuff.
 
Back
Top