Kiwi Posted June 27, 2017 Share Posted June 27, 2017 (edited) I wanted to share this... Ever since I saw that post on the programming forum that is no longer there, I wanted to try doing full motion video stuff for the Colecovision. I decided to leave the color table data out and use fill_vram to fill in the color table, so 1-bit video would play. I created the animation in Cinema 4D, and used cell rendering feature to render the animation in 1 color. Then render a frame at a time and save it to bitmap. I don't know how to extract bitmap as a 1-bit pixel table so I booted up Paint Shop Pro 4 and mass open all the bitmap files I made for the scene. And also booted up CVpaint 2 since it load/process picture from the clipboard. I used copy to get the frame into the clipboard, and in CVpaint, I clicked on paste and loaded the picture as a black and white picture. And produce a .c file as a rle'd data. I used Cinema 4D to help me draw Pacman and ghost in CVsprite 2. I wanted Pacman to be 2 sprites a line, but it'll take more sprite data to store the punched out version of the sprites. The ghosts are 2 sprites a line. I flickered between 2 sprites to add an additional color to pacman and the power pellet. I had to do the same for Flappe Byrd Medal scene. And the game itself is kinda making fun of modern game for being too easy and handholdy. This game have 4 FMV animation sequence, the title, board zoom in scene, Pac death scene, and the winning scene. I made MSPAC being the support person like Roll in Megaman Legend or Navi in Zelda:OoT. Score wasn't important in modern game so I left out the scoring feature. Just get to the Power Pallet and you have beaten the game. Also, the enemy doesn't even attempt to chase after you in this game. I may expand using this FMV idea. I haven't yet make a 256KB or 512KB ROM. Just 128KB that is successfully made. The very least, I do want to make a FMV stuff for my 128KB version of Rockcutter, so these 4 pages of data have something in them. ROM: CallOfPac.rom Video: Edited June 27, 2017 by Kiwi 14 Quote Link to comment Share on other sites More sharing options...
Ikrananka Posted June 27, 2017 Share Posted June 27, 2017 I really like the FMV when you collect the power pellet. Looks really good. Quote Link to comment Share on other sites More sharing options...
TPR Posted June 27, 2017 Share Posted June 27, 2017 Wow! That was cool! What a great use of that tech! Quote Link to comment Share on other sites More sharing options...
+nanochess Posted June 27, 2017 Share Posted June 27, 2017 The winning animation is amazing Quote Link to comment Share on other sites More sharing options...
Tursi Posted June 28, 2017 Share Posted June 28, 2017 That's pretty awesome. I did some work on raw video conversion on the TI side, I have a script that will output raw video data interleaved with audio - though I haven't written a Coleco player due to memory usage. I use only half the bitmap screen to improve frame rate, but it still chows down memory fast... even a 1MB megacart doesn't go very far. But, if you're curious check the thread here - it links to some YouTube samples (some of which are down) - http://atariage.com/forums/topic/234632-animation-playback-on-the-ti-994a/ 1 Quote Link to comment Share on other sites More sharing options...
Kiwi Posted June 28, 2017 Author Share Posted June 28, 2017 ROM: BTshort.rom I was curious how well it handles doing both pattern and colors table. Not really well. 3-4 frames per 16KB bank. At least the majority of the Burgertime short I did 8 years ago made it in. After all, Burgertime was the game that made me get a Colecovision. Here's the short: Tursi, I did come across that animation thread. I thought it was really cool!! I did send my sister the link of Frozen, Let it Go few years ago. When you say memory, you're referring to ROM size? I think the Ultimate SD cartridge might use up to 1024KB, it has the 512KB ROM that test bankswitching. 7 Quote Link to comment Share on other sites More sharing options...
ValkerieSilk Posted June 28, 2017 Share Posted June 28, 2017 Very cool ... The BT short reminded me of the Max Headroom effect albiet a bit slower... Quote Link to comment Share on other sites More sharing options...
+nanochess Posted June 28, 2017 Share Posted June 28, 2017 I would suggest only 128 chars per section and use a hidden switcheable pattern screen in order to avoid update glitches. 1 Quote Link to comment Share on other sites More sharing options...
artrag Posted June 28, 2017 Share Posted June 28, 2017 I second that, you definitely need two pages for updating color and shapes at the same time 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted June 28, 2017 Share Posted June 28, 2017 Tursi, I did come across that animation thread. I thought it was really cool!! I did send my sister the link of Frozen, Let it Go few years ago. When you say memory, you're referring to ROM size? I think the Ultimate SD cartridge might use up to 1024KB, it has the 512KB ROM that test bankswitching. Yeah... my smallest sample is the SpaceBalls clip, that requires 2MB of ROM. Most of the cart samples I made at 16MB, and a few hit 32MB (which is the TI's theorhetical maximum with the bank switching scheme we are using - no hardware larger than 2MB exists yet though). Loving your clips though Quote Link to comment Share on other sites More sharing options...
artrag Posted June 29, 2017 Share Posted June 29, 2017 Kiwi, if you send me the loose frames of your burger time animation I would try to adapt some msx tools I developed few years ago. Quote Link to comment Share on other sites More sharing options...
artrag Posted June 29, 2017 Share Posted June 29, 2017 This is a sample of the results 4 Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 3, 2020 Share Posted September 3, 2020 On 6/27/2017 at 12:05 PM, Kiwi said: I wanted to share this... Ever since I saw that post on the programming forum that is no longer there, I wanted to try doing full motion video stuff for the Colecovision. I decided to leave the color table data out and use fill_vram to fill in the color table, so 1-bit video would play. I created the animation in Cinema 4D, and used cell rendering feature to render the animation in 1 color. Then render a frame at a time and save it to bitmap. I don't know how to extract bitmap as a 1-bit pixel table so I booted up Paint Shop Pro 4 and mass open all the bitmap files I made for the scene. And also booted up CVpaint 2 since it load/process picture from the clipboard. I used copy to get the frame into the clipboard, and in CVpaint, I clicked on paste and loaded the picture as a black and white picture. And produce a .c file as a rle'd data. I used Cinema 4D to help me draw Pacman and ghost in CVsprite 2. I wanted Pacman to be 2 sprites a line, but it'll take more sprite data to store the punched out version of the sprites. The ghosts are 2 sprites a line. I flickered between 2 sprites to add an additional color to pacman and the power pellet. I had to do the same for Flappe Byrd Medal scene. And the game itself is kinda making fun of modern game for being too easy and handholdy. This game have 4 FMV animation sequence, the title, board zoom in scene, Pac death scene, and the winning scene. I made MSPAC being the support person like Roll in Megaman Legend or Navi in Zelda:OoT. Score wasn't important in modern game so I left out the scoring feature. Just get to the Power Pallet and you have beaten the game. Also, the enemy doesn't even attempt to chase after you in this game. I may expand using this FMV idea. I haven't yet make a 256KB or 512KB ROM. Just 128KB that is successfully made. The very least, I do want to make a FMV stuff for my 128KB version of Rockcutter, so these 4 pages of data have something in them. ROM: CallOfPac.rom 31.12 kB · 88 downloads Video: Hi there, Kiwi. I was able to port this to MSX, I can show it to you if you're interested. ? 1 Quote Link to comment Share on other sites More sharing options...
Kiwi Posted September 4, 2020 Author Share Posted September 4, 2020 10 hours ago, Taylor the Gaming Guy said: Hi there, Kiwi. I was able to port this to MSX, I can show it to you if you're interested. ? Cool! Sure. Pretty neat you were able to convert C converted to asm code to the MSX. I still have the source code, however the 3D objects were not saved. Speaking of smooth scrolling, I've been experimenting with smooth scrolling lately. The game's very early. I load the char in 0x0400,0x0c02,0x1404, 0x2c06. So it's shifted by 2. What I'm doing is doing like what NES does when changing CHR-ROM bank, I'm loading new value to the register that holds the address for the CHR. I'm doing this in screen mode 1(1 char/color table), since the mirroring bug doesn't occur in that mode I believe. It copies from the main screen, and paste to the other screen 3lines a frame. Then draw new strip on top before flipping to the other screen. It has enough time to do 6 rows I experimented, but it leave little leftover for CPU time and I'm running the game at 30 fps. 4th speed probably going to be used for escape sequence. I'm using 32 bytes of RAM to do this. 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 4, 2020 Share Posted September 4, 2020 Don't forget you can use the Magellan tool to create large maps and have it automatically generate the characters needed for smooth scrolling. I haven't done much with it myself, but it can save you some time - 1 Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 4, 2020 Share Posted September 4, 2020 2 hours ago, Kiwi said: Cool! Sure. Pretty neat you were able to convert C converted to asm code to the MSX. I still have the source code, however the 3D objects were not saved. Speaking of smooth scrolling, I've been experimenting with smooth scrolling lately. The game's very early. I load the char in 0x0400,0x0c02,0x1404, 0x2c06. So it's shifted by 2. What I'm doing is doing like what NES does when changing CHR-ROM bank, I'm loading new value to the register that holds the address for the CHR. I'm doing this in screen mode 1(1 char/color table), since the mirroring bug doesn't occur in that mode I believe. It copies from the main screen, and paste to the other screen 3lines a frame. Then draw new strip on top before flipping to the other screen. It has enough time to do 6 rows I experimented, but it leave little leftover for CPU time and I'm running the game at 30 fps. 4th speed probably going to be used for escape sequence. I'm using 32 bytes of RAM to do this. Okay, I will be just there on the MSX site soon. BTW, I would love to also convert this to MSX too. ? Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 4, 2020 Share Posted September 4, 2020 On 6/28/2017 at 9:56 AM, Kiwi said: ROM: BTshort.rom I was curious how well it handles doing both pattern and colors table. Not really well. 3-4 frames per 16KB bank. At least the majority of the Burgertime short I did 8 years ago made it in. After all, Burgertime was the game that made me get a Colecovision. Here's the short: Tursi, I did come across that animation thread. I thought it was really cool!! I did send my sister the link of Frozen, Let it Go few years ago. When you say memory, you're referring to ROM size? I think the Ultimate SD cartridge might use up to 1024KB, it has the 512KB ROM that test bankswitching. I have this too, IDK if I can convert this to MSX though. Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 4, 2020 Share Posted September 4, 2020 On 6/27/2017 at 12:05 PM, Kiwi said: I wanted to share this... Ever since I saw that post on the programming forum that is no longer there, I wanted to try doing full motion video stuff for the Colecovision. I decided to leave the color table data out and use fill_vram to fill in the color table, so 1-bit video would play. I created the animation in Cinema 4D, and used cell rendering feature to render the animation in 1 color. Then render a frame at a time and save it to bitmap. I don't know how to extract bitmap as a 1-bit pixel table so I booted up Paint Shop Pro 4 and mass open all the bitmap files I made for the scene. And also booted up CVpaint 2 since it load/process picture from the clipboard. I used copy to get the frame into the clipboard, and in CVpaint, I clicked on paste and loaded the picture as a black and white picture. And produce a .c file as a rle'd data. I used Cinema 4D to help me draw Pacman and ghost in CVsprite 2. I wanted Pacman to be 2 sprites a line, but it'll take more sprite data to store the punched out version of the sprites. The ghosts are 2 sprites a line. I flickered between 2 sprites to add an additional color to pacman and the power pellet. I had to do the same for Flappe Byrd Medal scene. And the game itself is kinda making fun of modern game for being too easy and handholdy. This game have 4 FMV animation sequence, the title, board zoom in scene, Pac death scene, and the winning scene. I made MSPAC being the support person like Roll in Megaman Legend or Navi in Zelda:OoT. Score wasn't important in modern game so I left out the scoring feature. Just get to the Power Pallet and you have beaten the game. Also, the enemy doesn't even attempt to chase after you in this game. I may expand using this FMV idea. I haven't yet make a 256KB or 512KB ROM. Just 128KB that is successfully made. The very least, I do want to make a FMV stuff for my 128KB version of Rockcutter, so these 4 pages of data have something in them. ROM: CallOfPac.rom 31.12 kB · 92 downloads Video: BTW, https://www.msx.org/forum/msx-talk/software/im-looking-for-gdx?page=5#comment-388307 Enjoy. ? Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 4, 2020 Share Posted September 4, 2020 (edited) You can also watch the gameplay here You must press N to start the game. Edited September 4, 2020 by Taylor the Gaming Guy Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted September 4, 2020 Share Posted September 4, 2020 What other Coleco homebrew should I convert next? Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted October 8, 2020 Share Posted October 8, 2020 On 6/28/2017 at 9:56 AM, Kiwi said: ROM: BTshort.rom I was curious how well it handles doing both pattern and colors table. Not really well. 3-4 frames per 16KB bank. At least the majority of the Burgertime short I did 8 years ago made it in. After all, Burgertime was the game that made me get a Colecovision. Here's the short: Tursi, I did come across that animation thread. I thought it was really cool!! I did send my sister the link of Frozen, Let it Go few years ago. When you say memory, you're referring to ROM size? I think the Ultimate SD cartridge might use up to 1024KB, it has the 512KB ROM that test bankswitching. I am also trying to port this to MSX. Quote Link to comment Share on other sites More sharing options...
Kiwi Posted October 10, 2020 Author Share Posted October 10, 2020 On 10/8/2020 at 8:49 AM, Taylor the Gaming Guy said: I am also trying to port this to MSX. It's basically 1 fixed 16KB lower ROM and 16 bankable Upper ROM. The source code is basically loading image/color from RLE format. Nmi is disabled through out. I don't think MSX has vram corruption issue that Colecovision does. All I know MSX has their interrupt connected to INT and not NMI for the VDP. #define SWITCH_IN_BANK1 { dummy=(*(volatile unsigned char*)0xFFF0); } // b0 with 64k #define SWITCH_IN_BANK2 { dummy=(*(volatile unsigned char*)0xFFF1); } // b0 with 64k #define SWITCH_IN_BANK3 { dummy=(*(volatile unsigned char*)0xFFF2); } // b1 with 64k #define SWITCH_IN_BANK4 { dummy=(*(volatile unsigned char*)0xFFF3); } // b2 with 64k #define SWITCH_IN_BANK5 { dummy=(*(volatile unsigned char*)0xFFF4); } // b0 with 64k #define SWITCH_IN_BANK6 { dummy=(*(volatile unsigned char*)0xFFF5); } // b1 with 64k #define SWITCH_IN_BANK7 { dummy=(*(volatile unsigned char*)0xFFF6); } // b2 with 64k #define SWITCH_IN_BANK8 { dummy=(*(volatile unsigned char*)0xFFF7); } // b0 with 64k #define SWITCH_IN_BANK9 { dummy=(*(volatile unsigned char*)0xFFF8); } // b0 with 64k #define SWITCH_IN_BANKa { dummy=(*(volatile unsigned char*)0xFFF9); } // b1 with 64k #define SWITCH_IN_BANKb { dummy=(*(volatile unsigned char*)0xFFFa); } // b2 with 64k #define SWITCH_IN_BANKc { dummy=(*(volatile unsigned char*)0xFFFb); } // b0 with 64k #define SWITCH_IN_BANKd { dummy=(*(volatile unsigned char*)0xFFFc); } // b1 with 64k #define SWITCH_IN_BANKe { dummy=(*(volatile unsigned char*)0xFFFd); } // b2 with 64k #define SWITCH_IN_BANKf { dummy=(*(volatile unsigned char*)0xFFFe); } // b0 with 64k void main(void) { screen_mode_2_bitmap(); screen_on(); reset: delay(2); SWITCH_IN_BANK1; delay(1); rle2vram(a42,0); rle2vram(a42c,0x2000); delay(8); rle2vram(a43,0); rle2vram(a43c,0x2000); delay(8); rle2vram(a44,0); rle2vram(a44c,0x2000); delay(8); rle2vram(a45,0); SWITCH_IN_BANK2; rle2vram(a45c,0x2000); delay(8); rle2vram(a46,0); rle2vram(a46c,0x2000); delay(8); rle2vram(a47,0); rle2vram(a47c,0x2000); delay(8); rle2vram(a53,0); rle2vram(a53c,0x2000); delay(8); SWITCH_IN_BANK3; rle2vram(a55,0); rle2vram(a55c,0x2000); delay(8); rle2vram(a56,0); rle2vram(a56c,0x2000); delay(8); rle2vram(a57,0); rle2vram(a57c,0x2000); delay(8); rle2vram(a58,0); SWITCH_IN_BANK4; rle2vram(a58c,0x2000); delay(8); rle2vram(a59,0); rle2vram(a59c,0x2000); delay(8); rle2vram(a60,0); rle2vram(a60c,0x2000); delay(8); rle2vram(a61,0); SWITCH_IN_BANK5; rle2vram(a61c,0x2000); delay(8); rle2vram(a62,0); rle2vram(a62c,0x2000); delay(8); rle2vram(a63,0); rle2vram(a63c,0x2000); delay(8); rle2vram(a64,0); SWITCH_IN_BANK6; rle2vram(a64c,0x2000); delay(8); rle2vram(a65,0); rle2vram(a65c,0x2000); delay(8); rle2vram(a66,0); rle2vram(a66c,0x2000); delay(8); rle2vram(a67,0); SWITCH_IN_BANK7; rle2vram(a67c,0x2000); delay(8); rle2vram(a71,0); rle2vram(a71c,0x2000); delay(32); rle2vram(a75,0); SWITCH_IN_BANK8; rle2vram(a75c,0x2000); delay(32); rle2vram(a79,0); rle2vram(a79c,0x2000); delay(16); rle2vram(a81,0); rle2vram(a81c,0x2000); delay(8); rle2vram(a82,0); SWITCH_IN_BANK9; rle2vram(a82c,0x2000); delay(8); rle2vram(a83,0); rle2vram(a83c,0x2000); delay(8); rle2vram(a84,0); rle2vram(a84c,0x2000); delay(8); rle2vram(a85,0); SWITCH_IN_BANKa; rle2vram(a85c,0x2000); delay(8); rle2vram(a86,0); rle2vram(a86c,0x2000); delay(8); rle2vram(a87,0); rle2vram(a87c,0x2000); delay(8); rle2vram(a88,0); SWITCH_IN_BANKb; rle2vram(a88c,0x2000); delay(8); rle2vram(a89,0); rle2vram(a89c,0x2000); delay(8); rle2vram(a90,0); rle2vram(a90c,0x2000); delay(8); rle2vram(a91,0); SWITCH_IN_BANKc; rle2vram(a91c,0x2000); delay(8); rle2vram(a92,0); rle2vram(a92c,0x2000); delay(8); rle2vram(a93,0); rle2vram(a93c,0x2000); delay(8); rle2vram(a94,0); SWITCH_IN_BANKd; rle2vram(a94c,0x2000); delay(8); rle2vram(a95,0); rle2vram(a95c,0x2000); delay(8); rle2vram(a96,0); rle2vram(a96c,0x2000); delay(8); rle2vram(a97,0); SWITCH_IN_BANKe; rle2vram(a97c,0x2000); delay(8); rle2vram(a98,0); rle2vram(a98c,0x2000); delay(8); rle2vram(a99,0); rle2vram(a99c,0x2000); delay(8); rle2vram(aa0,0); SWITCH_IN_BANKf; rle2vram(aa0c,0x2000); delay(16); rle2vram(aa2,0); rle2vram(aa2c,0x2000); delay(8); rle2vram(aa3,0); rle2vram(aa3c,0x2000); delay(8); a=1; delay(60); goto reset; } Quote Link to comment Share on other sites More sharing options...
Taylor the Gaming Guy Posted October 10, 2020 Share Posted October 10, 2020 1 hour ago, Kiwi said: It's basically 1 fixed 16KB lower ROM and 16 bankable Upper ROM. The source code is basically loading image/color from RLE format. Nmi is disabled through out. I don't think MSX has vram corruption issue that Colecovision does. All I know MSX has their interrupt connected to INT and not NMI for the VDP. #define SWITCH_IN_BANK1 { dummy=(*(volatile unsigned char*)0xFFF0); } // b0 with 64k #define SWITCH_IN_BANK2 { dummy=(*(volatile unsigned char*)0xFFF1); } // b0 with 64k #define SWITCH_IN_BANK3 { dummy=(*(volatile unsigned char*)0xFFF2); } // b1 with 64k #define SWITCH_IN_BANK4 { dummy=(*(volatile unsigned char*)0xFFF3); } // b2 with 64k #define SWITCH_IN_BANK5 { dummy=(*(volatile unsigned char*)0xFFF4); } // b0 with 64k #define SWITCH_IN_BANK6 { dummy=(*(volatile unsigned char*)0xFFF5); } // b1 with 64k #define SWITCH_IN_BANK7 { dummy=(*(volatile unsigned char*)0xFFF6); } // b2 with 64k #define SWITCH_IN_BANK8 { dummy=(*(volatile unsigned char*)0xFFF7); } // b0 with 64k #define SWITCH_IN_BANK9 { dummy=(*(volatile unsigned char*)0xFFF8); } // b0 with 64k #define SWITCH_IN_BANKa { dummy=(*(volatile unsigned char*)0xFFF9); } // b1 with 64k #define SWITCH_IN_BANKb { dummy=(*(volatile unsigned char*)0xFFFa); } // b2 with 64k #define SWITCH_IN_BANKc { dummy=(*(volatile unsigned char*)0xFFFb); } // b0 with 64k #define SWITCH_IN_BANKd { dummy=(*(volatile unsigned char*)0xFFFc); } // b1 with 64k #define SWITCH_IN_BANKe { dummy=(*(volatile unsigned char*)0xFFFd); } // b2 with 64k #define SWITCH_IN_BANKf { dummy=(*(volatile unsigned char*)0xFFFe); } // b0 with 64k void main(void) { screen_mode_2_bitmap(); screen_on(); reset: delay(2); SWITCH_IN_BANK1; delay(1); rle2vram(a42,0); rle2vram(a42c,0x2000); delay(8); rle2vram(a43,0); rle2vram(a43c,0x2000); delay(8); rle2vram(a44,0); rle2vram(a44c,0x2000); delay(8); rle2vram(a45,0); SWITCH_IN_BANK2; rle2vram(a45c,0x2000); delay(8); rle2vram(a46,0); rle2vram(a46c,0x2000); delay(8); rle2vram(a47,0); rle2vram(a47c,0x2000); delay(8); rle2vram(a53,0); rle2vram(a53c,0x2000); delay(8); SWITCH_IN_BANK3; rle2vram(a55,0); rle2vram(a55c,0x2000); delay(8); rle2vram(a56,0); rle2vram(a56c,0x2000); delay(8); rle2vram(a57,0); rle2vram(a57c,0x2000); delay(8); rle2vram(a58,0); SWITCH_IN_BANK4; rle2vram(a58c,0x2000); delay(8); rle2vram(a59,0); rle2vram(a59c,0x2000); delay(8); rle2vram(a60,0); rle2vram(a60c,0x2000); delay(8); rle2vram(a61,0); SWITCH_IN_BANK5; rle2vram(a61c,0x2000); delay(8); rle2vram(a62,0); rle2vram(a62c,0x2000); delay(8); rle2vram(a63,0); rle2vram(a63c,0x2000); delay(8); rle2vram(a64,0); SWITCH_IN_BANK6; rle2vram(a64c,0x2000); delay(8); rle2vram(a65,0); rle2vram(a65c,0x2000); delay(8); rle2vram(a66,0); rle2vram(a66c,0x2000); delay(8); rle2vram(a67,0); SWITCH_IN_BANK7; rle2vram(a67c,0x2000); delay(8); rle2vram(a71,0); rle2vram(a71c,0x2000); delay(32); rle2vram(a75,0); SWITCH_IN_BANK8; rle2vram(a75c,0x2000); delay(32); rle2vram(a79,0); rle2vram(a79c,0x2000); delay(16); rle2vram(a81,0); rle2vram(a81c,0x2000); delay(8); rle2vram(a82,0); SWITCH_IN_BANK9; rle2vram(a82c,0x2000); delay(8); rle2vram(a83,0); rle2vram(a83c,0x2000); delay(8); rle2vram(a84,0); rle2vram(a84c,0x2000); delay(8); rle2vram(a85,0); SWITCH_IN_BANKa; rle2vram(a85c,0x2000); delay(8); rle2vram(a86,0); rle2vram(a86c,0x2000); delay(8); rle2vram(a87,0); rle2vram(a87c,0x2000); delay(8); rle2vram(a88,0); SWITCH_IN_BANKb; rle2vram(a88c,0x2000); delay(8); rle2vram(a89,0); rle2vram(a89c,0x2000); delay(8); rle2vram(a90,0); rle2vram(a90c,0x2000); delay(8); rle2vram(a91,0); SWITCH_IN_BANKc; rle2vram(a91c,0x2000); delay(8); rle2vram(a92,0); rle2vram(a92c,0x2000); delay(8); rle2vram(a93,0); rle2vram(a93c,0x2000); delay(8); rle2vram(a94,0); SWITCH_IN_BANKd; rle2vram(a94c,0x2000); delay(8); rle2vram(a95,0); rle2vram(a95c,0x2000); delay(8); rle2vram(a96,0); rle2vram(a96c,0x2000); delay(8); rle2vram(a97,0); SWITCH_IN_BANKe; rle2vram(a97c,0x2000); delay(8); rle2vram(a98,0); rle2vram(a98c,0x2000); delay(8); rle2vram(a99,0); rle2vram(a99c,0x2000); delay(8); rle2vram(aa0,0); SWITCH_IN_BANKf; rle2vram(aa0c,0x2000); delay(16); rle2vram(aa2,0); rle2vram(aa2c,0x2000); delay(8); rle2vram(aa3,0); rle2vram(aa3c,0x2000); delay(8); a=1; delay(60); goto reset; } Okay then. Is this like a reverse code or just seperate codes like this. Because I want to target it at the 55 AA or AA 55 hex, or most likely known as in assembly... xor d ld d,l Quote Link to comment Share on other sites More sharing options...
Kiwi Posted October 10, 2020 Author Share Posted October 10, 2020 (edited) I'm not sure how you're doing the conversion and I've been watching a lot of game shows lately. So kinda don't want to give away the answer completely if you're doing this project as a puzzle. The first 2 bytes 0xaa 0x55 is to tell the Colecovision to skip the BIOS title screen routines. I attached the .map file where the data are located. Seems like I went over 16 KB in bank1, opps. Probably can skip loading a45 that's address 0xf157 in bank 1, and 0xc00e a45c. Maybe the .map file can tell you where the data are at in the assembled ROM. I think MSX RAM starts earlier than 0x4000 and the cartridge is mapped 0x4000-0xFFFF, which Colecovision RAM starts 0x6000-0x7FFF(mirrored 8 times) and ROM starts 0x8000-0xFFFF. BlueMSX have the Colecovision Megacart mapper provided. Hopefully the hints I provided helps. Maybe you want to go for door number 2, wait nevermind. crtcv.map Edited October 10, 2020 by Kiwi Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.