You are not logged in.
Lost Password?


Register To Post



 Bottom   Previous Topic   Next Topic

#1
Bad apple port
Posted on: 2016/9/19 22:13
VB Gamer
Joined 2012/9/12
Finland
39 Posts
Long Time User (7 Years)
Im supprised that there is no Virtual Boy port of "touhou music video - Bad apple".

Its famous and absolutely fantastic looking piece of art that has been ported over 30? devices including atari 2600 and other low end devices : O !
so virtual boy could definedly run it!

https://www.youtube.com/watch?v=cuMkI6 ... JVdonUGTEc7B-0YqElDlz9Sf9

here is list for reference.
Top

#2
Re: Bad apple port
Posted on: 2016/9/19 22:46
VB Gamer
Joined 2016/9/18
USA
28 Posts
Long Time User (3 Years)
Cool it definately should be on the VB! I wonder how compression of the video works though? Maybe some of these bad-apple demos are open-source?
Top

#3
Re: Bad apple port
Posted on: 2016/9/19 22:52
VB Gamer
Joined 2016/9/18
USA
28 Posts
Long Time User (3 Years)
https://megabitesblog.wordpress.com/2014/04/25/bad-apple/
This article says that they were able to compress it down to 3.5 Megabytes for the Sega Genesis. So if similar compression tools were used, it would fit on a cartridge.
Top

#4
Re: Bad apple port
Posted on: 2016/9/19 23:26
VB Gamer
Joined 2012/9/12
Finland
39 Posts
Long Time User (7 Years)
yea the genesis port is just magic , 120mb video compressed to 4 mb

but i think lower end ports like atari 2600 and game boy is just raw code rather than video.

Even Vectrex has own port so virtual boy cant be worse than that :D

It's Easy just shout here when i dont know nothing about coding. :S....
Top

#5
Re: Bad apple port
Posted on: 2016/9/20 3:22
VB Gamer
Joined 2015/3/8
Canada
38 Posts
Long Time User (4 Years)
Wow, you don't know how happy I am to now know about Bad Apple. I haven't seen this before, really impressive to see it run on the Gameboy and NES.. it even looked pretty good on the Vectrex. You are right, this now needs to happen on our beloved VB! Thanks for the share.
Top

#6
Re: Bad apple port
Posted on: 2016/9/20 6:56
VB Gamer
Joined 2016/9/18
USA
28 Posts
Long Time User (3 Years)
A way this could be done that is not memory intensive is to only update the CHARS that need updating. Many of the areas of the screen in bad apple are all black or all white, so they will not need to be changed on a per-frame basis. So we need to write a code-generating script that takes in a video, converts the frame to virtual boy's 384x224 2bit format, checks each 8x8 segment to see if it is different from the previous, and if it is different, generate a line of code that writes that char to the world.
Top

#7
Re: Bad apple port
Posted on: 2016/9/21 4:36
PVB Elite
Joined 2013/6/17
Canada
1144 Posts
Top10 Poster10+ Game RatingsLong Time User (6 Years)
Oh man, never knew about this. This is totally going on the everdrives.
Top

#8
Re: Bad apple port
Posted on: 2016/9/21 19:05
VUE(xpert)
Joined 2012/12/4
418 Posts
CoderLong Time User (6 Years)
Quote:
virtualnoob wrote:
Im supprised that there is no Virtual Boy port of "touhou music video - Bad apple".

Homebrew on Virtual Boy is harder to find than WMDs in Iraq. It should come as no surprise whatsoever. (-:

Quote:
syncophono wrote:
A way this could be done that is not memory intensive is to only update the CHARS that need updating. Many of the areas of the screen in bad apple are all black or all white, so they will not need to be changed on a per-frame basis.

This is a fundamental technique for video compression, and is often coupled with motion compensation to further reduce the number of changes between frames. Compression in its simplest form is elimination of redundancy, so if the result of a part of one frame is the same as the result of the previous frame, that part can simply be skipped over.

In practice, since source frames are rarely identical even in part, a "lossy" form of compression is used that generalizes whether a difference between two frames is "close enough" to skip over. Consecutive frames are typically rebuilt starting with a keyframe, which is a regular image, followed by some number of frames that only describe changes to the frame that can before it. Eventually, another keyframe will be needed to give the process a good foothold again.

Quote:
syncophono wrote:
So we need to write a code-generating script that takes in a video, converts the frame to virtual boy's 384x224 2bit format, checks each 8x8 segment to see if it is different from the previous, and if it is different, generate a line of code that writes that char to the world.

And this describes both sides of the task of implementing of a video codec. Are you sure you don't work in the data compression industry? (-:
Top

#9
Re: Bad apple port
Posted on: 2016/10/1 7:52
VB Gamer
Joined 2016/9/18
USA
28 Posts
Long Time User (3 Years)
I did a some research and OpenCV had a lot of documentation for video editing. So I wrote a test program that does many of the things needed for this compression:
-View the video frame by frame
-Resize the image
-Convert to grayscale
-Take out crop sections of the image(for comparison)

To convert the pixel to 2 bit,
Take the 1 byte grayscale value:
10111011
and shift it right by 6
00000010
Result: 10 (2)

I have included the source code.

Attach file:


cpp badApple.cpp Size: 0.90 KB; Hits: 129
Top

#10
Re: Bad apple port
Posted on: 2016/12/2 1:03
VB Gamer
Joined 2012/9/12
Finland
39 Posts
Long Time User (7 Years)
wow, found out recently how big the pokemon mini console homebrew scene is, and even it has port of bad apple : O

https://www.youtube.com/watch?v=Jr_pVfFXcrk
Top

 Top   Previous Topic   Next Topic


Register To Post