Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Keoni29 on August 22, 2011, 07:24:02 am

Title: [83p] Hero Core
Post by: Keoni29 on August 22, 2011, 07:24:02 am
Hero Core
(http://tinyurl.com/orcpbkp) (http://8times8.host56.com/?p=98)
By keoni29 (PC original by Daniel Remar)

Compatibility:
Requirements:
16k of ram (estimated)
16k of archive (estimated)
Run from a shell such as mirageOS or DCS (compiled for ion)

About:
Daniel Remar, the creator of the PC original, said it was all right to port his game and
he'd like to see it on a calculator.
That was back in 2011 and my Hero Core port is still not finished.

In this topic I will be posting updates and development builds.



(http://updo.nl/file/a6c8b261.jpg)



To do:
- TestWorld (100%)
- Enemy AI (60%)
- Bosses (0%)
- Player controls (80%)
- Health, injure & overheat (100%)
- Soundeffects from the I/O port (40%)
- Animated tiles (30%)
- Blade (cut away dirt and pipes that are in the way)(100%)
- Pause screen w/ map and settings (30%)
- Tile graphics (70%)
- New tile system (10%)
- World map (10%)
- Music  (music only for soundchip users)
- Events, doors etc. (0%)
- Map screen (50%)
- Save progress (0%)

This game will be
(http://www.omnimaga.org/index.php?action=dlattach;topic=12654.0;attach=15526;image) (http://8times8.host56.com/?p=98)
If your game is too: include this in your topic.
Code: [Select]
[url=http://8times8.host56.com/?p=98][img]http://tinyurl.com/orcpbkp[/img][/url]
Downloads:
(http://updo.nl/file/82dc1bd1.jpg) (http://www.omnimaga.org/index.php?action=dlattach;topic=10057.0;attach=15489)

If you encounter any bugs: that's normal. They're supposed to be there ;D
Title: Re: [WIP] TI84+ Herocore clone
Post by: ztrumpet on August 22, 2011, 09:41:56 am
That looks pretty cool. :)  I hope all goes well with the rest of it.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on August 22, 2011, 12:23:39 pm
Never played the original, but it looks nice. =)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on August 22, 2011, 12:55:04 pm
Working on the doors. I have connected 2 rooms with so called door-tiles. There is a weird bug that allows players to walk trough walls next to the doorway. I hope I can fix this as fast as possible.
Title: Re: [WIP] TI84+ Herocore clone
Post by: shmibs on August 22, 2011, 04:03:50 pm
monochrome graphics =DDD
i love it. it looks like you are recreating it successfully so far as well.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on August 23, 2011, 02:14:05 am
The doorways work now. Now I have to make 6 testrooms and fill em up with enemies.
Title: Re: [WIP] TI84+ Herocore clone
Post by: annoyingcalc on August 23, 2011, 09:03:19 pm
Nice this looks great
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on August 23, 2011, 09:15:07 pm
Interesting, I don't know the original but hopefully things goes well during development. Good luck!
Title: Re: [WIP] TI84+ Herocore clone
Post by: annoyingcalc on August 24, 2011, 03:54:46 am
Yes it looks great moar screenshots?
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on August 30, 2011, 03:06:48 pm
I scaled down the herocore logo. It looks nice on calc
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on August 30, 2011, 11:51:51 pm
Link to logo? (on-calc and original)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 20, 2011, 03:06:07 am
I'm back :D
I lost the source a while ago, but I found it and I'm happy. Nvm lets get to work!
@DJ_O It's animated :D I will record some with the emulator
Edit:Record take 2
Title: Re: [WIP] TI84+ Herocore clone
Post by: Netham45 on October 20, 2011, 03:13:21 am
That vaguely reminds me of VVVVVV (http://store.steampowered.com/app/70300/)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 21, 2011, 07:11:13 pm
Ye I've played that too, but this game has monochrome gfx and no gravity.


Le midnight programming. I attached 2 bright Leds to my calc powered by a 9v block. Added cewl soundeffects. I'd love to add music, but it slows the game down as hell. Tomorrow I will analyze the source and clean the mess up. Then I will be working on the world mapping.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 22, 2011, 05:32:35 am
Found one bug in the source while analyzing the variable purposes.
Spoiler For Spoiler:
HEROCORE
Variables:
A=Used in loops(can be replaced by r)
B=Used in loops(can be replaced by r)
C=Used for temporary action (can be replaced by r)
D=Direction l/r(0-1)
E=
F=Frame skip y/n (0-1)
G=
H=Health and used in loops (Conflict!! Replace one by r)
I=
J=
K=Is 0 onkeypress and resets to 1 when the key is not pressed
L=Is 0 onkeypress and resets to 1 when the key is not pressed
M=
N=
O=Used in the titlescreen(replace by r or B)
P=The room
Q=
R=Used as return value (can be replaced by r)
S=
T=
U=
V=Used in loops for tile drawing
W=
X=Players position
Y=Players position
Z=
θ=Used for optimization (can be replaced by r)

As you can see I use quite a few letter variables. A lot of them can be replaced by r1-r6
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 30, 2011, 11:48:31 am
Discontinued feature:

I have been experimenting a little with soundeffects. You need 2 calculators for herocore super sfx and just one for a shorter soundeffects. Little bleeps and white noise bursts will be played from the game calculator, but you can also run a prgm on the other calc that plays the soundeffects so that the game will not slow down. A vid will come soon :D
Edit: Here it is!
Title: Re: [WIP] TI84+ Herocore clone
Post by: annoyingcalc on October 30, 2011, 07:29:56 pm
:w00t: sweetness
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 31, 2011, 07:25:22 am
Boss designs!
Some of them are new:
(http://www.omnimaga.org/index.php?action=dlattach;topic=11104.0;attach=10134;image)

(http://www.omnimaga.org/index.php?action=dlattach;topic=11104.0;attach=10133;image)

(http://www.omnimaga.org/index.php?action=dlattach;topic=11104.0;attach=10132;image)

(http://www.omnimaga.org/index.php?action=dlattach;topic=11104.0;attach=10135;image)
Title: Re: [WIP] TI84+ Herocore clone
Post by: LincolnB on October 31, 2011, 10:08:14 am
Those look pretty sweet.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on October 31, 2011, 10:40:58 am
Hmm maybe I should animate the tentacles :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on December 30, 2011, 09:30:07 am
YAY I fixed most of the bugs. I lost the original source file. Luckily I had a .txt file on my pc.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Yeong on December 30, 2011, 01:53:19 pm
So you DIDN'T lose it? hmm....
Well, I'm looking forward to it. :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on December 31, 2011, 01:25:06 am
I'M glad you still had some sort of backup. Anyway glad you fixed the bugs.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on December 31, 2011, 03:06:52 am
I'M glad you still had some sort of backup. Anyway glad you fixed the bugs.
I lost the source, but not the includes :) Now I will focus on cleaning up some code and perhaps the map engine.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on January 30, 2012, 01:01:47 pm
I am gonna work on HeroCore on fridays. I have just 2 hrs of school then with my new schedule.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on February 06, 2012, 08:44:34 am
This was looking quite nice. Have you found any more time to work on it? :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 06, 2012, 06:50:35 pm
Good to hear it's still alive. Also I missed the boss screenies above. Awesome stuff. :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 18, 2012, 05:27:50 am
I have been working on a new way to save the map data (in appvars). I'm gonna check how Daniel saved the levels. I have the source of his game.
Edit:Hmm he just made one big tilemap. I will have to re-use rooms since it takes lots of ram to make all rooms unique. Much like metroid did it.
I will have a 12*8 worldmap. Every tile on the worldmap represents a room/empty space. Every tile on the worldmap takes one byte for the tilemap and another 3 bytes for the enemies and some data. Then you have the gamedata such as opened doors etc. which will also take up some memory(probably another byte per room).
12*8*4=384 bytes

As I told you I will re-use rooms, so let's say I want 30 rooms to choose from. (There 12*8=96 rooms max, so this means that every room has to be used at least 3 times. Besides there are some blank spots without a room in it on the worldmap)
tilemap: 11*8 / 2=44 bytes (since each tile takes up 4 bits)
tileset: 1 byte
_______________________+
Total:45 bytes per room

45*30=1350 bytes

So the world will take up around 1800 bytes which is acceptable.

I will have to do some minor changes to a lot of code to implement this, so this is gonna take a while.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 19, 2012, 03:24:50 am
Good to hear this is still alive and I guess it's a good idea to re-use rooms to save space. I think that's what they did in the NES Metroid. Just make sure that every room won't always look the exact same though lol XD *cough*mana force 1*cough*. In Illusiat 13 for example I have a huge desert somewhere that is not very complex so I just used a few dozen different nearly empty maps for all 200+ desert map chunks. Also most houses and shops re-use the same maps over and over. The rest of the game in general uses different data for every 16x8 map, though.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 19, 2012, 04:58:48 am
Good to hear this is still alive and I guess it's a good idea to re-use rooms to save space. I think that's what they did in the NES Metroid. Just make sure that every room won't always look the exact same though lol XD *cough*mana force 1*cough*. In Illusiat 13 for example I have a huge desert somewhere that is not very complex so I just used a few dozen different nearly empty maps for all 200+ desert map chunks. Also most houses and shops re-use the same maps over and over. The rest of the game in general uses different data for every 16x8 map, though.
The game source and boss sprites are gonna take up a lot of memory, so I decided not to have a huge map like a metroid game. Once the rooms are stuffed with enemies you won't get trough quickly so I hope that works. Otherwise I will simply expand the map (reusing the same rooms in the process of course)
Title: Re: [WIP] TI84+ Herocore clone
Post by: MillionCalcs on February 19, 2012, 12:16:12 pm
This looks amazing  :w00t:
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 19, 2012, 02:36:01 pm
Good to hear this is still alive and I guess it's a good idea to re-use rooms to save space. I think that's what they did in the NES Metroid. Just make sure that every room won't always look the exact same though lol XD *cough*mana force 1*cough*. In Illusiat 13 for example I have a huge desert somewhere that is not very complex so I just used a few dozen different nearly empty maps for all 200+ desert map chunks. Also most houses and shops re-use the same maps over and over. The rest of the game in general uses different data for every 16x8 map, though.
The game source and boss sprites are gonna take up a lot of memory, so I decided not to have a huge map like a metroid game. Once the rooms are stuffed with enemies you won't get trough quickly so I hope that works. Otherwise I will simply expand the map (reusing the same rooms in the process of course)
Yeah I understand. I was more wondering how many times each map were used and how much variety there was.

By the way if you use half-byte or bit-based compression, you could also switch sprite palettes across dungeons/stages, so you can re-used the same rooms over and over, but with different tiles. This is kinda what I did in Illusiat 7 and 11 for the elemental dungeons. You just need to make sure for example that your game doesn't have only 8 kind of maps possible across 200 rooms, else it might get too repetitive. I guess if you do like the NES Metroid you should be fine, though.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 19, 2012, 03:06:10 pm
Good to hear this is still alive and I guess it's a good idea to re-use rooms to save space. I think that's what they did in the NES Metroid. Just make sure that every room won't always look the exact same though lol XD *cough*mana force 1*cough*. In Illusiat 13 for example I have a huge desert somewhere that is not very complex so I just used a few dozen different nearly empty maps for all 200+ desert map chunks. Also most houses and shops re-use the same maps over and over. The rest of the game in general uses different data for every 16x8 map, though.
The game source and boss sprites are gonna take up a lot of memory, so I decided not to have a huge map like a metroid game. Once the rooms are stuffed with enemies you won't get trough quickly so I hope that works. Otherwise I will simply expand the map (reusing the same rooms in the process of course)
Yeah I understand. I was more wondering how many times each map were used and how much variety there was.

By the way if you use half-byte or bit-based compression, you could also switch sprite palettes across dungeons/stages, so you can re-used the same rooms over and over, but with different tiles. This is kinda what I did in Illusiat 7 and 11 for the elemental dungeons. You just need to make sure for example that your game doesn't have only 8 kind of maps possible across 200 rooms, else it might get too repetitive. I guess if you do like the NES Metroid you should be fine, though.
I already use this half byte compression. The original game has around 20 tiles and 4 bits can only store 0-15 this means that one tileset for the normal stages and one for the boss stages is enough. This means that I can store all tileset information in 96/8=12 bytes
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 20, 2012, 03:21:20 am
That's good. :) Usually you have enough tiles slots for such game anyway. And if you reach a different area, just switch to a different palette and you're set! :)

In Illusiat series you usually could use only two tile per map because the tilemap info was stored in pictures (every 16x8 map took 16 bytes of RAM) and in some occasions, when reaching a different area of a map the tiles would change, like if you reached a different place, but in fact it was still the same map data. Another example is the Reign of Legends 3 elemental dungeons. Maps were stored in pics and only 3 tile per screen could be used (2 for dynamically-generated walls or cliffs and 1 for the floor). You can see the 4 maps among the others in the middle of this pic (http://www.omnimaga.org/index.php?action=dlattach;topic=8909.0;attach=8106;image) (warning: spoilers!)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 20, 2012, 03:32:26 am
That's good. :) Usually you have enough tiles slots for such game anyway. And if you reach a different area, just switch to a different palette and you're set! :)

In Illusiat series you usually could use only two tile per map because the tilemap info was stored in pictures (every 16x8 map took 16 bytes of RAM) and in some occasions, when reaching a different area of a map the tiles would change, like if you reached a different place, but in fact it was still the same map data. Another example is the Reign of Legends 3 elemental dungeons. Maps were stored in pics and only 3 tile per screen could be used (2 for dynamically-generated walls or cliffs and 1 for the floor). You can see the 4 maps among the others in the middle of this pic (http://www.omnimaga.org/index.php?action=dlattach;topic=8909.0;attach=8106;image) (warning: spoilers!)
I need 16 tiles per map since I have certain solid objects in my game such as doors, pipes, dirt and other destroyable blocks. I also use tiles to place enemies. I can save a lot of memory by doing that.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 20, 2012, 03:33:38 am
Yeah I know I was just stating about my example. Enemies are included in the tile count too though? ??? Does it mean enemies are part of the tilemap (and thus, cannot move)?
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 20, 2012, 04:00:40 am
Yeah I know I was just stating about my example. Enemies are included in the tile count too though? ??? Does it mean enemies are part of the tilemap (and thus, cannot move)?
Nope that is not the case. I use so called "enemie tiles" to set the position of the enemies. Once the tilemap is loaded from the appvar the enemies from the enemie set are placed on those tiles. These tiles are treated like if they where not there by the collision engines.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on February 20, 2012, 04:44:09 am
Oh nice idea. In my games I never could figure out how to place enemies without hard-coding them in every map (but again I used TI-BASIC so scanning the map for enemy spots would have been slow and I would only have been able to have one or two enemy per map anyway), so I ended up putting them at random locations, trying different locations until the enemy is loaded on a non-solid tile and never close to the border so they won,t appear too close to you.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 09, 2012, 03:54:49 am
Poll added.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on June 09, 2012, 11:34:50 am
As cool as I think a hero core clone would be, I think work on the TI-nterface project of yours will be more beneficial to you. It seems to be coming along quite well and you are learning a lot of things about hardware as you go. I'm not sure you'd learn as much from making a hero core clone. You could split your time and work on hero core as a side project when you have time or want to take a break from other things. Just my 2 cents worth. :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 09, 2012, 02:04:39 pm
Well I kinda divided the TI-nterface into smaller chunks. I'm not focussing on one device, but I'm designing/making all sorts of pheripals which interface with the TI calculators. For example: A Digital to analog converter and a gamepad. All of these things share the same thing: They can be interfaced with the TI calculator via the I/O port.

There are 3 people who think I should focus on Herocore now, so I guess that's gonna be my main project. I just wanna finish it and enjoy it's awesomeness :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 10, 2012, 02:03:34 pm
I'm analizing the source code now. Determining how everything works again :P I kept documentation during the process, so I guess I can continue coding tomorrow.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 10, 2012, 02:40:10 pm
I would like to see Herocore finished personally. Also from the poll it looked like if you finished TI-Nterface you were planning to cancel Herocore D:

Good luck and I hope afterward you finish TI-Nterface too. :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 18, 2012, 02:57:51 pm
Pausing this project for another year or so... *runs*
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on August 06, 2012, 07:17:01 pm
Nooo D: I hope it isn't gonna be paused for that long D:
Title: Re: [WIP] TI84+ Herocore clone
Post by: Matrefeytontias on February 18, 2013, 09:00:18 am
6 months necro :P

Is this still alive in any spiritual sub-world of another dimension ?
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on February 22, 2013, 03:09:03 pm
I'm sorry. I think I have a source lying around somewhere in my TI stuff folder. I have not been making games for the past months. I just do hardware stuff.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on March 12, 2013, 01:58:42 pm
Do you think you could release what you have if it's fully playable in demo form or at least the source? (In case someone was willing to continue it)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on March 12, 2013, 03:09:52 pm
It's just the engine by the way. Nothing fancy. I did not even have the world map engine done. Just two rooms. If someone would like to continue this project he would really only need a few snippets of code and the graphics. It's better to redo my bad code. I was not a very good axe programmer back then.
Title: Herocore Rebooted
Post by: Keoni29 on March 18, 2013, 05:57:23 am
Old screenshot.
(http://8times8.host56.com/wp-content/uploads/2013/03/basicengineherocore.gif)
http://8times8.host56.com/?p=58
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on March 18, 2013, 06:00:06 am
Very nice. :D *Edit* This is looking quite good now that it's alive again.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on March 18, 2013, 06:35:52 am
At the moment the enemies are just spawned in at random and this level is just a test level. I want to have more kinds of enemies soon and a map you can open in a pause menu.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on March 19, 2013, 02:00:01 pm
Glad it's revived! *.*

Will the new version use bosses like in this post http://ourl.ca/12654/257659 and maybe sound (that doesn't require hardware modding)? :P
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on March 19, 2013, 02:26:58 pm
Yep I am already working on a simple set of SFX for users that do not have access to microcontrollers. Those who do have an arduino get better soundeffects and probably even music. I have to find a way to easily compose or convert music to a calculator format.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on March 19, 2013, 02:53:51 pm
That's awesome Keoni! :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on March 27, 2013, 06:32:01 am
I am working on a minimalistic music editor so I can create song files that play during the game. I got the basic engine done. Now I have to add wavetables, instruments and some setting such as speed, song length etc.

In the attachments you find a sample of the soundchip music editor. Recorded from the arduino.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on March 27, 2013, 11:52:22 am
Nice! Sounds very reminiscent of Metroid. :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on March 27, 2013, 12:04:58 pm
The music engine like the sound effects engine will be interrupt driven, so it's really accurate. No slowdowns in music or framerate. I could take a string of data and put it in an appvar. This engine will play a string of notes of any length. At the moment every note takes up 1 byte of data, so with 3 channels the size of a song is N*3. The song you just heard is just 192 bytes long and you heard it looped twice.

When I implement the instruments there is one extra byte per note required. When I implement effects such as vibrato, arpeggio and sweeps it's gonna be 3 bytes per note.
note-instrument-sfx
nn - ii - xy
Title: Re: [WIP] TI84+ Herocore clone
Post by: Ovnize on April 04, 2013, 11:57:24 am
I can't wait for it ! :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 19, 2013, 10:20:23 am
Just to let you know: I am still working on this game, but I am not working as hard on it as I did in the first week of the reboot. Every once in a while I tackle problems and add features. Today I fixed a bug and I added breakable blocks. You need an item so you can overcharge your weapon and release energy when standing in front of either a dirt block or a metal pipe. This destroys the block and you can clear out pathways, so you can reach places you could not reach before.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 20, 2013, 03:22:46 am
Good to hear that it isn't dead. :) I guess it's kinda like me with Zelda :P (I can work for like 20 minutes on it then stop for a few days)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Sorunome on June 20, 2013, 03:41:24 am
Sounds like me with faaar to many things >.<
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 22, 2013, 11:24:53 am
I am working on the animated tiles now. I got it to work, but I want to be able to animate any tile and not just liquid metal tiles.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 22, 2013, 02:05:17 pm
I like it so far. :) Do you think you will change the wall graphics soon? I would be fine if you used some Metroid II Expansion wall tiles or enemies by the way if you need any.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 22, 2013, 02:52:12 pm
I will not be using any new enemies. Hero core has enough original enemies in it. Most of them share one of 3 AI patterns, so it's easier for me to implement those. I think i'm going to make my own graphics for the detailed walls.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 22, 2013, 05:07:47 pm
Ah ok I see. As for re-using AI patterns multiple times I think it's better like that since it saves speed and space. Zelda Sacred Pearls will only use one enemy pattern in regular dungeons, with only enemy colors (and sometimes their look) and strenght changing. I think most bosses will also use the same pattern but with some variations.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 23, 2013, 03:45:43 am
In metroid 2 there is just one real boss: the queen. All the evolved metroids share the same AI with perhaps a few different attacks added. They re-used them over and over. I do not want that for herocore. The essence of herocore is fighting different original bosses until you get enough items to be able to fight the final boss. You could just go straight to the last boss if you wanted to, but you won't have all the upgrades and you will most likely die instantly.

There are some bosses that share the same AI though:

Here are all herocore bosses at once in one room :)

Bossrush:
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 23, 2013, 08:28:56 am
I still need to get some work done on the music engine and perhaps write a music tracker, but that's gonna take a while. Does anyone have music software written in axe that I can alter so it works with my soundchip?

I want to be able to make this song (file attached). It's the boss theme and what it would sound like on a SID chip (made in fl-studio to see if I could make it with only 3 channels).
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 23, 2013, 11:26:54 pm
I had my hopes up when I saw it will have music until I read about soundchip. D: Although this would be nice to have sound support, wouldn't it be more useful to invest time and effort into a music engine that will play sound via the link port instead, so that people don't have to mod their calc to use the game music? That said, the music sounds nice :D

Also I meant Metroid II for calcs, not the Game Boy one. The calc Metroid II: Evolution/Expansion isn't related to the GB one at all, as it's a sequel to another calculator Metroid game http://www.ticalc.org/archives/files/fileinfo/383/38359.html . It re-uses one GB sprite, though.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 24, 2013, 03:36:09 am
Oh that's called metroid 2? I saw it back when I joined omnimaga and I did not know the name until now.

About the sound and the music: If you do not have a soundchip you can still have soundeffects, but I have not found a way to play music alongside gameplay. I have made TRAXE chiptune software and that uses the standard Freq() command to play notes. This engine is not suited for games of course. The sample that I made in fl-studio is about what you can expect from the soundchip music. The linkport version will never come anywere close to it, so I don't think it's worth the framerate drop it would cause.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 24, 2013, 04:22:03 am
Yeah it's called Metroid II: Evolution, actually. But there is an expansion set called Metroid II: The Last Chozo Expansion Set (which isn't really an expansion set since the extra maps were eventually merged into the entire game). But yeah it's a entire new series.

As for sound I see. From what I could often see, games with sound that doesn't require modding the hardware usually just do beeps worse than the Atari 2600 instead of long beeps, but no one seems to have ever attempted playing real music inside a game, even if there is just 1 channel. I think it could be possible, but not in such type of game, more like an RPG that requires no physics and not much real time stuff, and even then, the framerate would have to be dropped and the game be 15 MHz-only. As for double channel sound via the link port, I have to wonder how terrible it would sound. X.x
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 24, 2013, 04:24:55 am
An rpg could have music in fights, because only animations and would interrupt the sounds, but given Hero Core is an action exploration game it's not really an option.

Edit: I managed to increase the speed of the transfer protocol *.* There is barely any lag even when there is a register write every interrupt. Writing 10kB takes 9 seconds, so that is a little over 1kB/sec (which is quite good considering the original protocol was 2kB/sec without any cpu load from the SID emulation on the arduino!)
The bottleneck is still the arduino. I can only send in bits as fast as it can process them.

My music engine on the TI84+ end is very lightweight and I tested it with the worst case scenario: A register write every interrupt on speed 6 (speed 2,0 made the framerate plummet). I barely have a fps drop.

The game runs at around 25fps with music and 27 without. I think most people won't mind the 3fps drop if they can have music.


Summary:
25fps with music engine on
1KB/s link protocol
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on June 24, 2013, 07:47:46 am
That sounds awesome ! :D
Also 25fps is still the same framerate as a BluRay disc so I don't think people would even notice the difference. Except maybe hardcore gamers used to 60fps. :P
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 24, 2013, 08:41:07 am
Latest dev-build:
http://www.omnimaga.org/index.php?action=dlattach;topic=10057.0;attach=15489

I disabled some w.i.p. features because they are game-breaking. When you press F1 the soundeffects are enabled. These soundeffects come straight from the I/O port.

New in this version:
Animated tiles
Blade: charge up your peashooter and release the charge to cut trough dirt blocks.
Generator mini boss (work in progress)
TIMID compatible music engine (but no music yet)
Stuff.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 24, 2013, 11:38:52 am
A mockup of the map screen. When the world gets larger you need a map to keep track of where you have been.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 24, 2013, 05:08:52 pm
Oooh that looks nice! I'll also try the version you posted soon :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 25, 2013, 11:11:18 am
Herocore has just passed the 8K barrier with the addition of the pause menu. I partially implemented a map system. I want worlds to be of variable size, so others can make their own (larger) worlds if they like. My test world is only 4x4 rooms, so the full map still fits on screen, but when it is 15x15 rooms like the original game it requires some form of scrolling trough the world map in order to view the whole thing. I think I'm going to keep things simple for now: tile-based scrolling for the world map screen instead of smooth scrolling.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on June 25, 2013, 12:16:09 pm
Just for info : if you include data in the executable (very likely since there are strings and sprites), note that the limit is not on the file size but the executable code size. This means that if Axe says more than 8k, you did not necessarily break the $C000 limit. ;) Apps, however are limited to 16k total size.

That sounds cool for the maps though smooth scrolling is not terribly hard. ;)
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 25, 2013, 12:52:24 pm
I guess it would be fine. I hope that passing the 8K barrier won't pose problems for you though? :O (I saw Axe projects die because of that before) Will it be possible for this game to use Flash APP format or something like Fullrene and Crabcake?
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on June 25, 2013, 01:21:28 pm
I'd recommend Fullrene as it's cleaner than Crabcake and lets you use the whole user RAM => even more coding space than APP while filesize is exactly what it contains, no blank space, and faster execution due to no flash timings.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 25, 2013, 01:27:14 pm
I compiled it for mirageOS and I will compile it for all shells supported by axe for the next release. Like this I can have larger programs. Maps, music and savedata are stored in appvars and is not included in the 8k. My testmap is 1.5k. The full map will be approximately 19k.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 25, 2013, 03:59:47 pm
Actually now that I remember, Crabcake didn't work with newer versions of Axe. It was actually the first program of its kind, but then Fullrene made it even better and supported newer Axe versions. I hope it works with 1.1.2 at least.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 25, 2013, 04:27:31 pm
Fullrene fixed it I think. I have not encountered a single ram clear yet. With crabcake I have had 5 ram clears. I fixed a bug that caused the game to start over when you fire a bullet when you're stuck inside a wall. Now you cannot fire bullets when you're stuck. I am going to re-do some of the bullet code so there can be more bullets on screen.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on June 25, 2013, 04:39:44 pm
This is looking great. I'll try the new demo you posted when I have some time. :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 25, 2013, 05:49:05 pm
Good to hear :D. But remember to continue backing up regularly (perhaps more often now in case).  As for being stuck inside walls did you manage to fix that too? :P

And yeah more bullets would be nice since it can be annoying to kill enemies if we can only shoot one or two bullets at once like in some old games, but I understand that this can cause lag, which is why some games refrain from adding such features.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 26, 2013, 02:48:41 am
You can get stuck inside walls when you go from one room to oneother and there's blocks in the way. You can still go back, but you cannot shoot inside the block anymore now, so that is a good thing. On rare occasion the glitch also happened when cutting trough a dirt block and fireing shortly after that, but it seems to have fixed itself. With the protection code in place it should not happen in the future anymore.

I'm going to add these features for the next build:
- Bullet code fix: allow more enemy projectiles on screen (current limit is 6.)
- World map
- Pause menu
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 26, 2013, 04:24:09 am
That reminds me a Mana Force glitch due to an error in map design >.<, the only way to get out was to save then quit (you always restarted in the village when reloading the game). In some games of the Illusiat and ROL series when there are blocks in the way that doesn't happen because the map data is about 80x56 large rather than just one screen. In games with individual maps like Illusiat 13 or Reuben Quest, I often got stuck into walls in a similar way as your game, due to map design errors, but thankfully I would spot them fast then fix them before release.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 26, 2013, 04:33:29 am
In hero core you can warp to any savepoint you visited by holding down both fire buttons, so if you manage to get stuck due to a glitch you can get out. (feature not implemented.)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 26, 2013, 11:32:47 am
This is not the full map. I am shrinking down existing rooms to fit the screen.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Matrefeytontias on June 26, 2013, 11:33:47 am
Looks nice :D can't wait to play the game !
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on June 26, 2013, 11:36:25 am
Looks pretty cool. :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 26, 2013, 12:26:14 pm
It's quite a challenge to pack the same design features in every room at this low resolution, but in the end it will be worth it.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 26, 2013, 06:30:10 pm
Looks very nice so far! Reminds me of Atari 2600 games but platform-based instead of top-down view (most Atari platform games were just one single room) :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 27, 2013, 02:05:38 pm
Allright! I just cranked up the max amount of enemy projectiles on screen simultaniously to 20. It seems to work just fine although I don't know what happens when there are 20 projectiles on screen at once. It might lag. It might not.

How many enemies on screen would be ideal? Right now only 6 enemies can be onscreen simultaniously. I figured 8 would be enough. I can change it easily if I need to.

Edit: Here's a mockup on one of the bosses:
There are 11 main bosses in the original game. There is no way I'm going to put all of them in the calc version just because every boss requires a lot of code for the patterns. I might just pick 3-4 and re-use them with different sprites and difficulty.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 28, 2013, 04:02:51 am
Allright. Tonight I figured out what caused that weird bug with the fireing-in-blocks-kills-you thing.
I noticed that if you shoot a bullet and the instance destroys when it's still within the player's collision box you get hit by the destroyed bullet 65535 times. This is because it is not being checked if the bullet exists before it checks a collision with the player. I fixed it this morning. Now I don't have to check if the player is stuck in a wall and prevent it from fireing inside of a wall anymore since the code is now fixed.

Edit: I might do some work on the projectile code first, but I hope to write some code for bossfights soon. Bosses in Hero Core have weakspots and I'd like to re-use the enemy code for those weakspots, so the weakspots are basically enemies that are placed relative to the boss. The rest of the boss will be indestructible. The bosses in herocore do not have super complex patterns but implementing all of them is going to be tough.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on June 28, 2013, 05:42:03 pm
Hooray for smashing bugs! \o/
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on June 28, 2013, 06:45:11 pm
Yeah. It was a game-breaking bug that occured occasionally and it took me some time to figure out what was happening.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on June 30, 2013, 09:41:31 pm
Looks very nice! :D

Just make sure that the bosses are beatable at all, though. :P
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 06, 2013, 07:14:28 am
New wall tiles. The original game had plain white tiles for walls, but I think given the low resolution I should put more detail into individual tiles. Wall tiles are new.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on July 06, 2013, 07:29:26 am
Nice ! The save point looks pretty cool too. :D I wish I were good at pixel art. D:
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 06, 2013, 07:31:30 am
I spent about 15 minutes teaking the wall texture so it did not look weird when tiled or used as a single block. You can learn this, but it requires a lot of time and patience.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on July 06, 2013, 07:33:45 am
I guess it does.
What are the wall tiles supposed to represent ? Is the world some sort of cave ? I never played Herocore.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 06, 2013, 07:36:51 am
These are not tiles found in the original herocore. As I said the walls in herocore are just plain white blocks, but because of the level design it can represent anything. Sometimes the level looks like a cave and sometimes it looks like a metal structure. Because I do not have large rooms I have to make the tiles suggest which environment the player is in. The rocky tiles are for natural environments including caves.

In herocore you enter a large asteroid with a fortress inside. The fortified room containing the final boss is surrounded by caves, factories and different zones. In these area's you find a boss which give you items upon death which make it easier to progress. Once you arrive at the last boss your chance of survival depends on your skill and the amount of items that you have collected from bosses. (you do not have to defeat them all to get to the last boss, but the boss is easier to defeat with your stats maxed out)
Title: Re: [WIP] TI84+ Herocore clone
Post by: Streetwalrus on July 06, 2013, 07:40:10 am
OK thanks for the breakdown. :) I hope you have some progress behind the scenes. :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Sorunome on July 06, 2013, 06:16:34 pm
Ui, I like those new wall tiles, nice job on 'em! :D
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on July 07, 2013, 02:36:20 am
Wow this looks much better now! :D  Although the original game had no wall textures I think for a calc game people might be disappointed at the graphics if walls were plain white squares. The issue is mostly how many people aren't aware that the original game existed and have always been used to textured walls.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 07, 2013, 12:23:00 pm
In Hero Core you save your game at a floppy disk icon. Therefore I thought it was fitting to back up my coding progress on this 3,5 inch disk.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Sorunome on July 07, 2013, 01:57:37 pm
Don't you store all your progs on a floppy disk? :P
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 07, 2013, 02:48:36 pm
Not yet :P It takes a while to put everything on there.
Title: Re: [WIP] TI84+ Herocore clone
Post by: DJ Omnimaga on July 08, 2013, 12:02:38 am
You are lucky, you still have a working computer that has a floppy drive. D:
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on July 08, 2013, 12:14:58 am
In Hero Core you save your game at a floppy disk icon. Therefore I thought it was fitting to back up my coding progress on this 3,5 inch disk.

Ahahaha, that's great! :D It's been a while since I've seen one of those.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 08, 2013, 03:45:27 am
You are lucky, you still have a working computer that has a floppy drive. D:
Actually: I had to put it in there myself since it did not come with one. I once got 8 3,5inch diskette drives from someone and I spraypainted one black to match my pc's color. Luckily my motherboard still has a header for it.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Sorunome on July 08, 2013, 04:16:18 am
You are lucky, you still have a working computer that has a floppy drive. D:
My old dinasaur had a floppy drive but it was broken :/
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 08, 2013, 04:17:15 am
4 out of all my pc's have floppydrives and they all work :)
Title: Re: [WIP] TI84+ Herocore clone
Post by: ElementCoder on July 08, 2013, 04:29:11 am
I had a pc which had a floppydrive, then I got rid of it. Now I regret it :( On topic: Those wall textures look nice, I hope that the bosses won't give you too much of a headache.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on July 08, 2013, 04:18:31 pm
I am sticking with the theme of this project: Keeping everything lightweight, so I can add more features. Simple effects like bouncing off walls only requires a few lines of code, so there you have a new type of AI for like 4 more enemies and bosses.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 23, 2014, 04:47:31 pm
Screenshots for upcoming build.
(http://8times8.eeems.me:81/project/software/83p/herocore/media/screenshot000.gif)

(http://8times8.eeems.me:81/project/software/83p/herocore/media/screenshot001.gif)

Planned features:
+ Sound effects enabled (it was in the previous build, but they were not enabled)
+ New tile-system allowing for some optimizations and easier expansion of the tileset
+ New tiles including: Doors, Barriers
+ New animated tiles: Liquid metal cascade, antenna, items
+ Weapon and shield upgrade pickups
+ Collision checking for tiles in adjacent rooms prevents you from getting stuck in solid tiles that are in another room. It also allows for some pretty interesting level design. (e.g. one-way passageways with destructable tiles)
+ Larger test world to contain it all
* Some bugfixes

Green == done.
Download will be available this week.

Sound demonstration:
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on November 23, 2014, 06:49:14 pm
Yay progress! Looking nice! Also, those sfx sound surprisingly Atari 2600 like. ;D
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 25, 2014, 01:44:47 pm
Today I worked on the music playback engine. A TIMID soundchip is required for this feature.
The file format I'll be using is very similar to MIDI, so converting MIDI files to appvars that can be read by the player should not be too difficult.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on November 25, 2014, 04:17:23 pm
What about sound effects? I assume that those can be played independently right?
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 25, 2014, 05:08:46 pm
I might have to add a sfx channel to the library that TIMID uses cause I really need 3 chans for music. I could make it like nes games where music and sfx share a channel, but it might get messy.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on November 25, 2014, 06:19:34 pm
I was just curious, because you showed sfx working in the video before you said you were working on the music engine that required timid. I thought perhaps the two were independent.
Title: Re: [WIP] TI84+ Herocore clone
Post by: KaiserKK10 on November 25, 2014, 07:05:11 pm
Sounds like a fun program nice! :) :) :) :evillaugh:
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 26, 2014, 03:39:34 am
I was just curious, because you showed sfx working in the video before you said you were working on the music engine that required timid. I thought perhaps the two were independent.
It is not possible to have TIMID sound and sound coming directly from the linkport simultaneously. I need both I/O lines for communication.
Title: Re: [WIP] TI84+ Herocore clone
Post by: TIfanx1999 on November 26, 2014, 06:05:48 pm
Ah, ok. I was thinking along the lines of if the user didn't have TIMID they could still have sfx (with the proper cable). I'd Imagine a single channel of sfx wouldn't be too difficult. Perhaps the sound engine could be separate from the main program and the user could choose to either have no sound, just sfx (generated by hardware only), or full sound with TIMID. Just thinking hypothetically. Most users won't be using sound anyway, but just a few thoughts there for ya.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 27, 2014, 05:54:22 pm
As I said on IRC: yes that will be the case. This is implemented already, but I have not added an option for it in the menu yet.

I have been fixing bugs all night.
- Cut ability spawns a bullet in the left top part of the screen.[SOLVED]
- Savepoint in first room does not work. Only after re-entering the room it works. [SOLVED]
- Cut ability charge animation freezes after a while. [SOLVED]

I found out that there is another memory leak somewhere. It causes TblSet to corrupt. I dunno what causes this. Will find out soon I hope.
Title: Re: [WIP] TI84+ Herocore clone
Post by: Keoni29 on November 29, 2014, 08:00:48 am
I found out that the interrupts were causing the memory leak. I disabled them for now, but I will come back to that later. The newest test build is finally  here!

Run in DCS

What's new?
+ A huge 9x9 room world map to explore.
+ Collision checking for tiles in adjacent rooms prevents you from getting stuck in solid tiles that are in another room.
+ New tile system that allows for rapid expansion of the tile set
+ Added lots of new tiles + animated tiles
+ Added barriers (cannot be disabled yet)
+ Added doors (cannot be opened yet)
+ Added items (cannot be picked up yet)

+ Split up AI into modules, so new AI can be made by combining modules (example: Reaver = spew + drone)
+ New enemies! Blomb, Reaver
+ Enemies now face towards you

+ Sound can be enabled from the menu

+ Small graphics tweaks

* Tons of bugfixes

Be sure to let me know if you find any bugs!
Title: Re: [83p] Hero Core
Post by: Keoni29 on December 03, 2014, 04:39:26 pm
Fixed interrupts causing memory leak. Also fixed a small bug that made the cut ability not work sometimes.
Also fixed fullrene bug on TI83+BE
Title: Re: [83p] Hero Core
Post by: TIfanx1999 on December 03, 2014, 04:55:27 pm
Cool, I'll check it out shortly. :D
Title: Re: Hero Core - World Editor
Post by: Keoni29 on January 02, 2015, 04:03:07 pm
Core Editor
Up until this point I was using Gamemaker's built-in level editor for creating the Hero Core world. I did not like that editor, so I decided to make my own.
The result was a tool called Core Editor (short cedit.)

I want users to create worlds of their own for others to explore. The editor is open-source, but it is not finished yet.
You can check it out for yourself here: http://github.com/keoni29/cedit

The editor is to be fully customizable from the command line. I have not tried to compile it for windows yet, but it's supposed to be cross-platform.

(https://raw.githubusercontent.com/keoni29/cedit/master/screenshots/screenshot2.png)

Features:
- SDL graphics
- Grid
- Scrolling
- Tileset sheets
- Auto-load & save on program startup/end respectively
Title: Re: [83p] Hero Core
Post by: TIfanx1999 on January 02, 2015, 05:02:05 pm
Very nice! This should make dev go easier since this tool is built specifically for Hero Core. :D